Example #1
0
 /**
  * Calc service price
  * @param Service $service
  * @param Quotation $quotation
  * @return float
  */
 public function getPriceServiceByParameters(Service $service, Quotation $quotation)
 {
     if ($quotation->getCountry()->getUseHealthCoverage()) {
         if ($service->getIsHealthCoverage() && $quotation->getTotalSemanas() >= 4) {
             $meses = $quotation->getTotalSemanas() / 4;
             return $meses * $service->getPrice();
         }
     }
     if ($service->getSummerSupplement()) {
         return $service->getPrice() * $quotation->getSemanasSummer();
     }
     if ($service->getChargePerWeek()) {
         // limite de semanas
         if ($service->getUsesLimitWeeks()) {
             if ($service->getLimitWeek() <= $quotation->getTotalSemanas()) {
                 return $service->getPrice() * $quotation->getTotalSemanas();
             } else {
                 // aplicar limite de semanas
                 return $service->getPrice() * $service->getLimitWeek();
             }
         } else {
             // multiplicar por semanas
             return $service->getPrice() * $quotation->getTotalSemanas();
         }
     } else {
     }
     return $service->getPrice();
 }