public async Task <int> CreateAsync(BankCashReceiptModel model) { model.ReceiptNo = await GenerateNo(model, 7); decimal totalAmount = 0; foreach (var item in model.Items) { if (model.CurrencyCode == "IDR") { totalAmount += item.Summary; } else { totalAmount += item.Amount; } } model.Amount = totalAmount; EntityExtension.FlagForCreate(model, _identityService.Username, UserAgent); foreach (var item in model.Items) { EntityExtension.FlagForCreate(item, _identityService.Username, UserAgent); } _dbContext.GarmentFinanceBankCashReceipts.Add(model); return(await _dbContext.SaveChangesAsync()); }
public async Task <ActionResult> Post([FromBody] BankCashReceiptViewModel viewModel) { try { VerifyUser(); ValidateService.Validate(viewModel); BankCashReceiptModel model = Mapper.Map <BankCashReceiptModel>(viewModel); await Service.CreateAsync(model); Dictionary <string, object> Result = new ResultFormatter(ApiVersion, General.CREATED_STATUS_CODE, General.OK_MESSAGE) .Ok(); return(Created(String.Concat(Request.Path, "/", 0), Result)); } catch (ServiceValidationException e) { Dictionary <string, object> Result = new ResultFormatter(ApiVersion, General.BAD_REQUEST_STATUS_CODE, General.BAD_REQUEST_MESSAGE) .Fail(e); return(BadRequest(Result)); } catch (Exception e) { Dictionary <string, object> Result = new ResultFormatter(ApiVersion, General.INTERNAL_ERROR_STATUS_CODE, e.Message) .Fail(); return(StatusCode(General.INTERNAL_ERROR_STATUS_CODE, Result)); } }
public async Task <IActionResult> Put([FromRoute] int id, [FromBody] BankCashReceiptViewModel viewModel) { try { VerifyUser(); ValidateService.Validate(viewModel); BankCashReceiptModel model = Mapper.Map <BankCashReceiptModel>(viewModel); await Service.UpdateAsync(id, model); return(NoContent()); } catch (ServiceValidationException e) { Dictionary <string, object> Result = new ResultFormatter(ApiVersion, General.BAD_REQUEST_STATUS_CODE, General.BAD_REQUEST_MESSAGE) .Fail(e); return(BadRequest(Result)); } catch (Exception e) { Dictionary <string, object> Result = new ResultFormatter(ApiVersion, General.INTERNAL_ERROR_STATUS_CODE, e.Message) .Fail(); return(StatusCode(General.INTERNAL_ERROR_STATUS_CODE, Result)); } }
public async Task <BankCashReceiptModel> GetTestData() { BankCashReceiptModel model = GetNewData(); await Service.CreateAsync(model); return(await Service.ReadByIdAsync(model.Id)); }
public void Should_Success_Map_Garment_Finance_BankCashReceipt() { var mapper = new MapperConfiguration(configuration => configuration.AddProfile <BankCashReceiptProfile>()).CreateMapper(); var model = new BankCashReceiptModel(); var vm = mapper.Map <BankCashReceiptViewModel>(model); Assert.True(true); }
public async Task Should_Success_Update_Data() { //Arrange var dbContext = GetDbContext(GetCurrentAsyncMethod()); var serviceProviderMock = GetServiceProvider(); var httpClientService = new Mock <IHttpClientService>(); serviceProviderMock .Setup(serviceProvider => serviceProvider.GetService(typeof(IHttpClientService))) .Returns(httpClientService.Object); serviceProviderMock .Setup(serviceProvider => serviceProvider.GetService(typeof(FinanceDbContext))) .Returns(dbContext); var service = new BankCashReceiptService(serviceProviderMock.Object); var model = await _dataUtil(service, GetCurrentAsyncMethod()).GetTestData(); var model2 = await _dataUtil(service, GetCurrentAsyncMethod()).GetTestData(); BankCashReceiptModel newModel2 = new BankCashReceiptModel(); newModel2.Id = model2.Id; //Act var newModel = await service.ReadByIdAsync(model.Id); var Response1 = await service.UpdateAsync(newModel.Id, newModel); Assert.NotEqual(0, Response1); newModel2.Items = new List <BankCashReceiptItemModel> { model2.Items.First() }; var Response = await service.UpdateAsync(model2.Id, newModel2); Assert.NotEqual(0, Response); BankCashReceiptItemModel newItem = new BankCashReceiptItemModel { BankCashReceiptId = 1, C1A = 1, C1B = 1, C2A = 1, C2B = 1, C2C = 1, }; newModel2.Items.Add(newItem); var Response3 = await service.UpdateAsync(model2.Id, newModel2); Assert.NotEqual(0, Response); }
public async Task <int> DeleteAsync(int id) { var existingModel = _dbContext.GarmentFinanceBankCashReceipts .Include(d => d.Items) .Single(x => x.Id == id && !x.IsDeleted); BankCashReceiptModel model = await ReadByIdAsync(id); foreach (var item in model.Items) { EntityExtension.FlagForDelete(item, _identityService.Username, UserAgent, true); } EntityExtension.FlagForDelete(model, _identityService.Username, UserAgent, true); _dbContext.GarmentFinanceBankCashReceipts.Update(model); return(await _dbContext.SaveChangesAsync()); }
public async Task <string> GenerateNo(BankCashReceiptModel model, int clientTimeZoneOffset) { DateTimeOffset Now = model.ReceiptDate; string Year = Now.ToOffset(new TimeSpan(clientTimeZoneOffset, 0, 0)).ToString("yy"); string no = $"{Year}/{model.NumberingCode}/"; int Padding = 5; var lastNo = await _dbContext.GarmentFinanceBankCashReceipts.Where(w => w.ReceiptNo.StartsWith(no) && !w.IsDeleted).OrderByDescending(o => o.CreatedUtc).FirstOrDefaultAsync(); no = $"{no}"; if (lastNo == null) { return(no + "1".PadLeft(Padding, '0')); } else { int lastNoNumber = int.Parse(lastNo.ReceiptNo.Replace(no, "")) + 1; return(no + lastNoNumber.ToString().PadLeft(Padding, '0')); } }
public async Task <int> UpdateAsync(int id, BankCashReceiptModel model) { BankCashReceiptModel exist = _dbContext.GarmentFinanceBankCashReceipts .Include(d => d.Items) .Single(dispo => dispo.Id == id && !dispo.IsDeleted); exist.Remarks = model.Remarks; exist.BuyerCode = model.BuyerCode; exist.BuyerId = model.BuyerId; exist.BuyerName = model.BuyerName; foreach (var item in exist.Items) { BankCashReceiptItemModel itemModel = model.Items.FirstOrDefault(prop => prop.Id.Equals(item.Id)); if (itemModel == null) { EntityExtension.FlagForDelete(item, _identityService.Username, UserAgent, true); } else { item.Amount = itemModel.Amount; item.Summary = itemModel.Summary; item.NoteNumber = itemModel.NoteNumber; item.Remarks = itemModel.Remarks; EntityExtension.FlagForUpdate(item, _identityService.Username, UserAgent); } } foreach (var newItem in model.Items) { if (newItem.Id == 0) { exist.Items.Add(newItem); EntityExtension.FlagForCreate(newItem, _identityService.Username, UserAgent); } } decimal totalAmount = 0; foreach (var item in exist.Items) { if (model.CurrencyCode == "IDR") { totalAmount += item.Summary; } else { totalAmount += item.Amount; } } if (totalAmount != exist.Amount) { exist.Amount = totalAmount; } EntityExtension.FlagForUpdate(exist, _identityService.Username, UserAgent); return(await _dbContext.SaveChangesAsync()); }