public async Task <GarmentShippingPackingList> GetDataShippingInvoiceNow(int month, int year) { GarmentShippingPackingList garmentShipping = new GarmentShippingPackingList(); var http = _serviceProvider.GetService <IHttpClientService>(); var uri = APIEndpoint.PackingInventory + $"garment-shipping/invoices/exportSalesDebtor?month={month}&year={year}"; var response = await http.GetAsync(uri); var result = new BaseResponse <string>(); if (response.IsSuccessStatusCode) { if (response.Content != null) { var contentString = await response.Content.ReadAsStringAsync(); Dictionary <string, object> content = JsonConvert.DeserializeObject <Dictionary <string, object> >(contentString); var dataString = content.GetValueOrDefault("data").ToString(); var listData = JsonConvert.DeserializeObject <List <ShippingPackingDto> >(dataString); garmentShipping.data = listData; } } else { var err = await response.Content.ReadAsStringAsync(); } return(garmentShipping); }
public async Task <List <GarmentFinanceExportSalesOutstandingReportViewModel> > GetReportQuery(int month, int year, string buyer, int offset) { GarmentShippingPackingList invoicePackingListNow = await GetDataShippingInvoiceNow(month, year); DateTime date = new DateTime(year, month, 1); List <GarmentFinanceExportSalesOutstandingReportViewModel> data = new List <GarmentFinanceExportSalesOutstandingReportViewModel>(); var invoice = from a in invoicePackingListNow.data where (buyer == null || buyer == "undefined" || (buyer != null && buyer != "undefined" && buyer != "" && a.buyerAgentCode == buyer)) select new GarmentFinanceExportSalesOutstandingReportViewModel { Amount = Convert.ToDecimal(a.amount), InvoiceId = Convert.ToInt32(a.invoiceId), InvoiceNo = a.invoiceNo, TruckingDate = a.truckingDate, BuyerName = a.buyerAgentName }; var memorial = from a in (from aa in _dbContext.GarmentFinanceMemorialDetails where aa.MemorialDate.AddHours(7).Date.Month <= month && aa.MemorialDate.AddHours(7).Date.Year == year select new { aa.Id, aa.MemorialNo, aa.MemorialDate }) join c in _dbContext.GarmentFinanceMemorialDetailItems on a.Id equals c.MemorialDetailId where (buyer == null || (buyer != null && buyer != "" && c.BuyerCode == buyer)) select new GarmentFinanceExportSalesOutstandingReportViewModel { Amount = Convert.ToDecimal(-c.Amount), InvoiceNo = c.InvoiceNo, InvoiceId = c.InvoiceId, TruckingDate = null, BuyerName = c.BuyerName }; var bankCashReceipt = from a in (from aa in _dbContext.GarmentFinanceBankCashReceiptDetails where aa.BankCashReceiptDate.AddHours(7).Date.Month <= month && aa.BankCashReceiptDate.AddHours(7).Date.Year == year select new { aa.Id, aa.BankCashReceiptNo, aa.BankCashReceiptDate }) join b in _dbContext.GarmentFinanceBankCashReceiptDetailItems on a.Id equals b.BankCashReceiptDetailId where (buyer == null || (buyer != null && buyer != "" && b.BuyerCode == buyer)) select new GarmentFinanceExportSalesOutstandingReportViewModel { Amount = Convert.ToDecimal(-b.Amount), InvoiceNo = b.InvoiceNo, InvoiceId = b.InvoiceId, TruckingDate = null, BuyerName = b.BuyerName }; var unionQuery = memorial.Union(bankCashReceipt).Union(invoice); if (buyer == null || buyer == "undefined" || buyer == "") { _buyerName = "ALL"; } else { _buyerName = (from a in unionQuery.ToList() select a.BuyerName).FirstOrDefault() + " >> " + buyer; } var querySum = unionQuery.ToList().GroupBy(a => new { a.InvoiceId }, (key, group) => new { invoiveId = key.InvoiceId, balance = group.Sum(s => s.Amount) }); decimal total = 0; int index = 1; foreach (var item in invoice) { GarmentFinanceExportSalesOutstandingReportViewModel model = new GarmentFinanceExportSalesOutstandingReportViewModel { Index = index, InvoiceNo = item.InvoiceNo, TruckingDate = item.TruckingDate, Amount = querySum.First(a => a.invoiveId == item.InvoiceId).balance }; data.Add(model); total += model.Amount; index++; } data.OrderBy(a => a.BuyerName); index = 0; var lastRow = new GarmentFinanceExportSalesOutstandingReportViewModel { InvoiceNo = "TOTAL", TruckingDate = null, Amount = total }; data.Add(lastRow); return(data); }