Current File : /home/inlingua/public_html/crm.vprotectindia.com/app/Http/Controllers/HomeController_oldd.php |
<?php
namespace App\Http\Controllers;
use App\Model\API\CustomerMasterModel;
use App\Model\API\InvoiceDetails;
use App\Model\API\InvoiceMasters;
use App\Model\API\SaleSubscription;
use App\Model\API\Vouchers;
use Barryvdh\DomPDF\Facade as PDF;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Softon\Indipay\Facades\Indipay;
use Yajra\Datatables\Datatables;
class HomeController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
}
/**
* Show the application dashboard.
*
* @return \Illuminate\Contracts\Support\Renderable
*/
public function index()
{
$headData = $this->deshboard_count();
return view('user.home',compact('headData'));
}
public function sale_sub(Request $request)
{
//dd($query);
$headData = $this->deshboard_count();
return view('user.rptsales_subs',compact('headData'));
}
public function getsubs()
{
$id = Auth::user()->user_name;
$query= DB::table('sales_subsc_details')->where('customer_code',$id)->get();
// if(Auth::user()->user_type!="user")
// {
// $query= DB::table('sales_subsc_details')->get();
// }
return Datatables::of($query)->make(true);
}
public function invoices()
{
$headData = $this->deshboard_count();
return view('user.rpt_invoice',compact('headData'));
}
public function getinv()
{
//$query=InvoiceMasters::query();
// $ledgers=Ledgers::find(1)->ledgers()-first();
//InvoiceMasters::find(1)->ledgers()->first()->amount
// $totalamt=0;
// $recamt=50;
$id = Auth::user()->user_name;
$cust_id=CustomerMasterModel::where('customer_code',$id)->first()->id;
//->value('fname')->get();
// $query= DB::table('invoice_masters')->where('customer_id',$cust_id)->get();
$query = InvoiceMasters::where('customer_id',$cust_id)->get();
return Datatables::of($query)
//->addColumn('totalamt', $InvoiceMasters)
// ->addColumn('action', 'hello')
->addColumn('totalamt', function(InvoiceMasters $invoices) {
$totalamt=isset(InvoiceMasters::find($invoices->id)->ledgers()->first()->amount)?InvoiceMasters::find($invoices->id)->ledgers()->first()->amount:"0";
return $totalamt;
})
->addColumn('balance', function(InvoiceMasters $invoices) {
$recamt=InvoiceMasters::find($invoices->id)->receipt()->sum('amount');
//$totalamt=($totalamt-$recamt);
return $recamt;
})
->addColumn('status', function(InvoiceMasters $invoices) {
$totalamt=isset(InvoiceMasters::find($invoices->id)->ledgers()->first()->amount)?InvoiceMasters::find($invoices->id)->ledgers()->first()->amount:"0";
$recamt=InvoiceMasters::find($invoices->id)->receipt()->sum('amount');
$status="Pending";
if($totalamt==$recamt)$status='Completed';
return $status;
})
->addColumn('action', function(InvoiceMasters $invoices) {
$totalamt=isset(InvoiceMasters::find($invoices->id)->ledgers()->first()->amount)?InvoiceMasters::find($invoices->id)->ledgers()->first()->amount:"0";
$recamt=InvoiceMasters::find($invoices->id)->receipt()->sum('amount');
$balance=($totalamt-$recamt);
$status='<a class="btn btn-primary btn-sm" target="_blank" href="'.route('home.print_invoice',$invoices->id).'" >Print</a>';
if($totalamt!=$recamt)$status .='|<a class="btn btn-warning btn-sm btn_pay"
href="'.route('pay.paymentget',['id'=>$invoices->id,'balance'=>$balance]).'" >Pay</a>';
//.route('pay.paymentget',['id'=>$invoices->id,'balance'=>$balance]).
return $status;
})->addColumn('details_url', function($invoices) {
return route('home.item_details', $invoices->id);
})
// ->addColumn('action', 'user.pay')
->rawColumns(['action'])
->make(true);
}
public function getItemDetailsSingleData($id)
{
$item_list = InvoiceMasters::findOrFail($id)->items;
return Datatables::of($item_list)->make(true);
}
public function payments(Request $request)
{
//dd($query);
$headData = $this->deshboard_count();
return view('user.rpt_payments',compact('headData'));
}
public function getpayments()
{
$id = Auth::user()->user_name;
$cust_id=CustomerMasterModel::where('customer_code',$id)->first()->id;
$query = Vouchers::where('cust_id',$cust_id)->with('bankallocation')->get();
return Datatables::of($query)->addColumn('details_url', function($Vouchers) {
return route('home.voucher_details', $Vouchers->id);
})->make(true);
}
public function getpendingInvoiceList()
{
$Invoicequery = InvoiceMasters::where('customer_id',Auth::user()->id)->get();
$pending_inv= array();
foreach ($Invoicequery as $row) {
$totalamt = isset(InvoiceMasters::find($row->id)->ledgers()->first()->amount)?InvoiceMasters::find($row->id)->ledgers()->first()->amount:"0";
$recamt =InvoiceMasters::find($row->id)->receipt()->sum('amount');
if($totalamt > $recamt)
{
$pending_inv []= array(
'invoice'=>$row->invoice_number,
'id'=>$row->id,
'balance'=>($totalamt-$recamt),
// 'totalamt'=>$totalamt,
// 'recamt'=>$recamt,
);
//$pending_inv = array_merge($pending_inv, $add_inv);
}
}
return $pending_inv;
}
public function getVoucherDetailsSingleData($id)
{
$voucher_list = Vouchers::findOrFail($id)->voucher_list;
return Datatables::of($voucher_list)->make(true);
}
public function print_invoice($id)
{
$invoice_mast=InvoiceMasters::where('id',$id)->with('items','ledgers')->first();
//$invoice_dt=InvoiceDetails::where('main_id',$invoice_mast->id)->get();
// return view('user.invoice_print',compact('invoice_mast'));
$pdf = PDF::loadView('user.invoice_print',compact('invoice_mast'));
return $pdf->stream('invoice.pdf');
}
public function deshboard_count()
{
$paid=0;
$unpaid=0;
$totalamt=0;
$recamt=0;
$id = Auth::user()->user_name;
$cust_id=CustomerMasterModel::where('customer_code',$id)->first()->id;
$Subscriptionquery = SaleSubscription::where('customer_code',$id)->count();
$Invoicequery = InvoiceMasters::where('customer_id',$cust_id)->get();
$balance=0;
$toal_invamt=0;
$toaml_maininv=0;
$total_recamt=Vouchers::where('cust_id',$cust_id)->sum('amount');
foreach ($Invoicequery as $row) {
$toaml_maininv+=$totalamt = isset(InvoiceMasters::find($row->id)->ledgers()->first()->amount)?InvoiceMasters::find($row->id)->ledgers()->first()->amount:"0";
$recamt =InvoiceMasters::find($row->id)->receipt()->sum('amount');
$balance+=($totalamt-$recamt);
if($totalamt==$recamt)
{
$paid++;
}
else{
$unpaid ++;
}
}
return array(
'subscription' =>$Subscriptionquery,
'invoice'=>$Invoicequery->count(),
'paid'=>$paid,
'unpaid'=>$unpaid,
'balance'=>($toaml_maininv-$total_recamt)
);
}
}