コード例 #1
0
        public async Task <GarmentFinanceLocalSalesListModel> GetDataShippingInvoiceNow(int month, int year)
        {
            GarmentFinanceLocalSalesListModel garmentShipping = new GarmentFinanceLocalSalesListModel();
            var http     = _serviceProvider.GetService <IHttpClientService>();
            var uri      = APIEndpoint.PackingInventory + $"garment-shipping/local-sales-notes/localSalesDebtorNow?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 <GarmentFinanceLocalSalesModel> >(dataString);
                    garmentShipping.data = listData;
                }
            }
            else
            {
                var err = await response.Content.ReadAsStringAsync();
            }

            return(garmentShipping);
        }
コード例 #2
0
        public async Task <List <GarmentFinanceLocalSalesOutstandingReportViewModel> > GetReportQuery(int month, int year, string buyer, int offset)
        {
            GarmentFinanceLocalSalesListModel invoicePackingListNow = await GetDataShippingInvoiceNow(month, year);

            DateTime date = new DateTime(year, month, 1);

            List <GarmentFinanceLocalSalesOutstandingReportViewModel> data = new List <GarmentFinanceLocalSalesOutstandingReportViewModel>();

            var invoice = from a in invoicePackingListNow.data
                          where (buyer == null || buyer == "undefined" || (buyer != null && buyer != "undefined" && buyer != "" && a.buyer.code == buyer))
                          select new GarmentFinanceLocalSalesOutstandingReportViewModel
            {
                Amount       = Convert.ToDecimal(a.items.Sum(s => a.useVat ? (s.price * s.quantity) + (0.1 * (s.price * s.quantity)): s.price * s.quantity)),
                InvoiceId    = Convert.ToInt32(a.id),
                InvoiceNo    = a.noteNo,
                TruckingDate = a.date,
                BuyerName    = a.buyer.name
            };
            var memorial = from a in (from aa in _dbContext.GarmentFinanceMemorialDetailLocals
                                      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.GarmentFinanceMemorialDetailLocalItems on a.Id equals c.MemorialDetailLocalId
                           where (buyer == null || (buyer != null && buyer != "" && c.BuyerCode == buyer))
                           select new GarmentFinanceLocalSalesOutstandingReportViewModel
            {
                Amount       = Convert.ToDecimal(-c.Amount),
                InvoiceNo    = c.LocalSalesNoteNo,
                InvoiceId    = c.LocalSalesNoteId,
                TruckingDate = null,
                BuyerName    = c.BuyerName
            };
            var bankCashReceipt = from a in (from aa in _dbContext.GarmentFinanceBankCashReceiptDetailLocals
                                             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.GarmentFinanceBankCashReceiptDetailLocalItems
                                  on a.Id equals b.BankCashReceiptDetailLocalId
                                  where (buyer == null || (buyer != null && buyer != "" && b.BuyerCode == buyer))
                                  select new GarmentFinanceLocalSalesOutstandingReportViewModel
            {
                Amount       = Convert.ToDecimal(-b.Amount),
                InvoiceNo    = b.LocalSalesNoteNo,
                InvoiceId    = b.LocalSalesNoteId,
                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)
            {
                GarmentFinanceLocalSalesOutstandingReportViewModel model = new GarmentFinanceLocalSalesOutstandingReportViewModel
                {
                    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  = data.OrderBy(a => a.BuyerName).ToList();
            index = 0;
            var lastRow = new GarmentFinanceLocalSalesOutstandingReportViewModel
            {
                InvoiceNo    = "TOTAL",
                TruckingDate = null,
                Amount       = total
            };

            data.Add(lastRow);
            return(data);
        }