PurchaseOrderService.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. namespace bizGhs\order\services;
  3. use bizGhs\base\services\BaseService;
  4. use bizGhs\order\classes\PurchaseOrderClass;
  5. use Yii;
  6. class PurchaseOrderService extends BaseService
  7. {
  8. public static $baseFile = '\bizGhs\order\classes\PurchaseOrderClass';
  9. //所有的欠款采购单 ssh 2021.1.26
  10. public static function getDebtList($where)
  11. {
  12. $get = Yii::$app->request->get();
  13. $allowedPageSizes = [100, 200, 300];
  14. $pageSize = isset($get['pageSize']) && in_array((int)$get['pageSize'], $allowedPageSizes, true)
  15. ? (int)$get['pageSize'] : 100;
  16. $page = max(1, (int)($get['page'] ?? 1));
  17. Yii::$app->request->setQueryParams(array_merge($get, ['page' => $page, 'pageSize' => $pageSize]));
  18. $result = PurchaseOrderClass::getList('*', $where, 'addTime DESC');
  19. $result['debtNum'] = $result['totalNum'] ?? 0;
  20. $list = $result['list'] ?? [];
  21. if (!empty($list)) {
  22. foreach ($list as $key => $value) {
  23. $debtPrice = bcadd((string)($value['debtPrice'] ?? '0'), '0', 2);
  24. $remainDebtPrice = bcadd((string)($value['remainDebtPrice'] ?? '0'), '0', 2);
  25. // 历史单未回填 remain 时用 actPrice
  26. if (bccomp($remainDebtPrice, '0', 2) <= 0) {
  27. $remainDebtPrice = bcadd((string)($value['actPrice'] ?? '0'), '0', 2);
  28. $result['list'][$key]['remainDebtPrice'] = $remainDebtPrice;
  29. }
  30. if (bccomp($debtPrice, '0', 2) <= 0) {
  31. $debtPrice = $remainDebtPrice;
  32. $result['list'][$key]['debtPrice'] = $debtPrice;
  33. }
  34. $hasPayDebt = '0.00';
  35. if (bccomp($debtPrice, $remainDebtPrice, 2) > 0) {
  36. $hasPayDebt = bcsub($debtPrice, $remainDebtPrice, 2);
  37. }
  38. $result['list'][$key]['hasPayDebt'] = floatval($hasPayDebt);
  39. }
  40. }
  41. return $result;
  42. }
  43. }