Ejemplo n.º 1
0
        /// <summary>
        /// 从CWmsSubEntryOder实例中拷贝订单信息
        /// </summary>
        /// <param name="srcOrder">源订单实例</param>
        /// <returns>若成功则返回string.Empty; 否则返回错误描述</returns>
        public string CopyFrom(CWmsSubEntryOder srcOrder)
        {
#if !C_WMS_V1
            throw new NotFiniteNumberException();
#else
            if (null == srcOrder)
            {
                C_WMS.Data.Utility.MyLog.Instance.Warning("Failed in {0}.{1}(pSrc={2})", MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, srcOrder);
                return("非法入参,srcOrder为null");
            }
            try
            {
                outBizCode    = srcOrder.WmsOrder.OutBizCode;                                              // 外部业务编码, 消息ID, 用于去重,当单据需要分批次发送时使用
                orderLineNo   = srcOrder.Id;                                                               // 入库单的行号
                ownerCode     = CWmsDataFactory.GetOwner(srcOrder.MangoOrder.WarehouseId.ToString()).Code; // 根据仓库Id判断货主
                itemCode      = srcOrder.Product.ItemCode;                                                 // ret.Append("itemCode={0}", itemCode); // 商品编码
                itemName      = srcOrder.Product.MangoProduct.Title;                                       // 商品名称
                planQty       = srcOrder.WmsOrder.planQty.ToString();                                      // 获取应收数量
                inventoryType = srcOrder.WmsOrder.InventoryType.ToString();
                skuProperty   = srcOrder.Product.MangoProduct.GuiGe;
                purchasePrice = srcOrder.MangoOrder.ProductPrice.ToString(); // 采购价
                return(string.Empty);
            }
            catch (Exception ex)
            {
                C_WMS.Data.Utility.MyLog.Instance.Warning(ex, "!!Exception in {0}.{1}({2})", MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, srcOrder);
                return(ex.Message);
            }
#endif
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 从CWmsEntryOrder实例中拷贝订单信息
        /// </summary>
        /// <param name="pSrc">源订单实例</param>
        /// <returns>若成功则返回string.Empty; 否则返回错误描述</returns>
        public string CopyFrom(CWmsEntryOrder pSrc)
        {
#if !C_WMS_V1
            throw new NotFiniteNumberException();
#else
            if (null == pSrc)
            {
                C_WMS.Data.Utility.MyLog.Instance.Warning("Failed, {0}.{1}(pSrc={2})", MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, pSrc);
                return("非法参数,pSrc为null");
            }
            try
            {
                // 获取承运商信息
                var logistics = pSrc.Handler.GetLogistics(pSrc);// CWmsDataFactory.GetLogisticsBy(TCWmsOrderCategory.EEntryOrder, string.Empty);

                totalOrderLines   = pSrc.SubOrders.Count.ToString();
                entryOrderCode    = pSrc.Id;
                ownerCode         = CWmsDataFactory.GetOwner(pSrc.MangoOrder.WarehouseId.ToString()).Code;     // TODO: 根据仓库Id判断货主
                purchaseOrderCode = string.Empty;                                                              // 无法确定采购订单Id(多个主采购订单的子单据都可以加到一个主入库单中)
                warehouseCode     = CWmsDataFactory.GetWarehouse(pSrc.MangoOrder.WarehouseId.ToString()).Name; // CWmsConsts.cStrDefaultWarehouseId;  // TODO: get warehous ID
                orderCreateTime   = pSrc.MangoOrder.AddTime.ToString();
                orderType         = TWmsOrderType.QTRK.ToString();                                             // TODO: need to identify purchase entry and no-purchase entry for inventory adding from nowhere
                operatorCode      = MangoMis.Frame.Frame.CommonFrame.userid.ToString();                        // 操作人Id为当前登录用户
                operatorName      = MangoMis.Frame.Frame.CommonFrame.userid.User().UserName2;                  // 获取人员名称
                logisticsCode     = logistics.WmsID;
                logisticsName     = logistics.logisticsName;
                operateTime       = DateTime.Now.ToString(); // 操作时间为当前时间
                remark            = pSrc.MangoOrder.Remark;
                return(string.Empty);
            }
            catch (Exception ex)
            {
                C_WMS.Data.Utility.MyLog.Instance.Warning(ex, "!!Exception in {0}.{1}({2})", MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, pSrc);
                return(ex.Message);
            }
#endif
        }