Ejemplo n.º 1
0
        // Add Tips to existing order - Amjad
        private async void AddTipToOrder(OrderVM order, decimal tip_amt)
        {
            await Task.Factory.StartNew(() => {
                ccSale.ccUpdateTip update = new ccSale.ccUpdateTip();
                string amount             = tip_amt.ToString(CultureInfo.CreateSpecificCulture("en-US"));
                string txn_id             = order._orderHeader.TxnId;

                update.SetTipDetails(txn_id, amount);

                update.Process();


                var result = update.Resp_Msg == "SUCCESS" ? true : false;


                Application.Current.Dispatcher.BeginInvoke(new Action(() =>
                {
                    if (result)
                    {
                        new Notifies.TransactionSuccessNotify("Tip ADDED successfully.").Show(() => {
                            order.TipAmount = tip_amt;
                            SaveOrderCommand.Execute(order);
                        });
                    }
                    else
                    {
                        new Notifies.TransactionFailedNotify("FAILED to add tip.", null).Show();
                    }
                }));
            });
        }
        public OrderMasterDetailsViewModel()
        {
            _catalog = new OrderCatalog();
            _orderItemViewModelSelected = new OrderItemViewModel(new Orders());

            _deleteCommand   = new DeleteOrderCommand(_catalog, this);
            _newOrderCommand = new NewOrderCommand(_catalog, this);
            _saveCommand     = new SaveOrderCommand(_catalog);
            _refreshCommand  = new RefreshOrderCommand(this, _catalog);
            _catalog.Load();
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> SaveOrder([FromBody] SaveOrderCommand saveOrderCommand)
        {
            var orderDtoResult = await QueryProcessor.GetQueryHandler <SaveOrderCommand, OrderDto>(saveOrderCommand);

            if (orderDtoResult.Failure)
            {
                return(BadRequest(orderDtoResult.ErrorMessages));
            }

            var orderDto = orderDtoResult.Object;

            return(Ok(true));
        }
Ejemplo n.º 4
0
        protected override void GoBackCommand_Execute()
        {
            //если были какие-то изменения
            if (SaveOrderCommand.CanExecute())
            {
                if (Container.Resolve <IMessageService>().ShowYesNoMessageDialog("Сохранение", "Сохранить изменения?", defaultNo: true) == MessageDialogResult.Yes)
                {
                    SaveOrderCommand.Execute();
                }
            }

            RegionManager.Regions[RegionNames.ContentRegion].NavigationService.Journal.GoBack();
        }
Ejemplo n.º 5
0
        public void Insert(InsertOrderViewModel model)
        {
            var order = model.Adapt <Order>();

            validateInsert(order);
            if (Valid)
            {
                var orderCmd = new SaveOrderCommand(_orderRepository, _orderValidator);
                orderCmd.Execute(order);
                AddNotifications(orderCmd);
                addItems(order);
            }

            if (Valid)
            {
                _context.SaveChanges();
            }
        }
Ejemplo n.º 6
0
        private void AddGroup(SalesUnitOrderGroup unitsGroup)
        {
            //фиксируем заказ
            unitsGroup.Order = Item;
            //фиксируем дату действия и заказ
            unitsGroup.SignalToStartProductionDone = DateTime.Today;
            //ставим предполагаемую дату производства
            unitsGroup.EndProductionPlanDate = unitsGroup.Units.First().EndProductionDateExpected;
            unitsGroup.Units.ForEach(x => x.EndProductionPlanDate = x.EndProductionDateExpected);
            //заполняем позиции заказа
            int orderPosition = 1;

            unitsGroup.Units.ForEach(x => x.OrderPosition = orderPosition++.ToString());
            //переносим группу в план производства
            GroupsInOrder.Add(unitsGroup);
            GroupsPotential.Remove(unitsGroup);
            SaveOrderCommand.RaiseCanExecuteChanged();
        }
Ejemplo n.º 7
0
        // Refund / Void Completed Orders - Amjad 5/13

        private async void RefundOrder(OrderVM order, decimal refundAmt)
        {
            await Task.Factory.StartNew(() => {
                // Prepare parameters for void/refund
                string amount = refundAmt.ToString(CultureInfo.CreateSpecificCulture("en-US"));
                string txn_id = order._orderHeader.TxnId;

                ccSale.ccReturn refund = new ccSale.ccReturn();
                refund.SetReturnDetails(txn_id, amount);

                ccSale.ccVoid voider = new ccSale.ccVoid();
                voider.SetVoidDetails(txn_id);

                voider.Process();
                var voidResult = voider.Resp_Msg == "APPROVAL" ? true : false;

                Application.Current.Dispatcher.BeginInvoke(new Action(() =>
                {
                    if (voidResult) // Try a void first ... (unsettled batches)
                    {
                        new Notifies.TransactionSuccessNotify("Transaction VOIDED successfully.").Show(() => {
                            order.OrderStatus = OrderStatuses.Refunded;
                            SaveOrderCommand.Execute(order);
                        });
                    }
                    else  // If failed try a refund ... (settled batches)
                    {
                        refund.Process();
                        var refundResult = refund.Resp_Msg == "APPROVAL" ? true : false;
                        if (refundResult)
                        {
                            new Notifies.TransactionSuccessNotify("REFUND processed successfully.").Show(() => {
                                order.OrderStatus = OrderStatuses.Refunded;
                                SaveOrderCommand.Execute(order);
                            });
                        }
                        else
                        {
                            new Notifies.TransactionFailedNotify("This transaction cannot be refunded.", null).Show();
                        }
                    }
                }));
            });
        }
Ejemplo n.º 8
0
        public OrderViewModel(IUnityContainer container) : base(container)
        {
            //сохранить заказ
            SaveOrderCommand = new DelegateLogCommand(
                () =>
            {
                if (UnitOfWork.SaveChanges().OperationCompletedSuccessfully)
                {
                    Item.AcceptChanges();
                    _unitsWrappers.AcceptChanges();

                    var changed = _unitsWrappers.ModifiedItems.ToList();
                    if (changed.Any())
                    {
                        Container.Resolve <IEventAggregator>().GetEvent <AfterSaveOrderItemsEvent>().Publish(changed.Select(salesUnitOrderItem => salesUnitOrderItem.Model));
                    }
                }

                SaveOrderCommand.RaiseCanExecuteChanged();
            },
                () =>
            {
                //юниты валидны
                var unitsIsValid = _unitsWrappers != null && _unitsWrappers.IsValid;
                if (!unitsIsValid)
                {
                    return(false);
                }

                //заказ валиден
                var orderIsValid = Item != null && Item.IsValid && GroupsInOrder.Any();
                if (!orderIsValid)
                {
                    return(false);
                }

                //если нет плановых дат производства
                if (GroupsInOrder.SelectMany(x => x.Units).Any(x => x.EndProductionPlanDate == null))
                {
                    return(false);
                }

                //если нет позиций заказа
                if (GroupsInOrder.SelectMany(x => x.Units).Any(x => string.IsNullOrEmpty(x.OrderPosition)))
                {
                    return(false);
                }

                //что-то изменилось
                return(_unitsWrappers.IsChanged || Item.IsChanged);
            });

            RemoveOrderCommand = new DelegateLogCommand(
                () =>
            {
                var dr = Container.Resolve <IMessageService>().ShowYesNoMessageDialog("Удаление", "Вы уверены, что хотите удалить этот заказ?");
                if (dr != MessageDialogResult.Yes)
                {
                    return;
                }

                var order = Item.Model;

                _unitsWrappers.ForEach(x => x.RejectChanges());

                foreach (var groupInOrder in GroupsInOrder)
                {
                    groupInOrder.EndProductionPlanDate       = null;
                    groupInOrder.SignalToStartProductionDone = null;
                    groupInOrder.Order = null;
                    groupInOrder.Units.ForEach(x => x.OrderPosition = string.Empty);
                }

                _unitsWrappers.ForEach(salesUnitOrderItem => salesUnitOrderItem.AcceptChanges());

                if (UnitOfWork.RemoveEntity(order).OperationCompletedSuccessfully)
                {
                    Container.Resolve <IEventAggregator>().GetEvent <AfterRemoveOrderEvent>().Publish(order);
                    GoBackCommand.Execute(null);
                }
            });

            AddGroupCommand = new DelegateLogCommand(AddGroupCommand_Execute, () => GroupsPotential.SelectedItem != null);

            RemoveGroupCommand = new DelegateLogCommand(RemoveGroupCommand_Execute, () => GroupsInOrder.SelectedItem != null);

            ShowProductStructureCommand = new DelegateLogCommand(
                () =>
            {
                var salesUnit = GroupsPotential.SelectedUnit?.Model ??
                                GroupsPotential.SelectedGroup.Unit;
                var productStructureViewModel = new ProductStructureViewModel(salesUnit);
                Container.Resolve <IDialogService>().Show(productStructureViewModel, "Структура продукта");
            },
                () => GroupsPotential.SelectedItem != null);
        }
Ejemplo n.º 9
0
 private void OnPropertyChanged(object sender, PropertyChangedEventArgs args)
 {
     SaveOrderCommand.RaiseCanExecuteChanged();
     AddGroupCommand.RaiseCanExecuteChanged();
 }