public static Invoice Add(Invoice[] invoice) { Invoice inv; double sum = 0.0; foreach (var item in invoice) if (item is ReceivableInvoice) { sum += item.InvoiceTotal(); } else { sum -= item.InvoiceTotal(); } InvoiceDetail[] details = new InvoiceDetail[] { new InvoiceDetail(sum) }; inv = new Invoice(details); return inv; }
static void Main(string[] args) { InvoiceDetail id1, id2; id1 = new InvoiceDetail(20D); id2 = new InvoiceDetail(40D); OutgoingInvoice in1 = new OutgoingInvoice(new InvoiceDetail[] {id1 }); ReceivableInvoice in2 = new ReceivableInvoice(new InvoiceDetail[] { id2, id1 }); Invoice[] arr = new Invoice[] { in1, in2 }; Invoice in3 = Invoice.Add(arr); Invoice.Vat = 20; Invoice[] MyInvoices = new Invoice[] { in1, in3, in2 }; Print action = InvoiceTest.PrintSortedInvoices; action(MyInvoices); action = InvoiceTest.PrintGroupedInvoices; action(MyInvoices); Console.ReadLine(); }
public Invoice(InvoiceDetail[] items) { invoiceItems = items; invoiceNumber = unique_ID++; }
public OutgoingInvoice(InvoiceDetail[] items) : base(items) { }
public ReceivableInvoice(InvoiceDetail[] items) : base(items) { }
public InvoiceDetail(InvoiceDetail inv) : this(inv.DblLineTotal) { }