PortaleOrdiniGruppo/PostIn/postinBL.java
2025-03-24 15:28:26 +01:00

740 lines
29 KiB
Java

import java.util.*;
public class postinBL extends postinWV implements CPLib.QueryFilterFromProject {
// Variabile che indica se il record è stato caricato
public boolean m_bLoaded;
// Variabile che indica se il record è stato variato
public boolean m_bUpdated;
// Variabile che memorizza lo stato subito dopo una Load o una Save
public String m_cPreviousState;
// Variabile che mantiene il vecchio timestamp
public String m_cOldCPCCCHK;
public java.util.List<String> m_oParameters;
protected String m_cPassword;
protected String m_cOTP;
// Variabile che indica il tipo dell'ultimo
// errore, o messaggio da comunicare all'interfaccia,
// che si è verificato impostando una variabile di work.
// I valori ammessi sono:
// - 1 : errore di campo obbligatorio
// - 2 : errore di check
// - 3 : valore non ammesso nel link
// - 4 : richiesta password
// - 5 : richiesto otp
public int m_nLastError;
public String m_cLastMsgError;
public String m_cLastWorkVarError;
// m_bCalculating==true la Calculate e' in esecuzione
public boolean m_bCalculating = false;
public static final String i_EntityName = "postin";
public static final String i_EntityType = "master";
public static final boolean i_IsSon = false;
public boolean m_bSkipCheckOTPSecurity = true;
// Variabile di collegamento con il database: passata nel costruttore
public CPSql m_Sql;
// Variabile di contesto (variabili globali): passata nel costruttore
public CPContext m_Ctx;
// Variabili che contengono il nome fisico e la connessione per la tabella collegata
public String m_cPhName_postit;
public String m_cServer_postit;
public CPPhTableWrInfo m_oWrInfo_postit;
// Variabile che contiene il nome virtuale della tabella
public String m_cVirtName_postit;
public String m_cPhName_cpusers;
public String m_cServer_cpusers;
public CPPhTableWrInfo m_oWrInfo_cpusers;
// gestori eventi esterni al business object sono collegati inserendoli nella coppia di strutture dati seguenti
// gestori associati a particolari eventi ('Blank')
public static volatile HashMap specificEventsHandlers;
// gestori associati a tutti gli eventi
public static volatile ArrayList allEventsHandlers;
// metadati resi disponibili ai gestori di eventi
public static String[] m_EntityTables = {"postit"};
// codice secondo sintassi delle business rules per produrre i dati da usare in un ideale documento che li rappresenti
public static final String i_StateStructure = "{'code':code,'usercode':usercode,'created':created,'createdby':createdby,'subject':subject,'postit':postit,'datestart':datestart,'datestop':datestop,'father':father,'checked':checked,'folder':folder,'status':status,'cplevel':cplevel,'cpimage':cpimage"+FoundlingChildrenList("postin",true)+"}";
public static final String i_CompleteStateStructure = "{'code':code,'usercode':usercode,'created':created,'createdby':createdby,'subject':subject,'postit':postit,'datestart':datestart,'datestop':datestop,'father':father,'checked':checked,'folder':folder,'status':status,'cplevel':cplevel,'cpimage':cpimage,'riletta':riletta"+FoundlingChildrenList("postin",true)+"}";
public static final String i_ItemSequence = "code,usercode,created,createdby,subject,postit,datestart,datestop,father,checked,folder,status,cplevel,cpimage"+FoundlingChildrenList("postin",false)+"";
public static final com.zucchetti.sitepainter.EntityItem[] i_EditableEntityItems = com.zucchetti.sitepainter.EntityItem.buildEditableItemsForEntity(GetLinkDef(),FoundlingChildrenList("postin"),new String[][]{new String[]{"code","Code","C","10","0","campo","key1","false","false"},new String[]{"usercode","User","N","4","0","campo","nokey","false","false"},new String[]{"created","Created on","T","14","0","campo","nokey","false","false"},new String[]{"createdby","Creator","N","4","0","campo","nokey","false","false"},new String[]{"subject","Subject","C","100","0","campo","nokey","false","false"},new String[]{"postit","Message","M","10","0","campo","nokey","false","false"},new String[]{"datestart","Validity start","T","14","0","campo","nokey","false","false"},new String[]{"datestop","Validity end","T","14","0","campo","nokey","false","false"},new String[]{"father","Father code","C","10","0","campo","nokey","false","false"},new String[]{"checked","Is read","L","1","0","campo","nokey","false","false"},new String[]{"folder","Is folder","L","1","0","campo","nokey","false","false"},new String[]{"status","Status","C","3","0","campo","nokey","false","false"},new String[]{"cplevel","Level","C","1","0","campo","nokey","false","false"},new String[]{"cpimage","Image","C","100","0","campo","nokey","false","false"}});
// dati usati internamente dai metodi BRxxx di BRCallerImpl
private static boolean _involved=true;
protected void _setInvolvedInBR(boolean involved) {
_involved=involved;
}
protected boolean _involvedInBR() {
return _involved;
}
public postinBL (CPContext p_ContextObject) {
/* Impostazione dell'ambiente globale: il businness object si collega
all'oggetto globale (unico per più istanze di una stessa applicazione)
per recuperare informazioni sul:
1) nome fisico della tabella di gestione;
2) nome fisico delle tabelle collegate nei link;
3) stringa di connessione.
L'azienda è contenuta nel global object. */
// Assegnazione delle variabili che contengono il nome fisico, il nome virtuale, e la connessione per la tabella collegata
m_cPhName_postit = p_ContextObject.GetPhName("postit",p_ContextObject.GetCompany(),false);
m_cServer_postit = p_ContextObject.GetServer("postit");
m_oWrInfo_postit = CPPhTableWrInfo.GetCPPhTableWrInfo(p_ContextObject,"postit",p_ContextObject.GetCompany());
m_cVirtName_postit = CPSql.ManipulateTablePhName("postit",m_cServer_postit);
// Assegnazione della variabile di collegamento con il database
m_Sql = p_ContextObject.GetSql();
m_Ctx = p_ContextObject;
m_cPhName_cpusers = p_ContextObject.GetPhName("cpusers");
m_cServer_cpusers = p_ContextObject.GetServer("cpusers");
m_oWrInfo_cpusers = CPPhTableWrInfo.GetCPPhTableWrInfo(p_ContextObject,"cpusers",p_ContextObject.GetCompany());
// Istanziazione dei business object dei figli
m_MNTs = CPLib.MNTChilds("postin",p_ContextObject);
}
public void Blank() {
BlankStatusVariables();
// * --- Area Manuale = BO - Blank Record Init
// * --- Fine Area Manuale
w_code = "";
w_usercode = 0;
w_created = CPLib.NullDateTime();
w_createdby = 0;
w_subject = "";
w_postit = "";
w_datestart = CPLib.NullDateTime();
w_datestop = CPLib.NullDateTime();
w_father = "";
w_checked = false;
w_folder = false;
w_status = "";
w_cplevel = "";
w_cpimage = "";
w_riletta = "";
w_riletta = w_code;
Link_EQOFWHOCZU();
CPExtenderLib.BlankExtendedFields(extendedFields);
SaveDependsOn();
NotifyEvent("Blank");
// * --- Area Manuale = BO - Blank Record End
// * --- Fine Area Manuale
}
public boolean IsUpdated() {
boolean l_bResult;
l_bResult = m_bUpdated;
return l_bResult;
}
public boolean IsLoaded() {
return m_bLoaded;
}
public boolean IsNew() {
return IsUpdated() && ! (IsLoaded());
}
public void SaveDependsOn() {
o_code = w_code;
}
public void NotifyEvent(String p_cEvent) {
if (CPLib.eq(p_cEvent,"Insert start")) {
Calculation_ZDZUEZKGET();
} else if (CPLib.eq(p_cEvent,"Update start")) {
Calculation_ZDZUEZKGET();
}
CPLib.NotifyEvent(p_cEvent,this,m_Ctx,specificEventsHandlers,allEventsHandlers);
}
// Funzioni di link legate alle variabili ed ai campi.
protected boolean Link_EQOFWHOCZU() {
return Link_EQOFWHOCZU("Full");
}
protected boolean Link_EQOFWHOCZU(String p_cType) {
// Viene eseguita una query per chiave totale.
boolean l_bResult;
boolean l_bLoaded;
String l_cWhere = "";
String l_cCurrentKey;
l_bResult = false;
// Dichiarazione del cursore locale del link
CPResultSet l_rsLink=null;
if ( ! (CPLib.Empty(w_riletta))) {
String l_OldValue = w_riletta;
// Costruzione della where per la chiave corrente e per le chiavi fisse
l_cCurrentKey = "="+CPSql.SQLValueAdapter(CPLib.ToSQL(w_riletta,"C",10,0),m_cServer_postit,w_riletta);
if (m_Ctx.IsSharedTemp("postit")) {
l_cWhere = l_cWhere+" and context_id='"+m_Ctx.GetTempID()+"'";
}
if (l_rsLink!=null)
l_rsLink.Close();
l_rsLink = m_Sql.Query(m_cServer_postit,"select code,createdby from "+m_cPhName_postit+((m_cPhName_postit).endsWith(CPSecurity.FILTER_QUERY_POSTFIX)?CPLib.NewCPCCCHK():"")+" where "+"code"+l_cCurrentKey+l_cWhere);
try {
l_bLoaded = ! (l_rsLink.Eof());
if (l_bLoaded) {
/* E' stato trovato almeno un record: i valori del cursore vengono riportati nei
relativi campi e/o variabili.
*/
w_riletta = l_rsLink.GetString("code");
w_createdby = l_rsLink.GetDouble("createdby");
l_rsLink.Next();
/* Se è stato trovato un record il link con chiave piena ha avuto successo.
*/
l_bResult = l_rsLink.Eof();
/* Segna che l'interfaccia potrebbe fare un link con chiave parziale
*/
} else {
Link_EQOFWHOCZU_blank();
if (CPLib.eq(p_cType,"Load")) {
w_riletta = l_OldValue;
}
}
if ( ! (l_bResult)) {
m_nLastError = 3;
m_cLastMsgError = "";
if (CPLib.eq(m_cLastMsgError,"")) {
m_cLastMsgError = m_Ctx.Translate("MSG_LINK_FAILED","riletta");
}
m_cLastWorkVarError = "riletta";
}
} finally {
l_rsLink.Close();
}
} else {
// Se la variabile è vuota deve essere considerato un valore valido ('NULL')
l_bResult = true;
Link_EQOFWHOCZU_blank();
}
return l_bResult;
}
void Link_EQOFWHOCZU_blank() {
w_riletta = "";
w_createdby = 0;
}
/* Gestione dei metodi per l'impostazione delle variabili di work.
I seguenti metodi sono pubblici perchè vengono chiamati dalla UI che
ha creato il business object o da batch.
*/
public boolean Set_code(String p_workVariableValue) {
boolean l_bResult;
l_bResult = true;
// Variabile temporanea che conterrà il risultato della funzione di link se l'item corrente è parte di una chiave composta
boolean l_bTmpRes;
SetUpdated();
w_code = p_workVariableValue;
// Esecuzione dei calcoli
Calculate();
SaveDependsOn();
return l_bResult;
}
public boolean Set_usercode(double p_workVariableValue) {
boolean l_bResult;
l_bResult = true;
// Variabile temporanea che conterrà il risultato della funzione di link se l'item corrente è parte di una chiave composta
boolean l_bTmpRes;
SetUpdated();
w_usercode = p_workVariableValue;
// Esecuzione dei calcoli
Calculate();
SaveDependsOn();
return l_bResult;
}
public boolean Set_created(java.sql.Timestamp p_workVariableValue) {
boolean l_bResult;
l_bResult = true;
// Variabile temporanea che conterrà il risultato della funzione di link se l'item corrente è parte di una chiave composta
boolean l_bTmpRes;
SetUpdated();
w_created = p_workVariableValue;
// Esecuzione dei calcoli
Calculate();
SaveDependsOn();
return l_bResult;
}
public boolean Set_createdby(double p_workVariableValue) {
boolean l_bResult;
l_bResult = true;
// Variabile temporanea che conterrà il risultato della funzione di link se l'item corrente è parte di una chiave composta
boolean l_bTmpRes;
SetUpdated();
w_createdby = p_workVariableValue;
// Esecuzione dei calcoli
Calculate();
SaveDependsOn();
return l_bResult;
}
public boolean Set_subject(String p_workVariableValue) {
boolean l_bResult;
l_bResult = true;
// Variabile temporanea che conterrà il risultato della funzione di link se l'item corrente è parte di una chiave composta
boolean l_bTmpRes;
SetUpdated();
w_subject = p_workVariableValue;
// Esecuzione dei calcoli
Calculate();
SaveDependsOn();
return l_bResult;
}
public boolean Set_postit(String p_workVariableValue) {
boolean l_bResult;
l_bResult = true;
// Variabile temporanea che conterrà il risultato della funzione di link se l'item corrente è parte di una chiave composta
boolean l_bTmpRes;
SetUpdated();
w_postit = p_workVariableValue;
// Esecuzione dei calcoli
Calculate();
SaveDependsOn();
return l_bResult;
}
public boolean Set_datestart(java.sql.Timestamp p_workVariableValue) {
boolean l_bResult;
l_bResult = true;
// Variabile temporanea che conterrà il risultato della funzione di link se l'item corrente è parte di una chiave composta
boolean l_bTmpRes;
SetUpdated();
w_datestart = p_workVariableValue;
// Esecuzione dei calcoli
Calculate();
SaveDependsOn();
return l_bResult;
}
public boolean Set_datestop(java.sql.Timestamp p_workVariableValue) {
boolean l_bResult;
l_bResult = true;
// Variabile temporanea che conterrà il risultato della funzione di link se l'item corrente è parte di una chiave composta
boolean l_bTmpRes;
SetUpdated();
w_datestop = p_workVariableValue;
// Esecuzione dei calcoli
Calculate();
SaveDependsOn();
return l_bResult;
}
public boolean Set_father(String p_workVariableValue) {
boolean l_bResult;
l_bResult = true;
// Variabile temporanea che conterrà il risultato della funzione di link se l'item corrente è parte di una chiave composta
boolean l_bTmpRes;
SetUpdated();
w_father = p_workVariableValue;
// Esecuzione dei calcoli
Calculate();
SaveDependsOn();
return l_bResult;
}
public boolean Set_checked(boolean p_workVariableValue) {
boolean l_bResult;
l_bResult = true;
// Variabile temporanea che conterrà il risultato della funzione di link se l'item corrente è parte di una chiave composta
boolean l_bTmpRes;
SetUpdated();
w_checked = p_workVariableValue;
// Esecuzione dei calcoli
Calculate();
SaveDependsOn();
return l_bResult;
}
public boolean Set_folder(boolean p_workVariableValue) {
boolean l_bResult;
l_bResult = true;
// Variabile temporanea che conterrà il risultato della funzione di link se l'item corrente è parte di una chiave composta
boolean l_bTmpRes;
SetUpdated();
w_folder = p_workVariableValue;
// Esecuzione dei calcoli
Calculate();
SaveDependsOn();
return l_bResult;
}
public boolean Set_status(String p_workVariableValue) {
boolean l_bResult;
l_bResult = true;
// Variabile temporanea che conterrà il risultato della funzione di link se l'item corrente è parte di una chiave composta
boolean l_bTmpRes;
SetUpdated();
w_status = p_workVariableValue;
// Esecuzione dei calcoli
Calculate();
SaveDependsOn();
return l_bResult;
}
public boolean Set_cplevel(String p_workVariableValue) {
boolean l_bResult;
l_bResult = true;
// Variabile temporanea che conterrà il risultato della funzione di link se l'item corrente è parte di una chiave composta
boolean l_bTmpRes;
SetUpdated();
w_cplevel = p_workVariableValue;
// Esecuzione dei calcoli
Calculate();
SaveDependsOn();
return l_bResult;
}
public boolean Set_cpimage(String p_workVariableValue) {
boolean l_bResult;
l_bResult = true;
// Variabile temporanea che conterrà il risultato della funzione di link se l'item corrente è parte di una chiave composta
boolean l_bTmpRes;
SetUpdated();
w_cpimage = p_workVariableValue;
// Esecuzione dei calcoli
Calculate();
SaveDependsOn();
return l_bResult;
}
/* Gestione delle funzioni che rispondono lo stato delle variabili di work.
Vengono chiamate dalla UI per valutare la condizione di visibilità e di
abilitazione di un control.
*/
public boolean getVisible_createdby() {
return true;
}
public boolean Set_Password(String p_pwd) {
m_cPassword = p_pwd;
return true;
}
public boolean Set_OTP(String p_otp) {
m_cOTP = p_otp;
return true;
}
public boolean Calculate() {
boolean l_bTmpRes;
l_bTmpRes = true;
boolean l_bResult;
l_bResult = true;
m_bCalculating = true;
if (CPLib.ne(o_code,w_code)) {
w_riletta = w_code;
l_bTmpRes = Link_EQOFWHOCZU();
}
// * --- Area Manuale = BO - Calculate
// * --- Fine Area Manuale
// Aggiorna l'autonumber se cambia la parte fissa
UpdateAutonumber();
for (int l_i = 0; CPLib.lt(l_i,m_MNTs.length); l_i = l_i + (1)) {
m_MNTs[l_i].m_child.FoundlingCopyWorkVar(this,true);
}
m_bCalculating = false;
return l_bResult;
}
void Calculation_ZDZUEZKGET() {
w_riletta = w_riletta;
Link_EQOFWHOCZU();
w_createdby = (CPLib.eq(EntityStatus(),"N")?m_Ctx.UserCode():w_createdby);
}
protected void BlankStatusVariables() {
m_bLoaded = false;
m_bUpdated = false;
m_cPreviousState = CPSecurity.UNKNOWN_STATE;
}
public void CalledBatchEnd() {
if ( ! (m_bCalculating)) {
// Esecuzione dei calcoli
Calculate();
}
}
public final static String[] m_KeyColumns = {"code"};
public static String QueryFilter(CPContext m_Ctx) {
String l_cFilter;
l_cFilter = CPLib.ProjectAndApplicationQueryFilter("postin","postit",m_KeyColumns,"usercode = "+m_Ctx.UserCode(),m_Ctx);
return l_cFilter;
}
public void SetFromContext(String s) {
SetFromContext(s,null);
}
public void SetFromContext(java.util.Properties p) {
SetFromContext("_dummy_",p);
}
public void SetFromContext(String s,java.util.Properties p) {
BlankStatusVariables();
w_code = "";
w_usercode = 0;
w_created = CPLib.NullDateTime();
w_createdby = 0;
w_subject = "";
w_postit = "";
w_datestart = CPLib.NullDateTime();
w_datestop = CPLib.NullDateTime();
w_father = "";
w_checked = false;
w_folder = false;
w_status = "";
w_cplevel = "";
w_cpimage = "";
w_riletta = "";
CPExtenderLib.BlankExtendedFields(extendedFields);
SaveDependsOn();
if ( ! (CPLib.Empty(s))) {
if (CPLib.IsNull(p)) {
p = CPLib.GetProperties(s);
}
boolean l_bFromHyperlink = CPLib.ne("_not_found_",CPLib.GetProperty(p,"m_cParameterSequence","_not_found_"));
w_code = CPLib.GetProperty(p,"code",w_code,0);
op_code = CPLib.GetProperty(p,"op_code","",0);
w_usercode = CPLib.GetProperty(p,"usercode",w_usercode,0);
w_created = CPLib.GetProperty(p,"created",w_created,0);
w_createdby = CPLib.GetProperty(p,"createdby",w_createdby,0);
w_subject = CPLib.GetProperty(p,"subject",w_subject,0);
w_postit = CPLib.GetProperty(p,"postit",w_postit,0);
w_datestart = CPLib.GetProperty(p,"datestart",w_datestart,0);
w_datestop = CPLib.GetProperty(p,"datestop",w_datestop,0);
w_father = CPLib.GetProperty(p,"father",w_father,0);
w_checked = CPLib.GetProperty(p,"checked",w_checked,0);
w_folder = CPLib.GetProperty(p,"folder",w_folder,0);
w_status = CPLib.GetProperty(p,"status",w_status,0);
w_cplevel = CPLib.GetProperty(p,"cplevel",w_cplevel,0);
w_cpimage = CPLib.GetProperty(p,"cpimage",w_cpimage,0);
w_riletta = CPLib.GetProperty(p,"riletta",w_riletta,0);
CPLib.SetFromContextMNTs(p,m_MNTs);
SPExtenderLib.SetExtendedFromContext(p,extendedFields);
m_bLoaded = CPLib.GetProperty(p,"m_bLoaded",false,0);
m_bUpdated = CPLib.GetProperty(p,"m_bUpdated",false,0);
m_cOldCPCCCHK = CPLib.GetProperty(p,"m_cOldCPCCCHK","",0);
m_cPreviousState = CPLib.GetProperty(p,"m_cPrvsStt","",0);
m_cPassword = CPLib.GetProperty(p,"m_cPwd","",0);
m_cOTP = CPLib.GetProperty(p,"m_cOTP","",0);
m_lCtxLoaded = true;
if ( ! (l_bFromHyperlink)) {
SaveDependsOn();
}
}
}
public void SetUpdated() {
m_bUpdated = true;
}
public String EntityStatus() {
return (m_bLoaded?"E":"N");
}
public String LastErrorMessage() {
return m_cLastMsgError;
}
static void GetLinkDef0(Map<String,List<Map<String,String[]>>> tables) {
java.util.regex.Pattern zeroSplit;
zeroSplit = java.util.regex.Pattern.compile("\\x00");
Map<String,String[]> map;
List<Map<String,String[]>> items;
map = new HashMap<String,String[]>();
items = tables.get("postit");
if (CPLib.IsNull(items)) {
items = new ArrayList<Map<String,String[]>>();
tables.put("postit",items);
}
items.add(map);
map.put("rd_kvar",new String[]{});
map.put("rd_kfield",new String[]{});
map.put("rd_field",new String[]{"code","createdby"});
map.put("rd_var",new String[]{"w_riletta","w_createdby"});
map.put("wr_var",new String[]{});
map.put("wr_field",new String[]{});
map.put("wr_op",new String[]{});
map.put("rd_var.obj_type",zeroSplit.split("C\u0000N",-1));
map.put("rd_kvar.obj_type",new String[]{});
map.put("rd_var.len",zeroSplit.split("10\u00004",-1));
map.put("rd_kvar.len",new String[]{});
map.put("rd_var.dec",zeroSplit.split("0\u00000",-1));
map.put("rd_kvar.dec",new String[]{});
map.put("rd_var.comment",zeroSplit.split("\u0000Creator",-1));
map.put("rd_kvar.comment",new String[]{});
map.put("rd_var.key_num",zeroSplit.split("nokey\u0000nokey",-1));
map.put("rd_kvar.key_num",new String[]{});
map.put("rd_var.repeated",zeroSplit.split("FALSE\u0000FALSE",-1));
map.put("rd_kvar.repeated",new String[]{});
map.put("rd_var.frm_obbl",zeroSplit.split("\u0000",-1));
map.put("rd_kvar.frm_obbl",new String[]{});
map.put("rd_var.obj",zeroSplit.split("variabile\u0000campo",-1));
map.put("rd_kvar.obj",new String[]{});
map.put("property.value",zeroSplit.split("postit\u0000false\u0000false\u00001\u00000\u0000postin_newfolder\u0000false\u0000false\u0000\u0000\u0000\u0000false",-1));
map.put("property.name",zeroSplit.split("arch\u0000fillemptykey\u0000looselylinked\u0000src_key\u0000hst_link_mode\u0000prg_zoom\u0000looselylinked\u0000sendkeystozoomonzoom\u0000zoom_title\u0000prg_link_search\u0000prg_link_defaults\u0000",-1));
}
public static Map<String,List<Map<String,String[]>>> GetLinkDef() {
java.util.regex.Pattern zeroSplit;
zeroSplit = java.util.regex.Pattern.compile("\\x00");
Map<String,List<Map<String,String[]>>> tables;
tables = new HashMap<String,List<Map<String,String[]>>>();
Map<String,String[]> map;
List<Map<String,String[]>> items;
GetLinkDef0(tables);
for(String child : CPLib.LoadableMNTs("postin",false)) {
map = new HashMap<String,String[]>();
items = tables.get(com.zucchetti.sitepainter.Library.getEntityTables(child)[0]);
if (CPLib.IsNull(items)) {
items = new ArrayList<Map<String,String[]>>();
tables.put(com.zucchetti.sitepainter.Library.getEntityTables(child)[0],items);
}
map.put("link_PC",new String[]{});
map.put("rd_kvar",new String[]{});
map.put("rd_kfield",new String[]{});
map.put("rd_field",new String[]{});
map.put("rd_var",new String[]{});
String[][] definitions = CPMNTChild.GetM_Fkd("postin",child);
// Informazione usata per risolvere la sintassi BO->tabella nelle VQR
map.put("rd_var",definitions[0]);
map.put("rd_field",definitions[1]);
// Definizione delle coppie padre/figlio
map.put("wr_var",definitions[0]);
map.put("wr_field",definitions[1]);
map.put("wr_op",new String[]{});
map.put("rd_var.obj_type",new String[]{});
map.put("rd_var.len",new String[]{});
map.put("rd_var.dec",new String[]{});
map.put("rd_var.comment",new String[]{});
map.put("property.name",new String[]{"arch","foundling","","","","prg_zoom"});
map.put("property.value",new String[]{com.zucchetti.sitepainter.Library.getEntityTables(child)[0],"true","","","",child});
items.add(map);
}
return tables;
}
public void Initialize() {
// Inizializzazione delle variabili di work
Blank();
// Inizializzazione delle variabili di progressivo e legate alle operazioni a saldo
BlankAutonumberAndTransactionVars();
// Prenota i progressivi
InitAutonumber();
m_MNTs = CPLib.MNTChilds("postin",m_Ctx);
m_cPreviousState = GetCurrentState();
}
public boolean Check() {
boolean l_bResult;
l_bResult = true;
ResetErrorMessage();
// * --- Area Manuale = BO - Check Form
// * --- Fine Area Manuale
return l_bResult;
}
void ResetErrorMessage() {
m_nLastError = 0;
m_cLastMsgError = "";
m_cLastWorkVarError = "";
}
public String GetCurrentState() {
String l_bResult;
l_bResult = CPSecurity.UNKNOWN_STATE;
return l_bResult;
}
/** @deprecated Will be removed in a future version **/
@Deprecated
public String GetStateSecurityKey(String p_cState) {
return GetStateSecurityKeyRoles(p_cState)[0];
}
public String[] GetStateSecurityKeyRoles(String p_cState) {
String[] l_Keys = {};
if (CPLib.eq(p_cState,CPSecurity.UNKNOWN_STATE)) {
l_Keys = new String[]{"postin"};
}
if (CPLib.eq(l_Keys.length,0)) {
l_Keys = new String[]{"postin\\"+p_cState};
}
return l_Keys;
}
public boolean CanView() {
boolean l_bResult;
l_bResult = true;
ResetErrorMessage();
l_bResult = l_bResult && BRCanView();
if ( ! (l_bResult)) {
String o_cLastMsgError = m_cLastMsgError;
Blank();
// Evita che un errore segnalato alla Blank, ad esempio link fallito, sovrascriva l'errore di accesso bloccato
m_cLastMsgError = o_cLastMsgError;
}
return l_bResult;
}
public boolean CanEdit() {
return CanEdit(GetCurrentState());
}
public boolean CanEdit(String p_cState) {
boolean l_bResult = true;
ResetErrorMessage();
l_bResult = l_bResult && BRCanEdit();
return l_bResult;
}
public boolean CanDelete() {
boolean l_bResult;
l_bResult = true;
ResetErrorMessage();
l_bResult = l_bResult && BRCanDelete();
return l_bResult;
}
public boolean CanAdd() {
return CanAdd(GetCurrentState());
}
public boolean CanAdd(String p_cState) {
boolean l_bResult = true;
ResetErrorMessage();
l_bResult = l_bResult && BRCanAdd();
return l_bResult;
}
void InitAutonumber() {
// For each autonumbered field set according to values in table CPWARN
// Segna le variabili coinvolte in un progressivo: se al salvataggio hanno
// lo stesso valore vuol dire che l' utente accetta il progressivo proposto.
w_code = m_Ctx.AskTableProg(w_code,10,op_code,"postitId",m_cServer_postit);
op_code = w_code;
o_code = w_code;
}
void UpdateAutonumber() {
// le l_bx memorizzano le condizione di aggiornamento degli autonumber
// >prima< di modificari i valori degli op_
}
void BlankAutonumberAndTransactionVars() {
// Inizializzazione dei progressivi
op_code = "";
// Inizializzazione delle variabili per DependsOn
o_code = "";
// Inizializzazione delle variabili per la gestione dello storno delle operazioni di saldo
}
public String GetContext() {
return GetContext(true);
}
public String GetContext(boolean p_bGetChildren) {
Properties p;
p = new Properties();
GetContext(p_bGetChildren,p);
return CPLib.ToProperties(p);
}
public void GetContext(java.util.Properties p_oProperties) {
GetContext(true,p_oProperties);
}
public void GetContext(boolean p_bGetChildren,java.util.Properties p) {
CPLib.PutProperty(p,"code",w_code,0);
CPLib.PutProperty(p,"op_code",op_code,0);
CPLib.PutProperty(p,"usercode",w_usercode,0);
CPLib.PutProperty(p,"created",w_created,0);
CPLib.PutProperty(p,"createdby",w_createdby,0);
CPLib.PutProperty(p,"subject",w_subject,0);
CPLib.PutProperty(p,"postit",w_postit,0);
CPLib.PutProperty(p,"datestart",w_datestart,0);
CPLib.PutProperty(p,"datestop",w_datestop,0);
CPLib.PutProperty(p,"father",w_father,0);
CPLib.PutProperty(p,"checked",w_checked,0);
CPLib.PutProperty(p,"folder",w_folder,0);
CPLib.PutProperty(p,"status",w_status,0);
CPLib.PutProperty(p,"cplevel",w_cplevel,0);
CPLib.PutProperty(p,"cpimage",w_cpimage,0);
CPLib.PutProperty(p,"riletta",w_riletta,0);
if (p_bGetChildren) {
CPLib.PutProperty(p,m_MNTs);
}
SPExtenderLib.PutExtendedProperies(p,extendedFields);
CPLib.PutProperty(p,"m_bLoaded",m_bLoaded);
CPLib.PutProperty(p,"m_bUpdated",m_bUpdated);
CPLib.PutProperty(p,"m_cOldCPCCCHK",m_cOldCPCCCHK);
CPLib.PutProperty(p,"m_cPrvsStt",m_cPreviousState);
}
public String i_PrimaryKey() {
return PrimaryKey(this);
}
public static String PrimaryKey(Caller p_Caller) {
return "postit"+"\\"+CPLib.ToCPStr(p_Caller.GetString("code","C",10,0));
}
public List<List<String>> AutonumDefinition() {
return StaticAutonumDefinition();
}
public static List<List<String>> StaticAutonumDefinition() {
List<List<String>> autonums;
autonums = new ArrayList<List<String>>();
List<String> oneAutoNum;
oneAutoNum = new ArrayList<String>();
oneAutoNum.add("w_code");
oneAutoNum.add("postitId");
oneAutoNum.add("");
autonums.add(oneAutoNum);
return autonums;
}
CallerBRImpl GetChild(String p_cName) {
return GetMNTChild(false,m_MNTs,p_cName);
}
// * --- Area Manuale = BL - Methods
// * --- Fine Area Manuale
}