public async Task <HSOrderCalculateResponse> CalculateOrder(HSOrderCalculatePayload orderCalculatePayload) { if (orderCalculatePayload.OrderWorksheet.Order.xp != null && orderCalculatePayload.OrderWorksheet.Order.xp.OrderType == OrderType.Quote) { // quote orders do not have tax cost associated with them return(new HSOrderCalculateResponse()); } else { var promotions = await _oc.Orders.ListAllPromotionsAsync(OrderDirection.All, orderCalculatePayload.OrderWorksheet.Order.ID); var promoCalculationTask = _discountDistribution.SetLineItemProportionalDiscount(orderCalculatePayload.OrderWorksheet, promotions); var taxCalculationTask = _taxCalculator.CalculateEstimateAsync(orderCalculatePayload.OrderWorksheet.Reserialize <OrderWorksheet>(), promotions); var taxCalculation = await taxCalculationTask; await promoCalculationTask; return(new HSOrderCalculateResponse { TaxTotal = taxCalculation.TotalTax, xp = new OrderCalculateResponseXp() { TaxCalculation = taxCalculation } }); } }
public async Task <ShipEstimateResponse> GetShippingRates([FromBody] ShipmentTestModel model) { var payload = new HSOrderCalculatePayload() { ConfigData = null, OrderWorksheet = new HSOrderWorksheet() { Order = model.Order, LineItems = model.LineItems } }; return(await _checkoutIntegrationCommand.GetRatesAsync(payload)); }
public async Task <HSOrderCalculateResponse> CalculateOrder(HSOrderCalculatePayload orderCalculatePayload) { if (orderCalculatePayload.OrderWorksheet.Order.xp != null && orderCalculatePayload.OrderWorksheet.Order.xp.OrderType == OrderType.Quote) { // quote orders do not have tax cost associated with them return(new HSOrderCalculateResponse()); } else { var totalTax = await _avalara.GetEstimateAsync(orderCalculatePayload.OrderWorksheet.Reserialize <OrderWorksheet>()); return(new HSOrderCalculateResponse { TaxTotal = totalTax.totalTax ?? 0, xp = new OrderCalculateResponseXp() { TaxResponse = totalTax } }); } }
public async Task <ShipEstimateResponse> GetRatesAsync(HSOrderCalculatePayload orderCalculatePayload) { return(await this.GetRatesAsync(orderCalculatePayload.OrderWorksheet, orderCalculatePayload.ConfigData)); }
public async Task <OrderSubmitResponse> HandleOrderApproved([FromBody] HSOrderCalculatePayload payload) { var response = await _postSubmitCommand.HandleBuyerOrderSubmit(payload.OrderWorksheet); return(response); }
public async Task <OrderCalculateResponse> CalculateOrder([FromBody] HSOrderCalculatePayload orderCalculatePayload) { var orderCalculationResponse = await _checkoutIntegrationCommand.CalculateOrder(orderCalculatePayload); return(orderCalculationResponse); }
public async Task <ShipEstimateResponse> GetShippingRates([FromBody] HSOrderCalculatePayload orderCalculatePayload) { return(await _checkoutIntegrationCommand.GetRatesAsync(orderCalculatePayload)); }