public ActionResult CreateFromRoutes(List <EmployeeAutoRouteInfo> routes, string postId)
        {
            DateTime date = DateTime.Now;

            foreach (var item in routes)
            {
                if (item.Mailers.Count() == 0)
                {
                    continue;
                }

                var documentCod = postId + date.ToString("ddMMyyyy");
                //
                var findDocument = db.MM_MailerDelivery.Where(p => p.DocumentCode == documentCod && p.EmployeeID == item.EmployeeID).FirstOrDefault();
                var findEmployee = db.BS_Employees.Find(item.EmployeeID);
                if (findDocument == null)
                {
                    findDocument = new MM_MailerDelivery()
                    {
                        DocumentID   = Guid.NewGuid().ToString(),
                        DocumentCode = documentCod,
                        CreateDate   = date,
                        DocumentDate = date,
                        EmployeeID   = item.EmployeeID,
                        LastEditDate = DateTime.Now,
                        Notes        = "",
                        NumberPlate  = "",
                        Quantity     = 0,
                        StatusID     = 0,
                        Weight       = 0,
                        PostID       = postId
                    };

                    db.MM_MailerDelivery.Add(findDocument);

                    db.SaveChanges();
                }


                // add to detail
                foreach (var mailer in item.Mailers)
                {
                    var checkMailer = db.MM_Mailers.Where(p => p.MailerID == mailer.MailerID && (p.CurrentStatusID == 2 || p.CurrentStatusID == 6 || p.CurrentStatusID == 5)).FirstOrDefault();

                    if (checkMailer != null)
                    {
                        if (checkMailer.CurrentStatusID == 6 || checkMailer.CurrentStatusID == 5)
                        {
                            if (checkMailer.IsPostAccept == false)
                            {
                                continue;
                            }
                        }

                        // dang phat
                        var check = db.MM_MailerDeliveryDetail.Where(p => p.MailerID == mailer.MailerID && p.DocumentID == findDocument.DocumentID && p.DeliveryStatus == 3).FirstOrDefault();

                        if (check != null)
                        {
                            continue;
                        }

                        var insData = new MM_MailerDeliveryDetail()
                        {
                            Id             = Guid.NewGuid().ToString(),
                            DocumentID     = findDocument.DocumentID,
                            MailerID       = checkMailer.MailerID,
                            CreationDate   = DateTime.Now,
                            DeliveryStatus = 3,
                        };

                        db.MM_MailerDeliveryDetail.Add(insData);

                        checkMailer.CurrentStatusID = 3;
                        checkMailer.LastUpdateDate  = DateTime.Now;
                        checkMailer.IsPostAccept    = false;
                        db.Entry(checkMailer).State = System.Data.Entity.EntityState.Modified;

                        db.SaveChanges();

                        HandleHistory.AddTracking(3, checkMailer.MailerID, checkMailer.CurrentPostOfficeID, "Nhân viên " + findEmployee.EmployeeName + "(" + findEmployee.Phone + ") , đang đi phát hàng");
                    }
                }

                MailerHandle.SendNotifi("Phát hàng", "Có đơn phát mới phát", findEmployee.UserLogin);
            }

            return(Json(new { }, JsonRequestBehavior.AllowGet));
        }
Esempio n. 2
0
        public ActionResult CreateFromRoutes(List <EmployeeAutoRouteInfo> routes, string postId)
        {
            DateTime date = DateTime.Now;

            foreach (var item in routes)
            {
                if (item.Mailers.Count() == 0)
                {
                    continue;
                }

                var documentCod = postId + date.ToString("ddMMyyyy");
                //
                var findDocument = db.MM_MailerDelivery.Where(p => p.DocumentCode == documentCod && p.EmployeeID == item.EmployeeID).FirstOrDefault();

                if (findDocument == null)
                {
                    findDocument = new MM_MailerDelivery()
                    {
                        DocumentID   = Guid.NewGuid().ToString(),
                        DocumentCode = documentCod,
                        CreateDate   = date,
                        DocumentDate = date,
                        EmployeeID   = item.EmployeeID,
                        LastEditDate = DateTime.Now,
                        Notes        = "",
                        NumberPlate  = "",
                        Quantity     = 0,
                        StatusID     = 0,
                        Weight       = 0,
                        PostID       = postId
                    };

                    db.MM_MailerDelivery.Add(findDocument);

                    db.SaveChanges();
                }


                // add to detail
                foreach (var mailer in item.Mailers)
                {
                    var checkMailer = db.MM_Mailers.Where(p => p.MailerID == mailer.MailerID && (p.CurrentStatusID == 2 || p.CurrentStatusID == 6 || p.CurrentStatusID == 5)).FirstOrDefault();

                    if (checkMailer != null)
                    {
                        // dang phat
                        var check = db.MM_MailerDeliveryDetail.Where(p => p.MailerID == mailer.MailerID && p.DocumentID == findDocument.DocumentID && p.DeliveryStatus == 3).FirstOrDefault();

                        if (check != null)
                        {
                            continue;
                        }

                        var insData = new MM_MailerDeliveryDetail()
                        {
                            Id             = Guid.NewGuid().ToString(),
                            DocumentID     = findDocument.DocumentID,
                            MailerID       = checkMailer.MailerID,
                            CreationDate   = DateTime.Now,
                            DeliveryStatus = 3,
                        };

                        db.MM_MailerDeliveryDetail.Add(insData);

                        checkMailer.CurrentStatusID = 3;
                        checkMailer.LastUpdateDate  = DateTime.Now;
                        db.Entry(checkMailer).State = System.Data.Entity.EntityState.Modified;

                        db.SaveChanges();
                    }
                }
            }

            return(Json(new { }, JsonRequestBehavior.AllowGet));
        }
        public ActionResult AddMailer(string mailerId, string documentId)
        {
            var mailer = db.MM_Mailers.Find(mailerId);

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

            if (mailer.CurrentStatusID != 2 && mailer.CurrentStatusID != 6 && mailer.CurrentStatusID != 5)
            {
                return(Json(new ResultInfo()
                {
                    error = 1,
                    msg = "Mã hàng không thể phân phát"
                }, JsonRequestBehavior.AllowGet));
            }



            if (mailer.CurrentStatusID == 6 || mailer.CurrentStatusID == 5)
            {
                if (mailer.IsPostAccept == false)
                {
                    return(Json(new ResultInfo()
                    {
                        error = 1,
                        msg = "Mã hàng không thể phân phát vì bưu cục chưa xác nhận nhận hàng"
                    }, JsonRequestBehavior.AllowGet));
                }
            }

            var delivery = db.MM_MailerDelivery.Find(documentId);

            if (delivery == null || (delivery.DocumentDate.Value.ToString("ddMMyyyy") != DateTime.Now.ToString("ddMMyyyy")))
            {
                return(Json(new ResultInfo()
                {
                    error = 1,
                    msg = "Không thể phân phát"
                }, JsonRequestBehavior.AllowGet));
            }

            try
            {
                // dang phat
                var check = db.MM_MailerDeliveryDetail.Where(p => p.MailerID == mailerId && p.DocumentID == documentId && p.DeliveryStatus == 3).FirstOrDefault();

                if (check != null)
                {
                    throw new Exception("Không thể phân phát");
                }

                var insData = new MM_MailerDeliveryDetail()
                {
                    Id             = Guid.NewGuid().ToString(),
                    DocumentID     = documentId,
                    MailerID       = mailerId,
                    CreationDate   = DateTime.Now,
                    DeliveryStatus = 3
                };

                db.MM_MailerDeliveryDetail.Add(insData);

                db.SaveChanges();

                mailer.CurrentStatusID = 3;
                mailer.IsPostAccept    = false;
                mailer.LastUpdateDate  = DateTime.Now;
                db.Entry(mailer).State = System.Data.Entity.EntityState.Modified;
                db.SaveChanges();

                // luu tracking
                var employee = db.BS_Employees.Where(p => p.EmployeeID == delivery.EmployeeID).FirstOrDefault();
                HandleHistory.AddTracking(3, mailerId, mailer.CurrentPostOfficeID, "Nhân viên " + employee.EmployeeName + "(" + employee.Phone + ") , đang đi phát hàng");

                var data = db.MAILERDELIVERY_GETMAILER_BY_ID(insData.Id).FirstOrDefault();
                MailerHandle.SendNotifi("Phát hàng", "Có 1 đơn phát hàng mới: " + mailer.MailerID, employee.UserLogin);
                return(Json(new ResultInfo()
                {
                    error = 0,
                    msg = "",
                    data = data
                }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception e)
            {
                return(Json(new ResultInfo()
                {
                    error = 1,
                    msg = "Lỗi cập nhật"
                }, JsonRequestBehavior.AllowGet));
            }
        }
Esempio n. 4
0
        public ActionResult AddListMailer(List <string> mailers, string documentId)
        {
            var delivery = db.MM_MailerDelivery.Find(documentId);
            var employee = db.BS_Employees.Where(p => p.EmployeeID == delivery.EmployeeID).FirstOrDefault();

            if (delivery == null || (delivery.DocumentDate.Value.ToString("ddMMyyyy") != DateTime.Now.ToString("ddMMyyyy")))
            {
                return(Json(new ResultInfo()
                {
                    error = 1,
                    msg = "Không thể phân phát"
                }, JsonRequestBehavior.AllowGet));
            }
            foreach (var item in mailers)
            {
                var mailer = db.MM_Mailers.Find(item);
                if (mailer == null)
                {
                    continue;
                }

                if (mailer.CurrentStatusID != 2 && mailer.CurrentStatusID != 6 && mailer.CurrentStatusID != 5)
                {
                    continue;
                }

                // dang phat
                var check = db.MM_MailerDeliveryDetail.Where(p => p.MailerID == item && p.DocumentID == documentId && p.DeliveryStatus == 3).FirstOrDefault();

                if (check != null)
                {
                    throw new Exception("Không thể phân phát");
                }


                var insData = new MM_MailerDeliveryDetail()
                {
                    Id             = Guid.NewGuid().ToString(),
                    DocumentID     = documentId,
                    MailerID       = item,
                    CreationDate   = DateTime.Now,
                    DeliveryStatus = 3,
                };

                db.MM_MailerDeliveryDetail.Add(insData);

                db.SaveChanges();

                mailer.CurrentStatusID = 3;
                mailer.LastUpdateDate  = DateTime.Now;
                db.Entry(mailer).State = System.Data.Entity.EntityState.Modified;

                db.SaveChanges();


                HandleHistory.AddTracking(3, item, mailer.CurrentPostOfficeID, "Nhân viên " + employee.EmployeeName + "(" + employee.Phone + ") , đang đi phát hàng");
            }

            return(Json(new ResultInfo()
            {
                error = 0,
                msg = ""
            }, JsonRequestBehavior.AllowGet));
        }