public function addSales()
 {
     $activeTab = 'sales';
     $task_types = TaskType::all();
     $saleTypes = SaleType::all();
     $user = Auth::user();
     $today_target = 140;
     $add_sales = $this->doubleValue(Input::get('sales'));
     if (empty($add_sales) || $add_sales <= 0) {
         $today_total = $this->getTodaysStats();
         $message = '<strong>Oh snap!</strong>. Please enter a value of 1 or above.  You entered \'' . Input::get('point') . '\'. Try submitting again.';
         $isErr = true;
         return view('myStat.add', compact('user', 'today_total', 'task_types', 'tasks', 'activeTab', 'isErr', 'message', 'today_target', 'saleTypes'));
     } else {
         $saleType = SaleType::findOrfail(Input::get('saleType_id'));
         $salesAudit = new SaleAudit();
         $salesAudit->sale = $add_sales;
         if (stripos(Input::get('sales'), '-') !== false) {
             $salesAudit->sale = -1 * $salesAudit->sale;
         }
         $salesAudit->user_id = Auth::user()->id;
         $salesAudit->company_id = Auth::user()->company_id;
         $salesAudit->saleType_id = $saleType->id;
         $salesAudit->date = new \DateTime();
         $salesAudit->save();
         $salesID = Input::get('saleType_id') . $user->id . date("mdY");
         $salesEntity = Sale::find($salesID);
         if ($salesEntity != null) {
             $salesEntity->sale = $salesEntity->sale + $salesAudit->sale;
             $salesEntity->update();
         } else {
             $salesEntity = new Sale();
             $salesEntity->id = $salesID;
             $salesEntity->month = date("m");
             $salesEntity->year = date("Y");
             $salesEntity->user_id = $user->id;
             $salesEntity->saleType_id = Input::get('saleType_id');
             $salesEntity->company_id = $user->company_id;
             $salesEntity->sale = $salesAudit->sale;
             $salesEntity->save();
         }
         $message = 'You have added <strong>' . number_format($salesAudit->sale, 2) . ' points</strong> to <strong>' . $saleType->name . '</strong>.';
         $today_total = $this->getTodaysStats();
         $isErr = false;
         return view('myStat.add', compact('user', 'today_total', 'task_types', 'tasks', 'activeTab', 'isErr', 'message', 'today_target', 'saleTypes'));
     }
 }
 private function setReceiveSalePayment()
 {
     $sales[0] = Sale::where('invoice_id', '=', Input::get('invoice_id'))->get();
     $saleTransaction = new Transaction();
     $saleTransaction->account_category_id = Input::get('account_category_id');
     $saleTransaction->account_name_id = Input::get('account_name_id');
     $saleTransaction->amount = Input::get('amount');
     $saleTransaction->remarks = Input::get('remarks');
     $saleTransaction->type = "Receive";
     $saleTransaction->user_id = Session::get('user_id');
     $saleTransaction->payment_method = Input::get('payment_method');
     $saleTransaction->cheque_no = Input::get('cheque_no');
     $saleTransaction->invoice_id = Input::get('invoice_id');
     $totalAmount = 0;
     $totalPrice = 0;
     $saleDetails = SAleDetail::where('invoice_id', '=', $saleTransaction->invoice_id)->get();
     $transactions = Transaction::where('invoice_id', '=', $saleTransaction->invoice_id)->get();
     foreach ($saleDetails as $saleDetail) {
         $totalPrice = $totalPrice + $saleDetail->price * $saleDetail->quantity;
     }
     foreach ($transactions as $transaction) {
         $totalAmount = $totalAmount + $transaction->amount;
     }
     $sale = Sale::find($sales[0][0]['id']);
     if ($totalAmount == $totalPrice) {
         $sale->status = "Completed";
     } else {
         $sale->status = "Partial";
     }
     $accountPayment = NameOfAccount::find(Input::get('account_name_id'));
     $accountPayment->opening_balance = $accountPayment->opening_balance + Input::get('amount');
     $saleTransaction->branch_id = Input::get('branch_id');
     $saleTransaction->save();
     $sale->save();
     $accountPayment->save();
     Session::flash('message', 'Sales Due  has been Successfully Received.');
 }
<?php

use App\Sale;
use App\Client;
use App\Institution;
use App\CashReceipt;
use App\Transport;
use App\Branch;
// Get the sale.
$creditDue = Sale::find($sale['Id']);
// Get the branch.
$branch = Branch::find($creditDue->BranchId);
// Get the creditor.
$creditor = null;
if ($sale->CreditorType == 1) {
    $creditor = Client::find($sale->CreditorId);
} else {
    $creditor = Institution::find($sale->CreditorId);
}
// Get the transport request.
$paymentCollection = Transport::find($transport['Id']);
$payments = CashReceipt::where('Type', '=', 2)->where('TypeId', '=', $sale->Id)->get();
$totalDue = $creditDue->Value + $creditDue->Tax;
foreach ($payments as $payment) {
    $totalDue -= $payment->Value;
}
?>
<p>{{ $creditor->Name }},</p>
<p>Les enviamos el siguiente correo para dejarles saber que el {{ $transport->Date }} estaremos llegando a recoger el pago de la factura numero {{ $sale->Id }}. El total pendiente es de C$ {{ $totalDue }}.</p>
<p>Si por algun motivo no podra pagar ese dia puede reprogramar nuestra visita respondiendo a este correo de la siguiente manera:</p>
<p>Reprogramar:{{ date('Y-m-d', strtotime("+5 days")) }}</p>
 /**
  * Function that scans a sale and adds a bonus to selected worker if necessary.
  *
  * @return Response
  */
 public function scanSale()
 {
     // Validate Input.
     $validator = Validator::make(Input::all(), array('staffId' => 'required', 'saleId' => 'required'));
     if ($validator->fails()) {
         $response['state'] = 'Error';
         $response['error'] = 'Debe cargar al trabajador!';
         return response()->json($response);
     }
     // Check that user is part of authorized staff.
     if (Auth::user()->Type != 1) {
         // If they are unauthorized no point in returning anything.
         return response()->json(array());
     }
     // Get the worker of given Id.
     $response = array();
     $worker = Worker::where('Cedula', '=', Input::get('staffId'))->first();
     if ($worker) {
         // Check if this worker should get a bonus from this.
         if ($worker->BonusSource != 'productionexclusive' && $worker->BonusSource != 'productionsinglecustom') {
             $response['state'] = 'Error';
             $response['error'] = 'Este trabajador no puede ser asignado bonos por facturas.';
             return response()->json($response);
         }
         // Get today's day.
         $todaySalary = WorkerSalary::where('WorkerId', '=', $worker->Id)->where('Date', '=', date('Y-m-d'))->first();
         if (!$todaySalary) {
             $response['state'] = 'Error';
             $response['error'] = 'El trabajador no ha sido agregado en la planilla del dia de hoy!';
             return response()->json($response);
         }
         // Get the sale.
         $sale = Sale::find(Input::get('saleId'));
         if (!$sale) {
             $response['state'] = 'Error';
             $response['error'] = 'Venta Inexistente!';
             return response()->json($response);
         }
         // Get the breakdown.
         $breakdown = SaleBreakdown::where('SaleId', '=', $sale->Id)->get();
         foreach ($breakdown as $b) {
             // Check that this sale breakdown has not been used already.
             $extraData = json_decode($b->ExtraData, true);
             if (is_array($extraData) && array_key_exists('workerId', $extraData)) {
                 // Get the worker.
                 $worker = Worker::find($extraData['workerId']);
                 $response['state'] = 'Error';
                 $response['error'] = 'Esta factura ha sido asignada a ' . $worker->Name . '!';
                 return response()->json($response);
             }
             $product = Stock::where('Code', '=', $b->Code)->where('BranchId', '=', $sale->BranchId)->first();
             if ($product) {
                 $todaySalary->Bonus += $product->Bonus;
                 $todaySalary->save();
             } else {
                 $service = Service::where('Code', '=', $b->Code)->where('BranchId', '=', $sale->BranchId)->first();
                 $todaySalary->Bonus += $service->Bonus;
                 $todaySalary->save();
             }
             // Add extra data to breakdown.
             $extraData['workerId'] = $worker->Id;
             $b->ExtraData = json_encode($extraData);
             $b->save();
         }
         // Return response.
         $response['state'] = 'Success';
         $response['message'] = 'Factura agregada exitosamente!';
         return response()->json($response);
     } else {
         $response['state'] = 'Error';
         $response['error'] = 'Trabajador Inexistente!';
         return response()->json($response);
     }
 }
 public function getDelete($id)
 {
     $salesreturn = SalesReturnDetail::find($id);
     $saleReturnInvoice = SalesReturnInvoice::where('invoice_id', '=', $salesreturn->invoice_id)->first();
     $remaining_amount = $salesreturn->return_amount;
     $partyId = $saleReturnInvoice->party_id;
     if ($remaining_amount > 0) {
         $invoiceId = Sale::where('party_id', '=', $partyId)->where('is_sale', '=', 1)->get();
         foreach ($invoiceId as $invid) {
             $amount = Transaction::where('invoice_id', '=', $invid->invoice_id)->where('type', '=', 'Receive')->where('account_category_id', '=', 7)->get();
             foreach ($amount as $amnt) {
                 if ($amnt->amount > $remaining_amount) {
                     $transaction = Transaction::find($amnt->id);
                     $transaction->amount = $transaction->amount - $remaining_amount;
                     $transaction->save();
                     $sale = Sale::find($invid->id);
                     $sale->status = 'Partial';
                     $sale->save();
                     $remaining_amount = 0;
                 } elseif ($amnt->amount < $remaining_amount) {
                     $transaction = Transaction::find($amnt->id);
                     $transacamount = $transaction->amount;
                     $transaction->delete();
                     $sale = Sale::find($invid->id);
                     $sale->status = 'Partial';
                     $sale->save();
                     $remaining_amount = $remaining_amount - $transacamount;
                 } elseif ($amnt->amount == $remaining_amount) {
                     $transaction = Transaction::find($amnt->id);
                     $transaction->delete();
                     $sale = Sale::find($invid->id);
                     $sale->status = 'Partial';
                     $sale->save();
                     $remaining_amount = 0;
                 }
             }
         }
     }
     $salesreturn->delete();
     $saleReturnDetail = SalesReturnDetail::where('invoice_id', '=', $saleReturnInvoice->invoice_id)->get();
     if (empty($saleReturnDetail[0])) {
         echo 'deleted';
         $saleReturnInvoice->delete();
     }
 }
 /**
  * Function that searches for past trips.
  *
  * @return Response
  */
 public function searchVehicleTrips()
 {
     // Validate Input.
     $validator = Validator::make(Input::all(), array('vehicle' => 'required', 'start' => 'required', 'end' => 'required'));
     if ($validator->fails()) {
         return response()->json(['error' => 'Informacion incompleta!']);
     }
     // Check that user is part of authorized staff.
     if (Auth::user()->Type != 1) {
         // If they are unauthorized no point in returning anything.
         return response()->json(array());
     }
     // Get trips.
     $start = date('Y-m-d', strtotime(Input::get('start')));
     $end = date('Y-m-d', strtotime(Input::get('end')));
     $trips = Transport::where('VehicleId', '=', Input::get('vehicle'))->where('Date', '>=', $start)->where('Date', '<=', $end)->where('State', '=', 1)->groupBy('Date')->orderBy('Order')->get();
     $tripData = array();
     foreach ($trips as $trip) {
         $driver = Worker::find($trip->DriverId);
         $reason = '';
         switch ($trip->Type) {
             case 1:
                 // Get sale breakdown.
                 $breakdown = SaleBreakdown::find($trip->ReasonId);
                 // Get product or service.
                 $product = Stock::where('Code', '=', $breakdown->Code)->where('BranchId', '=', $driver->BranchId)->first();
                 if ($product) {
                     $reason = 'Venta de ' . $product->Description;
                 } else {
                     $service = Service::where('Code', '=', $breakdown->Code)->where('BranchId', '=', $driver->BranchId)->first();
                     $reason = 'Venta de ' . $service->Description;
                 }
                 break;
             case 2:
                 // Get sale.
                 $sale = Sale::find($trip->ReasonId);
                 // Get client or institution.
                 if ($sale->CreditorType == 1) {
                     if ($sale->CreditorId == 0) {
                         $reason = 'Venta a cliente no definido';
                     } else {
                         $client = Client::find($sale->CreditorId);
                         $reason = 'Venta a ' . $client->Name;
                     }
                 } else {
                     $institution = Institution::find($sale->CreditorId);
                     $reason = 'Venta a ' . $institution->Name;
                 }
                 break;
             case 3:
                 // Get order breakdown.
                 $breakdown = OrderBreakdown::find('OrderId', '=', $trip->ReasonId);
                 // Get product or service.
                 $product = Stock::where('Code', '=', $breakdown->Code)->where('BranchId', '=', $driver->BranchId)->first();
                 $reason = 'Produccion de ' . $product->Description;
                 break;
             case 4:
                 // Get order.
                 $order = Order::find($trip->ReasonId);
                 // Get client or institution.
                 $client = Client::find($order->ClientId);
                 if ($client->InstitutionId == 0) {
                     $reason = 'Orden de Produccion de ' . $client->Name;
                 } else {
                     $institution = Institution::find($client->InstitutionId);
                     $reason = 'Orden de Produccion de ' . $institution->Name;
                 }
                 break;
             case 5:
                 // Get storage request.
                 $request = StorageRequest::find($trip->ReasonId);
                 $reason = $request->Reason;
                 break;
             case 6:
                 // Get visit.
                 $visit = Visit::find($trip->ReasonId);
                 $reason = 'Visita ' . $visit->Result;
                 break;
             case 7:
                 // Get credit bill.
                 $creditBill = Sale::find($trip->ReasonId);
                 $reason = 'Cobro de Facturo: ' . $creditBill->Id;
                 break;
             case 8:
                 // Contract Payment.
                 $contract = Contract::find($trip->ReasonId);
                 $reason = 'Cobro de Contrato: ' . $contract->Code;
                 break;
             case 9:
                 // Provider purchase.
                 $aiOrder = AIOrder::find($trip->ReasonId);
                 $reason = 'Compra automatica ' . $aiOrder->Id;
                 break;
             case 10:
                 $reason = 'Generado por usuario.';
                 break;
         }
         array_push($tripData, array('Id' => $trip->Id, 'Date' => $trip->Date, 'Driver' => $driver->Name, 'Reason' => $reason, 'Distance' => $trip->Distance, 'Journey' => json_decode($trip->Journey, true), 'StartLat' => $trip->StartLatitude, 'StartLon' => $trip->StartLongitude, 'EndLat' => $trip->EndLatitude, 'EndLon' => $trip->EndLongitude));
     }
     $response['state'] = 'Success';
     $response['trips'] = $tripData;
     return response()->json($response);
 }
Exemple #7
0
 /**
  * Show the form for editing the specified resource.
  *
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function edit($id)
 {
     return view('dashboard/edit_sale')->with('sale', Sale::find($id))->with('products', Product::where('is_published', 1)->orderBy("title")->get());
 }
 public function postConfirm($saleId)
 {
     $sales = Sale::find($saleId);
     echo $sales->remarks = Input::get('remIn');
     $sales->save();
 }
use App\Worker;
use App\Branch;
use App\UserLevel;
use App\Notification;
use App\Sale;
use App\SaleBreakdown;
use App\Stock;
use App\Service;
use App\CashReceipt;
use App\Client;
use App\Institution;
$currentNotification = Notification::find($notification);
$currentNotification->Seen = true;
$currentNotification->save();
$permissions = json_decode(UserLevel::find(Auth::user()->UserLevel)->Permissions);
$debt = Sale::find($id);
$totalDebt = $debt->Value + $debt->Tax;
// Check to see if there have been any previous payments.
$pastPaymentTotal = 0;
$payments = CashReceipt::where('Type', '=', 2)->where('TypeId', '=', $debt->Id)->get();
foreach ($payments as $payment) {
    $pastPaymentTotal += $payment->Value;
}
$salebreakdown = SaleBreakdown::where('SaleId', '=', $debt->Id)->get();
$creditor = null;
if ($debt->CreditorType == 1) {
    $creditor = Client::find($debt->CreditorId);
} else {
    $creditor = Institution::find($debt->CreditorId);
}
$branchId = Worker::find(Auth::user()->TypeId)->BranchId;
 public function singleSaleSearch()
 {
     // Validate Input.
     $validator = Validator::make(Input::all(), array('id' => 'required'));
     $response = array();
     if ($validator->fails()) {
         $response['state'] = 'Error';
         $response['error'] = 'La identification de la transaccion es necesaria!';
         return response()->json($response);
     }
     // Check that user is part of authorized staff.
     if (Auth::user()->Type != 1) {
         $response['state'] = 'No Autorizado';
         $response['error'] = 'Usuario no autorizado!';
         return response()->json($response);
     }
     // Get sale.
     $sale = Sale::find(Input::get('id'));
     if (!$sale) {
         $response['state'] = 'Error';
         $response['error'] = 'Venta no encontrada!';
         return response()->json($response);
     }
     // Get transaction.
     $transaction = CashboxTransaction::find($sale->TransactionId);
     if (!$transaction) {
         $response['state'] = 'Error';
         $response['error'] = 'Transaccion no encontrada!';
         return response()->json($response);
     }
     $response['state'] = 'Success';
     $response['transaction'] = $transaction;
     return response()->json($response);
 }