public async Task <int> DeleteAsync(int id)
        {
            using (var transaction = DbContext.Database.CurrentTransaction ?? DbContext.Database.BeginTransaction())
            {
                try
                {
                    int Deleted = 0;

                    GarmentLeftoverWarehouseExpenditureFabric model = await ReadByIdAsync(id);

                    model.FlagForDelete(IdentityService.Username, UserAgent);
                    foreach (var item in model.Items)
                    {
                        item.FlagForDelete(IdentityService.Username, UserAgent);
                    }

                    Deleted = await DbContext.SaveChangesAsync();

                    foreach (var item in model.Items)
                    {
                        GarmentLeftoverWarehouseStock stock = GenerateStock(item);
                        await StockService.StockIn(stock, model.ExpenditureNo, model.Id, item.Id);
                    }

                    transaction.Commit();

                    return(Deleted);
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    throw e;
                }
            }
        }
Beispiel #2
0
        public async Task <GarmentLeftoverWarehouseExpenditureFabric> GetTestData()
        {
            GarmentLeftoverWarehouseExpenditureFabric data = GetNewData();

            await Service.CreateAsync(data);

            return(data);
        }
        private string GenerateNo(GarmentLeftoverWarehouseExpenditureFabric model)
        {
            string prefix = $"BKF{model._CreatedUtc.ToString("yy")}{model._CreatedUtc.ToString("MM")}";

            var lastNo = DbSet.Where(w => w.ExpenditureNo.StartsWith(prefix))
                         .OrderByDescending(o => o.ExpenditureNo)
                         .Select(s => int.Parse(s.ExpenditureNo.Replace(prefix, "")))
                         .FirstOrDefault();

            var curNo = $"{prefix}{(lastNo + 1).ToString("D5")}";

            return(curNo);
        }
        public GarmentLeftoverWarehouseExpenditureFabricViewModel MapToViewModel(GarmentLeftoverWarehouseExpenditureFabric model)
        {
            GarmentLeftoverWarehouseExpenditureFabricViewModel viewModel = new GarmentLeftoverWarehouseExpenditureFabricViewModel();

            PropertyCopier <GarmentLeftoverWarehouseExpenditureFabric, GarmentLeftoverWarehouseExpenditureFabricViewModel> .Copy(model, viewModel);

            viewModel.UnitExpenditure = new UnitViewModel
            {
                Id   = model.UnitExpenditureId.ToString(),
                Code = model.UnitExpenditureCode,
                Name = model.UnitExpenditureName
            };

            viewModel.Buyer = new BuyerViewModel
            {
                Id   = model.BuyerId,
                Code = model.BuyerCode,
                Name = model.BuyerName
            };

            if (model.Items != null)
            {
                viewModel.Items = new List <GarmentLeftoverWarehouseExpenditureFabricItemViewModel>();
                foreach (var modelItem in model.Items)
                {
                    GarmentLeftoverWarehouseExpenditureFabricItemViewModel viewModelItem = new GarmentLeftoverWarehouseExpenditureFabricItemViewModel();
                    PropertyCopier <GarmentLeftoverWarehouseExpenditureFabricItem, GarmentLeftoverWarehouseExpenditureFabricItemViewModel> .Copy(modelItem, viewModelItem);

                    viewModelItem.Unit = new UnitViewModel
                    {
                        Id   = modelItem.UnitId.ToString(),
                        Code = modelItem.UnitCode,
                        Name = modelItem.UnitName
                    };

                    viewModelItem.Uom = new UomViewModel
                    {
                        Id   = modelItem.UomId.ToString(),
                        Unit = modelItem.UomUnit
                    };

                    viewModel.Items.Add(viewModelItem);
                }
            }

            return(viewModel);
        }
        public List <GarmentProductViewModel> getProductForPDF(GarmentLeftoverWarehouseExpenditureFabric model)
        {
            List <GarmentProductViewModel> garmentProducts = new List <GarmentProductViewModel>();

            foreach (var item in model.Items)
            {
                GarmentProductViewModel garmentProduct = new GarmentProductViewModel();
                var stock = DbContext.GarmentLeftoverWarehouseStocks.Where(a => a.PONo == item.PONo).FirstOrDefault();
                if (stock != null)
                {
                    garmentProduct      = GetProductFromCore(stock.ProductId.ToString());
                    garmentProduct.PONo = item.PONo;
                    garmentProducts.Add(garmentProduct);
                }
            }
            return(garmentProducts);
        }
Beispiel #6
0
        public GarmentLeftoverWarehouseExpenditureFabric CopyData(GarmentLeftoverWarehouseExpenditureFabric oldData)
        {
            GarmentLeftoverWarehouseExpenditureFabric newData = new GarmentLeftoverWarehouseExpenditureFabric();

            PropertyCopier <GarmentLeftoverWarehouseExpenditureFabric, GarmentLeftoverWarehouseExpenditureFabric> .Copy(oldData, newData);

            newData.Items = new List <GarmentLeftoverWarehouseExpenditureFabricItem>();
            foreach (var oldItem in oldData.Items)
            {
                GarmentLeftoverWarehouseExpenditureFabricItem newItem = new GarmentLeftoverWarehouseExpenditureFabricItem();

                PropertyCopier <GarmentLeftoverWarehouseExpenditureFabricItem, GarmentLeftoverWarehouseExpenditureFabricItem> .Copy(oldItem, newItem);

                newData.Items.Add(newItem);
            }

            return(newData);
        }
        public GarmentLeftoverWarehouseExpenditureFabric MapToModel(GarmentLeftoverWarehouseExpenditureFabricViewModel viewModel)
        {
            GarmentLeftoverWarehouseExpenditureFabric model = new GarmentLeftoverWarehouseExpenditureFabric();

            PropertyCopier <GarmentLeftoverWarehouseExpenditureFabricViewModel, GarmentLeftoverWarehouseExpenditureFabric> .Copy(viewModel, model);

            if (viewModel.UnitExpenditure != null)
            {
                model.UnitExpenditureId   = long.Parse(viewModel.UnitExpenditure.Id);
                model.UnitExpenditureCode = viewModel.UnitExpenditure.Code;
                model.UnitExpenditureName = viewModel.UnitExpenditure.Name;
            }

            if (viewModel.Buyer != null)
            {
                model.BuyerId   = viewModel.Buyer.Id;
                model.BuyerCode = viewModel.Buyer.Code;
                model.BuyerName = viewModel.Buyer.Name;
            }

            model.Items = new List <GarmentLeftoverWarehouseExpenditureFabricItem>();
            foreach (var viewModelItem in viewModel.Items)
            {
                GarmentLeftoverWarehouseExpenditureFabricItem modelItem = new GarmentLeftoverWarehouseExpenditureFabricItem();
                PropertyCopier <GarmentLeftoverWarehouseExpenditureFabricItemViewModel, GarmentLeftoverWarehouseExpenditureFabricItem> .Copy(viewModelItem, modelItem);

                if (viewModelItem.Unit != null)
                {
                    modelItem.UnitId   = long.Parse(viewModelItem.Unit.Id);
                    modelItem.UnitCode = viewModelItem.Unit.Code;
                    modelItem.UnitName = viewModelItem.Unit.Name;
                }

                if (viewModelItem.Uom != null)
                {
                    modelItem.UomId   = long.Parse(viewModelItem.Uom.Id);
                    modelItem.UomUnit = viewModelItem.Uom.Unit;
                }

                model.Items.Add(modelItem);
            }

            return(model);
        }
        public async Task <int> UpdateAsync(int id, GarmentLeftoverWarehouseExpenditureFabric model)
        {
            using (var transaction = DbContext.Database.CurrentTransaction ?? DbContext.Database.BeginTransaction())
            {
                try
                {
                    int Updated = 0;

                    GarmentLeftoverWarehouseExpenditureFabric existingModel = await ReadByIdAsync(id);

                    if (existingModel.ExpenditureDate != model.ExpenditureDate)
                    {
                        existingModel.ExpenditureDate = model.ExpenditureDate;
                    }
                    if (existingModel.Remark != model.Remark)
                    {
                        existingModel.Remark = model.Remark;
                    }
                    if (existingModel.QtyKG != model.QtyKG)
                    {
                        existingModel.QtyKG = model.QtyKG;
                    }
                    existingModel.FlagForUpdate(IdentityService.Username, UserAgent);

                    foreach (var existingItem in existingModel.Items)
                    {
                        GarmentLeftoverWarehouseStock stockIn = GenerateStock(existingItem);
                        await StockService.StockIn(stockIn, model.ExpenditureNo, model.Id, existingItem.Id);
                    }

                    foreach (var existingItem in existingModel.Items)
                    {
                        var item = model.Items.FirstOrDefault(i => i.Id == existingItem.Id);
                        if (item == null)
                        {
                            existingItem.FlagForDelete(IdentityService.Username, UserAgent);
                        }
                        else
                        {
                            if (existingItem.Quantity != item.Quantity)
                            {
                                existingItem.Quantity = item.Quantity;
                            }
                            existingItem.FlagForUpdate(IdentityService.Username, UserAgent);
                        }
                    }

                    foreach (var item in model.Items.Where(i => i.Id == 0))
                    {
                        item.FlagForCreate(IdentityService.Username, UserAgent);
                        item.FlagForUpdate(IdentityService.Username, UserAgent);
                        existingModel.Items.Add(item);
                    }

                    Updated = await DbContext.SaveChangesAsync();

                    foreach (var item in model.Items)
                    {
                        GarmentLeftoverWarehouseStock stock = GenerateStock(item);
                        await StockService.StockOut(stock, model.ExpenditureNo, model.Id, item.Id);
                    }

                    transaction.Commit();

                    return(Updated);
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    throw e;
                }
            }
        }