Ejemplo n.º 1
0
        /// <summary>
        /// 获取需要提交到顺丰的运单
        /// </summary>
        /// <returns></returns>
        public static List <string> GetNlPostWayBillNumberList()
        {
            DbUtility dbUtility = new SqlDbUtility(_lmsCon);
            DataTable dt        = dbUtility.ExecuteData("exec P_GetNlPostWayBillNumberList N'" + _NLPOSTShippingMethodID + "',N'" + SubmitStatus + "'");
            var       list      = new List <string>();

            if (dt != null && dt.Rows.Count > 0)
            {
                Log.Info("LMS获取需要提交到顺丰的运单总数是" + dt.Rows.Count);
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        if (dt.Columns[j].ColumnName != "WayBillNumber")
                        {
                            continue;
                        }
                        if (!string.IsNullOrWhiteSpace(dt.Rows[i][j].ToString()))
                        {
                            list.Add(dt.Rows[i][j].ToString().Trim());
                        }
                    }
                }
            }
            Log.Info("LMS获取需要提交到顺丰的运单完毕!");
            return(list);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 修改B2CPreAlertLogs
        /// </summary>
        /// <param name="model"></param>
        public static void UpdateB2CPreAlertLogs(B2CPreAlertLog model)
        {
            string sql = "";

            if (model.Status == 2)
            {
                sql = @"UPDATE dbo.B2CPreAlertLogs
                    SET ShippingMethod='" + model.ShippingMethod + "',PreAlertID='" + model.PreAlertID + @"',Status=2
                    ,PreAlertBatchNo='" + model.PreAlertBatchNo + @"',LastUpdatedOn=GETDATE(),LastUpdatedBy='system'
                    WHERE WayBillNumber='" + model.WayBillNumber + "' AND PreAlertBatchNo IS NULL";
            }
            else if (model.Status == 3)
            {
                sql = @"UPDATE dbo.B2CPreAlertLogs
                    SET ShippingMethod='" + model.ShippingMethod + "',ErrorMsg=N'" + model.ErrorMsg.Replace("/r/n", "").StripXML() + "',ErrorCode='" + model.ErrorCode + "',ErrorDetails=N'" + model.ErrorDetails.Replace("/r/n", "").StripXML() + @"',Status=3
                    ,PreAlertBatchNo='" + model.PreAlertBatchNo + @"',LastUpdatedOn=GETDATE(),LastUpdatedBy='system'
                    WHERE WayBillNumber='" + model.WayBillNumber + "'";
            }
            if (sql.Length > 0)
            {
                try
                {
                    DbUtility dbUtility = new SqlDbUtility(_lmsCon);
                    dbUtility.ExecuteNonQuery(sql);
                }
                catch (Exception ex)
                {
                    Log.Exception(ex);
                }
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 获取需要提交到顺E宝的运单
        /// --已提交或者已收货
        /// </summary>
        /// <returns></returns>
        public static List <string> GetLithuaniaWayBillNumberList()
        {
            var       shippingMethodId = _LithuaniaShippingMethodID.Replace(",", "','");
            string    sql       = @"SELECT  WayBillNumber FROM    dbo.WayBillInfos w
                            WHERE   InShippingMethodID IN('" + shippingMethodId + @"')
                                AND Status IN(3,4)
	                            AND w.IsHold=0
                                AND NOT EXISTS ( SELECT 1
                                                    FROM   LithuaniaInfos n
                                                    WHERE  w.WayBillNumber = n.WayBillNumber )";
            DbUtility dbUtility = new SqlDbUtility(_lmsCon);
            DataTable dt        = dbUtility.ExecuteData(sql);
            var       list      = new List <string>();

            if (dt != null && dt.Rows.Count > 0)
            {
                Log.Info("LMS获取需要提交到顺E宝的运单总数是" + dt.Rows.Count);
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        if (dt.Columns[j].ColumnName != "WayBillNumber")
                        {
                            continue;
                        }
                        if (!string.IsNullOrWhiteSpace(dt.Rows[i][j].ToString()))
                        {
                            list.Add(dt.Rows[i][j].ToString().Trim());
                        }
                    }
                }
            }
            Log.Info("LMS获取需要提交到顺E宝的运单完毕!");
            return(list);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 根据单号获取跟踪信息
        /// </summary>
        /// <param name="orderNumber"></param>
        /// <returns></returns>
        public static bool GetTrackInfo(string orderNumber)
        {
            Log.Info("本次获取单号为:{0}".FormatWith(orderNumber));
            var result = B2CController.GetTrackInfoXmlByNumber(orderNumber);

            try
            {
                DbUtility dbUtility = new SqlDbUtility(TrackCon);
                string    obj       = dbUtility.ExecuteScalar(
                    "exec P_ImportB2CTrackInfo {0},{1}",
                    orderNumber, result).ToString();
                var issuccess = obj == "1";
                if (issuccess)
                {
                    Log.Info("本次获取单号为:{0} 插入数据库成功!".FormatWith(orderNumber));
                }
                else
                {
                    Log.Error("本次获取单号为:{0} 插入数据库失败!".FormatWith(orderNumber));
                }
                return(issuccess);
            }
            catch (Exception ex)
            {
                Log.Exception(ex);
            }
            return(false);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 获取B2C跟新信息插入数据库按时间点
        /// </summary>
        public static bool GetTrackInfo()
        {
            var intervalHours = -1 * (IntervalHours + 4);//加4小时,是防止漏抓取B2C跟踪信息
            var datetime      = long.Parse(DateTime.UtcNow.AddHours(intervalHours).ToString("yyyyMMddHH") + "0000");

            Log.Info("本次获取UTC时间点为:{0}".FormatWith(datetime));
            var result = B2CController.GetTrackInfoXmlByTime(datetime);

            try
            {
                DbUtility dbUtility = new SqlDbUtility(TrackCon);
                string    obj       = dbUtility.ExecuteScalar(
                    "exec P_ImportB2CTrackInfo {0},{1}",
                    datetime.ToString(), result).ToString();
                var issuccess = obj == "1";
                if (issuccess)
                {
                    Log.Info("本次获取UTC时间点为:{0} 插入数据库成功!".FormatWith(datetime));
                }
                else
                {
                    Log.Error("本次获取UTC时间点为:{0} 插入数据库失败!".FormatWith(datetime));
                }
                return(issuccess);
            }
            catch (Exception ex)
            {
                Log.Exception(ex);
            }
            return(false);
        }
Ejemplo n.º 6
0
        const int errortype = 2; //-运费接口错误
        /// <summary>
        /// 获取需要更新的运单
        /// </summary>
        /// <returns></returns>
        public static List <VenderInfoPackageRequest> GetUpdatePriceWayBillList(string lastUpdateTime)
        {
            DbUtility dbUtility = new SqlDbUtility(_lmsCon);
            DataTable dt        = dbUtility.ExecuteData("exec P_GetBatchFreightCostWayBillNumberList N'" + _status + "',N'" + lastUpdateTime + "'");
            var       list      = new List <VenderInfoPackageRequest>();

            if (dt != null && dt.Rows.Count > 0)
            {
                Log.Info("LMS需要更新成本价运单总数是" + dt.Rows.Count);
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    var v = new VenderInfoPackageRequest();
                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        switch (dt.Columns[j].ColumnName)
                        {
                        case "VenderCode":
                            v.VenderCode = dt.Rows[i][j].ToString();
                            break;

                        case "CountryCode":
                            v.CountryCode = dt.Rows[i][j].ToString();
                            break;

                        case "WayBillNumber":
                            v.WayBillNumber = dt.Rows[i][j].ToString();
                            break;

                        case "PackageRequest":
                            if (string.IsNullOrWhiteSpace(dt.Rows[i][j].ToString()))
                            {
                                continue;
                            }
                            v.Packages = SerializeUtil.DeserializeFromXml <List <VenderPackageRequest> >(dt.Rows[i][j].ToString());
                            break;

                        case "OutShippingMethodID":
                            v.ShippingMethodId = Int32.Parse(dt.Rows[i][j].ToString());
                            break;

                        case "GoodsTypeID":
                            v.ShippingTypeId = Int32.Parse(dt.Rows[i][j].ToString());
                            break;

                        case "CustomerID":
                            v.CustomerId = Guid.Parse(dt.Rows[i][j].ToString());
                            break;

                        case "EnableTariffPrepay":
                            v.EnableTariffPrepay = bool.Parse(dt.Rows[i][j].ToString());
                            break;
                        }
                    }
                    list.Add(v);
                }
            }
            Log.Info("LMS需要更新成本价运单获取完毕!");
            return(list);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// 获取欧洲专线平邮需要自定义跟踪信息的单号
        /// </summary>
        /// <returns></returns>
        public static List <B2CForeCastLogs> GetB2CForeCastLogs()
        {
            Log.Info("开始获取欧洲专线平邮需要自定义跟踪信息的单号");
            string    sql       = @"WITH kk AS
                        (
			                SELECT WayBillNumber,EventLocation,EventContent
			                FROM dbo.B2CForeCastLogs
			                WHERE IsOkJob=4
		                ), ll AS
		                (
			                SELECT b.WayBillNumber,b.EventDate
			                FROM dbo.B2CForeCastLogs b
			                WHERE  EXISTS(SELECT 1 FROM kk WHERE kk.WayBillNumber=b.WayBillNumber) AND EventCode=10
		                ),hh AS
                        (
			                SELECT WayBillNumber
			                FROM B2CForeCastLogs d
			                WHERE EXISTS(SELECT 1 FROM kk WHERE kk.WayBillNumber=d.WayBillNumber) AND EventCode=11
		                )
		                SELECT kk.WayBillNumber,kk.EventLocation,ll.EventDate,kk.EventContent
                        FROM kk LEFT JOIN ll ON ll.WayBillNumber = kk.WayBillNumber
		                WHERE ll.EventDate IS NOT NULL AND NOT EXISTS(SELECT 1 FROM hh WHERE hh.WayBillNumber=kk.WayBillNumber)"        ;
            DbUtility dbUtility = new SqlDbUtility(_TrackCon);
            var       list      = new List <B2CForeCastLogs>();
            DataTable dt        = dbUtility.ExecuteData(sql);

            if (dt != null && dt.Rows.Count > 0)
            {
                Log.Info("获取欧洲专线平邮需要自定义跟踪信息的单号记录总数是" + dt.Rows.Count);
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    var v = new B2CForeCastLogs();
                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        switch (dt.Columns[j].ColumnName)
                        {
                        case "WayBillNumber":
                            v.WayBillNumber = dt.Rows[i][j].ToString();
                            break;

                        case "EventLocation":
                            v.EventLocation = dt.Rows[i][j].ToString();
                            break;

                        case "EventDate":
                            v.EventDate = DateTime.Parse(dt.Rows[i][j].ToString());
                            break;

                        case "EventContent":
                            v.EventContent = dt.Rows[i][j].ToString();
                            break;
                        }
                    }
                    list.Add(v);
                }
            }
            Log.Info("完成获取欧洲专线平邮需要自定义跟踪信息的单号");
            return(list);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// 外部跟踪信息插入B2C预报记录表
        /// </summary>
        public static bool OutInsertB2CForeCastLogs()
        {
            Log.Info("LMS开始把外部跟踪信息插入B2C预报记录");
            DbUtility dbUtility = new SqlDbUtility(_TrackCon);
            var       obj       = dbUtility.ExecuteScalar("exec P_InsertB2CForeCastLogs");

            Log.Info("LMS完成把外部跟踪信息插入B2C预报记录");
            return(obj.ToString() == "1");
        }
Ejemplo n.º 9
0
        /// <summary>
        /// 插入B2C预报记录表
        /// </summary>
        /// <param name="totalPackageNumber">总包号</param>
        /// <param name="registeredShippingMethodId">欧洲专线挂号运输方式ID</param>
        /// <param name="mailShippingMethodId">欧洲专线平邮运输方式ID</param>
        public static void InsertB2CForeCastLogs(string totalPackageNumber, int registeredShippingMethodId,
                                                 int mailShippingMethodId)
        {
            Log.Info("LMS开始插入总包号为:{0} 的B2C预报记录".FormatWith(totalPackageNumber));
            DbUtility dbUtility = new SqlDbUtility(_lmsCon);

            dbUtility.ExecuteNonQuery("exec P_TotalPackageNumberCreatedLog {0},{1},{2}", totalPackageNumber,
                                      registeredShippingMethodId, mailShippingMethodId);
            Log.Info("LMS完成插入总包号为:{0} 的B2C预报记录".FormatWith(totalPackageNumber));
        }
Ejemplo n.º 10
0
        /// <summary>
        /// 获取需要生成出账单的账单号
        /// </summary>
        /// <returns></returns>
        public static List <ReceivingBill> GetCreateOutBillList()
        {
            DbUtility dbUtility = new SqlDbUtility(_lmsCon);
            DataTable dt        = dbUtility.ExecuteData("select ReceivingBillID,CustomerCode,CustomerName,ReceivingBillDate,ReceivingBillAuditor,BillStartTime,BillEndTime,ISNULL(Search,0) Search from ReceivingBills where Status=1");
            var       list      = new List <ReceivingBill>();

            if (dt != null && dt.Rows.Count > 0)
            {
                Log.Info("LMS需要生成账单的账单号总数是" + dt.Rows.Count);
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    var v = new ReceivingBill();
                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        switch (dt.Columns[j].ColumnName)
                        {
                        case "ReceivingBillID":
                            v.ReceivingBillID = dt.Rows[i][j].ToString();
                            break;

                        case "CustomerCode":
                            v.CustomerCode = dt.Rows[i][j].ToString();
                            break;

                        case "CustomerName":
                            v.CustomerName = dt.Rows[i][j].ToString();
                            break;

                        case "ReceivingBillDate":
                            v.ReceivingBillDate = dt.Rows[i][j].ToString();
                            break;

                        case "ReceivingBillAuditor":
                            v.ReceivingBillAuditor = dt.Rows[i][j].ToString();
                            break;

                        case "BillStartTime":
                            v.BillStartTime = dt.Rows[i][j].ToString();
                            break;

                        case "BillEndTime":
                            v.BillEndTime = dt.Rows[i][j].ToString();
                            break;

                        case "Search":
                            v.Search = Int32.Parse(dt.Rows[i][j].ToString());
                            break;
                        }
                    }
                    list.Add(v);
                }
            }
            Log.Info("LMS需要生成账单的账单号获取完毕!");
            return(list);
        }
Ejemplo n.º 11
0
        /// <summary>
        /// 提交顺丰错误
        /// </summary>
        /// <param name="wayBillNumber">运单号</param>
        /// <param name="failureMessage">错误原因</param>
        public static bool SubmitFailure(string wayBillNumber, string failureMessage)
        {
            Log.Info("运单号{0}提交顺丰失败,原因:{1}".FormatWith(wayBillNumber, failureMessage));
            if (string.IsNullOrWhiteSpace(wayBillNumber))
            {
                return(false);
            }
            DbUtility dbUtility = new SqlDbUtility(_lmsCon);
            var       obj       = dbUtility.ExecuteScalar("exec P_CreateNlPostAbnormalWayBill {0},{1}", wayBillNumber, failureMessage);

            return(obj.ToString() == "1");
        }
Ejemplo n.º 12
0
        /// <summary>
        /// 当配置
        /// </summary>
        /// <param name="model"></param>
        public static void InTotalPackageTraceInfo(TotalPackageTraceInfoModel model)
        {
            Log.Info("LMS开始插入总包号为:{0} 的总包号跟踪信息,事件码:{1}".FormatWith(model.TotalPackageNumber, model.TraceEventCode));
            DbUtility dbUtility = new SqlDbUtility(_lmsCon);

            dbUtility.ExecuteNonQuery(@"INSERT INTO TotalPackageTraceInfos
           ([TotalPackageNumber],[TraceEventCode],[TraceEventTime],[TraceEventAddress]
           ,[CreatedBy],[LastUpdatedBy],[TraceEventContent])
            VALUES({0},{1},{2},{3},{4},{5},{6})", model.TotalPackageNumber, model.TraceEventCode, model.TraceEventTime,
                                      model.TraceEventAddress, model.CreatedBy, model.CreatedBy, "");
            Log.Info("LMS完成插入总包号为:{0} 的总包号跟踪信息,事件码:{1}".FormatWith(model.TotalPackageNumber, model.TraceEventCode));
        }
Ejemplo n.º 13
0
        /// <summary>
        /// 获取需要运行增加跟踪信息的总单号
        /// </summary>
        /// <returns></returns>
        public static List <TotalPackageTraceInfoModel> GetTotalPackageTraceInfo()
        {
            DbUtility dbUtility = new SqlDbUtility(_lmsCon);
            DataTable dt        =
                dbUtility.ExecuteData(
                    @"  select ID,TotalPackageNumber,TraceEventCode,TraceEventTime,TraceEventAddress,CreatedBy
 from TotalPackageTraceInfos tp where IsJob=0 and TraceEventTime<=GETDATE() 
 AND EXISTS(SELECT 1 FROM  TotalPackageInfos ti WHERE ti.TotalPackageNumber=tp.TotalPackageNumber AND ti.CreatedOn>'" + StartDate + "')");
            var list = new List <TotalPackageTraceInfoModel>();

            if (dt != null && dt.Rows.Count > 0)
            {
                Log.Info("LMS总包号编辑时间记录总数是" + dt.Rows.Count);
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    var v = new TotalPackageTraceInfoModel();
                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        switch (dt.Columns[j].ColumnName)
                        {
                        case "TotalPackageNumber":
                            v.TotalPackageNumber = dt.Rows[i][j].ToString();
                            break;

                        case "TraceEventCode":
                            v.TraceEventCode = Int32.Parse(dt.Rows[i][j].ToString());
                            break;

                        case "TraceEventTime":
                            v.TraceEventTime = DateTime.Parse(dt.Rows[i][j].ToString());
                            break;

                        case "TraceEventAddress":
                            v.TraceEventAddress = dt.Rows[i][j].ToString();
                            break;

                        case "CreatedBy":
                            v.CreatedBy = dt.Rows[i][j].ToString();
                            break;

                        case "ID":
                            v.ID = Int32.Parse(dt.Rows[i][j].ToString());
                            break;
                        }
                    }
                    list.Add(v);
                }
            }
            Log.Info("LMS总包号编辑时间记录获取完毕!");
            return(list);
        }
Ejemplo n.º 14
0
 /// <summary>
 /// 同步运输方式
 /// </summary>
 /// <param name="shippingMethodId"></param>
 /// <param name="shippingMethodTypeId"></param>
 /// <param name="enabled"></param>
 public static void SynchronousShippingMethod(int shippingMethodId, int shippingMethodTypeId, bool enabled)
 {
     Log.Info(string.Format("开始同步运输方式ID:{0}", shippingMethodId));
     try
     {
         DbUtility dbUtility = new SqlDbUtility(_lmsCon);
         dbUtility.ExecuteNonQuery("exec P_SynchronousShippingMethod {0},{1},{2}", shippingMethodId, shippingMethodTypeId, enabled?1:0);
     }
     catch (Exception ex)
     {
         Log.Exception(ex);
     }
     Log.Info(string.Format("完成同步运输方式ID:{0}", shippingMethodId));
 }
Ejemplo n.º 15
0
        /// <summary>
        /// 修改运单表没有指定发货渠道的荷兰小包
        /// </summary>
        /// <returns></returns>
        public static void UpdateOutShippingMethod()
        {
            Log.Info("开始指定顺丰荷兰小包出仓渠道");
            string    sql       = @"UPDATE w
		                SET w.OutShippingMethodID='"         + _NLPOSTShippingMethodID + @"',w.VenderCode='" + _NLPOSTVenderCode + @"',
				                w.LastUpdatedOn=GETDATE(),w.LastUpdatedBy='system'
		                FROM dbo.WayBillInfos w 
		                WHERE w.VenderCode IS NULL AND OutShippingMethodID IS NULL 
		                AND EXISTS( SELECT 1 FROM dbo.NetherlandsParcelResponses n WHERE w.WayBillNumber=n.WayBillNumber AND n.Status=2)"        ;
            DbUtility dbUtility = new SqlDbUtility(_lmsCon);

            dbUtility.ExecuteNonQuery(sql);
            Log.Info("完成指定顺丰荷兰小包出仓渠道");
        }
Ejemplo n.º 16
0
        /// <summary>
        /// 修改运单表没有指定发货渠道的俄罗斯
        /// </summary>
        public static void UpdateOutShippingMethod()
        {
            Log.Info("开始指定顺E宝出仓渠道");
            string    sql       = @"UPDATE w
		                SET w.OutShippingMethodID=w.InShippingMethodID,w.VenderCode='"         + _LithuaniaVenderCode + @"',
				                w.LastUpdatedOn=GETDATE(),w.LastUpdatedBy='system'
		                FROM dbo.WayBillInfos w 
		                WHERE w.VenderCode IS NULL AND OutShippingMethodID IS NULL 
		                AND EXISTS( SELECT 1 FROM dbo.LithuaniaInfos n WHERE w.WayBillNumber=n.WayBillNumber AND n.Status=2)"        ;
            DbUtility dbUtility = new SqlDbUtility(_lmsCon);

            dbUtility.ExecuteNonQuery(sql);
            Log.Info("完成指定顺E宝出仓渠道");
        }
Ejemplo n.º 17
0
 /// <summary>
 /// B2CForeCastLogs外部信息插入LMS的InTrackingLogInfos
 /// </summary>
 public static void TrackInfoInsertLms()
 {
     Log.Info("开始插入LMS的InTrackingLogInfos");
     try
     {
         DbUtility dbUtility = new SqlDbUtility(TrackCon);
         dbUtility.ExecuteNonQuery("P_B2CInsertLMSInTrackingLogInfos");
     }
     catch (Exception ee)
     {
         Log.Exception(ee);
     }
     Log.Info("完成插入LMS的InTrackingLogInfos");
 }
Ejemplo n.º 18
0
        /// <summary>
        /// 插入备份数据库
        /// </summary>
        /// <param name="bill"></param>
        /// <param name="list"></param>
        /// <returns></returns>
        public static bool InsertBackUp(ReceivingBill bill, List <BillModel> list)
        {
            var result = false;

            Log.Info("LMS开始插入备份数据库账单号为:{0}".FormatWith(bill.ReceivingBillID));
            const string insertReceivingBills     = @"INSERT INTO [LMS_DB_Financial].[dbo].[ReceivingBills]
           ([ReceivingBillID],[CustomerCode],[CustomerName]
           ,[ReceivingBillDate],[ReceivingBillAuditor],[BillStartTime],[BillEndTime]) VALUES({0},{1},{2},{3},{4},{5},{6})";
            const string insertReceivingBillInfos = @"INSERT INTO [ReceivingBillInfos]
           ([WayBillNumber],[ReceivingBillID],[CustomerOrderNumber],[CustomerName]
           ,[CustomerCode],[ReceivingDate],[TrackingNumber],[CountryName]
           ,[ShippingMethodName],[SettleWeight],[Weight],[PackageNumber]
           ,[FeeDetail],[TotalFee])
           VALUES({0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13})";
            const string xml = "<FeeDetails><Freight>{0}</Freight><FuelCharge>{1}</FuelCharge><Register>{2}</Register><Surcharge>{3}</Surcharge><TariffPrepayFee>{4}</TariffPrepayFee><SpecialFee>{5}</SpecialFee><RemoteAreaFee>{6}</RemoteAreaFee></FeeDetails>";

            try
            {
                DbUtility dbUtility = new SqlDbUtility(_lmsfinCon);
                using (var transaction = new TransactionScope())
                {
                    dbUtility.ExecuteNonQuery(insertReceivingBills, bill.ReceivingBillID, bill.CustomerCode,
                                              bill.CustomerName, bill.ReceivingBillDate, bill.ReceivingBillAuditor,
                                              bill.BillStartTime, bill.BillEndTime);
                    list.ForEach(
                        p => dbUtility.ExecuteNonQuery(insertReceivingBillInfos, p.WayBillNumber,
                                                       bill.ReceivingBillID,
                                                       p.CustomerOrderNumber, bill.CustomerName, bill.CustomerCode,
                                                       p.InStorageCreatedOn, p.TrackingNumber, p.ChineseName,
                                                       p.InShippingMethodName, p.SettleWeight, p.Weight,
                                                       p.CountNumber,
                                                       xml.FormatWith(p.Freight, p.FuelCharge, p.Register,
                                                                      p.Surcharge, p.TariffPrepayFee, p.SpecialFee, p.RemoteAreaFee),
                                                       p.Freight + p.FuelCharge + p.Register + p.Surcharge +
                                                       p.TariffPrepayFee + p.SpecialFee));
                    transaction.Complete();
                }
                result = true;
            }
            catch (Exception ex)
            {
                Log.Exception(ex);
            }
            Log.Info("LMS完成插入备份数据库账单号为:{0}".FormatWith(bill.ReceivingBillID));
            return(result);
        }
Ejemplo n.º 19
0
 /// <summary>
 /// 获取批次号
 /// </summary>
 /// <returns></returns>
 public static string GetSequenceNumber()
 {
     try
     {
         DbUtility dbUtility = new SqlDbUtility(_lmsCon);
         object    obj       = dbUtility.ExecuteScalar("exec P_CreateSequenceNumber N'EU',N'1'");
         if (obj != null)
         {
             return(obj.ToString());
         }
     }
     catch (Exception ex)
     {
         Log.Exception(ex);
     }
     return(string.Empty);
 }
Ejemplo n.º 20
0
        /// <summary>
        /// 插入内部跟踪信息
        /// </summary>
        /// <param name="model"></param>
        public static bool InsertInTrackingLogInfo(TotalPackageTraceInfoModel model, string shippingMethodConfig)
        {
            var result = false;

            Log.Info("LMS开始插入总包号为:{0} 的内部信息".FormatWith(model.TotalPackageNumber));
            DbUtility dbUtility = new SqlDbUtility(_lmsCon);
            var       obj       = dbUtility.ExecuteScalar("exec P_TotalPackageNumberJob {0},{1}", model.ID, shippingMethodConfig);

            if (obj != null && obj.ToString() == "1")
            {
                dbUtility.ExecuteNonQuery(
                    "UPDATE TotalPackageTraceInfos SET IsJob=1,LastUpdatedOn=GETDATE() WHERE ID={0}", model.ID);
                result = true;
            }
            Log.Info("LMS完成插入总包号为:{0} 的内部信息".FormatWith(model.TotalPackageNumber));

            return(result);
        }
Ejemplo n.º 21
0
        /// <summary>
        /// 提交顺E宝成功
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public static bool SubmitSuccess(SfOrderResponse model)
        {
            Log.Info("运单号{0},提交顺E宝成功".FormatWith(model.OrderId));
            if (model == null)
            {
                return(false);
            }
            if (model.OrderId.IsNullOrWhiteSpace())
            {
                return(false);
            }
            DbUtility dbUtility = new SqlDbUtility(_lmsCon);
            var       obj       = dbUtility.ExecuteScalar("exec P_CreateLithuaniaSuccessWayBill {0},{1},{2},{3},{4},{5},{6},{7},{8},{9}",
                                                          model.OrderId, _LithuaniaVenderCode, model.MailNo, model.OriginCode ?? "", model.DestCode ?? "",
                                                          model.AgentMailNo ?? "", model.Remark ?? "", 2, model.FilterResult ?? "", model.TrackNumber ?? "");

            return(obj.ToString() == "1");
        }
Ejemplo n.º 22
0
 /// <summary>
 /// 更新错误日记
 /// </summary>
 /// <param name="waybillnumber"></param>
 /// <param name="errorbody"></param>
 public static void UpdateJobErrorLog(string waybillnumber, string errorbody)
 {
     try
     {
         var iscorrect = 0;
         if (string.IsNullOrWhiteSpace(errorbody))
         {
             iscorrect = 1;
         }
         DbUtility dbUtility = new SqlDbUtility(_lmsCon);
         dbUtility.ExecuteNonQuery("exec P_JobErrorLog {0},{1},{2},{3},{4},{5}", waybillnumber, jobtype,
                                   errortype, errorbody ?? "", "system", iscorrect);
     }
     catch (Exception ex)
     {
         Log.Exception(ex);
     }
 }
Ejemplo n.º 23
0
        /// <summary>
        /// 提交顺丰成功
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public static bool SubmitSuccess(NetherlandsParcelModel model)
        {
            Log.Info("运单号{0},提交顺丰成功".FormatWith(model.WayBillNumber));
            if (model == null)
            {
                return(false);
            }
            if (model.WayBillNumber.IsNullOrWhiteSpace())
            {
                return(false);
            }
            model.Status = 2;
            DbUtility dbUtility = new SqlDbUtility(_lmsCon);
            var       obj       = dbUtility.ExecuteScalar("exec P_CreateNlPostSuccessWayBill {0},{1},{2},{3},{4},{5},{6},{7},{8}",
                                                          model.WayBillNumber, Int32.Parse(_NLPOSTShippingMethodID), _NLPOSTVenderCode, model.MailNo, model.OriginCode ?? "", model.DestCode ?? "",
                                                          model.AgentMailNo, model.Remark ?? "", model.Status);

            return(obj.ToString() == "1");
        }
Ejemplo n.º 24
0
        /// <summary>
        /// 修改已生成订单状态
        /// </summary>
        /// <param name="receivingBillId"></param>
        /// <returns></returns>
        public static bool UpdateReceivingBillStatus(string receivingBillId)
        {
            Log.Info("LMS开始修改账单号为:{0}出账单状态".FormatWith(receivingBillId));
            var result = false;

            try
            {
                DbUtility dbUtility = new SqlDbUtility(_lmsCon);
                int       obj       =
                    dbUtility.ExecuteNonQuery("update ReceivingBills set Status=2  where ReceivingBillID='" +
                                              receivingBillId + "' and Status=1");
                result = obj > 0;
            }
            catch (Exception ex)
            {
                Log.Exception(ex);
            }
            Log.Info("LMS完成修改账单号为:{0}出账单状态".FormatWith(receivingBillId));
            return(result);
        }
Ejemplo n.º 25
0
        /// <summary>
        /// 更新欧洲专线平邮自定义跟踪信息单号的状态为完成
        /// </summary>
        public static void UpdateCustomeIsOkJob()
        {
            Log.Info("开始更新欧洲专线平邮自定义跟踪信息单号的状态为完成");
            string    sql       = @"WITH kk AS
                        (
			                SELECT WayBillNumber,IsOkJob,LastUpdatedOn
			                FROM dbo.B2CForeCastLogs
			                WHERE IsOkJob=4
		                ),hh AS
                        (
			                SELECT WayBillNumber
			                FROM B2CForeCastLogs d
			                WHERE EXISTS(SELECT 1 FROM kk WHERE kk.WayBillNumber=d.WayBillNumber) AND EventCode=11
		                )
		                UPDATE kk
		                SET IsOkJob=1,LastUpdatedOn=GETDATE()
                        FROM kk 
		                WHERE EXISTS(SELECT 1 FROM hh WHERE hh.WayBillNumber=kk.WayBillNumber)"        ;
            DbUtility dbUtility = new SqlDbUtility(_TrackCon);

            dbUtility.ExecuteNonQuery(sql);
            Log.Info("完成更新欧洲专线平邮自定义跟踪信息单号的状态为完成");
        }
Ejemplo n.º 26
0
        /// <summary>
        /// 获取需要提交到B2C的运单号
        /// </summary>
        /// <returns></returns>
        public static List <string> GetSubmitWayBillNumber()
        {
            var list = new List <string>();

            try
            {
                string    sql       = @"SELECT WayBillNumber FROM dbo.B2CPreAlertLogs WHERE Status=1";
                DbUtility dbUtility = new SqlDbUtility(_lmsCon);
                DataTable dt        = dbUtility.ExecuteData(sql);

                if (dt != null && dt.Rows.Count > 0)
                {
                    Log.Info("LMS获取需要提交到B2C的运单总数是" + dt.Rows.Count);
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        for (int j = 0; j < dt.Columns.Count; j++)
                        {
                            if (dt.Columns[j].ColumnName != "WayBillNumber")
                            {
                                continue;
                            }
                            if (!string.IsNullOrWhiteSpace(dt.Rows[i][j].ToString()))
                            {
                                list.Add(dt.Rows[i][j].ToString().Trim());
                            }
                        }
                    }
                }
                Log.Info("LMS获取需要提交到B2C的运单完毕!");
            }
            catch (Exception ex)
            {
                Log.Exception(ex);
            }
            return(list);
        }
Ejemplo n.º 27
0
 internal SqlServerExpressionParser( SqlDbUtility dbUtility )
 {
     _dbUtility = dbUtility;
 }
Ejemplo n.º 28
0
        /// <summary>
        /// 根据出账单号获取账单信息
        /// </summary>
        /// <param name="receivingBillId"></param>
        /// <returns></returns>
        public static List <BillModel> GetExportReceivingBill(string receivingBillId)
        {
            Log.Info("LMS开始获取账单号为:{0}的账单信息".FormatWith(receivingBillId));
            DbUtility dbUtility = new SqlDbUtility(_lmsCon);
            DataTable dt        = dbUtility.ExecuteData("exec P_ExportReceivingBill N'" + receivingBillId + "'");
            var       list      = new List <BillModel>();

            if (dt != null && dt.Rows.Count > 0)
            {
                Log.Info("LMS开始获取账单号为:{0}的账单信息总数是{1}".FormatWith(receivingBillId, dt.Rows.Count));
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    var v = new BillModel();
                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        switch (dt.Columns[j].ColumnName)
                        {
                        case "ReceivingExpenseId":
                            v.ReceivingExpenseId = Int32.Parse(dt.Rows[i][j].ToString());
                            break;

                        case "CustomerOrderNumber":
                            v.CustomerOrderNumber = dt.Rows[i][j].ToString();
                            break;

                        case "WayBillNumber":
                            v.WayBillNumber = dt.Rows[i][j].ToString();
                            break;

                        case "CreatedOn":
                            v.CreatedOn = DateTime.Parse(dt.Rows[i][j].ToString());
                            break;

                        case "InStorageCreatedOn":
                            v.InStorageCreatedOn = DateTime.Parse(dt.Rows[i][j].ToString());
                            break;

                        case "TrackingNumber":
                            v.TrackingNumber = dt.Rows[i][j].ToString();
                            break;

                        case "ChineseName":
                            v.ChineseName = dt.Rows[i][j].ToString();
                            break;

                        case "InShippingMethodName":
                            v.InShippingMethodName = dt.Rows[i][j].ToString();
                            break;

                        case "InShippingMethodId":
                            v.InShippingMethodId = Int32.Parse(dt.Rows[i][j].ToString());
                            break;

                        case "InStorageID":
                            v.InStorageID = dt.Rows[i][j].ToString();
                            break;

                        case "SettleWeight":
                            v.SettleWeight = decimal.Parse(dt.Rows[i][j].ToString());
                            break;

                        case "Weight":
                            v.Weight = decimal.Parse(dt.Rows[i][j].ToString());
                            break;

                        case "CountNumber":
                            v.CountNumber = Int32.Parse(dt.Rows[i][j].ToString());
                            break;

                        case "Freight":
                            v.Freight = decimal.Parse(dt.Rows[i][j].ToString());
                            break;

                        case "FuelCharge":
                            v.FuelCharge = decimal.Parse(dt.Rows[i][j].ToString());
                            break;

                        case "Register":
                            v.Register = decimal.Parse(dt.Rows[i][j].ToString());
                            break;

                        case "Surcharge":
                            v.Surcharge = decimal.Parse(dt.Rows[i][j].ToString());
                            break;

                        case "TariffPrepayFee":
                            v.TariffPrepayFee = decimal.Parse(dt.Rows[i][j].ToString());
                            break;

                        case "SpecialFee":
                            v.SpecialFee = decimal.Parse(dt.Rows[i][j].ToString());
                            break;

                        case "RemoteAreaFee":
                            v.RemoteAreaFee = decimal.Parse(dt.Rows[i][j].ToString());
                            break;
                        }
                    }
                    list.Add(v);
                }
            }
            Log.Info("LMS完成获取账单号为:{0}的账单信息".FormatWith(receivingBillId));
            return(list);
        }
Ejemplo n.º 29
0
        /// <summary>
        /// 插入客户资金记录表
        /// </summary>
        /// <param name="bill"></param>
        /// <param name="list"></param>
        /// <returns></returns>
        public static bool CreateCustomerAmountRecords(ReceivingBill bill, List <BillModel> list)
        {
            var result = false;

            Log.Info("LMS开始插入客户资金记录客户为:{1},账单号为:{0}".FormatWith(bill.ReceivingBillID, bill.CustomerCode));
            try
            {
                DbUtility dbUtility = new SqlDbUtility(_lmsCon);
                using (var transaction = new TransactionScope())
                {
                    list.ForEach(p =>
                    {
                        object obj;
                        if (p.Freight > 0)
                        {
                            obj =
                                dbUtility.ExecuteScalar(
                                    "Exec P_JobCustomerAmountRecord {0},{1},{2},{3},{4},{5},{6},{7}",
                                    bill.CustomerCode,
                                    p.WayBillNumber, p.InStorageID, 2, 3, p.Freight,
                                    "运单号:{0}扣运费".FormatWith(p.WayBillNumber), "system");
                            if (obj.ToString() != "1")
                            {
                                throw new ArgumentException("该运单号\"{0}\"生成运费扣费记录失败!".FormatWith(p.WayBillNumber));
                            }
                        }
                        else if (p.Freight < 0)
                        {
                            obj =
                                dbUtility.ExecuteScalar(
                                    "Exec P_JobCustomerAmountRecord {0},{1},{2},{3},{4},{5},{6},{7}",
                                    bill.CustomerCode,
                                    p.WayBillNumber, p.InStorageID, 3, 3, p.Freight * -1,
                                    "运单号:{0}退运费".FormatWith(p.WayBillNumber), "system");
                            if (obj.ToString() != "1")
                            {
                                throw new ArgumentException("该运单号\"{0}\"生成运费退费记录失败!".FormatWith(p.WayBillNumber));
                            }
                        }
                        if (p.Register > 0)
                        {
                            obj =
                                dbUtility.ExecuteScalar(
                                    "Exec P_JobCustomerAmountRecord {0},{1},{2},{3},{4},{5},{6},{7}",
                                    bill.CustomerCode,
                                    p.WayBillNumber, p.InStorageID, 2, 4, p.Register,
                                    "运单号:{0}扣挂号费".FormatWith(p.WayBillNumber), "system");
                            if (obj.ToString() != "1")
                            {
                                throw new ArgumentException("该运单号\"{0}\"生成挂号费扣费记录失败!".FormatWith(p.WayBillNumber));
                            }
                        }
                        else if (p.Register < 0)
                        {
                            obj =
                                dbUtility.ExecuteScalar(
                                    "Exec P_JobCustomerAmountRecord {0},{1},{2},{3},{4},{5},{6},{7}",
                                    bill.CustomerCode,
                                    p.WayBillNumber, p.InStorageID, 3, 4, p.Register * -1,
                                    "运单号:{0}退挂号费".FormatWith(p.WayBillNumber), "system");
                            if (obj.ToString() != "1")
                            {
                                throw new ArgumentException("该运单号\"{0}\"生成挂号费退费记录失败!".FormatWith(p.WayBillNumber));
                            }
                        }
                        if (p.FuelCharge > 0)
                        {
                            obj =
                                dbUtility.ExecuteScalar(
                                    "Exec P_JobCustomerAmountRecord {0},{1},{2},{3},{4},{5},{6},{7}",
                                    bill.CustomerCode,
                                    p.WayBillNumber, p.InStorageID, 2, 5, p.FuelCharge,
                                    "运单号:{0}扣燃油费".FormatWith(p.WayBillNumber), "system");
                            if (obj.ToString() != "1")
                            {
                                throw new ArgumentException("该运单号\"{0}\"生成燃油费扣费记录失败!".FormatWith(p.WayBillNumber));
                            }
                        }
                        else if (p.FuelCharge < 0)
                        {
                            obj =
                                dbUtility.ExecuteScalar(
                                    "Exec P_JobCustomerAmountRecord {0},{1},{2},{3},{4},{5},{6},{7}",
                                    bill.CustomerCode,
                                    p.WayBillNumber, p.InStorageID, 3, 5, p.FuelCharge * -1,
                                    "运单号:{0}退燃油费".FormatWith(p.WayBillNumber), "system");
                            if (obj.ToString() != "1")
                            {
                                throw new ArgumentException("该运单号\"{0}\"生成燃油费退费记录失败!".FormatWith(p.WayBillNumber));
                            }
                        }
                        if (p.Surcharge + p.SpecialFee > 0)
                        {
                            obj =
                                dbUtility.ExecuteScalar(
                                    "Exec P_JobCustomerAmountRecord {0},{1},{2},{3},{4},{5},{6},{7}",
                                    bill.CustomerCode,
                                    p.WayBillNumber, p.InStorageID, 2, 2, p.Surcharge + p.SpecialFee,
                                    "运单号:{0}扣附加费".FormatWith(p.WayBillNumber), "system");
                            if (obj.ToString() != "1")
                            {
                                throw new ArgumentException("该运单号\"{0}\"生成附加费扣费记录失败!".FormatWith(p.WayBillNumber));
                            }
                        }
                        else if (p.Surcharge + p.SpecialFee < 0)
                        {
                            obj =
                                dbUtility.ExecuteScalar(
                                    "Exec P_JobCustomerAmountRecord {0},{1},{2},{3},{4},{5},{6},{7}",
                                    bill.CustomerCode,
                                    p.WayBillNumber, p.InStorageID, 3, 2, (p.Surcharge + p.SpecialFee) * -1,
                                    "运单号:{0}退附加费".FormatWith(p.WayBillNumber), "system");
                            if (obj.ToString() != "1")
                            {
                                throw new ArgumentException("该运单号\"{0}\"生成附加费退费记录失败!".FormatWith(p.WayBillNumber));
                            }
                        }
                        if (p.TariffPrepayFee > 0)
                        {
                            obj =
                                dbUtility.ExecuteScalar(
                                    "Exec P_JobCustomerAmountRecord {0},{1},{2},{3},{4},{5},{6},{7}",
                                    bill.CustomerCode,
                                    p.WayBillNumber, p.InStorageID, 2, 6, p.TariffPrepayFee,
                                    "运单号:{0}扣关税预付服务费".FormatWith(p.WayBillNumber), "system");
                            if (obj.ToString() != "1")
                            {
                                throw new ArgumentException("该运单号\"{0}\"生成关税预付服务费扣费记录失败!".FormatWith(p.WayBillNumber));
                            }
                        }
                        else if (p.TariffPrepayFee < 0)
                        {
                            obj =
                                dbUtility.ExecuteScalar(
                                    "Exec P_JobCustomerAmountRecord {0},{1},{2},{3},{4},{5},{6},{7}",
                                    bill.CustomerCode,
                                    p.WayBillNumber, p.InStorageID, 3, 6, p.TariffPrepayFee * -1,
                                    "运单号:{0}退关税预付服务费".FormatWith(p.WayBillNumber), "system");
                            if (obj.ToString() != "1")
                            {
                                throw new ArgumentException("该运单号\"{0}\"生成关税预付服务费退费记录失败!".FormatWith(p.WayBillNumber));
                            }
                        }
                        if (p.RemoteAreaFee > 0)
                        {
                            obj =
                                dbUtility.ExecuteScalar(
                                    "Exec P_JobCustomerAmountRecord {0},{1},{2},{3},{4},{5},{6},{7}",
                                    bill.CustomerCode,
                                    p.WayBillNumber, p.InStorageID, 2, 12, p.RemoteAreaFee,
                                    "运单号:{0}扣偏远附加服务费".FormatWith(p.WayBillNumber), "system");
                            if (obj.ToString() != "1")
                            {
                                throw new ArgumentException("该运单号\"{0}\"生成偏远附加服务费扣费记录失败!".FormatWith(p.WayBillNumber));
                            }
                        }
                        else if (p.RemoteAreaFee < 0)
                        {
                            obj =
                                dbUtility.ExecuteScalar(
                                    "Exec P_JobCustomerAmountRecord {0},{1},{2},{3},{4},{5},{6},{7}",
                                    bill.CustomerCode,
                                    p.WayBillNumber, p.InStorageID, 3, 12, p.RemoteAreaFee * -1,
                                    "运单号:{0}退偏远附加服务费".FormatWith(p.WayBillNumber), "system");
                            if (obj.ToString() != "1")
                            {
                                throw new ArgumentException("该运单号\"{0}\"生成偏远附加服务费退费记录失败!".FormatWith(p.WayBillNumber));
                            }
                        }
                        //if (p.SpecialFee <= 0) return;
                        //obj =
                        //    dbUtility.ExecuteScalar(
                        //        "Exec P_JobCustomerAmountRecord {0},{1},{2},{3},{4},{5},{6},{7}",
                        //        bill.CustomerCode,
                        //        p.WayBillNumber, p.InStorageID, 2, 7, p.SpecialFee,
                        //        "运单号:{0}扣特殊费".FormatWith(p.WayBillNumber), "system");
                        //if (obj.ToString() != "1")
                        //{
                        //    throw new ArgumentException("该运单号\"{0}\"生成特殊费扣费记录失败!".FormatWith(p.WayBillNumber));
                        //}
                    });
                    dbUtility.ExecuteNonQuery("update ReceivingBills set Search=100  where ReceivingBillID='" +
                                              bill.ReceivingBillID + "' and Status=1");//限制重复扣费
                    transaction.Complete();
                }
                result = true;
            }
            catch (Exception ex)
            {
                Log.Exception(ex);
            }
            Log.Info("LMS完成插入客户资金记录客户为:{1},账单号为:{0}".FormatWith(bill.ReceivingBillID, bill.CustomerCode));
            return(result);
        }
Ejemplo n.º 30
0
        static void Main( string[] args )
        {
            var dbUtility = new SqlDbUtility( "Data Source=113.98.255.70,130;Initial Catalog=TEST_FOCALPRICE_DB;Persist Security Info=True;User ID=focal_db;Password=focal_db?;Pooling=True" );

              var result = dbUtility.Entities<P>( "SELECT ProductName, UnitPrice FROM Products WHERE SKU LIKE 'EP%'" );
        }
Ejemplo n.º 31
0
        /// <summary>
        /// 查询该运单号的数据
        /// </summary>
        /// <param name="wayBillNumber"></param>
        /// <returns></returns>
        public static WayBillInfoModel GetWayBillInfoModel(string wayBillNumber)
        {
            Log.Info("开始获取运单号为{0}的数据".FormatWith(wayBillNumber));
            var    model = new WayBillInfoModel();
            string sql   =
                @"SELECT w.WayBillNumber,w.CustomerOrderNumber, ISNULL(s.ShippingFirstName,'')+' '+ ISNULL(s.ShippingLastName,'') ConsigneeName,w.OutShippingMethodID ShippingMethodID
                    ,ISNULL(s.ShippingCompany,'') ShippingCompany,s.ShippingAddress,s.ShippingCity,s.ShippingState,s.ShippingZip,s.ShippingPhone,c.ThreeLetterISOCode CountryCode,
                    ISNULL(w.Weight,0) Weight,ISNULL(w.Length,1) Length,ISNULL(w.Width,1) Width,ISNULL(w.Height,1) Height
                FROM dbo.WayBillInfos w LEFT JOIN dbo.ShippingInfos s ON s.ShippingInfoID = w.ShippingInfoID
                    LEFT JOIN dbo.Countries c ON c.CountryCode = w.CountryCode 
                WHERE w.WayBillNumber='" + wayBillNumber + "'";

            try
            {
                DbUtility dbUtility = new SqlDbUtility(_lmsCon);
                DataTable dt        = dbUtility.ExecuteData(sql);
                if (dt == null || dt.Rows.Count == 0)
                {
                    return(null);
                }

                for (int j = 0; j < dt.Columns.Count; j++)
                {
                    switch (dt.Columns[j].ColumnName)
                    {
                    case "WayBillNumber":
                        model.WayBillNumber = dt.Rows[0][j].ToString();
                        break;

                    case "CustomerOrderNumber":
                        model.CustomerOrderNumber = dt.Rows[0][j].ToString();
                        break;

                    case "ConsigneeName":
                        model.ConsigneeName = dt.Rows[0][j].ToString();
                        break;

                    case "ShippingCompany":
                        model.CompanyName = dt.Rows[0][j].ToString();
                        break;

                    case "ShippingAddress":
                        model.Street = dt.Rows[0][j].ToString();
                        break;

                    case "ShippingCity":
                        model.CityOrTown = dt.Rows[0][j].ToString();
                        break;

                    case "ShippingState":
                        model.StateOrProvince = dt.Rows[0][j].ToString();
                        break;

                    case "ShippingZip":
                        model.ZIPCode = dt.Rows[0][j].ToString();
                        break;

                    case "ShippingPhone":
                        model.PhoneNumber = dt.Rows[0][j].ToString();
                        break;

                    case "CountryCode":
                        model.CountryCode = dt.Rows[0][j].ToString();
                        break;

                    case "Weight":
                        model.Weight = decimal.Parse(dt.Rows[0][j].ToString());
                        break;

                    case "Length":
                        model.Length = decimal.Parse(dt.Rows[0][j].ToString());
                        break;

                    case "Width":
                        model.Width = decimal.Parse(dt.Rows[0][j].ToString());
                        break;

                    case "Height":
                        model.Height = decimal.Parse(dt.Rows[0][j].ToString());
                        break;

                    case "ShippingMethodID":
                        model.ShippingMethodID = Int32.Parse(dt.Rows[0][j].ToString());
                        break;
                        //case "ApplicationInfos":
                        //    model.ApplicationInfos = SerializeUtil.DeserializeFromXml<List<ApplicationInfoModel>>(dt.Rows[0][j].ToString());
                        //    break;
                    }
                }
                sql =
                    @"SELECT ISNULL(a.Remark,'') SKUCode,a.ApplicationName SKUDescription,a.HSCode,
                    ISNULL(a.Qty,1) Quantity,ISNULL(a.UnitPrice,0)*ISNULL(a.Qty,1) Price,a.ProductUrl ImageUrl
                                    FROM dbo.ApplicationInfos a
                                    WHERE a.WayBillNumber='" + wayBillNumber + "' AND a.IsDelete=0";
                DataTable adt = dbUtility.ExecuteData(sql);
                if (adt != null || adt.Rows.Count > 0)
                {
                    for (int i = 0; i < adt.Rows.Count; i++)
                    {
                        var app = new ApplicationInfoModel();
                        for (int j = 0; j < adt.Columns.Count; j++)
                        {
                            switch (adt.Columns[j].ColumnName)
                            {
                            case "SKUCode":
                                app.SKUCode = adt.Rows[i][j].ToString();
                                break;

                            case "SKUDescription":
                                app.SKUDescription = adt.Rows[i][j].ToString();
                                break;

                            case "HSCode":
                                app.HSCode = adt.Rows[i][j].ToString();
                                break;

                            case "Quantity":
                                app.Quantity = Int32.Parse(adt.Rows[i][j].ToString());
                                break;

                            case "Price":
                                app.Price = decimal.Parse(adt.Rows[i][j].ToString());
                                break;

                            case "ImageUrl":
                                app.ImageUrl = adt.Rows[i][j].ToString();
                                break;
                            }
                        }
                        model.ApplicationInfos.Add(app);
                    }
                }
            }
            catch (Exception ex)
            {
                Log.Exception(ex);
            }
            Log.Info("完成获取运单号为{0}的数据".FormatWith(wayBillNumber));
            return(model);
        }
Ejemplo n.º 32
0
        /// <summary>
        /// 获取配置
        /// </summary>
        /// <returns></returns>
        public static Dictionary <int, List <ShippingMethodConfig> > GetShippingMethodConfig(List <ShippingMethodModel> list)
        {
            var dictionary = new Dictionary <int, List <ShippingMethodConfig> >();

            //var list = GetShippingMethodsByIds();
            if (list.Any())
            {
                DbUtility dbUtility = new SqlDbUtility(_lmsCon);
                var       obj       =
                    dbUtility.ExecuteScalar("select ConfigurationValue from SystemConfigurations where ConfigurationKey='" +
                                            _EUDD + "'");
                if (obj != null)
                {
                    TextReader tr   = new StringReader(obj.ToString());
                    var        xml  = XDocument.Load(tr);
                    var        text = from t in xml.Descendants("ShippingMethod")
                                      select new
                    {
                        ShippingMethodCode = t.Element("ShippingMethodCode").Value,
                        Events             = t.Elements("Event").ToList()
                    };
                    if (text.Any())
                    {
                        foreach (var s in text)
                        {
                            if (s.Events.Any())
                            {
                                var shippingmentod = list.SingleOrDefault(p => p.Code == s.ShippingMethodCode);
                                if (shippingmentod != null && shippingmentod.ShippingMethodId > 0)
                                {
                                    foreach (var x in s.Events)
                                    {
                                        int eventCode = Int32.Parse(x.Element("EventCode").Value);
                                        var config    = new List <ShippingMethodConfig>();
                                        var element   = x.Elements().Where(e => e.Attributes().Any(p => p.Name == "CountryCode"));
                                        if (element.Any())
                                        {
                                            var a = element.Select(e => e.Attribute("CountryCode").Value).Distinct();
                                            config.AddRange(a.Select(c => new ShippingMethodConfig()
                                            {
                                                CountryCode      = c,
                                                EventContent     = element.SingleOrDefault(e => e.Attribute("CountryCode").Value == c && e.Name == "EventContent").Value,
                                                ShippingMethodId = shippingmentod.ShippingMethodId,
                                                Address          = element.SingleOrDefault(e => e.Attribute("CountryCode").Value == c && e.Name == "EventAddress").Value,
                                                OffsetHours      = Int32.Parse(element.SingleOrDefault(e => e.Attribute("CountryCode").Value == c && e.Name == "EventAddress").Attribute("OffsetHours").Value),
                                                AddHours         = Int32.Parse(element.SingleOrDefault(e => e.Attribute("CountryCode").Value == c && e.Name == "EventAddress").Attribute("AddHours").Value)
                                            }));
                                        }
                                        var other = x.Elements().Where(e => e.Attributes().All(p => p.Name != "CountryCode") && e.Name != "EventCode");
                                        config.Add(new ShippingMethodConfig()
                                        {
                                            CountryCode      = "Other",
                                            EventContent     = other.SingleOrDefault(e => e.Name == "EventContent").Value,
                                            ShippingMethodId = shippingmentod.ShippingMethodId,
                                            Address          = other.SingleOrDefault(e => e.Name == "EventAddress").Value,
                                            OffsetHours      = Int32.Parse(other.SingleOrDefault(e => e.Name == "EventAddress").Attribute("OffsetHours").Value),
                                            AddHours         = Int32.Parse(other.SingleOrDefault(e => e.Name == "EventAddress").Attribute("AddHours") != null?other.SingleOrDefault(e => e.Name == "EventAddress").Attribute("AddHours").Value:"0")
                                        });
                                        if (dictionary.ContainsKey(eventCode))
                                        {
                                            dictionary[eventCode].AddRange(config);
                                        }
                                        else
                                        {
                                            dictionary.Add(eventCode, config);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            return(dictionary);
        }