This commit is contained in:
2021-11-12 21:00:58 +00:00
parent 98d495dfd2
commit dbb51fe740
2 changed files with 126 additions and 120 deletions

2
.vscode/launch.json vendored
View File

@@ -55,7 +55,7 @@
"AYANOVA_FOLDER_USER_FILES": "c:\\temp\\RavenTestData\\userfiles",
"AYANOVA_FOLDER_BACKUP_FILES": "c:\\temp\\RavenTestData\\backupfiles",
"AYANOVA_FOLDER_TEMPORARY_SERVER_FILES": "c:\\temp\\RavenTestData\\tempfiles",
"AYANOVA_SERVER_TEST_MODE": "false",
"AYANOVA_SERVER_TEST_MODE": "true",
"AYANOVA_SERVER_TEST_MODE_SEEDLEVEL": "small",
"AYANOVA_SERVER_TEST_MODE_TZ_OFFSET": "-8",
"AYANOVA_BACKUP_PG_DUMP_PATH": "C:\\data\\code\\postgres_14\\bin\\"

View File

@@ -22,18 +22,18 @@ namespace AyaNova.Util
//!!!!WARNING: BE SURE TO UPDATE THE DbUtil::EmptyBizDataFromDatabaseForSeedingOrImportingAsync WHEN NEW TABLES ADDED!!!!
private const int DESIRED_SCHEMA_LEVEL = 1;
internal const long EXPECTED_COLUMN_COUNT = 1301;
internal const long EXPECTED_COLUMN_COUNT = 1302;
internal const long EXPECTED_INDEX_COUNT = 153;
internal const long EXPECTED_CHECK_CONSTRAINTS = 518;
internal const long EXPECTED_FOREIGN_KEY_CONSTRAINTS = 193;
internal const long EXPECTED_FOREIGN_KEY_CONSTRAINTS = 198;
internal const long EXPECTED_VIEWS = 11;
internal const long EXPECTED_ROUTINES = 2;
//!!!!WARNING: BE SURE TO UPDATE THE DbUtil::EmptyBizDataFromDatabaseForSeedingOrImportingAsync WHEN NEW TABLES ADDED!!!!
///////////////////////////////////////////////////////////////// C1301:I153:CC518:FC193:V11:R2
///////////////////////////////////////////////////////////////// (C1302:I153:CC518:FC198:V11:R2)
/*
@@ -261,10 +261,11 @@ namespace AyaNova.Util
+ "signaturetitle TEXT, "
+ "signatureheader TEXT, "
+ "signaturefooter TEXT, "
+ "customerservicerequestinfotext TEXT, "
+ "customerallowcsr BOOL DEFAULT FALSE, customerallowcsrintags VARCHAR(255) ARRAY, "
+ "customerallowviewwo BOOL DEFAULT FALSE, customerallowviewwointags VARCHAR(255) ARRAY, "
+ "customerworkorderreport1tags VARCHAR(255) ARRAY, customerworkorderreport2tags VARCHAR(255) ARRAY, "
+ "customerworkorderreport3tags VARCHAR(255) ARRAY, customerworkorderreport4tags VARCHAR(255) ARRAY, customerworkorderreport5tags VARCHAR(255) ARRAY, "
+ "customerallowwowiki BOOL DEFAULT FALSE, customerallowwowikiintags VARCHAR(255) ARRAY, "
+ "customerallowusersettings BOOL DEFAULT FALSE, customerallowusersettingsintags VARCHAR(255) ARRAY, "
+ "customerallownotifyserviceimminent BOOL DEFAULT FALSE, customerallownotifyserviceimminentintags VARCHAR(255) ARRAY, "
@@ -359,122 +360,122 @@ $BODY$;
/*
/*
-- FUNCTION: public.aygetnameex(bigint, integer)
-- DROP FUNCTION IF EXISTS public.aygetnameex(bigint, integer);
-- FUNCTION: public.aygetnameex(bigint, integer)
-- DROP FUNCTION IF EXISTS public.aygetnameex(bigint, integer);
CREATE OR REPLACE FUNCTION PUBLIC.AYGETNAMEEX(AYOBJECTID bigint, AYATYPE integer, TRANSLATIONID integer) RETURNS text LANGUAGE 'plpgsql' COST 100 STABLE PARALLEL UNSAFE AS $BODY$
DECLARE
aytable TEXT DEFAULT '';
aynamecolumn TEXT DEFAULT 'name';
aytkey TEXT DEFAULT 'no';
returnstr TEXT DEFAULT '';
BEGIN
case ayatype
when 0 then aytkey= 'NoType';
when 1 then aytkey= 'Global';
when 2 then return 'FormUserOptions';
when 3 then aytable = 'auser';
when 4 then aytkey= 'ServerState';
when 5 then aytkey= 'License';
when 6 then aytkey= 'LogFile';
when 7 then aytkey= 'PickListTemplate';
when 8 then aytable = 'acustomer';
when 9 then aytkey= 'ServerJob';
when 10 then aytable = 'acontract';
when 11 then aytkey= 'TrialSeeder';
when 12 then aytkey= 'ServerMetrics';
when 13 then aytable = 'atranslation';
when 14 then aytkey= 'UserOptions';
when 15 then aytable = 'aheadoffice';
when 16 then aytable = 'aloanunit';
when 17 then aytable = 'afileattachment'; aynamecolumn ='displayfilename';
when 18 then aytable = 'adatalistsavedfilter';
when 19 then aytable = 'aformcustom'; aynamecolumn = 'formkey';
when 20 then aytable = 'apart'; aynamecolumn ='partnumber';
when 21 then aytable = 'apm'; aynamecolumn ='serial';
when 22 then aytkey= 'PMItem';
when 23 then aytkey= 'WorkOrderItemExpense';
when 24 then aytkey= 'WorkOrderItemLabor';
when 25 then aytable = 'aproject';
when 26 then aytable = 'apurchaseorder'; aynamecolumn = 'serial';
when 27 then aytable = 'aquote'; aynamecolumn = 'serial';
when 28 then aytkey= 'QuoteItem';
when 29 then aytkey= 'WorkOrderItemLoan';
when 30 then aytkey= 'WorkOrderItemPart';
when 31 then aytable = 'aunit'; aynamecolumn = 'serial';
when 32 then aytable = 'aunitmodel'; aynamecolumn = 'name';
when 33 then aytable = 'avendor';
when 34 then aytable = 'aworkorder'; aynamecolumn = 'serial';
when 35 then aytkey= 'WorkOrderItem';
when 36 then aytkey= 'WorkOrderItemExpense';
when 37 then aytkey= 'WorkOrderItemLabor';
when 38 then aytkey= 'WorkOrderItemLoan';
when 39 then aytkey= 'WorkOrderItemPart';
when 40 then aytkey= 'WorkOrderItemPartRequest';
when 41 then aytkey= 'WorkOrderItemScheduledUser';
when 42 then aytkey= 'WorkOrderItemTask';
when 43 then aytkey= 'WorkOrderItemTravel';
when 44 then aytkey= 'WorkOrderItemUnit';
when 45 then aytkey= 'WorkOrderItemScheduledUser';
when 46 then aytkey= 'WorkOrderItemTask';
when 47 then aytkey= 'GlobalOps';
when 48 then aytkey= 'BizMetrics';
when 49 then aytkey= 'Backup';
when 50 then aytable = 'ainappnotification';
when 51 then aytkey= 'NotifySubscription';
when 52 then aytable = 'areminder';
when 53 then aytkey= 'UnitMeterReading';
when 54 then aytable = 'acustomerservicerequest';
when 56 then aytkey= 'OpsNotificationSettings';
when 57 then aytable = 'areport';
when 58 then aytkey= 'DashBoardView';
when 59 then aytable = 'acustomernote'; aynamecolumn = 'notedate';
when 60 then aytable = 'amemo';
when 61 then aytable = 'areview';
when 62 then aytable = 'aservicerate';
when 63 then aytable = 'atravelrate';
when 64 then aytable = 'ataxcode';
when 65 then aytable = 'apartassembly';
when 66 then aytable = 'apartwarehouse';
when 67 then aytable = 'apartinventory'; aynamecolumn='description';
when 68 then return format('DataListColumnView %L', ayobjectid);
when 71 then aytable = 'aworkorderstatus';
when 72 then aytable = 'aTaskGroup';
when 73 then aytkey= 'WorkOrderItemOutsideService';
when 74 then aytable = 'aWorkOrderItemPriority';
when 75 then aytable = 'aWorkOrderItemStatus';
when 76 then aytkey= 'WorkOrderItemTravel';
when 77 then aytkey= 'WorkOrderItemUnit';
when 78 then aytable = 'aquotestatus';
when 79 then aytkey= 'WorkOrderItemOutsideService';
when 80 then aytkey= 'WorkOrderItemExpense';
when 81 then aytkey= 'WorkOrderItemLabor';
when 82 then aytkey= 'WorkOrderItemLoan';
when 83 then aytkey= 'WorkOrderItemPart';
when 84 then aytkey= 'WorkOrderItemPartRequest';
when 85 then aytkey= 'WorkOrderItemScheduledUser';
when 86 then aytkey= 'WorkOrderItemTask';
when 87 then aytkey= 'WorkOrderItemTravel';
when 88 then aytkey= 'WorkOrderItemUnit';
when 89 then aytkey= 'WorkOrderItemOutsideService';
else
RETURN returnstr;
end case;
CREATE OR REPLACE FUNCTION PUBLIC.AYGETNAMEEX(AYOBJECTID bigint, AYATYPE integer, TRANSLATIONID integer) RETURNS text LANGUAGE 'plpgsql' COST 100 STABLE PARALLEL UNSAFE AS $BODY$
DECLARE
aytable TEXT DEFAULT '';
aynamecolumn TEXT DEFAULT 'name';
aytkey TEXT DEFAULT 'no';
returnstr TEXT DEFAULT '';
BEGIN
case ayatype
when 0 then aytkey= 'NoType';
when 1 then aytkey= 'Global';
when 2 then return 'FormUserOptions';
when 3 then aytable = 'auser';
when 4 then aytkey= 'ServerState';
when 5 then aytkey= 'License';
when 6 then aytkey= 'LogFile';
when 7 then aytkey= 'PickListTemplate';
when 8 then aytable = 'acustomer';
when 9 then aytkey= 'ServerJob';
when 10 then aytable = 'acontract';
when 11 then aytkey= 'TrialSeeder';
when 12 then aytkey= 'ServerMetrics';
when 13 then aytable = 'atranslation';
when 14 then aytkey= 'UserOptions';
when 15 then aytable = 'aheadoffice';
when 16 then aytable = 'aloanunit';
when 17 then aytable = 'afileattachment'; aynamecolumn ='displayfilename';
when 18 then aytable = 'adatalistsavedfilter';
when 19 then aytable = 'aformcustom'; aynamecolumn = 'formkey';
when 20 then aytable = 'apart'; aynamecolumn ='partnumber';
when 21 then aytable = 'apm'; aynamecolumn ='serial';
when 22 then aytkey= 'PMItem';
when 23 then aytkey= 'WorkOrderItemExpense';
when 24 then aytkey= 'WorkOrderItemLabor';
when 25 then aytable = 'aproject';
when 26 then aytable = 'apurchaseorder'; aynamecolumn = 'serial';
when 27 then aytable = 'aquote'; aynamecolumn = 'serial';
when 28 then aytkey= 'QuoteItem';
when 29 then aytkey= 'WorkOrderItemLoan';
when 30 then aytkey= 'WorkOrderItemPart';
when 31 then aytable = 'aunit'; aynamecolumn = 'serial';
when 32 then aytable = 'aunitmodel'; aynamecolumn = 'name';
when 33 then aytable = 'avendor';
when 34 then aytable = 'aworkorder'; aynamecolumn = 'serial';
when 35 then aytkey= 'WorkOrderItem';
when 36 then aytkey= 'WorkOrderItemExpense';
when 37 then aytkey= 'WorkOrderItemLabor';
when 38 then aytkey= 'WorkOrderItemLoan';
when 39 then aytkey= 'WorkOrderItemPart';
when 40 then aytkey= 'WorkOrderItemPartRequest';
when 41 then aytkey= 'WorkOrderItemScheduledUser';
when 42 then aytkey= 'WorkOrderItemTask';
when 43 then aytkey= 'WorkOrderItemTravel';
when 44 then aytkey= 'WorkOrderItemUnit';
when 45 then aytkey= 'WorkOrderItemScheduledUser';
when 46 then aytkey= 'WorkOrderItemTask';
when 47 then aytkey= 'GlobalOps';
when 48 then aytkey= 'BizMetrics';
when 49 then aytkey= 'Backup';
when 50 then aytable = 'ainappnotification';
when 51 then aytkey= 'NotifySubscription';
when 52 then aytable = 'areminder';
when 53 then aytkey= 'UnitMeterReading';
when 54 then aytable = 'acustomerservicerequest';
when 56 then aytkey= 'OpsNotificationSettings';
when 57 then aytable = 'areport';
when 58 then aytkey= 'DashBoardView';
when 59 then aytable = 'acustomernote'; aynamecolumn = 'notedate';
when 60 then aytable = 'amemo';
when 61 then aytable = 'areview';
when 62 then aytable = 'aservicerate';
when 63 then aytable = 'atravelrate';
when 64 then aytable = 'ataxcode';
when 65 then aytable = 'apartassembly';
when 66 then aytable = 'apartwarehouse';
when 67 then aytable = 'apartinventory'; aynamecolumn='description';
when 68 then return format('DataListColumnView %L', ayobjectid);
when 71 then aytable = 'aworkorderstatus';
when 72 then aytable = 'aTaskGroup';
when 73 then aytkey= 'WorkOrderItemOutsideService';
when 74 then aytable = 'aWorkOrderItemPriority';
when 75 then aytable = 'aWorkOrderItemStatus';
when 76 then aytkey= 'WorkOrderItemTravel';
when 77 then aytkey= 'WorkOrderItemUnit';
when 78 then aytable = 'aquotestatus';
when 79 then aytkey= 'WorkOrderItemOutsideService';
when 80 then aytkey= 'WorkOrderItemExpense';
when 81 then aytkey= 'WorkOrderItemLabor';
when 82 then aytkey= 'WorkOrderItemLoan';
when 83 then aytkey= 'WorkOrderItemPart';
when 84 then aytkey= 'WorkOrderItemPartRequest';
when 85 then aytkey= 'WorkOrderItemScheduledUser';
when 86 then aytkey= 'WorkOrderItemTask';
when 87 then aytkey= 'WorkOrderItemTravel';
when 88 then aytkey= 'WorkOrderItemUnit';
when 89 then aytkey= 'WorkOrderItemOutsideService';
else
RETURN returnstr;
end case;
IF aytkey='no' then
EXECUTE format('SELECT %I FROM %I WHERE id = %L', aynamecolumn, aytable, ayobjectid) INTO returnstr;
else
EXECUTE format('select display from atranslationitem where translationid=%L and key=%L', TRANSLATIONID, aytkey) INTO returnstr;
END if;
RETURN returnstr;
END;
$BODY$;
IF aytkey='no' then
EXECUTE format('SELECT %I FROM %I WHERE id = %L', aynamecolumn, aytable, ayobjectid) INTO returnstr;
else
EXECUTE format('select display from atranslationitem where translationid=%L and key=%L', TRANSLATIONID, aytkey) INTO returnstr;
END if;
RETURN returnstr;
END;
$BODY$;
ALTER FUNCTION PUBLIC.AYGETNAME(bigint, integer) OWNER TO POSTGRES;
*/
ALTER FUNCTION PUBLIC.AYGETNAME(bigint, integer) OWNER TO POSTGRES;
*/
//Name fetcher function
//CoreBizObject ADD here
@@ -986,9 +987,9 @@ $BODY$ LANGUAGE PLPGSQL STABLE");
+ "estimatedquantity DECIMAL(19,5) NOT NULL default 0"
+ ")");
//indexes to speed up scheduling queries
await ExecQueryAsync("CREATE INDEX idx_aworkorderitemscheduleduser_userid ON aworkorderitemscheduleduser (userid)");
await ExecQueryAsync("CREATE INDEX idx_aworkorderitemscheduleduser_startdate ON aworkorderitemscheduleduser (startdate)");
await ExecQueryAsync("CREATE INDEX idx_aworkorderitemscheduleduser_stopdate ON aworkorderitemscheduleduser (stopdate)");
await ExecQueryAsync("CREATE INDEX idx_aworkorderitemscheduleduser_userid ON aworkorderitemscheduleduser (userid)");
await ExecQueryAsync("CREATE INDEX idx_aworkorderitemscheduleduser_startdate ON aworkorderitemscheduleduser (startdate)");
await ExecQueryAsync("CREATE INDEX idx_aworkorderitemscheduleduser_stopdate ON aworkorderitemscheduleduser (stopdate)");
//WORKORDERITEM TASK
@@ -1334,6 +1335,11 @@ $BODY$ LANGUAGE PLPGSQL STABLE");
//Global customer default workorder report default
await ExecQueryAsync("ALTER TABLE aglobalbizsettings ADD column customerdefaultworkorderreportid BIGINT REFERENCES areport(id) ");
await ExecQueryAsync("ALTER TABLE aglobalbizsettings ADD column customertagworkorderreport1id BIGINT REFERENCES areport(id) ");
await ExecQueryAsync("ALTER TABLE aglobalbizsettings ADD column customertagworkorderreport2id BIGINT REFERENCES areport(id) ");
await ExecQueryAsync("ALTER TABLE aglobalbizsettings ADD column customertagworkorderreport3id BIGINT REFERENCES areport(id) ");
await ExecQueryAsync("ALTER TABLE aglobalbizsettings ADD column customertagworkorderreport4id BIGINT REFERENCES areport(id) ");
await ExecQueryAsync("ALTER TABLE aglobalbizsettings ADD column customertagworkorderreport5id BIGINT REFERENCES areport(id) ");
//Load the stock REPORT TEMPLATES
await AyaNova.Biz.PrimeData.PrimeReportTemplates();