public function creation(Requests\CreateSalesInvoiceRequest $request) { $input = Request::all(); $salesInvoice = SalesInvoice::find($input['invoice_no']); $items = InvoiceItem::where('sales_invoice_id', $salesInvoice->id)->get(); $output = $salesInvoice->Client->currentCredit(); $creditOutput = $output[0]->credit; if ($creditOutput == null) { $creditOutput = 0; } $remaining = $salesInvoice->Client->credit_limit - $creditOutput; foreach ($items as $item) { $invoiceItem = InvoiceItem::find($item->id); $creditOutput += $input['quantity' . $item->id] * $input['unit_price' . $item->id]; } if ($creditOutput > $salesInvoice->Client->credit_limit) { Flash::error('Cannot add the invoice, client would exceed the credit limit. The remaining allowable credit is only Php ' . $remaining . '.'); return redirect()->back()->withInput(); //return redirect()->back()->withInput()->with('message','Cannot add the invoice, client would exceed the credit limit. The remaining allowable credit is only Php ' . $remaining . '.'); } $salesInvoice->update(['si_no' => $input['si_no'], 'po_number' => $input['po_number'], 'dr_number' => $input['dr_number'], 'date' => Carbon::now()]); $total_amount = 0; $items = InvoiceItem::where('sales_invoice_id', $salesInvoice->id)->get(); //$items = $input(['items']); foreach ($items as $item) { $invoiceItem = InvoiceItem::find($item->id); $invoiceItem->update(['quantity' => $input['quantity' . $item->id], 'unit_price' => $input['unit_price' . $item->id], 'total_price' => $input['quantity' . $item->id] * $input['unit_price' . $item->id]]); $total_amount += $invoiceItem->total_price; } $salesInvoice->update(['total_amount' => $total_amount, 'status' => "Pending"]); if ($salesInvoice->Client->vat_exempt == 'VAT Exclusive') { $salesInvoice->update(['total_amount' => $salesInvoice->total_amount + $salesInvoice->total_amount * 0.12]); } Activity::log('Sales Invoice ' . $salesInvoice['si_no'] . ' was completed'); return redirect()->action('SalesInvoicesController@show', [$salesInvoice->id]); }
public function update(Requests\CreateInvoiceItemRequest $request, $id) { $saleItem = InvoiceItem::find($id); $input = Request::all(); $saleItem->update(['item_id' => $input['item_id'], 'quantity' => $input['quantity'], 'unit_price' => $input['unit_price'], 'total_price' => $input['quantity'] * $input['unit_price']]); $salesInvoice = $saleItem->salesInvoice; $items = InvoiceItem::where('sales_invoice_id', $salesInvoice->id)->get(); $total_amount = 0; foreach ($items as $item) { $invoiceItem = InvoiceItem::find($item->id); $total_amount += $invoiceItem->total_price; } $salesInvoice->update(['total_amount' => $total_amount]); return redirect()->action('SalesInvoicesController@edit', [$salesInvoice->id]); }