Esempio n. 1
0
        private void _Insert(Book.Model.InvoicePO invoice)
        {
            //往来单位
            if (invoice.Department != null)
            {
                invoice.DepartmentId = invoice.Department.DepartmentId;
            }
            // 库房
            //invoice.DepotId = invoice.Depot.DepotId;
            //经手人
            if (invoice.Employee0 != null)
            {
                invoice.Employee0Id = invoice.Employee0.EmployeeId;
            }
            //录单人
            if (invoice.Employee1 != null)
            {
                invoice.Employee1Id = invoice.Employee1.EmployeeId;
            }

            if ((Helper.InvoiceStatus)invoice.InvoiceStatus.Value == Helper.InvoiceStatus.Normal)
            {
                //过账人
                if (invoice.Employee2 != null)
                {
                    invoice.Employee2Id = invoice.Employee2.EmployeeId;
                }
                //过账时间
                invoice.InvoiceGZTime = DateTime.Now;
            }
            //插入表单
            accessor.Insert(invoice);

            //插入明细
            foreach (Model.InvoicePODetail detail in invoice.Details)
            {
                if (detail.DepotPosition == null || detail.DepotPositionId == null)
                {
                    throw new Exception("貨位不為空");
                }
                if (detail.Product == null || string.IsNullOrEmpty(detail.Product.ProductId))
                {
                    continue;
                }
                detail.InvoiceId = invoice.InvoiceId;
                detail.InvoicePODetailWHQuantity = detail.InvoicePODetailJCQuantity;
                detail.InvoicePODetailYHQuantity = 0;
                invoicePODetailAccessor.Insert(detail);

                Model.Product p = detail.Product;
                p.StocksQuantity -= detail.InvoicePODetailJCQuantity;
                productAccessor.Update(p);

                Model.Stock stock = stockAccessor.GetStockByProductIdAndDepotPositionId(p.ProductId, detail.DepotPositionId);
                if (stock == null)
                {
                    stock                 = new Book.Model.Stock();
                    stock.StockId         = Guid.NewGuid().ToString();
                    stock.ProductId       = p.ProductId;
                    stock.DepotPositionId = detail.DepotPositionId;
                    stock.StockQuantity1  = detail.InvoicePODetailJCQuantity;
                    stock.StockCurrentJC  = stock.StockCurrentJC == null ? detail.InvoicePODetailJCQuantity : stock.StockCurrentJC + detail.InvoicePODetailJCQuantity;
                    stock.DepotId         = invoice.PoDepotId;
                    stock.ProduceUnit     = p.ProduceUnit.CnName;
                    stockAccessor.Insert(stock);
                }
                else
                {
                    stockAccessor.IncrementJC(new DepotPositionManager().Get(detail.DepotPositionId), p, detail.InvoicePODetailJCQuantity.Value);
                }
            }
        }
Esempio n. 2
0
 public void Delete(Book.Model.InvoicePO invoice)
 {
     sqlmapper.Delete("InvoicePODetail.delete_by_invoiceid", invoice.InvoiceId);
 }
 public IList <Book.Model.InvoicePODetail> Select(Book.Model.InvoicePO invoice)
 {
     return(accessor.Select(invoice));
 }
Esempio n. 4
0
 public IList <Book.Model.InvoicePODetail> Select(Book.Model.InvoicePO invoice)
 {
     return(sqlmapper.QueryForList <Model.InvoicePODetail>("InvoicePODetail.select_by_invoiceid", invoice.InvoiceId));
 }