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));
        }
Beispiel #3
0
        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);
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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));
            }
        }
Beispiel #7
0
        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);
        }
Beispiel #9
0
        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>()));
        }
Beispiel #10
0
        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>()));
        }