Пример #1
0
        protected void OnButtonSaveClicked(object sender, EventArgs e)
        {
            var valid = new QSValidator <UndeliveredOrder>(undelivery);

            if (valid.RunDlgIfNotValid((Window)this.Toplevel))
            {
                return;
            }
            undeliveryView.BeforeSaving();
            if (!CanCreateUndelivery())
            {
                this.OnCloseTab(false);
                if (DlgSaved != null)
                {
                    DlgSaved(this, new UndeliveryOnOrderCloseEventArgs(undelivery));
                }
                return;
            }
            UoW.Save(undelivery);
            OnCloseTab(false);
            if (DlgSaved != null)
            {
                DlgSaved(this, new UndeliveryOnOrderCloseEventArgs(undelivery));
            }
        }
Пример #2
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);
        }
Пример #3
0
        public override bool Save()
        {
            if (Entity.Order == null)
            {
                return(true);
            }

            var valid = new QSValidator <M2ProxyDocument>(Entity);

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

            if (Entity.Order != null)
            {
                List <OrderDocument> list = new List <OrderDocument> {
                    new OrderM2Proxy {
                        AttachedToOrder = Entity.Order,
                        M2Proxy         = Entity,
                        Order           = Entity.Order
                    }
                };
                Entity.Order.AddAdditionalDocuments(list);
            }

            return(true);
        }
Пример #4
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);
        }
Пример #5
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);
        }
Пример #6
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);
        }
Пример #7
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;
		}
        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);
        }
Пример #9
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);
        }
        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);
        }
Пример #11
0
        public virtual bool Save(bool needClose = true)
        {
            var valid = new QSValidator <UndeliveredOrder>(UndeliveredOrder);

            if (valid.RunDlgIfNotValid((Window)this.Toplevel))
            {
                return(false);
            }
            if (UndeliveredOrder.Id == 0)
            {
                UndeliveredOrder.OldOrder.SetUndeliveredStatus(UoW, new BaseParametersProvider(), CallTaskWorker);
            }
            undeliveryView.BeforeSaving();
            //случай, если создавать новый недовоз не нужно, но нужно обновить старый заказ
            if (!CanCreateUndelivery())
            {
                UoW.Save(UndeliveredOrder.OldOrder);
                UoW.Commit();
                this.OnCloseTab(false);
                return(false);
            }

            UoW.Save(UndeliveredOrder);
            if (needClose)
            {
                this.OnCloseTab(false);
            }
            return(true);
        }
Пример #12
0
        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);
        }
Пример #13
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);
        }
Пример #14
0
        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);
        }
Пример #15
0
        public override bool Save()
        {
            if (!Entity.CanEdit)
            {
                return(false);
            }

            var valid = new QSValidator <InventoryDocument> (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);
            }

            Entity.UpdateOperations(UoW);

            logger.Info("Сохраняем акт списания...");
            UoWGeneric.Save();
            logger.Info("Ok.");
            return(true);
        }
Пример #16
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);
        }
Пример #17
0
        public override bool Save()
        {
            var valid = new QSValidator <CounterpartyActivityKind>(Entity);

            if (valid.RunDlgIfNotValid((Window)this.Toplevel))
            {
                return(false);
            }
            UoWGeneric.Save();
            return(true);
        }
Пример #18
0
        public override bool Save()
        {
            var valid = new QSValidator <ClientCameFrom>(Entity);

            if (valid.RunDlgIfNotValid((Window)this.Toplevel))
            {
                return(false);
            }
            UoWGeneric.Save();
            return(true);
        }
Пример #19
0
        public override bool Save()
        {
            var valid = new QSValidator <CommonCashTransferDocument>(Entity, new Dictionary <object, object>());

            if (valid.RunDlgIfNotValid())
            {
                return(false);
            }

            return(base.Save());
        }
Пример #20
0
        public override bool Save()
        {
            var valid = new QSValidator <DeliveryPointCategory>(Entity);

            if (valid.RunDlgIfNotValid((Gtk.Window) this.Toplevel))
            {
                return(false);
            }
            UoWGeneric.Save();
            return(true);
        }
Пример #21
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);
        }
Пример #22
0
        public override bool Save()
        {
            var valid = new QSValidator <AdvanceReport>(UoWGeneric.Root);

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

            logger.Info("Сохраняем авансовый отчет...");
            Income  newIncome;
            Expense newExpense;
            bool    needClosing = UoWGeneric.IsNew;

            UoWGeneric.Save();             // Сохраняем сначала отчет, так как нужно получить Id.
            if (needClosing)
            {
                var closing = Entity.CloseAdvances(out newExpense, out newIncome,
                                                   advanceList.Where(a => a.Selected).Select(a => a.Advance).ToList());

                if (newExpense != null)
                {
                    UoWGeneric.Save(newExpense);
                    logger.Info("Создаем документ распределения расхода налички по юр лицу...");
                    distributor.DistributeCashForExpenseAdvance(UoW, newExpense, Entity);
                }

                if (newIncome != null)
                {
                    UoWGeneric.Save(newIncome);
                    logger.Info("Создаем документ распределения прихода налички по юр лицу...");
                    distributor.DistributeCashForIncomeAdvance(UoW, newIncome, Entity);
                }

                advanceList.Where(a => a.Selected).Select(a => a.Advance).ToList().ForEach(a => UoWGeneric.Save(a));
                closing.ForEach(c => UoWGeneric.Save(c));

                UoWGeneric.Save();

                if (newIncome != null)
                {
                    MessageDialogWorks.RunInfoDialog(String.Format("Дополнительно создан приходный ордер №{0}, на сумму {1:C}.\nНе забудьте получить сдачу от подотчетного лица!",
                                                                   newIncome.Id, newIncome.Money));
                }
                if (newExpense != null)
                {
                    MessageDialogWorks.RunInfoDialog(String.Format("Дополнительно создан расходный ордер №{0}, на сумму {1:C}.\nНе забудьте доплатить подотчетному лицу!",
                                                                   newExpense.Id, newExpense.Money));
                }
            }
            logger.Info("Ok");
            return(true);
        }
Пример #23
0
        private bool SaveDoc()
        {
            var valid = new QSValidator <EmployeeDocument>(Entity);

            valid.RunDlgIfNotValid((Gtk.Window)Toplevel);
            if (valid.IsValid)
            {
                _unitOfWork.Save(Entity);
                OnCloseTab(false);
            }
            return(valid.IsValid);
        }
Пример #24
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);
        }
Пример #25
0
        protected void OnButtonAcceptClicked(object sender, EventArgs e)
        {
            var casher = EmployeeRepository.GetEmployeeForCurrentUser(UoW);

            if (casher == null)
            {
                MessageDialogHelper.RunErrorDialog("Ваш пользователь не привязан к действующему сотруднику, вы не можете закрыть МЛ, так как некого указывать в качестве кассира.");
                return;
            }

            if (!isConsistentWithUnloadDocument())
            {
                return;
            }

            if (!checkSendToMileageCheck.Active)
            {
                Entity.ConfirmedDistance = Entity.ActualDistance;
            }

            var valid = new QSValidator <RouteList>(UoWGeneric.Root,
                                                    new Dictionary <object, object>
            {
                { "NewStatus", RouteListStatus.MileageCheck }
            });

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

            if (advanceCheckbox.Active && advanceSpinbutton.Value > 0)
            {
                EmployeeAdvanceOrder((decimal)advanceSpinbutton.Value);
            }

            Entity.Cashier = casher;
            Entity.Confirm(checkSendToMileageCheck.Active);

            if (!MessageDialogHelper.RunQuestionDialog("Перед выходом распечатать документ?"))
            {
                SaveAndClose();
            }
            else
            {
                Save();

                PrintRouteList();

                UpdateButtonState();
                this.OnCloseTab(false);
            }
        }
Пример #26
0
        public bool Save()
        {
            var valid = new QSValidator <FreeRentEquipment> (subject);

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

            subject.IsNew = false;
            OrmMain.DelayedNotifyObjectUpdated(ParentReference.ParentObject, subject);
            return(true);
        }
Пример #27
0
        public override bool Save()
        {
            var valid = new QSValidator <MeasurementUnits> (UoWGeneric.Root);

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

            logger.Info("Сохраняем единицы измерения...");
            UoWGeneric.Save();
            return(true);
        }
Пример #28
0
        public override bool Save()
        {
            var valid = new QSValidator <Account> (Entity);

            if (valid.RunDlgIfNotValid((Window)this.Toplevel))
            {
                return(false);
            }
            logger.Info("Сохраняем счет организации...");
            UoWGeneric.Save();
            logger.Info("Ok");
            return(true);
        }
Пример #29
0
        public override bool Save()
        {
            var valid = new QSValidator <FuelType> (UoWGeneric.Root);

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

            logger.Info("Сохраняем график доставки...");
            UoWGeneric.Save();
            return(true);
        }
Пример #30
0
        public override bool Save()
        {
            var valid = new QSValidator <Equipment> (UoWGeneric.Root);

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

            logger.Info("Сохраняем оборудование...");
            UoWGeneric.Save();
            return(true);
        }
        public bool Save()
        {
            var valid = new QSValidator<FreeRentEquipment> (subject);
            if (valid.RunDlgIfNotValid ((Gtk.Window)this.Toplevel))
                return false;

            subject.IsNew = false;
            OrmMain.DelayedNotifyObjectUpdated (ParentReference.ParentObject, subject);
            return true;
        }