/** * Store a newly created resource in storage. * * @return Response */ public function store() { $credit = Credit::createNew(); $last_credit = Credit::where('account_id', '=', Auth::user()->account_id)->where('client_id', '=', Input::get('client'))->max('credit_number'); if (!$last_credit) { $last_credit = 0; } $credit->setClient(Input::get('client')); //Client::getPrivateId(Input::get('client')); $dateparser = explode("/", Input::get('credit_date')); $date = $dateparser[2] . '-' . $dateparser[1] . '-' . $dateparser[0]; $credit->setCreditDate(date($date)); $credit->setAmount(Input::get('amount')); $credit->setBalance(Input::get('amount')); $credit->setPrivateNotes(trim(Input::get('private_notes'))); $credit->setUser(Auth::user()->id); $credit->setCreditNumber($last_credit + 1); $error = $credit->guardar(); if ($error) { Session::flash('error', $error); return Redirect::to('creditos/create'); } $credit->save(); Session::flash('message', 'Crédito creado con éxito'); $client = Client::where('id', '=', Input::get('client'))->first(); return Redirect::to('clientes/' . $client->public_id); }
/** * Display the specified resource. * * @param int $id * @return Response */ public function show($publicId) { $client = Client::scope($publicId)->withTrashed()->with('contacts')->first(); if ($client) { //$client = Client::scope($publicId)->with('contacts')->firstOrFail(); $getTotalCredit = Credit::scope()->where('client_id', '=', $client->id)->whereNull('deleted_at')->where('balance', '>', 0)->sum('balance'); $invoices = Invoice::join('invoice_statuses', 'invoice_statuses.id', '=', 'invoices.invoice_status_id')->where('invoices.account_id', Auth::user()->account_id)->where('invoices.client_id', $client->id)->where('invoices.branch_id', Session::get('branch_id'))->select('invoices.invoice_number', 'invoices.invoice_date', 'invoices.importe_total', 'invoices.balance', 'invoices.due_date', 'invoice_statuses.name', 'invoices.public_id')->get(); $pagos = Payment::join('invoices', 'invoices.id', '=', 'payments.invoice_id')->join('payment_types', 'payment_types.id', '=', 'payments.payment_type_id')->where('payments.account_id', Auth::user()->account_id)->where('payments.client_id', $client->id)->select('invoices.invoice_number', 'payments.transaction_reference', 'payment_types.name', 'payments.amount', 'payments.payment_date')->get(); $creditos = Credit::where('account_id', '=', Auth::user()->account_id)->where('client_id', '=', $client->getId())->get(); $data = array('title' => 'Ver Cliente', 'client' => $client, 'invoices' => $invoices, 'pagos' => $pagos, 'credit' => $getTotalCredit, 'creditos' => $creditos); // return Response::json($data); return View::make('clientes.show', $data); } Session::flash('error', 'No existe el usuario'); return Redirect::to('clientes'); }
public function getMaxCredit($client_id) { $credit = Credit::where('account_id', Auth::user()->account_id)->where('client_id', $client_id)->get(); $credito = 0; foreach ($credit as $cre) { $credito += $cre->balance; } return $credito; }
public function setAmount($amount) { if (is_null($amount)) { $this->fv_amount = "Factura " . ERROR_NULL . "<br>"; return; } $credit = Credit::where('account_id', $this->getAccountId())->where('client_id', $this->getClientId())->get(); $invoice = Invoice::where('id', $this->getInvoiceId())->first(); $credito = 0; foreach ($credit as $cre) { $credito += $cre->balance; } //echo $amount." - ".$credito; if ($credito < $amount && $this->getPaymentTypeId() == 2) { $this->fv_amount = "No tiene suficiente crédito para realizar este pago."; return; } if ($invoice->balance < $amount) { $this->fv_amount = "No es posible pagar mas de lo adeudado."; return; } if ($amount <= 0) { $this->fv_amount = "El monto no puede ser menor o igual a 0"; return; } $this->fv_amount = null; $this->amount = $amount; return $this; }