예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        /// <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);
        }