Example #1
0
 private WarehouseMaster masterWarehose(String codeWarehouse)
 {
     Warehouse storeDb = _context.Warehouse.Where(c => c.Code == codeWarehouse).First();
     WarehouseMaster objectData = new WarehouseMaster();
     objectData.Code = storeDb.Code;
     objectData.Name = storeDb.Name;
     objectData.Address = storeDb.Name;
     objectData.Address2 = storeDb.Address2;
     objectData.Address3 = storeDb.Address3;
     objectData.Address4 = storeDb.Address4;
     objectData.City = storeDb.City;
     objectData.Regional = storeDb.Regional;
     return objectData;
 }
        public WareHouseTransaction PostTransaction(WareHouseTransaction model, hooDbContext db)
        {
            var error = "";

            //single transaction
            using (var trx = db.Database.BeginTransaction())
            {
                try
                {
                    //Insert on WareHouseTransaction table
                    db.WareHouseTransaction.Add(model);
                    db.SaveChanges();

                    //Insert/Update the WareHouseMaster table
                    var master = db.WareHouseMaster.Where(m =>
                                                          m.LocationId == model.LocationId &&
                                                          m.ProductId == model.ProductId &&
                                                          m.LotNumber == model.LotNumber
                                                          ).SingleOrDefault();

                    //Insert
                    if (master == null)
                    {
                        var m = new WarehouseMaster();
                        m.ProductId      = model.ProductId;
                        m.LotNumber      = model.LotNumber;
                        m.ExpirationDate = model.ExpirationDate;
                        m.LocationId     = model.LocationId;
                        m.Quantity       = model.Quantity;

                        db.WareHouseMaster.Add(m);
                    }
                    //Update
                    else
                    {
                        if (model.TransactionType == "in")
                        {
                            master.Quantity += model.Quantity;
                        }
                        else if (model.TransactionType == "out" || model.TransactionType == "consumption")
                        {
                            master.Quantity -= model.Quantity;
                        }
                        else if (model.TransactionType == "adjustment")
                        {
                            master.Quantity = model.Quantity;
                        }
                    }
                    db.SaveChanges();
                    trx.Commit();
                }
                catch (Exception ex)
                {
                    trx.Rollback();
                    error = ex.Message;
                }
                finally
                {
                    trx.Dispose();
                }
            }

            return(model);
        }