[ 'name' => '采购入库单', 'type' => 'input', 'prefix' => 'CGRK', 'key' => 'PURCHASE', ], 'REFUND' => [ 'name' => '退货入库单', 'type' => 'input', 'prefix' => 'THRK', 'key' => 'REFUND', ], 'OTHERRK' => [ 'name' => '其他入库单', 'type' => 'input', 'prefix' => 'QTRK', 'key' => 'OTHERRK', ], 'SEAILCK' => [ 'name' => '销售出库单', 'type' => 'output', 'prefix' => 'XSCK', 'key' => 'SEAILCK', ], 'OTHERCK' => [ 'name' => '其他出库单', 'type' => 'output', 'prefix' => 'QTCK', 'key' => 'OTHERCK', ], 'PDD' => [ 'name' => '盘点单', 'type' => 'pandian', 'prefix' => 'PDD', 'key' => 'PDD', ], 'PANYING' => [ 'name' => '盘盈入库单', 'type' => 'input', 'prefix' => 'PYRK', 'key' => 'PANYING', ], 'PANKUI' => [ 'name' => '盘亏出库单', 'type' => 'output', 'prefix' => 'PKCK', 'key' => 'PANKUI', ], 'ALLOTIN' => [ 'name' => '调拨入库单', 'type' => 'input', 'prefix' => 'DBRK', 'key' => 'ALLOTIN', ], 'ALLOTPUT' => [ 'name' => '调拨出库单', 'type' => 'output', 'prefix' => 'DBCK', 'key' => 'ALLOTPUT', ], ]; /** * 设置库存 * @param $params */ public function changeStock($params){ $user_info = $params['user_info'] ?? []; $site_id = $params['site_id']?? 1; $store_id = $params['store_id'] ?? 0; if($store_id == 0){ $store_model = new Store(); $store_info = $store_model->getDefaultStore()['data'] ?? []; $store_id = $store_info['store_id']; } $key = $params['key']; $remark = $params['remark'] ?? ''; $is_out_stock = $params['is_out_stock'] ?? 0; $time = $params['time'] ?? time(); $document_model = new Document(); if(!empty($params['goods_sku_list'])){ foreach($params['goods_sku_list'] as $k => $v){ $params['goods_sku_list'][$k] = [ 'goods_sku_id' => $v['sku_id'], 'goods_id' => $v['goods_id'] ?? 0, 'goods_num' => $v['num'] ?? $v['stock'], 'goods_price' => $v['price'] ?? 0 ]; } }else{ $sku_id = $params['sku_id'] ?? 0; $goods_id = $params['goods_id'] ?? 0; $goods_num = $params['num'] ?? $params['stock']; $goods_price = $params['price'] ?? 0; } $goods_sku_list = $params['goods_sku_list'] ?? array( [ 'goods_sku_id' => $sku_id, 'goods_id' => $goods_id, 'goods_num' => $goods_num, 'goods_price' => $goods_price ] ); $document_params = array( 'store_id' => $store_id, 'site_id' => $site_id, 'remark' => $remark, 'goods_sku_list' => $goods_sku_list, 'user_info' => $user_info, 'time' => $time, 'is_out_stock' => $is_out_stock ); switch($key){ case 'PURCHASE'://采购入库单 $result = $document_model->addPurchase($document_params); break; case 'REFUND'://退货入库单 $result = $document_model->addRefundInput($document_params); break; case 'OTHERRK'://其他入库单 $result = $document_model->addOtherInput($document_params); break; case 'SEAILCK'://销售出库单 $result = $document_model->addSell($document_params); break; case 'OTHERCK'://其他出库单 $result = $document_model->addOtherOutput($document_params); break; case 'PANYING'://盘盈入库单 $result = $document_model->addDocument($document_params); break; case 'PANKUI'://盘亏出库单 $result = $document_model->addDocument($document_params); break; } return $result; } /** * 设置商品库存(比对差值,得出) * @param $params * @return array */ public function setGoodsStock($params){ $site_id = $params['site_id']; $remark = $params['remark'] ?? ''; $store_id = $params['store_id']; $goods_sku_list = $params['goods_sku_list'] ?? []; //todo 这儿可以查询商品信息类型 来定义可能只有实物商品才需要出入库记录 if(!empty($goods_sku_list)){ foreach($goods_sku_list as $k => $v){ $sku_list[] = array( 'goods_sku_id' => $v['sku_id'], 'goods_num' => $v['stock'], ); } }else{ $goods_id = $params['goods_id'] ?? 0;//只要传递就必然是与sku_id匹配的 $sku_id = $params['sku_id']; $stock = $params['stock'];//设置的新库存 $sku_list = array( [ 'goods_sku_id' => $sku_id, 'goods_num' => $stock, ] ); } $inventory_params = array( 'site_id' => $site_id, 'store_id' => $store_id, 'sku_list' => $sku_list, 'user_info' => $params['user_info'] ?? [], 'remark' => $remark ); $inventory_model = new Inventory(); $result = $inventory_model->addInventory($inventory_params); return $result; } /** * 获取商品sku列表 * @param array $condition * @param string $field * @param string $order * @param null $limit * @return array */ public function getStoreGoodsSkuList($condition = [], $field = '*', $order = 'gs.create_time desc', $store_id = 0) { $alias = 'gs'; $join = [ [ 'goods g', 'g.goods_id = gs.goods_id', 'left' ], [ 'store_goods_sku sgs', 'sgs.sku_id = gs.sku_id and (sgs.store_id is null or sgs.store_id = ' . $store_id . ')', 'left' ] ]; $list = model('goods_sku')->getList($condition, $field, $order, $alias, $join, ''); return $this->success($list); } }