Files
raven/server/AyaNova/models/GlobalBizSettings.cs
2021-11-15 20:09:20 +00:00

153 lines
6.3 KiB
C#

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 FilterCaseSensitive { 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 long? CustomerTagWorkOrderReport1Id { get; set; }
public List<string> CustomerWorkOrderReport1Tags { get; set; } = new List<string>();
public long? CustomerTagWorkOrderReport2Id { get; set; }
public List<string> CustomerWorkOrderReport2Tags { get; set; } = new List<string>();
public long? CustomerTagWorkOrderReport3Id { get; set; }
public List<string> CustomerWorkOrderReport3Tags { get; set; } = new List<string>();
public long? CustomerTagWorkOrderReport4Id { get; set; }
public List<string> CustomerWorkOrderReport4Tags { get; set; } = new List<string>();
public long? CustomerTagWorkOrderReport5Id { get; set; }
public List<string> CustomerWorkOrderReport5Tags { get; set; } = new List<string>();
public string CustomerServiceRequestInfoText { get; set; }
public bool CustomerAllowCSR { get; set; }
public List<string> CustomerAllowCSRInTags { get; set; } = new List<string>();
public bool CustomerAllowViewWO { get; set; }
public List<string> CustomerAllowViewWOInTags { get; set; } = new List<string>();
public bool CustomerAllowWOWiki { get; set; }
public List<string> CustomerAllowWOWikiInTags { get; set; } = new List<string>();
public bool CustomerAllowWOAttachments { get; set; }
public List<string> CustomerAllowWOAttachmentsInTags { get; set; } = new List<string>();
public bool CustomerAllowUserSettings { get; set; }
public List<string> CustomerAllowUserSettingsInTags { get; set; } = new List<string>();
public bool CustomerAllowNotifyServiceImminent { get; set; }
public List<string> CustomerAllowNotifyServiceImminentInTags { get; set; } = new List<string>();
public bool CustomerAllowNotifyCSRAccepted { get; set; }
public List<string> CustomerAllowNotifyCSRAcceptedInTags { get; set; } = new List<string>();
public bool CustomerAllowNotifyCSRRejected { get; set; }
public List<string> CustomerAllowNotifyCSRRejectedInTags { get; set; } = new List<string>();
public bool CustomerAllowNotifyWOCreated { get; set; }
public List<string> CustomerAllowNotifyWOCreatedInTags { get; set; } = new List<string>();
public bool CustomerAllowNotifyWOCompleted { get; set; }
public List<string> CustomerAllowNotifyWOCompletedInTags { get; set; } = new List<string>();
public string SignatureTitle { get; set; }
public string SignatureHeader { get; set; }
public string SignatureFooter { get; set; }
public GlobalBizSettings()
{
Id = 1;//always 1
FilterCaseSensitive = 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 WOAttachments, bool UserSettings, bool NotifyServiceImminent, bool NotifyCSRAccepted, bool NotifyCSRRejected, bool NotifyWOCreated, bool NotifyWOCompleted, long EntityId, bool EntityActive);
}
/*
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
*/