/** * Display a listing of the resource. * GET /tax_rates * * @return Response */ public function index() { $user = Auth::user()->id; // Grab all the user billers $tax_rates = $this->tax_rate->where('user_id', $user)->get(); return View::make('tax_rates.index', compact('tax_rates')); }
/** * Store a newly created resource in storage. * * @return Response */ public function store() { $sucurasl = Branch::find(Session::get('branch_id')); if ($sucurasl->type_third != 2) { if (sizeof(Input::get('productos')) > 1) { if (Input::has('client')) { $account = Account::where('id', Auth::user()->account_id)->first(); $branch = Branch::find(Session::get('branch_id')); $tax = TaxRate::where("name", 'ICE')->first(); $invoice = Invoice::createNew(); $invoice->setBranch(Session::get('branch_id')); $invoice->setTerms(trim(Input::get('terms'))); $invoice->setPublicNotes(trim(Input::get('public_notes'))); $invoice->setInvoiceDate(trim(Input::get('invoice_date'))); $invoice->setClient(trim(Input::get('client'))); $invoice->setEconomicActivity($branch->economic_activity); $dateparser = explode("/", Input::get('due_date')); if (Input::get('due_date')) { $date = $dateparser[2] . '-' . $dateparser[1] . '-' . $dateparser[0]; $invoice->setDueDate($date); } $invoice->setDiscount(trim(Input::get('discount'))); $invoice->setClientName(trim(Input::get('razon'))); $invoice->setClientNit(trim(Input::get('nit'))); $invoice->setUser(Auth::user()->id); $dateparser = explode("/", Input::get('invoice_date')); $date = $dateparser[2] . '-' . $dateparser[1] . '-' . $dateparser[0]; $invoice->setInvoiceDate($date); $invoice->importe_neto = trim(Input::get('total')); $invoice->importe_total = trim(Input::get('subtotal')); if (Input::get('nota')) { $nota = array(); $nota[0] = ['date' => date('d-m-Y H:i:s'), 'note' => '<b>' . Auth::user()->first_name . " " . Auth::user()->last_name . "</b>: " . trim(Input::get('nota'))]; $invoice->note = json_encode($nota); } //ACCOUTN AND BRANCK $invoice->balance = trim(Input::get('total')); $invoice->discount = Input::get('descuento_send'); $invoice->setAccountName($account->name); $invoice->setAccountNit($account->nit); $invoice->setBranchName($branch->name); $invoice->setAddress1($branch->address1); $invoice->setAddress2($branch->address2); $invoice->setPhone($branch->work_phone); $invoice->setCity($branch->city); $invoice->setState($branch->state); $invoice->setNumberAutho($branch->number_autho); $invoice->setKeyDosage($branch->key_dosage); $invoice->setTypeThird($branch->type_third); $invoice->setDeadline($branch->deadline); $invoice->setLaw($branch->law); $type_document = TypeDocument::where('account_id', Auth::user()->account_id)->first(); $numAuth = $invoice->number_autho; $invoice->invoice_number = branch::getInvoiceNumber(); $numfactura = $invoice->invoice_number; $nit = $invoice->client_nit; $fechaEmision = date("Ymd", strtotime($invoice->invoice_date)); $total = $invoice->importe_neto; $llave = $branch->key_dosage; $codigoControl = Utils::getControlCode($numfactura, $nit, $fechaEmision, $total, $numAuth, $llave); //calculates ICE //$desc = $invoice->subtotal-$invoice->amount; $invoice->importe_ice = number_format(Input::get('importe_ice'), 2, '.', ''); $invoice->debito_fiscal = number_format(Input::get('importe_fiscal'), 2, '.', ''); //$invoice->discount = number_format($desc, 2, '.', ''); $invoice->setControlCode($codigoControl); $documents = TypeDocumentBranch::where('branch_id', $invoice->branch_id)->orderBy('id', 'ASC')->get(); foreach ($documents as $document) { $actual_document = TypeDocument::where('id', $document->type_document_id)->first(); if ($actual_document->master_id == 1) { $id_documento = $actual_document->id; } } $invoice->setJavascript($id_documento); if (Input::get('printer_type') == 1) { $invoice->logo = 1; } else { $invoice->logo = 0; } $invoice->sfc = $branch->sfc; $invoice->qr = $invoice->account_nit . '|' . $invoice->invoice_number . '|' . $invoice->number_autho . '|' . $invoice->invoice_date . '|' . $invoice->importe_neto . '|' . $invoice->importe_total . '|' . $invoice->client_nit . '|' . $invoice->importe_ice . '|0|0|' . $invoice->descuento_total; if ($account->is_uniper) { $invoice->account_uniper = $account->uniper; } $invoice->save(); $invoice_items = []; foreach (Input::get('productos') as $producto) { $prod = $producto; $product = Product::where('account_id', Auth::user()->account_id)->where('product_key', $producto["'product_key'"])->first(); if ($product != null) { $invoiceItem = InvoiceItem::createNew(); $invoiceItem->setInvoice($invoice->id); $invoiceItem->setProduct($product->id); $invoiceItem->setProductKey($producto["'product_key'"]); $proo = DB::table('products')->where('product_key', '=', $producto["'product_key'"])->first(); $invoiceItem->setNotes($proo->notes); $invoiceItem->setCost($producto["'cost'"]); ///$invoiceItem->setQty($producto["'qty'"]/$proo->units+$producto["'pack'"]); $invoiceItem->setQty($proo->units * $producto["'pack'"]); $invoiceItem->packs = $producto["'pack'"]; $invoiceItem->discount = $producto["'disc'"]; $invoiceItem->boni = $producto["'bonus'"]; $invoiceItem->is_web = 1; $invoiceItem->price_type_id = Auth::user()->price_type_id; $invoiceItem->subtotal = round($producto["'pack'"] * $producto["'cost'"], 2); //$invoiceItem->importe_neto=$producto["'pack'"]*$producto["'cost'"]-$producto["'bonus'"]*$producto["'cost'"]-$producto["'disc'"]; //$invoiceItem->importe_fiscal= $invoiceItem->ice = $proo->cc * $invoiceItem->getQty() / 1000 * $tax->rate; $invoiceItem->save(); $new_item = ['boni' => $producto["'bonus'"], 'desc' => $producto["'disc'"], 'qty' => $producto["'qty'"] / $proo->units + $producto["'pack'"], 'id' => $invoice->id, 'units' => 1, 'cost' => $producto["'cost'"], 'ice' => $proo->ice, 'cc' => $proo->cc * $proo->units, 'product_key' => $producto["'product_key'"], 'notes' => $proo->notes, 'packs' => $producto["'qty'"] + $proo->units * $producto["'pack'"], 'is_web' => 1]; array_push($invoice_items, $new_item); } } //adicionando cargo al cliente $cliente = Client::find($invoice->client_id); $cliente->balance = $cliente->balance + $invoice->balance; $cliente->save(); $new = ['fecha' => $invoice->invoice_date, 'name' => $invoice->client_name, 'cod_control' => $invoice->control_code, 'nit' => $invoice->client_nit, 'invoice_number' => $invoice->invoice_number, 'client_id' => $invoice->client_id . "1", 'user_id' => $invoice->user_id, 'ice' => $tax->rate, 'deadline' => $branch->deadline, 'account_id' => '1', 'branch_id' => $branch->id, 'law' => $branch->law, 'activity_pri' => $branch->economic_activity, 'activity_sec1' => "-", 'address1' => $branch->address1, 'address2' => $branch->address2, 'number_autho' => $branch->number_autho, 'postal_code' => $branch->sfc, 'city' => $branch->city, 'state' => $branch->state, 'country_id' => $branch->id, 'key_dosage' => $branch->key_dosage, 'branch' => $branch->name, 'invoice_items' => $invoice_items, 'terceros' => $branch->terceros, 'discount' => $invoice->discount]; /* return $new;*/ $array = []; array_push($array, $new); //$this->saveBackUpToMirror($array); //print_r($array); //return; $newInvoice = Invoice::where('id', '=', $invoice->getId())->first(); return Redirect::to("factura/" . $newInvoice->id); } Session::flash('error', 'por favor ingrese cliente'); return Redirect::to('factura/create'); } Session::flash('error', 'por favor ingrese productos'); return Redirect::to('factura/create'); } Session::flash('error', 'La Dosificación es para un dispositivo POS razon por la cual no se puede facturar via web'); return Redirect::to('factura'); }
/** * Show the form for editing the specified resource. * GET /invoices/{id}/edit * * @param int $id * @return Response */ public function edit($id) { $invoice = Invoice::find($id); $user = Auth::user(); $clients = $user->client; $billers = $user->biller; $tax_rates = TaxRate::where('user_id', $user->id)->get(); $items = $invoice->item; $countries = Country::all(); $currency = Country::where('id', $invoice->currency_id)->pluck('currency_code'); return View::make('invoices.edit', compact('invoice', 'clients', 'billers', 'tax_rates', 'items', 'countries', 'currency')); }