private void btnBack_Click(object sender, EventArgs e) { HistoryMain histMain = new HistoryMain(); histMain.Show(); this.Hide(); }
private void button6_Click(object sender, EventArgs e) { HistoryMain main = new HistoryMain(); main.Show(); this.Hide(); }
private void button7_Click(object sender, EventArgs e) { HistoryMain history = new HistoryMain(); history.Show(); this.Hide(); }
private void CreateBaseConfig() { _logger.LogInformation("Настройка параметров Nhibernate..."); var conStrBuilder = new MySqlConnectionStringBuilder(); var domainDBConfig = Configuration.GetSection("DomainDB"); conStrBuilder.Server = domainDBConfig.GetValue <string>("Server"); conStrBuilder.Port = domainDBConfig.GetValue <uint>("Port"); conStrBuilder.Database = domainDBConfig.GetValue <string>("Database"); conStrBuilder.UserID = domainDBConfig.GetValue <string>("UserID"); conStrBuilder.Password = domainDBConfig.GetValue <string>("Password"); conStrBuilder.SslMode = MySqlSslMode.None; var connectionString = conStrBuilder.GetConnectionString(true); var db_config = FluentNHibernate.Cfg.Db.MySQLConfiguration.Standard .Dialect <MySQL57SpatialExtendedDialect>() .ConnectionString(connectionString) .AdoNetBatchSize(100); // Настройка ORM OrmConfig.ConfigureOrm( db_config, new System.Reflection.Assembly[] { System.Reflection.Assembly.GetAssembly(typeof(QS.Project.HibernateMapping.UserBaseMap)), System.Reflection.Assembly.GetAssembly(typeof(QS.Project.HibernateMapping.TypeOfEntityMap)), System.Reflection.Assembly.GetAssembly(typeof(Vodovoz.HibernateMapping.OrganizationMap)), System.Reflection.Assembly.GetAssembly(typeof(Bank)), System.Reflection.Assembly.GetAssembly(typeof(HistoryMain)), System.Reflection.Assembly.GetAssembly(typeof(Attachment)) } ); var serviceUserId = 0; using (var unitOfWork = UnitOfWorkFactory.CreateWithoutRoot("Получение пользователя")) { serviceUserId = unitOfWork.Session.Query <Vodovoz.Domain.Employees.User>() .Where(u => u.Login == domainDBConfig.GetValue <string>("UserID")) .Select(u => u.Id) .FirstOrDefault(); } QS.Project.Repositories.UserRepository.GetCurrentUserId = () => serviceUserId; HistoryMain.Enable(); }
public override void CompareType(CompareParms parms) { if (parms.ParentObject1 == null || parms.ParentObject2 == null) { base.CompareType(parms); return; } PropertyInfo prop1 = null, prop2 = null; if (parms.Object1 != null) { prop1 = parms.Object1.GetType().GetProperty("Id"); } if (parms.Object2 != null) { prop2 = parms.Object2.GetType().GetProperty("Id"); } if (prop1 != null && prop2 != null && (int)prop1.GetValue(parms.Object1, null) == (int)prop2.GetValue(parms.Object2, null)) { if (parms.ParentObject1 is IList) { base.CompareType(parms); } return; } Difference difference = new Difference { ParentObject1 = parms.ParentObject1, ParentObject2 = parms.ParentObject2, PropertyName = parms.BreadCrumb, Object1Value = parms.Object1 == null ? String.Empty : HistoryMain.GetObjectTilte(parms.Object1), Object2Value = parms.Object2 == null ? String.Empty : HistoryMain.GetObjectTilte(parms.Object2), ChildPropertyName = "Id", Object1 = parms.Object1, Object2 = parms.Object2 }; AddDifference(parms.Result, difference); }
static bool EntityCompare(ref FieldChange change, object valueOld, object valueNew) { if (DomainHelper.EqualDomainObjects(valueOld, valueNew)) { return(false); } change = new FieldChange(); if (valueOld != null) { change.OldValue = HistoryMain.GetObjectTilte(valueOld); change.OldId = DomainHelper.GetId(valueOld); } if (valueNew != null) { change.NewValue = HistoryMain.GetObjectTilte(valueNew); change.NewId = DomainHelper.GetId(valueNew); } return(true); }
public void CreateApplicationConfig() { logger.Debug("Конфигурация маппингов диалогов, HistoryTrace, принтеров и ParentReference..."); #region Dialogs mapping OrmMain.ClassMappingList = new List <IOrmObjectMapping> { //Простые справочники OrmObjectMapping <CullingCategory> .Create().DefaultTableView().SearchColumn("Название", x => x.Name).End(), OrmObjectMapping <Nationality> .Create().DefaultTableView().SearchColumn("Название", x => x.Name).End(), OrmObjectMapping <Citizenship> .Create().DefaultTableView().SearchColumn("Название", x => x.Name).End(), OrmObjectMapping <Manufacturer> .Create().DefaultTableView().SearchColumn("Название", x => x.Name).End(), OrmObjectMapping <EquipmentColors> .Create().DefaultTableView().SearchColumn("Название", x => x.Name).End(), OrmObjectMapping <User> .Create().DefaultTableView().SearchColumn("Название", x => x.Name).End(), OrmObjectMapping <UserSettings> .Create().Dialog <UserSettingsView>(), OrmObjectMapping <FuelType> .Create().Dialog <FuelTypeViewModel>().DefaultTableView() .SearchColumn("Название", x => x.Name).End(), OrmObjectMapping <MovementWagon> .Create().Dialog <MovementWagonViewModel>().DefaultTableView() .SearchColumn("Название", x => x.Name).End(), //Остальные справочники OrmObjectMapping <CarProxyDocument> .Create().Dialog <CarProxyDlg>(), OrmObjectMapping <M2ProxyDocument> .Create().Dialog <M2ProxyDlg>(), OrmObjectMapping <ProductGroup> .Create().Dialog <ProductGroupDlg>(), OrmObjectMapping <CommentTemplate> .Create().Dialog <CommentTemplateDlg>().DefaultTableView() .SearchColumn("Шаблон комментария", x => x.Comment).End(), OrmObjectMapping <FineTemplate> .Create().Dialog <FineTemplateDlg>().DefaultTableView() .SearchColumn("Шаблон комментария", x => x.Reason).End(), OrmObjectMapping <MeasurementUnits> .Create().Dialog <MeasurementUnitsDlg>().DefaultTableView() .SearchColumn("ОКЕИ", x => x.OKEI).SearchColumn("Название", x => x.Name).Column("Точность", x => x.Digits.ToString()) .End(), OrmObjectMapping <Contact> .Create().Dialog <ContactDlg>() .DefaultTableView().SearchColumn("Фамилия", x => x.Surname).SearchColumn("Имя", x => x.Name) .SearchColumn("Отчество", x => x.Patronymic).End(), OrmObjectMapping <Order> .Create().Dialog <OrderDlg>().PopupMenu(OrderPopupMenu.GetPopupMenu), OrmObjectMapping <UndeliveredOrder> .Create().Dialog <UndeliveredOrderDlg>(), OrmObjectMapping <Organization> .Create().Dialog <OrganizationDlg>().DefaultTableView().Column("Код", x => x.Id.ToString()) .SearchColumn("Название", x => x.Name).End(), OrmObjectMapping <DeliverySchedule> .Create().Dialog <DeliveryScheduleDlg>().DefaultTableView() .SearchColumn("Название", x => x.Name) .SearchColumn("Время доставки", x => x.DeliveryTime) .Column("Архивный?", x => x.IsArchive ? "Да" : string.Empty) .OrderAsc(x => x.IsArchive).OrderAsc(x => x.From).OrderAsc(x => x.To) .End(), OrmObjectMapping <ProductSpecification> .Create().Dialog <ProductSpecificationDlg>().DefaultTableView() .SearchColumn("Код", x => x.Id.ToString()).SearchColumn("Название", x => x.Name).End(), OrmObjectMapping <EquipmentKind> .Create().Dialog <EquipmentKindDlg>().DefaultTableView() .Column("Название", equipmentKind => equipmentKind.Name).End(), //Связанное с клиентом OrmObjectMapping <Proxy> .Create().Dialog <ProxyDlg>() .DefaultTableView().SearchColumn("Номер", x => x.Number).SearchColumn("С", x => x.StartDate.ToShortDateString()) .SearchColumn("По", x => x.ExpirationDate.ToShortDateString()).End(), OrmObjectMapping <PaidRentPackage> .Create().Dialog <PaidRentPackageDlg>() .DefaultTableView().SearchColumn("Название", x => x.Name).Column("Вид оборудования", x => x.EquipmentKind.Name) .SearchColumn("Цена в сутки", x => CurrencyWorks.GetShortCurrencyString(x.PriceDaily)) .SearchColumn("Цена в месяц", x => CurrencyWorks.GetShortCurrencyString(x.PriceMonthly)).End(), OrmObjectMapping <FreeRentPackage> .Create().Dialog <FreeRentPackageDlg>().DefaultTableView() .SearchColumn("Название", x => x.Name).Column("Вид оборудования", x => x.EquipmentKind.Name).OrderAsc(x => x.Name) .End(), OrmObjectMapping <Counterparty> .Create().Dialog <CounterpartyDlg>().DefaultTableView() .SearchColumn("Название", x => x.FullName).End(), OrmObjectMapping <Tag> .Create().Dialog <TagDlg>().DefaultTableView().SearchColumn("Название", x => x.Name).End(), OrmObjectMapping <CounterpartyContract> .Create().Dialog <CounterpartyContractDlg>(), OrmObjectMapping <DocTemplate> .Create().Dialog <DocTemplateDlg>().DefaultTableView().SearchColumn("Название", x => x.Name) .Column("Тип", x => x.TemplateType.GetEnumTitle()).End(), OrmObjectMapping <TransferOperationDocument> .Create().Dialog <TransferOperationDocumentDlg>(), //Справочники с фильтрами OrmObjectMapping <Equipment> .Create().Dialog <EquipmentDlg>().JournalFilter <EquipmentFilter>() .DefaultTableView().Column("Код", x => x.Id.ToString()).SearchColumn("Номенклатура", x => x.NomenclatureName) .Column("Тип", x => x.Nomenclature.Kind.Name).SearchColumn("Серийный номер", x => x.Serial) .Column("Дата последней обработки", x => x.LastServiceDate.ToShortDateString()).End(), //Логисткика OrmObjectMapping <RouteList> .Create().Dialog <RouteListCreateDlg>() .DefaultTableView().SearchColumn("Номер", x => x.Id.ToString()).Column("Дата", x => x.Date.ToShortDateString()) .Column("Статус", x => x.Status.GetEnumTitle()) .SearchColumn("Водитель", x => String.Format("{0} - {1}", x.Driver.FullName, x.Car.Title)).End(), OrmObjectMapping <RouteColumn> .Create().DefaultTableView().Column("Код", x => x.Id.ToString()) .SearchColumn("Название", x => x.Name).End(), OrmObjectMapping <DeliveryShift> .Create().Dialog <DeliveryShiftDlg>().DefaultTableView().SearchColumn("Название", x => x.Name) .SearchColumn("Диапазон времени", x => x.DeliveryTime).End(), OrmObjectMapping <DeliveryDaySchedule> .Create().Dialog <DeliveryDayScheduleDlg>().DefaultTableView() .SearchColumn("Название", x => x.Name).End(), //Сервис OrmObjectMapping <ServiceClaim> .Create().Dialog <ServiceClaimDlg>().DefaultTableView().Column("Номер", x => x.Id.ToString()) .Column("Тип", x => x.ServiceClaimType.GetEnumTitle()).Column("Оборудование", x => x.Equipment.Title) .Column("Подмена", x => x.ReplacementEquipment != null ? "Да" : "Нет") .Column("Точка доставки", x => x.DeliveryPoint.Title).End(), //Касса OrmObjectMapping <Income> .Create().Dialog <CashIncomeDlg>(), OrmObjectMapping <ExpenseCategory> .Create().Dialog <ExpenseCategoryViewModel>().DefaultTableView() .Column("Код", x => x.Id.ToString()).SearchColumn("Название", e => e.Name) .Column("Тип документа", e => e.ExpenseDocumentType.GetEnumTitle()) .TreeConfig(new RecursiveTreeConfig <ExpenseCategory>(x => x.Parent, x => x.Childs)).End(), OrmObjectMapping <Expense> .Create().Dialog <CashExpenseDlg>(), OrmObjectMapping <AdvanceReport> .Create().Dialog <AdvanceReportDlg>(), OrmObjectMapping <Fine> .Create().Dialog <FineDlg>(), OrmObjectMapping <IncomeCashTransferDocument> .Create().Dialog <IncomeCashTransferDlg>(), OrmObjectMapping <CommonCashTransferDocument> .Create().Dialog <CommonCashTransferDlg>(), //Банкинг OrmObjectMapping <AccountIncome> .Create(), OrmObjectMapping <AccountExpense> .Create(), //Склад OrmObjectMapping <Warehouse> .Create().Dialog <WarehouseDlg>().DefaultTableView().Column("Название", w => w.Name) .Column("В архиве", w => w.IsArchive ? "Да" : "").End(), OrmObjectMapping <RegradingOfGoodsTemplate> .Create().Dialog <RegradingOfGoodsTemplateDlg>().DefaultTableView() .Column("Название", w => w.Name).End(), OrmObjectMapping <CarEventType> .Create().Dialog <CarEventTypeViewModel>() }; #region Складские документы OrmMain.AddObjectDescription <IncomingWater>().Dialog <IncomingWaterDlg>(); OrmMain.AddObjectDescription <WriteoffDocument>().Dialog <WriteoffDocumentDlg>(); OrmMain.AddObjectDescription <InventoryDocument>().Dialog <InventoryDocumentDlg>(); OrmMain.AddObjectDescription <ShiftChangeWarehouseDocument>().Dialog <ShiftChangeWarehouseDocumentDlg>(); OrmMain.AddObjectDescription <RegradingOfGoodsDocument>().Dialog <RegradingOfGoodsDocumentDlg>(); OrmMain.AddObjectDescription <SelfDeliveryDocument>().Dialog <SelfDeliveryDocumentDlg>(); OrmMain.AddObjectDescription <CarLoadDocument>().Dialog <CarLoadDocumentDlg>(); OrmMain.AddObjectDescription <CarUnloadDocument>().Dialog <CarUnloadDocumentDlg>(); #endregion #region Goods OrmMain.AddObjectDescription <Nomenclature>().Dialog <NomenclatureDlg>().JournalFilter <NomenclatureFilter>().DefaultTableView() .SearchColumn("Код", x => x.Id.ToString()) .SearchColumn("Название", x => x.Name) .Column("Тип", x => x.CategoryString) .SearchColumn("Номер в ИМ", x => x.OnlineStoreExternalId) .End(); OrmMain.AddObjectDescription <Folder1c>().Dialog <Folder1cDlg>() .DefaultTableView() .SearchColumn("Код 1С", x => x.Code1c) .SearchColumn("Название", x => x.Name) .TreeConfig(new RecursiveTreeConfig <Folder1c>(x => x.Parent, x => x.Childs)).End(); #endregion #region Простые справочники OrmMain.AddObjectDescription <GeographicGroup>() .Dialog <GeographicGroupDlg>() .DefaultTableView() .SearchColumn("Название", x => x.Name) .Column("Код", x => x.Id.ToString()) .End(); OrmMain.AddObjectDescription <NonReturnReason>() .DefaultTableView() .SearchColumn("Код", x => x.Id.ToString()) .SearchColumn("Название", x => x.Name) .End(); OrmMain.AddObjectDescription <PaymentFrom>() .DefaultTableView() .SearchColumn("Код", x => x.Id.ToString()) .SearchColumn("Название", x => x.Name) .End(); OrmMain.AddObjectDescription <Post>() .DefaultTableView() .SearchColumn("Код", x => x.Id.ToString()) .SearchColumn("Название", x => x.Name) .End(); OrmMain.AddObjectDescription <SalesChannel>() .DefaultTableView() .SearchColumn("Код", x => x.Id.ToString()) .SearchColumn("Название", x => x.Name) .End(); #endregion #region неПростые справочники OrmMain.AddObjectDescription <Subdivision>().Dialog <SubdivisionDlg>().DefaultTableView().SearchColumn("Название", x => x.Name) .Column("Руководитель", x => x.Chief == null ? "" : x.Chief.ShortName).SearchColumn("Номер", x => x.Id.ToString()) .TreeConfig(new RecursiveTreeConfig <Subdivision>(x => x.ParentSubdivision, x => x.ChildSubdivisions)).End(); OrmMain.AddObjectDescription <TypeOfEntity>() .Dialog <TypeOfEntityDlg>() .DefaultTableView() .SearchColumn("Тип документа", x => TypeOfEntityRepository.GetEntityNameByString(x.Type)) .SearchColumn("Название документа", x => x.CustomName) .SearchColumn("Код", x => x.Id.ToString()) .Column("Активно", x => !x.IsActive ? "нет" : String.Empty) .SearchColumn("Имя класса", x => x.Type) .OrderAsc(x => x.CustomName) .End(); OrmMain.AddObjectDescription <Trainee>().Dialog <TraineeDlg>().DefaultTableView() .Column("Код", x => x.Id.ToString()) .SearchColumn("Ф.И.О.", x => x.FullName) .OrderAsc(x => x.LastName).OrderAsc(x => x.Name).OrderAsc(x => x.Patronymic) .End(); OrmMain.AddObjectDescription <DeliveryPriceRule>().Dialog <DeliveryPriceRuleDlg>().DefaultTableView() .Column("< 19л б.", x => x.Water19LCount.ToString()) .Column("< 6л б.", x => x.Water6LCount) .Column("< 1,5л б.", x => x.Water1500mlCount) .Column("< 0,6л б.", x => x.Water600mlCount) .Column("< 0,5л б.", x => x.Water500mlCount) .Column("Минимальная сумма заказа", x => x.OrderMinSumEShopGoods.ToString()) .SearchColumn("Описание правила", x => x.Title) .End(); OrmMain.AddObjectDescription <Certificate>().Dialog <CertificateDlg>().DefaultTableView() .SearchColumn("Имя", x => x.Name) .Column("Тип", x => x.TypeOfCertificate.GetEnumTitle()) .SearchColumn("Номер", x => x.Id.ToString()) .SearchColumn("Начало срока", x => x.StartDate.HasValue ? x.StartDate.Value.ToString("dd.MM.yyyy") : "Ошибка!") .SearchColumn("Окончание срока", x => x.ExpirationDate.HasValue ? x.ExpirationDate.Value.ToString("dd.MM.yyyy") : "Бессрочно") .Column("Архивный?", x => x.IsArchive ? "Да" : string.Empty) .OrderAsc(x => x.IsArchive) .OrderAsc(x => x.Id) .End(); OrmMain.AddObjectDescription <StoredResource>().Dialog <ImageLoaderDlg>().DefaultTableView() .SearchColumn("Номер", x => x.Id.ToString()) .SearchColumn("Название", x => x.Name) .End(); OrmMain.AddObjectDescription <DeliveryPointCategory>().Dialog <DeliveryPointCategoryDlg>().DefaultTableView() .SearchColumn("Код", x => x.Id.ToString()) .SearchColumn("Название", x => x.Name) .Column("В архиве?", x => x.IsArchive ? "Да" : "Нет") .OrderAsc(x => x.Name) .End(); OrmMain.AddObjectDescription <CounterpartyActivityKind>().Dialog <CounterpartyActivityKindDlg>().DefaultTableView() .SearchColumn("Код", x => x.Id.ToString()) .SearchColumn("Название", x => x.Name) .End(); #endregion OrmMain.ClassMappingList.AddRange(QSBanks.QSBanksMain.GetModuleMaping()); #endregion HistoryMain.Enable(); TemplatePrinter.InitPrinter(); ImagePrinter.InitPrinter(); logger.Debug("OK"); }
static void CreateBaseConfig() { logger.Info("Настройка параметров базы..."); //Увеличиваем таймоут QSMain.ConnectionString += ";ConnectionTimeout=120"; var db_config = FluentNHibernate.Cfg.Db.MySQLConfiguration.Standard .Dialect <MySQL57SpatialExtendedDialect>() .ConnectionString(QSMain.ConnectionString) .AdoNetBatchSize(100) .Driver <LoggedMySqlClientDriver>(); // Настройка ORM OrmConfig.ConfigureOrm( db_config, new System.Reflection.Assembly[] { System.Reflection.Assembly.GetAssembly(typeof(QS.Project.HibernateMapping.UserBaseMap)), System.Reflection.Assembly.GetAssembly(typeof(HibernateMapping.OrganizationMap)), System.Reflection.Assembly.GetAssembly(typeof(Bank)), System.Reflection.Assembly.GetAssembly(typeof(HistoryMain)), }, (cnf) => { cnf.DataBaseIntegration( dbi => { dbi.BatchSize = 100; dbi.Batcher <MySqlClientBatchingBatcherFactory>(); } ); } ); #region Dialogs mapping OrmMain.ClassMappingList = new List <IOrmObjectMapping> { //Простые справочники OrmObjectMapping <CullingCategory> .Create().DefaultTableView().SearchColumn("Название", x => x.Name).End(), OrmObjectMapping <Nationality> .Create().DefaultTableView().SearchColumn("Название", x => x.Name).End(), OrmObjectMapping <Citizenship> .Create().DefaultTableView().SearchColumn("Название", x => x.Name).End(), OrmObjectMapping <Manufacturer> .Create().DefaultTableView().SearchColumn("Название", x => x.Name).End(), OrmObjectMapping <EquipmentColors> .Create().DefaultTableView().SearchColumn("Название", x => x.Name).End(), OrmObjectMapping <User> .Create().DefaultTableView().SearchColumn("Название", x => x.Name).End(), OrmObjectMapping <UserSettings> .Create().Dialog <UserSettingsView>(), OrmObjectMapping <FuelType> .Create().Dialog <FuelTypeDlg>().DefaultTableView().SearchColumn("Название", x => x.Name).SearchColumn("Стоимость", x => x.Cost.ToString()).End(), OrmObjectMapping <MovementWagon> .Create().Dialog <MovementWagonViewModel>().DefaultTableView().SearchColumn("Название", x => x.Name).End(), //Остальные справочники OrmObjectMapping <CarProxyDocument> .Create().Dialog <CarProxyDlg>(), OrmObjectMapping <M2ProxyDocument> .Create().Dialog <M2ProxyDlg>(), OrmObjectMapping <ProductGroup> .Create().Dialog <ProductGroupDlg>(), OrmObjectMapping <CommentTemplate> .Create().Dialog <CommentTemplateDlg>().DefaultTableView().SearchColumn("Шаблон комментария", x => x.Comment).End(), OrmObjectMapping <FineTemplate> .Create().Dialog <FineTemplateDlg>().DefaultTableView().SearchColumn("Шаблон комментария", x => x.Reason).End(), OrmObjectMapping <PremiumTemplate> .Create().Dialog <PremiumTemplateDlg>().DefaultTableView().SearchColumn("Шаблон комментария", x => x.Reason).End(), OrmObjectMapping <MeasurementUnits> .Create().Dialog <MeasurementUnitsDlg>().DefaultTableView().SearchColumn("ОКЕИ", x => x.OKEI).SearchColumn("Название", x => x.Name).Column("Точность", x => x.Digits.ToString()).End(), OrmObjectMapping <Contact> .Create().Dialog <ContactDlg>() .DefaultTableView().SearchColumn("Фамилия", x => x.Surname).SearchColumn("Имя", x => x.Name).SearchColumn("Отчество", x => x.Patronymic).End(), OrmObjectMapping <Order> .Create().Dialog <OrderDlg>().PopupMenu(OrderPopupMenu.GetPopupMenu), OrmObjectMapping <UndeliveredOrder> .Create().Dialog <UndeliveredOrderDlg>(), OrmObjectMapping <Organization> .Create().Dialog <OrganizationDlg>().DefaultTableView().Column("Код", x => x.Id.ToString()).SearchColumn("Название", x => x.Name).End(), OrmObjectMapping <DeliverySchedule> .Create().Dialog <DeliveryScheduleDlg>().DefaultTableView().SearchColumn("Название", x => x.Name).SearchColumn("Время доставки", x => x.DeliveryTime).End(), OrmObjectMapping <ProductSpecification> .Create().Dialog <ProductSpecificationDlg>().DefaultTableView().SearchColumn("Код", x => x.Id.ToString()).SearchColumn("Название", x => x.Name).End(), OrmObjectMapping <EquipmentType> .Create().Dialog <EquipmentTypeDlg>().DefaultTableView().Column("Название", equipmentType => equipmentType.Name).End(), //Связанное с клиентом OrmObjectMapping <Proxy> .Create().Dialog <ProxyDlg>() .DefaultTableView().SearchColumn("Номер", x => x.Number).SearchColumn("С", x => x.StartDate.ToShortDateString()).SearchColumn("По", x => x.ExpirationDate.ToShortDateString()).End(), OrmObjectMapping <DeliveryPoint> .Create().Dialog <DeliveryPointDlg>().DefaultTableView().SearchColumn("ID", x => x.Id.ToString()).Column("Адрес", x => x.Title).End(), OrmObjectMapping <PaidRentPackage> .Create().Dialog <PaidRentPackageDlg>() .DefaultTableView().SearchColumn("Название", x => x.Name).Column("Тип оборудования", x => x.EquipmentType.Name).SearchColumn("Цена в сутки", x => CurrencyWorks.GetShortCurrencyString(x.PriceDaily)).SearchColumn("Цена в месяц", x => CurrencyWorks.GetShortCurrencyString(x.PriceMonthly)).End(), OrmObjectMapping <FreeRentPackage> .Create().Dialog <FreeRentPackageDlg>().DefaultTableView().SearchColumn("Название", x => x.Name).Column("Тип оборудования", x => x.EquipmentType.Name).OrderAsc(x => x.Name).End(), OrmObjectMapping <Counterparty> .Create().Dialog <CounterpartyDlg>().DefaultTableView().SearchColumn("Название", x => x.FullName).End(), OrmObjectMapping <Tag> .Create().Dialog <TagDlg>().DefaultTableView().SearchColumn("Название", x => x.Name).End(), OrmObjectMapping <CounterpartyContract> .Create().Dialog <CounterpartyContractDlg>(), OrmObjectMapping <DocTemplate> .Create().Dialog <DocTemplateDlg>().DefaultTableView().SearchColumn("Название", x => x.Name).Column("Тип", x => x.TemplateType.GetEnumTitle()).End(), OrmObjectMapping <TransferOperationDocument> .Create().Dialog <TransferOperationDocumentDlg>(), //Справочники с фильтрами OrmObjectMapping <Equipment> .Create().Dialog <EquipmentDlg>().JournalFilter <EquipmentFilter>() .DefaultTableView().Column("Код", x => x.Id.ToString()).SearchColumn("Номенклатура", x => x.NomenclatureName).Column("Тип", x => x.Nomenclature.Type.Name).SearchColumn("Серийный номер", x => x.Serial).Column("Дата последней обработки", x => x.LastServiceDate.ToShortDateString()).End(), //Логисткика OrmObjectMapping <RouteList> .Create().Dialog <RouteListCreateDlg>() .DefaultTableView().SearchColumn("Номер", x => x.Id.ToString()).Column("Дата", x => x.Date.ToShortDateString()).Column("Статус", x => x.Status.GetEnumTitle()).SearchColumn("Водитель", x => String.Format("{0} - {1}", x.Driver.FullName, x.Car.Title)).End(), OrmObjectMapping <RouteColumn> .Create().DefaultTableView().Column("Код", x => x.Id.ToString()).SearchColumn("Название", x => x.Name).End(), OrmObjectMapping <DeliveryShift> .Create().Dialog <DeliveryShiftDlg>().DefaultTableView().SearchColumn("Название", x => x.Name).SearchColumn("Диапазон времени", x => x.DeliveryTime).End(), OrmObjectMapping <DeliveryDaySchedule> .Create().Dialog <DeliveryDayScheduleDlg>().DefaultTableView().SearchColumn("Название", x => x.Name).End(), //Сервис OrmObjectMapping <ServiceClaim> .Create().Dialog <ServiceClaimDlg>().DefaultTableView().Column("Номер", x => x.Id.ToString()).Column("Тип", x => x.ServiceClaimType.GetEnumTitle()).Column("Оборудование", x => x.Equipment.Title).Column("Подмена", x => x.ReplacementEquipment != null ? "Да" : "Нет").Column("Точка доставки", x => x.DeliveryPoint.Title).End(), //Касса OrmObjectMapping <Income> .Create().Dialog <CashIncomeDlg> (), OrmObjectMapping <ExpenseCategory> .Create().Dialog <ExpenseCategoryViewModel>().DefaultTableView().Column("Код", x => x.Id.ToString()).SearchColumn("Название", e => e.Name).Column("Тип документа", e => e.ExpenseDocumentType.GetEnumTitle()).TreeConfig(new RecursiveTreeConfig <ExpenseCategory>(x => x.Parent, x => x.Childs)).End(), OrmObjectMapping <Expense> .Create().Dialog <CashExpenseDlg> (), OrmObjectMapping <AdvanceReport> .Create().Dialog <AdvanceReportDlg> (), OrmObjectMapping <Fine> .Create().Dialog <FineDlg> (), OrmObjectMapping <Premium> .Create().Dialog <PremiumDlg> (), OrmObjectMapping <IncomeCashTransferDocument> .Create().Dialog <IncomeCashTransferDlg>(), OrmObjectMapping <CommonCashTransferDocument> .Create().Dialog <CommonCashTransferDlg>(), //Банкинг OrmObjectMapping <AccountIncome> .Create(), OrmObjectMapping <AccountExpense> .Create(), //Склад OrmObjectMapping <Warehouse> .Create().Dialog <WarehouseDlg>().DefaultTableView().Column("Название", w => w.Name).Column("В архиве", w => w.IsArchive ? "Да":"").End(), OrmObjectMapping <RegradingOfGoodsTemplate> .Create().Dialog <RegradingOfGoodsTemplateDlg>().DefaultTableView().Column("Название", w => w.Name).End() }; #region Складские документы OrmMain.AddObjectDescription <IncomingWater>().Dialog <IncomingWaterDlg>(); OrmMain.AddObjectDescription <WriteoffDocument>().Dialog <WriteoffDocumentDlg>(); OrmMain.AddObjectDescription <InventoryDocument>().Dialog <InventoryDocumentDlg>(); OrmMain.AddObjectDescription <ShiftChangeWarehouseDocument>().Dialog <ShiftChangeWarehouseDocumentDlg>(); OrmMain.AddObjectDescription <RegradingOfGoodsDocument>().Dialog <RegradingOfGoodsDocumentDlg>(); OrmMain.AddObjectDescription <SelfDeliveryDocument>().Dialog <SelfDeliveryDocumentDlg>(); OrmMain.AddObjectDescription <CarLoadDocument>().Dialog <CarLoadDocumentDlg>(); OrmMain.AddObjectDescription <CarUnloadDocument>().Dialog <CarUnloadDocumentDlg>(); #endregion #region Goods OrmMain.AddObjectDescription <Nomenclature>().Dialog <NomenclatureDlg>().JournalFilter <NomenclatureFilter>(). DefaultTableView() .SearchColumn("Код", x => x.Id.ToString()) .SearchColumn("Название", x => x.Name) .Column("Тип", x => x.CategoryString) .SearchColumn("Номер в ИМ", x => x.OnlineStoreExternalId) .End(); OrmMain.AddObjectDescription <Folder1c>().Dialog <Folder1cDlg>() .DefaultTableView() .SearchColumn("Код 1С", x => x.Code1c) .SearchColumn("Название", x => x.Name) .TreeConfig(new RecursiveTreeConfig <Folder1c>(x => x.Parent, x => x.Childs)).End(); #endregion #region Простые справочники OrmMain.AddObjectDescription <DiscountReason>() .DefaultTableView() .SearchColumn("Название", x => x.Name) .End(); OrmMain.AddObjectDescription <GeographicGroup>() .Dialog <GeographicGroupDlg>() .DefaultTableView() .SearchColumn("Название", x => x.Name) .Column("Код", x => x.Id.ToString()) .End(); OrmMain.AddObjectDescription <TariffZone>() .DefaultTableView() .SearchColumn("Номер", x => x.Id.ToString()) .SearchColumn("Название", x => x.Name) .End(); OrmMain.AddObjectDescription <NonReturnReason>() .DefaultTableView() .SearchColumn("Код", x => x.Id.ToString()) .SearchColumn("Название", x => x.Name) .End(); OrmMain.AddObjectDescription <PaymentFrom>() .DefaultTableView() .SearchColumn("Код", x => x.Id.ToString()) .SearchColumn("Название", x => x.Name) .End(); OrmMain.AddObjectDescription <Post>() .DefaultTableView() .SearchColumn("Код", x => x.Id.ToString()) .SearchColumn("Название", x => x.Name) .End(); #endregion #region неПростые справочники OrmMain.AddObjectDescription <Subdivision>().Dialog <SubdivisionDlg>().DefaultTableView().SearchColumn("Название", x => x.Name).Column("Руководитель", x => x.Chief == null ? "" : x.Chief.ShortName).SearchColumn("Номер", x => x.Id.ToString()).TreeConfig(new RecursiveTreeConfig <Subdivision>(x => x.ParentSubdivision, x => x.ChildSubdivisions)).End(); OrmMain.AddObjectDescription <TypeOfEntity>() .Dialog <TypeOfEntityDlg>() .DefaultTableView() .SearchColumn("Тип документа", x => TypeOfEntityRepository.GetEntityNameByString(x.Type)) .SearchColumn("Название документа", x => x.CustomName) .SearchColumn("Код", x => x.Id.ToString()) .Column("Активно", x => !x.IsActive ? "нет" : String.Empty) .SearchColumn("Имя класса", x => x.Type) .OrderAsc(x => x.CustomName) .End(); OrmMain.AddObjectDescription <Employee>().Dialog <EmployeeDlg>().DefaultTableView() .Column("Код", x => x.Id.ToString()) .SearchColumn("Ф.И.О.", x => x.FullName) .Column("Категория", x => x.Category.GetEnumTitle()) .OrderAsc(x => x.LastName).OrderAsc(x => x.Name).OrderAsc(x => x.Patronymic) .End(); OrmMain.AddObjectDescription <Trainee>().Dialog <TraineeDlg>().DefaultTableView() .Column("Код", x => x.Id.ToString()) .SearchColumn("Ф.И.О.", x => x.FullName) .OrderAsc(x => x.LastName).OrderAsc(x => x.Name).OrderAsc(x => x.Patronymic) .End(); OrmMain.AddObjectDescription <DeliveryPriceRule>().Dialog <DeliveryPriceRuleDlg>().DefaultTableView() .Column("< 19л б.", x => x.Water19LCount.ToString()) .Column("< 6л б.", x => x.Water6LCount) .Column("< 1,5л б.", x => x.Water1500mlCount) .Column("< 0,6л б.", x => x.Water600mlCount) .Column("Минимальная сумма заказа", x => x.OrderMinSumEShopGoods.ToString()) .SearchColumn("Описание правила", x => x.Title) .End(); OrmMain.AddObjectDescription <Car>().Dialog <CarsDlg>().DefaultTableView() .SearchColumn("Код", x => x.Id.ToString()) .SearchColumn("Модель а/м", x => x.Model) .SearchColumn("Гос. номер", x => x.RegistrationNumber) .SearchColumn("Водитель", x => x.Driver != null ? x.Driver.FullName : string.Empty) .End(); OrmMain.AddObjectDescription <Certificate>().Dialog <CertificateDlg>().DefaultTableView() .SearchColumn("Имя", x => x.Name) .Column("Тип", x => x.TypeOfCertificate.GetEnumTitle()) .SearchColumn("Номер", x => x.Id.ToString()) .SearchColumn("Начало срока", x => x.StartDate.HasValue ? x.StartDate.Value.ToString("dd.MM.yyyy") : "Ошибка!") .SearchColumn("Окончание срока", x => x.ExpirationDate.HasValue ? x.ExpirationDate.Value.ToString("dd.MM.yyyy") : "Бессрочно") .Column("Архивный?", x => x.IsArchive ? "Да" : string.Empty) .OrderAsc(x => x.IsArchive) .OrderAsc(x => x.Id) .End(); OrmMain.AddObjectDescription <StoredImageResource>().Dialog <ImageLoaderDlg>().DefaultTableView() .SearchColumn("Номер", x => x.Id.ToString()) .SearchColumn("Название", x => x.Name) .End(); OrmMain.AddObjectDescription <DeliveryPointCategory>().Dialog <DeliveryPointCategoryDlg>().DefaultTableView() .SearchColumn("Код", x => x.Id.ToString()) .SearchColumn("Название", x => x.Name) .Column("В архиве?", x => x.IsArchive ? "Да" : "Нет") .OrderAsc(x => x.Name) .End(); OrmMain.AddObjectDescription <CounterpartyActivityKind>().Dialog <CounterpartyActivityKindDlg>().DefaultTableView() .SearchColumn("Код", x => x.Id.ToString()) .SearchColumn("Название", x => x.Name) .End(); #endregion OrmMain.ClassMappingList.AddRange(QSBanks.QSBanksMain.GetModuleMaping()); #endregion HistoryMain.Enable(); TemplatePrinter.InitPrinter(); ImagePrinter.InitPrinter(); //Настройка ParentReference ParentReferenceConfig.AddActions(new ParentReferenceActions <Organization, Account> { AddNewChild = (o, a) => o.AddAccount(a) }); ParentReferenceConfig.AddActions(new ParentReferenceActions <Counterparty, Account> { AddNewChild = (c, a) => c.AddAccount(a) }); ParentReferenceConfig.AddActions(new ParentReferenceActions <Employee, Account> { AddNewChild = (c, a) => c.AddAccount(a) }); ParentReferenceConfig.AddActions(new ParentReferenceActions <Trainee, Account> { AddNewChild = (c, a) => c.AddAccount(a) }); }
public MainWindow() : base(Gtk.WindowType.Toplevel) { Build(); //Передаем лебл QSMain.StatusBarLabel = labelStatus; ProgressBar = progresswidget1; this.Title = AutofacScope.Resolve <IApplicationInfo>().ProductTitle; QSMain.MakeNewStatusTargetForNlog(); QSMain.CheckServer(this); // Проверяем настройки сервера NavigationManager = AutofacScope.Resolve <TdiNavigationManager>(new TypedParameter(typeof(TdiNotebook), tdiMain)); tdiMain.WidgetResolver = AutofacScope.Resolve <ITDIWidgetResolver>(new TypedParameter(typeof(Assembly[]), new[] { Assembly.GetAssembly(typeof(OrganizationViewModel)) })); var checker = new VersionCheckerService(MainClass.AppDIContainer); checker.RunUpdate(); var userService = AutofacScope.Resolve <IUserService>(); var user = userService.GetCurrentUser(UoW); var databaseInfo = AutofacScope.Resolve <IDataBaseInfo>(); //Пока такая реализация чтобы не плодить сущностей. var connectionBuilder = AutofacScope.Resolve <MySqlConnectionStringBuilder>(); if (connectionBuilder.UserID == "root") { string Message = "Вы зашли в программу под администратором базы данных. У вас есть только возможность создавать других пользователей."; MessageDialog md = new MessageDialog(this, DialogFlags.DestroyWithParent, MessageType.Info, ButtonsType.Ok, Message); md.Run(); md.Destroy(); Users WinUser = new Users(); WinUser.Show(); WinUser.Run(); WinUser.Destroy(); return; } if (databaseInfo.IsDemo) { string Message = "Вы подключились к демонстрационному серверу. НЕ используете его для работы! " + "Введенные данные будут доступны другим пользователям.\n\nДля работы вам необходимо " + "установить собственный сервер или купить подписку на QS:Облако."; MessageDialog md = new MessageDialog(this, DialogFlags.DestroyWithParent, MessageType.Info, ButtonsType.Ok, Message); md.Run(); md.Destroy(); dialogAuthenticationAction.Sensitive = false; ActionSN.Sensitive = false; } bool isWindows = RuntimeInformation.IsOSPlatform(OSPlatform.Windows); if (isWindows) { this.KeyReleaseEvent += ClipboardWorkaround.HandleKeyReleaseEvent; } TDIMain.MainNotebook = tdiMain; this.KeyReleaseEvent += TDIMain.TDIHandleKeyReleaseEvent; UsersAction.Sensitive = user.IsAdmin; labelUser.LabelProp = user.Name; //Настраиваем новости var feeds = new List <NewsFeed>() { new NewsFeed("workwearsite", "Новости программы", "http://workwear.qsolution.ru/?feed=atom") }; var reader = AutofacScope.Resolve <FeedReader>(new TypedParameter(typeof(List <NewsFeed>), feeds)); reader.LoadReadFeed(); var newsmenuModel = new QS.NewsFeed.ViewModels.NewsMenuViewModel(reader); var newsmenu = new NewsMenuView(newsmenuModel); menubar1.Add(newsmenu); newsmenuModel.LoadFeed(); ReadUserSettings(); var EntityAutocompleteSelector = new JournalViewModelAutocompleteSelector <EmployeeCard, EmployeeJournalViewModel>(UoW, AutofacScope); entitySearchEmployee.ViewModel = new EntitySearchViewModel <EmployeeCard>(EntityAutocompleteSelector); entitySearchEmployee.ViewModel.EntitySelected += SearchEmployee_EntitySelected; NavigationManager = AutofacScope.Resolve <TdiNavigationManager>(new TypedParameter(typeof(TdiNotebook), tdiMain)); tdiMain.WidgetResolver = AutofacScope.Resolve <ITDIWidgetResolver>(new TypedParameter(typeof(Assembly[]), new[] { Assembly.GetAssembly(typeof(OrganizationViewModel)) })); NavigationManager.ViewModelOpened += NavigationManager_ViewModelOpened; #region Проверки и исправления базы //Если склады отсутствуют создаём новый, так как для версий ниже предприятия пользователь его создать не сможет. if (UoW.GetAll <Warehouse>().Count() == 0) { CreateDefaultWarehouse(); } //Если у базы еще нет Guid создаем его. using (var localScope = MainClass.AppDIContainer.BeginLifetimeScope()) { var baseParam = localScope.Resolve <BaseParameters>(); if (baseParam.Dynamic.BaseGuid == null) { baseParam.Dynamic.BaseGuid = Guid.NewGuid(); } } #endregion FeaturesService = AutofacScope.Resolve <FeaturesService>(); DisableFeatures(); HistoryMain.Enable(); }