private static void AddContractsToInvoice(Invoice invoice, CustomerAccountInvoiceItem invoiceItem, CustomerAccount activeContract) { if (activeContract.WasActiveOn(invoice.BillCycle.Date)) { var contractsForBilling = activeContract.GetListOfContractsToBill(invoice.BillCycle).ToList(); //TODO Review. invoiceItem.AttachedContractItems.AddRange( //contractsForBilling.Select(c => c.PopulateInvoiceAttachedContractItems()).ToList()); contractsForBilling.ForEach(c => c.LastBilled = invoice.BillCycle); } }
private void AddTransactionEntryForInvoice(Invoice invoice, CustomerAccountInvoiceItem invoiceItem) { _transactionsService.Add(new Transaction { Amount = invoiceItem.Amount, CustomerAccountId = invoiceItem.CustomerAccountId, TransactionTypeId = (int)TransactionTypes.Invoice, DateTime = invoice.InvoiceDate, BillCycle = invoice.BillCycle, Description = string.Format("Bill cycle : {0} invoice", invoice.BillCycle.ToString()) }); }
private void AddPostedEntriesToContracts(Invoice invoice, CustomerAccountInvoiceItem invoiceItem, CustomerAccount activeContract) { throw new NotImplementedException(); //var posted = _postedRepository.GetMany(p => p.Invoice == null && p.Contract.CustomerAccountId == activeContract.CustomerAccountId); //foreach (var adjustmentPost in posted) //{ // if (adjustmentPost.Contract.IsBillableThisCycle(invoice.BillCycle) || (adjustmentPost.Contract.IsContractExpiredOnDate(invoice.BillCycle.Date))) // { // invoiceItem.AttachedContractItems.Add(new InvoiceAttachedContractItems // { // Description = adjustmentPost.InvoiceString, // Amount = adjustmentPost.GetInvoicedAmount(invoice.BillCycle) // }); // adjustmentPost.Invoice = invoice; // _postedRepository.Update(adjustmentPost); // } //} }
private static bool AreThereContractItemsInInvoiceItem(CustomerAccountInvoiceItem invoiceItem) { return(invoiceItem.AttachedContractItems.Count > 0); }