public async Task <IActionResult> Edit(int id, [Bind("id,price,material")] MaterialUnitPrice materialUnitPrice)
        {
            if (id != materialUnitPrice.id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    Material material = _context.material.Where(p => p.id == materialUnitPrice.material.id).First();

                    materialUnitPrice.material    = material;
                    materialUnitPrice.create_time = DateTime.Now.ToString("yyyy.MM.dd HH:mm:ss");
                    _context.Update(materialUnitPrice);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!MaterialUnitPriceExists(materialUnitPrice.id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(materialUnitPrice));
        }
        public async Task <ActionResult> EditAddUnit(MaterialBuyData materialBuyData)
        {
            if (Session["LoginUserID"] == null)
            {
                return(RedirectToAction("Login", "Account"));
            }

            if (ModelState.IsValid)
            {
                //                db.Entry(materialBuyData).State = EntityState.Modified;
                MaterialName mName = db.MaterialNames.FirstOrDefault(m => m.NameVn.Equals(materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName.NameVn) ||
                                                                     m.NameVn.Equals(materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName.NameKr));
                if (mName != null)
                {
                    materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialNameID = mName.ID;
                    materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName   = mName;
                }
                else
                {
                    if (materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName.NameKr == null)
                    {
                        materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName.NameKr = materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName.NameVn;
                    }

                    db.MaterialNames.Add(materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName);
                }
                MaterialBuy materialBuy = db.MaterialBuys.FirstOrDefault(m => m.ID == materialBuyData.MaterialBuy.ID);
                materialBuyData.MaterialBuyUnit.MaterialUnitPrice.CompanyID = materialBuy.CompanyID;
                materialBuyData.MaterialBuyUnit.MaterialUnitPrice.Date      = materialBuy.Date;

                MaterialUnitPrice muPrice = db.MaterialUnitPrices.OrderBy(m => m.Date)
                                            .FirstOrDefault(m => m.MaterialName.NameVn.Equals(materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName.NameVn));

                if (muPrice == null || muPrice.Price != materialBuyData.MaterialBuyUnit.MaterialUnitPrice.Price)
                {
                    db.MaterialUnitPrices.Add(materialBuyData.MaterialBuyUnit.MaterialUnitPrice);
                }
                else
                {
                    materialBuyData.MaterialBuyUnit.MaterialUnitPrice   = muPrice;
                    materialBuyData.MaterialBuyUnit.MaterialUnitPriceID = muPrice.ID;
                }

                db.MaterialBuyUnits.Add(materialBuyData.MaterialBuyUnit);
                materialBuy.MaterialBuyUnits.Add(materialBuyData.MaterialBuyUnit);

                await db.SaveChangesAsync();

                return(RedirectToAction("EditAddUnit", new { id = materialBuyData.MaterialBuy.ID }));
            }
            return(View(materialBuyData));
        }
        public async Task <IActionResult> Create([Bind("id,price,material")] MaterialUnitPrice materialUnitPrice)
        {
            if (ModelState.IsValid)
            {
                Material material = _context.material.Where(p => p.id == materialUnitPrice.material.id).First();

                materialUnitPrice.material    = material;
                materialUnitPrice.create_time = DateTime.Now.ToString("yyyy.MM.dd HH:mm:ss");
                _context.Add(materialUnitPrice);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(materialUnitPrice));
        }
示例#4
0
        public TransportationsController(Model context)
        {
            _context     = context;
            customers    = _context.customer.ToList();
            materials    = _context.material.ToList();
            shareholders = _context.shareholder.ToList();
            cars         = _context.car.ToList();
            supplies     = _context.supply.ToList();

            materialUnitPrices = new List <MaterialUnitPrice>();

            foreach (var m in materials)
            {
                MaterialUnitPrice mup = _context.material_unit_price.Where(p => p.material.id == m.id).OrderByDescending(p => p.create_time).FirstOrDefault();

                if (mup != null)
                {
                    materialUnitPrices.Add(mup);
                }
            }
        }
示例#5
0
        public async Task <ActionResult> EditAddMakeReceipt(ProjectMakeReceiptData projectMakeReceiptData)
        {
            if (Session["LoginUserID"] == null)
            {
                return(RedirectToAction("Login", "Account"));
            }

            if (ModelState.IsValid)
            {
                //                db.Entry(materialBuyData).State = EntityState.Modified;
                Project project = db.Projects.FirstOrDefault(m => m.ID == projectMakeReceiptData.Porject.ID);

                MaterialBuy receipt = new MaterialBuy();
                receipt.Company         = project.Company;
                receipt.CompanyID       = project.CompanyID;
                receipt.Date            = projectMakeReceiptData.Date;
                receipt.EmployeeID      = Convert.ToInt32(Session["LoginUserEmployeeID"]);
                receipt.Employee        = db.Employees.FirstOrDefault(e => e.ID == receipt.EmployeeID);
                receipt.MaterialBuyType = MaterialBuyType.MakeReceipt;
                receipt.NoteVn          = projectMakeReceiptData.NoteVn;
                receipt.NoteKr          = projectMakeReceiptData.NoteVn;
                receipt.Project         = project;
                receipt.ProjectID       = project.ID;
                receipt.VATPer          = projectMakeReceiptData.VATPer;

                MaterialBuyUnit unit = new MaterialBuyUnit();
                unit.MaterialBuy = receipt;
                unit.Quantity    = 1;


                MaterialName mName = db.MaterialNames.FirstOrDefault(m => m.NameVn.Equals(projectMakeReceiptData.NameVn) ||
                                                                     m.NameKr.Equals(projectMakeReceiptData.NameVn));
                if (mName == null)
                {
                    mName        = new MaterialName();
                    mName.NameKr = projectMakeReceiptData.NameVn;
                    mName.NameVn = projectMakeReceiptData.NameVn;
                    db.MaterialNames.Add(mName);
                }

                MaterialUnitPrice muPrice = db.MaterialUnitPrices.OrderBy(m => m.Date)
                                            .FirstOrDefault(mp => mp.MaterialName.NameVn.Equals(projectMakeReceiptData.NameVn) ||
                                                            mp.MaterialName.NameKr.Equals(projectMakeReceiptData.NameVn));

                if (muPrice == null || muPrice.Price != projectMakeReceiptData.Price)
                {
                    muPrice            = new MaterialUnitPrice();
                    muPrice.Company    = project.Company;
                    muPrice.CompanyID  = project.CompanyID;
                    muPrice.Date       = projectMakeReceiptData.Date;
                    muPrice.UnitString = "Set";
                    muPrice.Price      = projectMakeReceiptData.Price;
                    muPrice.Currency   = projectMakeReceiptData.Currency;

                    db.MaterialUnitPrices.Add(muPrice);
                }

                muPrice.MaterialName     = mName;
                unit.MaterialUnitPrice   = muPrice;
                receipt.MaterialBuyUnits = new List <MaterialBuyUnit>();
                receipt.MaterialBuyUnits.Add(unit);

                db.MaterialBuys.Add(receipt);
                db.MaterialBuyUnits.Add(unit);
                project.MaterialBuys.Add(receipt);

//                db.Payments.Add(projectDepositData.Deposit);
//                project.Deposits.Add(projectDepositData.Deposit);

                await db.SaveChangesAsync();

                return(RedirectToAction("EditAddMakeReceipt", new { id = projectMakeReceiptData.Porject.ID }));
            }
            return(View(projectMakeReceiptData));
        }
        public async Task <ActionResult> EditEditUnit(int id, int unitid, MaterialBuyData materialBuyData)
        {
            if (Session["LoginUserID"] == null)
            {
                return(RedirectToAction("Login", "Account"));
            }

            if (ModelState.IsValid)
            {
                //                db.Entry(materialBuyData).State = EntityState.Modified;
                MaterialBuyUnit sUnit = db.MaterialBuyUnits.FirstOrDefault(mbu => mbu.ID == unitid);
                MaterialName    sName = db.MaterialNames.FirstOrDefault(m => m.NameVn.Equals(sUnit.MaterialUnitPrice.MaterialName.NameVn));

                int nameCount  = db.MaterialUnitPrices.Where(m => m.MaterialName.NameVn.Equals(sUnit.MaterialUnitPrice.MaterialName.NameVn)).Count();
                int sunitCount = db.MaterialBuyUnits.Where(u => u.MaterialUnitPriceID == sUnit.MaterialUnitPriceID).Count();

                if (materialBuyData.MaterialBuyUnit.MaterialUnitPrice.Price != sUnit.MaterialUnitPrice.Price ||
                    materialBuyData.MaterialBuyUnit.MaterialUnitPrice.Currency != sUnit.MaterialUnitPrice.Currency ||
                    !materialBuyData.MaterialBuyUnit.MaterialUnitPrice.UnitString.Equals(sUnit.MaterialUnitPrice.UnitString))
                {
                    if (sunitCount == 1)
                    {
                        sUnit.MaterialUnitPrice.UnitString = materialBuyData.MaterialBuyUnit.MaterialUnitPrice.UnitString;
                        sUnit.MaterialUnitPrice.Price      = materialBuyData.MaterialBuyUnit.MaterialUnitPrice.Price;
                        sUnit.MaterialUnitPrice.Currency   = materialBuyData.MaterialBuyUnit.MaterialUnitPrice.Currency;
                        sUnit.MaterialUnitPrice.Date       = DateTime.Today;
                    }
                    else
                    {
                        MaterialUnitPrice muPrice = new MaterialUnitPrice();
                        muPrice.MaterialName   = sUnit.MaterialUnitPrice.MaterialName;
                        muPrice.MaterialNameID = sUnit.MaterialUnitPrice.MaterialNameID;
                        muPrice.Company        = sUnit.MaterialUnitPrice.Company;
                        muPrice.CompanyID      = sUnit.MaterialUnitPrice.CompanyID;
                        muPrice.UnitString     = materialBuyData.MaterialBuyUnit.MaterialUnitPrice.UnitString;
                        muPrice.Price          = materialBuyData.MaterialBuyUnit.MaterialUnitPrice.Price;
                        muPrice.Currency       = materialBuyData.MaterialBuyUnit.MaterialUnitPrice.Currency;
                        muPrice.Date           = DateTime.Today;

                        db.MaterialUnitPrices.Add(muPrice);
                        sUnit.MaterialUnitPrice = muPrice;
                    }
                }

                MaterialName newName = db.MaterialNames.FirstOrDefault(m => m.NameVn.Equals(materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName.NameVn));

                if (!materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName.NameVn.Equals(sName.NameVn))
                {
                    if (nameCount == 1)
                    {
                        if (newName == null)
                        {
                            newName = new MaterialName();
                            sUnit.MaterialUnitPrice.MaterialName.NameVn = materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName.NameVn;
                            sUnit.MaterialUnitPrice.MaterialName.NameKr = materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName.NameVn;
                            materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName.Translate = false;
                        }
                        else
                        {
                            db.MaterialNames.Remove(sUnit.MaterialUnitPrice.MaterialName);
                            sUnit.MaterialUnitPrice.MaterialName = newName;
                        }
                    }
                    else
                    {
                        if (newName == null)
                        {
                            if (materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName.NameKr == null)
                            {
                                materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName.NameKr = materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName.NameVn;
                            }
                            else if (materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName.NameVn == null)
                            {
                                materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName.NameVn = materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName.NameKr;
                            }

                            sUnit.MaterialUnitPrice.MaterialName = materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName;
                            db.MaterialNames.Add(materialBuyData.MaterialBuyUnit.MaterialUnitPrice.MaterialName);
                        }
                        else
                        {
                            sUnit.MaterialUnitPrice.MaterialName = newName;
                        }
                    }
                }

                MaterialBuy materialBuy = db.MaterialBuys.FirstOrDefault(m => m.ID == materialBuyData.MaterialBuy.ID);
                sUnit.Quantity = materialBuyData.MaterialBuyUnit.Quantity;

                await db.SaveChangesAsync();

                return(RedirectToAction("EditAddUnit", new { id = id }));
            }
            return(View(materialBuyData));
        }