Beispiel #1
0
        private LSDecimal Calculate_PointOfSale(Basket basket, Dictionary <string, string> existingTransactions)
        {
            WebTrace.Write("CertiTAX: Begin Calculate POS");
            CertiTAX.Order taxOrder = new CertiTAX.Order();
            //SET THE TAXORDER ADDRESS
            BuildTaxOrderAddress(taxOrder, StoreDataSource.Load().DefaultWarehouse);
            //BUILD THE TAXORDER OBJECT
            BuildTaxOrder(taxOrder, basket, 0, existingTransactions);
            taxOrder.Nexus = "POS";
            //EXECUTE THE TRANSACTION
            CertiTAX.TaxTransaction taxTransaction = null;
            try
            {
                taxTransaction = (new CertiTAX.CertiCalc()).Calculate(taxOrder);
            }
            catch (Exception ex)
            {
                WebTrace.Write("CertiTax could not calculate tax.  The error was: " + ex.Message);
                if (!this.IgnoreFailedConfirm)
                {
                    throw;
                }
            }
            //PARSE THE RESULTS
            LSDecimal totalTax = ParseTaxTransaction(taxTransaction, basket, 0);

            WebTrace.Write("CertiTAX: End Calculate POS");
            return(totalTax);
        }
Beispiel #2
0
        private LSDecimal Calculate_PointOfDelivery(Basket basket, Dictionary <string, string> existingTransactions)
        {
            WebTrace.Write("CertiTAX: Begin Calculate POD");
            LSDecimal totalTax = 0;

            foreach (BasketShipment shipment in basket.Shipments)
            {
                CertiTAX.Order taxOrder = new CertiTAX.Order();
                //SET THE TAXORDER ADDRESS
                BuildTaxOrderAddress(taxOrder, shipment.Address);
                //BUILD THE TAXORDER OBJECT
                BuildTaxOrder(taxOrder, basket, shipment.BasketShipmentId, existingTransactions);
                taxOrder.Nexus = "POD";
                //EXECUTE THE TRANSACTION
                CertiTAX.TaxTransaction taxTransaction = null;
                try
                {
                    taxTransaction = (new CertiTAX.CertiCalc()).Calculate(taxOrder);
                }
                catch (Exception ex)
                {
                    WebTrace.Write("CertiTax could not calculate tax.  The error was: " + ex.Message);
                    if (!this.IgnoreFailedConfirm)
                    {
                        throw;
                    }
                }
                //PARSE THE RESULTS
                totalTax += ParseTaxTransaction(taxTransaction, basket, shipment.BasketShipmentId);
            }
            WebTrace.Write("CertiTAX: End Calculate POD");
            //RETURN THE TOTAL TAX
            return(totalTax);
        }
Beispiel #3
0
        private LSDecimal ParseTaxTransaction(CertiTAX.TaxTransaction taxTransaction, Basket basket, int shipmentId)
        {
            if (taxTransaction == null)
            {
                return(0);
            }
            LSDecimal totalTaxes = 0;

            if (this.ReportBreakdown)
            {
                if (taxTransaction.CityTax > 0)
                {
                    totalTaxes += taxTransaction.CityTax;
                    CreateTaxLineItem(basket, shipmentId, taxTransaction.CityTaxAuthority, taxTransaction.CertiTAXTransactionId, taxTransaction.CityTax);
                }
                if (taxTransaction.CountyTax > 0)
                {
                    totalTaxes += taxTransaction.CountyTax;
                    CreateTaxLineItem(basket, shipmentId, taxTransaction.CountyTaxAuthority, taxTransaction.CertiTAXTransactionId, taxTransaction.CountyTax);
                }
                if (taxTransaction.LocalTax > 0)
                {
                    totalTaxes += taxTransaction.LocalTax;
                    CreateTaxLineItem(basket, shipmentId, taxTransaction.LocalTaxAuthority, taxTransaction.CertiTAXTransactionId, taxTransaction.LocalTax);
                }
                if (taxTransaction.StateTax > 0)
                {
                    totalTaxes += taxTransaction.StateTax;
                    CreateTaxLineItem(basket, shipmentId, taxTransaction.StateTaxAuthority, taxTransaction.CertiTAXTransactionId, taxTransaction.StateTax);
                }
                if (taxTransaction.NationalTax > 0)
                {
                    totalTaxes += taxTransaction.NationalTax;
                    CreateTaxLineItem(basket, shipmentId, taxTransaction.NationalTaxAuthority, taxTransaction.CertiTAXTransactionId, taxTransaction.NationalTax);
                }
                if (taxTransaction.OtherTax > 0)
                {
                    totalTaxes += taxTransaction.OtherTax;
                    CreateTaxLineItem(basket, shipmentId, taxTransaction.OtherTaxAuthority, taxTransaction.CertiTAXTransactionId, taxTransaction.OtherTax);
                }
            }
            else
            {
                totalTaxes += taxTransaction.CityTax;
                totalTaxes += taxTransaction.CountyTax;
                totalTaxes += taxTransaction.LocalTax;
                totalTaxes += taxTransaction.StateTax;
                totalTaxes += taxTransaction.NationalTax;
                totalTaxes += taxTransaction.OtherTax;
                CreateTaxLineItem(basket, shipmentId, "Tax", taxTransaction.CertiTAXTransactionId, totalTaxes);
            }
            return(totalTaxes);
        }