/// <summary> ///新增产品库存信息 /// </summary> /// <param name="stock"></param> /// <param name="user_id"></param> /// <returns></returns> public ERROR_CODE InsertProductStock(ivt_warehouse_product stock, long user_id) { var user = UserInfoBLL.GetUserInfo(user_id); if (user == null) { // 查询不到用户,用户丢失 return(ERROR_CODE.USER_NOT_FIND); } //唯一性校验 ivt_warehouse_product_dal kk = new ivt_warehouse_product_dal(); var re = kk.FindSignleBySql <ivt_warehouse_product>($"select * from ivt_warehouse_product where product_id={stock.product_id} and warehouse_id={stock.warehouse_id} and delete_time=0"); if (re != null) { return(ERROR_CODE.EXIST); } stock.id = (int)(_dal.GetNextIdCom()); stock.create_time = stock.update_time = Tools.Date.DateHelper.ToUniversalTimeStamp(DateTime.Now); stock.create_user_id = stock.update_user_id = user_id; kk.Insert(stock); //操作日志 var add_log = new sys_oper_log() { user_cate = "用户", user_id = (int)user.id, name = user.name, phone = user.mobile == null ? "" : user.mobile, oper_time = Tools.Date.DateHelper.ToUniversalTimeStamp(DateTime.Now), oper_object_cate_id = (int)OPER_LOG_OBJ_CATE.WAREHOUSE_PRODUCT, // oper_object_id = stock.id, // 操作对象id oper_type_id = (int)OPER_LOG_TYPE.ADD, oper_description = _dal.AddValue(stock), remark = "新增产品库存信息" }; // 创建日志 new sys_oper_log_dal().Insert(add_log); // 插入日志 return(ERROR_CODE.SUCCESS); }
/// <summary> /// 获取库存产品的编辑信息 /// </summary> /// <param name="id"></param> /// <returns></returns> public InventoryItemEditDto GetIvtProductEdit(long id) { string sql = @" SELECT t.*,ifnull( ( SELECT sum(y.quantity) FROM ivt_order x, ivt_order_product y WHERE y.delete_time = 0 AND x.id = y.order_id AND x.status_id IN (2148, 2149) AND y.product_id = t.id AND y.warehouse_id = t.warehouse_id ), 0 ) as on_order, ifnull( ( SELECT ifnull(sum(y.quantity), 0) - ifnull(sum(z.quantity_received), 0) FROM ivt_order x, ivt_order_product y, ivt_receive z WHERE y.delete_time = 0 AND z.delete_time = 0 AND x.status_id IN (2149) AND x.id = y.order_id AND y.id = z.order_product_id AND y.product_id = t.id AND y.warehouse_id = t.warehouse_id ), 0 ) as back_order, ifnull( ( SELECT sum(x.quantity) FROM ivt_reserve x, crm_quote_item y WHERE x.delete_time = 0 AND x.quote_item_id = y.id AND y.object_id = t.id AND x.warehouse_id = w.id ), 0 ) + ifnull( ( SELECT sum(x.quantity) FROM ctt_contract_cost_product x, ctt_contract_cost y WHERE x.delete_time = 0 AND x.status_id = 2157 AND x.contract_cost_id = y.id AND y.product_id = t.id AND x.warehouse_id = w.id ), 0 ) as reserved_picked, ifnull( ( SELECT sum(x.quantity) FROM ctt_contract_cost_product x, ctt_contract_cost y WHERE x.delete_time = 0 AND x.status_id = 2157 AND x.contract_cost_id = y.id AND y.product_id = t.id AND x.warehouse_id = w.id ), 0 ) as picked, p.name as product_name, w.name as location_name from ivt_warehouse_product as t,ivt_product as p,ivt_warehouse as w WHERE t.id=" + id + " and p.id=t.product_id and w.id=t.warehouse_id"; return(dal.FindSignleBySql <InventoryItemEditDto>(sql)); }