示例#1
0
        /// <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);
        }
示例#2
0
        /// <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);
        }