|
|
@@ -14,6 +14,7 @@ use App\Jobs\ProcurementEnquiry;
|
|
|
use App\Jobs\ProcurementReceive;
|
|
|
use App\Jobs\ProcurementWaitConfirmInform;
|
|
|
use App\Material;
|
|
|
+use App\Owner;
|
|
|
use App\Procurement;
|
|
|
use App\ProcurementCheckSheet;
|
|
|
use App\ProcurementDeliverie;
|
|
|
@@ -23,6 +24,7 @@ use App\Services\ConfigurationService;
|
|
|
use App\Services\OwnerMaterialService;
|
|
|
use App\Services\ProcurementService;
|
|
|
use App\Services\ProcurementTotalBillService;
|
|
|
+use App\Services\SupplierService;
|
|
|
use App\Supplier;
|
|
|
use Illuminate\Http\Request;
|
|
|
use Illuminate\Support\Carbon;
|
|
|
@@ -70,9 +72,13 @@ class ProcurementController extends Controller
|
|
|
->with(['initiator','ownerMaterial.file','ownerMaterial.material','supplier','ownerMaterial.owner'=>function($query)use($owner_ids){
|
|
|
$query->with('customer')->whereIn('id',$owner_ids);
|
|
|
},'procurementDeliveries'])
|
|
|
+ ->whereHas('ownerMaterial',function($builder)use($owner_ids){
|
|
|
+ $builder->whereHas('owner',function ($build)use($owner_ids){
|
|
|
+ $build->whereIn('id',$owner_ids);
|
|
|
+ });
|
|
|
+ })
|
|
|
->paginate($param['paginate'] ?? 50);
|
|
|
foreach ($procurements as $procurement){
|
|
|
-// dd($procurement);
|
|
|
if (empty($procurement->procurementDeliveries))continue;
|
|
|
if (Carbon::now()->gt($procurement['deadline'])){
|
|
|
$procurement->isFinishEnquiry=true;
|
|
|
@@ -265,10 +271,20 @@ class ProcurementController extends Controller
|
|
|
{
|
|
|
if(!Gate::allows('采购管理-财务-对账单')){ return ["success"=>false,"data"=>"您无此权限操作!"]; }
|
|
|
$paginateParams=$request->input();
|
|
|
+ /**@var SupplierService $supplierService*/
|
|
|
+ $supplierService=app(SupplierService::class);
|
|
|
+ $supplier_ids=$supplierService->screenSupplierIds();
|
|
|
$procurementCheckSheets=ProcurementCheckSheet::query()
|
|
|
->orderByDesc('id')
|
|
|
->filter($filters)
|
|
|
->with(['procurementDelivery.procurement.supplier','procurementDelivery.procurement.ownerMaterial.material','procurementDelivery.receiver'])
|
|
|
+ ->whereHas('procurementDelivery',function($builder)use($supplier_ids){
|
|
|
+ $builder->whereHas('procurement',function ($build)use($supplier_ids){
|
|
|
+ $build->whereHas('supplier',function ($build)use($supplier_ids){
|
|
|
+ $build->whereIn('id',$supplier_ids);
|
|
|
+ });
|
|
|
+ });
|
|
|
+ })
|
|
|
->paginate($param['paginate'] ?? 50);
|
|
|
$suppliers=Supplier::query()->select('id','name')->get();
|
|
|
$materials=Material::query()->select('id','name')->get();
|
|
|
@@ -279,7 +295,6 @@ class ProcurementController extends Controller
|
|
|
$this->gate('采购管理-财务-对账单');
|
|
|
$id=$request->input('procurementCheckSheetId');
|
|
|
$invoice_number=$request->input('invoice_number');
|
|
|
-
|
|
|
$procurementCheckSheet=ProcurementCheckSheet::query()->where('id',$id)->update(['invoice_number'=>$invoice_number]);
|
|
|
if ($procurementCheckSheet) return ['success' => true,'data' => $invoice_number];
|
|
|
else return ['success' => false, 'message' => '添加失败'];
|
|
|
@@ -301,6 +316,11 @@ class ProcurementController extends Controller
|
|
|
/** @var Builder $query */
|
|
|
$query->with('customer')->whereIn('id',$owner_ids);
|
|
|
},'procurementDeliveries'])
|
|
|
+ ->whereHas('ownerMaterial',function($builder)use($owner_ids){
|
|
|
+ $builder->whereHas('owner',function ($build)use($owner_ids){
|
|
|
+ $build->whereIn('id',$owner_ids);
|
|
|
+ });
|
|
|
+ })
|
|
|
->where('type',0) //只取采购单
|
|
|
->paginate($param['paginate'] ?? 50);
|
|
|
foreach ($procurements as $procurement){
|
|
|
@@ -329,7 +349,13 @@ class ProcurementController extends Controller
|
|
|
->filter($filters)
|
|
|
->with(['initiator','ownerMaterial.material','ownerMaterial.owner'=>function($query)use($owner_ids){
|
|
|
$query->with('customer')->whereIn('id',$owner_ids);
|
|
|
- },'procurementDeliveries'])->get();
|
|
|
+ },'procurementDeliveries'])
|
|
|
+ ->whereHas('ownerMaterial',function($builder)use($owner_ids){
|
|
|
+ $builder->whereHas('owner',function ($build)use($owner_ids){
|
|
|
+ $build->whereIn('id',$owner_ids);
|
|
|
+ });
|
|
|
+ })
|
|
|
+ ->get();
|
|
|
foreach ($procurements as $procurement){
|
|
|
if (empty($procurement->procurementDeliveries))continue;
|
|
|
$procurement->deliver_amount=$procurement->procurementDeliveries->sum('amount');
|
|
|
@@ -362,9 +388,19 @@ class ProcurementController extends Controller
|
|
|
//对账单报表导出
|
|
|
public function checkBillExport(Request $request,ProcurementCheckSheetFilters $filters){
|
|
|
$this->gate('采购管理-财务-对账单');
|
|
|
+ /**@var SupplierService $supplierService*/
|
|
|
+ $supplierService=app(SupplierService::class);
|
|
|
+ $supplier_ids=$supplierService->screenSupplierIds();
|
|
|
$procurementCheckSheets=ProcurementCheckSheet::query()
|
|
|
->filter($filters)
|
|
|
->with(['procurementDelivery.procurement.supplier','procurementDelivery.procurement.ownerMaterial.material','procurementDelivery.receiver'])
|
|
|
+ ->whereHas('procurementDelivery',function($builder)use($supplier_ids){
|
|
|
+ $builder->whereHas('procurement',function ($build)use($supplier_ids){
|
|
|
+ $build->whereHas('supplier',function ($build)use($supplier_ids){
|
|
|
+ $build->whereIn('id',$supplier_ids);
|
|
|
+ });
|
|
|
+ });
|
|
|
+ })
|
|
|
->get();
|
|
|
$procurementCheckSheetStatus=ProcurementCheckSheet::status;
|
|
|
$row = ['采购编号','采购日期','送货日期','供应商名称','耗材编号','耗材','采购数量','送货数量','签收人','签收日期','应付金额','发票号','状态'];
|
|
|
@@ -398,6 +434,11 @@ class ProcurementController extends Controller
|
|
|
/** @var Builder $query */
|
|
|
$query->with('customer')->whereIn('id',$owner_ids);
|
|
|
},'procurementDeliveries'])
|
|
|
+ ->whereHas('ownerMaterial',function($builder)use($owner_ids){
|
|
|
+ $builder->whereHas('owner',function ($build)use($owner_ids){
|
|
|
+ $build->whereIn('id',$owner_ids);
|
|
|
+ });
|
|
|
+ })
|
|
|
->where('type',0) //只取采购单
|
|
|
->get();
|
|
|
foreach ($procurements as $procurement){
|