Ejemplo n.º 1
0
        private INewOrderCompoundItemStub AddSplittedCompoundItemInternal([NotNull] IEditSession editSession)
        {
            var order            = PluginContext.Operations.GetOrders().Last();
            var guest            = order.Guests.Last();
            var templateProducts = PluginContext.Operations.GetActiveProducts()
                                   .GroupBy(product => product.Template)
                                   .Last(group => group.Key != null && group.Count() >= 2);
            var template = templateProducts.Key;
            var size     = template.Scale != null?PluginContext.Operations.GetProductScaleSizes(template.Scale).First() : null;

            var compoundItem       = editSession.AddOrderCompoundItem(templateProducts.First(), order, guest, size: size);
            var primaryComponent   = editSession.AddPrimaryComponent(templateProducts.First(), order, compoundItem);
            var secondaryComponent = editSession.AddSecondaryComponent(templateProducts.Skip(1).First(), order, compoundItem);

            return(compoundItem);
        }
Ejemplo n.º 2
0
 private void DeleteActualPayments(IOrder order, IEditSession editSession)
 {
     if (order.Payments.Count == 0)
     {
         return;
     }
     foreach (var actualPayment in order.Payments)
     {
         if (actualPayment.IsExternal)
         {
             editSession.DeleteExternalPaymentItem(actualPayment, order);
         }
         else
         {
             editSession.DeletePaymentItem(actualPayment, order);
         }
     }
 }
Ejemplo n.º 3
0
        private void AddPayments(IOrder order, IEditSession editSession, params Payment[] payments)
        {
            var unpaid = order.ResultSum;

            foreach (var payment in payments)
            {
                unpaid -= payment.Amount;
                editSession.AddExternalPaymentItem(
                    payment.Amount,
                    payment.IsProcessed,
                    payment.AdditionalData,
                    payment.PaymentType,
                    order);
            }

            if (unpaid > 0)
            {
                editSession.AddPaymentItem(unpaid, null, cashPaymentType, order);
            }
        }
Ejemplo n.º 4
0
 ISubmittedEntities SubmitChanges([NotNull] IEditSession editSession)
 {
     return(PluginContext.Operations.SubmitChanges(PluginContext.Operations.GetCredentials(), editSession));
 }
 private static void SubmitChanges([NotNull] IEditSession editSession)
 {
     PluginContext.Operations.SubmitChanges(PluginContext.Operations.GetCredentials(), editSession);
 }
Ejemplo n.º 6
0
        private static void AddDefaultCompoundItemComponentModifiers(IOrderCompoundItemComponentStub component, ICompoundItemTemplate template, IReadOnlyList <ITemplatedModifierParams> modifierParams, IOrderStub order, IEditSession editSession)
        {
            foreach (var splittableGroupModifier in template.GetSplittableGroupModifiers(PluginContext.Operations))
            {
                foreach (var splittableChildModifier in splittableGroupModifier.Items)
                {
                    var defaultAmount = GetDefaultModifierAmount(modifierParams, splittableGroupModifier.ProductGroup, splittableChildModifier.Product, splittableChildModifier.DefaultAmount);
                    if (defaultAmount > 0)
                    {
                        editSession.AddOrderModifierItem(defaultAmount, splittableChildModifier.Product, splittableGroupModifier.ProductGroup, order, component);
                    }
                }
            }

            foreach (var splittableSimpleModifier in template.GetSplittableSimpleModifiers(PluginContext.Operations))
            {
                var defaultAmount = GetDefaultModifierAmount(modifierParams, null, splittableSimpleModifier.Product, splittableSimpleModifier.DefaultAmount);
                if (defaultAmount > 0)
                {
                    editSession.AddOrderModifierItem(defaultAmount, splittableSimpleModifier.Product, null, order, component);
                }
            }
        }
 public abstract Task Build(IEditSession editSession);