示例#1
0
        public override bool Save()
        {
            if (!Entity.HasFixedPrice && Entity.FixedPrices.Count > 0)
            {
                foreach (var v in Entity.FixedPrices.ToList())
                {
                    Entity.FixedPrices.Remove(v);
                    UoW.Delete(v);
                }
            }

            var valid = new QSValidator <WaterSalesAgreement>(UoWGeneric.Root);

            if (valid.RunDlgIfNotValid((Gtk.Window) this.Toplevel))
            {
                return(false);
            }

            logger.Info("Сохраняем доп. соглашение...");
            UoWGeneric.Save();
            logger.Info("Ok");
            if (AgreementSaved != null)
            {
                AgreementSaved(this, new AgreementSavedEventArgs(UoWGeneric.Root));
            }
            return(true);
        }
示例#2
0
 public override bool Save()
 {
     logger.Info("Сохраняем  тег контрагента...");
     UoWGeneric.Save();
     logger.Info("Ok");
     return(true);
 }
示例#3
0
文件: FineDlg.cs 项目: RoAr80/Vodovoz
        public override bool Save()
        {
            Employee author;

            if (!GetAuthor(out author))
            {
                return(false);
            }

            if (Entity.Author == null)
            {
                Entity.Author = author;
            }
            var valid = new QS.Validation.QSValidator <Fine> (UoWGeneric.Root);

            if (valid.RunDlgIfNotValid((Gtk.Window) this.Toplevel))
            {
                return(false);
            }

            Entity.UpdateWageOperations(UoW);
            Entity.UpdateFuelOperations(UoW);

            logger.Info("Сохраняем штраф...");
            UoWGeneric.Save();
            logger.Info("Ok.");
            return(true);
        }
示例#4
0
        public override bool Save()
        {
            logger.Info("Запись документа...");
            var valid = new QSValidator <Income> (UoWGeneric.Root);

            if (valid.RunDlgIfNotValid((Gtk.Window)Toplevel))
            {
                return(false);
            }

            var ask = new GtkQuestionDialogsInteractive();

            Entity.UpdateOperations(UoW, ask);
            if (Entity.Id == 0)
            {
                Entity.CreationDate = DateTime.Now;
            }
            UoWGeneric.Save();
            if (Entity.Operation == IncomeOperations.Return)
            {
                logger.Debug("Обновляем записи о выданной одежде в карточке сотрудника...");
                Entity.UpdateEmployeeWearItems();
                UoWGeneric.Commit();
            }

            logger.Info("Ok");
            return(true);
        }
示例#5
0
        public override bool Save()
        {
            var validationContext = new Dictionary <object, object> {
                { "IsSelfDelivery", true }
            };
            var valid = new QSValidator <Expense>(UoWGeneric.Root, validationContext);

            if (valid.RunDlgIfNotValid((Gtk.Window) this.Toplevel))
            {
                return(false);
            }

            Entity.AcceptSelfDeliveryPaid(CallTaskWorker);

            if (UoW.IsNew)
            {
                logger.Info("Создаем документ распределения налички по юр лицу...");
                selfDeliveryCashOrganisationDistributor.DistributeExpenseCash(UoW, Entity.Order, Entity);
            }
            else
            {
                logger.Info("Меняем документ распределения налички по юр лицу...");
                selfDeliveryCashOrganisationDistributor.UpdateRecords(UoW, Entity.Order, Entity,
                                                                      _employeeRepository.GetEmployeeForCurrentUser(UoW));
            }

            logger.Info("Сохраняем расходный ордер...");
            UoWGeneric.Save();
            logger.Info("Ok");
            return(true);
        }
        public override bool Save()
        {
            var validationContext = new Dictionary <object, object> {
                { nameof(IRouteListItemRepository), new RouteListItemRepository() }
            };
            var valid = new QSValidator <RouteList>(Entity, validationContext);

            if (valid.RunDlgIfNotValid((Window)this.Toplevel))
            {
                return(false);
            }

            if (Entity.Status > RouteListStatus.OnClosing)
            {
                if (Entity.FuelOperationHaveDiscrepancy())
                {
                    if (!MessageDialogHelper.RunQuestionDialog("Был изменен водитель или автомобиль, при сохранении МЛ баланс по топливу изменится с учетом этих изменений. Продолжить сохранение?"))
                    {
                        return(false);
                    }
                }
                Entity.UpdateFuelOperation();
            }

            if (Entity.Status == RouteListStatus.Delivered)
            {
                ChangeStatusAndCreateTaskFromDelivered();
            }
            Entity.CalculateWages(_wageParameterService);

            UoWGeneric.Save();

            return(true);
        }
        protected void OnButtonCloseRouteListClicked(object sender, EventArgs e)
        {
            var valid = new QSValidator <RouteList>(Entity,
                                                    new Dictionary <object, object>
            {
                { "NewStatus", RouteListStatus.Closed }
            });

            if (valid.RunDlgIfNotValid((Window)this.Toplevel))
            {
                return;
            }

            if (Entity.ConfirmedDistance < Entity.ActualDistance && !Entity.Car.IsCompanyHavings)
            {
                decimal excessKM            = Entity.ActualDistance - Entity.ConfirmedDistance;
                decimal redundantPayForFuel = Entity.GetLitersOutlayed(excessKM) * Entity.Car.FuelType.Cost;
                string  fineReason          = "Перевыплата топлива";
                var     fine = new Fine();
                fine.Fill(redundantPayForFuel, Entity, fineReason, DateTime.Today, Entity.Driver);
                fine.Author = EmployeeRepository.GetEmployeeForCurrentUser(UoW);
                fine.UpdateWageOperations(UoWGeneric);
                UoWGeneric.Save(fine);
            }
            else
            {
                Entity.RecalculateFuelOutlay();
            }

            yspinConfirmedDistance.Sensitive = false;
            buttonConfirm.Sensitive          = false;
            buttonCloseRouteList.Sensitive   = false;

            Entity.ConfirmMileage(UoWGeneric);
        }
示例#8
0
        public override bool Save()
        {
            if (Entity.TypeOperation == IncomeType.Return && UoW.IsNew && selectableAdvances != null)
            {
                Entity.PrepareCloseAdvance(selectableAdvances.Where(x => x.Selected).Select(x => x.Value).ToList());
            }

            var valid = new QSValidator <Income> (UoWGeneric.Root);

            if (valid.RunDlgIfNotValid((Gtk.Window) this.Toplevel))
            {
                return(false);
            }

            logger.Info("Сохраняем Приходный ордер...");
            if (Entity.TypeOperation == IncomeType.Return && UoW.IsNew)
            {
                logger.Info("Закрываем авансы...");
                Entity.CloseAdvances(UoW);
            }

            if (UoW.IsNew)
            {
                DistributeCash();
            }
            else
            {
                UpdateCashDistributionsDocuments();
            }

            UoWGeneric.Save();
            logger.Info("Ok");
            return(true);
        }
示例#9
0
        public override bool Save()
        {
            var valid = new QSValidator <Trainee>(Entity);

            if (valid.RunDlgIfNotValid((Gtk.Window) this.Toplevel))
            {
                return(false);
            }
            phonesView.RemoveEmpty();
            logger.Info("Сохраняем стажера...");
            try {
                UoWGeneric.Save();
                if (Entity.Id != 0)
                {
                    attachmentFiles.ItemId = Entity.Id;
                }
                attachmentFiles.SaveChanges();
            } catch (Exception ex) {
                logger.Error(ex, "Не удалось записать стажера.");
                QSProjectsLib.QSMain.ErrorMessage((Gtk.Window) this.Toplevel, ex);
                return(false);
            }
            logger.Info("Ok");
            return(true);
        }
        public override bool Save()
        {
            if (!Entity.CanEdit)
            {
                return(false);
            }

            var valid = new QS.Validation.QSValidator <RegradingOfGoodsDocument> (UoWGeneric.Root);

            if (valid.RunDlgIfNotValid((Gtk.Window) this.Toplevel))
            {
                return(false);
            }

            Entity.LastEditor     = _employeeRepository.GetEmployeeForCurrentUser(UoW);
            Entity.LastEditedTime = DateTime.Now;
            if (Entity.LastEditor == null)
            {
                MessageDialogHelper.RunErrorDialog("Ваш пользователь не привязан к действующему сотруднику, вы не можете изменять складские документы, так как некого указывать в качестве кладовщика.");
                return(false);
            }

            logger.Info("Сохраняем документ пересортицы...");
            UoWGeneric.Save();
            logger.Info("Ok.");
            return(true);
        }
        public override bool Save()
        {
            var messages = new List <string>();

            var valid = new QSValidator <TransferOperationDocument>(UoWGeneric.Root);

            if (valid.RunDlgIfNotValid((Gtk.Window) this.Toplevel))
            {
                return(false);
            }

            Entity.LastEditor = _employeeRepository.GetEmployeeForCurrentUser(UoW);
            if (Entity.LastEditor == null)
            {
                MessageDialogHelper.RunErrorDialog("Ваш пользователь не привязан к действующему сотруднику, вы не можете изменять складские документы, так как некого указывать в качестве кладовщика.");
                return(false);
            }
            if (spinBottles.Value == 0f && spinDepositsBottles.Value == 0f && spinDepositsEquipment.Value == 0f)
            {
                MessageDialogHelper.RunErrorDialog("Вы ничего не указали для перемещения.");
                return(false);
            }

            messages.AddRange(Entity.SaveOperations(UoWGeneric, (int)spinBottles.Value, (decimal)spinDepositsBottles.Value, (decimal)spinDepositsEquipment.Value));

            logger.Info("Сохраняем документ переноса...");
            UoWGeneric.Save();
            logger.Info("Ok.");
            return(true);
        }
示例#12
0
        protected void OnBtnAddNomenclatureClicked(object sender, System.EventArgs e)
        {
            var nomenclatureFilter = new NomenclatureRepFilter(UoWGeneric);

            nomenclatureFilter.SetAndRefilterAtOnce(
                x => x.AvailableCategories         = Nomenclature.GetCategoriesForSaleToOrder(),
                x => x.DefaultSelectedCategory     = NomenclatureCategory.water,
                x => x.DefaultSelectedSaleCategory = SaleCategory.forSale
                );
            PermissionControlledRepresentationJournal SelectDialog = new PermissionControlledRepresentationJournal(new NomenclatureForSaleVM(nomenclatureFilter))
            {
                Mode       = JournalSelectMode.Multiple,
                ShowFilter = true
            };

            SelectDialog.CustomTabName("Номенклатура на продажу");
            SelectDialog.ObjectSelected += (s, ea) => {
                var selectedNodes = ea.GetNodes <NomenclatureForSaleVMNode>();
                if (!selectedNodes.Any())
                {
                    return;
                }
                foreach (var node in selectedNodes)
                {
                    Nomenclature n = UoWGeneric.GetById <Nomenclature>(node.Id);
                    if (n != null && !Entity.ObservableNomenclatures.Any(x => x == n))
                    {
                        Entity.ObservableNomenclatures.Add(n);
                    }
                }
            };
            TabParent.AddSlaveTab(this, SelectDialog);
        }
示例#13
0
		public override bool Save ()
		{
			if(!Entity.CanEdit)
				return false;

			if(CheckWarehouseItems() == false){
				MessageDialogHelper.RunErrorDialog("На складе не хватает материалов");
				return false;
			}
				
			var valid = new QSValidator<IncomingWater> (UoWGeneric.Root);
			if (valid.RunDlgIfNotValid ((Gtk.Window)this.Toplevel))
				return false;

			Entity.LastEditor = EmployeeSingletonRepository.GetInstance().GetEmployeeForCurrentUser (UoW);
			Entity.LastEditedTime = DateTime.Now;
			if(Entity.LastEditor == null)
			{
				MessageDialogHelper.RunErrorDialog ("Ваш пользователь не привязан к действующему сотруднику, вы не можете изменять складские документы, так как некого указывать в качестве кладовщика.");
				return false;
			}

			logger.Info ("Сохраняем документ производства...");
			UoWGeneric.Save ();
			logger.Info ("Ok.");
			return true;
		}
示例#14
0
文件: CarsDlg.cs 项目: RoAr80/Vodovoz
        public override bool Save()
        {
            var valid = new QSValidator <Car>(UoWGeneric.Root);

            if (valid.RunDlgIfNotValid((Gtk.Window) this.Toplevel))
            {
                return(false);
            }

            logger.Info("Сохраняем автомобиль...");
            try {
                UoWGeneric.Save();
                if (UoWGeneric.IsNew)
                {
                    attachmentFiles.ItemId = UoWGeneric.Root.Id;
                }
                attachmentFiles.SaveChanges();
            } catch (Exception ex) {
                logger.Error(ex, "Не удалось записать Автомобиль.");
                QSProjectsLib.QSMain.ErrorMessage((Gtk.Window) this.Toplevel, ex);
                return(false);
            }
            logger.Info("Ok");
            return(true);
        }
示例#15
0
        public override bool Save()
        {
            bool hasDuplicate = CheckDuplicate();
            bool userAnswer   = true;

            if (hasDuplicate)
            {
                userAnswer = MessageDialogWorks.RunQuestionDialog(
                    "Контрагент с данным ИНН уже существует. Сохранить?");
            }

            if (userAnswer)
            {
                Entity.UoW = UoW;
                var valid = new QSValidator <Counterparty>(UoWGeneric.Root);
                if (valid.RunDlgIfNotValid((Gtk.Window) this.Toplevel))
                {
                    return(false);
                }

                logger.Info("Сохраняем контрагента...");
                phonesView.SaveChanges();
                emailsView.SaveChanges();
                UoWGeneric.Save();
                logger.Info("Ok.");
                return(true);
            }
            return(false);
        }
        public override bool Save()
        {
            try {
                SetSensetivity(false);

                Entity.CalculateWages(wageParameterService);

                UoWGeneric.Save();

                var changedList = items.Where(item => item.ChangedDeliverySchedule || item.HasChanged).ToList();
                if (changedList.Count == 0)
                {
                    return(true);
                }

                var currentEmployee = _employeeRepository.GetEmployeeForCurrentUser(UoWGeneric);
                if (currentEmployee == null)
                {
                    MessageDialogHelper.RunInfoDialog("Ваш пользователь не привязан к сотруднику, уведомления об изменениях в маршрутном листе не будут отправлены водителю.");
                    return(true);
                }

                return(true);
            } finally {
                SetSensetivity(true);
            }
        }
示例#17
0
        public override bool Save()
        {
            var valid = new QSValidator <Expense> (UoWGeneric.Root);

            if (valid.RunDlgIfNotValid((Gtk.Window) this.Toplevel))
            {
                return(false);
            }

            Entity.UpdateWagesOperations(UoW);

            if (UoW.IsNew)
            {
                DistributeCash();
            }
            else
            {
                UpdateCashDistributionsDocuments();
            }

            logger.Info("Сохраняем расходный ордер...");
            UoWGeneric.Save();
            logger.Info("Ok");
            return(true);
        }
示例#18
0
        public override bool Save()
        {
            if (!UpdateReceivedItemsOnEntity())
            {
                return(false);
            }

            var valid = new QSValidation.QSValidator <CarUnloadDocument>(UoWGeneric.Root);

            if (valid.RunDlgIfNotValid((Gtk.Window) this.Toplevel))
            {
                return(false);
            }

            Entity.LastEditor     = Repository.EmployeeRepository.GetEmployeeForCurrentUser(UoW);
            Entity.LastEditedTime = DateTime.Now;
            if (Entity.LastEditor == null)
            {
                MessageDialogWorks.RunErrorDialog("Ваш пользователь не привязан к действующему сотруднику, вы не можете изменять складские документы, так как некого указывать в качестве кладовщика.");
                return(false);
            }

            logger.Info("Сохраняем разгрузочный талон...");
            UoWGeneric.Save();
            logger.Info("Ok.");
            return(true);
        }
        public override bool Save()
        {
            if (!Entity.CanEdit)
            {
                return(false);
            }

            Entity.UpdateAlreadyLoaded(UoW, _routeListRepository);
            var valid = new QS.Validation.QSValidator <CarLoadDocument> (UoWGeneric.Root);

            if (valid.RunDlgIfNotValid((Gtk.Window) this.Toplevel))
            {
                return(false);
            }

            Entity.LastEditor     = _employeeRepository.GetEmployeeForCurrentUser(UoW);
            Entity.LastEditedTime = DateTime.Now;
            if (Entity.LastEditor == null)
            {
                MessageDialogHelper.RunErrorDialog("Ваш пользователь не привязан к действующему сотруднику, вы не можете изменять складские документы, так как некого указывать в качестве кладовщика.");
                return(false);
            }

            if (Entity.Items.Any(x => x.Amount == 0))
            {
                var res = MessageDialogHelper.RunQuestionYesNoCancelDialog(
                    "<span foreground=\"red\">В списке есть нулевые позиции. Убрать нулевые позиции перед сохранением?</span>");
                switch (res)
                {
                case -4:                                                //DeleteEvent
                case -6:                                                //Cancel
                    return(false);

                case -8:                                                //Yes
                    Entity.ClearItemsFromZero();
                    break;

                case -9:                                                //No
                    break;
                }
            }

            Entity.UpdateOperations(UoW);

            logger.Info("Сохраняем погрузочный талон...");
            UoWGeneric.Save();

            logger.Info("Меняем статус маршрутного листа...");
            if (Entity.RouteList.ShipIfCan(UoW, CallTaskWorker, out _))
            {
                MessageDialogHelper.RunInfoDialog("Маршрутный лист отгружен полностью.");
            }
            UoW.Save(Entity.RouteList);
            UoW.Commit();

            logger.Info("Ok.");

            return(true);
        }
示例#20
0
 public override void Destroy()
 {
     if (UoWGeneric != null)
     {
         UoWGeneric.Dispose();
     }
     base.Destroy();
 }
示例#21
0
		public override bool Save ()
		{
			var valid = new QS.Validation.QSValidator<EquipmentType> (UoWGeneric.Root);
			if (valid.RunDlgIfNotValid ((Gtk.Window)this.Toplevel))
				return false;

			logger.Info ("Сохраняем тип оборудования...");
			UoWGeneric.Save ();
			return true;
		}
示例#22
0
        public override bool Save()
        {
            if (!ServicesConfig.ValidationService.Validate(Entity, _validationContext))
            {
                return(false);
            }

            logger.Info("Сохраняем правило для цены доставки...");
            UoWGeneric.Save();
            return(true);
        }
示例#23
0
        public override bool Save()
        {
            var valid = new QSValidator <Certificate>(UoWGeneric.Root);

            if (valid.RunDlgIfNotValid((Gtk.Window) this.Toplevel))
            {
                return(false);
            }
            UoWGeneric.Save();
            return(true);
        }
示例#24
0
        public override bool Save()
        {
            var valid = new QSValidator <ClientCameFrom>(Entity);

            if (valid.RunDlgIfNotValid((Window)this.Toplevel))
            {
                return(false);
            }
            UoWGeneric.Save();
            return(true);
        }
示例#25
0
        public override bool Save()
        {
            if (!ServicesConfig.ValidationService.Validate(Entity, _validationContext))
            {
                return(false);
            }

            logger.Info("Сохраняем пакет бесплатной аренды...");
            UoWGeneric.Save();
            return(true);
        }
示例#26
0
        public override bool Save()
        {
            var valid = new QSValidator <CounterpartyActivityKind>(Entity);

            if (valid.RunDlgIfNotValid((Window)this.Toplevel))
            {
                return(false);
            }
            UoWGeneric.Save();
            return(true);
        }
示例#27
0
        void CreateOrder()
        {
            var employee = _employeeRepository.GetEmployeeForCurrentUser(UoWGeneric);
            var order    = Order.CreateFromServiceClaim(Entity, employee);

            UoWGeneric.Save(order);
            UoWGeneric.Commit();
            var orderDlg = new OrderDlg(order);

            TabParent.AddTab(orderDlg, this);
        }
示例#28
0
        public override bool Save()
        {
            var valid = new QSValidator <DeliveryPointCategory>(Entity);

            if (valid.RunDlgIfNotValid((Gtk.Window) this.Toplevel))
            {
                return(false);
            }
            UoWGeneric.Save();
            return(true);
        }
示例#29
0
        public override bool Save()
        {
            Entity.Author = EmployeeRepository.GetEmployeeForCurrentUser(UoW);
            if (Entity.Author == null)
            {
                MessageDialogHelper.RunErrorDialog("Ваш пользователь не привязан к действующему сотруднику, вы не можете создавать , так как некого указывать в качестве автора документа.");
                FailInitialize = true;
            }

            UoWGeneric.Save();
            return(true);
        }
示例#30
0
        public override bool Save()
        {
            var valid = new QSValidator <FreeRentPackage> (UoWGeneric.Root);

            if (valid.RunDlgIfNotValid((Gtk.Window) this.Toplevel))
            {
                return(false);
            }
            logger.Info("Сохраняем пакет бесплатной аренды...");
            UoWGeneric.Save();
            return(true);
        }