コード例 #1
0
        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);
        }
コード例 #2
0
 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);
 }