/** * @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; }