Ejemplo n.º 1
0
        public ActionResult AddOrEditDetail(VT_GetDetailById_Result con)
        {
            TransactionDetail td = db.TransactionDetails.Where(x => x.ID == con.ID).FirstOrDefault();

            if (td.Quantity != con.Quantity)
            {
                if (td.Quantity < con.Quantity)
                {
                    db.VT_ExtraDetail(td.ID, td.FeeName, con.Quantity, td.FeeAmount, DateTime.Now);
                    return(Json(new { success = true, message = "Added Successfully" }, JsonRequestBehavior.AllowGet));
                }
                if (td.Quantity > con.Quantity)
                {
                    if (con.Quantity == 0)
                    {
                        db.TransactionDetails.Remove(td);
                        db.SaveChanges();
                        return(Json(new { success = true, message = "Removed Successfully" }, JsonRequestBehavior.AllowGet));
                    }
                    else
                    {
                        if (!con.FeeName.Contains("VanChuyen"))
                        {
                            db.VT_RemoveDetail(td.ID, td.FeeName, con.Quantity, td.FeeAmount, DateTime.Now);
                            return(Json(new { success = true, message = "Removed Successfully" }, JsonRequestBehavior.AllowGet));
                        }
                        else
                        {
                            var count = db.TransportOrders
                                        .Where(o => o.TransactionID == con.ID && o.TripID != null)
                                        .Count();
                            if (count < (td.Quantity - con.Quantity))
                            {
                                return(Json(new { success = true, message = "Lỗi: số lệnh cần xóa lớn hơn số lệnh đã tạo chuyến" }, JsonRequestBehavior.AllowGet));
                            }
                            else
                            {
                                db.VT_RemoveDetail(td.ID, td.FeeName, con.Quantity, td.FeeAmount, DateTime.Now);
                                return(Json(new { success = true, message = "Removed Successfully" }, JsonRequestBehavior.AllowGet));
                            }
                        }
                    }
                }
            }
            TransactionDetail tran = db.TransactionDetails.Where(x => x.ID == con.ID).FirstOrDefault();

            tran.FeeAmount       = con.FeeAmount;
            tran.Total           = tran.FeeAmount * tran.Quantity;
            db.Entry(tran).State = EntityState.Modified;
            db.SaveChanges();
            int?        total = db.TransactionDetails.Where(x => x.TransactionID == tran.TransactionID).Sum(x => x.Total);
            Transaction tr    = db.Transactions.Where(x => x.ID == tran.TransactionID).FirstOrDefault();

            tr.Total           = total;
            db.Entry(tr).State = EntityState.Modified;
            db.SaveChanges();
            return(Json(new { success = true, message = "Updated Successfully" }, JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 2
0
 public ActionResult AddOrEditDetail(VT_GetDetailById_Result con)
 {
     try
     {
         TransactionDetail td = db.TransactionDetails.Where(x => x.ID == con.ID).FirstOrDefault();
         if (td.Quantity != con.Quantity)
         {
             //neu tang so cont
             if (td.Quantity < con.Quantity)
             {
                 db.VT_ExtraDetail(td.ID, td.FeeName, con.Quantity, td.FeeAmount, DateTime.Now, con.CntrSize);
                 return(Json(new { success = true, message = "Thêm chi tiết thành công!" }, JsonRequestBehavior.AllowGet));
             }
             //neu giam so cont
             if (td.Quantity > con.Quantity)
             {
                 if (con.Quantity == 0)
                 {
                     db.TransactionDetails.Remove(td);
                     db.SaveChanges();
                     return(Json(new { success = true, message = "Xóa chi tiết thành công!" }, JsonRequestBehavior.AllowGet));
                 }
                 else
                 {
                     if (!con.FeeName.Contains("VanChuyen"))
                     {
                         db.VT_RemoveDetail(td.ID, td.FeeName, con.Quantity, td.FeeAmount, DateTime.Now);
                         return(Json(new { success = true, message = "Xóa chi tiết thành công!" }, JsonRequestBehavior.AllowGet));
                     }
                     else
                     {
                         var count = db.TransportOrders
                                     .Where(o => o.TransactionID == con.ID && o.TripID == null)
                                     .Count();
                         if (count < (td.Quantity - con.Quantity))
                         {
                             return(Json(new { success = true, message = "Lỗi: số lệnh cần xóa lớn hơn số lệnh chưa tạo chuyến" }, JsonRequestBehavior.AllowGet));
                         }
                         else
                         {
                             db.VT_RemoveDetail(td.ID, td.FeeName, con.Quantity, td.FeeAmount, DateTime.Now);
                             return(Json(new { success = true, message = "Xóa chi tiết thành công!" }, JsonRequestBehavior.AllowGet));
                         }
                     }
                 }
             }
         }
         TransactionDetail tran = db.TransactionDetails.Where(x => x.ID == con.ID).FirstOrDefault();
         tran.FeeAmount       = con.FeeAmount;
         tran.Total           = tran.FeeAmount * tran.Quantity;
         db.Entry(tran).State = EntityState.Modified;
         db.SaveChanges();
         int?        total = db.TransactionDetails.Where(x => x.TransactionID == tran.TransactionID).Sum(x => x.Total);
         Transaction tr    = db.Transactions.Where(x => x.ID == tran.TransactionID).FirstOrDefault();
         tr.Total           = total;
         db.Entry(tr).State = EntityState.Modified;
         db.SaveChanges();
         return(Json(new { success = true, message = "Cập nhật thành công!" }, JsonRequestBehavior.AllowGet));
     }
     catch (Exception ex)
     {
         help.LogError(ex);
         return(Json(new { success = false, message = "Cập nhật thất bại!" }, JsonRequestBehavior.AllowGet));
     }
 }