Esempio n. 1
0
        protected override void AppsSecure(Security config)
        {
            base.AppsSecure(config);

            var full = new[] { Operations.Read, Operations.Write, Operations.Execute };

            config.GrantAdministrator(this.ObjectType, full);

            var created = new SalesOrderItemObjectStates(Session).Created;
            var partiallyShipped = new SalesOrderItemObjectStates(Session).PartiallyShipped;
            var shipped = new SalesOrderItemObjectStates(Session).Shipped;
            var inProcess = new SalesOrderItemObjectStates(Session).InProcess;
            var cancelled = new SalesOrderItemObjectStates(Session).Cancelled;
            var rejected = new SalesOrderItemObjectStates(Session).Rejected;
            var completed = new SalesOrderItemObjectStates(Session).Completed;
            var finished = new SalesOrderItemObjectStates(Session).Finished;

            var product = Meta.Product;
            config.Deny(this.ObjectType, shipped, product);
            config.Deny(this.ObjectType, partiallyShipped, product);

            var cancel = Meta.Cancel;
            var reject = Meta.Reject;
            var delete = Meta.Delete;

            config.Deny(this.ObjectType, created, cancel, reject);
            config.Deny(this.ObjectType, partiallyShipped, delete, cancel, reject);
            config.Deny(this.ObjectType, shipped, delete, cancel, reject);
            config.Deny(this.ObjectType, inProcess, delete);

            config.Deny(this.ObjectType, cancelled, Operation.Execute, Operations.Write);
            config.Deny(this.ObjectType, rejected, Operation.Execute, Operations.Write);
            config.Deny(this.ObjectType, completed, Operation.Execute, Operations.Write);
            config.Deny(this.ObjectType, finished, Operation.Execute, Operations.Write);
        }
Esempio n. 2
0
        public void AppsOnDeriveCurrentPaymentStatus(IDerivation derivation)
        {
            SalesOrderItemObjectState state = null;
            foreach (OrderShipment orderShipment in this.OrderShipmentsWhereSalesOrderItem)
            {
                foreach (SalesInvoiceItem invoiceItem in orderShipment.ShipmentItem.InvoiceItems)
                {
                    state = null;
                    if (invoiceItem.SalesInvoiceWhereSalesInvoiceItem.CurrentObjectState.Equals(new SalesInvoiceObjectStates(this.Strategy.Session).Paid))
                    {
                        state = new SalesOrderItemObjectStates(this.Strategy.Session).Paid;
                    }

                    if (invoiceItem.SalesInvoiceWhereSalesInvoiceItem.CurrentObjectState.Equals(new SalesInvoiceObjectStates(this.Strategy.Session).PartiallyPaid))
                    {
                        state = new SalesOrderItemObjectStates(this.Strategy.Session).PartiallyPaid;
                    }
                }
            }

            if (state != null)
            {
                if (!this.ExistCurrentPaymentStatus || !this.CurrentPaymentStatus.SalesOrderItemObjectState.Equals(state))
                {
                    this.CurrentPaymentStatus = new SalesOrderItemStatusBuilder(this.Strategy.Session).WithSalesOrderItemObjectState(state).Build();
                    this.AddPaymentStatus(this.CurrentPaymentStatus);
                }
            }

            this.AppsOnDeriveCurrentOrderStatus(derivation);
        }