public async Task <ActionResult> EditEditUnit(int id, int unitid)
        {
            if (Session["LoginUserID"] == null)
            {
                return(RedirectToAction("Login", "Account"));
            }

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            MaterialBuy materialBuy = await db.MaterialBuys.FindAsync(id);

            if (materialBuy == null)
            {
                return(HttpNotFound());
            }
            MaterialBuyUnit materialBuyUnit = await db.MaterialBuyUnits.FindAsync(unitid);

            if (materialBuyUnit == null)
            {
                return(HttpNotFound());
            }
            var materialBuyData = new MaterialBuyData();

            materialBuyData.MaterialBuy     = materialBuy;
            materialBuyData.MaterialBuyUnit = materialBuyUnit;
            materialBuyData.MaterialBuy.MaterialBuyUnits = materialBuyData.MaterialBuy.MaterialBuyUnits.OrderBy(p => p.ID).ToList();


            return(View(materialBuyData));
        }
Esempio n. 2
0
        public void PreDeleteUnit(int id, int unitid)
        {
            MaterialBuyUnit materialBuyUnit = db.MaterialBuyUnits.Find(unitid);
            int             unitcount       = db.MaterialBuyUnits.Count(m => m.MaterialUnitPriceID == materialBuyUnit.MaterialUnitPriceID);

            if (unitcount <= 1)
            {
                int namecount = db.MaterialUnitPrices.Count(m => m.MaterialNameID == materialBuyUnit.MaterialUnitPrice.MaterialNameID);
                if (namecount <= 1)
                {
                    db.MaterialNames.Remove(materialBuyUnit.MaterialUnitPrice.MaterialName);
                }

                db.MaterialUnitPrices.Remove(materialBuyUnit.MaterialUnitPrice);
            }

            db.MaterialBuyUnits.Remove(materialBuyUnit);
        }
Esempio n. 3
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));
        }