Exemplo n.º 1
0
        /// <summary>
        /// Update Purchase Order Number Sequence
        /// </summary>
        /// <param name="purchaseOrderNumberSequence"></param>
        /// <returns></returns>
        public async Task UpdatePurchaseOrderNumberSequence(PurchaseOrderNumberSequence purchaseOrderNumberSequence)
        {
            await Task.Delay(0);

            DateTime dateUpdated = DateTime.UtcNow;

            purchaseOrderNumberSequence.DateUpdated = dateUpdated;
        }
Exemplo n.º 2
0
        /// <summary>
        /// Create Purchase Order
        /// </summary>
        /// <param name="purchaseOrderDataTransformation"></param>
        /// <returns></returns>
        public async Task <ResponseModel <PurchaseOrderDataTransformation> > CreatePurchaseOrder(PurchaseOrderDataTransformation purchaseOrderDataTransformation)
        {
            ResponseModel <PurchaseOrderDataTransformation> returnResponse = new ResponseModel <PurchaseOrderDataTransformation>();

            PurchaseOrder purchaseOrder = new PurchaseOrder();

            try
            {
                _purchaseOrderManagementDataService.OpenConnection(_connectionStrings.PrimaryDatabaseConnectionString);
                _purchaseOrderManagementDataService.BeginTransaction((int)IsolationLevel.Serializable);

                PurchaseOrderNumberSequence purchaseOrderNumberSequence = await _purchaseOrderManagementDataService.GetPurchaseOrderNumberSequence(purchaseOrderDataTransformation.AccountId);

                if (purchaseOrderNumberSequence == null)
                {
                    purchaseOrderNumberSequence                     = new PurchaseOrderNumberSequence();
                    purchaseOrderNumberSequence.AccountId           = purchaseOrderDataTransformation.AccountId;
                    purchaseOrderNumberSequence.PurchaseOrderNumber = 100000;
                    await _purchaseOrderManagementDataService.CreatePurchaseOrderNumberSequence(purchaseOrderNumberSequence);
                }
                else
                {
                    purchaseOrderNumberSequence.PurchaseOrderNumber = purchaseOrderNumberSequence.PurchaseOrderNumber + 1;
                    await _purchaseOrderManagementDataService.UpdatePurchaseOrderNumberSequence(purchaseOrderNumberSequence);
                }

                purchaseOrder.PurchaseOrderNumber   = purchaseOrderNumberSequence.PurchaseOrderNumber;
                purchaseOrder.AccountId             = purchaseOrderDataTransformation.AccountId;
                purchaseOrder.SupplierId            = purchaseOrderDataTransformation.SupplierId;
                purchaseOrder.PurchaseOrderStatusId = PurchaseOrderStatuses.Open;
                purchaseOrder.OrderTotal            = 0.0;

                await _purchaseOrderManagementDataService.CreatePurchaseOrder(purchaseOrder);

                //await _purchaseOrderManagementDataService.UpdateDatabase();

                _purchaseOrderManagementDataService.CommitTransaction();

                returnResponse.ReturnStatus = true;
            }
            catch (Exception ex)
            {
                _purchaseOrderManagementDataService.RollbackTransaction();
                returnResponse.ReturnStatus = false;
                returnResponse.ReturnMessage.Add(ex.Message);
            }
            finally
            {
                _purchaseOrderManagementDataService.CloseConnection();
            }

            purchaseOrderDataTransformation.PurchaseOrderId = purchaseOrder.PurchaseOrderId;

            returnResponse.Entity = purchaseOrderDataTransformation;

            return(returnResponse);
        }
        /// <summary>
        /// Create Purchase Order Number Sequence
        /// </summary>
        /// <param name="purchaseOrderNumberSequence"></param>
        /// <returns></returns>
        public async Task CreatePurchaseOrderNumberSequence(PurchaseOrderNumberSequence purchaseOrderNumberSequence)
        {
            DateTime dateCreated = DateTime.UtcNow;

            purchaseOrderNumberSequence.DateCreated = dateCreated;
            purchaseOrderNumberSequence.DateUpdated = dateCreated;

            await dbConnection.PurchaseOrderNumberSequences.AddAsync(purchaseOrderNumberSequence);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Get Purchase Order Number Sequence
        /// </summary>
        /// <param name="accountId"></param>
        /// <returns></returns>
        public async Task <PurchaseOrderNumberSequence> GetPurchaseOrderNumberSequence(int accountId)
        {
            string sqlStatement = "SELECT * FROM PurchaseOrderNumberSequences WITH (UPDLOCK) WHERE AccountId = @AccountId";

            DbParameter accountIdParameter = new SqlParameter("AccountId", accountId);

            PurchaseOrderNumberSequence purchaseOrderNumberSequence = await dbConnection.PurchaseOrderNumberSequences.FromSqlRaw(sqlStatement, accountIdParameter).FirstOrDefaultAsync();

            return(purchaseOrderNumberSequence);
        }