/// <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; })); }
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); } }