コード例 #1
0
        /// <summary>
        /// Void tax transaction
        /// </summary>
        /// <param name="voidTransactionModel">Request parameters to void a transaction</param>
        /// <param name="transactionCode">Transaction code</param>
        /// <returns>Transaction</returns>
        public TransactionModel VoidTax(VoidTransactionModel voidTransactionModel, string transactionCode)
        {
            return(HandleRequest(() =>
            {
                if (string.IsNullOrEmpty(_avalaraTaxSettings.CompanyCode) || _avalaraTaxSettings.CompanyCode.Equals(Guid.Empty.ToString()))
                {
                    throw new NopException("Company not selected");
                }

                //return result
                var transaction = ServiceClient.VoidTransaction(_avalaraTaxSettings.CompanyCode, transactionCode, null, null, voidTransactionModel)
                                  ?? throw new NopException("No response from the service");

                return transaction;
            }));
        }
コード例 #2
0
        protected virtual async Task SendOrderToAvaTax(CustomerOrder order, string companyCode, Address sourceAddress, AvaTaxClient avaTaxClient)
        {
            if (!order.IsCancelled)
            {
                var createOrAdjustTransactionModel = AbstractTypeFactory <AvaCreateOrAdjustTransactionModel> .TryCreateInstance();

                createOrAdjustTransactionModel.FromOrder(order, companyCode, sourceAddress);
                var transactionModel = await avaTaxClient.CreateOrAdjustTransactionAsync(string.Empty, createOrAdjustTransactionModel);
            }
            else
            {
                var voidTransactionModel = new VoidTransactionModel {
                    code = VoidReasonCode.DocVoided
                };
                var transactionModel = await avaTaxClient.VoidTransactionAsync(companyCode, order.Number, DocumentType.Any, voidTransactionModel);
            }
        }