Example #1
0
        public AvaTaxResult CancelTax(string companyCode, string docCode, DocumentType docType)
        {
            var result = new AvaTaxResult();

            var ctr = new CancelTaxRequest
            {
                CompanyCode = companyCode,
                DocCode     = docCode,
                DocType     = ConvertDocType(docType),
                CancelCode  = CancelCode.DocDeleted
            };

            var svc = GetTaxServiceProxy();

            var ctres = svc.CancelTax(ctr);

            if (ctres.ResultCode != avt.SeverityLevel.Success)
            {
                result.Success = false;
                result.Messages.Add("CancelTax Failed");
                ApplyMessagesToResult(result, ctres.Messages);
            }
            else
            {
                result.Success = true;
            }

            return(result);
        }
Example #2
0
        public async Task <CancelTaxResult> CancelTax(CancelTaxRequest cancelTaxRequest)
        {
            // http://developer.avalara.com/api-docs/designing-your-integration/canceltax
            // DocCode/CompanyCode is the recommended transaction identification method, DocID not recommended.

            return(await _taxSvc.CancelTax(cancelTaxRequest));
        }
        public async Task CancelTaxTest()
        {
            // Header Level Elements
            // Required Header Level Elements
            var    configSection = ConfigurationHelper.GetConfiguration();
            string accountNumber = configSection["accountNumber"];
            string licenseKey    = configSection["licenseKey"];
            string serviceUrl    = configSection["serviceUrl"];

            ITaxService taxSvc = new TaxService(accountNumber, licenseKey, serviceUrl);

            CancelTaxRequest cancelTaxRequest = new CancelTaxRequest
            {
                CompanyCode = "APITrialCompany",
                DocType     = DocType.SalesInvoice,
                DocCode     = "INV001",
                CancelCode  = CancelCode.DocVoided
            };

            // Required Request Parameters

            CancelTaxResult cancelTaxResult = await taxSvc.CancelTax(cancelTaxRequest);

            // Print results
            Console.WriteLine("CancelTaxTest Result: {0}", cancelTaxResult.ResultCode);
            if (!cancelTaxResult.ResultCode.Equals(SeverityLevel.Success))
            {
                foreach (Message message in cancelTaxResult.Messages)
                {
                    Console.WriteLine(message.Summary);
                }
            }
        }
Example #4
0
        public static CancelTaxResult Execute(bool inProduction, string strOCN, out string summary)
        {
            summary = "";
            TaxServiceWrapper taxSvcWrapper = new TaxServiceWrapper();
            TaxSvc            taxSvc        = taxSvcWrapper.GetTaxSvcInstance(inProduction);

            CancelTaxRequest cancelTaxRequest = new CancelTaxRequest();

            // Required Request Parameters
            cancelTaxRequest.CompanyCode = Properties.Settings.Default.CompanyCode;
            cancelTaxRequest.DocType     = DocumentType.SalesInvoice;
            cancelTaxRequest.DocCode     = strOCN;
            cancelTaxRequest.CancelCode  = CancelCode.DocVoided;

            CancelTaxResult cancelTaxResult = taxSvc.CancelTax(cancelTaxRequest);

            if (!cancelTaxResult.ResultCode.Equals(SeverityLevel.Success))
            {
                foreach (Message message in cancelTaxResult.Messages)
                {
                    summary = message.Summary;
                }
            }

            return(cancelTaxResult);
        }
Example #5
0
        // This calls CancelTax to void a transaction specified in taxreq
        public async Task <CancelTaxResult> CancelTax(CancelTaxRequest cancelTaxRequest)
        {
            // Convert the request to XML
            XmlSerializerNamespaces namesp = new XmlSerializerNamespaces();

            namesp.Add(string.Empty, string.Empty);
            XmlWriterSettings settings = new XmlWriterSettings {
                OmitXmlDeclaration = true
            };
            XmlSerializer x  = new XmlSerializer(cancelTaxRequest.GetType());
            StringBuilder sb = new StringBuilder();

            x.Serialize(XmlWriter.Create(sb, settings), cancelTaxRequest, namesp);
            XmlDocument doc = new XmlDocument();

            doc.LoadXml(sb.ToString());

            // Call the service
            Uri address = new Uri(_svcUrl + "tax/cancel");
            var request = HttpHelper.CreateRequest(address, _accountNumber, _license);

            request.Method      = "POST";
            request.ContentType = "text/xml";
            //request.ContentLength = sb.Length;
            Stream newStream = await request.GetRequestStreamAsync();

            newStream.Write(Encoding.ASCII.GetBytes(sb.ToString()), 0, sb.Length);
            CancelTaxResponse cancelResponse = new CancelTaxResponse();

            try
            {
                WebResponse response = await request.GetResponseAsync();

                XmlSerializer r = new XmlSerializer(cancelResponse.GetType());
                cancelResponse = (CancelTaxResponse)r.Deserialize(response.GetResponseStream());
            }
            catch (WebException ex)
            {
                XmlSerializer r = new XmlSerializer(cancelResponse.GetType());
                cancelResponse = (CancelTaxResponse)r.Deserialize(((HttpWebResponse)ex.Response).GetResponseStream());

                // If the error is returned at the cancelResponse level, translate it to the cancelResult.
                if (cancelResponse.ResultCode.Equals(SeverityLevel.Error))
                {
                    cancelResponse.CancelTaxResult = new CancelTaxResult
                    {
                        ResultCode = cancelResponse.ResultCode,
                        Messages   = cancelResponse.Messages
                    };
                }
            }

            return(cancelResponse.CancelTaxResult);
        }
        private void buttonCancelTax_Click(object sender, EventArgs e)
        {
            try
            {
                //##############################################################################
                //### 1st WE CREATE THE REQUEST OBJECT FOR DOCUMENT THAT SHOULD BE CANCELLED ###
                //##############################################################################
                CancelTaxRequest cancelTaxRequest = new CancelTaxRequest();

                //###########################################################
                //### 2nd WE LOAD THE REQUEST-LEVEL DATA INTO THE REQUEST ###
                //###########################################################
                cancelTaxRequest.CancelCode = (CancelCode)comboCancelCode.SelectedItem;

                cancelTaxRequest.CompanyCode = textCompanyCode.Text;
                cancelTaxRequest.DocType     = (DocumentType)comboDocType.SelectedItem;
                cancelTaxRequest.DocCode     = textDocCode.Text;

                //##############################################################################################
                //### 3rd WE INVOKE THE CANCELTAX() METHOD OF THE TAXSVC OBJECT AND GET BACK A RESULT OBJECT ###
                //##############################################################################################
                Util.PreMethodCall(this, lblStatus);

                TaxSvc taxSvc = new TaxSvc();
                ((formMain)this.Owner).SetConfig(taxSvc);                              //set the Url and Security configuration

                _cancelTaxResult = taxSvc.CancelTax(cancelTaxRequest);

                Util.PostMethodCall(this, lblStatus);

                //#####################################
                //### 4th WE READ THE RESULT OBJECT ###
                //#####################################
                lblResultCode.Text = _cancelTaxResult.ResultCode.ToString();
                Util.SetMessageLabelText(lblResultMsg, _cancelTaxResult);

                cancelTaxRequest = null;
                taxSvc           = null;
            } catch (Exception ex)
            {
                Util.ShowError(ex);
            } finally
            {
                Util.PostMethodCall(this, lblStatus);
            }
        }
Example #7
0
        public static CancelTaxRequest ToAvaTaxCancelRequest(this VirtoCommerce.Domain.Order.Model.CustomerOrder order, string companyCode, CancelCode cancelCode)
        {
            if (order.Addresses != null && order.Addresses.Any() && order.Items != null && order.Items.Any())
            {
                // Document Level Elements
                // Required Request Parameters
                var cancelTaxRequest = new CancelTaxRequest
                {
                    CompanyCode = companyCode,
                    DocCode     = order.Number,
                    DocType     = DocType.SalesInvoice,
                    CancelCode  = cancelCode
                };

                return(cancelTaxRequest);
            }

            return(null);
        }
Example #8
0
        private void VoidRefunds(Order order)
        {
            TaxSvc taxService = CreateTaxService();
            int    numberOfRefundTransactions = (order.ChildOrderNumbers ?? String.Empty).Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Length;

            for (int i = 1; i <= numberOfRefundTransactions; i++)
            {
                CancelTaxRequest cancelTaxRequest = new CancelTaxRequest
                {
                    CancelCode  = CancelCode.DocVoided,
                    CompanyCode = CompanyCode,
                    DocCode     = order.OrderNumber.ToString() + "." + i.ToString(),
                    DocType     = DocumentType.ReturnInvoice,
                };

                var cancelTaxResult = taxService.CancelTax(cancelTaxRequest);
                foreach (Message message in cancelTaxResult.Messages)
                {
                    LogErrorMessage(message);
                }
            }
        }
        public static void Test()
        {
            string accountNumber = ConfigurationManager.AppSettings["AvaTax:AccountNumber"];
            string licenseKey = ConfigurationManager.AppSettings["AvaTax:LicenseKey"];
            string serviceURL = ConfigurationManager.AppSettings["AvaTax:ServiceUrl"];

            TaxSvc taxSvc = new TaxSvc();

            // Header Level Parameters
            // Required Header Parameters
            taxSvc.Configuration.Security.Account = accountNumber;
            taxSvc.Configuration.Security.License = licenseKey;
            taxSvc.Configuration.Url = serviceURL;
            taxSvc.Configuration.ViaUrl = serviceURL;
            taxSvc.Profile.Client = "AvaTaxSample";

            // Optional Header Parameters
            taxSvc.Profile.Name = "Development";

            CancelTaxRequest cancelTaxRequest = new CancelTaxRequest();

            // Required Request Parameters
            cancelTaxRequest.CompanyCode = "APITrialCompany";
            cancelTaxRequest.DocType = DocumentType.SalesInvoice;
            cancelTaxRequest.DocCode = "INV001";
            cancelTaxRequest.CancelCode = CancelCode.DocVoided;

            CancelTaxResult cancelTaxResult = taxSvc.CancelTax(cancelTaxRequest);

            Console.WriteLine("CancelTaxTest Result: " + cancelTaxResult.ResultCode.ToString());
            if (!cancelTaxResult.ResultCode.Equals(SeverityLevel.Success))
            {
                foreach (Message message in cancelTaxResult.Messages)
                {
                    Console.WriteLine(message.Summary);
                }
            }
        }
Example #10
0
        public void VoidTax(Order order)
        {
            if (!Enabled)
            {
                throw new InvalidOperationException("AvalaraInactiveException");
            }

            CancelTaxRequest cancelTaxRequest = new CancelTaxRequest
            {
                CancelCode  = CancelCode.DocVoided,
                CompanyCode = CompanyCode,
                DocType     = DocumentType.SalesInvoice,
                DocCode     = order.OrderNumber.ToString(),
            };

            TaxSvc          taxService      = CreateTaxService();
            CancelTaxResult cancelTaxResult = taxService.CancelTax(cancelTaxRequest);

            foreach (Message message in cancelTaxResult.Messages)
            {
                LogErrorMessage(message);
            }
        }