Descuentirijillos
unknown
php
3 years ago
3.4 kB
11
Indexable
<?php
foreach( $reserva["cliente"]["descuentos"] as $descuento ){
array_push($this->track,['mensaje' => 'Se evalua el descuento.', 'descuento' => $descuento, 'controller' => 'ReservaController' , 'line' => '124']); //🚩
if ( $descuento["id_lugar"] > 0 && $descuento["id_lugar"] !== $id_lugar ) continue; //Si no pertenece al lugar salta el descuento
if ( $descuento["id_tramo"] > 0 && $descuento["id_tramo"] !== $id_tramo ) continue; //Si no pertenece al tramo salta el descuento
if ( $descuento["id_forma_pago"] > 0 && $descuento["id_forma_pago"] !== $this->TIPO_FORMA_PAGO_WEBPAY ) continue; //Si no corresponde a la forma de pago salta el descuento
if ( $descuento["condicion"] !== NULL && count( $datos["vehiculos"] ) > 0 ){
//Valida campo condición del descuento (patente) solo si existe vehículo
$ivehiculo = 0;
foreach( $datos["vehiculos"] as $vehiculo ){
if ( $descuento["id_item"] > 0 && ( $descuento["id_item"] !== $vehiculo["tarifa"]["item"]["id_item"] ) ) continue;
//recorre los vehículos de la reserva
$condicion = "PATENTE=".$vehiculo["patente"];
//Hace un split de las condiciones del descuento
$condiciones_patentes = explode(";",$descuento['condicion']);
$aplica_descuento = false;
foreach($condiciones_patentes as $patente){
//recorre patentes de condicion del descuento y lo compara con la variable $condicion que sería PATENTE=lapatentedelvehiculo.
$aplica_descuento = strtoupper($patente) == strtoupper($condicion);
}
//if ( strtoupper($condicion) == strtoupper($descuento["condicion"]) ) {
if ( $aplica_descuento ) {
array_push($this->track,['mensaje' => 'descuento aplicado.', 'descuento' => $descuento, 'controller' => 'ReservaController' , 'line' => '149']); //🚩
//Si es que el descuento corresponde, se agrega al objeto del vehiculo asociado
$this->descuento_monto_cliente += $descuento["cantidad"];
$datos["vehiculos"][$ivehiculo]->descuento_aplicado_vehiculo = [
'tipo' => $descuento["tipo"],
'subtipo' => $descuento["subtipo"],
'cantidad' => $descuento["cantidad"]
];
} else {
array_push($this->track,['mensaje' => 'No se aplica descuento a vehículo.', 'vehiculo' => $datos["vehiculos"][$ivehiculo], 'controller' => 'ReservaController' , 'line' => '149']); //🚩
$datos["vehiculos"][$ivehiculo]["descuento_aplicado_vehiculo"] = null;
}
$ivehiculo++;
}
}else{
array_push($this->track,['mensaje' => 'descuento global aplicado.', 'descuento' => $descuento, 'controller' => 'ReservaController' , 'line' => '149']); //🚩
//si aun quedan descuentos sin condicion de patente se agregan al objeto de la reserva y se aplican a todas las tarifas de vehiculos
$this->descuento_monto_cliente += $descuento["cantidad"];
$datos["reserva"]["descuento_aplicado_cliente"] = [
'tipo' => $descuento["tipo"],
'subtipo' => $descuento["subtipo"],
'cantidad' => $descuento["cantidad"]
];
}
}Editor is loading...