Пример #1
0
        private K3SaleOrderFinance GetK3SaleOrderFinance(DynamicObject obj)
        {
            K3SaleOrderFinance fin = null;

            if (obj != null)
            {
                DynamicObjectCollection objs = obj["SaleOrderFinance"] as DynamicObjectCollection;

                if (objs != null && objs.Count > 0)
                {
                    fin = new K3SaleOrderFinance();
                    foreach (var item in objs)
                    {
                        if (item != null)
                        {
                            DynamicObject curr = item["SettleCurrId"] as DynamicObject;
                            fin.FSettleCurrID  = SQLUtils.GetFieldValue(curr, "Number");
                            fin.F_HS_RateToUSA = Convert.ToDecimal(SQLUtils.GetFieldValue(item, "ExchangeRate"));
                        }
                    }
                }
            }

            return(fin);
        }
Пример #2
0
        /// <summary>
        /// 获取财务信息
        /// </summary>
        /// <param name="obj"></param>
        /// <param name="fielName"></param>
        /// <returns></returns>
        private K3SaleOrderFinance GetOrderFinance(DynamicObject obj, string fielName)
        {
            K3SaleOrderFinance finance = null;

            if (obj != null && !string.IsNullOrWhiteSpace(fielName))
            {
                DynamicObjectCollection coll = obj[fielName] as DynamicObjectCollection;

                if (coll != null && coll.Count > 0)
                {
                    finance = new K3SaleOrderFinance();

                    foreach (var item in coll)
                    {
                        finance.FSettleCurrID = SQLUtils.GetSettleCurrNo(this.Context, item, "SettleCurrId_Id");//结算币别
                    }
                }
            }
            return(finance);
        }
Пример #3
0
        /// <summary>
        /// 获取销售订单财务信息
        /// </summary>
        /// <returns></returns>
        private K3SaleOrderFinance GetOrderFinance()
        {
            K3SaleOrderFinance      fin  = null;
            DynamicObjectCollection coll = this.View.Model.DataObject["SaleOrderFinance"] as DynamicObjectCollection;

            if (coll != null && coll.Count > 0)
            {
                foreach (var item in coll)
                {
                    if (item != null)
                    {
                        fin = new K3SaleOrderFinance();
                        DynamicObject fina = this.View.Model.GetValue("FSettleCurrId") as DynamicObject;
                        fin.FSettleCurrID  = SQLUtils.GetFieldValue(fina, "Number");
                        fin.FBillAllAmount = Convert.ToDecimal(this.View.Model.GetValue("FBillAmount"));
                    }
                }
            }

            return(fin);
        }
        private K3SaleOrderFinance GetOrderFinance(DynamicObject obj)
        {
            K3SaleOrderFinance fin = null;

            if (obj != null)
            {
                DynamicObjectCollection coll = obj["SaleOrderFinance"] as DynamicObjectCollection;

                if (coll != null && coll.Count > 0)
                {
                    foreach (var item in coll)
                    {
                        if (item != null)
                        {
                            fin = new K3SaleOrderFinance();
                            DynamicObject curr = item["SettleCurrId"] as DynamicObject;
                            fin.FSettleCurrID  = SQLUtils.GetFieldValue(curr, "Number");
                            fin.FBillAllAmount = Convert.ToDecimal(SQLUtils.GetFieldValue(item, "BillAmount"));
                        }
                    }
                }
            }
            return(fin);
        }
Пример #5
0
        //public override void EndOperationTransaction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.EndOperationTransactionArgs e)
        //{
        //    base.EndOperationTransaction(e);


        //    //List<K3SalOrderInfo> temp = new List<K3SalOrderInfo>();

        //    //if (e.DataEntitys == null) return;
        //    //List<DynamicObject> dataEntitys = e.DataEntitys.ToList();

        //    //if (dataEntitys == null || dataEntitys.Count <= 0)
        //    //{
        //    //    return;
        //    //}


        //    //foreach (var item in dataEntitys)
        //    //{
        //    //    if (SQLUtils.GetSaleOrderSourceNo(this.Context, item, "F_HS_SaleOrderSource_Id").CompareTo("XXBJDD") == 0
        //    //        && SQLUtils.GetFieldValue(item, "DocumentStatus").CompareTo("C") == 0 && SQLUtils.GetFieldValue(item, "BillNo").StartsWith("SO")
        //    //        && SQLUtils.GetFieldValue(item, "BillNo").Contains("_"))
        //    //    {
        //    //        K3SaleOrderFinance finance = GetOrderFinance(item, "SaleOrderFinance");//财务信息

        //    //        string FBillNo = SQLUtils.GetFieldValue(item, "BillNo");//订单号

        //    //        if (!string.IsNullOrWhiteSpace(FBillNo))
        //    //        {
        //    //            if (FBillNo.Contains("_"))
        //    //            {
        //    //                FBillNo = FBillNo.Substring(0, FBillNo.IndexOf("_"));
        //    //                SynOfflineSalOrderToHC.SynAllSalOrderToPHP(this.Context, false, FBillNo);
        //    //            }

        //    //        }
        //    //    }

        //    //}

        //}


        public override void AfterExecuteOperationTransaction(AfterExecuteOperationTransaction e)
        {
            base.AfterExecuteOperationTransaction(e);


            List <K3SalOrderInfo> orders = null;
            List <K3SalOrderInfo> temp   = new List <K3SalOrderInfo>();

            if (e.DataEntitys == null)
            {
                return;
            }
            List <DynamicObject> dataEntitys = e.DataEntitys.ToList();

            if (dataEntitys == null || dataEntitys.Count <= 0)
            {
                return;
            }
            orders = new List <K3SalOrderInfo>();

            foreach (var item in dataEntitys)
            {
                if (SQLUtils.GetSaleOrderSourceNo(this.Context, item, "F_HS_SaleOrderSource_Id").CompareTo("XXBJDD") == 0 &&
                    SQLUtils.GetFieldValue(item, "DocumentStatus").CompareTo("C") == 0 && SQLUtils.GetFieldValue(item, "BillNo").StartsWith("SO") &&
                    SQLUtils.GetFieldValue(item, "BillNo").Contains("_"))
                {
                    K3SaleOrderFinance finance = GetOrderFinance(item, "SaleOrderFinance"); //财务信息

                    string FBillNo = SQLUtils.GetFieldValue(item, "BillNo");                //订单号

                    if (!string.IsNullOrWhiteSpace(FBillNo))
                    {
                        if (FBillNo.Contains("_"))
                        {
                            FBillNo = FBillNo.Substring(0, FBillNo.IndexOf("_"));
                            //SynOfflineSalOrderToHC.SynAllSalOrderToPHP(false, FBillNo);
                        }
                    }

                    //order = new K3SalOrderInfo();

                    //K3SaleOrderFinance finance = GetOrderFinance(item, "SaleOrderFinance");//财务信息

                    //order.FBillNo = SQLUtils.GetFieldValue(item, "BillNo");//订单号
                    //order.F_HS_OriginOnlineOrderNo = SQLUtils.GetFieldValue(item, "F_HS_OriginOnlineOrderNo");//原线上订单单号
                    //order.FDate = Convert.ToDateTime(SQLUtils.GetFieldValue(item, "Date"));//订单日期
                    //order.PurseDate = TimeHelper.GetTimeStamp(order.FDate);//订单日期(时间戳)
                    //order.FNote = SQLUtils.GetFieldValue(item, "FNote");//备注
                    //order.FCustId = SQLUtils.GetCustomerNo(this.Context, item, "CustId_Id");//客户
                    //order.FSalerId = SQLUtils.GetSellerNo(this.Context, item, "SalerId_Id");//销售员
                    //order.OrderSource = SQLUtils.GetSaleOrderSourceNo(this.Context, item, "F_HS_SaleOrderSource_Id");//订单来源

                    //order.F_HS_PaymentStatus = SQLUtils.GetFieldValue(item, "F_HS_PaymentStatus");//付款状态
                    //order.FSettleCurrId = finance.FSettleCurrID;//结算币别

                    //order.F_HS_RateToUSA = Convert.ToDecimal(SQLUtils.GetFieldValue(item, "ExchangeRate"));//汇率
                    //order.F_HS_RecipientCountry = SQLUtils.GetCountryNo(this.Context, item, "F_HS_RecipientCountry_Id");//国家

                    //order.F_HS_DeliveryProvinces = SQLUtils.GetFieldValue(item, "F_HS_DeliveryProvinces");//省份
                    //order.F_HS_DeliveryCity = SQLUtils.GetFieldValue(item, "F_HS_DeliveryCity");//城市

                    //order.F_HS_DeliveryAddress = SQLUtils.GetFieldValue(item, "F_HS_DeliveryAddress");//具体地址
                    //order.F_HS_PostCode = SQLUtils.GetFieldValue(item, "F_HS_PostCode");//邮编

                    //order.F_HS_DeliveryName = SQLUtils.GetFieldValue(item, "F_HS_DeliveryName");//收货人
                    //order.F_HS_BillAddress = SQLUtils.GetFieldValue(item, "F_HS_BillAddress");//账单地址

                    //order.F_HS_MobilePhone = SQLUtils.GetFieldValue(item, "F_HS_MobilePhone");//联系人手机
                    //order.F_HS_ShippingMethod = SQLUtils.GetFieldValue(item, "F_HS_ShippingMethod");//发货方式

                    //order.FSETTLEMODEID = SQLUtils.GetFieldValue(item, "F_HS_PaymentMode");//结算方式

                    //order.FCustLevel = SQLUtils.GetCustGroupNo(this.Context, item, "F_HS_FGroup_Id");//客户分组

                    //order.FNote = SQLUtils.GetFieldValue(item, "Note");//备注
                    //order.F_HS_Channel = SQLUtils.GetFieldValue(item, "F_HS_OnlineOrderWay");//下单方式

                    //order.F_HS_CouponAmount = Convert.ToDecimal(SQLUtils.GetFieldValue(item, "F_HS_CouponAmount"));//优惠券金额
                    ////order.F_HS_Shipping = Convert.ToDecimal(SQLUtils.GetFieldValue(item, "F_HS_Shipping"));//运费

                    //order.F_HS_Points = Convert.ToDecimal(SQLUtils.GetFieldValue(item, "F_HS_Points"));//积分

                    //order.OrderEntry = GetOrderEntry(item, "SaleOrderEntry", order);//订单明细
                    //order.F_HS_Total = order.F_HS_Subtotal - order.F_HS_CouponAmount - order.F_HS_IntegralDeduction - order.F_HS_DiscountedAmount + order.F_HS_Shipping;//优惠后金额
                    //order.FApproveDate = TimeHelper.GetTimeStamp(Convert.ToDateTime(SQLUtils.GetFieldValue(item, "ApproveDate")));
                    //orders.Add(order);
                }
                //if (orders != null && orders.Count > 0)
                //{
                //    if (temp.All(a => orders.Any(b => a.Equals(b))))
                //    {
                //        temp = temp.Concat(orders).ToList();

                //        if (IsConnectSuccess(this.Context))
                //        {
                //            SynOfflineSalOrderToHC.SynSalOrderToPHP(this.Context, temp);
                //            temp.Clear();
                //        }
                //    }

                //}
            }
        }
Пример #6
0
        public override IEnumerable <AbsSynchroDataInfo> GetK3Datas(Context ctx, List <DynamicObject> objects, ref HttpResponseResult result)
        {
            K3SalOrderInfo        order  = null;
            List <K3SalOrderInfo> orders = null;

            result         = new HttpResponseResult();
            result.Success = true;

            if (objects != null && objects.Count > 0)
            {
                orders = new List <K3SalOrderInfo>();

                foreach (var item in objects)
                {
                    if (item != null)
                    {
                        if (SQLUtils.GetBillTypeNo(this.Context, item, "BillTypeId_Id").CompareTo("XSDD01_SYS") == 0 && SQLUtils.GetSaleOrderSourceNo(this.Context, item, "F_HS_SaleOrderSource_Id").CompareTo("XXBJDD") == 0 &&
                            SQLUtils.GetFieldValue(item, "DocumentStatus").CompareTo("C") == 0 && SQLUtils.GetFieldValue(item, "BillNo").StartsWith("SO") &&
                            !SQLUtils.GetFieldValue(item, "BillNo").Contains("_") && SQLUtils.GetFieldValue(item, "SaleOrgId_Id").CompareTo("100035") == 0)
                        {
                            order = new K3SalOrderInfo();

                            K3SaleOrderFinance finance = GetOrderFinance(item, "SaleOrderFinance");//财务信息

                            order.SrcNo   = SQLUtils.GetFieldValue(item, "BillNo");
                            order.FBillNo = SQLUtils.GetFieldValue(item, "BillNo");                                    //订单号
                            order.F_HS_OriginOnlineOrderNo = SQLUtils.GetFieldValue(item, "F_HS_OriginOnlineOrderNo"); //原线上订单单号
                            order.FDate     = Convert.ToDateTime(SQLUtils.GetFieldValue(item, "Date"));                //订单日期
                            order.PurseDate = TimeHelper.GetTimeStamp(order.FDate);                                    //订单日期(时间戳)
                            order.FNote     = SQLUtils.GetFieldValue(item, "FNote");                                   //备注

                            DynamicObject cust = item["CustId"] as DynamicObject;                                      //客户
                            order.FCustId = SQLUtils.GetFieldValue(cust, "Number");

                            DynamicObject realCust = item["F_HS_B2CCustId"] as DynamicObject;//客户真实ID
                            order.F_HS_B2CCustId = SQLUtils.GetFieldValue(realCust, "Number");

                            DynamicObject saler = item["SalerId"] as DynamicObject;
                            order.FSalerId = SQLUtils.GetFieldValue(saler, "Number");

                            DynamicObject source = item["F_HS_SaleOrderSource"] as DynamicObject;
                            order.OrderSource = SQLUtils.GetFieldValue(source, "FNumber");                          //订单来源

                            order.F_HS_PaymentStatus = SQLUtils.GetFieldValue(item, "F_HS_PaymentStatus");          //付款状态
                            order.FSettleCurrId      = finance.FSettleCurrID;                                       //结算币别

                            order.F_HS_RateToUSA = Convert.ToDecimal(SQLUtils.GetFieldValue(item, "ExchangeRate")); //汇率

                            DynamicObject country = item["F_HS_RecipientCountry"] as DynamicObject;
                            order.F_HS_RecipientCountry = SQLUtils.GetFieldValue(country, "Number");               //国家

                            order.F_HS_DeliveryProvinces = SQLUtils.GetFieldValue(item, "F_HS_DeliveryProvinces"); //省份
                            order.F_HS_DeliveryCity      = SQLUtils.GetFieldValue(item, "F_HS_DeliveryCity");      //城市

                            order.F_HS_DeliveryAddress = SQLUtils.GetFieldValue(item, "F_HS_DeliveryAddress");     //具体地址
                            order.F_HS_PostCode        = SQLUtils.GetFieldValue(item, "F_HS_PostCode");            //邮编

                            order.F_HS_DeliveryName = SQLUtils.GetFieldValue(item, "F_HS_DeliveryName");           //收货人
                            order.F_HS_BillAddress  = SQLUtils.GetFieldValue(item, "F_HS_BillAddress");            //账单地址

                            order.F_HS_MobilePhone    = SQLUtils.GetFieldValue(item, "F_HS_MobilePhone");          //联系人手机
                            order.F_HS_ShippingMethod = SQLUtils.GetFieldValue(item, "F_HS_ShippingMethod");       //发货方式

                            DynamicObject met = item["F_HS_PaymentModeNew"] as DynamicObject;
                            order.F_HS_PaymentModeNew = SQLUtils.GetFieldValue(met, "Number");                              //付款方式

                            order.FCustLevel = SQLUtils.GetCustGroupNo(this.Context, item, "F_HS_FGroup_Id");               //客户分组

                            order.FNote        = SQLUtils.GetFieldValue(item, "Note");                                      //备注
                            order.F_HS_Channel = SQLUtils.GetFieldValue(item, "F_HS_OnlineOrderWay");                       //下单方式

                            order.F_HS_CouponAmount = Convert.ToDecimal(SQLUtils.GetFieldValue(item, "F_HS_CouponAmount")); //优惠券金额
                            //order.F_HS_Shipping = Convert.ToDecimal(SQLUtils.GetFieldValue(item, "F_HS_Shipping"));//运费

                            order.F_HS_Points = Convert.ToDecimal(SQLUtils.GetFieldValue(item, "F_HS_Points"));                                                                           //积分

                            order.OrderEntry          = GetOrderEntry(item, "SaleOrderEntry", order);                                                                                     //订单明细
                            order.F_HS_Total          = order.F_HS_Subtotal - order.F_HS_CouponAmount - order.F_HS_IntegralDeduction - order.F_HS_DiscountedAmount + order.F_HS_Shipping; //优惠后金额
                            order.FApproveDate        = TimeHelper.GetTimeStamp(Convert.ToDateTime(SQLUtils.GetFieldValue(item, "ApproveDate")));
                            order.F_HS_CollectionTime = Convert.ToDateTime(SQLUtils.GetFieldValue(item, "F_HS_CollectionTime"));                                                          //CEO特批已到款时间
                            order.PayedTime           = TimeHelper.GetTimeStamp(order.F_HS_CollectionTime);                                                                               //CEO特批已到款时间(时间戳)
                            orders.Add(order);
                        }
                    }
                }
            }

            return(orders);
        }
Пример #7
0
        private List <K3SalOrderInfo> GetK3SalOrderInfos(List <DynamicObject> objs)
        {
            List <K3SalOrderInfo> orders = null;
            K3SalOrderInfo        order  = null;
            string message = string.Empty;

            if (objs != null && objs.Count > 0)
            {
                orders = new List <K3SalOrderInfo>();

                foreach (var obj in objs)
                {
                    if (obj != null)
                    {
                        string documentstatus = SQLUtils.GetFieldValue(obj, "DocumentStatus");
                        bool   isSyn          = Convert.ToBoolean(SQLUtils.GetFieldValue(obj, "F_HS_YNSyncCollection"));

                        DynamicObject oSrc    = obj["F_HS_SaleOrderSource"] as DynamicObject;
                        string        oSource = SQLUtils.GetFieldValue(oSrc, "FNumber");

                        if (documentstatus.CompareTo("C") == 0 && !isSyn && oSource.CompareTo("HCWebProcessingOder") == 0)
                        {
                            if (Convert.ToDecimal(SQLUtils.GetFieldValue(obj, "F_HS_PayTotal")) > 0)
                            {
                                order = new K3SalOrderInfo();

                                order.FDate   = Convert.ToDateTime(SQLUtils.GetFieldValue(obj, "Date"));
                                order.FBillNo = SQLUtils.GetFieldValue(obj, "BillNo");

                                DynamicObject cust = obj["CustId"] as DynamicObject;
                                order.FCustId = SQLUtils.GetFieldValue(cust, "Number");

                                DynamicObject b2cCust = obj["F_HS_B2CCustId"] as DynamicObject;
                                order.F_HS_B2CCustId = SQLUtils.GetFieldValue(b2cCust, "Number");

                                DynamicObject saler = obj["SalerId"] as DynamicObject;
                                order.FSalerId = SQLUtils.GetFieldValue(saler, "Number");

                                DynamicObject saleOrg = obj["SaleOrgId"] as DynamicObject;
                                order.FSaleOrgId = SQLUtils.GetFieldValue(saleOrg, "Number");

                                DynamicObject saleDept = obj["SaleDeptId"] as DynamicObject;
                                order.FSaleDeptId = SQLUtils.GetFieldValue(saleDept, "Number");

                                DynamicObject pay = obj["F_HS_PaymentModeNew"] as DynamicObject;
                                order.F_HS_PaymentModeNew = SQLUtils.GetFieldValue(pay, "FNumber");

                                order.F_HS_TransactionID = SQLUtils.GetFieldValue(obj, "F_HS_TransactionID");
                                order.F_HS_PayTotal      = SQLUtils.GetFieldValue(obj, "F_HS_PayTotal");
                                order.F_HS_RateToUSA     = Convert.ToDecimal(SQLUtils.GetFieldValue(obj, "F_HS_RateToUSA"));

                                K3SaleOrderFinance fin = GetK3SaleOrderFinance(obj);
                                if (fin != null)
                                {
                                    order.FSettleCurrId = fin.FSettleCurrID;
                                }

                                orders.Add(order);
                            }
                            else
                            {
                                message += "销售订单:【" + SQLUtils.GetFieldValue(obj, "BillNo") + "】的Pay_Total的金额小于零,不允许生成收款单!" + Environment.NewLine;
                            }
                        }
                        else
                        {
                            message += "销售订单:【" + SQLUtils.GetFieldValue(obj, "BillNo") + "】收款单生成只能是processing和未生成收款单的销售订单" + Environment.NewLine;
                        }
                    }
                }
            }
            if (!string.IsNullOrWhiteSpace(message))
            {
                _result         = new HttpResponseResult();
                _result.Message = message;
                _result.Success = false;
            }
            return(orders);
        }