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);
        }
Example #6
0
        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);
        }
Example #7
0
        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));
        }
Example #8
0
 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;
 }