protected void OnButtonCreateReportClicked(object sender, EventArgs e)
        {
            string errorString = string.Empty;

            if (radioDriver.Active && (dateperiodpicker.StartDateOrNull == null || evmeDriver.Subject == null))
            {
                errorString += "Не заполнена дата\n Не заполнен водитель\n";
            }

            if (radioCar.Active && (dateperiodpicker.StartDateOrNull == null | entityviewmodelentryCar.Subject == null))
            {
                errorString += "Не заполнена дата\n Не заполнен автомобиль\n";
            }

            if (radioSumm.Active && dateperiodpicker.StartDateOrNull == null)
            {
                errorString += "Не заполнена дата\n";
            }
            if (!string.IsNullOrWhiteSpace(errorString))
            {
                MessageDialogWorks.RunErrorDialog(errorString);
                return;
            }
            OnUpdate(true);
        }
        public static void ShowExceptionMessage(Exception ex)
        {
            var staleObjectStateException = ex as StaleObjectStateException;

            if (staleObjectStateException == null)
            {
                return;
            }

            var type       = OrmConfig.FindMappingByShortClassName(staleObjectStateException.EntityName).EntityPersisterClass;
            var objectName = DomainHelper.GetSubjectNames(type);

            string message;

            switch (objectName.Gender)
            {
            case GrammaticalGender.Feminine:
                message = "Сохраняемая <b>{0}</b> c номером <b>{1}</b> была кем то изменена.";
                break;

            case GrammaticalGender.Neuter:
                message = "Сохраняемое <b>{0}</b> c номером <b>{1}</b> было кем то изменено.";
                break;

            case GrammaticalGender.Masculine:
            default:
                message = "Сохраняемый <b>{0}</b> c номером <b>{1}</b> был кем то изменен.";
                break;
            }
            message = String.Format(message + "\nВаши изменения не будут записаны, чтобы не потерять чужие изменения. \nПереоткройте вкладку.", objectName?.Nominative ?? type.Name, staleObjectStateException.Identifier);

            MessageDialogWorks.RunErrorDialog(message);
        }
Beispiel #3
0
        protected void OnButtonInsertFromBufferClicked(object sender, EventArgs e)
        {
            bool error = true;

            string booferCoordinates = clipboard.WaitForText();

            string[] coordinates = booferCoordinates?.Split(',');
            if (coordinates?.Length == 2)
            {
                decimal lat, lng;
                bool    goodLat = decimal.TryParse(coordinates[0].Trim(), NumberStyles.Float, CultureInfo.InvariantCulture, out lat);
                bool    goodLon = decimal.TryParse(coordinates[1].Trim(), NumberStyles.Float, CultureInfo.InvariantCulture, out lng);
                SetCoordinates(lat, lng);

                if (goodLat && goodLon)
                {
                    deliverypriceview.DeliveryPrice = DeliveryPriceCalculator.Calculate(latitude, longitude, yspinBottles.ValueAsInt);
                    error = false;
                }
            }
            if (error)
            {
                MessageDialogWorks.RunErrorDialog(
                    "Буфер обмена не содержит координат или содержит неправильные координаты");
            }
        }
Beispiel #4
0
        public override bool Save()
        {
            if (CheckWarehouseItems() == false)
            {
                MessageDialogWorks.RunErrorDialog("На складе не хватает материалов");
                return(false);
            }

            var valid = new QSValidator <IncomingWater> (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 void UpdateNodes()
        {
            List <string> emptyDP = new List <string>();

            items = new List <RouteListKeepingItemNode>();
            foreach (var item in Entity.Addresses)
            {
                items.Add(new RouteListKeepingItemNode {
                    RouteListItem = item
                });
                if (item.Order.DeliveryPoint == null)
                {
                    emptyDP.Add(string.Format(
                                    "Для заказа {0} не определена точка доставки.",
                                    item.Order.Id));
                }
            }
            if (emptyDP.Count > 0)
            {
                string message = string.Join(Environment.NewLine, emptyDP);
                message += Environment.NewLine + "Необходимо добавить точки доставки или сохранить вышеуказанные заказы снова.";
                MessageDialogWorks.RunErrorDialog(message);
                FailInitialize = true;
                return;
            }
            items.ForEach(i => i.StatusChanged += RLI_StatusChanged);

            ytreeviewAddresses.ItemsDataSource = new GenericObservableList <RouteListKeepingItemNode>(items);
        }
Beispiel #6
0
        public DeliveryPriceDlg()
        {
            this.Build();

            TabName = "Рассчет стоимости доставки";

            entryCity.CitySelected += (sender, e) => {
                entryBuilding.Text         = string.Empty;
                entryStreet.CityId         = entryCity.OsmId;
                entryStreet.Street         = string.Empty;
                entryStreet.StreetDistrict = string.Empty;
            };

            entryStreet.StreetSelected += (sender, e) => {
                entryBuilding.Street = new OsmStreet(-1, entryStreet.CityId, entryStreet.Street, entryStreet.StreetDistrict);
            };

            entryBuilding.CompletionLoaded += EntryBuilding_Changed;
            entryBuilding.Changed          += EntryBuilding_Changed;

            //Configure map
            MapWidget.MapProvider  = GMapProviders.OpenStreetMap;
            MapWidget.Position     = new PointLatLng(59.93900, 30.31646);
            MapWidget.MinZoom      = 0;
            MapWidget.MaxZoom      = 24;
            MapWidget.Zoom         = 9;
            MapWidget.WidthRequest = 450;
            MapWidget.HasFrame     = true;
            MapWidget.Overlays.Add(addressOverlay);

            deliverypriceview.OnError += (sender, e) => {
                MessageDialogWorks.RunErrorDialog(e);
            };
        }
Beispiel #7
0
        public RouteListTrackDlg()
        {
            this.Build();
            this.TabName = "Мониторинг";
            yTreeViewDrivers.RepresentationModel = new ViewModel.WorkingDriversVM(uow);
            yTreeViewDrivers.RepresentationModel.UpdateNodes();
            yTreeViewDrivers.Selection.Mode     = Gtk.SelectionMode.Multiple;
            yTreeViewDrivers.Selection.Changed += OnSelectionChanged;
            buttonChat.Sensitive = false;
            currentEmployee      = EmployeeRepository.GetEmployeeForCurrentUser(uow);
            if (currentEmployee == null)
            {
                MessageDialogWorks.RunErrorDialog("Ваш пользователь не привязан к сотруднику. Чат не будет работать.");
            }
            else
            {
                if (!ChatCallbackObservable.IsInitiated)
                {
                    ChatCallbackObservable.CreateInstance(currentEmployee.Id);
                }
                ChatCallbackObservable.GetInstance().AddObserver(this);
            }

            //Configure map
            gmapWidget.MapProvider   = GMapProviders.OpenStreetMap;
            gmapWidget.Position      = new PointLatLng(59.93900, 30.31646);
            gmapWidget.HeightRequest = 150;
            //MapWidget.HasFrame = true;
            gmapWidget.Overlays.Add(carsOverlay);
            gmapWidget.Overlays.Add(tracksOverlay);
            gmapWidget.ExposeEvent += GmapWidget_ExposeEvent;
            UpdateCarPosition();
            timerId = GLib.Timeout.Add(carRefreshInterval, new GLib.TimeoutHandler(UpdateCarPosition));
            yenumcomboMapType.ItemsEnum = typeof(MapProviders);
        }
        protected void OnButtonAddClicked(object sender, EventArgs e)
        {
            if (DocumentUoW.Root.FromWarehouse == null)
            {
                MessageDialogWorks.RunErrorDialog("Не добавлен склад отправителя.");
                return;
            }

            ITdiTab mytab = DialogHelper.FindParentTab(this);

            if (mytab == null)
            {
                logger.Warn("Родительская вкладка не найдена.");
                return;
            }

            var filter = new StockBalanceFilter(UnitOfWorkFactory.CreateWithoutRoot());

            filter.SetAndRefilterAtOnce(x => x.RestrictWarehouse = DocumentUoW.Root.FromWarehouse);

            ReferenceRepresentation SelectDialog = new ReferenceRepresentation(new ViewModel.StockBalanceVM(filter));

            SelectDialog.Mode            = OrmReferenceMode.Select;
            SelectDialog.ButtonMode      = ReferenceButtonMode.None;
            SelectDialog.ObjectSelected += NomenclatureSelected;

            mytab.TabParent.AddSlaveTab(mytab, SelectDialog);
        }
Beispiel #9
0
        protected void OnButtonInsertFromBufferClicked(object sender, EventArgs e)
        {
            bool error = true;

            string booferCoordinates = clipboard.WaitForText();

            string[] coordinates = booferCoordinates?.Split(',');
            if (coordinates?.Length == 2)
            {
                coordinates[0] = coordinates[0].Replace('.', ',');
                coordinates[1] = coordinates[1].Replace('.', ',');

                decimal latitude, longitude;
                bool    goodLat = decimal.TryParse(coordinates[0].Trim(), out latitude);
                bool    goodLon = decimal.TryParse(coordinates[1].Trim(), out longitude);

                if (goodLat && goodLon)
                {
                    Entity.Latitude  = latitude;
                    Entity.Longitude = longitude;
                    error            = false;
                }
            }
            if (error)
            {
                MessageDialogWorks.RunErrorDialog(
                    "Буфер обмена не содержит координат или содержит неправильные координаты");
            }
        }
Beispiel #10
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()
        {
            var messages = new List <string>();

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

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


            Entity.LastEditor = Repository.EmployeeRepository.GetEmployeeForCurrentUser(UoW);
            Entity.TimeStamp  = datepickerDate.Date;
            //	Entity.LastEditedTime = DateTime.Now;
            if (Entity.LastEditor == null)
            {
                MessageDialogWorks.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);
        }
Beispiel #12
0
        public PriceLoadDlg(string filePath)
        {
            this.Build();

            TabName = "Загрузка прайса (Шаг 1)";

            try
            {
                using (var fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))
                {
                    wb = new XSSFWorkbook(fs);
                }
            }catch (IOException ex)
            {
                if (ex.HResult == -2147024864)
                {
                    MessageDialogWorks.RunErrorDialog("Указанный файл уже открыт в другом приложении. Оно заблокировало доступ к файлу.");
                    FailInitialize = true;
                    return;
                }
                throw ex;
            }

            var sheets = new List <string>();

            for (int s = 0; s < wb.NumberOfSheets; s++)
            {
                sheets.Add(wb.GetSheetName(s));
            }
            comboSheet.ItemsList = sheets;

            ytreeviewSetColumns.EnableGridLines  = Gtk.TreeViewGridLines.Both;
            ytreeviewSetColumns.HeadersClickable = true;
            SetColumnTypeMenu  = GtkMenuHelper.GenerateMenuFromEnum <ReadingXLSRow.ColumnType>(OnSetColumnHeaderMenuSelected);
            notebook1.ShowTabs = false;

            //Вкладка второго экрана
            ytreeviewParsing.ColumnsConfig = ColumnsConfigFactory.Create <ReadingXLSRow>()
                                             .AddColumn("Статус").Resizable().AddTextRenderer(x => x.Status.GetEnumTitle())
                                             .AddSetter((w, x) => w.Foreground = GetColorByStatus(x.Status))
                                             .AddColumn("Тип").Resizable().SetDataProperty(node => node.DispalyType)
                                             .AddColumn("Диаметр").Resizable().SetDataProperty(node => node.DispalyDiameter)
                                             .AddColumn("Давление").Resizable().SetDataProperty(node => node.DispalyPressure)
                                             .AddColumn("Cоединения").Resizable().SetDataProperty(node => node.DispalyConnection)
                                             .AddColumn("Материал").Resizable().SetDataProperty(node => node.DispalyMaterial)
                                             .AddColumn("Артикул").Resizable().SetDataProperty(node => node.DispalyModel)
                                             .AddColumn("Цена").Resizable().AddNumericRenderer(x => x.Price)
                                             .AddSetter((w, x) => w.Background = x.Price.HasValue ? "white" : "red")
                                             .AddColumn("DN(XLS)").Resizable().AddTextRenderer(x => x.DNText).Background("White Smoke")
                                             .AddColumn("PN(XLS)").Resizable().AddTextRenderer(x => x.PNText).Background("White Smoke")
                                             .AddColumn("Модель(XLS)").Resizable().AddTextRenderer(x => x.ModelText).Background("White Smoke")
                                             .AddColumn("Цена(XLS)").Resizable().AddTextRenderer(x => x.PriceText).Background("White Smoke")
                                             .Finish();
            ytreeviewParsing.EnableGridLines    = TreeViewGridLines.Both;
            ytreeviewParsing.Selection.Mode     = SelectionMode.Multiple;
            ytreeviewParsing.Selection.Changed += YtreeviewParsing_Selection_Changed;
            comboCurrency.ItemsEnum             = typeof(PriceСurrency);
        }
Beispiel #13
0
 protected void OnButtonCreateReportClicked(object sender, EventArgs e)
 {
     if (dateperiodpicker.StartDateOrNull == null)
     {
         MessageDialogWorks.RunErrorDialog("Необходимо выбрать дату");
         return;
     }
     OnUpdate(true);
 }
Beispiel #14
0
 private bool GetAuthor(out Employee cashier)
 {
     cashier = EmployeeRepository.GetEmployeeForCurrentUser(UoW);
     if (cashier == null)
     {
         MessageDialogWorks.RunErrorDialog(
             "Ваш пользователь не привязан к действующему сотруднику.");
         return(false);
     }
     return(true);
 }
Beispiel #15
0
        void AddEmployeeDlg_ObjectSelected(object sender, ReferenceRepresentationSelectedEventArgs e)
        {
            var employee = UoW.GetById <Employee>(e.ObjectId);

            if (Entity.Items.Any(x => x.Employee.Id == employee.Id))
            {
                MessageDialogWorks.RunErrorDialog("Сотрудник {0} уже присутствует в списке.", employee.ShortName);
                return;
            }
            Entity.AddItem(employee);
        }
Beispiel #16
0
 void ConfigureNewDoc()
 {
     UoWGeneric    = UnitOfWorkFactory.CreateWithNewRoot <CarUnloadDocument>();
     Entity.Author = Repository.EmployeeRepository.GetEmployeeForCurrentUser(UoW);
     if (Entity.Author == null)
     {
         MessageDialogWorks.RunErrorDialog("Ваш пользователь не привязан к действующему сотруднику, вы не можете создавать складские документы, так как некого указывать в качестве кладовщика.");
         FailInitialize = true;
         return;
     }
     Entity.Warehouse = StoreDocumentHelper.GetDefaultWarehouse(UoW, WarehousePermissions.CarUnloadEdit);
 }
Beispiel #17
0
        public UpdatePricesDlg()
        {
            logger.Info("Выбор файла для обновления цен...");

            if (SelectFile())
            {
                FailInitialize = true;
                return;
            }

            this.Build();

            TabName = "Расположение колонок (Шаг 1)";

            try
            {
                using (var fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))
                {
                    wb = new XSSFWorkbook(fs);
                }
            }
            catch (IOException ex)
            {
                if (ex.HResult == -2147024864)
                {
                    MessageDialogWorks.RunErrorDialog("Указанный файл уже открыт в другом приложении. Оно заблокировало доступ к файлу.");
                    FailInitialize = true;
                    return;
                }
                throw ex;
            }

            comboCurrency.ItemsEnum = typeof(PriceСurrency);

            var sheets = new List <string>();

            for (int s = 0; s < wb.NumberOfSheets; s++)
            {
                sheets.Add(wb.GetSheetName(s));
            }
            comboSheet.ItemsList = sheets;

            ytreeviewSetColumns.EnableGridLines  = Gtk.TreeViewGridLines.Both;
            ytreeviewSetColumns.HeadersClickable = true;
            SetColumnTypeMenu  = GtkMenuHelper.GenerateMenuFromEnum <UpdatingXLSRow.ColumnType>(OnSetColumnHeaderMenuSelected);
            notebook1.ShowTabs = false;

            ytreeviewParsing.EnableGridLines    = TreeViewGridLines.Both;
            ytreeviewParsing.Selection.Mode     = SelectionMode.Multiple;
            ytreeviewParsing.Selection.Changed += YtreeviewParsing_Selection_Changed;

            comboProvider.SetRenderTextFunc <Provider>(x => x.Name);
        }
Beispiel #18
0
        public override bool Save()
        {
            Entity.Author = EmployeeRepository.GetEmployeeForCurrentUser(UoW);
            if (Entity.Author == null)
            {
                MessageDialogWorks.RunErrorDialog("Ваш пользователь не привязан к действующему сотруднику, вы не можете создавать , так как некого указывать в качестве автора документа.");
                FailInitialize = true;
            }

            UoWGeneric.Save();
            return(true);
        }
        void ConfigureDlg()
        {
            var editing   = !UoW.IsNew && StoreDocumentHelper.CanEditDocument(WarehousePermissions.ShiftChangeEdit, Entity.Warehouse);
            var canCreate = UoW.IsNew && !StoreDocumentHelper.CheckCreateDocument(WarehousePermissions.ShiftChangeCreate, Entity.Warehouse);

            if (!canCreate && UoW.IsNew)
            {
                FailInitialize = true;
                return;
            }

            if (!editing && !UoW.IsNew)
            {
                MessageDialogWorks.RunWarningDialog("У вас нет прав на изменение этого документа.");
            }

            ydatepickerDocDate.Sensitive = yentryrefWarehouse.IsEditable = ytextviewCommnet.Editable = editing || canCreate;
            shiftchangewarehousedocumentitemsview1.Sensitive = editing || canCreate;
            ydatepickerDocDate.Binding.AddBinding(Entity, e => e.TimeStamp, w => w.Date).InitializeFromSource();
            if (UoW.IsNew)
            {
                yentryrefWarehouse.ItemsQuery = StoreDocumentHelper.GetRestrictedWarehouseQuery(WarehousePermissions.ShiftChangeCreate);
            }
            if (!UoW.IsNew)
            {
                yentryrefWarehouse.ItemsQuery = StoreDocumentHelper.GetRestrictedWarehouseQuery(WarehousePermissions.ShiftChangeEdit);
            }
            yentryrefWarehouse.Binding.AddBinding(Entity, e => e.Warehouse, w => w.Subject).InitializeFromSource();

            ytextviewCommnet.Binding.AddBinding(Entity, e => e.Comment, w => w.Buffer.Text).InitializeFromSource();

            string errorMessage       = "Не установлены единицы измерения у следующих номенклатур :" + Environment.NewLine;
            int    wrongNomenclatures = 0;

            foreach (var item in UoWGeneric.Root.Items)
            {
                if (item.Nomenclature.Unit == null)
                {
                    errorMessage += string.Format("Номер: {0}. Название: {1}{2}",
                                                  item.Nomenclature.Id, item.Nomenclature.Name, Environment.NewLine);
                    wrongNomenclatures++;
                }
            }
            if (wrongNomenclatures > 0)
            {
                MessageDialogWorks.RunErrorDialog(errorMessage);
                FailInitialize = true;
                return;
            }

            shiftchangewarehousedocumentitemsview1.DocumentUoW = UoWGeneric;
        }
Beispiel #20
0
 public ResidueDlg()
 {
     this.Build();
     UoWGeneric    = UnitOfWorkFactory.CreateWithNewRoot <Residue> ();
     Entity.Author = Repository.EmployeeRepository.GetEmployeeForCurrentUser(UoW);
     if (Entity.Author == null)
     {
         MessageDialogWorks.RunErrorDialog("Ваш пользователь не привязан к действующему сотруднику, вы не можете создавать складские документы, так как некого указывать в качестве кладовщика.");
         FailInitialize = true;
         return;
     }
     ConfigureDlg();
 }
Beispiel #21
0
 public CashIncomeDlg()
 {
     this.Build();
     UoWGeneric    = UnitOfWorkFactory.CreateWithNewRoot <Income>();
     Entity.Casher = Repository.EmployeeRepository.GetEmployeeForCurrentUser(UoW);
     if (Entity.Casher == null)
     {
         MessageDialogWorks.RunErrorDialog("Ваш пользователь не привязан к действующему сотруднику, вы не можете создавать кассовые документы, так как некого указывать в качестве кассира.");
         FailInitialize = true;
         return;
     }
     Entity.Date = DateTime.Now;
     ConfigureDlg();
 }
 public TransferOperationDocumentDlg()
 {
     this.Build();
     UoWGeneric = UnitOfWorkFactory.CreateWithNewRoot <TransferOperationDocument>();
     TabName    = "Новый перенос между точками доставки";
     ConfigureDlg();
     Entity.Author = Entity.ResponsiblePerson = Repository.EmployeeRepository.GetEmployeeForCurrentUser(UoW);
     if (Entity.Author == null)
     {
         MessageDialogWorks.RunErrorDialog("Ваш пользователь не привязан к действующему сотруднику, вы не можете создавать складские документы, так как некого указывать в качестве кладовщика.");
         FailInitialize = true;
         return;
     }
 }
Beispiel #23
0
        protected void OnButtonSendReportClicked(object sender, EventArgs e)
        {
            var svc = QSBugReporting.ReportWorker.GetReportService();

            if (svc == null)
            {
                MessageDialogWorks.RunErrorDialog("Не удалось установить соединение с сервером Quality Solution.");
                return;
            }
            string logFileName = GetLogFile();
            string logContent  = String.Empty;

            if (!String.IsNullOrWhiteSpace(logFileName))
            {
                try
                {
                    logContent = System.IO.File.ReadAllText(logFileName);
                }
                catch (Exception ex)
                {
                    logger.Error(ex, "Не смогли прочитать лог файл {0}, для отправки.");
                }
            }

            var result = svc.SubmitBugReport(
                new QSBugReporting.BugMessage {
                product    = MainSupport.ProjectVerion.Product,
                Edition    = MainSupport.ProjectVerion.Edition,
                version    = MainSupport.ProjectVerion.Version.ToString(),
                stackTrace = String.Format("{0}{1}",
                                           String.IsNullOrWhiteSpace(message) ? String.Empty : String.Format("Пользовательское сообщение:{0}\n", message),
                                           AppExceptionText),
                description = textviewDescription.Buffer.Text,
                email       = entryEmail.Text,
                userName    = QSMain.User.Name,
                logFile     = logContent
            });

            if (result)
            {
                this.Respond(ResponseType.Ok);
            }
            else
            {
                MessageDialogWorks.RunWarningDialog("Отправка сообщения не удалась.\n" +
                                                    "Проверьте ваше интернет соединение и повторите попытку. Если отправка неудастся возможно имеются проблемы на стороне сервера.");
            }
        }
Beispiel #24
0
 public UndeliveredOrderDlg()
 {
     this.Build();
     UoW = UnitOfWorkFactory.CreateWithNewRoot <UndeliveredOrder>();
     UndeliveredOrder        = UoW.RootObject as UndeliveredOrder;
     UndeliveredOrder.Author = EmployeeRepository.GetEmployeeForCurrentUser(UoW);
     UndeliveredOrder.EmployeeRegistrator = EmployeeRepository.GetEmployeeForCurrentUser(UoW);
     if (UndeliveredOrder.Author == null)
     {
         MessageDialogWorks.RunErrorDialog("Ваш пользователь не привязан к действующему сотруднику, вы не можете создавать недовозы, так как некого указывать в качестве автора документа.");
         FailInitialize = true;
         return;
     }
     TabName = "Новый недовоз";
     UndeliveredOrder.TimeOfCreation = DateTime.Now;
     ConfigureDlg();
 }
Beispiel #25
0
        void YentryreferenceRLTo_Changed(object sender, EventArgs e)
        {
            if (yentryreferenceRLTo.Subject == null)
            {
                ytreeviewRLTo.ItemsDataSource = null;
                return;
            }

            RouteList routeListTo   = yentryreferenceRLTo.Subject as RouteList;
            RouteList routeListFrom = yentryreferenceRLFrom.Subject as RouteList;

            if (DomainHelper.EqualDomainObjects(routeListFrom, routeListTo))
            {
                yentryreferenceRLTo.Subject = null;
                MessageDialogWorks.RunErrorDialog("Вы дурачёк?", "Вы не можете передавать адреса в тот же МЛ, из которого забираете.");
                return;
            }

            if (TabParent != null)
            {
                var tab = TabParent.FindTab(OrmMain.GenerateDialogHashName <RouteList> (routeListTo.Id));
                if (!(tab is RouteListClosingDlg))
                {
                    if (tab != null)
                    {
                        MessageDialogWorks.RunErrorDialog("Маршрутный лист уже открыт в другой вкладке");
                        yentryreferenceRLTo.Subject = null;
                        return;
                    }
                }
            }

            CheckSensitivities();

            routeListTo.UoW = uow;

            IList <RouteListItemNode> items = new List <RouteListItemNode>();

            foreach (var item in routeListTo.Addresses)
            {
                items.Add(new RouteListItemNode {
                    RouteListItem = item
                });
            }
            ytreeviewRLTo.ItemsDataSource = items;
        }
Beispiel #26
0
        void AddEmployeeDlg_ObjectSelected(object sender, JournalObjectSelectedEventArgs e)
        {
            var selectedId = e.GetSelectedIds().FirstOrDefault();

            if (selectedId == 0)
            {
                return;
            }
            var employee = FineUoW.GetById <Employee>(selectedId);

            if (FineUoW.Root.Items.Any(x => x.Employee.Id == employee.Id))
            {
                MessageDialogWorks.RunErrorDialog("Сотрудник {0} уже присутствует в списке.", employee.ShortName);
                return;
            }
            FineUoW.Root.AddItem(employee);
        }
Beispiel #27
0
        /// <summary>
        /// Проверка прав на просмотр документа
        /// </summary>
        /// <returns>Если <c>true</c> нет прав на просмотр.</returns>
        public static bool CheckViewWarehouse(WarehousePermissions edit, params Warehouse[] warehouses)
        {
            //Внимание!!! Склад пустой обычно у новых документов. Возможность создания должна проверятся другими условиями. Тут пропускаем.
            warehouses = warehouses.Where(x => x != null).ToArray();
            if (warehouses.Length == 0)
            {
                return(false);
            }

            if (warehouses.Any(x => CurrentPermissions.Warehouse[WarehousePermissions.WarehouseView, x] || CurrentPermissions.Warehouse[edit, x]))
            {
                return(false);
            }

            MessageDialogWorks.RunErrorDialog("У вас нет прав на просмотр документов склада '{0}'.", String.Join(";", warehouses.Distinct().Select(x => x.Name)));
            return(true);
        }
Beispiel #28
0
        private void OnFuelUpdated()
        {
            Employee cashier = FuelDocument.GetActualCashier(UoW);

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

            FuelDocument.Fuel.Cost = spinFuelPrice.ValueAsDecimal;
            FuelDocument.UpdateOperation();
            FuelDocument.UpdateFuelCashExpense(UoW, cashier);
            UpdateResutlInfo();
            UpdateFuelCashExpenseInfo();
        }
Beispiel #29
0
 public UndeliveredOrderCommentsDlg(IUnitOfWork uow, int id, CommentedFields field, string valueOfField)
 {
     UoW              = uow;
     Field            = field;
     UndeliveredOrder = uow.GetById <UndeliveredOrder>(id);
     Employee         = EmployeeRepository.GetEmployeeForCurrentUser(uow);
     if (Employee == null)
     {
         MessageDialogWorks.RunErrorDialog("Ваш пользователь не привязан к действующему сотруднику и вы не можете комментировать недовозы, так как некого указывать в качестве автора.");
         FailInitialize = true;
         return;
     }
     this.Build();
     TabName            = "Добавить комментарий";
     lblValOfField.Text = valueOfField;
     ConfigureDlg();
 }
Beispiel #30
0
        public MovementDocumentDlg()
        {
            this.Build();
            UoWGeneric = UnitOfWorkFactory.CreateWithNewRoot <MovementDocument> ();

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

            Entity.FromWarehouse = StoreDocumentHelper.GetDefaultWarehouse(UoW, WarehousePermissions.MovementEdit);
            Entity.ToWarehouse   = StoreDocumentHelper.GetDefaultWarehouse(UoW, WarehousePermissions.MovementEdit);

            ConfigureDlg();
        }