コード例 #1
0
ファイル: HeaderRepository.php プロジェクト: sibasbo/sibas
 /**
  * @param RetailerProduct $retailerProduct
  * @param Model|Header    $header
  *
  * @return bool
  */
 public function setPropertyResult($retailerProduct = null, $header)
 {
     $premium_total = 0;
     if ($retailerProduct instanceof RetailerProduct) {
         if ($retailerProduct->rates->count() === 1) {
             $rate = $retailerProduct->rates->first();
             foreach ($header->details as $detail) {
                 $rate_vh = $rate->rate_final;
                 $premium_vh = $rate_vh * $detail->insured_value / 100;
                 $premium_total += $premium_vh;
                 try {
                     $detail->update(['rate' => $rate_vh, 'premium' => $premium_vh]);
                 } catch (QueryException $e) {
                     $this->errors = $e->getMessage();
                     return false;
                 }
             }
         }
     } else {
         foreach ($header->details as $detail) {
             $premium_total += $detail->premium;
         }
     }
     if ($premium_total > 0) {
         $share = [];
         /*$full_year = $header->full_year;
         
                     if ($header->payment_method === 'PT') {
                         $full_year = 1;
                     }
         
                     $date       = Carbon::createFromDate(null, null, 15)->addMonth(1)->subYear();
                     $percentage = number_format(( 100 / $full_year ), 2, '.', ',');
         
                     for ($i = 1; $i <= $full_year; $i++) {
                         array_push($share, [
                             'number'     => $i,
                             'date'       => $date->addYear()->toDateString(),
                             'percentage' => $percentage,
                             'share'      => number_format(( $premium_total * $percentage ) / 100, 2),
                         ]);
                     }*/
         try {
             $header->update(['total_premium' => $premium_total, 'share' => json_encode($share)]);
             return true;
         } catch (QueryException $e) {
             $this->errors = $e->getMessage();
         }
     }
     return false;
 }