Пример #1
0
        /// <summary>
        /// This method inserts a Purchase Request and its Items
        /// </summary>
        /// <param name="purchaseRequest">Can't be null</param>
        /// <param name="purchaseRequestItems">Can't be null</param>
        public void SavePurchaseRequest(PurchaseRequest purchaseRequest, List <PurchaseRequestItem> purchaseRequestItems)
        {
            int purchaseRequestId = purchaseRequest.PurchaseRequestId;

            if (purchaseRequestId > 0)
            {
                purchaseRequest =
                    DbContext.PurchaseRequests.Where(p => p.PurchaseRequestId == purchaseRequestId).FirstOrDefault();
                DbContext.PurchaseRequestItems.DeleteAllOnSubmit(purchaseRequest.PurchaseRequestItems);
            }

            purchaseRequest.ModifiedDate = DateTime.Now;

            DbContext.PurchaseRequests.InsertOnSubmit(purchaseRequest);
            DbContext.SubmitChanges();

            foreach (PurchaseRequestItem item in purchaseRequestItems)
            {
                if (Convert.ToBoolean(item.Product.RequiresAuthorization))
                {
                    var  humanResourcesManager = new HumanResourcesManager(this);
                    User user = humanResourcesManager.GetCentralBuyer(purchaseRequest.CompanyId);
                    new AlertManager(this).InsertAlert(
                        user.UserId,
                        "Há requisição de produtos centralizados, <a href='Purchasing/PurchaseRequests.aspx' target='content'>clique aqui</a> para analisá-la!");

                    return;
                }

                item.PurchaseRequestId = purchaseRequest.PurchaseRequestId;
                item.CompanyId         = purchaseRequest.CompanyId;
                //item.Detach();
                DbContext.PurchaseRequestItems.InsertOnSubmit(item.Detach());
            }
            DbContext.SubmitChanges();
        }