Descuentirijillos
unknown
php
a year ago
3.4 kB
1
Indexable
Never
<?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"] ]; } }