private static ReductionAndSurchargeListLineItemDetailsType GetReductionDetails(SRC.ReductionAndSurchargeListLineItemDetailsType srcRed) { if (srcRed.Items == null) { return(null); } ReductionAndSurchargeListLineItemDetailsType lineRed = new ReductionAndSurchargeListLineItemDetailsType(); //lineRed.Items = new object[srcRed.Items.Length]; foreach (var item1 in srcRed.Items) { if (item1 is SRC.ReductionAndSurchargeBaseType) { SRC.ReductionAndSurchargeBaseType item = item1 as SRC.ReductionAndSurchargeBaseType; ReductionAndSurchargeBaseType redBase = new ReductionAndSurchargeBaseType { Amount = item.Amount, AmountSpecified = item.AmountSpecified, BaseAmount = item.BaseAmount, Percentage = item.Percentage, PercentageSpecified = item.PercentageSpecified }; lineRed.Items.Add(redBase); } } lineRed.ItemsElementName = new List <ItemsChoiceType>(); foreach ( SRC.ItemsChoiceType choiceType in srcRed.ItemsElementName) { lineRed.ItemsElementName.Add(choiceType.ConvertEnum <ItemsChoiceType>()); } return(lineRed); }
private static ReductionAndSurchargeListLineItemDetailsType GetReductionDetails(Model.ReductionAndSurchargeListLineItemDetailsType srcRed, out bool discountFlag) { discountFlag = false; if (srcRed == null) { return(null); } ReductionAndSurchargeListLineItemDetailsType lineRed = new ReductionAndSurchargeListLineItemDetailsType { Items = new object[srcRed.Items.Count] }; if (lineRed.Items.Count() == 0) { return(null); } discountFlag = true; int i = 0; foreach (var item1 in srcRed.Items) { if (item1 is Model.ReductionAndSurchargeBaseType) { Model.ReductionAndSurchargeBaseType item = item1 as Model.ReductionAndSurchargeBaseType; ReductionAndSurchargeBaseType redBase = new ReductionAndSurchargeBaseType { Amount = item.Amount, AmountSpecified = item.AmountSpecified, BaseAmount = item.BaseAmount, Comment = item.Comment, Percentage = item.Percentage, PercentageSpecified = item.PercentageSpecified }; lineRed.Items[i] = redBase; i++; } } lineRed.ItemsElementName = new ItemsChoiceType[srcRed.ItemsElementName.Count()]; i = 0; foreach ( Model.ItemsChoiceType choiceType in srcRed.ItemsElementName) { lineRed.ItemsElementName[i] = (choiceType.ConvertEnum <ItemsChoiceType>()); i++; } return(lineRed); }
/// <summary> /// Converts the Viewmodel DetailsViewModelList to Model ItemListType /// </summary> /// <param name="detailsList">The details list.</param> /// <param name="orderId">The order identifier.</param> /// <returns>List of ItemListType</returns> public static List <ItemListType> ConvertToItemList(BindingList <DetailsViewModel> detailsList, string orderId) { ItemListType itemList = new ItemListType { ListLineItem = new List <ListLineItemType>() }; int posNr = 1; foreach (DetailsViewModel details in detailsList) { ListLineItemType lineItem = new ListLineItemType { ArticleNumber = new List <ArticleNumberType>() { new ArticleNumberType() { Value = details.ArtikelNr } }, Description = new List <string>() { details.Bezeichnung }, PositionNumber = posNr.ToString() }; posNr++; lineItem.InvoiceRecipientsOrderReference.OrderID = orderId; lineItem.InvoiceRecipientsOrderReference.OrderPositionNumber = details.BestellBezug; lineItem.UnitPrice = new UnitPriceType() { Value = details.EinzelPreis }; TaxItemType taxItem = new TaxItemType() { TaxableAmount = details.NettoBetragZeile, TaxPercent = new TaxPercentType() { TaxCategoryCode = details.VatItem.Code, Value = details.VatItem.MwStSatz }, TaxAmount = (details.NettoBetragZeile * details.VatItem.MwStSatz / 100).FixedFraction(2) }; if (PlugInSettings.Default.VStBerechtigt) { taxItem.Comment = PlugInSettings.Default.VatDefaultValues .Where(p => p.Code == taxItem.TaxPercent.TaxCategoryCode && p.MwStSatz == taxItem.TaxPercent.Value) .FirstOrDefault().Beschreibung; } else { taxItem.Comment = PlugInSettings.Default.VStText; } lineItem.TaxItem = taxItem; lineItem.Quantity = new UnitType() { Unit = details.Einheit, Value = details.Menge }; if (details.Rabatt != 0) { ReductionAndSurchargeListLineItemDetailsType red = new ReductionAndSurchargeListLineItemDetailsType { ItemsElementName = new List <ItemsChoiceType>() { ItemsChoiceType.ReductionListLineItem }, Items = new List <object>() }; ReductionAndSurchargeBaseType redBase = new ReductionAndSurchargeBaseType { BaseAmount = details.NettoBasisBetrag, Percentage = details.Rabatt, PercentageSpecified = true }; red.Items.Add(redBase); lineItem.ReductionAndSurchargeListLineItemDetails = red; } lineItem.LineItemAmount = details.NettoBetragZeile; itemList.ListLineItem.Add(lineItem); } List <ItemListType> item = new List <ItemListType> { itemList }; return(item); }