Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        /// <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));
        }