1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- <?php
- namespace Scm\Lib;
- use Dever;
- class Price
- {
- public function __construct()
- {
- Dever::load('manage/auth.init');
- }
- # 根据单位获取价格
- public function getByUnit($goods_id, $sku_id, $unit_id, $num, $cash, $in_num = 0, $supplier_id = false)
- {
- $goods_info = Dever::load('scm_product/lib/info')->getBaseInfo($goods_id, $sku_id);
- $result = array();
- if ($goods_info) {
- $where['goods_id'] = $goods_id;
- $where['sku_id'] = $sku_id;
- # 获取供应商供货价
- if ($supplier_id) {
- $where['supplier_id'] = $supplier_id;
- $sku = Dever::db('scm_supplier/goods_sku')->getOne($where);
- }
- $result['unit_id'] = $unit_id;
- $result['base_unit_id'] = $goods_info['unit_id'];
- if (!is_numeric($cash)) {
- $cash = isset($sku[$cash]) && $sku[$cash] ? $sku[$cash] : $goods_info[$cash];
- }
- $result['base_cash'] = $result['cash'] = $cash;
- $result['base_num'] = $result['num'] = $num;
- $result['in_num'] = $in_num;
-
- $unit = Dever::db('scm_product/info_unit')->find(array('info_id' => $goods_info['id'], 'unit_id' => $unit_id));
- if ($unit && $unit_id != $goods_info['unit_id'] && $unit['discount'] > 0) {
- $result['cash'] = $result['cash'] * $unit['radio'] * $unit['discount'];
- $result['base_num'] = $num * $unit['radio'];
- $result['in_num'] = round($in_num / $unit['radio'], 2);
- }
- $unit_info = Dever::db('scm/unit')->one($unit_id);
- $result = Dever::number(array(array('cash', 'base_cash', 'num', 'base_num', 'in_num'), $result));
- if ($result['in_num'] > 0) {
- $result['goods_id'] = $result['in_num'] . $unit_info['name'];
- }
- }
- return $result;
- }
- }
|