Patch level :
Files correlati : Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/branches/R_10_00@20768 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
6f878ccd48
commit
2b90198db0
261
ps/ps1001300.cpp
261
ps/ps1001300.cpp
@ -108,6 +108,7 @@ static int compare_by_fase(TSheet_field & s, int r1, int r2)
|
||||
class TVariazione_budget_mask : public TAutomask
|
||||
{
|
||||
bool _dirty;
|
||||
bool _exclude_fasi;
|
||||
//posizioni dei vari campi dello sheet: vengono assegnati nel costruttore
|
||||
int _pos_cms, _pos_check, _pos_cdc, _pos_fase, _pos_conto, _pos_datacomp, _pos_autofcomp, _pos_datafcomp,
|
||||
_pos_cosric, _pos_imp, _pos_prev, _pos_mat, _pos_ipg, _pos_descr, _pos_numreg, _pos_numrig, _pos_tipomov;
|
||||
@ -124,6 +125,7 @@ protected:
|
||||
void calcola_impegnato(const TString& cms, const bool include_cms_supp, TSheet_field& sf_righe); //(load()) aggiunge il valore dell'impegnato nella colonna corrispondente
|
||||
TToken_string& add_rmovana(const TRectype& movana, const TRectype& rmovana, TSheet_field& sf_righe); //(load_rmovana()) metodo di basso livello..
|
||||
//..per caricare fisicamente le righe sullo sheet
|
||||
bool find_conto_rigadoc(const TRiga_documento& rigadoc, const char tipocf, TBill& zio) const; //trova il conto collegato ad una rigadoc e lo sbatte in zio (calcola_impegnato())
|
||||
|
||||
bool one_checked() const; //(on_field) controlla se nella colonna dei check ce ne è almeno 1 checkato
|
||||
void check_all(const bool checked); //(on_field) checka-dechecka la colonna dei check
|
||||
@ -136,7 +138,7 @@ protected:
|
||||
|
||||
void trova_cms_supporto(const TString& codcms); //(load(),on_field()) riempie la lista con le commesse di supporto valide
|
||||
int trova_riga_sullo_sheet(TSheet_field& sf_righe, const TString& cms, const TString& cdc,
|
||||
const TString& conto, const TString& fase, const bool exclude_fasi);
|
||||
const TString& conto, const TString& fase);
|
||||
void aggiorna_saldi_preventivi(TSheet_field& sf_righe, const int curr_riga); //(load()) crea i saldi preventivi in base agli importi
|
||||
|
||||
bool save_commessa(); //(save()) salva i cambiamenti di date della commessa esaminata
|
||||
@ -156,14 +158,25 @@ TVariazione_budget_mask::TVariazione_budget_mask() : TAutomask ("ps1001300a")
|
||||
TConfig ditta_ini(CONFIG_DITTA, "ps1001");
|
||||
set(F_CODCAUS, ditta_ini.get("CodCaus"), 0x3);
|
||||
set(F_INCLUDESUPP, ditta_ini.get_bool("InclSupp"));
|
||||
set(F_EXCLUDEFASI, ditta_ini.get_bool("ExclFasi"));
|
||||
|
||||
//controlla se può usare le fasi o no, in base alla configurazione analitica di ditta
|
||||
//le fasi devono essere escluse se non sono obbligatorie nella configurazione dei movimenti di analitica!
|
||||
TConfig& caconfig = ca_config();
|
||||
_exclude_fasi = !caconfig.get_bool("FscRequired");
|
||||
|
||||
//se le fasi non vanno considerate -> deve sparire la colonna corrispondente sullo sheet!
|
||||
TSheet_field& sf_righe = sfield(F_RIGHE);
|
||||
_pos_fase = sf_righe.cid2index(S_FASE);
|
||||
if (_exclude_fasi)
|
||||
{
|
||||
sf_righe.delete_column(_pos_fase);
|
||||
_pos_fase = -1;
|
||||
}
|
||||
|
||||
//setta le posizioni dei campi dello sheet
|
||||
TSheet_field& sf_righe = sfield(F_RIGHE);
|
||||
_pos_check = sf_righe.cid2index(S_CHECK);
|
||||
_pos_cms = sf_righe.cid2index(S_CMS);
|
||||
_pos_cdc = sf_righe.cid2index(S_CDC);
|
||||
_pos_fase = sf_righe.cid2index(S_FASE);
|
||||
_pos_conto = sf_righe.cid2index(S_CONTO);
|
||||
_pos_datacomp = sf_righe.cid2index(S_DATACOMP);
|
||||
_pos_autofcomp = sf_righe.cid2index(S_AUTOFCOMP);
|
||||
@ -177,6 +190,8 @@ TVariazione_budget_mask::TVariazione_budget_mask() : TAutomask ("ps1001300a")
|
||||
_pos_numreg = sf_righe.cid2index(S_NUMREG);
|
||||
_pos_numrig = sf_righe.cid2index(S_NUMRIG);
|
||||
_pos_tipomov = sf_righe.cid2index(S_TIPOMOV);
|
||||
|
||||
|
||||
}
|
||||
|
||||
TVariazione_budget_mask::~TVariazione_budget_mask()
|
||||
@ -185,7 +200,6 @@ TVariazione_budget_mask::~TVariazione_budget_mask()
|
||||
TConfig ditta_ini(CONFIG_DITTA, "ps1001");
|
||||
ditta_ini.set("CodCaus", get(F_CODCAUS));
|
||||
ditta_ini.set("InclSupp", get_bool(F_INCLUDESUPP));
|
||||
ditta_ini.set("ExclFasi", get_bool(F_EXCLUDEFASI));
|
||||
}
|
||||
|
||||
//crea la chiave cdc/fase/conto
|
||||
@ -858,7 +872,7 @@ void TVariazione_budget_mask::trova_cms_supporto(const TString& codcms)
|
||||
|
||||
|
||||
int TVariazione_budget_mask::trova_riga_sullo_sheet(TSheet_field& sf_righe, const TString& cms, const TString& cdc,
|
||||
const TString& conto, const TString& fase, const bool exclude_fasi)
|
||||
const TString& conto, const TString& fase)
|
||||
{
|
||||
int index = -1;
|
||||
//cerca una riga con la medesima chiave sullo sheet
|
||||
@ -879,7 +893,7 @@ int TVariazione_budget_mask::trova_riga_sullo_sheet(TSheet_field& sf_righe, cons
|
||||
if (conto != cod_row)
|
||||
continue;
|
||||
|
||||
if (!exclude_fasi)
|
||||
if (!_exclude_fasi)
|
||||
{
|
||||
cod_row = row.get(_pos_fase);
|
||||
cod_row.trim();
|
||||
@ -901,11 +915,10 @@ TToken_string& TVariazione_budget_mask::add_rmovana(const TRectype& movana, cons
|
||||
TString80 fase = rmovana.get(RMOVANA_CODFASE);
|
||||
|
||||
int index = -1;
|
||||
const bool exclude_fasi = get_bool(F_EXCLUDEFASI);
|
||||
if (exclude_fasi)
|
||||
if (_exclude_fasi)
|
||||
{
|
||||
fase.cut(0);
|
||||
index = trova_riga_sullo_sheet(sf_righe, cms, cdc, conto, fase, exclude_fasi);
|
||||
index = trova_riga_sullo_sheet(sf_righe, cms, cdc, conto, fase);
|
||||
}
|
||||
|
||||
TToken_string& row = sf_righe.row(index);
|
||||
@ -1066,7 +1079,6 @@ int TVariazione_budget_mask::load_saldana(const TString& cms, const long max_num
|
||||
|
||||
TAssoc_array chiavi_saldana;
|
||||
TToken_string chiave;
|
||||
const bool exclude_fasi = get_bool(F_EXCLUDEFASI); //si vogliono escludere le fasi dalle chiavi di riga?
|
||||
|
||||
//riempie l'assoc_array conto/cdc/cms/fase/saldo
|
||||
for (bool ok = saldana.move_first(); ok; ok = saldana.move_next())
|
||||
@ -1084,7 +1096,7 @@ int TVariazione_budget_mask::load_saldana(const TString& cms, const long max_num
|
||||
chiave.add(cdc);
|
||||
chiave.add(cms);
|
||||
//le fasi vanno aggiunte alla chiave solo se specificato (Adolf rikiesten 20/07/2010)
|
||||
if (!exclude_fasi)
|
||||
if (!_exclude_fasi)
|
||||
chiave.add(fase);
|
||||
|
||||
//se non trova la chiave la aggiunge
|
||||
@ -1136,14 +1148,14 @@ int TVariazione_budget_mask::load_saldana(const TString& cms, const long max_num
|
||||
const TString80 cdc = key_bill.get(1);
|
||||
const TString80 cms = key_bill.get(2);
|
||||
TString16 fase;
|
||||
if (!exclude_fasi)
|
||||
if (!_exclude_fasi)
|
||||
fase << key_bill.get(3);
|
||||
|
||||
TToken_string& row = sf_righe.row(-1);
|
||||
|
||||
row.add(cms, _pos_cms);
|
||||
row.add(cdc, _pos_cdc);
|
||||
if (!exclude_fasi)
|
||||
if (!_exclude_fasi)
|
||||
row.add(fase, _pos_fase);
|
||||
row.add(conto, _pos_conto);
|
||||
|
||||
@ -1180,10 +1192,79 @@ int TVariazione_budget_mask::load_saldana(const TString& cms, const long max_num
|
||||
}
|
||||
|
||||
|
||||
bool TVariazione_budget_mask::find_conto_rigadoc(const TRiga_documento& rigadoc, const char tipocf, TBill& zio) const
|
||||
{
|
||||
int gr = 0, co = 0;
|
||||
long so = 0L;
|
||||
|
||||
TString80 codart = rigadoc.get(RDOC_CODARTMAG);
|
||||
if (codart.empty())
|
||||
codart = rigadoc.get(RDOC_CODART);
|
||||
|
||||
if (rigadoc.is_merce())
|
||||
{
|
||||
//deve ricavare anche il conto attraverso il codart, sennò non riesce a completare la chiave dello sheet
|
||||
const TRectype& rec_anamag = cache().get(LF_ANAMAG, codart);
|
||||
|
||||
if (!rec_anamag.empty())
|
||||
{
|
||||
if (tipocf == 'F')
|
||||
{
|
||||
gr = rec_anamag.get_int(ANAMAG_GRUPPOA);
|
||||
co = rec_anamag.get_int(ANAMAG_CONTOA);
|
||||
so = rec_anamag.get_long(ANAMAG_SOTTOCA);
|
||||
}
|
||||
else
|
||||
{
|
||||
gr = rec_anamag.get_int(ANAMAG_GRUPPOV);
|
||||
co = rec_anamag.get_int(ANAMAG_CONTOV);
|
||||
so = rec_anamag.get_long(ANAMAG_SOTTOCV);
|
||||
}
|
||||
}
|
||||
} else
|
||||
if (rigadoc.is_prestazione())
|
||||
{
|
||||
const TRectype& rec_tab_prs = cache().get("PRS", codart);
|
||||
|
||||
if (!rec_tab_prs.empty())
|
||||
{
|
||||
if (tipocf == 'F')
|
||||
{
|
||||
gr = rec_tab_prs.get_int("I3");
|
||||
co = rec_tab_prs.get_int("I4");
|
||||
so = rec_tab_prs.get_long("I5");
|
||||
}
|
||||
else
|
||||
{
|
||||
gr = rec_tab_prs.get_int("I0");
|
||||
co = rec_tab_prs.get_int("I1");
|
||||
so = rec_tab_prs.get_long("I2");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (so <= 0 && codart.find('*') > 0)
|
||||
{
|
||||
TToken_string cazzo_codart(codart, '*');
|
||||
gr = cazzo_codart.get_int(0);
|
||||
co = cazzo_codart.get_int(1);
|
||||
so = cazzo_codart.get_long(2);
|
||||
}
|
||||
|
||||
//se il conto non è completo non può riuscire a piazzare il valore dell'impegnato in una riga dello sheet..
|
||||
//..in quanto la chiave di riga risulta comunque incompleta nel conto! Quindi prosegue con la riga dopo
|
||||
if (so <= 0)
|
||||
return false;
|
||||
else
|
||||
{
|
||||
zio.set(gr, co, so);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void TVariazione_budget_mask::calcola_impegnato(const TString& cms, const bool include_cms_supp, TSheet_field& sf_righe)
|
||||
{
|
||||
const bool exclude_fasi = get_bool(F_EXCLUDEFASI);
|
||||
|
||||
//trova tutte le numerazioni di tipo ordine valide in base ai tipi documento ordine (metodo di velib01 preso da ca3883)
|
||||
//solo le numerazioni con almeno un tipo documento ordine interessano
|
||||
TString_array num_ordini, tip_ordini;
|
||||
@ -1199,14 +1280,22 @@ void TVariazione_budget_mask::calcola_impegnato(const TString& cms, const bool i
|
||||
const TDate data_fine_cms = get_date(F_DATAFINECMS);
|
||||
const int a_anno = data_fine_cms.year();
|
||||
|
||||
//simpatica progind per intrattenere l'utonto
|
||||
TProgind pi(numerazioni_tipo_ordine, "Calcolo dell'impegnato...", true, true);
|
||||
|
||||
for (int n = 0; n < numerazioni_tipo_ordine; n++)
|
||||
{
|
||||
//aggiornamento progind intrattenitiva
|
||||
if (!pi.addstatus(1))
|
||||
break;
|
||||
|
||||
const TString4 codnum = num_ordini.row(n);
|
||||
|
||||
//cerca tutte le righe documento che soddisfano i numerosi parametri
|
||||
TString query;
|
||||
query << "USE RDOC";
|
||||
query << "\nSELECT (RIGAEVASA!=\"X\")&&(";
|
||||
query << "\nSELECT (";
|
||||
//query << "\nSELECT (RIGAEVASA!=\"X\")&&("; originale con solo righe inevase
|
||||
FOR_EACH_TOKEN(_cms_supporto, codcms)
|
||||
query << "(CODCMS==\"" << codcms << "\")||";
|
||||
query.rtrim(2);
|
||||
@ -1221,20 +1310,17 @@ void TVariazione_budget_mask::calcola_impegnato(const TString& cms, const bool i
|
||||
recset.set_var("#AANNO", (long)a_anno);
|
||||
|
||||
const TRecnotype recset_items = recset.items();
|
||||
//simpatica progind per intrattenere l'utonto
|
||||
TProgind pi(recset_items, "Calcolo dell'impegnato...", true, true);
|
||||
|
||||
//memorizza l'ultimo doc per evitare doppioni in caso di doc con più righe (rielaborerebbe..
|
||||
//..lo stesso documento tante volte quante sono le sue righe!)
|
||||
TString old_key;
|
||||
TString16 last_conto, last_fase; //contatori interni ad un documento che serve per legare le righe spese% con le righe prestazioni..
|
||||
TString80 last_cdc; //..distruggono la supersimmetria del programma ma le righe spese% non hanno in genere conti associati
|
||||
|
||||
//deve controllare che le righe appartengano a documenti di TIPO valido (il filtro è stato sulle numerazioni,..
|
||||
//..quindi ci potrebbero essere finiti dentro tipi non desiderati)
|
||||
for (bool ok = recset.move_first(); ok; ok = recset.move_next()) //giro sulle varie rdoc...
|
||||
{
|
||||
//aggiornamento progind intrattenitiva
|
||||
if (!pi.addstatus(1))
|
||||
break;
|
||||
|
||||
const TRectype& curr_doc = recset.cursor()->curr(LF_DOC);
|
||||
|
||||
//controlla se il documento contenente la riga è davvero un ordine ricontrollando il suo tipo nell'array..
|
||||
@ -1243,9 +1329,9 @@ void TVariazione_budget_mask::calcola_impegnato(const TString& cms, const bool i
|
||||
if (tip_ordini.find(tipodoc) < 0)
|
||||
continue;
|
||||
|
||||
//ovviamente non è finita qui...
|
||||
//la riga documento non deve risultare contabilizzata! infatti, se lo fosse, i suoi valori apparirebbero..
|
||||
//..nella sezione delle rmovana
|
||||
//..nella sezione delle rmovana (è pressochè impossibile che un ordine venga contabilizzato, ma le vie di..
|
||||
//..Dinamica sono infinite..
|
||||
const long numregca = curr_doc.get_long(DOC_NUMREGCA);
|
||||
//se la rigadoc non è stata contabilizzata..
|
||||
if (numregca == 0)
|
||||
@ -1255,93 +1341,82 @@ void TVariazione_budget_mask::calcola_impegnato(const TString& cms, const bool i
|
||||
if (curr_key == old_key)
|
||||
continue;
|
||||
else
|
||||
{
|
||||
old_key = curr_key;
|
||||
last_conto.cut(0);
|
||||
last_cdc.cut(0);
|
||||
last_fase.cut(0);
|
||||
}
|
||||
|
||||
//crea il documento virtuale in memoria; se non è ordine oppure lo è ma è già evaso, lo saltiamo!!! ole'!
|
||||
//crea il documento virtuale in memoria; se non è ordine lo saltiamo!!! ole'!
|
||||
TDocumento doc(curr_doc);
|
||||
if (!doc.is_ordine() || doc.is_evaso())
|
||||
if (!doc.is_ordine())
|
||||
continue;
|
||||
|
||||
const char tipocf = doc.tipocf();
|
||||
//il documento virtuale è adesso un ordine non evaso
|
||||
//tarocchiamo il documento prendendo solo le righe non evase (almeno una ci sarà, perchè la query del recordset..
|
||||
//..richiedeva che la rigadoc fosse non evasa, quindi quella riga nel doc esiste, magari in compagnia di altre)
|
||||
for (int r = doc.body().last_row(); r > 0; r = doc.body().pred_row(r))
|
||||
FOR_EACH_PHYSICAL_RDOC(doc, r, rigadoc_ptr)
|
||||
{
|
||||
TRiga_documento& rigadoc = doc[r];
|
||||
TRiga_documento& rigadoc = *rigadoc_ptr;
|
||||
//trattamento delle righe non evase di tipo merce o prestazione
|
||||
if (rigadoc.is_merce() || rigadoc.is_prestazione())
|
||||
|
||||
if (rigadoc.is_merce() || rigadoc.is_prestazione() || rigadoc.is_spese())
|
||||
{
|
||||
if (!rigadoc.is_evasa())
|
||||
const TString80 rigadoc_cms = rigadoc.codice_commessa();
|
||||
if (_cms_supporto.get_pos(rigadoc_cms) >= 0) //deve avere commessa valida!!!
|
||||
{
|
||||
const TString80 rigadoc_cms = rigadoc.codice_commessa();
|
||||
if (_cms_supporto.get_pos(rigadoc_cms) >= 0) //deve avere commessa valida!!!
|
||||
//è inutile fare un sacco di conti su una riga senza valore!
|
||||
const real valore = rigadoc.importo(true, true, AUTO_DECIMALS);
|
||||
if ((rigadoc.is_merce() || rigadoc.is_prestazione()) && valore.is_zero())
|
||||
continue;
|
||||
|
||||
TString16 rigadoc_conto, rigadoc_fase;
|
||||
TString80 rigadoc_cdc;
|
||||
|
||||
//se la riga è di tipo spese (quindi non ha un conto associabile che ci permetta di posizionarne l'importo sullo..
|
||||
//..sheet, in quanto la chiave sarebbe incompleta del conto) si provvede ad associarla all'ultima riga buona del documento..
|
||||
//..in esame
|
||||
if (rigadoc.is_spese())
|
||||
{
|
||||
rigadoc_conto = last_conto;
|
||||
rigadoc_cdc = last_cdc;
|
||||
if (!_exclude_fasi)
|
||||
rigadoc_fase = last_fase;
|
||||
}
|
||||
else
|
||||
{
|
||||
//deve ricavare anche il conto attraverso il codart, sennò non riesce a completare la chiave dello sheet
|
||||
int gr = 0, co = 0;
|
||||
long so = 0L;
|
||||
TString80 codart = rigadoc.get(RDOC_CODARTMAG);
|
||||
if (codart.empty())
|
||||
codart = rigadoc.get(RDOC_CODART);
|
||||
const TRectype& rec_anamag = cache().get(LF_ANAMAG, codart);
|
||||
if (rec_anamag.empty())
|
||||
TBill zio;
|
||||
if (find_conto_rigadoc(rigadoc, tipocf, zio))
|
||||
{
|
||||
TToken_string cazzo_codart(codart, '*');
|
||||
gr = cazzo_codart.get_int(0);
|
||||
co = cazzo_codart.get_int(1);
|
||||
so = cazzo_codart.get_long(2);
|
||||
rigadoc_conto.format("%03d%03d%06ld", zio.gruppo(), zio.conto(), zio.sottoconto());
|
||||
if (rigadoc_conto == "004001000073")
|
||||
int cazzone = 1;
|
||||
//cdc
|
||||
rigadoc_cdc = rigadoc.codice_costo();
|
||||
//eventuale fase
|
||||
if (!_exclude_fasi)
|
||||
rigadoc_fase = rigadoc.fase_commessa();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (tipocf == 'F')
|
||||
{
|
||||
gr = rec_anamag.get_int(ANAMAG_GRUPPOA);
|
||||
co = rec_anamag.get_int(ANAMAG_CONTOA);
|
||||
so = rec_anamag.get_long(ANAMAG_SOTTOCA);
|
||||
}
|
||||
else
|
||||
{
|
||||
gr = rec_anamag.get_int(ANAMAG_GRUPPOV);
|
||||
co = rec_anamag.get_int(ANAMAG_CONTOV);
|
||||
so = rec_anamag.get_long(ANAMAG_SOTTOCV);
|
||||
}
|
||||
}
|
||||
//se il conto non è completo non può riuscire a piazzare il valore dell'impegnato in una riga dello sheet..
|
||||
//..in quanto la chiave di riga risulta comunque incompleta nel conto! Quindi prosegue con la riga dopo
|
||||
if (so <= 0)
|
||||
continue;
|
||||
|
||||
//conto
|
||||
TString16 rigadoc_conto;
|
||||
rigadoc_conto.format("%03d%03d%06ld", gr, co, so);
|
||||
//cdc
|
||||
const TString80 rigadoc_cdc = rigadoc.codice_costo();
|
||||
//eventuale fase
|
||||
TString16 rigadoc_fase;
|
||||
if (!exclude_fasi)
|
||||
rigadoc_fase = rigadoc.fase_commessa();
|
||||
}
|
||||
//cerca una riga con la medesima chiave sullo sheet
|
||||
const int index = trova_riga_sullo_sheet(sf_righe, rigadoc_cms, rigadoc_cdc, rigadoc_conto, rigadoc_fase);
|
||||
|
||||
if (index >= 0)
|
||||
{
|
||||
TToken_string& row = sf_righe.row(index);
|
||||
real row_valore_impegnato = row.get(_pos_ipg);
|
||||
row_valore_impegnato += valore;
|
||||
row.add(row_valore_impegnato.string(), _pos_ipg);
|
||||
last_conto = rigadoc_conto;
|
||||
last_cdc = rigadoc_cdc;
|
||||
last_fase = rigadoc_fase;
|
||||
}
|
||||
|
||||
//cerca una riga con la medesima chiave sullo sheet
|
||||
int index = trova_riga_sullo_sheet(sf_righe, rigadoc_cms, rigadoc_cdc, rigadoc_conto, rigadoc_fase, exclude_fasi);
|
||||
|
||||
if (index >= 0)
|
||||
{
|
||||
//trasforma tutte le righe a valore, assegnando al prezzo il valore del residuo
|
||||
//const real valore = rigadoc.valore(true, false, AUTO_DECIMALS);
|
||||
const real residuo = rigadoc.valore(false, false, AUTO_DECIMALS);
|
||||
} //if (rigadoc.codice_commessa()...
|
||||
|
||||
if (!residuo.is_zero())
|
||||
{
|
||||
TToken_string& row = sf_righe.row(index);
|
||||
real row_valore_impegnato = row.get(_pos_ipg);
|
||||
row_valore_impegnato += residuo;
|
||||
row.add(row_valore_impegnato.string(), _pos_ipg);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
} //if (rigadoc.codice_commessa()...
|
||||
} //if (!rigadoc.is_evasa())..
|
||||
} //if (rigadoc.is_merce()
|
||||
} //for (int r = doc.body().last_row()
|
||||
} //if (numregca == 0)...
|
||||
|
@ -6,7 +6,6 @@
|
||||
#define F_PROROGATA 205
|
||||
#define F_DATAPRORCMS 206
|
||||
#define F_INCLUDESUPP 207
|
||||
#define F_EXCLUDEFASI 208
|
||||
#define F_DATAREG 209
|
||||
#define F_CODCAUS 210
|
||||
#define F_DESCAUS 211
|
||||
|
@ -55,7 +55,7 @@ ENDPAGE
|
||||
|
||||
PAGE "Gestione Budget" 0 2 0 0
|
||||
|
||||
GROUPBOX DLG_NULL 78 6
|
||||
GROUPBOX DLG_NULL 78 5
|
||||
BEGIN
|
||||
PROMPT 0 0 "@bCommessa"
|
||||
END
|
||||
@ -119,26 +119,21 @@ BEGIN
|
||||
PROMPT 1 3 "Includere le righe con commesse di supporto"
|
||||
END
|
||||
|
||||
BOOLEAN F_EXCLUDEFASI
|
||||
BEGIN
|
||||
PROMPT 1 4 "Non considerare le fasi nei consuntivi"
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 3
|
||||
BEGIN
|
||||
PROMPT 0 6 "@bParametri movimenti analitici da generare"
|
||||
PROMPT 0 5 "@bParametri movimenti analitici da generare"
|
||||
END
|
||||
|
||||
DATE F_DATAREG
|
||||
BEGIN
|
||||
PROMPT 1 7 "Data reg. "
|
||||
PROMPT 1 6 "Data reg. "
|
||||
CHECKTYPE REQUIRED
|
||||
FLAGS "A"
|
||||
END
|
||||
|
||||
STRINGA F_CODCAUS 3
|
||||
BEGIN
|
||||
PROMPT 24 7 "Causale "
|
||||
PROMPT 24 6 "Causale "
|
||||
USE LF_CAUSALI SELECT MOVIND!=""
|
||||
INPUT CODCAUS F_CODCAUS
|
||||
DISPLAY "Codice" CODCAUS
|
||||
@ -151,7 +146,7 @@ END
|
||||
|
||||
STRINGA F_DESCAUS 50 37
|
||||
BEGIN
|
||||
PROMPT 38 7 ""
|
||||
PROMPT 38 6 ""
|
||||
USE LF_CAUSALI KEY 2 SELECT MOVIND!=''
|
||||
INPUT DESCR F_DESCAUS
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
@ -162,7 +157,7 @@ END
|
||||
|
||||
TEXT DLG_NULL
|
||||
BEGIN
|
||||
PROMPT -11 9 "@bRighe movimenti di budget e saldi consuntivi"
|
||||
PROMPT -11 8 "@bRighe movimenti di budget e saldi consuntivi"
|
||||
END
|
||||
|
||||
SPREADSHEET F_RIGHE
|
||||
|
Loading…
x
Reference in New Issue
Block a user