예제 #1
0
        // POST: FactoryOrder/Create
        // To protect from overposting attacks, please enable the specific properties you want to bind to, for
        // more details see http://go.microsoft.com/fwlink/?LinkId=317598.
        //[HttpPost]
        //[ValidateAntiForgeryToken]
        //public ActionResult Create([Bind(Include = "Id,BuyerOrderMasId,SalesContractNo,SalesContractDate,SupplierId,IsAuth,OpBy,OpOn,AuthBy,AuthOn,IsLocked")] FactoryOrderMas factoryOrderMas)
        //{
        //    if (ModelState.IsValid)
        //    {
        //        db.FactoryOrderMas.Add(factoryOrderMas);
        //        db.SaveChanges();
        //        return RedirectToAction("Index");
        //    }

        //    ViewBag.BuyerOrderMasId = new SelectList(db.BuyerOrderMas, "Id", "OrderRefNo", factoryOrderMas.BuyerOrderMasId);
        //    ViewBag.SupplierId = new SelectList(db.Supplier, "Id", "Name", factoryOrderMas.SupplierId);
        //    return View(factoryOrderMas);
        //}


        public JsonResult SaveFactoryOrder(IEnumerable <VMFactoryOrderDet> OrderDetails, IEnumerable <VMFactoryOrderDelivDet> DelivDetails, FactoryOrderMas OrderMas)
        {
            var result = new
            {
                flag    = false,
                message = "Error occured. !",
                Id      = 0
            };

            try
            {
                var OpDate = DateTime.Now;
                using (var dbContextTransaction = db.Database.BeginTransaction())
                {
                    try
                    {
                        //var OrderM = new BuyerOrderMas()
                        //{
                        //    Id = 0,
                        //    OrderRefNo = OrderMas.OrderRefNo,
                        //    OrderDate = OrderMas.OrderDate,
                        //    BuyerInfoId = OrderMas.BuyerInfoId,
                        //    ProdDepartmentId = OrderMas.ProdDepartmentId,
                        //    SeasonInfoId = OrderMas.SeasonInfoId,
                        //    FabSupplierId = OrderMas.FabSupplierId,
                        //    OpBy = 1,
                        //    OpOn = OpDate,
                        //    IsAuth = true,
                        //    IsLocked = false
                        //};

                        OrderMas.OpBy     = 1;
                        OrderMas.OpOn     = OpDate;
                        OrderMas.IsAuth   = true;
                        OrderMas.IsLocked = false;

                        db.FactoryOrderMas.Add(OrderMas);
                        db.SaveChanges();


                        Dictionary <int, int> dictionary =
                            new Dictionary <int, int>();

                        if (OrderDetails != null)
                        {
                            foreach (var item in OrderDetails)
                            {
                                var OrderD = new FactoryOrderDet()
                                {
                                    Id = 0,
                                    FactoryOrderMasId = OrderMas.Id,
                                    BuyerOrderDetId   = item.BuyerOrderDetId,
                                    IsLocked          = false
                                };

                                //item.FactoryOrderMasId = OrderMas.Id;
                                //item.IsLocked = false;

                                db.FactoryOrderDet.Add(OrderD);
                                db.SaveChanges();

                                dictionary.Add(item.TempOrderDetId, OrderD.Id);
                            }
                        }



                        //---- shipment data

                        //    var slno = 1;

                        if (DelivDetails != null)
                        {
                            foreach (var item in DelivDetails)
                            {
                                var deliv = new FactoryOrderDelivDet()
                                {
                                    Id = item.Id,
                                    ShipmentSummDetId = item.ShipmentSummDetId,
                                    FactoryOrderDetId = dictionary[item.DelivOrderDetTempId],
                                    ExFactoryDate     = item.ExFactoryDate,
                                    FactFOB           = item.FactFOB
                                                        //DiscountFOB = item.DiscountFOB,
                                                        //DiscountFlag = false
                                };

                                //db.Entry(deliv).State = deliv.Id == 0 ?
                                //                            EntityState.Added :
                                //                            EntityState.Modified;

                                db.FactoryOrderDelivDet.Add(deliv);
                                db.SaveChanges();
                            }
                        }


                        dbContextTransaction.Commit();

                        result = new
                        {
                            flag    = true,
                            message = "Saving successful !!",
                            Id      = OrderMas.Id
                        };

                        Success("Record saved successfully.", true);
                    }
                    catch (Exception ex)
                    {
                        dbContextTransaction.Rollback();

                        result = new
                        {
                            flag    = false,
                            message = ex.Message,
                            Id      = 0
                        };
                    }
                }
            }
            catch (Exception ex)
            {
                result = new
                {
                    flag    = false,
                    message = ex.Message,
                    Id      = 0
                };
            }


            return(Json(result, JsonRequestBehavior.AllowGet));
        }
예제 #2
0
        // POST: FactoryOrder/Edit/5
        // To protect from overposting attacks, please enable the specific properties you want to bind to, for
        // more details see http://go.microsoft.com/fwlink/?LinkId=317598.
        //[HttpPost]
        //[ValidateAntiForgeryToken]
        //public ActionResult Edit([Bind(Include = "Id,BuyerOrderMasId,SalesContractNo,SalesContractDate,SupplierId,IsAuth,OpBy,OpOn,AuthBy,AuthOn,IsLocked")] FactoryOrderMas factoryOrderMas)
        //{
        //    if (ModelState.IsValid)
        //    {
        //        db.Entry(factoryOrderMas).State = EntityState.Modified;
        //        db.SaveChanges();
        //        return RedirectToAction("Index");
        //    }
        //    ViewBag.BuyerOrderMasId = new SelectList(db.BuyerOrderMas, "Id", "OrderRefNo", factoryOrderMas.BuyerOrderMasId);
        //    ViewBag.SupplierId = new SelectList(db.Supplier, "Id", "Name", factoryOrderMas.SupplierId);
        //    return View(factoryOrderMas);
        //}


        public JsonResult UpdateFactoryOrder(IEnumerable <VMFactoryOrderDet> OrderDetails, IEnumerable <VMFactoryOrderDelivDet> DelivDetails, FactoryOrderMas OrderMas)
        {
            var result = new
            {
                flag    = false,
                message = "Error occured. !"
            };

            try
            {
                var OpDate = DateTime.Now;
                using (var dbContextTransaction = db.Database.BeginTransaction())
                {
                    try
                    {
                        var OrderM = db.FactoryOrderMas.Find(OrderMas.Id);

                        if (OrderM == null)
                        {
                            result = new
                            {
                                flag    = false,
                                message = "Factory Order not found, Saving Failed !!"
                            };

                            return(Json(result, JsonRequestBehavior.AllowGet));
                        }

                        OrderM.SalesContractDate = OrderMas.SalesContractDate;
                        OrderM.SalesContractDate = OrderMas.SalesContractDate;
                        OrderM.OpBy = 1;
                        OrderM.OpOn = OpDate;

                        db.Entry(OrderM).State = EntityState.Modified;

                        db.SaveChanges();
                        //var OrderM = new BuyerOrderMas()
                        //{
                        //    Id = 0,
                        //    OrderRefNo = OrderMas.OrderRefNo,
                        //    OrderDate = OrderMas.OrderDate,
                        //    BuyerInfoId = OrderMas.BuyerInfoId,
                        //    ProdDepartmentId = OrderMas.ProdDepartmentId,
                        //    SeasonInfoId = OrderMas.SeasonInfoId,
                        //    FabSupplierId = OrderMas.FabSupplierId,
                        //    OpBy = 1,
                        //    OpOn = OpDate,
                        //    IsAuth = true,
                        //    IsLocked = false
                        //};

                        //OrderMas.OpBy = 1;
                        //OrderMas.OpOn = OpDate;
                        //OrderMas.IsAuth = true;
                        //OrderMas.IsLocked = false;

                        //db.FactoryOrderMas.Add(OrderMas);
                        //db.SaveChanges();

                        Dictionary <int, int> dictionary =
                            new Dictionary <int, int>();

                        foreach (var item in OrderDetails)
                        {
                            //var OrderD = new BuyerOrderDet()
                            //{
                            //    Id = 0,
                            //    BuyerOrderMasId = OrderM.Id,
                            //    ProdCatTypeId = item.ProdCatTypeId,
                            //    StyleNo = item.StyleNo,
                            //    ProdSizeId = item.ProdSizeId,
                            //    ProdColorId = item.ProdColorId,
                            //    FabricItemId = item.FabricItemId,
                            //    SupplierId = item.SupplierId,
                            //    UnitPrice = item.UnitPrice,
                            //    Quantity = item.Quantity,
                            //    IsLocked = false

                            //};

                            if (item.Id == 0) //insert
                            {
                                //item.FactoryOrderMasId = OrderMas.Id;
                                //item.IsLocked = false;

                                var OrderD = new FactoryOrderDet()
                                {
                                    Id = item.Id,
                                    FactoryOrderMasId = OrderMas.Id,
                                    BuyerOrderDetId   = item.BuyerOrderDetId,
                                    IsLocked          = false
                                };

                                db.FactoryOrderDet.Add(OrderD);
                                dictionary.Add(item.TempOrderDetId, OrderD.Id);
                            }
                            else //update
                            {
                                var oItem = db.FactoryOrderDet.Find(item.Id);
                                //oItem.FOBUnitPrice = item.FOBUnitPrice;
                                db.Entry(oItem).State = EntityState.Modified;
                                dictionary.Add(item.TempOrderDetId, oItem.Id);
                            }

                            db.SaveChanges();
                        }


                        //  var slno = 1;

                        if (DelivDetails != null)
                        {
                            foreach (var item in DelivDetails)
                            {
                                var delivItem = db.FactoryOrderDelivDet.Find(item.Id);

                                if (delivItem != null)
                                {
                                    delivItem.ExFactoryDate = item.ExFactoryDate;
                                    delivItem.FactFOB       = item.FactFOB;

                                    //db.FactoryOrderDelivDet.Attach(delivItem);
                                    db.Entry(delivItem).State = EntityState.Modified;
                                    db.SaveChanges();
                                }
                                else
                                {
                                    var deliv = new FactoryOrderDelivDet()
                                    {
                                        Id = item.Id,
                                        FactoryOrderDetId = dictionary[item.DelivOrderDetTempId],
                                        ExFactoryDate     = item.ExFactoryDate,
                                        ShipmentSummDetId = item.ShipmentSummDetId,
                                        FactFOB           = item.FactFOB
                                    };

                                    db.Entry(deliv).State = deliv.Id == 0 ?
                                                            EntityState.Added :
                                                            EntityState.Modified;

                                    //db.FactoryOrderDelivDet.Add(deliv);
                                    db.SaveChanges();
                                }
                            }
                        }



                        dbContextTransaction.Commit();

                        result = new
                        {
                            flag    = true,
                            message = "Saving successful !!"
                        };

                        Success("Updated successfully.", true);
                    }
                    catch (Exception ex)
                    {
                        dbContextTransaction.Rollback();

                        result = new
                        {
                            flag    = false,
                            message = ex.Message
                        };
                    }
                }
            }
            catch (Exception ex)
            {
                result = new
                {
                    flag    = false,
                    message = ex.Message
                };
            }


            return(Json(result, JsonRequestBehavior.AllowGet));
        }