middleware('auth'); } function changeplan(Request $request) { if (Auth::user()->accesslevel == '5') { DB::beginTransaction(); $this->add_change_plan($request); $this->update_plans($request); $idno = $request->idno; $student = \App\User::where('idno',$request->idno)->first(); $this->re_distribute($request); $reservation = \App\Reservation::where('idno',$request->idno)->first(); DB::commit(); if(count($student)>0){ return redirect(url('viewledger',$idno)); //return view('cashier.viewledger',compact('idno','student','reservation')); } }//if auth } function update_plans($request){ $plan = $request->plan; $idno = $request->idno; $user = \App\Status::where('idno', $idno)->first(); $this->old_plan = $user->plan; $user->plan = $request->plan; $user->update(); $school_year = \App\CtrSchoolYear::where('academic_type', $user->academic_type)->first(); $newTuition = $this->computeNew($request); $totalTuition = \App\ledger::where('idno', $request->idno)->where('category_switch','<', 4)->where('description','!=','12%')->sum('amount'); $totalSpecial = \App\ledger::where('idno', $request->idno)->where('category_switch', 4)->where('description','!=','12%')->sum('amount'); $tuitionDiscount = \App\ledger::where('idno', $request->idno)->where('category_switch','<', 4)->where('description','!=','12%')->sum('discount'); $plans = \App\CtrDueDate::where('academic_type', $request->academic_type)->where('plan', $request->plan)->get(); if ($plan == 'Full Payment') { $addledgerduedates = new \App\LedgerDueDate; $addledgerduedates->idno = $idno; $addledgerduedates->school_year = $school_year->school_year; $addledgerduedates->period = $school_year->period; $addledgerduedates->due_switch = 0; $addledgerduedates->due_date = date('Y-m-d'); $addledgerduedates->amount = $newTuition + $totalSpecial; $addledgerduedates->amount2 = $newTuition + $totalSpecial; $addledgerduedates->save(); } else { $this->downpayment = $totalTuition * .3; $addledgerduedates = new \App\LedgerDueDate; $addledgerduedates->idno = $idno; $addledgerduedates->school_year = $school_year->school_year; $addledgerduedates->period = $school_year->period; $addledgerduedates->due_switch = 0; $addledgerduedates->due_date = date('Y-m-d'); $addledgerduedates->amount = $this->downpayment; $addledgerduedates->amount2 = $this->downpayment; $addledgerduedates->save(); $this->compute12percent($tuitionDiscount,$totalSpecial,$totalTuition, $newTuition, $plans, $idno, $user->academic_type); foreach ($plans as $paln) { $addledgerduedates = new \App\LedgerDueDate; $addledgerduedates->idno = $idno; $addledgerduedates->school_year = $school_year->school_year; $addledgerduedates->period = $school_year->period; $addledgerduedates->due_switch = 1; $addledgerduedates->due_date = $paln->due_date; $addledgerduedates->amount = $this->computeplan($totalSpecial,$totalTuition,$newTuition, $plans, $user->academic_type, $idno); $addledgerduedates->amount2 = $this->computeplan($totalSpecial,$totalTuition, $newTuition, $plans, $user->academic_type, $idno); $addledgerduedates->save(); } } } function compute12percent($totalDiscount, $totalSpecial,$totalTuition, $newTuition, $plans, $idno, $academic_type){ $interest = 1.12; $total = (($totalTuition * 0.7 )* $interest) - ($totalTuition * 0.7); //INTEREST AMOUNT $planpayment = ($total + $totalTuition) - ($totalTuition * 0.3); $rawplan = $totalTuition - ($totalTuition * 0.3); $percent12 = ($planpayment - $rawplan); $status = \App\Status::where('idno', $idno)->first(); $school_year = \App\CtrSchoolYear::where('academic_type', $status->academic_type)->first(); $chartofaccount = \App\ChartOfAccount::where('accounting_name', "Accounts Receivables")->first(); $addledger12percent = new \App\ledger; $addledger12percent->idno = $status->idno; $addledger12percent->program_code = $status->program_code; $addledger12percent->level = $status->level; $addledger12percent->school_year = $school_year->school_year; $addledger12percent->period = $school_year->period; $addledger12percent->category = "Tuition Fee"; $addledger12percent->description = "12%"; $addledger12percent->receipt_details = "Tuition Fee"; $addledger12percent->receipt_type = "OR"; $addledger12percent->accounting_code = $chartofaccount->accounting_code; $addledger12percent->category_switch = "3"; $addledger12percent->amount = $percent12; $addledger12percent->save(); } function computeplan($totalSpecial,$totalTuition,$newTuition, $plans, $academic_type, $idno) { $downpayment = $this->downpayment; if ($academic_type == "College") { $planpayment = ($newTuition - $downpayment)/ count($plans); } return $planpayment; } function add_change_plan($request) { $originalplan = \App\Status::where('idno', $request->idno)->first()->plan; $changeplan = $request->plan; $originalamount = \App\ledger::where('idno', $request->idno)->where('category_switch','<',5)->sum('amount'); $this->delete_dues($request); $changeamount = $this->computeNew($request); $addchange = new \App\ChangePlan; $addchange->idno = $request->idno; $addchange->change_date = Date('Y-m-d'); $addchange->original_plan = $originalplan; $addchange->change_plan = $changeplan; $addchange->original_amount = $originalamount; $addchange->change_amount = $this->roundOff($changeamount); $addchange->posted_by = Auth::user()->idno; $addchange->save(); } function computeNew($request) { $totaltuition = \App\ledger::where('idno', $request->idno)->where('category_switch','<', 4)->where('description','!=','12%')->sum('amount'); $totalspecial = \App\ledger::where('idno', $request->idno)->where('category_switch', 4)->where('description','!=','12%')->sum('amount'); $tuitionDiscount = \App\ledger::where('idno', $request->idno)->where('category_switch','<', 5)->where('description','!=','12%')->sum('discount'); $totalSpecial = \App\ledger::where('idno', $request->idno)->where('category_switch','<', 5)->sum('esc'); $plans = \App\CtrDueDate::where('academic_type', $request->academic_type)->where('plan', $request->plan)->get(); $interest = ""; if (count($plans) != 0) { $interest = 1.12; } if (count($plans) == 0) { $newAmount = $totaltuition - ($tuitionDiscount); } else { $seven = ($totaltuition - ($tuitionDiscount)) * 0.7; $newAmount = $seven * $interest + (($totaltuition - $tuitionDiscount) * 0.3) + $totalspecial; //$newAmount = $this->roundOff($newAmount); } return $newAmount; } function roundOff($amount) { return round($amount); } function delete_dues($request) { $stat = \App\Status::where('idno', $request->idno)->first(); $schoolyear = $stat->school_year; $period = $stat->period; $down = \App\LedgerDueDate::where('idno', $request->idno)->where('school_year', $schoolyear)->where('period', $period)->where('due_switch',0)->first(); $this->downpayment = $down->amount; $deletedue = \App\LedgerDueDate::where('idno', $request->idno)->where('school_year', $schoolyear)->where('period', $period)->delete(); $this->payments = \App\ledger::where('idno', $request->idno)->where('school_year', $schoolyear)->where('period', $period)->where('description', '12%')->sum('payment'); $deleteledger = \App\ledger::where('idno', $request->idno)->where('school_year', $schoolyear)->where('period', $period)->where('description', '12%')->delete(); } function re_distribute($request){ $stat = \App\Status::where('idno', $request->idno)->first(); $payment_made = $this->payments; $interest = \App\ledger::where('idno', $request->idno)->where('school_year', $schoolyear)->where('period', $period)->where('description', '12%')->sum('amount'); $percent = \App\ledger::where('idno', $request->idno)->where('school_year', $schoolyear)->where('period', $period)->where('school_year', $schoolyear)->where('period', $period)->where('description', '12%')->get(); foreach($percent as $per){ $balance = $per->amount - $per->payment; if($payment_made >= $balance){ $per->payment = $per->payment + $balance; $payment_made -= $balance; $per->update(); } else{ if($payment_made == 0){ break; } else{ $per->payment = $payment_made; $per->update(); } } } } }