Example #1
0
 /**
  * funcion retorna registros mediante id de hader
  *
  * @param type $idHeader
  *
  * @return boolean
  */
 public function getDetailByHeader($idHeader)
 {
     $query = Detail::where('op_td_header_id', '=', $idHeader);
     $this->model = $query->get();
     if ($this->model->count() == 1) {
         $this->model = $this->model->first();
         return true;
     }
     return false;
 }
Example #2
0
 public function listInsured($rp_id, $header_id, $steep)
 {
     $prodParam = ProductParameter::where('ad_retailer_product_id', decode($rp_id))->where('slug', 'GE')->first();
     $detail = Detail::where('op_td_header_id', decode($header_id))->get();
     $exedDetail = 0;
     if (count($detail) == $prodParam->detail) {
         $exedDetail = $prodParam->detail;
     }
     $var = ['template' => view('td.listInsured', compact('detail', 'header_id', 'rp_id', 'exedDetail', 'prodParam', 'steep'))->render()];
     return response()->json($var);
 }
Example #3
0
 /**
  * Store vehicle Facultative TD
  *
  * @param Model|Detail          $detail
  * @param Model|RetailerProduct $retailerProduct
  * @param Model|User            $user
  * @param bool                  $coverage
  *
  * @return bool
  * @throws \Exception
  */
 public function storeTdFacultative($detail, $retailerProduct, $user, $coverage = false)
 {
     $parameters = $retailerProduct->parameters;
     $parameter = null;
     $exchange_rate = $retailerProduct->retailer->exchangeRate;
     $reason = '';
     $slug = $detail->matter_insured === 'PR' && $detail->use === 'IP' ? 'FA' : 'GE';
     $parameter = $parameters->filter(function ($item) use($slug) {
         return $item->slug === $slug;
     })->first();
     if ($parameter instanceof ProductParameter) {
         $insured_value = $detail->insured_value;
         if ($detail->header->currency === 'BS') {
             $insured_value = $detail->insured_value / $exchange_rate->bs_value;
         }
         $amount = false;
         $amount_max = 0;
         switch ($parameter->slug) {
             case 'GE':
                 $amount = $insured_value > $parameter->amount_max ? true : false;
                 $amount_max = $parameter->amount_max;
                 break;
             case 'FA':
                 $amount = $insured_value >= $parameter->amount_min || $insured_value > $parameter->amount_max ? true : false;
                 $amount_max = $parameter->amount_min;
                 break;
         }
         $reason .= $amount ? str_replace([':matter_insured', ':amount_max'], [config('base.property_types.' . $detail->matter_insured), number_format($amount_max, 2)], $this->reasonProperty) . '<br>' : '';
         if ($coverage) {
             if ($amount) {
                 $this->errors = ['reason' => $reason];
                 $detail->delete();
                 return 428;
             }
             $detail->update(['approved' => true]);
             return 202;
         }
         /*try {
                         if ($year || $amount) {
                             if ($detail->facultative instanceof Facultative) {
                                 $detail->facultative->update([
                                     'reason' => $reason,
                                     'state'  => 'PE',
                                     'read'   => false,
                                 ]);
                             } else {
                                 $detail->facultative()->create([
                                     'id'         => date('U'),
                                     'ad_user_id' => $user->id,
                                     'reason'     => $reason,
                                     'state'      => 'PE',
                                     'read'       => false,
                                 ]);
                             }
                         } elseif ($detail->facultative instanceof Facultative) {
                             $detail->facultative->delete();
                         }
         
                         return true;
                     } catch (QueryException $e) {
                         $this->errors = $e->getMessage();
                     }*/
         return true;
     }
     return false;
 }