Viewing file: SettlementController.php (2.19 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\VendorBill;
use App\Models\BillInvoice;
use App\Models\SaleFee;
use Illuminate\Support\Facades\DB;
class SettlementController extends Controller
{
function create(Request $req) {
try {
if (!auth()->user()) {
return response()->json("Unauthorized",401);
}
$vendor_id =auth()->user()->id;
$bill_no= VendorBill::select("bill_no")->orderBy("id","desc")->first();
$bill_no=$bill_no ==""? 10000 : $bill_no->bill_no+1;
$sale_ids= explode(",",$req->input("sale_ids"));
// $sales=SaleFee::select("sale_id",DB::raw('sum(grand_total) as grand_total'))->whereIn("sale_id",$sale_ids)->groupBy("sale_id")->get();
$sales=DB::select("select sum(grand_total) as order_amount,sum(total_fee) as total_charge,
sum(vendor_payable) as vendor_payable,sum(vendor_receivable) as vendor_receivable from sale_fees where sale_id in (".implode(",",$sale_ids).")");
$VendorBill=VendorBill::create([
'bill_no'=>$bill_no,
'shop_id'=>$req->input('shop_id'),
'vendor_id'=>$vendor_id,
'total_invoices'=>count($sale_ids),
'order_amount'=>$sales[0]->order_amount,
'total_charge'=>$sales[0]->total_charge,
'vendor_payable'=>$sales[0]->vendor_payable,
'vendor_receivable'=>$sales[0]->vendor_receivable,
'grand_total'=>$sales[0]->vendor_receivable-$sales[0]->vendor_payable,
'status'=>1,
'paid'=>0,
'payment_status'=>0
]);
$sales=SaleFee::select("sale_id")->whereIn("sale_id",$sale_ids)->update([
"settlement_status"=>1,
"bill_id"=>$VendorBill->id
]);
return response()->json(['message' => "Successfully Requested",'data' => $VendorBill]);
} catch (\Exception $exception) {
DB::rollback();
return response()->json(['error' => 'true', 'message' =>$exception->getMessage()],500);
}
}
}
|