public void GeneratePdf_Succes_Return_OK() { //Setup Mock <IServiceProvider> serviceProviderMock = GetServiceProvider(); var service = new Mock <IDPPVATBankExpenditureNoteService>(); // , List< DPPVATBankExpenditureNoteItemModel > items, List<DPPVATBankExpenditureNoteDetailModel> details DPPVATBankExpenditureNoteModel model = new DPPVATBankExpenditureNoteModel("documentNo", 1, "bankAcountNumber", "bankName", "bankAccountingCode", 1, "IDR", 1, 1, "supplierName", false, "bgCheckNo", 1, DateTimeOffset.Now, "IDR", 1, 1); List <DPPVATBankExpenditureNoteItemModel> items = new List <DPPVATBankExpenditureNoteItemModel>() { }; List <DPPVATBankExpenditureNoteDetailModel> details = new List <DPPVATBankExpenditureNoteDetailModel>() { }; service .Setup(s => s.Read(It.IsAny <int>())) .Returns(new DPPVATBankExpenditureNoteDto(model, items, details)); serviceProviderMock .Setup(serviceProvider => serviceProvider.GetService(typeof(IDPPVATBankExpenditureNoteService))) .Returns(service.Object); //Act FormDto form = new FormDto(); IActionResult response = GetController(serviceProviderMock).GeneratePdf(1); //Assert //Assert Assert.Equal("application/pdf", response.GetType().GetProperty("ContentType").GetValue(response, null)); }
public void GeneratePdf_Succes_Return_InternalServerError() { //Setup Mock <IServiceProvider> serviceProviderMock = GetServiceProvider(); var service = new Mock <IDPPVATBankExpenditureNoteService>(); // , List< DPPVATBankExpenditureNoteItemModel > items, List<DPPVATBankExpenditureNoteDetailModel> details DPPVATBankExpenditureNoteModel model = new DPPVATBankExpenditureNoteModel("documentNo", 1, "bankAcountNumber", "bankName", "bankAccountingCode", 1, "IDR", 1, 1, "supplierName", false, "bgCheckNo", 1, DateTimeOffset.Now, "IDR", 1, 1); List <DPPVATBankExpenditureNoteItemModel> items = new List <DPPVATBankExpenditureNoteItemModel>() { }; List <DPPVATBankExpenditureNoteDetailModel> details = new List <DPPVATBankExpenditureNoteDetailModel>() { }; service .Setup(s => s.Read(It.IsAny <int>())) .Throws(new Exception()); serviceProviderMock .Setup(serviceProvider => serviceProvider.GetService(typeof(IDPPVATBankExpenditureNoteService))) .Returns(service.Object); //Act FormDto form = new FormDto(); IActionResult response = GetController(serviceProviderMock).GeneratePdf(1); //Assert int statusCode = this.GetStatusCode(response); Assert.Equal((int)HttpStatusCode.InternalServerError, statusCode); }
public async Task Delete_Return_InternalServerError() { //Setup Mock <IServiceProvider> serviceProviderMock = GetServiceProvider(); var service = new Mock <IDPPVATBankExpenditureNoteService>(); DPPVATBankExpenditureNoteModel model = new DPPVATBankExpenditureNoteModel(); List <DPPVATBankExpenditureNoteItemModel> items = new List <DPPVATBankExpenditureNoteItemModel>(); List <DPPVATBankExpenditureNoteDetailModel> details = new List <DPPVATBankExpenditureNoteDetailModel>(); service .Setup(s => s.Read(It.IsAny <int>())) .Returns(new DPPVATBankExpenditureNoteDto(model, items, details)); service .Setup(s => s.Delete(It.IsAny <int>())) .ThrowsAsync(new Exception()); serviceProviderMock .Setup(serviceProvider => serviceProvider.GetService(typeof(IDPPVATBankExpenditureNoteService))) .Returns(service.Object); //Act FormDto form = new FormDto(); IActionResult response = await GetController(serviceProviderMock).Delete(1); //Assert int statusCode = this.GetStatusCode(response); Assert.Equal((int)HttpStatusCode.InternalServerError, statusCode); }
public void GetById_Succes_Return_OK() { //Setup Mock <IServiceProvider> serviceProviderMock = GetServiceProvider(); var service = new Mock <IDPPVATBankExpenditureNoteService>(); DPPVATBankExpenditureNoteModel model = new DPPVATBankExpenditureNoteModel(); List <DPPVATBankExpenditureNoteItemModel> items = new List <DPPVATBankExpenditureNoteItemModel>(); List <DPPVATBankExpenditureNoteDetailModel> details = new List <DPPVATBankExpenditureNoteDetailModel>(); service .Setup(s => s.Read(It.IsAny <int>())) .Returns(new DPPVATBankExpenditureNoteDto(model, items, details)); serviceProviderMock .Setup(serviceProvider => serviceProvider.GetService(typeof(IDPPVATBankExpenditureNoteService))) .Returns(service.Object); //Act FormDto form = new FormDto(); IActionResult response = GetController(serviceProviderMock).Get(1); //Assert int statusCode = this.GetStatusCode(response); Assert.Equal((int)HttpStatusCode.OK, statusCode); }
public async Task Put_Throws_ValidationException() { //Setup Mock <IServiceProvider> serviceProviderMock = GetServiceProvider(); var service = new Mock <IDPPVATBankExpenditureNoteService>(); DPPVATBankExpenditureNoteModel model = new DPPVATBankExpenditureNoteModel(); List <DPPVATBankExpenditureNoteItemModel> items = new List <DPPVATBankExpenditureNoteItemModel>(); List <DPPVATBankExpenditureNoteDetailModel> details = new List <DPPVATBankExpenditureNoteDetailModel>(); service .Setup(s => s.Read(It.IsAny <int>())) .Returns(new DPPVATBankExpenditureNoteDto(model, items, details)); FormDto form = new FormDto(); service .Setup(s => s.Update(It.IsAny <int>(), It.IsAny <FormDto>())) .ThrowsAsync(GetServiceValidationException(form)); serviceProviderMock .Setup(serviceProvider => serviceProvider.GetService(typeof(IDPPVATBankExpenditureNoteService))) .Returns(service.Object); //Act IActionResult response = await GetController(serviceProviderMock).Put(1, form); //Assert int statusCode = this.GetStatusCode(response); Assert.Equal((int)HttpStatusCode.BadRequest, statusCode); }
public async Task <int> Create(FormDto form) { var documentNo = await GetDocumentNo("K", form.Bank.BankCode, _identityService.Username); var model = new DPPVATBankExpenditureNoteModel(documentNo, form.Bank.Id, form.Bank.AccountNumber, form.Bank.BankName, form.Bank.BankCode, form.Currency.Id, form.Currency.Code, form.Currency.Rate, form.Supplier.Id, form.Supplier.Name, form.Supplier.IsImport, form.BGCheckNo, form.Amount, form.Date.GetValueOrDefault(), form.Bank.Currency.Code, form.Bank.Currency.Id, form.Bank.Currency.Rate); EntityExtension.FlagForCreate(model, _identityService.Username, UserAgent); _dbContext.DPPVATBankExpenditureNotes.Add(model); _dbContext.SaveChanges(); foreach (var formItem in form.Items.Where(element => element.Select)) { var item = new DPPVATBankExpenditureNoteItemModel(model.Id, formItem.InternalNote.Id, formItem.InternalNote.DocumentNo, formItem.InternalNote.Date, formItem.InternalNote.DueDate, formItem.InternalNote.Supplier.Id, formItem.InternalNote.Supplier.Name, formItem.InternalNote.Supplier.IsImport, formItem.InternalNote.VATAmount, formItem.InternalNote.IncomeTaxAmount, formItem.InternalNote.DPP, formItem.InternalNote.TotalAmount, formItem.InternalNote.Currency.Id, formItem.InternalNote.Currency.Code, formItem.OutstandingAmount, formItem.InternalNote.Supplier.Code); EntityExtension.FlagForCreate(item, _identityService.Username, UserAgent); _dbContext.DPPVATBankExpenditureNoteItems.Add(item); _dbContext.SaveChanges(); foreach (var formDetail in formItem.InternalNote.Items.Where(element => element.SelectInvoice)) { var detail = new DPPVATBankExpenditureNoteDetailModel(model.Id, item.Id, formDetail.Invoice.Id, formDetail.Invoice.DocumentNo, formDetail.Invoice.Date, formDetail.Invoice.ProductNames, formDetail.Invoice.Category.Id, formDetail.Invoice.Category.Name, formDetail.Invoice.Amount, formDetail.Invoice.PaymentMethod, formDetail.Invoice.DeliveryOrdersNo, formDetail.Invoice.PaymentBills, formDetail.Invoice.BillsNo); EntityExtension.FlagForCreate(detail, _identityService.Username, UserAgent); _dbContext.DPPVATBankExpenditureNoteDetails.Add(detail); _dbContext.SaveChanges(); } } var internalNoteIds = form.Items.Where(element => element.Select).Select(element => element.InternalNote.Id).ToList(); var invoiceNoteIds = form.Items.Where(element => element.Select).SelectMany(element => element.InternalNote.Items).Where(element => element.SelectInvoice).Select(element => element.Invoice.Id).ToList(); await UpdateInternalNoteInvoiceNoteIsPaid(true, model.Id, model.DocumentNo, internalNoteIds, invoiceNoteIds); return(model.Id); }
public async Task <int> AutoCreateFromGarmentBankExpenditureDPPVAT(DPPVATBankExpenditureNoteModel model) { var accountBank = await GetAccountBank(model.BankAccountId); var dailyBankTransactionModel = new DailyBankTransactionModel() { AccountBankAccountName = accountBank.AccountName, AccountBankAccountNumber = accountBank.AccountNumber, AccountBankCode = accountBank.BankCode, AccountBankCurrencyCode = accountBank.Currency.Code, AccountBankCurrencyId = accountBank.Currency.Id, AccountBankCurrencySymbol = accountBank.Currency.Symbol, AccountBankId = accountBank.Id, AccountBankName = accountBank.BankName, Date = model.Date, Nominal = (decimal)model.Amount, ReferenceNo = model.DocumentNo, Remark = "Bayar Hutang Garment", SourceType = "OPERASIONAL", Status = "IN" }; if (model.CurrencyCode != "IDR") { dailyBankTransactionModel.Nominal = (decimal)model.Amount * (decimal)model.CurrencyRate; dailyBankTransactionModel.NominalValas = (decimal)model.Amount; } return(await _dailyBankTransactionService.CreateAsync(dailyBankTransactionModel)); }
public DPPVATBankExpenditureNoteDto(DPPVATBankExpenditureNoteModel model, List <DPPVATBankExpenditureNoteItemModel> items, List <DPPVATBankExpenditureNoteDetailModel> details) { Id = model.Id; Bank = new AccountBankDto(model.BankAccountId, model.BankAccountingCode, model.BankAccountNumber, model.BankName, model.BankCurrencyCode, model.BankCurrencyId, model.BankCurrencyRate); Currency = new CurrencyDto(model.CurrencyCode, model.CurrencyId, model.CurrencyRate); Supplier = new SupplierDto(model.SupplierId, model.SupplierName, model.IsImportSupplier, null); BGCheckNo = model.BGCheckNo; Amount = model.Amount; Date = model.Date; IsPosted = model.IsPosted; Items = items.Select(item => new DPPVATBankExpenditureNoteItemDto(item, details.Where(detail => detail.DPPVATBankExpenditureNoteItemId == item.Id).ToList())).ToList(); DocumentNo = model.DocumentNo; }
public ReportDto(DPPVATBankExpenditureNoteDetailModel detail, DPPVATBankExpenditureNoteItemModel itemDetail, DPPVATBankExpenditureNoteModel documentItem) { ExpenditureId = documentItem.Id; ExpenditureNoteNo = documentItem.DocumentNo; ExpenditureDate = documentItem.Date; CategoryName = detail.CategoryName; PaymentMethod = detail.PaymentMethod; DPP = itemDetail.DPP; VAT = itemDetail.VATAmount; Amount = documentItem.Amount; CurrencyCode = documentItem.CurrencyCode; CurrencyRate = documentItem.CurrencyRate; BankName = documentItem.BankName; SupplierId = itemDetail.SupplierId; SupplierName = itemDetail.SupplierName; InternalNoteId = itemDetail.InternalNoteId; InternalNoteNo = itemDetail.InternalNoteNo; InternalNoteAmount = itemDetail.TotalAmount; OutstandingAmount = itemDetail.OutstandingAmount; InvoiceId = detail.InvoiceId; InvoiceNo = detail.InvoiceNo; InvoiceAmount = detail.Amount; PaidAmount = itemDetail.TotalAmount; Difference = InternalNoteAmount - PaidAmount; BillsNo = detail.BillsNo; PaymentBills = detail.PaymentBills; SupplierCode = itemDetail.SupplierCode; DeliveryOrdersNo = detail.DeliveryOrdersNo; AmountDetail = detail.Amount; }