Ejemplo n.º 1
0
        protected override void HandleExecute()
        {
            // You can do this,
            //
            //var salesOrderRef = Get(e => e.ins_salesorderid);
            //if (salesOrderRef == null) return;

            //var lineTotalPriceSum = GetLineTotalPriceSum(salesOrderRef.Id);
            //var salesOrder = new ins_salesorder
            //{
            //    Id = salesOrderRef.Id
            //};
            //salesOrder.Set(e => e.ins_totalprice, lineTotalPriceSum);
            //Service.Update(salesOrder);
            //
            // or:
            var src = Wrapper.Entity;

            if (src.ins_salesorderid == null)
            {
                return;
            }

            var lineTotalPriceSum = GetLineTotalPriceSum(src.ins_salesorderid.Id);
            var salesOrder        = new ins_salesorder
            {
                Id             = src.ins_salesorderid.Id,
                ins_totalprice = new Money(lineTotalPriceSum)
            };

            Service.Update(salesOrder);
        }
Ejemplo n.º 2
0
        public void Can_update_sales_order_on_delete()
        {
            var salesOrder = new ins_salesorder
            {
                Id = Guid.NewGuid()
            };

            var line = new ins_salesorderline
            {
                Id = Guid.NewGuid()
            };

            line.Set(e => e.ins_salesorderid, salesOrder.ToEntityReference());
            line.Set(e => e.ins_totalprice, 1000m);

            var unrelatedLine = new ins_salesorderline
            {
                Id = Guid.NewGuid()
            };

            unrelatedLine.Set(e => e.ins_salesorderid,
                              new EntityReference(ins_salesorder.EntityLogicalName, Guid.NewGuid()));
            unrelatedLine.Set(e => e.ins_totalprice, 7000m);

            var id      = Guid.NewGuid();
            var initial = new ins_salesorderline
            {
                Id = id
            };

            initial.Set(e => e.ins_salesorderid, salesOrder.ToEntityReference());
            initial.Set(e => e.ins_totalprice, 500m);

            var target = new ins_salesorderline
            {
                Id = id
            };

            var testEvent = new TestEvent <ins_salesorderline>
            {
                Plugin =
                {
                    Configure = PreSalesOrderLine.ConfigurePlugin
                },
                Db = { initial, line, unrelatedLine, salesOrder }
            };

            testEvent.ForDelete(target.ToEntityReference());

            var context = testEvent.CreatePluginContext();

            new UpdateSalesOrder(context).Execute();

            var updateSalesOrder = testEvent.FakedContext
                                   .CreateQuery <ins_salesorder>()
                                   .First();

            Assert.Equal(1000m, updateSalesOrder.Get(e => e.ins_totalprice).Value);
        }
Ejemplo n.º 3
0
        public void Can_update_sales_order_on_post()
        {
            var salesOrder = new ins_salesorder
            {
                Id = Guid.NewGuid()
            };

            var line = new ins_salesorderline
            {
                Id = Guid.NewGuid(),
                ins_salesorderid = salesOrder.ToEntityReference(),
                ins_totalprice   = new Money(1000m)
            };

            var unrelatedLine = new ins_salesorderline
            {
                Id = Guid.NewGuid(),
                ins_salesorderid = new EntityReference(ins_salesorder.EntityLogicalName, Guid.NewGuid()),
                ins_totalprice   = new Money(7000m)
            };

            var id      = Guid.NewGuid();
            var initial = new ins_salesorderline
            {
                Id = id,
                ins_salesorderid = salesOrder.ToEntityReference(),
                ins_totalprice   = new Money(500m)
            };

            var target = new ins_salesorderline
            {
                Id             = id,
                ins_totalprice = new Money(500m)
            };

            var testEvent = new TestEvent <ins_salesorderline>
            {
                Plugin =
                {
                    Configure = PostSalesOrderLine.ConfigurePlugin
                },
                Db = { initial, line, unrelatedLine, salesOrder }
            };

            testEvent.ForUpdate(target, 40);

            var context = testEvent.CreatePluginContext();

            new UpdateSalesOrder(context).Execute();

            var updateSalesOrder = testEvent.FakedContext
                                   .CreateQuery <ins_salesorder>()
                                   .First();

            Assert.Equal(1500m, updateSalesOrder.ins_totalprice.Value);
        }
Ejemplo n.º 4
0
        protected override void HandleExecute()
        {
            var salesOrderRef = Get(e => e.ins_salesorderid);

            if (salesOrderRef == null)
            {
                return;
            }

            var lineTotalPriceSum = GetLineTotalPriceSum(salesOrderRef.Id);
            var salesOrder        = new ins_salesorder
            {
                Id = salesOrderRef.Id
            };

            salesOrder.Set(e => e.ins_totalprice, lineTotalPriceSum);
            Service.Update(salesOrder);
        }