Price.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. namespace Scm\Lib;
  3. use Dever;
  4. class Price
  5. {
  6. public function __construct()
  7. {
  8. Dever::load('manage/auth.init');
  9. }
  10. # 根据单位获取价格
  11. public function getByUnit($goods_id, $sku_id, $unit_id, $num, $col = 'cost_price', $supplier_id = false)
  12. {
  13. $goods_info = Dever::load('scm_product/lib/info')->getBaseInfo($goods_id, $sku_id);
  14. $result = array();
  15. if ($goods_info) {
  16. $where['goods_id'] = $goods_id;
  17. $where['sku_id'] = $sku_id;
  18. # 获取供应商供货价
  19. if ($supplier_id) {
  20. $where['supplier_id'] = $supplier_id;
  21. $sku = Dever::db('scm_supplier/goods_sku')->getOne($where);
  22. }
  23. $result['unit_id'] = $unit_id;
  24. $result['base_unit_id'] = $goods_info['unit_id'];
  25. $result['base_cash'] = $result['cash'] = isset($sku[$col]) && $sku[$col] ? $sku[$col] : $goods_info[$col];
  26. $result['base_num'] = $result['num'] = $num;
  27. $unit = Dever::db('scm_product/info_unit')->find(array('info_id' => $goods_info['id'], 'unit_id' => $unit_id));
  28. if ($unit && $unit_id != $goods_info['unit_id'] && $unit['discount'] > 0) {
  29. $result['cash'] = $result['cash'] * $unit['radio'] * $unit['discount'];
  30. $result['base_num'] = $num * $unit['radio'];
  31. }
  32. }
  33. return $result;
  34. }
  35. }