Beispiel #1
0
 protected function authenticated()
 {
     /* UPDATING OVERDUE */
     //all collectibles.. if the due date and current year is the same, then if it is a week past the due date week, it is overdue
     $invoices = SalesInvoice::whereRaw('(YEAR(now()) = YEAR(due_date)) AND (week(now()) - week(due_date) >= 1) AND (status != "Collected" AND status != "Pending" AND status != "Cancelled")');
     //all collectibles.. if the due date and current year is NOT the same, then if the week of due date is greater than current week (meaning next year na), it is overdue
     $invoicesYears = SalesInvoice::whereRaw('(YEAR(now()) - YEAR(due_date) >= 1) AND (wEEK(due_Date) - WEEK(now()) >= 1) AND (status != "Collected" AND status != "Pending" AND status != "Cancelled")');
     //if client has a sales invoice overdue for 4 months or 120 days.. make the client blacklisted.
     $invoicesForClient = SalesInvoice::whereRaw('(datediff(now(), due_date) >= 120) and (status != "Collected" AND status != "Pending" AND status != "Cancelled")')->get();
     $invoices->update(['status' => "Overdue"]);
     $invoicesYears->update(['status' => "Overdue"]);
     foreach ($invoicesForClient as $invoice) {
         $client = Client::find($invoice->client_id);
         $client->update(['status' => "Blacklisted"]);
     }
     // $overdues = \DB::table('sales_invoices')->whereRaw('status = "Overdue"');
     $OverdueClients = DB::SELECT("SELECT DISTINCT c.id as 'id' FROM clients c JOIN sales_invoices si on si.client_id = c.id WHERE si.status = 'Overdue'");
     $today = Carbon::today();
     $mondayOf = Carbon::now()->startOfWeek();
     // if($today == $mondayOf)
     // {
     foreach ($OverdueClients as $OverdueClient) {
         $collectionLogs = DB::SELECT("SELECT COUNT(id) as id FROM collection_logs WHERE client_id='{$OverdueClient->id}' AND date = '{$mondayOf}' AND action = 'Call and Send SOA Overdue'");
         // foreach ($collectionLogs as $collectionLog)
         // {
         if ($collectionLogs[0]->id == 0) {
             $cLog = new CollectionLog();
             $cLog->date = $mondayOf;
             $cLog->action = 'Call and Send SOA Overdue';
             $cLog->client_id = $OverdueClient->id;
             $cLog->status = 'To Do';
             $cLog->save();
             $overdues = DB::SELECT("SELECT id FROM sales_invoices where status= 'Overdue' AND client_id = '{$OverdueClient->id}'");
             foreach ($overdues as $overdue) {
                 $sicl = new SalesInvoiceCollectionLog();
                 $sicl->sales_invoice_id = $overdue->id;
                 $sicl->client_id = $cLog->client_id;
                 $sicl->collection_log_id = $cLog->id;
                 $sicl->save();
             }
         }
         //}
     }
     //}
     return redirect()->action('DashboardController@index');
 }
 /**
  * Show the form for creating a new resource.
  *
  * @return \Illuminate\Http\Response
  */
 public function create($id, Request $request)
 {
     $salesinvoices = SalesInvoice::where('client_id', $id)->where('status', '!=', 'Collected')->where('status', '!=', 'Draft')->where('status', '!=', 'Pending')->orderBy('status', 'asc')->get();
     $actionOptions = [];
     $actionOptions['Text'] = 'Text';
     $actionOptions['Call'] = 'Call';
     $actionOptions['Fax'] = 'Fax';
     $actionOptions['Send SOA'] = 'Send SOA';
     $actionOptions['Email'] = 'Email';
     $actionOptions['Visit'] = 'Visit';
     $actionOptions['Call and Send SOA'] = 'Call and Send SOA';
     $reasonOptions = Reason::lists('reason', 'id');
     $statusOptions = [];
     $statusOptions['To Do'] = 'To Do';
     $statusOptions['Done'] = 'Done';
     $method = 'post';
     return view('collection_logs.create', compact('id', 'method', 'actionOptions', 'statusOptions', 'reasonOptions', 'id', 'salesinvoices'));
 }
Beispiel #3
0
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function handle()
 {
     //\DB::table('sales_invoices')->whereRaw('(week(now()) - week(due_date) >= 1) and (status != "Collected")')->update(['status' => "Overdue"]);
     // $invoices = DB::table('sales_invoices')->whereRaw('(week(now()) - week(due_date) >= 1) and (status != "Collected")');
     // $invoices = DB::SELECT("SELECT * FROM sales_invoices WHERE (week(now()) - week(due_Date) >= 1) and (status != 'Collected')");
     $invoices = SalesInvoice::whereRaw('(week(now()) - week(due_date) >= 1) and (status != "Collected")');
     $invoicesForClient = SalesInvoice::whereRaw('(week(now()) - week(due_date) >= 1) and (status != "Collected")')->get();
     $invoices->update(['status' => "Overdue"]);
     foreach ($invoicesForClient as $invoice) {
         $client = Client::find($invoice->client_id);
         $client->update(['status' => "Blacklisted"]);
     }
     // $overdues = \DB::table('sales_invoices')->whereRaw('status = "Overdue"');
     $overdues = DB::SELECT("SELECT * FROM sales_invoices where status = 'Overdue'");
     $today = Carbon::today();
     $mondayOf = Carbon::now()->startOfWeek();
     if ($today == $mondayOf) {
         foreach ($overdues as $overdue) {
             $cLog = new CollectionLog();
             $cLog->date = $mondayOf;
             $cLog->action = 'Call and Send SOA Overdue';
             $cLog->client_id = $overdue->client_id;
             $cLog->status = 'To Do';
             $cLog->save();
             $sicl = new SalesInvoiceCollectionLog();
             $sicl->sales_invoice_id = $overdue->id;
             $sicl->client_id = $cLog->client_id;
             $sicl->collection_log_id = $cLog->id;
             $sicl->save();
         }
     }
     // $reason = new Reason;
     // $reason->reason = 'WEW';
     // $reason->save();
     //problem is if saturday, it will be 6-7 so it will subtract
     //\DB::table('sales_invoices')->whereRaw('((date_add(due_date,interval 6-dayofweek(due_date) day)) < (date_add(date(now()),interval 6-dayofweek(date(now())) day))) and (status != "Collected")')->update(['status'=>"Overdue"]);
 }
 public function filter()
 {
     $input = Request::all();
     $filter = $input['filter'];
     if ($filter == 'All') {
         return redirect()->action('CollectiblesController@index');
     }
     $clients = Client::where('status', $filter)->paginate(10);
     $overdue = new SalesInvoice();
     $delivered = new SalesInvoice();
     $check = new SalesInvoice();
     $salesinvoice = new SalesInvoice();
     $salesinvoice2 = new SalesInvoice();
     $salesinvoice3 = new SalesInvoice();
     $salesinvoiceTotal;
     foreach ($clients as $client) {
         $overdue[$client->id] = SalesInvoice::where('client_id', $client->id)->where('status', 'Overdue')->count();
         $delivered[$client->id] = SalesInvoice::where('client_id', $client->id)->where('status', 'Delivered')->count();
         $check[$client->id] = SalesInvoice::where('client_id', $client->id)->where('status', 'Check on Hand')->count();
         // $salesinvoice[$client->id] = DB::SELECT("SELECT sum(total_amount) as total FROM sales_invoices
         //                        WHERE (status = 'Overdue' or  status = 'Delivered') and client_id = '$client->id'");
         $salesinvoice = SalesInvoice::where('status', '=', 'Overdue')->where('client_id', '=', $client->id)->sum('total_amount');
         $salesinvoice2 = SalesInvoice::where('status', 'Delivered')->where('client_id', $client->id)->sum('total_amount');
         $salesinvoice3 = SalesInvoice::where('status', 'Check on Hand')->where('client_id', $client->id)->sum('total_amount');
         $salesinvoiceTotal[$client->id] = $salesinvoice + $salesinvoice2 + $salesinvoice3;
     }
     // for ($x = $clients[0]; $x < count($clients)+1; $x++)
     // {
     //    $overdue[$x] = SalesInvoice::where('client_id', $x)->where('status', 'Overdue')->count();
     //    $delivered[$x] = SalesInvoice::where('client_id', $x)->where('status', 'Delivered')->count();
     //    $pending[$x] = SalesInvoice::where('client_id', $x)->where('status', 'Pending')->count();
     // }
     if ($clients == "[]") {
         return redirect()->action('CollectiblesController@index');
     }
     $clients->appends(Request::only('filter'));
     return view('collectibles.index', compact('clients', 'overdue', 'delivered', 'check', 'salesinvoiceTotal'));
 }
 public function collectedFromLog(Requests\UpdateStatusRequest $request)
 {
     $input = Request::all();
     $salesInvoice = SalesInvoice::find($input['id']);
     $client = $salesInvoice->Client;
     if ($client->payment_terms == 'Cash') {
         $salesInvoice->update(['status' => "Collected", 'date_collected' => Carbon::now(), 'or_number' => $input['or_number']]);
         Flash::success('Successfully Collected SI#' . $salesInvoice->si_no);
     } else {
         if ($input['or_number'] != 'Cash' && $input['or_number'] != 'CASH' && $input['or_number'] != 'cash') {
             $salesInvoice->update(['status' => "Collected", 'date_collected' => Carbon::now(), 'or_number' => $input['or_number']]);
             Flash::success('Successfully Collected SI#' . $salesInvoice->si_no);
         } else {
             Flash::error("This client's payment terms is not Cash");
         }
     }
     $clientId = $salesInvoice->client_id;
     $hasOverdue = DB::SELECT("SELECT COUNT(*) FROM sales_invoices WHERE status='overdue'");
     if ($hasOverdue == 0) {
         $client = Client::find($clientId);
         $client->update(['status' => "Good"]);
     }
     Activity::log('Sales Invoice ' . $salesInvoice['si_no'] . ' was collected');
     return redirect()->action('CollectionLogsController@index', $client->id);
 }
 public function destroy($id)
 {
     $invoiceItem = InvoiceItem::find($id);
     $salesId = $invoiceItem->salesInvoice->id;
     $invoice = SalesInvoice::find($salesId);
     $invoice->update(['total_amount' => $invoice->total_amount - $invoiceItem->total_price]);
     $invoiceItem->delete();
     return redirect()->action('SalesInvoicesController@edit', [$salesId]);
 }
Beispiel #7
0
@extends('layouts.app')
@section('content')

<?php 
//namespace App\Http\Controllers;
use App\Item;
use App\SalesInvoice;
use App\PriceLog;
use App\Supplier;
?>

<h2 class="sub-header">New Sales Invoice</h2><hr>
<h3 class="sub-header"><?php 
echo SalesInvoice::find($invoice_id)->Client->name;
?>
 Sales Invoice</h3>

{!! Form::open(['route' => ['invoices.creation'], 'method' => 'post' ]) !!}

{!! Form::hidden('invoice_no', $invoice_id) !!}

<!-- {!! Form::hidden('item_count', 1, ['class' => 'itemCount']) !!}
 -->

<div class="table-responsive">
@include('includes.required_errors')
@include('flash::message')
<table class="table">
<!--   <thead>
    <tr>
      <th>Item</th>
 /**
  * Display the specified resource.
  *
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function show($id)
 {
     $client = Client::find($id);
     // $sales_invoices = DB::select("SELECT * FROM sales_invoices si JOIN clients c ON si.client_id = c.id WHERE c.id='$id'");
     // $sales_invoices = SalesInvoice::where('client_id', $id);
     $sales_invoices = SalesInvoice::where('client_id', $id)->orderby('date', 'desc')->paginate(10);
     return view('clients.show', compact('client', 'sales_invoices'));
 }