public async Task GetLoaderInternNote_Return_InternalServerError() { //Arrange var mocks = GetMocks(); GarmentPurchasingPphBankExpenditureNoteLoaderInternNote data = new GarmentPurchasingPphBankExpenditureNoteLoaderInternNote() { Name = "" }; mocks.Service .Setup(f => f.GetLoaderInterNotePPH(It.IsAny <string>())) .Throws(new Exception()); var controller = GetController(mocks); //Act GarmentPurchasingPphBankExpenditureNoteFilterReportDto filter = new GarmentPurchasingPphBankExpenditureNoteFilterReportDto() { DateEnd = DateTime.Now.AddDays(2), DateStart = DateTime.Now.AddDays(-1), INNo = "INNo", InvoiceNo = "InvoiceNo", InvoiceOutNo = "InvoiceOutNo", SupplierName = "SupplierName" }; var response = await controller.DownloadReportXls(filter, 1, 25, "{}"); //Assert int statusCode = GetStatusCode(response); Assert.Equal((int)HttpStatusCode.InternalServerError, statusCode); }
public async Task DownloadReportXls_Return_XlsFile() { //Arrange var mocks = GetMocks(); mocks.Service .Setup(f => f.DownloadReportXls(It.IsAny <GarmentPurchasingPphBankExpenditureNoteFilterReportDto>())) .Returns(new System.IO.MemoryStream()); var controller = GetController(mocks); //Act GarmentPurchasingPphBankExpenditureNoteFilterReportDto filter = new GarmentPurchasingPphBankExpenditureNoteFilterReportDto() { DateEnd = DateTime.Now.AddDays(2), DateStart = DateTime.Now.AddDays(-1), INNo = "INNo", InvoiceNo = "InvoiceNo", InvoiceOutNo = "InvoiceOutNo", SupplierName = "SupplierName" }; var response = await controller.DownloadReportXls(filter, 1, 25, "{}"); //Assert Assert.NotNull(response); Assert.Equal("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", response.GetType().GetProperty("ContentType").GetValue(response, null)); }
public MemoryStream DownloadReportXls(GarmentPurchasingPphBankExpenditureNoteFilterReportDto filter) { var data = GetReportData(filter); var xls = GarmentPurchasingPphBankExpenditureNoteReportExcelGenerator.Create("Lap Pembayaran PPH", data, filter.DateStart.GetValueOrDefault(), filter.DateEnd.GetValueOrDefault(), _identityService.TimezoneOffset); return(xls); }
public async Task GetReportGroup_Return_OK() { //Arrange var mocks = GetMocks(); mocks.Service .Setup(f => f.GetReportGroupView(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>(), It.IsAny <GarmentPurchasingPphBankExpenditureNoteFilterReportDto>())) .Returns(new ReadResponse <GarmentPurchasingPphBankExpenditureNoteReportGroupView>(new List <GarmentPurchasingPphBankExpenditureNoteReportGroupView>(), 1, new Dictionary <string, string>(), new List <string>())); var controller = GetController(mocks); //Act GarmentPurchasingPphBankExpenditureNoteFilterReportDto filter = new GarmentPurchasingPphBankExpenditureNoteFilterReportDto() { DateEnd = DateTime.Now.AddDays(2), DateStart = DateTime.Now.AddDays(-1), INNo = "INNo", InvoiceNo = "InvoiceNo", InvoiceOutNo = "InvoiceOutNo", SupplierName = "SupplierName" }; var response = await controller.GetReportGroup(filter, 1, 25, "{}"); //Assert int statusCode = GetStatusCode(response); Assert.Equal((int)HttpStatusCode.OK, statusCode); }
public List <GarmentPurchasingPphBankExpenditureNoteModel> GetReportData(GarmentPurchasingPphBankExpenditureNoteFilterReportDto filter) { var query = _dbContext.GarmentPurchasingPphBankExpenditureNotes.Include(s => s.Items).ThenInclude(s => s.GarmentPurchasingPphBankExpenditureNoteInvoices).AsQueryable(); if (!string.IsNullOrEmpty(filter.InvoiceOutNo)) { query = query.Where(entity => entity.InvoiceOutNumber.Contains(filter.InvoiceOutNo)); } if (!string.IsNullOrEmpty(filter.InvoiceNo)) { query = query.Where(entity => entity.Items.Any(s => s.GarmentPurchasingPphBankExpenditureNoteInvoices.Any(t => t.InvoicesNo.Contains(filter.InvoiceNo)))); } if (!string.IsNullOrEmpty(filter.INNo)) { query = query.Where(entity => entity.Items.Any(s => s.InternalNotesNo.Contains(filter.INNo))); } if (!string.IsNullOrEmpty(filter.SupplierName)) { query = query.Where(entity => entity.Items.Any(s => s.SupplierName.Contains(filter.SupplierName))); } if (filter.DateStart.HasValue && filter.DateStart.GetValueOrDefault().Year != 1) { query = query.Where(entity => entity.InvoiceOutDate >= filter.DateStart); //query = query.Where(entity => (entity.CreatedUtc >= entity.LastModifiedUtc ? entity.CreatedUtc : entity.LastModifiedUtc) >= filter.DateStart); } if (filter.DateEnd.HasValue && filter.DateEnd.GetValueOrDefault().Year != 1) { query = query.Where(entity => entity.InvoiceOutDate <= filter.DateEnd); //query = query.Where(entity => (entity.CreatedUtc >= entity.LastModifiedUtc ? entity.CreatedUtc : entity.LastModifiedUtc) <= filter.DateEnd); } //var orderDictionary = JsonConvert.DeserializeObject<Dictionary<string, string>>(order); //query = QueryHelper<GarmentPurchasingPphBankExpenditureNoteItemModel>.Order(query, orderDictionary); var count = query.Count(); var queryList = query.ToList(); var data = queryList //.Skip((page - 1) * size) //.Take(size) .ToList() ; return(data); }
public async Task <IActionResult> DownloadReportXls([FromQuery] GarmentPurchasingPphBankExpenditureNoteFilterReportDto filter, int page = 1, int size = 25, string order = "{}") { try { VerifyUser(); var stream = Service.DownloadReportXls(filter); return(new FileStreamResult(stream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") { FileDownloadName = "Garment Purchasing Laporan PPH Bank.xls" }); } 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> GetReportGroup([FromQuery] GarmentPurchasingPphBankExpenditureNoteFilterReportDto filter, int page = 1, int size = 25, string order = "{}") { try { VerifyUser(); var model = Service.GetReportGroupView(page, size, order, filter); //List<GarmentPurchasingPphBankExpenditureNoteReportViewDto> dataVM = Mapper.Map<List<GarmentPurchasingPphBankExpenditureNoteReportViewDto>>(model.Data); Dictionary <string, object> Result = new ResultFormatter(ApiVersion, General.OK_STATUS_CODE, General.OK_MESSAGE) .Ok(Mapper, model.Data, page, size, model.Count, model.Count, new Dictionary <string, string>(), new List <string>()); return(Ok(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 GetLoaderInternNote_Return_OK() { //Arrange var mocks = GetMocks(); GarmentPurchasingPphBankExpenditureNoteLoaderInternNote data = new GarmentPurchasingPphBankExpenditureNoteLoaderInternNote() { Name = "" }; mocks.Service .Setup(f => f.GetLoaderInterNotePPH(It.IsAny <string>())) .Returns(new List <GarmentPurchasingPphBankExpenditureNoteLoaderInternNote>() { data }); var controller = GetController(mocks); //Act GarmentPurchasingPphBankExpenditureNoteFilterReportDto filter = new GarmentPurchasingPphBankExpenditureNoteFilterReportDto() { DateEnd = DateTime.Now.AddDays(2), DateStart = DateTime.Now.AddDays(-1), INNo = "INNo", InvoiceNo = "InvoiceNo", InvoiceOutNo = "InvoiceOutNo", SupplierName = "SupplierName" }; var response = await controller.GetLoaderInternNote(""); //Assert int statusCode = GetStatusCode(response); Assert.Equal((int)HttpStatusCode.OK, statusCode); }
public ReadResponse <GarmentPurchasingPphBankExpenditureNoteReportGroupView> GetReportGroupView(int page, int size, string order, GarmentPurchasingPphBankExpenditureNoteFilterReportDto filter) { var reportView = GetReportView(page, size, order, filter); var groupReport = reportView.Data.GroupBy( key => new { key.INNO, key.InvoiceOutNo, key.PaidDate, key.PPH, key.SupplierName, key.CurrencyCode, key.Category, key.BankName }, value => new { value.InvoiceNo }, (key, value) => new GarmentPurchasingPphBankExpenditureNoteReportGroupView { BankName = key.BankName, Category = key.Category, CurrencyCode = key.CurrencyCode, //Id = key.Id, INNO = key.INNO, InvoiceOutNo = key.InvoiceOutNo, PaidDate = key.PaidDate, PPH = key.PPH, SupplierName = key.SupplierName, InvoiceItems = value.Select(s => new GarmentPurchasingPphBankExpenditureReportGroupItemDto { NoInvoice = s.InvoiceNo }).ToList() } ).ToList(); return(new ReadResponse <GarmentPurchasingPphBankExpenditureNoteReportGroupView>(groupReport, reportView.Count, new Dictionary <string, string>(), new List <string>())); }
public ReadResponse <GarmentPurchasingPphBankExpenditureNoteReportViewDto> GetReportView(int page, int size, string order, GarmentPurchasingPphBankExpenditureNoteFilterReportDto filter) { var query = _dbContext.GarmentPurchasingPphBankExpenditureNoteInvoices.Include(s => s.GarmentPurchasingPphBankExpenditureNoteItem).ThenInclude(s => s.GarmentPurchasingPphBankExpenditureNote).AsQueryable(); if (!string.IsNullOrEmpty(filter.InvoiceOutNo)) { query = query.Where(entity => entity.GarmentPurchasingPphBankExpenditureNoteItem.GarmentPurchasingPphBankExpenditureNote.InvoiceOutNumber.Contains(filter.InvoiceOutNo)); } if (!string.IsNullOrEmpty(filter.InvoiceNo)) { query = query.Where(entity => entity.InvoicesNo.Contains(filter.InvoiceNo)); } if (!string.IsNullOrEmpty(filter.INNo)) { query = query.Where(entity => entity.GarmentPurchasingPphBankExpenditureNoteItem.InternalNotesNo.Contains(filter.INNo)); } if (!string.IsNullOrEmpty(filter.SupplierName)) { query = query.Where(entity => entity.GarmentPurchasingPphBankExpenditureNoteItem.SupplierName.Contains(filter.SupplierName)); } //if(filter.DateStart.HasValue) if (filter.DateStart.HasValue && filter.DateStart.GetValueOrDefault().Year != 1) { query = query.Where(entity => entity.GarmentPurchasingPphBankExpenditureNoteItem.GarmentPurchasingPphBankExpenditureNote.InvoiceOutDate >= filter.DateStart); } //if(filter.DateEnd.HasValue) if (filter.DateEnd.HasValue && filter.DateEnd.GetValueOrDefault().Year != 1) { query = query.Where(entity => entity.GarmentPurchasingPphBankExpenditureNoteItem.GarmentPurchasingPphBankExpenditureNote.InvoiceOutDate <= filter.DateEnd); } //if (filter.DateStart.HasValue && filter.DateStart.GetValueOrDefault().Year != 1) //{ // query = query.Where(entity => (entity.CreatedUtc>= entity.LastModifiedUtc? entity.CreatedUtc : entity.LastModifiedUtc) >= filter.DateStart); //} ////if(filter.DateEnd.HasValue) //if (filter.DateEnd.HasValue && filter.DateEnd.GetValueOrDefault().Year != 1) //{ // query = query.Where(entity => (entity.CreatedUtc >= entity.LastModifiedUtc ? entity.CreatedUtc : entity.LastModifiedUtc) <= filter.DateEnd); //} //var orderDictionary = JsonConvert.DeserializeObject<Dictionary<string, string>>(order); //query = QueryHelper<GarmentPurchasingPphBankExpenditureNoteItemModel>.Order(query, orderDictionary); var count = query.Count(); var queryList = query.ToList(); //var data = queryList // .Skip((page - 1) * size) // .Take(size) // .ToList() // .GroupBy( // invoice => new { invoice.InvoicesId, invoice.InvoicesNo, invoice.InvoicesDate }, // groupInvoice => groupInvoice, // (key, grp) => new GarmentPurchasingPphBankExpenditureNoteReportViewDto // { // BankName = grp.FirstOrDefault().GarmentPurchasingPphBankExpenditureNoteItem.GarmentPurchasingPphBankExpenditureNote.AccountBankName + " - "+ // grp.FirstOrDefault().GarmentPurchasingPphBankExpenditureNoteItem.GarmentPurchasingPphBankExpenditureNote.BankName+ " - "+ // grp.FirstOrDefault().GarmentPurchasingPphBankExpenditureNoteItem.GarmentPurchasingPphBankExpenditureNote.AccountBankNumber+" - "+ // grp.FirstOrDefault().GarmentPurchasingPphBankExpenditureNoteItem.GarmentPurchasingPphBankExpenditureNote.BankCurrencyCode // ?? string.Empty, // Category = grp.FirstOrDefault().ProductCategory ?? string.Empty, // INNO = grp.FirstOrDefault().GarmentPurchasingPphBankExpenditureNoteItem.InternalNotesNo ?? string.Empty, // InvoiceNo = key.InvoicesNo ?? string.Empty, // CurrencyCode = grp.FirstOrDefault().GarmentPurchasingPphBankExpenditureNoteItem.CurrencyCode ?? string.Empty, // InvoiceOutNo = grp.FirstOrDefault().GarmentPurchasingPphBankExpenditureNoteItem.GarmentPurchasingPphBankExpenditureNote.InvoiceOutNumber ?? string.Empty, // PaidDate = grp.FirstOrDefault().GarmentPurchasingPphBankExpenditureNoteItem.GarmentPurchasingPphBankExpenditureNote.InvoiceOutDate, // SupplierName = grp.FirstOrDefault().GarmentPurchasingPphBankExpenditureNoteItem.SupplierName ?? string.Empty, // PPH = grp.FirstOrDefault().GarmentPurchasingPphBankExpenditureNoteItem.TotalPaid * (grp.FirstOrDefault().GarmentPurchasingPphBankExpenditureNoteItem.IncomeTaxTotal / 100) // }).ToList() // ; var data = queryList .Skip((page - 1) * size) .Take(size) .Select(grp => new GarmentPurchasingPphBankExpenditureNoteReportViewDto { Id = grp.Id, BankName = grp.GarmentPurchasingPphBankExpenditureNoteItem.GarmentPurchasingPphBankExpenditureNote.AccountBankName + " - " + grp.GarmentPurchasingPphBankExpenditureNoteItem.GarmentPurchasingPphBankExpenditureNote.BankName + " - " + grp.GarmentPurchasingPphBankExpenditureNoteItem.GarmentPurchasingPphBankExpenditureNote.AccountBankNumber + " - " + grp.GarmentPurchasingPphBankExpenditureNoteItem.GarmentPurchasingPphBankExpenditureNote.BankCurrencyCode ?? string.Empty, Category = grp.ProductCategory ?? string.Empty, INNO = grp.GarmentPurchasingPphBankExpenditureNoteItem.InternalNotesNo ?? string.Empty, InvoiceNo = grp.InvoicesNo ?? string.Empty, CurrencyCode = grp.GarmentPurchasingPphBankExpenditureNoteItem.CurrencyCode ?? string.Empty, InvoiceOutNo = grp.GarmentPurchasingPphBankExpenditureNoteItem.GarmentPurchasingPphBankExpenditureNote.InvoiceOutNumber ?? string.Empty, PaidDate = grp.GarmentPurchasingPphBankExpenditureNoteItem.GarmentPurchasingPphBankExpenditureNote.InvoiceOutDate, SupplierName = grp.GarmentPurchasingPphBankExpenditureNoteItem.SupplierName ?? string.Empty, PPH = grp.GarmentPurchasingPphBankExpenditureNoteItem.TotalPaid * (grp.GarmentPurchasingPphBankExpenditureNoteItem.IncomeTaxTotal / 100) }).ToList() ; return(new ReadResponse <GarmentPurchasingPphBankExpenditureNoteReportViewDto>(data, count, new Dictionary <string, string>(), new List <string>())); }