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