diff --git a/AyaNovaQBI/MainForm.cs b/AyaNovaQBI/MainForm.cs index 29a5822..a4afa82 100644 --- a/AyaNovaQBI/MainForm.cs +++ b/AyaNovaQBI/MainForm.cs @@ -313,7 +313,7 @@ namespace AyaNovaQBI InvoiceableWorkOrdersList.Add(_GridTableSourceList.First(z => z.Id == (long)r.Cells["id"].Value)); } } - + if (InvoiceableWorkOrdersList.Count < 1) { MessageBox.Show("There are no invoiceable Work order rows selected\r\nSelect one or more rows to invoice"); @@ -334,7 +334,7 @@ namespace AyaNovaQBI if (bOneWoPerInvoice) { - foreach(var invwo in InvoiceableWorkOrdersList) + foreach (var invwo in InvoiceableWorkOrdersList) { al.Add(invwo.Id); w.Step = "Invoicing single workorder "; @@ -345,16 +345,15 @@ namespace AyaNovaQBI else { - /* - var results = persons.GroupBy( - p => p.PersonId, - p => p.car, - (key, g) => new { PersonId = key, Cars = g.ToList() }); - */ - var grouped = InvoiceableWorkOrdersList.GroupBy(z => z.CustomerId, z => z.Id, (Key, g) => new { CustomerId=Key, WorkOrders=g.ToList() }); - foreach(var vv in grouped) + //Invoice grouped by customer + var grouped = InvoiceableWorkOrdersList.GroupBy(z => z.CustomerId, z => z.Id, (Key, g) => new { CustomerId = Key, WorkOrders = g.ToList() }); + foreach (var CustomerWoGroup in grouped) { - string sss=vv.CustomerId.ToString(); + foreach (var woid in CustomerWoGroup.WorkOrders) + al.Add(woid); + w.Step = $"Batch invoicing {CustomerWoGroup.WorkOrders.Count.ToString()}{((al.Count > 1) ? " Work Orders" : " Work Order")}"; + await util.Invoice(al, alErrors); + al.Clear(); } } @@ -389,38 +388,38 @@ namespace AyaNovaQBI //} - //work through selected items top to bottom - foreach (DataGridViewRow r in grid.SelectedRows) - { - //clear the workorder list - al.Clear(); + ////work through selected items top to bottom + //foreach (DataGridViewRow r in grid.SelectedRows) + //{ + // //clear the workorder list + // al.Clear(); - if ((bool)r.Cells["Linked"].Value == true) - { - al.Add((long)r.Cells["id"].Value); - //case 1604 - if (bOneWoPerInvoice) - { - //then invoice it out now - w.Step = "Invoicing single workorder "; - await util.Invoice(al, alErrors); - //and clear al workorders list - al.Clear(); - } + // if ((bool)r.Cells["Linked"].Value == true) + // { + // al.Add((long)r.Cells["id"].Value); + // //case 1604 + // if (bOneWoPerInvoice) + // { + // //then invoice it out now + // w.Step = "Invoicing single workorder "; + // await util.Invoice(al, alErrors); + // //and clear al workorders list + // al.Clear(); + // } - } + // } - }//end of foreach loop - { - w.Step = "Invoicing " + al.Count.ToString() + ((al.Count > 1) ? " Workorders" : " Workorder"); - await util.Invoice(al, alErrors); - } + //}//end of foreach loop + //{ + // w.Step = "Invoicing " + al.Count.ToString() + ((al.Count > 1) ? " Workorders" : " Workorder"); + // await util.Invoice(al, alErrors); + //} w.Close(); //display errors if any