UNPKG

jsharmony-factory

Version:
480 lines 27.7 kB
{ "Helper_SendTXTEmail": "select txt_title,txt_body,txt_bcc,txt_type from {schema}.txt__tbl where txt_process='EMAIL' and txt_attrib=@txt_attrib", "HelperRender_getTXT": "select txt_body from {schema}.txt__tbl where txt_process=@txt_process and txt_attrib=@txt_attrib", "get_tstmp": "{schema}.my_now()", "context_user": "{schema}.my_db_user()", "sms_send_txt": "select txt_title,txt_body,txt_bcc from {schema}.txt__tbl where txt_process='SMS' and txt_attrib=@txt_attrib", "str_concat":"+", "func_prefix":"dbo.", "$iif":{ "params": ["cond","vtrue","vfalse"], "sql": "iif(%%%cond%%%, %%%vtrue%%%, %%%vfalse%%%)" }, "$ifnull":{ "params": ["a","b"], "sql": "isnull(%%%a%%%,%%%b%%%)" }, "$addDays":{ "params": ["date","cnt"], "sql": "dateadd(day, %%%cnt%%%, %%%date%%%)" }, "$addBusinessDays":{ "params": ["date","cnt"], "sql": [ "dateadd(day, (", " select", " case", " when %%%cnt%%% = 0 then 0", " when %%%cnt%%% > 0 then", " t.partial_days + 7 * t.weeks +", " iif(t.wd + t.partial_days >= 6, 2, 0) +", " iif(t.wd = 6, -1, 0) +", " iif(t.partial_days = 0 AND t.wd % 6 = 0, -2, 0)", " when %%%cnt%%% < 0 then", " t.partial_days + 7 * t.weeks +", " iif(t.wd + t.partial_days <= 0, -2, 0) +", " iif(t.wd = 0, 1, 0) +", " iif(t.partial_days = 0 AND t.wd % 6 = 0, 2, 0)", " end", " from (select %%%cnt%%%%5 as partial_days,%%%cnt%%%/5 as weeks,((datepart(dw, %%%date%%%) - 1) + @@datefirst) % 7 wd) t", "), %%%date%%%)", ] }, "$addHours":{ "params": ["date","cnt"], "sql": "dateadd(hour, %%%cnt%%%, %%%date%%%)" }, "$addMinutes":{ "params": ["date","cnt"], "sql": "dateadd(minute, %%%cnt%%%, %%%date%%%)" }, "$toDate":{ "params": ["date"], "sql": "cast(%%%date%%% as date)" }, "$topn": { "params": ["CNT","..."], "sql": "top %%%CNT%%% %%%...%%%" }, "$getInsertCount": { "params": ["..."], "sql": "$getUpdateCount(%%%...%%%)" }, "$getUpdateCount": { "params": [], "exec": "return [].slice.call(arguments).join(',')+';select @@rowcount as xrowcount ';" }, "$errorif": { "params": ["COND","MSG"], "exec": [ "var errmsg_var = 'jsherrmsg'+Math.round(Math.random()*10000).toString(); while(errmsg_var in this.vars) errmsg_var += '_'; this.vars[errmsg_var] = true;", "var rslt = 'if('+COND.trim()+') ';", "MSG = MSG.trim();", "if(MSG && (MSG[0]=='\\'')) MSG = '\\'Application Error - '+MSG.substr(1);", "rslt += 'begin ';", "rslt += 'declare @'+errmsg_var+' varchar(max); \\nselect @'+errmsg_var+'='+MSG+';\\n';", "rslt += 'raiserror(@'+errmsg_var+',16,1); ';", "rslt += 'if (@@TRANCOUNT > 0) rollback transaction; return; end;';", "return rslt;" ] }, "$ceiling": { "params": ["VAL"], "sql": "ceiling(%%%VAL%%%)" }, "$floor": { "params": ["VAL"], "sql": "floor(%%%VAL%%%)" }, "$binary":{ "params": ["a"], "sql": "0x%%%a%%%" }, "$ascii": { "params": ["VAL"], "sql": "ascii(%%%VAL%%%)" }, "$greatest": { "params": [], "exec": [ "if(arguments.length<1) return 'null';", "if(arguments.length<2) return arguments[0];", "var rslt = '(case ';", "for(var i=0;i<arguments.length-1;i++){", " rslt += ' when (';", " let firstItem = true;", " for(var j=0;j<arguments.length;j++){", " if(i==j) continue;", " if(!firstItem) rslt += ' and ';", " firstItem = false;", " rslt += '(' + '(' + arguments[i] + ') >= (' + arguments[j] + ')' + ')';", " }", " rslt += ' ) then ('+arguments[i]+')';", "}", "rslt += ' else (' + arguments[arguments.length-1] + ')';", "rslt += ' end)';", "return rslt;" ] }, "$getInsertKey": { "params": ["TBL","KEY","..."], "sql": "%%%...%%%; select scope_identity() as %%%KEY%%%" }, "proc_run":"EXEC", "par_list_beg":" ", "par_list_end":" ", "menu_editor_top":"select @cur_menu_id_auto as cur_menu_id_auto, case when @cur_menu_id_auto <> 0 then @cur_menu_id_auto else (select top 1 menu_id_auto from {schema}.menu__tbl where 1=1 order by menu_group desc,coalesce(menu__tbl.menu_seq,menu__tbl.menu_id),menu_name,menu__tbl.menu_id) end as menu_id_auto from {schema}.single", "menu_editor_insert":["update {schema}.menu__tbl set menu_seq=coalesce(menu_seq,menu_id)+1", " where coalesce(menu_seq,menu_id) > (select coalesce(menu_seq,menu_id) from {schema}.menu__tbl where menu_id=@menu_id_parent) ", " and menu_group = (select menu_group from {schema}.menu__tbl where menu_id=@menu_id_parent)", " and cast((coalesce(menu_seq,menu_id)-(select coalesce(menu_seq,menu_id) from {schema}.menu__tbl where menu_id=@menu_id_parent)) as decimal)/(select count(*) from {schema}.menu__tbl sm2 where coalesce(sm2.menu_seq,sm2.menu_id) > (select coalesce(menu_seq,menu_id) from {schema}.menu__tbl where menu_id=@menu_id_parent) and coalesce(sm2.menu_seq,sm2.menu_id) <= coalesce(menu__tbl.menu_seq,menu__tbl.menu_id))<=1.0;", "insert into {schema}.menu__tbl (menu_id,menu_id_parent,menu_group,menu_seq,menu_name,menu_desc,menu_sts)", " select (select max(menu_id)+1 from {schema}.menu__tbl),menu_id,menu_group,coalesce(menu_seq,menu_id)+1,@menu_name,@menu_desc,'ACTIVE' from {schema}.menu__tbl where menu_id=@menu_id_parent;", "select SCOPE_IDENTITY() menu_id_auto;"], "menu_editor_lov":"select menu_id as code_id,menu_id_parent as code_parent_id,menu_id_auto as code_val,menu_desc as code_txt,'folder' as code_icon from {schema}.menu__tbl where 1=1 %%%DATALOCKS%%% order by menu_group desc,coalesce(menu__tbl.menu_seq,menu__tbl.menu_id),menu_name,menu__tbl.menu_id", "menu_group_lov":"select * from (values('S','Main'),('C','Client')) as code(code_val,code_txt)", "JSHARMONY_FACTORY_INSTALLED":"select case when isnull((select count(*) from information_schema.columns where table_name = 'single' and table_schema='{schema}'),0) > 0 then 1 else 0 end JSHARMONY_FACTORY_INSTALLED", "{{concat}}":{ "params": [], "exec": [ "if(arguments.length<1) return 'null';", "var rslt = '(' + arguments[0];", "for(var i=1;i<arguments.length;i++){", " rslt += ' + ' + arguments[i];", "}", "rslt += ')';", "return rslt;" ] }, "decode": { "params": [], "exec": [ "if(arguments.length<2) return 'null';", "var rslt = '(case ('+arguments[0]+')';", "for(var i=0;i<arguments.length-2;i+=2){", " rslt += ' when ('+arguments[i+1]+') then ('+arguments[i+2]+')'", "}", "if((arguments.length%2)==0) rslt += ' else ('+arguments[arguments.length-1]+')';", "else rslt += ' else null';", "rslt += ' end)';", "return rslt;" ] }, "length": { "params": ["VAL"], "sql": "len(%%%VAL%%%)" }, "substr": { "params": ["VAL","START","LEN"], "sql": "substring(%%%VAL%%%,%%%START%%%,isnull(%%%LEN%%%,99999))" }, "begin_trigger_cursor": { "params": [], "exec": [ "if(arguments.length<1) return '';", "var rsltcur = 'declare rowcur cursor local for select ';", "var rsltvars = '';", "var rsltfetch = 'fetch next from rowcur into ';", "for(var i=1;i<arguments.length;i++){", " var var_name = arguments[i].trim(); if(!var_name) continue;", " var var_type = 'nvarchar(max)';", " if(var_name.indexOf(' ')>=0){ var_type = var_name.substr(var_name.indexOf(' ')); var_name = var_name.substr(0,var_name.indexOf(' ')); }", " rsltcur += 'deleted.' + var_name + ', inserted.' + var_name + ',';", " rsltvars += ' declare @deleted_' + var_name + ' ' + var_type + ';\\n';", " rsltvars += ' declare @inserted_' + var_name + ' ' + var_type + ';\\n';", " rsltfetch += '@deleted_' + var_name + ', @inserted_' + var_name + ',';", "}", "if(rsltcur[rsltcur.length-1]==',') rsltcur = rsltcur.substr(0,rsltcur.length-1);", "if(rsltfetch[rsltfetch.length-1]==',') rsltfetch = rsltfetch.substr(0,rsltfetch.length-1);", "rsltcur += ' from deleted full outer join inserted on inserted.'+arguments[0]+'=deleted.'+arguments[0]+';\\n';", "rsltfetch += ';\\n';", "var rslt = rsltcur + rsltvars;", "rslt += 'declare @MY_audit_seq numeric(20,0);\\n';", "rslt += 'set @MY_audit_seq = 0;\\n';", "rslt += 'declare @CURDTTM datetime2(7);\\n';", "rslt += 'set @CURDTTM = {schema}.my_now_exec();\\n';", "rslt += 'declare @CURDTTM_CHAR nvarchar(max);\\n';", "rslt += 'set @CURDTTM_CHAR = convert(nvarchar, @CURDTTM, 120)+\\'.0000000\\';\\n';", "rslt += 'declare @MYUSER nvarchar(20);\\n';", "rslt += 'set @MYUSER = {schema}.my_db_user();\\n';", "rslt += 'declare @TP char(1);\\n';", "rslt += 'if exists (select * from inserted) \\n';", "rslt += ' if exists (select * from deleted) \\n';", "rslt += ' set @TP = \\'U\\';\\n';", "rslt += ' else \\n';", "rslt += ' set @TP = \\'I\\';\\n';", "rslt += 'else \\n';", "rslt += ' if exists (select * from deleted) \\n';", "rslt += ' set @TP = \\'D\\';\\n';", "rslt += ' else \\n';", "rslt += ' begin \\n';", "rslt += ' return;\\n';", "rslt += ' end;\\n';", "rslt += 'open rowcur;\\n';", "rslt += rsltfetch;", "rslt += 'while (@@fetch_status = 0) begin \\n';", "return rslt;" ] }, "end_trigger_cursor": { "params": [], "exec": [ "if(arguments.length<1) return '';", "var rsltfetch = 'fetch next from rowcur into ';", "for(var i=0;i<arguments.length;i++){", " var var_name = arguments[i].trim(); if(!var_name) continue;", " rsltfetch += '@deleted_' + var_name + ', @inserted_' + var_name + ',';", "}", "if(rsltfetch[rsltfetch.length-1]==',') rsltfetch = rsltfetch.substr(0,rsltfetch.length-1);", "rsltfetch += ';\\n';", "var rslt = rsltfetch;", "rslt += 'end;\\n';", "rslt += 'close rowcur;\\n';", "rslt += 'deallocate rowcur;\\n';", "return rslt;" ] }, "trigger_errorif": { "params": ["COND","MSG"], "exec": [ "var rslt = 'if('+COND.trim()+') ';", "MSG = MSG.trim();", "if(MSG && (MSG[0]=='\\'')) MSG = '\\'Application Error - '+MSG.substr(1);", "rslt += 'begin raiserror('+MSG+',16,1); if (@@TRANCOUNT > 0) rollback transaction; return; end;';", "return rslt;" ] }, "trigger_nequal": { "params": ["A","B"], "sql": [ "((%%%A%%% is null and %%%B%%% is not null) or (%%%A%%% is not null and %%%B%%% is null) or ((%%%A%%% is not null and %%%B%%% is not null) and (%%%A%%% <> %%%B%%%)))" ] }, "with_insert_trigger_identity": { "params": ["KEY","INSERT_STATEMENT"], "sql": [ "%%%INSERT_STATEMENT%%%" ] }, "log_audit_insert" : { "params": ["TABLE","ID","COL_NAME","audit_ref_name","audit_ref_id","audit_subject","cust_id","item_id"], "sql": [ "exec @MY_audit_seq = {schema}.log_audit 'I', %%%TABLE%%%,%%%ID%%%,@MYUSER,@CURDTTM,%%%audit_ref_name%%%,%%%audit_ref_id%%%,%%%audit_subject%%%,%%%cust_id%%%,%%%item_id%%%" ] }, "log_audit_update_mult" : { "params": ["TABLE","ID","COL_ARRAY","audit_ref_name","audit_ref_id","audit_subject","cust_id","item_id"], "exec": [ "var rslt = '';", "var col_array = JSON.parse(COL_ARRAY);", "for(var i=0;i<col_array.length;i++){", " rslt += 'log_audit_update('+TABLE+','+ID+','+col_array[i]+','+audit_ref_name+','+audit_ref_id+','+audit_subject+','+cust_id+','+item_id+')\\r\\n';", "}", "return rslt;" ] }, "log_audit_update" : { "params": ["TABLE","ID","COL_NAME","audit_ref_name","audit_ref_id","audit_subject","cust_id","item_id"], "sql": [ "if (trigger_nequal(@deleted_%%%COL_NAME%%%, @inserted_%%%COL_NAME%%%))\n", " begin\n", " if (@MY_audit_seq=0)\n", " exec @MY_audit_seq = {schema}.log_audit 'U', %%%TABLE%%%,%%%ID%%%,@MYUSER,@CURDTTM,%%%audit_ref_name%%%,%%%audit_ref_id%%%,%%%audit_subject%%%,%%%cust_id%%%,%%%item_id%%%\n", " insert into {schema}.audit_detail values (@MY_audit_seq, lower('%%%COL_NAME%%%'), @deleted_%%%COL_NAME%%%)\n", " end\n" ] }, "log_audit_delete_mult" : { "params": ["TABLE","ID","COL_ARRAY","audit_ref_name","audit_ref_id","audit_subject","cust_id","item_id"], "exec": [ "var rslt = '';", "var col_array = JSON.parse(COL_ARRAY);", "for(var i=0;i<col_array.length;i++){", " rslt += '%%%log_audit_delete('+JSON.stringify(TABLE)+','+JSON.stringify(ID)+','+JSON.stringify(col_array[i])+','+JSON.stringify(audit_ref_name)+','+JSON.stringify(audit_ref_id)+','+JSON.stringify(audit_subject)+','+JSON.stringify(cust_id)+','+JSON.stringify(item_id)+')%%%\\r\\n';", "}", "return rslt;" ] }, "log_audit_delete" : { "params": ["TABLE","ID","COL_NAME","audit_ref_name","audit_ref_id","audit_subject","cust_id","item_id"], "sql": [ "if (@deleted_%%%COL_NAME%%% is not null)\n", " begin\n", " if (@MY_audit_seq=0)\n", " exec @MY_audit_seq = {schema}.log_audit 'D', %%%TABLE%%%,%%%ID%%%,@MYUSER,@CURDTTM,%%%audit_ref_name%%%,%%%audit_ref_id%%%,%%%audit_subject%%%,%%%cust_id%%%,%%%item_id%%%\n", " insert into {schema}.audit_detail values (@MY_audit_seq, lower('%%%COL_NAME%%%'), @deleted_%%%COL_NAME%%%)\n", " end\n" ] }, "{schema}.get_cust_name":{ "params": ["col"], "sql": [ "(select null)" ] }, "{schema}.get_cust_name_ext":{ "params": ["col"], "sql": [ "(select null)" ] }, "{schema}.get_item_name":{ "params": ["col"], "sql": [ "(select null)" ] }, "{schema}.nequal" : { "params": ["A","B"], "sql": ["(%%%A%%% is null and %%%B%%% is not null or %%%B%%% is null and %%%A%%% is not null or %%%A%%%<>%%%B%%%)"] }, "{schema}.log_audit_done" : { "params": [], "sql": "", }, "{schema}.log_audit_insert" : { "params": ["TABLE","ID","COL_NAME","audit_ref_name","audit_ref_id","audit_subject","cust_id","item_id",{"name":"SCHEMA","options":{"default":"{schema}"}}], "exec": [ "var rslt = '';", "if(!('AUD_SEQ' in this.vars)){ rslt += 'declare @AUD_SEQ bigint;\\r\\n'; this.vars.AUD_SEQ = true; }", "rslt += 'set @AUD_SEQ = null;\\r\\n';", "function sqlescape(txt){ if(txt===null) return 'null'; return txt; };", "rslt += '{schema}.log_audit_insert_base('+sqlescape(TABLE)+','+sqlescape(ID)+','+sqlescape(COL_NAME)+','+sqlescape(audit_ref_name)+','+sqlescape(audit_ref_id)+','+sqlescape(audit_subject)+','+sqlescape(cust_id)+','+sqlescape(item_id)+','+sqlescape(SCHEMA)+')';", "return rslt;" ] }, "{schema}.log_audit_insert_base" : { "params": ["TABLE","ID","COL_NAME","audit_ref_name","audit_ref_id","audit_subject","cust_id","item_id",{"name":"SCHEMA","options":{"default":"{schema}"}}], "sql": [ "if(@AUD_SEQ is null) begin ", " insert into %%%SCHEMA%%%.audit__tbl(audit_table_name,audit_table_id,audit_op,audit_tstmp,audit_ref_name,audit_ref_id,audit_subject,cust_id,item_id,audit_user)", " select %%%TABLE%%%,%%%ID%%%,'I',{schema}.my_now(),%%%audit_ref_name%%%,%%%audit_ref_id%%%,%%%audit_subject%%%,%%%cust_id%%%,%%%item_id%%%,{schema}.my_db_user();", " select @AUD_SEQ = isnull(@AUD_SEQ, scope_identity())", "end" ] }, "{schema}.log_audit_update_mult" : { "params": ["TABLE","ID","COL_ARRAY","audit_ref_name","audit_ref_id","audit_subject","cust_id","item_id",{"name":"SCHEMA","options":{"default":"{schema}"}}], "exec": [ "var rslt = '';", "if(!('AUD_SEQ' in this.vars)){ rslt += 'declare @AUD_SEQ bigint;\\r\\n'; this.vars.AUD_SEQ = true; }", "rslt += 'set @AUD_SEQ = null;\\r\\n';", "if ((typeof COL_ARRAY === 'string' || COL_ARRAY instanceof String) && COL_ARRAY.length && COL_ARRAY.trim()[0]=='[') COL_ARRAY = JSON.parse(COL_ARRAY.trim());", "function sqlescape(txt){ if(txt===null) return 'null'; return txt; };", "var stmts = [];", "for(var i=0;i<COL_ARRAY.length;i++){", " stmts.push('{schema}.log_audit_update_base('+TABLE+','+ID+','+COL_ARRAY[i]+','+audit_ref_name+','+sqlescape(audit_ref_id)+','+sqlescape(audit_subject)+','+sqlescape(cust_id)+','+sqlescape(item_id)+','+sqlescape(SCHEMA)+')');", "}", "rslt += stmts.join(';\\r\\n');", "return rslt;" ] }, "{schema}.log_audit_update" : { "params": ["TABLE","ID","COL_NAME","audit_ref_name","audit_ref_id","audit_subject","cust_id","item_id",{"name":"SCHEMA","options":{"default":"{schema}"}}], "exec": [ "var rslt = '';", "if(!('AUD_SEQ' in this.vars)){ rslt += 'declare @AUD_SEQ bigint;\\r\\n'; this.vars.AUD_SEQ = true; }", "rslt += 'set @AUD_SEQ = null;\\r\\n';", "function sqlescape(txt){ if(txt===null) return 'null'; return txt; };", "rslt += '{schema}.log_audit_update_base('+sqlescape(TABLE)+','+sqlescape(ID)+','+sqlescape(COL_NAME)+','+sqlescape(audit_ref_name)+','+sqlescape(audit_ref_id)+','+sqlescape(audit_subject)+','+sqlescape(cust_id)+','+sqlescape(item_id)+','+sqlescape(SCHEMA)+')';", "return rslt;" ] }, "{schema}.log_audit_update_base" : { "params": ["TABLE","ID","COL_NAME","audit_ref_name","audit_ref_id","audit_subject","cust_id","item_id",{"name":"SCHEMA","options":{"default":"{schema}"}}], "sql": [ "if(jsharmony.nequal(deleted(%%%COL_NAME%%%), inserted(%%%COL_NAME%%%))) begin", " if(@AUD_SEQ is null) begin ", " insert into %%%SCHEMA%%%.audit__tbl(audit_table_name,audit_table_id,audit_op,audit_tstmp,audit_ref_name,audit_ref_id,audit_subject,cust_id,item_id,audit_user)", " select %%%TABLE%%%,%%%ID%%%,'U',{schema}.my_now(),%%%audit_ref_name%%%,%%%audit_ref_id%%%,%%%audit_subject%%%,%%%cust_id%%%,%%%item_id%%%,{schema}.my_db_user();", " select @AUD_SEQ = isnull(@AUD_SEQ, scope_identity());", " end", " insert into %%%SCHEMA%%%.audit_detail(audit_seq,audit_column_name,audit_column_val)", " select @AUD_SEQ,lower('%%%COL_NAME%%%'),deleted(%%%COL_NAME%%%);", "end" ] }, "{schema}.log_audit_update_custom" : { "params": ["TABLE","ID","CONDITION","audit_ref_name","audit_ref_id","audit_subject","cust_id","item_id",{"name":"SCHEMA","options":{"default":"{schema}"}}], "exec": [ "var rslt = '';", "if(!('AUD_SEQ' in this.vars)){ rslt += 'declare @AUD_SEQ bigint;\\r\\n'; this.vars.AUD_SEQ = true; }", "rslt += 'set @AUD_SEQ = null;\\r\\n';", "function sqlescape(txt){ if(txt===null) return 'null'; return txt; };", "rslt += '{schema}.log_audit_update_custom_base('+sqlescape(TABLE)+','+sqlescape(ID)+','+sqlescape(CONDITION)+','+sqlescape(audit_ref_name)+','+sqlescape(audit_ref_id)+','+sqlescape(audit_subject)+','+sqlescape(cust_id)+','+sqlescape(item_id)+','+sqlescape(SCHEMA)+')';", "return rslt;" ] }, "{schema}.log_audit_update_custom_base" : { "params": ["TABLE","ID","CONDITION","audit_ref_name","audit_ref_id","audit_subject","cust_id","item_id",{"name":"SCHEMA","options":{"default":"{schema}"}}], "sql": [ "if(%%%CONDITION%%%) begin", " if(@AUD_SEQ is null) begin ", " insert into %%%SCHEMA%%%.audit__tbl(audit_table_name,audit_table_id,audit_op,audit_tstmp,audit_ref_name,audit_ref_id,audit_subject,cust_id,item_id,audit_user)", " select %%%TABLE%%%,%%%ID%%%,'U',{schema}.my_now(),%%%audit_ref_name%%%,%%%audit_ref_id%%%,%%%audit_subject%%%,%%%cust_id%%%,%%%item_id%%%,{schema}.my_db_user();", " select @AUD_SEQ = isnull(@AUD_SEQ, scope_identity())", " end ", "end" ] }, "{schema}.log_audit_delete_mult" : { "params": ["TABLE","ID","COL_ARRAY",{"name":"SCHEMA","options":{"default":"{schema}"}}], "exec": [ "var rslt = '';", "if(!('AUD_SEQ' in this.vars)){ rslt += 'declare @AUD_SEQ bigint;\\r\\n'; this.vars.AUD_SEQ = true; }", "rslt += 'set @AUD_SEQ = null;\\r\\n';", "if ((typeof COL_ARRAY === 'string' || COL_ARRAY instanceof String) && COL_ARRAY.length && COL_ARRAY.trim()[0]=='[') COL_ARRAY = JSON.parse(COL_ARRAY.trim());", "function sqlescape(txt){ if(txt===null) return 'null'; return txt; };", "var stmts = [];", "for(var i=0;i<COL_ARRAY.length;i++){", " stmts.push('{schema}.log_audit_delete_base('+TABLE+','+ID+','+COL_ARRAY[i]+','+sqlescape(SCHEMA)+')');", "}", "rslt += stmts.join(';\\r\\n');", "return rslt;" ] }, "{schema}.log_audit_delete" : { "params": ["TABLE","ID","COL_NAME",{"name":"SCHEMA","options":{"default":"{schema}"}}], "exec": [ "var rslt = '';", "if(!('AUD_SEQ' in this.vars)){ rslt += 'declare @AUD_SEQ bigint;\\r\\n'; this.vars.AUD_SEQ = true; }", "rslt += 'set @AUD_SEQ = null;\\r\\n';", "function sqlescape(txt){ if(txt===null) return 'null'; return txt; };", "rslt += '{schema}.log_audit_delete_base('+sqlescape(TABLE)+','+sqlescape(ID)+','+sqlescape(COL_NAME)+','+sqlescape(SCHEMA)+')';", "return rslt;" ] }, "{schema}.log_audit_delete_base" : { "params": ["TABLE","ID","COL_NAME",{"name":"SCHEMA","options":{"default":"{schema}"}}], "sql": [ "if(@AUD_SEQ is null) begin ", " insert into %%%SCHEMA%%%.audit__tbl(audit_table_name,audit_table_id,audit_op,audit_tstmp,audit_ref_name,audit_ref_id,audit_subject,cust_id,item_id,audit_user)", " select %%%TABLE%%%,%%%ID%%%,'D',{schema}.my_now(),", " (select top 1 audit_ref_name from %%%SCHEMA%%%.audit__tbl where audit_table_name=%%%TABLE%%% and audit_table_id=%%%ID%%% and audit_op='I' order by audit_seq desc),", " (select top 1 audit_ref_id from %%%SCHEMA%%%.audit__tbl where audit_table_name=%%%TABLE%%% and audit_table_id=%%%ID%%% and audit_op='I' order by audit_seq desc),", " (select top 1 audit_subject from %%%SCHEMA%%%.audit__tbl where audit_table_name=%%%TABLE%%% and audit_table_id=%%%ID%%% and audit_op='I' order by audit_seq desc),", " (select top 1 cust_id from %%%SCHEMA%%%.audit__tbl where audit_table_name=%%%TABLE%%% and audit_table_id=%%%ID%%% and audit_op='I' order by audit_seq desc),", " (select top 1 item_id from %%%SCHEMA%%%.audit__tbl where audit_table_name=%%%TABLE%%% and audit_table_id=%%%ID%%% and audit_op='I' order by audit_seq desc),", " {schema}.my_db_user()", " where (@AUD_SEQ is null);", " select @AUD_SEQ = scope_identity();", "end", "insert into %%%SCHEMA%%%.audit_detail(audit_seq,audit_column_name,audit_column_val)", " select @AUD_SEQ,lower('%%%COL_NAME%%%'),deleted(%%%COL_NAME%%%)" ] }, "{schema}.log_audit_other" : { "params": ["TABLE","ID","CONDITION","COL_NAME","VALUE","audit_ref_name","audit_ref_id","audit_subject","cust_id","item_id",{"name":"SCHEMA","options":{"default":"{schema}"}}], "exec": [ "var rslt = '';", "if(!('AUD_SEQ' in this.vars)){ rslt += 'declare @AUD_SEQ bigint;\\r\\n'; this.vars.AUD_SEQ = true; }", "rslt += 'set @AUD_SEQ = null;\\r\\n';", "function sqlescape(txt){ if(txt===null) return 'null'; return txt; };", "rslt += '{schema}.log_audit_other_base('+sqlescape(TABLE)+','+sqlescape(ID)+','+sqlescape(CONDITION)+','+sqlescape(COL_NAME)+','+sqlescape(VALUE)+','+sqlescape(audit_ref_name)+','+sqlescape(audit_ref_id)+','+sqlescape(audit_subject)+','+sqlescape(cust_id)+','+sqlescape(item_id)+','+sqlescape(SCHEMA)+')';", "return rslt;" ] }, "{schema}.log_audit_other_base" : { "params": ["TABLE","ID","CONDITION","COL_NAME","VALUE","audit_ref_name","audit_ref_id","audit_subject","cust_id","item_id",{"name":"SCHEMA","options":{"default":"{schema}"}}], "sql": [ "if(%%%CONDITION%%%) begin", " if(@AUD_SEQ is null) begin ", " insert into %%%SCHEMA%%%.audit__tbl(audit_table_name,audit_table_id,audit_op,audit_tstmp,audit_ref_name,audit_ref_id,audit_subject,cust_id,item_id,audit_user)", " select %%%TABLE%%%,%%%ID%%%,'O',{schema}.my_now(),%%%audit_ref_name%%%,%%%audit_ref_id%%%,%%%audit_subject%%%,%%%cust_id%%%,%%%item_id%%%,{schema}.my_db_user();", " select @AUD_SEQ = isnull(@AUD_SEQ, scope_identity());", " end", " insert into %%%SCHEMA%%%.audit_detail(audit_seq,audit_column_name,audit_column_val)", " select @AUD_SEQ,lower(%%%COL_NAME%%%),%%%VALUE%%%;", "end" ] }, "{schema}.audit_history" : { "params": ["TABLE","AUDIT_TABLE_NAME","ID","COL_ARRAY",{"name":"SCHEMA","options":{"default":"{schema}"}}], "exec": [ "var rslt = '';", "if ((typeof COL_ARRAY === 'string' || COL_ARRAY instanceof String) && COL_ARRAY.length && COL_ARRAY.trim()[0]=='[') COL_ARRAY = JSON.parse(COL_ARRAY.trim());", "function sqlescape(txt){ if(txt===null) return 'null'; return txt; };", "var rslt = 'select audit_seq, audit_op, audit_tstmp, audit_user, '+ID;", "for(var i=0;i<COL_ARRAY.length;i++){", " rslt += ',$ifnull((select $topn(1, $ifnull(audit_column_val,\\'\\') from '+SCHEMA+'.audit_detail inner join '+SCHEMA+'.audit__tbl audit2 on audit2.audit_seq = audit_detail.audit_seq and audit2.audit_table_name=audit__tbl.audit_table_name and audit2.audit_table_id=audit__tbl.audit_table_id where audit_detail.audit_seq > audit__tbl.audit_seq and audit_column_name=\\''+COL_ARRAY[i]+'\\' order by audit_detail.audit_seq)), '+COL_ARRAY[i]+') '+COL_ARRAY[i];", "}", "rslt += ' from '+TABLE;", "rslt += ' inner join '+SCHEMA+'.audit__tbl on audit__tbl.audit_table_name = '+AUDIT_TABLE_NAME+' and audit__tbl.audit_table_id = '+ID;", "return rslt;" ] }, "{schema}.audit_listing" : { "params": ["TABLE","AUDIT_TABLE_NAME","ID","COL_ARRAY",{"name":"SCHEMA","options":{"default":"{schema}"}}], "exec": [ "var rslt = '';", "if ((typeof COL_ARRAY === 'string' || COL_ARRAY instanceof String) && COL_ARRAY.length && COL_ARRAY.trim()[0]=='[') COL_ARRAY = JSON.parse(COL_ARRAY.trim());", "function sqlescape(txt){ if(txt===null) return 'null'; return txt; };", "var rslt = 'select audit_seq, audit_op, audit_tstmp, audit_user, audit_ref_name, audit_ref_id, audit_subject, cust_id, item_id, audit_table_id '+ID;", "for(var i=0;i<COL_ARRAY.length;i++){", " rslt += ',$ifnull((select $topn(1, $ifnull(audit_column_val,\\'\\') from '+SCHEMA+'.audit_detail inner join '+SCHEMA+'.audit__tbl audit2 on audit2.audit_seq = audit_detail.audit_seq and audit2.audit_table_name=audit__tbl.audit_table_name and audit2.audit_table_id=audit__tbl.audit_table_id where audit_detail.audit_seq > audit__tbl.audit_seq and audit_column_name=\\''+COL_ARRAY[i]+'\\' order by audit_detail.audit_seq)), '+COL_ARRAY[i]+') '+COL_ARRAY[i];", "}", "rslt += ' from '+SCHEMA+'.audit__tbl';", "rslt += ' left outer join '+TABLE+' on '+TABLE+'.'+ID+'=audit__tbl.audit_table_id';", "rslt += ' where audit__tbl.audit_table_name = '+AUDIT_TABLE_NAME;", "return rslt;" ] }, }