using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using Newtonsoft.Json; namespace AyaNova.Models { public class GlobalBizSettings { //This is the replacement for most of the Global object settings in v7 which has been subdivided further in v8 into backup / ops / notification and this general biz //this object is only interested in Business object related settings and configuration specifically public long Id { get; set; }//this is always 1 as there is only ever one single global biz object public uint Concurrency { get; set; } //Global settings //############# NOTE: OTHER AREAS THAT MUST MATCH CHANGES HERE ARE: //GlobalBizSettingsController::GetClientGlobalBizSettings //ServerGlobalBizSettings //Picklist and other searches override the normal case insensitive value //this is precautionarily added for non latinate languages where it could be an issue public bool SearchCaseSensitiveOnly { get; set; } public bool UseInventory { get; set; } //TAX CODE DEFAULTS public long? TaxPartPurchaseId { get; set; } public long? TaxPartSaleId { get; set; } public long? TaxRateSaleId { get; set; } //DEFAULT WO MINUTES [Required] public int WorkLaborScheduleDefaultMinutes { get; set; } [Required] public int WorkOrderTravelDefaultMinutes { get; set; } [Required] public TimeSpan WorkOrderCompleteByAge { get; set; } = TimeSpan.Zero;//was workorderclosebyage public bool AllowScheduleConflicts { get; set; } = true; //CUSTOMER ACCESS FEATURES AND SETTINGS public long? CustomerDefaultWorkOrderReportId { get; set; } public string CustomerServiceRequestInfoHTML { get; set; } public bool CustomerAllowCSR { get; set; } public List CustomerAllowCSRInTags { get; set; } = new List(); public List CustomerAllowCSROutTags { get; set; } = new List(); public bool CustomerAllowViewWO { get; set; } public List CustomerAllowViewWOInTags { get; set; } = new List(); public List CustomerAllowViewWOOutTags { get; set; } = new List(); public bool CustomerAllowWOWiki { get; set; } public List CustomerAllowWOWikiInTags { get; set; } = new List(); public List CustomerAllowWOWikiOutTags { get; set; } = new List(); public bool CustomerAllowUserSettings { get; set; } public List CustomerAllowUserSettingsInTags { get; set; } = new List(); public List CustomerAllowUserSettingsOutTags { get; set; } = new List(); public bool CustomerAllowNotifyServiceImminent { get; set; } public List CustomerAllowNotifyServiceImminentInTags { get; set; } = new List(); public List CustomerAllowNotifyServiceImminentOutTags { get; set; } = new List(); public bool CustomerAllowNotifyCSRAccepted { get; set; } public List CustomerAllowNotifyCSRAcceptedInTags { get; set; } = new List(); public List CustomerAllowNotifyCSRAcceptedOutTags { get; set; } = new List(); public bool CustomerAllowNotifyCSRRejected { get; set; } public List CustomerAllowNotifyCSRRejectedInTags { get; set; } = new List(); public List CustomerAllowNotifyCSRRejectedOutTags { get; set; } = new List(); public bool CustomerAllowNotifyWOCreated { get; set; } public List CustomerAllowNotifyWOCreatedInTags { get; set; } = new List(); public List CustomerAllowNotifyWOCreatedOutTags { get; set; } = new List(); public bool CustomerAllowNotifyWOCompleted { get; set; } public List CustomerAllowNotifyWOCompletedInTags { get; set; } = new List(); public List CustomerAllowNotifyWOCompletedOutTags { get; set; } = new List(); public string SignatureTitle { get; set; } public string SignatureHeader { get; set; } public string SignatureFooter { get; set; } public GlobalBizSettings() { Id = 1;//always 1 SearchCaseSensitiveOnly = false; UseInventory = true; } } //Used internally and at client end as extended rights atop roles system in relation only to Contact (customer type users) public record CustomerRightsRecord(bool CSR, bool WO, bool WOWIKI, bool UserSettings, bool NotifyServiceImminent, bool NotifyCSRAccepted, bool NotifyCSRRejected, bool NotifyWOCreated, bool NotifyWOCompleted); } /* CREATE TABLE [dbo].[AGLOBAL]( [ACREATED] [datetime] NULL, [AMODIFIED] [datetime] NULL, [ACREATOR] [uniqueidentifier] NULL, [AMODIFIER] [uniqueidentifier] NULL, [ATAXPARTPURCHASEID] [uniqueidentifier] NULL, [ATAXPARTSALEID] [uniqueidentifier] NULL, [ATAXRATESALEID] [uniqueidentifier] NULL, [AALLOWSCHEDULECONFLICTS] [bit] NOT NULL, [ALANGUAGE] [nvarchar](255) NULL, [AUSEREGIONS] [bit] NOT NULL, [AWORKORDERCLOSEDSTATUS] [uniqueidentifier] NULL, [AWORKORDERSUMMARYTEMPLATE] [nvarchar](500) NOT NULL, [AUSEINVENTORY] [bit] NOT NULL, [AUNITNAMEFORMAT] [smallint] NULL, [ASCHEDULEABLEUSERNAMEFORMAT] [smallint] NULL, [ACJKINDEX] [bit] NOT NULL, [APARTFORMAT] [smallint] NULL, [AWORKORDERCLOSEBYAGE] [int] NOT NULL, [AUSENOTIFICATION] [bit] NOT NULL, [ANOTIFYSMTPHOST] [nvarchar](255) NULL, [ANOTIFYSMTPACCOUNT] [nvarchar](255) NULL, [ANOTIFYSMTPPASSWORD] [nvarchar](255) NULL, [ANOTIFYSMTPFROM] [nvarchar](255) NULL, [ACOORDINATESTYLE] [smallint] NULL, [ADEFAULTLATITUDE] [smallint] NULL, [ADEFAULTLONGITUDE] [smallint] NULL, [ADEFAULTSERVICETEMPLATEID] [uniqueidentifier] NULL, [AMAXFILESIZEMB] [int] NULL, [ALABORSCHEDUSERDFLTTIMESPAN] [int] NOT NULL, [ATRAVELDFLTTIMESPAN] [int] NOT NULL, [ANOTIFYENCRYPTION] [nvarchar](255) NULL, [ASMTPRETRY] [bit] NOT NULL, [AFORMCUSTOM] [ntext] NULL, [ASIGNATURETITLE] [ntext] NULL, [ASIGNATUREHEADER] [ntext] NULL, [ASIGNATUREFOOTER] [ntext] NULL, [ASCHEDUSERNONTODAYSTARTTIME] [datetime] NULL, [AMAINGRIDAUTOREFRESH] [bit] NOT NULL */