Example #1
0
        /// <summary>
        /// 修改订单信息
        /// </summary>
        /// <param name="strjson">前台返回的json对象</param>
        public void Update_order(string strjson)
        {
            //反序列化(将json字符串转换成对象)
            Update_OrderInfo U_Order = new Update_OrderInfo();

            U_Order = JsonConvert.DeserializeObject <Update_OrderInfo>(strjson);

            //修改数据库
            //得到订单编号
            int orderid = Convert.ToInt32(U_Order.OFI_ID);

            //修改订单信息
            OrderFormInfo Order_update = shop.OrderFormInfo.Where(a => a.OFI_ID == orderid).FirstOrDefault();

            Order_update.OFI_Number = Convert.ToInt32(U_Order.OFI_Number);
            Order_update.OFI_States = Convert.ToInt32(U_Order.IsState);


            //修改默认地址信息

            MyAddressInfo Address_Update = shop.MyAddressInfo.Where(a => a.MAI_ID == Order_update.OFI_SAI_ID).FirstOrDefault();

            Address_Update.MAI_Name  = U_Order.GetName;
            Address_Update.MAI_Phone = U_Order.Phone;

            int count = shop.SaveChanges();

            if (count > 0)
            {
                Response.Write("success");
            }
            else
            {
                Response.Write("fail");
            }
        }
Example #2
0
        public ActionResult SendPartner(string documentId, MyAddressInfo address, bool useAPI)
        {
            var checkDocument = db.MM_MailerPartner.Find(documentId);

            if (checkDocument == null)
            {
                return(Json(new ResultInfo()
                {
                    error = 1,
                    msg = "Sai thông tin"
                }, JsonRequestBehavior.AllowGet));
            }

            var partner = db.BS_Partners.Find(checkDocument.PartnerID);

            if (partner == null)
            {
                return(Json(new ResultInfo()
                {
                    error = 1,
                    msg = "Sai thông tin"
                }, JsonRequestBehavior.AllowGet));
            }

            //
            if (useAPI)
            {
                switch (partner.PartnerCode)
                {
                case "VIETTEL":
                    SendViettelHandle viettelHandle = new SendViettelHandle(db, partner, HandleHistory);
                    viettelHandle.SendViettelPost(checkDocument.DocumentID, address);
                    break;

                default:
                    var details = db.MAILER_PARTNER_GETDETAIL(documentId).ToList();
                    foreach (var item in details)
                    {
                        var checkDetail = db.MM_MailerPartnerDetail.Where(p => p.DocumentID == documentId && p.MailerID == item.MailerID).FirstOrDefault();

                        var mailer = db.MM_Mailers.Find(item.MailerID);

                        checkDetail.StatusID = 1;

                        db.Entry(checkDetail).State = System.Data.Entity.EntityState.Modified;

                        mailer.ThirdpartyDocID = checkDetail.OrderReference;
                        mailer.ThirdpartyCode  = partner.PartnerCode;
                        mailer.ThirdpartyID    = partner.PartnerID;
                        mailer.CurrentStatusID = 9;
                        mailer.ThirdpartyCost  = Convert.ToDecimal(checkDetail.OrderCosst);

                        db.Entry(mailer).State = System.Data.Entity.EntityState.Modified;
                        db.SaveChanges();
                    }
                    break;
                }
            }
            else
            {
                var details = db.MAILER_PARTNER_GETDETAIL(documentId).ToList();
                foreach (var item in details)
                {
                    var checkDetail = db.MM_MailerPartnerDetail.Where(p => p.DocumentID == documentId && p.MailerID == item.MailerID).FirstOrDefault();

                    var mailer = db.MM_Mailers.Find(item.MailerID);

                    checkDetail.StatusID = 1;

                    db.Entry(checkDetail).State = System.Data.Entity.EntityState.Modified;

                    mailer.ThirdpartyDocID = checkDetail.OrderReference;
                    mailer.ThirdpartyCode  = partner.PartnerCode;
                    mailer.ThirdpartyID    = partner.PartnerID;
                    mailer.CurrentStatusID = 9;
                    mailer.ThirdpartyCost  = Convert.ToDecimal(checkDetail.OrderCosst);

                    db.Entry(mailer).State = System.Data.Entity.EntityState.Modified;
                    db.SaveChanges();
                }
            }


            return(Json(new ResultInfo()
            {
                error = 0,
                msg = ""
            }, JsonRequestBehavior.AllowGet));
        }
        public void SendViettelPost(string documentId, MyAddressInfo infoAddress)
        {
            var token = CheckTokenExpired(partner);

            string url = @"https://api.viettelpost.vn/api/tmdt/InsertOrder";

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

            request.ContentType      = "application/json";
            request.Method           = "POST";
            request.Headers["Token"] = token;

            var details = db.MAILER_PARTNER_GETDETAIL(documentId).ToList();

            foreach (var item in details)
            {
                try
                {
                    ViettelOrderSend info = new ViettelOrderSend()
                    {
                        ORDER_NUMBER        = item.MailerID,
                        GROUPADDRESS_ID     = 0,
                        DELIVERY_DATE       = DateTime.Now.AddDays(1).ToString("dd/MM/yyyy HH:mm:ss"),
                        CUS_ID              = Convert.ToInt32(partner.UserID),
                        SENDER_FULLNAME     = infoAddress.name,
                        SENDER_ADDRESS      = infoAddress.address,
                        SENDER_EMAIL        = infoAddress.email,
                        SENDER_PHONE        = infoAddress.phone,
                        SENDER_WARD         = Convert.ToInt32(infoAddress.ward),
                        SENDER_DISTRICT     = Convert.ToInt32(infoAddress.district),
                        SENDER_PROVINCE     = Convert.ToInt32(infoAddress.province),
                        SENDER_LATITUDE     = 0,
                        SENDER_LONGITUDE    = 0,
                        RECEIVER_FULLNAME   = item.RecieverName,
                        RECEIVER_ADDRESS    = item.RecieverAddress,
                        RECEIVER_PHONE      = item.RecieverPhone,
                        RECEIVER_DISTRICT   = Convert.ToInt32(item.RecieverDistrictID),
                        RECEIVER_PROVINCE   = Convert.ToInt32(item.RecieverProvinceID),
                        RECEIVER_WARD       = Convert.ToInt32(item.RecieverWardID),
                        PRODUCT_QUANTITY    = Convert.ToInt32(item.Quantity),
                        RECEIVER_EMAIL      = "",
                        RECEIVER_LATITUDE   = 0,
                        RECEIVER_LONGITUDE  = 0,
                        PRODUCT_NAME        = "",
                        PRODUCT_HEIGHT      = 0,
                        PRODUCT_LENGTH      = 0,
                        PRODUCT_WEIGHT      = 0,
                        PRODUCT_WIDTH       = 0,
                        ORDER_NOTE          = item.Notes,
                        PRODUCT_DESCRIPTION = item.MailerDescription,
                        MONEY_COLLECTION    = Convert.ToString(Convert.ToInt32(item.COD)),
                        ORDER_SERVICE       = "VCN",
                        PRODUCT_TYPE        = "HH",
                        PRODUCT_PRICE       = Convert.ToInt32(item.MerchandiseValue),
                        ORDER_PAYMENT       = 3
                    };

                    var findServiceMap = db.PARTNER_MAP_INFO("VIETTEL", "SERVICE").ToList();
                    info.ORDER_SERVICE = findServiceMap.Where(p => p.MNPostData == item.MailerTypeID).Select(p => p.PartnerData).FirstOrDefault();

                    var priceSend = sendCalPrice(new CalPriceVietle()
                    {
                        SENDER_PROVINCE   = info.SENDER_PROVINCE,
                        SENDER_DISTRICT   = info.SENDER_DISTRICT,
                        RECEIVER_PROVINCE = info.RECEIVER_PROVINCE,
                        RECEIVER_DISTRICT = info.RECEIVER_DISTRICT,
                        PRODUCT_TYPE      = "HH",
                        ORDER_SERVICE     = info.ORDER_SERVICE,
                        PRODUCT_WEIGHT    = info.PRODUCT_WEIGHT,
                        PRODUCT_PRICE     = info.PRODUCT_PRICE,
                        MONEY_COLLECTION  = info.MONEY_COLLECTION,
                    });

                    info.MONEY_TOTAL = priceSend;

                    string json = new JavaScriptSerializer().Serialize(info);

                    using (var streamWriter = new StreamWriter(request.GetRequestStream()))
                    {
                        streamWriter.Write(json);
                        streamWriter.Flush();
                        streamWriter.Close();
                    }
                    var httpResponse = (HttpWebResponse)request.GetResponse();

                    using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
                    {
                        var result = streamReader.ReadToEnd();
                        var res    = Json.Decode(result);

                        if (res.status != null)
                        {
                            var checkDetail = db.MM_MailerPartnerDetail.Where(p => p.DocumentID == documentId && p.MailerID == item.MailerID).FirstOrDefault();

                            var mailer = db.MM_Mailers.Find(item.MailerID);

                            checkDetail.StatusID       = 1;
                            checkDetail.OrderReference = res.data.ORDER_NUMBER;
                            checkDetail.OrderCosst     = info.MONEY_TOTAL;

                            db.Entry(checkDetail).State = System.Data.Entity.EntityState.Modified;

                            mailer.ThirdpartyDocID = res.data.ORDER_NUMBER;
                            mailer.ThirdpartyCode  = partner.PartnerCode;
                            mailer.ThirdpartyID    = partner.PartnerID;
                            mailer.CurrentStatusID = 9;
                            mailer.ThirdpartyCost  = info.MONEY_TOTAL;

                            db.Entry(mailer).State = System.Data.Entity.EntityState.Modified;
                            db.SaveChanges();

                            // tracking
                            // HandleHistory.AddTracking(3, mailer.MailerID, res.data.ORDER_NUMBER, mailer.CurrentPostOfficeID, "Chuyển qua đối tác " + partner.ParterName + ", vận đơn đối tác : " + res.data.ORDER_NUMBER);
                        }
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
            }


            var document = db.MM_MailerPartner.Find(documentId);

            document.StatusID        = 1;
            db.Entry(document).State = System.Data.Entity.EntityState.Modified;
            db.SaveChanges();
        }