示例#1
0
        public ActionResult Edit(int Id)
        {
            var UserId = User.Identity.GetUserId();

            ViewBag.ListOutlet   = new SelectList(EmployeeOutletDAL.GetDataByID(int.Parse(UserId)), "OutletID", "OutletName");
            ViewBag.ListSupplier = new SelectList(SuppliersDAL.GetData(), "ID", "Name");
            ListPurchaseOrderViewModel model = PurchaseOrderDAL.GetDataByIdPO(Id);

            return(PartialView("Edit", model));
        }
示例#2
0
        public ActionResult Detail(ListPurchaseOrderViewModel model)
        {
            if (ModelState.IsValid)
            {
                using (POSContext context = new POSContext())
                {
                    using (var dbTransacyion = context.Database.BeginTransaction())
                    {
                        int           UserId = User.Identity.GetUserId <int>();
                        PurchaseOrder item   = context.TPurchaseOrder.Where(m => m.ID == model.ID).FirstOrDefault();
                        item.StatusID   = model.StatusID;
                        item.ModifiedBy = UserId;
                        item.ModifiedOn = DateTime.Now;
                        context.SaveChanges();

                        PurchaseOrderHistory item2 = new PurchaseOrderHistory()
                        {
                            HeaderID   = item.ID,
                            StatusID   = model.StatusID,
                            CreatedBy  = UserId,
                            ModifiedBy = UserId,
                            CreatedOn  = DateTime.Now,
                            ModifiedOn = DateTime.Now
                        };
                        context.TPurchaseOrderHistory.Add(item2);
                        context.SaveChanges();

                        if (model.StatusID == 2)
                        {
                            int i = 0;
                            foreach (var data in model.VariantID)
                            {
                                int           variantid = data;
                                ItemsIventory item3     = context.TItemsIventory.Where(m => m.VariantID == variantid).FirstOrDefault();
                                item3.PurchaseOrder = model.Quantity[i];
                                i++;
                            }
                            context.SaveChanges();
                        }

                        try
                        {
                            dbTransacyion.Commit();
                            return(RedirectToAction("Index"));
                        }
                        catch (Exception)
                        {
                            throw;
                        }
                    }
                }
            }
            return(PartialView("Detail", model));
        }
        public IEnumerable <ListPurchaseOrderViewModel> ListPurchaseOrder(DateTime fromDate, DateTime toDate)
        {
            IEnumerable <PurchaseOrderDetailViewModel> result = null;

            using (var context = new ArtileriDataContext(ConnectionString))
            {
                var query = from poh in context.PurchaseOrderHeaders
                            where poh.Date >= fromDate && poh.Date <= toDate
                            select poh;
                foreach (var poHeader in query)
                {
                    var model = new ListPurchaseOrderViewModel();
                    model.DocumentNo      = poHeader.DocumentNo;
                    model.SupplierName    = poHeader.Supplier.Name;
                    model.SupplierAddress = poHeader.Supplier.Address;
                    model.DocumentDate    = poHeader.Date;
                    model.ExpectedDate    = poHeader.ExpectedDate.GetValueOrDefault();

                    var detail = GetPurchaseOrderDetail(model.DocumentNo);
                    model.DiscountValue = poHeader.DiscountValue;
                    model.SubTotal      = detail.Sum(pod => pod.Total);
                    model.GrandTotal    = model.SubTotal - model.DiscountValue;

                    switch (poHeader.Status)
                    {
                    case "A":
                        model.Status = "Approved";
                        break;

                    case "O":
                        model.Status = "Open";
                        break;

                    case "C":
                        model.Status = "Closed";
                        break;

                    case "V":
                        model.Status = "Void";
                        break;

                    case "N":
                        model.Status = "Not Approved";
                        break;
                    }

                    yield return(model);
                }
            }
        }
示例#4
0
        public static ListPurchaseOrderViewModel GetDataByIdPO(int id)
        {
            ListPurchaseOrderViewModel result = new ListPurchaseOrderViewModel();

            using (POSContext context = new POSContext())
            {
                result = (from op in context.TPurchaseOrder
                          where op.ID == id
                          select new ListPurchaseOrderViewModel()
                {
                    ID = op.ID,
                    SupplierID = op.SupplierID,
                    StatusID = op.StatusID,
                    Notes = op.Notes,
                    OrderNo = op.OrderNo,
                    OutletID = op.OutletID,
                    CreatedBy = op.CreatedBy,
                    CreatedOn = op.CreatedOn,
                }).FirstOrDefault();

                PurchaseOrderViewModel employee = new PurchaseOrderViewModel();
                employee = (from op in context.TPurchaseOrder
                            join us in context.TUser on op.CreatedBy equals us.Id
                            join ep in context.TEmployee on us.Email equals ep.Email
                            where op.ID == id
                            select new PurchaseOrderViewModel()
                {
                    fullname = ep.FirstName + " " + ep.LastName,
                    email = ep.Email
                }).FirstOrDefault();
                result.PurchaseOrder = employee;

                SuppliersViewModel supplier = new SuppliersViewModel();

                supplier = (from op in context.TPurchaseOrder
                            join sp in context.TSuppliers on op.SupplierID equals sp.ID
                            join p in context.TProvince on sp.ProvinceID equals p.ID
                            join r in context.TRegion on sp.RegionID equals r.ID
                            join d in context.TDistrict on sp.DistrictID equals d.ID
                            where op.ID == id
                            select new SuppliersViewModel()
                {
                    ID = sp.ID,
                    Address = sp.Address,
                    RegionName = r.RegionName,
                    RegionID = sp.RegionID,
                    ProvinceName = p.ProvinceName,
                    ProvinceID = sp.ProvinceID,
                    Phone = sp.Phone,
                    PostalCode = sp.PostalCode,
                    DistrictName = d.DistrictName,
                    DistrictID = sp.DistrictID,
                    Email = sp.Email,
                    Name = sp.Name
                }).FirstOrDefault();
                result.Supplier = supplier;

                OutletViewModel outlet = new OutletViewModel();

                outlet = (from op in context.TPurchaseOrder
                          join ot in context.TOutlet on op.OutletID equals ot.ID
                          join p in context.TProvince on ot.ProvinceID equals p.ID
                          join r in context.TRegion on ot.RegionID equals r.ID
                          where op.ID == id
                          select new OutletViewModel()
                {
                    ID = ot.ID,
                    OutletName = ot.OutletName,
                    Phone = ot.Phone,
                    FullAddress = ot.Address + ", " + p.ProvinceName + ", " + r.RegionName + ", " + ot.PostalCode
                }).FirstOrDefault();
                result.Outlet = outlet;

                List <PurchaseOrderDetailsViewModel> purchaseorderdetail = new List <PurchaseOrderDetailsViewModel>();

                purchaseorderdetail = (from pod in context.TPurchaseOrderDetail
                                       join ii in context.TItemsIventory on pod.VariantID equals ii.VariantID
                                       join iv in context.TItemsVariant on pod.VariantID equals iv.ID
                                       where pod.HeaderID == id
                                       select new PurchaseOrderDetailsViewModel
                {
                    ID = pod.ID,
                    VariantID = pod.VariantID,
                    VarianName = iv.VariantName,
                    InStok = ii.Beginning,
                    Quantity = pod.Quantity,
                    HeaderID = pod.HeaderID,
                    UnitCost = pod.UnitCost,
                    SubTotal = pod.SubTotal,
                    CreatedBy = pod.CreatedBy,
                    CreatedOn = pod.CreatedOn,
                    ModifiedBy = pod.ModifiedBy,
                    ModifiedOn = pod.ModifiedOn
                }).ToList();
                result.PurchaseOrderDetail = purchaseorderdetail;
            }
            return(result);
        }
示例#5
0
        public ActionResult Edit(ListPurchaseOrderViewModel model)
        {
            if (ModelState.IsValid)
            {
                using (POSContext context = new POSContext())
                {
                    using (var dbTransaction = context.Database.BeginTransaction())
                    {
                        int           UserId  = User.Identity.GetUserId <int>();
                        string        OrderNo = PurchaseOrderDAL.OrderNo();
                        PurchaseOrder order   = context.TPurchaseOrder.Where(m => m.ID == model.ID).FirstOrDefault();
                        if (order != null)
                        {
                            order.OutletID   = model.OutletID;
                            order.SupplierID = model.SupplierID;
                            order.Notes      = model.Notes;
                            order.Total      = model.Total;
                            order.ModifiedBy = UserId;
                            order.ModifiedOn = DateTime.Now;
                        }

                        context.SaveChanges();

                        int i = 0;
                        foreach (var item in model.VariantID)
                        {
                            int POid = model.PODetailID[i];
                            PurchaseOrderDetail orderdetail = context.TPurchaseOrderDetail.Where(m => m.ID == POid).FirstOrDefault();
                            if (orderdetail != null)
                            {
                                orderdetail.HeaderID   = order.ID;
                                orderdetail.Quantity   = model.Quantity[i];
                                orderdetail.SubTotal   = model.SubTotal[i];
                                orderdetail.VariantID  = item;
                                orderdetail.UnitCost   = model.UnitCost[i];
                                orderdetail.ModifiedBy = UserId;
                                orderdetail.ModifiedOn = DateTime.Now;
                            }
                            else
                            {
                                PurchaseOrderDetail orderdetail2 = new PurchaseOrderDetail()
                                {
                                    HeaderID   = order.ID,
                                    Quantity   = model.Quantity[i],
                                    SubTotal   = model.SubTotal[i],
                                    VariantID  = item,
                                    UnitCost   = model.UnitCost[i],
                                    CreatedBy  = UserId,
                                    CreatedOn  = DateTime.Now,
                                    ModifiedBy = UserId,
                                    ModifiedOn = DateTime.Now
                                };
                                context.TPurchaseOrderDetail.Add(orderdetail2);
                            }
                            i++;
                        }
                        context.SaveChanges();


                        try
                        {
                            dbTransaction.Commit();
                            return(RedirectToAction("Index"));
                        }
                        catch (Exception)
                        {
                            dbTransaction.Rollback();
                        }
                    }
                }
            }
            return(PartialView("Edit", model));
        }
示例#6
0
        public ActionResult Detail(int Id)
        {
            ListPurchaseOrderViewModel model = PurchaseOrderDAL.GetDataByIdPO(Id);

            return(PartialView("Detail", model));
        }