public async Task <CreateProcessStatus> CreatePurchaseOrderDetailsByView(PurchaseOrderView purchaseOrderView) { try { PurchaseOrder po = await(from e in _dbContext.PurchaseOrders where e.PONumber == purchaseOrderView.PONumber select e).FirstOrDefaultAsync <PurchaseOrder>(); if (po != null) { long purchaseOrderId = po.PurchaseOrderId; foreach (var detail in purchaseOrderView.PurchaseOrderDetailViews) { detail.PurchaseOrderId = purchaseOrderId; PurchaseOrderDetail poDetail = new PurchaseOrderDetail(); applicationViewFactory.MapPurchaseOrderDetailEntity(ref poDetail, detail); var queryPODetail = await(from e in _dbContext.PurchaseOrderDetails where e.ItemId == detail.ItemId && e.PurchaseOrderId == purchaseOrderId select e).FirstOrDefaultAsync <PurchaseOrderDetail>(); if (queryPODetail == null) { _dbContext.Set <PurchaseOrderDetail>().Add(poDetail); } } } return(CreateProcessStatus.Insert); } catch (Exception ex) { throw new Exception(GetMyMethodName(), ex); } }
public async Task <PurchaseOrderView> GetPurchaseOrderViewByOrderNumber(string orderNumber) { try { List <PurchaseOrder> list = await GetObjectsQueryable(e => e.PONumber == orderNumber).ToListAsync <PurchaseOrder>(); PurchaseOrderView view = applicationViewFactory.MapPurchaseOrderView(list[0]); var query = await(from e in _dbContext.PurchaseOrderDetails where e.PurchaseOrderId == view.PurchaseOrderId select e).ToListAsync <PurchaseOrderDetail>(); foreach (var item in query) { view.PurchaseOrderDetailViews.Add(applicationViewFactory.MapPurchaseOrderDetailView(item)); } return(view); } catch (Exception ex) { throw new Exception(GetMyMethodName(), ex); } }
public async Task <CreateProcessStatus> CreatePurchaseOrderByView(PurchaseOrderView purchaseOrderView) { decimal grossAmount = 0; try { //check if PO exists var queryPO = await(from e in _dbContext.PurchaseOrders where e.PONumber == purchaseOrderView.PONumber select e).FirstOrDefaultAsync <PurchaseOrder>(); if (queryPO != null) { return(CreateProcessStatus.AlreadyExists); } foreach (var detail in purchaseOrderView.PurchaseOrderDetailViews) { grossAmount += detail.Amount ?? 0; } purchaseOrderView.GrossAmount = grossAmount; purchaseOrderView.AmountPaid = 0; TaxRatesByCode tax = await base.GetTaxRateByCode(purchaseOrderView.TaxCode1); purchaseOrderView.Tax = grossAmount * tax.TaxRate; PurchaseOrder po = new PurchaseOrder(); applicationViewFactory.MapPurchaseOrderEntity(ref po, purchaseOrderView); base.AddObject(po); return(CreateProcessStatus.Insert); } catch (Exception ex) { throw new Exception(GetMyMethodName(), ex); } }