/**
  * Store a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 public function store(LoanApprovalRequest $request)
 {
     $appli = LoanApplication::findOrFail($request->id);
     //$appli->accepted = $request::get('accept');
     //$appli->save();
     //if($appli->accepted=='true'){
     if ($request->accept == 'true') {
         $acc = new Account();
         $acc->loan_id = $appli->loan_id;
         $acc->member_id = $appli->member_id;
         $acc->terms = $appli->terms;
         $acc->amountGranted = $appli->amountGranted;
         $acc->comaker = $appli->comaker;
         $acc->dateGranted = $request->date;
         $acc->dueDate = $acc->dateGranted;
         $acc->dueDate->addDays($acc->terms);
         $acc->balance = $acc->amountGranted;
         $acc->save();
         $ledger = new Ledger();
         $ledger->account_id = $acc->id;
         $ledger->curDate = $acc->dateGranted;
         $ledger->particulars = $request->particular;
         $ledger->reference = $request->reference;
         $ledger->avaiment = $acc->amountGranted;
         $ledger->amountPayed = 0;
         $ledger->interestDue = 0.0;
         $ledger->penaltyDue = 0.0;
         $ledger->principal = 0.0;
         $ledger->interestPayed = 0.0;
         $ledger->penaltyPayed = 0.0;
         $ledger->balance = $acc->amountGranted;
         $acc->balance = $acc->amountGranted;
         //toodo
         $ledger->save();
     }
     $appli->delete();
     flash()->success("Success!");
     return redirect('/admin');
 }
 /**
  * Store a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 public function store(LedgerRequest $request)
 {
     $acc = Account::find($request->id);
     $ledger = new Ledger();
     //set default values..
     $ledger->account_id = $request->id;
     $ledger->curDate = date('Y-m-d');
     $ledger->particulars = $request->particulars;
     $ledger->reference = $request->reference;
     $ledger->penaltyDue = 0.0;
     $ledger->interestPayed = 0.0;
     $ledger->penaltyPayed = 0.0;
     /*
         removed this part for accepting just payment in updating the ledger.
         can be restored back to accepting loaning by uncommenting this code
         and the corresponting code on it's view.
     */
     // if($request->actn=='true'){
     //     $ledger->avaiment = $request->cash;
     //     $ledger->principal = 0;
     //     $acc->balance += $request->cash;
     //     $ledger->balance = $acc->balance;
     // }
     // else{
     $interest = 0;
     //check if due if due give penalty
     $diff = \Carbon\Carbon::now()->diffInDays($acc->dueDate->copy(), false);
     if ($diff < 0) {
         $ledger->penaltyDue = $acc->amountGranted * $acc->loan->penalty * abs($diff) / 360;
         $ledger->penaltyPayed = $ledger->penaltyDue;
     }
     //compute normal interest
     if (count($acc->ledgers) == 1) {
         // $interest = ($acc->amountGranted * $acc->loan->intRate * $acc->terms)/360;
         // $interestDue = $interest*($acc->dateGranted->diffInDays(\Carbon\Carbon::now()));
         //dd($acc->dateGranted->diffInDays(\Carbon\Carbon::now()));
         //ditoo
         $ledger->interestDue = $acc->amountGranted * $acc->loan->intRate * $acc->dateGranted->diffInDays(\Carbon\Carbon::now()) / 360;
         //dd($ledger->interestDue);
         //dd($interestDue);
     }
     //interest if past due and with partial..
     if ($diff < 0 && count($acc->ledgers) > 1) {
         $ledger->interestDue = $acc->amountGranted * $acc->loan->intRate * $acc->dateGranted->diffInDays(\Carbon\Carbon::now()) / 360;
         // $interest = ($acc->amountGranted * $acc->loan->intRate * $acc->terms)/360;
         // $interestDue = $interest*($acc->dueDate->diffInDays(\Carbon\Carbon::now()));
     }
     //loan specific actions..
     switch ($acc->loan_id - 1) {
         case 0:
             if (count($acc->ledgers) == 1) {
                 $ledger->interestDue = $acc->amountGranted * $acc->loan->intRate * $acc->terms / 360;
                 $ledger->interestPayed = $ledger->interestDue;
             }
             break;
         case 1:
             //by default is already working how it should
             break;
         case 2:
         case 3:
         case 4:
         case 5:
             $half = \Carbon\Carbon::now()->diffInDays($acc->dateGranted->copy()->addDays($acc->terms / 2), false);
             $ledger->interestDue = 0;
             if ($half == 0 || $half < 0) {
                 $ledger->interestDue = $acc->amountGranted * $acc->loan->intRate * abs($half) / 360;
             }
             break;
         case 6:
             $penaltyDue = 0;
             $penaltyPayed = 0;
             if ($diff < 0) {
                 $ledger->interestDue = $acc->amountGranted * $acc->loan->intRate * abs($diff) / 360;
                 $ledger->interestPayed = $ledger->interestDue;
             }
             break;
     }
     $ledger->principal = $request->cash - ($ledger->penaltyDue + $ledger->interestDue);
     $ledger->avaiment = 0;
     $acc->balance -= $ledger->principal;
     $ledger->balance = $acc->balance;
     $ledger->amountPayed = $request->cash;
     //}
     $ledger->save();
     $acc->save();
     flash()->success('Updated Ledger');
     return redirect('admin/accounts/' . $request->id);
 }
 /**
  * Store a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 public function store(CreateLoanRequest $request)
 {
     //dd($request->loan_id);
     $acc = new Account();
     $acc->loan_id = $request->loan_id;
     $acc->member_id = $request->member_id;
     $acc->terms = $request->terms;
     $acc->amountGranted = $request->amount;
     $acc->comaker = $request->comaker;
     $acc->dateGranted = $request->dateGranted;
     $acc->dueDate = $acc->dateGranted;
     $acc->dueDate->addDays($acc->terms + 1);
     $acc->balance = $acc->amountGranted;
     $acc->save();
     $insurance = 0.0;
     $cbu = 0.0;
     $sfee = 0.0;
     $advint = 0.0;
     switch ($acc->loan_id - 1) {
         case 0:
             $today = \Carbon\Carbon::now();
             $mm = $today->month;
             if ($mm == 12 || $mm == 1) {
                 $insurance = 0;
                 //todo
             } else {
                 if ($mm >= 6 && $mm <= 8) {
                     $insurance = $acc->amountGranted * 0.15;
                 }
             }
             $cbu = 500 * $acc->member->landArea;
             break;
         case 1:
             $cbu = 500;
             break;
         case 2:
         case 3:
         case 4:
         case 5:
             $advint = $acc->amountGranted * $acc->loan->intRate * $acc->terms / 360 / 2;
             break;
         case 6:
             //wala
             break;
     }
     $sfee = $acc->amountGranted * $acc->loan->sFee;
     //$total = $advint+$pcic+$insurance+$sfee+$sdeposit+$mortuary+$cbu+$balance+$penalty;
     $total = $advint + $insurance + $sfee + $cbu;
     $net = $acc->amountGranted - $total;
     $ledger = new Ledger();
     $ledger->account_id = $acc->id;
     $ledger->curDate = date('Y-m-d');
     $ledger->particulars = 'LOAN';
     $ledger->reference = $acc->id;
     $ledger->avaiment = $acc->amountGranted;
     $ledger->amountPayed = 0;
     $ledger->interestDue = 0.0;
     $ledger->penaltyDue = 0.0;
     $ledger->principal = 0.0;
     $ledger->interestPayed = 0.0;
     $ledger->penaltyPayed = 0.0;
     $ledger->balance = $acc->amountGranted;
     $acc->balance = $acc->amountGranted;
     //toodo
     $ledger->save();
     $inwords = $this->convert_number_to_words($net);
     return \PDF::loadHTML(view('reports.report1', compact('insurance', 'cbu', 'sfee', 'advint', 'total', 'net', 'acc', 'inwords')))->stream('test.pdf');
     //flash()->success("Success!");
     //return redirect('/admin');
 }