private CalcResult SalesOrderTax(CalcRequestContext context) { var repository = new BqlRepository(new PXGraph(), _logger); var transfer = repository.RetrieveTaxTransfer(context.OrderType, context.OrderNbr); var result = new CalcResult(); result.AddTaxLine("Sales Order Tax", 0m, transfer.NetTaxableAmount, transfer.NetTotalTax); return(result); }
private CalcResult InvoiceFinalTax(TaxTransfer.v2.TaxTransfer transfer, OtherInvoiceTaxContext otherInvoiceTaxes) { var taxableTotal = transfer.NetTaxableAmount - otherInvoiceTaxes.TotalTaxableAmount; var taxTotal = transfer.NetTotalTax - otherInvoiceTaxes.TotalTaxAmount; // *** Add Payment Discrepancy // var result = new CalcResult(); result.AddTaxLine("Final Invoice Tax", 0m, taxableTotal, taxTotal); return(result); }
// Recreate Tax Calculation using the Tax Transfer // private CalcResult InvoiceSplitShipmentTax(GetTaxRequest request, TaxTransfer.v2.TaxTransfer snapshot) { var result = new CalcResult(); foreach (var lineItem in request.CartItems) { // NULL ItemCode signals that this line item is freight // if (lineItem.ItemCode == null) { if (lineItem.Amount > 0.00m) { result.AddTaxLine(lineItem.Description, 0m, lineItem.Amount, snapshot.NetFreightTax); } continue; } var correctedItemCode = lineItem.ItemCode.Trim(); if (snapshot.LineItems.Any(x => x.ItemID == correctedItemCode) == false) { result.AddError($"Unable to locate Inventory ID {correctedItemCode} in Tax Transfer"); continue; } // Compute Line Item Tax using Tax Lines from Transfer // var lineItemTaxCalc = snapshot.CalculateTax(correctedItemCode, (decimal)lineItem.Amount, (int)lineItem.Quantity); result.AddTaxLine(lineItemTaxCalc.Name, 0m, lineItemTaxCalc.TaxableAmount, lineItemTaxCalc.TaxAmount); } return(result); }