htmlBuilder = $htmlBuilder;
$this->htmlBuilder->parameters([
'paging' => true,
'searching' => true,
'info' => false,
'searchDelay' => 350,
'language' => [
'url' => Module::asset('core:datatable.json')
],
]);
Parent::__construct();
}
/**
* Display a listing of the resource.
* @param Request $request
* @throws
* @return Response
*/
public function index(Request $request)
{
if ($request->ajax()) {
return DataTables::of(Invoice::select(['id','user_id', 'amount','content', 'paid','description','created_at']))
->addColumn('action',function($model){
// return parent::deleteAction($model->id).
return parent::redirectAction(route('admin.financial.invoices.paid',$model->id),'پرداخت','primary')
.parent::redirectAction('invoices/edit?id='.$model->id,'ویرایش','warning mr-1');
})
->addColumn('trace',function($model){
$check=cart::where('invoice_id',$model->id)->first();
if($check == null){
return '';
}else{
return $check->trace ;
}
})
->editColumn('user_id',function($model){
return $model->user->fname.' '.$model->user->lname;
})
// ->editColumn('paid',function($model){
// return ''.($model->paid?'پرداخت شده':'در انتظار پرداخت').'';
// })
->editColumn('paid', function($model) {
if($model->paid==1){
return " پرداخت شده";
}elseif($model->paid==2){
return "کارت به کارت";
}else{
return "در انتظار پرداخت";
}
})
->rawColumns(['action','paid','trace'])
->make(true);
}
$object = 'فاکتور ها';
$html = $this->htmlBuilder
->addColumn(['data' =>'id', 'name' => 'id', 'title' => 'شناسه'])
->addColumn(['data' => 'user_id', 'name' => 'user_id', 'title' => 'نام کاربر'])
->addColumn(['data' => 'amount', 'name' => 'amount', 'title' => 'مبلغ(ر)'])
->addColumn(['data' => 'description', 'name' => 'description', 'title' => 'بابت'])
->addColumn(['data' => 'paid', 'name' => 'paid', 'title' => 'وضعیت'])
->addColumn(['data' => 'content', 'name' => 'content', 'title' => 'توضیحات'])
->addColumn(['data' => 'created_at', 'name' => 'created_at', 'title' => 'ثبت'])
->addColumn(['data' => 'action', 'name' => 'action', 'title' => 'عملیات']);
return view('core::shared.datatable', compact(['html','object']));
}
/**
* Show the form for editing the specified resource.
* @param Request $request
* @return Response
*/
public function edit(Request $request)
{
$data['route_action'] = 'financial.invoices.update';
$data['data']=Invoice::find($request->id);
return view('core::shared.edit', $data);
}
/**
* Update the specified resource in storage.
* @param Request $request
* @return Response
*/
public function update(Request $request)
{
Invoice::find(($request->id))->update($request->all());
return redirect()->route('admin.financial.invoices');
}
/**
* Show the specified resource.
* @return Response
*/
public function show()
{
return view('training::show');
}
public function setPaid(Request $request){
$invoice = Invoice::find($request->id);
if($invoice->off_code !=null){
$use=Discount::where('code',$invoice->off_code)->first()->use;
if($use > 0)
Discount::where('code',$invoice->off_code)->update(['use'=>$use-1]);
}
$invoice->update(['paid'=>1]);
$class= explode('@',$invoice->handler)[0];
$func= explode('@',$invoice->handler)[1];
$class::$func($invoice->data);
return back();
}
public function pay(Request $request){
$invoice = Invoice::find($request->id);
if($invoice->off_code !=null){
$use=Discount::where('code',$invoice->off_code)->first()->use;
if($use > 0)
Discount::where('code',$invoice->off_code)->update(['use'=>$use-1]);
}
$invoice->update(['paid'=>1]);
$class= explode('@',$invoice->handler)[0];
$func= explode('@',$invoice->handler)[1];
$class::$func($invoice->data);
return response()->json([
'data' => true,
'message'=>'ok',
'status' => 200
]); }
public function destroy(Request $request)
{
Invoice::find($request->id)->delete();
return 'OK';
}
}