public IActionResult GetPdf([FromQuery] DateTimeOffset arrivalDate, [FromQuery] GarmentDebtBalanceDetailFilterEnum supplierTypeFilter, [FromQuery] int supplierId, [FromQuery] int currencyId, [FromQuery] string paymentType) { try { VerifyUser(); var data = _service.GetDebtBalanceDetail(arrivalDate, supplierTypeFilter, supplierId, currencyId, paymentType); var stream = GarmentDebtBalanceDetailPDFGenerator.Generate(data, arrivalDate, _identityService.TimezoneOffset); var filename = "LAPORAN RINCIAN HUTANG"; filename += ".pdf"; return(new FileStreamResult(stream, "application/pdf") { FileDownloadName = filename }); } catch (Exception e) { var result = new ResultFormatter(ApiVersion, General.INTERNAL_ERROR_STATUS_CODE, e.Message) .Fail(); return(StatusCode(General.INTERNAL_ERROR_STATUS_CODE, result)); } }
public IActionResult GetDetail([FromQuery] DateTimeOffset arrivalDate, [FromQuery] GarmentDebtBalanceDetailFilterEnum supplierTypeFilter, [FromQuery] int supplierId, [FromQuery] int currencyId, [FromQuery] string paymentType) { try { VerifyUser(); var data = _service.GetDebtBalanceDetail(arrivalDate, supplierTypeFilter, supplierId, currencyId, paymentType); return(Ok(new { apiVersion = ApiVersion, data = data, info = new { Count = data.Count, Order = new List <string>(), Selected = new List <string>() }, message = General.OK_MESSAGE, statusCode = General.OK_STATUS_CODE })); } catch (Exception e) { var result = new ResultFormatter(ApiVersion, General.INTERNAL_ERROR_STATUS_CODE, e.Message) .Fail(); return(StatusCode(General.INTERNAL_ERROR_STATUS_CODE, result)); } }
public IActionResult GetXls([FromQuery] DateTimeOffset arrivalDate, [FromQuery] GarmentDebtBalanceDetailFilterEnum supplierTypeFilter, [FromQuery] int supplierId, [FromQuery] int currencyId, [FromQuery] string paymentType) { try { VerifyUser(); var data = _service.GetDebtBalanceDetail(arrivalDate, supplierTypeFilter, supplierId, currencyId, paymentType); var stream = GarmentDebtBalanceDetailExcelGenerator.Generate(data, arrivalDate, _identityService.TimezoneOffset); var filename = "LAPORAN RINCIAN HUTANG"; filename += ".xlsx"; var bytes = stream.ToArray(); return(File(bytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", filename)); } catch (Exception e) { var result = new ResultFormatter(ApiVersion, General.INTERNAL_ERROR_STATUS_CODE, e.Message) .Fail(); return(StatusCode(General.INTERNAL_ERROR_STATUS_CODE, result)); } }
public List <GarmentDebtBalanceDetailDto> GetDebtBalanceDetail(DateTimeOffset arrivalDate, GarmentDebtBalanceDetailFilterEnum supplierTypeFilter, int supplierId, int currencyId, string paymentType) { var query = _dbContext.GarmentDebtBalances.Where(entity => (entity.DPPAmount + entity.CurrencyDPPAmount + entity.VATAmount - entity.IncomeTaxAmount) - entity.BankExpenditureNoteInvoiceAmount != 0); query = query.Where(entity => entity.ArrivalDate != DateTimeOffset.MinValue && entity.ArrivalDate <= arrivalDate); if (supplierId > 0) { query = query.Where(entity => entity.SupplierId == supplierId); } if (supplierTypeFilter == GarmentDebtBalanceDetailFilterEnum.SupplierImport) { query = query.Where(entity => entity.SupplierIsImport); } if (supplierTypeFilter == GarmentDebtBalanceDetailFilterEnum.SupplierLocal) { query = query.Where(entity => !entity.SupplierIsImport); } if (currencyId > 0) { query = query.Where(entity => entity.CurrencyId == currencyId); } if (!string.IsNullOrWhiteSpace(paymentType)) { query = query.Where(entity => entity.PaymentType == paymentType); } var queryResult = query.ToList(); var result = new List <GarmentDebtBalanceDetailDto>(); foreach (var element in queryResult) { var debtAging = Math.Abs((int)(arrivalDate - element.ArrivalDate).TotalDays); var total = element.DPPAmount + element.VATAmount - element.IncomeTaxAmount; var currencyTotal = element.CurrencyDPPAmount + element.CurrencyVATAmount - element.CurrencyIncomeTaxAmount; result.Add(new GarmentDebtBalanceDetailDto(element.SupplierId, element.SupplierCode, element.SupplierName, element.BillsNo, element.PaymentBills, element.GarmentDeliveryOrderId, element.GarmentDeliveryOrderNo, element.PaymentType, element.ArrivalDate, debtAging, element.InternalNoteId, element.InternalNoteNo, element.InvoiceId, element.InvoiceNo, element.DPPAmount, element.CurrencyDPPAmount, element.VATAmount, element.CurrencyVATAmount, element.IncomeTaxAmount, element.CurrencyIncomeTaxAmount, total, currencyTotal, element.CurrencyId, element.CurrencyCode, element.CurrencyRate, element.VATNo)); } var totalResult = result.GroupBy(element => element.CurrencyId).Select(element => new GarmentDebtBalanceDetailDto(0, "", "", "", "", 0, "", "", null, 0, 0, "", 0, "", element.Sum(sum => sum.DPPAmount), element.Sum(sum => sum.CurrencyDPPAmount), element.Sum(sum => sum.VATAmount), element.Sum(sum => sum.CurrencyVATAmount), element.Sum(sum => sum.IncomeTaxAmount), element.Sum(sum => sum.CurrencyIncomeTaxAmount), element.Sum(sum => sum.Total), element.Sum(sum => sum.CurrencyTotal), element.FirstOrDefault().CurrencyId, element.FirstOrDefault().CurrencyCode, element.FirstOrDefault().CurrencyRate, "")).ToList(); var firstTotal = totalResult.FirstOrDefault(); if (firstTotal != null) { firstTotal.SetTotal(); } result.AddRange(totalResult); return(result); }