/// <summary> /// adding new invoice and update stock /// </summary> /// <param name="invoiceHeder"></param> public void AddInvoice(InvoiceHeader invoiceHeder) { _invoiceHader.Add(invoiceHeder); //update stock items foreach (var item in invoiceHeder.InvoiceDetials) { _IStkUpdate .UpdateStock(SouceDocType.INVOICE, item.ProductId, item.Quantity); } Console.WriteLine("****** Add invoice {0} ******** \n" , invoiceHeder.InvoiceNumber); }
/// <summary> /// update InvoiceDetail ( asume that same number of item /// avialable after updating InvoiceDetail ) /// </summary> /// <param name="invoiceDetail"></param> internal void UpdateInvoiceDetail(InvoiceDetail invoiceDetail, IStcokUpdate _IStcokUpdate) { // change the stock before update because these current object // invoice item affected to stock _IStcokUpdate.UpdateStock(SouceDocType.INVREMOVE, this.ProductId, this.Quantity); this.ProductId = invoiceDetail.ProductId; this.UnitOfMesure = invoiceDetail.UnitOfMesure; this.Quantity = invoiceDetail.Quantity; this.UnitPrice = invoiceDetail.UnitPrice; //chages made to after update _IStcokUpdate.UpdateStock(SouceDocType.INVOICE, this.ProductId, this.Quantity); }