public async Task <GarmentLeftoverWarehouseExpenditureFinishedGood> GetTestData() { GarmentLeftoverWarehouseExpenditureFinishedGood data = GetNewData(); await Service.CreateAsync(data); return(data); }
private string GenerateNo(GarmentLeftoverWarehouseExpenditureFinishedGood model) { string prefix = "BKB" + model._CreatedUtc.ToString("yy") + model._CreatedUtc.ToString("MM"); var lastNo = DbSet.Where(w => w.FinishedGoodExpenditureNo.StartsWith(prefix)) .OrderByDescending(o => o.FinishedGoodExpenditureNo) .Select(s => int.Parse(s.FinishedGoodExpenditureNo.Replace(prefix, ""))) .FirstOrDefault(); var curNo = $"{prefix}{(lastNo + 1).ToString("D4")}"; return(curNo); }
public async Task <int> CreateAsync(GarmentLeftoverWarehouseExpenditureFinishedGood model) { int Created = 0; using (var transaction = DbContext.Database.CurrentTransaction ?? DbContext.Database.BeginTransaction()) { try { model.FlagForCreate(IdentityService.Username, UserAgent); model.FlagForUpdate(IdentityService.Username, UserAgent); model.FinishedGoodExpenditureNo = GenerateNo(model); foreach (var item in model.Items) { item.FlagForCreate(IdentityService.Username, UserAgent); item.FlagForUpdate(IdentityService.Username, UserAgent); } DbSet.Add(model); Created = await DbContext.SaveChangesAsync(); foreach (var item in model.Items) { GarmentLeftoverWarehouseStock stock = new GarmentLeftoverWarehouseStock { ReferenceType = GarmentLeftoverWarehouseStockReferenceTypeEnum.FINISHED_GOOD, UnitId = item.UnitId, UnitCode = item.UnitCode, UnitName = item.UnitName, RONo = item.RONo, Quantity = item.ExpenditureQuantity, LeftoverComodityCode = item.LeftoverComodityCode, LeftoverComodityId = item.LeftoverComodityId, LeftoverComodityName = item.LeftoverComodityName }; await StockService.StockOut(stock, model.FinishedGoodExpenditureNo, model.Id, item.Id); } transaction.Commit(); } catch (Exception e) { transaction.Rollback(); throw e; } } return(Created); }
public GarmentLeftoverWarehouseExpenditureFinishedGood CopyData(GarmentLeftoverWarehouseExpenditureFinishedGood oldData) { GarmentLeftoverWarehouseExpenditureFinishedGood newData = new GarmentLeftoverWarehouseExpenditureFinishedGood(); PropertyCopier <GarmentLeftoverWarehouseExpenditureFinishedGood, GarmentLeftoverWarehouseExpenditureFinishedGood> .Copy(oldData, newData); newData.Items = new List <GarmentLeftoverWarehouseExpenditureFinishedGoodItem>(); foreach (var oldItem in oldData.Items) { GarmentLeftoverWarehouseExpenditureFinishedGoodItem newItem = new GarmentLeftoverWarehouseExpenditureFinishedGoodItem(); PropertyCopier <GarmentLeftoverWarehouseExpenditureFinishedGoodItem, GarmentLeftoverWarehouseExpenditureFinishedGoodItem> .Copy(oldItem, newItem); newData.Items.Add(newItem); } return(newData); }
public GarmentLeftoverWarehouseExpenditureFinishedGood MapToModel(GarmentLeftoverWarehouseExpenditureFinishedGoodViewModel viewModel) { GarmentLeftoverWarehouseExpenditureFinishedGood model = new GarmentLeftoverWarehouseExpenditureFinishedGood(); PropertyCopier <GarmentLeftoverWarehouseExpenditureFinishedGoodViewModel, GarmentLeftoverWarehouseExpenditureFinishedGood> .Copy(viewModel, model); if (viewModel.Buyer != null) { model.BuyerId = viewModel.Buyer.Id; model.BuyerCode = viewModel.Buyer.Code; model.BuyerName = viewModel.Buyer.Name; } model.Items = new List <GarmentLeftoverWarehouseExpenditureFinishedGoodItem>(); foreach (var viewModelItem in viewModel.Items) { GarmentLeftoverWarehouseExpenditureFinishedGoodItem modelItem = new GarmentLeftoverWarehouseExpenditureFinishedGoodItem(); PropertyCopier <GarmentLeftoverWarehouseExpenditureFinishedGoodItemViewModel, GarmentLeftoverWarehouseExpenditureFinishedGoodItem> .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.LeftoverComodity != null) { modelItem.LeftoverComodityCode = viewModelItem.LeftoverComodity.Code; modelItem.LeftoverComodityId = viewModelItem.LeftoverComodity.Id; modelItem.LeftoverComodityName = viewModelItem.LeftoverComodity.Name; } model.Items.Add(modelItem); } return(model); }
public async Task <int> UpdateAsync(int id, GarmentLeftoverWarehouseExpenditureFinishedGood model) { using (var transaction = DbContext.Database.CurrentTransaction ?? DbContext.Database.BeginTransaction()) { try { int Updated = 0; GarmentLeftoverWarehouseExpenditureFinishedGood existingModel = await ReadByIdAsync(id); if (existingModel.ExpenditureDate != model.ExpenditureDate) { existingModel.ExpenditureDate = model.ExpenditureDate; } if (existingModel.Consignment != model.Consignment) { existingModel.Consignment = model.Consignment; } if (existingModel.Description != model.Description) { existingModel.Description = model.Description; } existingModel.FlagForUpdate(IdentityService.Username, UserAgent); foreach (var existingItem in existingModel.Items) { GarmentLeftoverWarehouseStock stockIn = new GarmentLeftoverWarehouseStock { ReferenceType = GarmentLeftoverWarehouseStockReferenceTypeEnum.FINISHED_GOOD, UnitId = existingItem.UnitId, UnitCode = existingItem.UnitCode, UnitName = existingItem.UnitName, RONo = existingItem.RONo, Quantity = existingItem.ExpenditureQuantity, LeftoverComodityCode = existingItem.LeftoverComodityCode, LeftoverComodityId = existingItem.LeftoverComodityId, LeftoverComodityName = existingItem.LeftoverComodityName }; await StockService.StockIn(stockIn, model.FinishedGoodExpenditureNo, 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.ExpenditureQuantity != item.ExpenditureQuantity) { existingItem.ExpenditureQuantity = item.ExpenditureQuantity; } 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 = new GarmentLeftoverWarehouseStock { ReferenceType = GarmentLeftoverWarehouseStockReferenceTypeEnum.FINISHED_GOOD, UnitId = item.UnitId, UnitCode = item.UnitCode, UnitName = item.UnitName, RONo = item.RONo, Quantity = item.ExpenditureQuantity, LeftoverComodityCode = item.LeftoverComodityCode, LeftoverComodityId = item.LeftoverComodityId, LeftoverComodityName = item.LeftoverComodityName }; await StockService.StockOut(stock, model.FinishedGoodExpenditureNo, model.Id, item.Id); } transaction.Commit(); return(Updated); } catch (Exception e) { transaction.Rollback(); throw e; } } }
public GarmentLeftoverWarehouseExpenditureFinishedGoodViewModel MapToViewModel(GarmentLeftoverWarehouseExpenditureFinishedGood model) { GarmentLeftoverWarehouseExpenditureFinishedGoodViewModel viewModel = new GarmentLeftoverWarehouseExpenditureFinishedGoodViewModel(); PropertyCopier <GarmentLeftoverWarehouseExpenditureFinishedGood, GarmentLeftoverWarehouseExpenditureFinishedGoodViewModel> .Copy(model, viewModel); viewModel.Buyer = new BuyerViewModel { Id = model.BuyerId, Code = model.BuyerCode, Name = model.BuyerName }; if (model.Items != null) { viewModel.Items = new List <GarmentLeftoverWarehouseExpenditureFinishedGoodItemViewModel>(); foreach (var modelItem in model.Items) { GarmentLeftoverWarehouseExpenditureFinishedGoodItemViewModel viewModelItem = new GarmentLeftoverWarehouseExpenditureFinishedGoodItemViewModel(); PropertyCopier <GarmentLeftoverWarehouseExpenditureFinishedGoodItem, GarmentLeftoverWarehouseExpenditureFinishedGoodItemViewModel> .Copy(modelItem, viewModelItem); viewModelItem.Unit = new UnitViewModel { Id = modelItem.UnitId.ToString(), Code = modelItem.UnitCode, Name = modelItem.UnitName }; viewModelItem.LeftoverComodity = new LeftoverComodityViewModel { Id = modelItem.LeftoverComodityId, Name = modelItem.LeftoverComodityName, Code = modelItem.LeftoverComodityCode }; viewModel.Items.Add(viewModelItem); } } return(viewModel); }