public function save($request) { $rules = ['affiliate_id' => 'required']; $messages = ['affiliate_id.required' => 'Afiliado no disponible']; $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { return redirect('affiliate/' . $request->affiliate_id)->withErrors($validator)->withInput(); } else { $direct_contribution = new DirectContribution(); $data = json_decode($request->data); $now = Carbon::now(); $affiliate = Affiliate::IdIs($request->affiliate_id)->first(); $last_direct_contribution = DirectContribution::whereYear('created_at', '=', $now->year)->where('deleted_at', '=', null)->orderBy('id', 'desc')->first(); if ($last_direct_contribution) { $number_code = Util::separateCode($last_direct_contribution->code); $code = $number_code + 1; } else { $code = 1; } $direct_contribution->code = $code . "/" . $now->year; $direct_contribution->user_id = Auth::user()->id; $direct_contribution->affiliate_id = $request->affiliate_id; $direct_contribution->affiliate_name = $affiliate->getTittleName(); $direct_contribution->affiliate_degree = $affiliate->degree->name; $direct_contribution->affiliate_identity_card = $affiliate->identity_card; $direct_contribution->affiliate_registration = $affiliate->registration; $direct_contribution->quotable = $data->sum_quotable; $direct_contribution->retirement_fund = $data->sum_subtotal_retirement_fund; $direct_contribution->mortuary_quota = $data->sum_subtotal_mortuary_quota; $direct_contribution->subtotal = $data->sum_subtotal; $direct_contribution->ipc = $data->sum_subtotal_ipc_rate; $direct_contribution->total = $data->sum_total; $direct_contribution->save(); foreach ($data->contributions as $item) { $month_year = Carbon::createFromDate($request->year, $item->id_month, 1)->toDateString(); $contribution = Contribution::where('month_year', '=', $month_year)->where('affiliate_id', '=', $request->affiliate_id)->first(); $contribution_rate = ContributionRate::where('month_year', '=', $month_year)->first(); $ipc_rate = IpcRate::where('month_year', '=', $month_year)->first(); $now = Carbon::now(); $ipc_actual = IpcRate::select('index')->where('month_year', '=', Carbon::createFromDate($now->year, $now->month, 1)->toDateString())->first(); if (!$contribution) { $contribution = new Contribution(); $contribution->user_id = Auth::user()->id; $contribution->contribution_type_id = 2; $contribution->affiliate_id = $request->affiliate_id; $contribution->direct_contribution_id = $direct_contribution->id; $contribution->month_year = $month_year; $contribution->base_wage = $item->base_wage; $contribution->category_id = $item->category->id; $contribution->seniority_bonus = $item->seniority_bonus; $contribution->study_bonus = $item->study_bonus; $contribution->position_bonus = $item->position_bonus; $contribution->border_bonus = $item->border_bonus; $contribution->east_bonus = $item->east_bonus; $contribution->quotable = $item->quotable; $contribution->retirement_fund = $item->subtotal_retirement_fund; $contribution->mortuary_quota = $item->subtotal_mortuary_quota; $contribution->subtotal = $item->subtotal; $contribution->ipc = $item->subtotal_ipc_rate; $contribution->total = $item->total; $contribution->save(); } } $voucher = new Voucher(); $voucher->user_id = Auth::user()->id; $voucher->affiliate_id = $request->affiliate_id; $voucher->voucher_type_id = 1; $voucher->direct_contribution_id = $direct_contribution->id; $last_voucher = Voucher::whereYear('created_at', '=', $now->year)->where('deleted_at', '=', null)->orderBy('id', 'desc')->first(); if ($last_voucher) { $number_code = Util::separateCode($last_voucher->code); $code = $number_code + 1; } else { $code = 1; } $voucher->code = $code . "/" . $now->year; $voucher->total = $data->sum_total; $voucher->save(); $message = "Aportes Guardados"; Session::flash('message', $message); } return redirect('direct_contribution/' . $direct_contribution->id); }
public function getData($afid) { $affiliate = Affiliate::idIs($afid)->first(); $spouse = Spouse::affiliateidIs($afid)->first(); if (!$spouse) { $spouse = new Spouse(); } $retirement_fund = RetirementFund::afiIs($afid)->first(); if (!$retirement_fund) { $now = Carbon::now(); $last_retirement_fund = RetirementFund::whereYear('created_at', '=', $now->year)->where('deleted_at', '=', null)->orderBy('id', 'desc')->first(); $retirement_fund = new RetirementFund(); if ($last_retirement_fund) { $number_code = Util::separateCode($last_retirement_fund->code); $code = $number_code + 1; } else { $code = 1; } $retirement_fund->code = $code . "/" . $now->year; $retirement_fund->affiliate_id = $afid; $retirement_fund->save(); } $applicant = Applicant::retirementFundIs($retirement_fund->id)->first(); if (!$applicant) { $applicant = new Applicant(); } $requirements = Requirement::modalityIs($retirement_fund->retirement_fund_modality_id)->get(); $documents = Document::retirementFundIs($retirement_fund->id)->get(); $antecedents = Antecedent::retirementFundIs($retirement_fund->id)->get(); if ($retirement_fund->retirement_fund_modality_id) { $info_modality = TRUE; } else { $info_modality = FALSE; } if ($applicant->identity_card) { $info_applicant = TRUE; } else { $info_applicant = FALSE; } if (Document::retirementFundIs($retirement_fund->id)->first()) { $info_documents = TRUE; } else { $info_documents = FALSE; } if (Antecedent::retirementFundIs($retirement_fund->id)->first()) { $info_antecedents = TRUE; } else { $info_antecedents = FALSE; } if ($retirement_fund->comment) { $info_comment = TRUE; } else { $info_comment = FALSE; } $lastContribution = Contribution::affiliateidIs($affiliate->id)->orderBy('month_year', 'desc')->first(); $affiliate->service_start_date = $affiliate->date_entry; $affiliate->service_end_date = $lastContribution->month_year; $data = array('affiliate' => $affiliate, 'spouse' => $spouse, 'retirement_fund' => $retirement_fund, 'applicant' => $applicant, 'requirements' => $requirements, 'documents' => $documents, 'antecedents' => $antecedents, 'info_modality' => $info_modality, 'info_applicant' => $info_applicant, 'info_documents' => $info_documents, 'info_antecedents' => $info_antecedents, 'info_comment' => $info_comment); $data = array_merge($data, self::getViewModel()); return $data; }