Beispiel #1
0
        public Model(SalesOrder order)
        {
            var session = order.Strategy.Session;

            this.Order = new OrderModel(order);

            this.TakenBy = new TakenByModel((Organisation)order.TakenBy);
            this.BillTo  = new BillToModel(order);
            this.ShipTo  = new ShipToModel(order);

            this.OrderItems       = order.SalesOrderItems.Select(v => new OrderItemModel(v)).ToArray();
            this.OrderAdjustments = order.OrderAdjustments.Select(v => new OrderAdjustmentModel(v)).ToArray();

            var paymentTerm = new InvoiceTermTypes(session).PaymentNetDays;

            this.SalesTerms = order.SalesTerms.Where(v => !v.TermType.Equals(paymentTerm)).Select(v => new SalesTermModel(v)).ToArray();

            string TakenByCountry = null;

            if (order.TakenBy.PartyContactMechanisms?.FirstOrDefault(v => v.ContactPurposes.Any(p => Equals(p, new ContactMechanismPurposes(session).RegisteredOffice)))?.ContactMechanism is PostalAddress registeredOffice)
            {
                TakenByCountry = registeredOffice.Country.IsoCode;
            }

            if (TakenByCountry == "BE")
            {
                this.VatClause = order.DerivedVatClause?.LocalisedClauses.FirstOrDefault(v => v.Locale.Equals(new Locales(session).DutchBelgium))?.Text;

                if (this.VatClause != null && Equals(order.DerivedVatClause, new VatClauses(session).BeArt14Par2))
                {
                    var shipToCountry = order.ShipToAddress?.Country?.Name;
                    this.VatClause = this.VatClause.Replace("{shipToCountry}", shipToCountry);
                }
            }
        }
Beispiel #2
0
        public SalesTermModel(SalesTerm salesTerm)
        {
            if (salesTerm is IncoTerm)
            {
                this.Name = "INCOTERMS";
            }

            if (salesTerm is Payment)
            {
                this.Name = "PAYMENT";
            }

            if (salesTerm is OrderTerm)
            {
                this.Name = "ORDERTERMS";
            }

            this.Value = salesTerm.TermValue;

            var other = new InvoiceTermTypes(salesTerm.Strategy.Session).Other;

            if (salesTerm.ExistTermType && !salesTerm.TermType.Equals(other))
            {
                this.Value = salesTerm.TermType.Name + " " + this.Value;
            }
        }
Beispiel #3
0
        public Model(SalesInvoice invoice)
        {
            this.Invoice    = new InvoiceModel(invoice);
            this.BilledFrom = new BilledFromModel((Organisation)invoice.BilledFrom);
            this.BillTo     = new BillToModel(invoice);
            this.ShipTo     = new ShipToModel(invoice);

            this.InvoiceItems = invoice.SalesInvoiceItems.Select(v => new InvoiceItemModel(v)).ToArray();

            var paymentTerm = new InvoiceTermTypes(invoice.Strategy.Session).PaymentNetDays;

            this.SalesTerms = invoice.SalesTerms.Where(v => !v.TermType.Equals(paymentTerm)).Select(v => new SalesTermModel(v)).ToArray();
        }
Beispiel #4
0
        public Model(SalesOrder order)
        {
            this.Order = new OrderModel(order);

            this.TakenBy = new TakenByModel((Organisation)order.TakenBy);
            this.BillTo  = new BillToModel(order);
            this.ShipTo  = new ShipToModel(order);

            this.OrderItems = order.SalesOrderItems.Select(v => new OrderItemModel(v)).ToArray();

            var paymentTerm = new InvoiceTermTypes(order.Strategy.Session).PaymentNetDays;

            this.SalesTerms = order.SalesTerms.Where(v => !v.TermType.Equals(paymentTerm)).Select(v => new SalesTermModel(v)).ToArray();
        }