U8ServerService.php 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. <?php
  2. namespace App\Service;
  3. use App\Jobs\ProcessDataJob;
  4. use App\Model\Depart;
  5. use App\Model\Employee;
  6. use App\Model\EmployeeDepartPermission;
  7. use App\Model\EmployeeIndex;
  8. use App\Model\Product;
  9. use App\Model\Record;
  10. use App\Model\RevenueCost;
  11. use App\Model\RevenueCostTotal;
  12. use App\Model\SalaryEmployee;
  13. use Illuminate\Database\Schema\Blueprint;
  14. use Illuminate\Support\Facades\DB;
  15. use Illuminate\Support\Facades\Log;
  16. use Illuminate\Support\Facades\Schema;
  17. class U8ServerService extends Service
  18. {
  19. protected $databaseService;
  20. /**
  21. * @var string|null
  22. */
  23. protected $error;
  24. /**
  25. * U8ServerService constructor.
  26. */
  27. public function __construct($loginUser = [])
  28. {
  29. $service = new U8DatabaseServerService($loginUser);
  30. $this->databaseService = $service->db;
  31. $this->error = $service->error;
  32. }
  33. /**
  34. * 获取错误信息
  35. *
  36. * @return string|null
  37. */
  38. public function getError()
  39. {
  40. return $this->error;
  41. }
  42. public function purchaseRequisition($data, $user){
  43. $model = $this->databaseService->table('PU_AppVouch as a')
  44. ->leftJoin('Person as c', 'c.cPersonCode', 'a.cPersonCode')
  45. ->where('a.cMaker',$user['username'])
  46. ->where('a.iverifystateex',0)
  47. ->select('a.cMaker as crt_name', 'c.cPersonName as purchase_name','a.cBusType as business_type','a.cCode as order_number','a.dDate as order_date')
  48. ->orderBy('a.ID','desc');
  49. $list = $this->limit($model,'',$data);
  50. return [true , $list];
  51. }
  52. public function purchaseRequisitionDetail($data, $user){
  53. if(empty($data['order_number'])) return [false, '采购请购单号不能为空'];
  54. $order = $this->databaseService->table('PU_AppVouch as a')
  55. ->leftJoin('Person as c', 'c.cPersonCode', 'a.cPersonCode')
  56. // ->where('a.cMaker',$user['username'])
  57. // ->where('a.iverifystateex',0)
  58. ->select('a.cMaker as crt_name', 'c.cPersonName as purchase_name','a.cBusType as business_type','a.cCode as order_number','a.dDate as order_date','a.ID as id')
  59. ->first();
  60. if(empty($order)) return [false, '采购请购单不存在'];
  61. $order = $order->toArray();
  62. $detail = $this->databaseService->table('PU_AppVouchs as a')
  63. ->leftJoin('Inventory as b', 'b.cInvCode', 'a.cInvCode')
  64. ->leftJoin('ComputationUnit as c', 'c.cComunitCode', 'b.cComUnitCode')
  65. ->where('a.ID', $order['id'])
  66. ->select('b.cInvName as product_title','b.cInvCode as product_code','a.fQuantity as quantity','c.cComUnitName as unit_title','a.dRequirDate as need_arrived_date')
  67. ->get()->toArray();
  68. $order['detail'] = $detail;
  69. return [true, $order];
  70. }
  71. public function purchaseOrder($data, $user){
  72. $model = $this->databaseService->table('PO_Pomain as a')
  73. ->leftJoin('Vendor as c', 'c.cVenCode', 'a.cVenCode')
  74. ->where('a.cMaker',$user['username'])
  75. ->where('a.iverifystateex',0)
  76. ->select('a.cMaker as crt_name', 'a.cBusType as business_type','a.cPOID as order_number','a.dPODate as order_date','c.cVenName as supplier_title')
  77. ->orderBy('a.POID','desc');
  78. $list = $this->limit($model,'',$data);
  79. return [true , $list];
  80. }
  81. public function purchaseOrderDetail($data, $user){
  82. if(empty($data['order_number'])) return [false, '采购单号不能为空'];
  83. $order = $this->databaseService->table('PO_Pomain as a')
  84. ->leftJoin('Vendor as c', 'c.cVenCode', 'a.cVenCode')
  85. // ->where('a.cMaker',$user['username'])
  86. // ->where('a.iverifystateex',0)
  87. ->select('a.cMaker as crt_name', 'a.cBusType as business_type','a.cPOID as order_number','a.dPODate as order_date','c.cVenName as supplier_title','a.POID as id')
  88. ->first();
  89. if(empty($order)) return [false, '采购单不存在'];
  90. $order = $order->toArray();
  91. $detail = $this->databaseService->table('PO_Podetails as a')
  92. ->leftJoin('Inventory as b', 'b.cInvCode', 'a.cInvCode')
  93. ->leftJoin('ComputationUnit as c', 'c.cComunitCode', 'b.cComUnitCode')
  94. ->where('a.POID', $order['id'])
  95. ->select('b.cInvName as product_title','b.cInvCode as product_code','a.iQuantity as quantity','c.cComUnitName as unit_title','a.iSum as amount')
  96. ->get()->toArray();
  97. $order['detail'] = $detail;
  98. return [true, $order];
  99. }
  100. public function paymentOrder($data, $user){
  101. $model = $this->databaseService->table('AP_ApplyPayVouch as a')
  102. ->leftJoin('Vendor as c', 'c.cVenCode', 'a.cDwCode')
  103. ->where('a.cOperator',$user['username'])
  104. ->whereNull('a.cCheckMan')
  105. ->select('a.cOperator as crt_name', 'c.cVenName as supplier_title','a.cVouchID as order_number','a.dVouchDate as order_date')
  106. ->orderBy('a.PID','desc');
  107. $list = $this->limit($model,'',$data);
  108. return [true , $list];
  109. }
  110. public function paymentOrderDetail($data, $user){
  111. if(empty($data['order_number'])) return [false, '付款单号不能为空'];
  112. $order = $this->databaseService->table('AP_ApplyPayVouch as a')
  113. ->leftJoin('Vendor as c', 'c.cVenCode', 'a.cDwCode')
  114. // ->where('a.cOperator',$user['username'])
  115. // ->whereNull('a.cCheckMan')
  116. ->select('a.cOperator as crt_name', 'c.cVenName as supplier_title','a.cVouchID as order_number','a.dVouchDate as order_date','a.PID as id')
  117. ->first();
  118. if(empty($order)) return [false, '付款单不存在'];
  119. $order = $order->toArray();
  120. $detail = $this->databaseService->table('AP_ApplyPayVouchs as a')
  121. ->where('a.PID', $order['id'])
  122. ->select('a.cSource as source','a.cCoVouchID as source_order_number','a.iApplyAmt_f as amount')
  123. ->get()->toArray();
  124. $order['detail'] = $detail;
  125. return [true, $order];
  126. }
  127. public function getOrderDetails($data,$user){
  128. $type = $data['type'];
  129. if($type == 1){
  130. // 采购单
  131. [$success, $order] = $this->purchaseOrderDetail($data,$user);
  132. }elseif ($type == 2){
  133. // 请购单
  134. [$success, $order] = $this->purchaseRequisitionDetail($data,$user);
  135. }else{
  136. // 付款单
  137. [$success, $order] = $this->paymentOrderDetail($data,$user);
  138. }
  139. return [$success, $order];
  140. }
  141. }