public IntershopWebService.TotalDetails OrderTotalAmountDetails(string customerID, List <IntershopWebService.IshOrderLine> orderLines, string IshBasketID, string company) { MessageLogger.info(string.Format("OrderTotalAmountDetails(company={0}, customerID={1})", (object)company, (object)customerID)); Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); Axapta ax = this.axLogon(company); ax.Refresh(); try { AxaptaContainer axaptaContainer1 = ax.CreateAxaptaContainer(); foreach (IntershopWebService.IshOrderLine orderLine in orderLines) { IntershopWebService.IshOrderLine productIn = orderLine; string str = string.Empty; productIn.size = this.normalizeXmlString(productIn.size); productIn.color = this.normalizeXmlString(productIn.color); List <IntershopWebService.SizeStock> itemDims = this.getItemDims(productIn.ItemID, company); if (itemDims.Count > 0 && (!string.IsNullOrEmpty(productIn.size) || !string.IsNullOrEmpty(productIn.color))) { if (itemDims.FindIndex((Predicate <IntershopWebService.SizeStock>)(f => f.size == productIn.size)) >= 0) { str = productIn.size; } if (itemDims.FindIndex((Predicate <IntershopWebService.SizeStock>)(f => f.color == productIn.color)) >= 0) { str = productIn.color; } } AxaptaContainer axaptaContainer2 = ax.CreateAxaptaContainer(); axaptaContainer2.Add((object)productIn.ItemID); axaptaContainer2.Add((object)productIn.Qty); axaptaContainer2.Add((object)productIn.SalesUnit); axaptaContainer2.Add((object)str); axaptaContainer1.Add((object)axaptaContainer2); } AxaptaContainer totalContainer = (AxaptaContainer)ax.CallStaticClassMethod("BTX_ISHItemDescriptionProxy", "CalcTotalAmountDetails", (object)customerID, (object)axaptaContainer1, (object)IshBasketID); stopwatch.Stop(); MessageLogger.info(string.Format("OrderTotalAmount() -> {0} ms", (object)stopwatch.ElapsedMilliseconds)); return(this.extractTotalDetails(ax, totalContainer)); } catch (Exception ex) { MessageLogger.info(string.Format("OrderTotalAmount() -> error: {0}", (object)ex.Message)); return((IntershopWebService.TotalDetails)null); } finally { ax.Logoff(); } }
private IntershopWebService.TotalDetails extractTotalDetails(Axapta ax, AxaptaContainer totalContainer) { IEnumerator enumerator = totalContainer.GetEnumerator(); IntershopWebService.TotalDetails totalDetails = new IntershopWebService.TotalDetails(); int num = 0; while (enumerator.MoveNext()) { switch (num++) { case 0: totalDetails.IshBasketID = Convert.ToString(enumerator.Current); break; case 1: totalDetails.AxBasketID = Convert.ToString(enumerator.Current); break; case 2: totalDetails.TotalAmount = Math.Round(Convert.ToDouble(enumerator.Current), 2); break; case 3: totalDetails.Currency = Convert.ToString(enumerator.Current); break; case 4: totalDetails.TotalNetAmount = Math.Round(Convert.ToDouble(enumerator.Current), 2); break; case 5: totalDetails.VatTotal = Math.Round(Convert.ToDouble(enumerator.Current), 2); break; case 6: totalDetails.MiscCharges = this.ExtractMiscChargesTotal(ax, (AxaptaContainer)enumerator.Current); break; case 7: totalDetails.Discounts = this.ExtractDiscountsTotal(ax, (AxaptaContainer)enumerator.Current); break; case 8: totalDetails.OrderLines = this.ExtractOrderLinesTotal(ax, (AxaptaContainer)enumerator.Current); break; } } return(totalDetails); }
private IntershopWebService.Discount ExtractDiscountsTotal(Axapta ax, AxaptaContainer discCont) { IntershopWebService.Discount discount = new IntershopWebService.Discount(); IEnumerator enumerator = discCont.GetEnumerator(); int num = 0; while (enumerator.MoveNext()) { switch (num++) { case 0: discount.EndDiscAmount = Math.Round(Convert.ToDouble(enumerator.Current), 2); break; case 2: discount.CashDisc = Math.Round(Convert.ToDouble(enumerator.Current), 2); break; } } return(discount); }
private void ExtractPriceValues(AxaptaContainer priceData, out double salesPrice, out string priceTypeStr) { IEnumerator enumerator = priceData.GetEnumerator(); salesPrice = 0.0; priceTypeStr = ""; int num = 0; while (enumerator.MoveNext()) { switch (num++) { case 0: salesPrice = Math.Round(Convert.ToDouble(enumerator.Current), 2); break; case 3: priceTypeStr = (int)enumerator.Current == 2 ? "List" : "Custom"; break; } } }
private List <IntershopWebService.MiscCharge> ExtractMiscChargesTotal(Axapta ax, AxaptaContainer miscChargeCont) { List <IntershopWebService.MiscCharge> miscChargeList = new List <IntershopWebService.MiscCharge>(); IEnumerator enumerator1 = miscChargeCont.GetEnumerator(); while (enumerator1.MoveNext()) { IntershopWebService.MiscCharge miscCharge = new IntershopWebService.MiscCharge(); IEnumerator enumerator2 = ((AxaptaContainer)enumerator1.Current).GetEnumerator(); int num = 0; while (enumerator2.MoveNext()) { switch (num++) { case 0: miscCharge.code = Convert.ToString(enumerator2.Current); break; case 1: miscCharge.description = Convert.ToString(enumerator2.Current); break; case 2: miscCharge.value = Math.Round(Convert.ToDouble(enumerator2.Current), 2); break; case 3: miscCharge.currency = Convert.ToString(enumerator2.Current); break; } } if (num > 0) { miscChargeList.Add(miscCharge); } } return(miscChargeList); }
private List <IntershopWebService.TotalDetailsLine> ExtractOrderLinesTotal(Axapta ax, AxaptaContainer orderLineCont) { List <IntershopWebService.TotalDetailsLine> totalDetailsLineList = new List <IntershopWebService.TotalDetailsLine>(); IEnumerator enumerator1 = orderLineCont.GetEnumerator(); while (enumerator1.MoveNext()) { IntershopWebService.TotalDetailsLine totalDetailsLine = new IntershopWebService.TotalDetailsLine(); IEnumerator enumerator2 = ((AxaptaContainer)enumerator1.Current).GetEnumerator(); int num = 0; while (enumerator2.MoveNext()) { switch (num++) { case 0: totalDetailsLine.ItemID = Convert.ToString(enumerator2.Current); break; case 1: totalDetailsLine.Qty = Math.Round(Convert.ToDouble(enumerator2.Current), 2); break; case 2: totalDetailsLine.SalesUnit = Convert.ToString(enumerator2.Current); break; case 3: totalDetailsLine.UnitPrice = Math.Round(Convert.ToDouble(enumerator2.Current), 2); break; case 4: totalDetailsLine.LineNetAmount = Math.Round(Convert.ToDouble(enumerator2.Current), 2); break; case 5: totalDetailsLine.Discounts = this.ExtractDiscountsTotalLine(ax, (AxaptaContainer)enumerator2.Current); break; case 6: totalDetailsLine.MiscCharges = this.ExtractMiscChargesTotal(ax, (AxaptaContainer)enumerator2.Current); break; } } totalDetailsLineList.Add(totalDetailsLine); } return(totalDetailsLineList); }