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); }
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); } } }
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); } }
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); }
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);