private Queue <ZeroCostDocument> filterZeroDocuments(Dictionary <String, List <VoucherDiscrepancyItem> > vou_discrepancies) { Queue <ZeroCostDocument> zeroCostDocuments = new Queue <ZeroCostDocument>(); HashSet <string> zeroCostSIDs = new HashSet <string>(); foreach (KeyValuePair <string, List <VoucherDiscrepancyItem> > entry in vou_discrepancies) { string sid = entry.Key; List <VoucherDiscrepancyItem> items = entry.Value; bool hasZeroCost = false; foreach (VoucherDiscrepancyItem item in items) { if (item.hasZeroCost()) { hasZeroCost = true; ZeroCostDocument doc = new ZeroCostDocument(); doc.alu = item.alu; doc.doc_sid = item.vou_sid; doc.feature = MainController.Features.VOU_DISCREPANCY; zeroCostDocuments.Enqueue(doc); } } if (hasZeroCost) { zeroCostSIDs.Add(sid); } } foreach (string sid in zeroCostSIDs) { vou_discrepancies.Remove(sid); } return(zeroCostDocuments); }
public bool addDivisionToInvoice(InvoiceDivision inv_div, Queue <ZeroCostDocument> zeroCostInvoiceItems) { if (invc_sid != inv_div.invc_sid) { return(false); } if (inv_div.isZeroCost()) { if (!hasZeroCost) { hasZeroCost = true; divisions.Clear(); } ZeroCostDocument doc = new ZeroCostDocument(); doc.alu = inv_div.alu; doc.doc_sid = inv_div.invc_sid; doc.feature = MainController.Features.SALE; zeroCostInvoiceItems.Enqueue(doc); } else { divisions.Add(inv_div); } return(true); }