Patch level :10.0

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :aggiunta la possibilità di scegliere se includere o meno i documenti nella stampa bilancio di commessa e corretto errore sulla query dei docs stessi (segnalazioni dell'amato fuhrer del 29/05/09)


git-svn-id: svn://10.65.10.50/trunk@18968 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca 2009-05-29 15:14:40 +00:00
parent 962492b999
commit 920bf7f880
4 changed files with 52 additions and 22 deletions

View File

@ -6,7 +6,7 @@ ENDPAGE
PAGE "Stampa bilancio commessa" 0 2 0 0 PAGE "Stampa bilancio commessa" 0 2 0 0
GROUPBOX DLG_NULL 76 4 GROUPBOX DLG_NULL 76 5
BEGIN BEGIN
PROMPT 0 1 "" PROMPT 0 1 ""
END END
@ -38,25 +38,30 @@ END
BOOLEAN F_VITAINTERA BOOLEAN F_VITAINTERA
BEGIN BEGIN
PROMPT 1 3 "Inclusi esercizi successivi (vita intera)" PROMPT 1 3 "Includere esercizi successivi (vita intera)"
MESSAGE FALSE ENABLE,F_FINE_ES MESSAGE FALSE ENABLE,F_FINE_ES
MESSAGE TRUE CLEAR,F_FINE_ES MESSAGE TRUE CLEAR,F_FINE_ES
END END
BOOLEAN F_INCLUDE_DOCUMENTI
BEGIN
PROMPT 1 4 "Includere documenti non contabilizzati (di tipo ordine)"
END
DATE F_DATASTAMPA DATE F_DATASTAMPA
BEGIN BEGIN
PROMPT 2 5 "Data stampa " PROMPT 2 6 "Data stampa "
FLAGS "A" FLAGS "A"
END END
GROUPBOX DLG_NULL 76 8 GROUPBOX DLG_NULL 76 7
BEGIN BEGIN
PROMPT 0 6 "@bParametri" PROMPT 0 7 "@bParametri"
END END
LISTBOX F_TIPOSTAMPA 1 30 LISTBOX F_TIPOSTAMPA 1 30
BEGIN BEGIN
PROMPT 1 7 "Stampa " PROMPT 1 8 "Stampa "
ITEM "0|Normale" ITEM "0|Normale"
MESSAGE CLEAR,F_FASE|CLEAR,F_CDC MESSAGE CLEAR,F_FASE|CLEAR,F_CDC
ITEM "1|Dettaglia per Fase" ITEM "1|Dettaglia per Fase"
@ -73,12 +78,12 @@ END
STRING F_FASE 10 STRING F_FASE 10
BEGIN BEGIN
PROMPT 2 8 "Fase " PROMPT 2 9 "Fase "
END END
STRING F_CDC 20 STRING F_CDC 20
BEGIN BEGIN
PROMPT 2 9 "CdC " PROMPT 2 10 "CdC "
USE LF_CDC USE LF_CDC
INPUT CODCOSTO F_CDC INPUT CODCOSTO F_CDC
DISPLAY "Codice centro di costo" CODCOSTO DISPLAY "Codice centro di costo" CODCOSTO
@ -99,7 +104,7 @@ END
BOOLEAN F_TIPODETR BOOLEAN F_TIPODETR
BEGIN BEGIN
PROMPT 1 10 "Utilizzare consuntivi per le detrazioni " PROMPT 1 11 "Utilizzare consuntivi per le detrazioni "
END END
GROUPBOX F_PRE0 76 5 GROUPBOX F_PRE0 76 5
@ -133,7 +138,7 @@ PAGE "Istruzioni" 0 2 0 0
GROUPBOX DLG_NULL 78 9 GROUPBOX DLG_NULL 78 9
BEGIN BEGIN
PROMPT 1 1 "@bUtilizzo campi dalla/alla data ed esercizio" PROMPT 1 1 "@bUtilizzo campi data Inizio/Fine ed esercizio"
END END
TEXT -1 TEXT -1
@ -171,6 +176,21 @@ BEGIN
PROMPT 1 8 " a quello selezionato." PROMPT 1 8 " a quello selezionato."
END END
GROUPBOX DLG_NULL 78 9
BEGIN
PROMPT 1 10 "@bUtilizzo Parametri"
END
TEXT -1
BEGIN
PROMPT 1 11 "3) Includere documenti equivale a considerare nel calcolo anche i documenti"
END
TEXT -1
BEGIN
PROMPT 1 12 " non contabilizzati di tipo ordine con data inclusa nell'intervallo selezionato"
END
ENDPAGE ENDPAGE
ENDMASK ENDMASK

View File

@ -1298,6 +1298,8 @@ void TPrint_saldana_recordset::parse_rmovana(TAssoc_array* cms, const TDate& dat
} }
} }
break; break;
default:
break;
} }
query << "JOIN MOVANA INTO NUMREG==NUMREG\nFROM DATACOMP=#MINDATACOMP\nTO DATACOMP=#DATACALCOLO"; query << "JOIN MOVANA INTO NUMREG==NUMREG\nFROM DATACOMP=#MINDATACOMP\nTO DATACOMP=#DATACALCOLO";
@ -1351,7 +1353,8 @@ int TPrint_saldana_recordset::numerazioni_ordini(TString_array& num_ordini, TStr
for (bool ok = num_recset.move_first(); ok; ok = num_recset.move_next()) //giro sui vari tipi numerazione for (bool ok = num_recset.move_first(); ok; ok = num_recset.move_next()) //giro sui vari tipi numerazione
{ {
const TString4 codtab = num_recset.get("CODTAB").as_string(); const TString4 codtab = num_recset.get("CODTAB").as_string();
const TCodice_numerazione& numerazione = cached_numerazione(codtab);
const TCodice_numerazione numerazione(codtab);
for (int t = numerazione.ntipi_doc() - 1; t >= 0; t--) for (int t = numerazione.ntipi_doc() - 1; t >= 0; t--)
{ {
const TString& tipo_doc = numerazione.tipo_doc(t); const TString& tipo_doc = numerazione.tipo_doc(t);
@ -1383,7 +1386,7 @@ void TPrint_saldana_recordset::parse_rdoc(TAssoc_array* cms, const TDate& datain
TString query; TString query;
query << "USE RDOC KEY 3\n"; query << "USE RDOC KEY 3\n";
query << "SELECT (BETWEEN(DOC.DATADOC, #DATAINIES, #DATACALCOLO))&&(RIGAEVASA!=\"X\")"; query << "SELECT (BETWEEN(DOC.DATADOC,#DATAINIES,#DATACALCOLO))&&(RIGAEVASA!=\"X\")";
//filtro su cdc/cms/fasi (fatto come per saldi e rmovana; purtroppo non si può metodizzare perchè in tutti i files.. //filtro su cdc/cms/fasi (fatto come per saldi e rmovana; purtroppo non si può metodizzare perchè in tutti i files..
//..i nomi dei campi sono diversi! //..i nomi dei campi sono diversi!
@ -1392,33 +1395,35 @@ void TPrint_saldana_recordset::parse_rdoc(TAssoc_array* cms, const TDate& datain
case 1: case 1:
case 4: case 4:
if (_fase.full()) if (_fase.full())
query << "&&(FASCMS=\"" << _fase << "\")\n"; query << "&&(FASCMS=\"" << _fase << "\")";
break; break;
case 2: case 2:
case 8: case 8:
if (_cdc.full()) if (_cdc.full())
query << "&&(CODCOSTO=\"" << _cdc << "\")\n"; query << "&&(CODCOSTO=\"" << _cdc << "\")";
break; break;
case 3: case 3:
if (_fase.full() || _cdc.full()) if (_fase.full() || _cdc.full())
{ {
if (_fase.full() && _cdc.full()) if (_fase.full() && _cdc.full())
query << "&&(FASCMS=\"" << _fase << "\")&&(CODCOSTO=\"" << _cdc << "\")\n"; query << "&&(FASCMS=\"" << _fase << "\")&&(CODCOSTO=\"" << _cdc << "\")";
else else
{ {
if (_fase.full()) if (_fase.full())
query << "&&(FASCMS=\"" << _fase << "\")\n"; query << "&&(FASCMS=\"" << _fase << "\")";
else else
query << "&&(CODCOSTO=\"" << _cdc << "\")\n"; query << "&&(CODCOSTO=\"" << _cdc << "\")";
} }
} }
break; break;
default:
break;
} }
query << "JOIN DOC INTO PROVV=='D' ANNO==ANNO CODNUM==CODNUM\nFROM PROVV='D' ANNO=#ANNO CODNUM=#CODNUM\nTO PROVV='D' ANNO=#ANNO CODNUM=#CODNUM"; query << "\nJOIN DOC INTO PROVV=='D' ANNO==ANNO CODNUM==CODNUM\nFROM PROVV='D' ANNO=#ANNO CODNUM=#CODNUM\nTO PROVV='D' ANNO=#ANNO CODNUM=#CODNUM";
TISAM_recordset recset(query); TISAM_recordset recset(query);
recset.set_var("#ANNO", (long)_datacalcolo.year()); recset.set_var("#ANNO", (long)_datacalcolo.year());
recset.set_var("#CODNUM", codnum); recset.set_var("#CODNUM", TVariant(codnum));
recset.set_var("#DATAINIES", datainiesc); recset.set_var("#DATAINIES", datainiesc);
recset.set_var("#DATACALCOLO", _datacalcolo); recset.set_var("#DATACALCOLO", _datacalcolo);
@ -1474,8 +1479,8 @@ void TPrint_saldana_recordset::parse_rdoc(TAssoc_array* cms, const TDate& datain
if (!rigadoc.is_evasa()) if (!rigadoc.is_evasa())
{ {
//trasforma tutte le righe a valore, assegnando al prezzo il valore del residuo //trasforma tutte le righe a valore, assegnando al prezzo il valore del residuo
const real valore = rigadoc.valore(true); const real valore = rigadoc.valore(true, AUTO_DECIMALS);
const real residuo = rigadoc.valore(false); const real residuo = rigadoc.valore(false, AUTO_DECIMALS);
//ovviamente questo è vero se il residuo è inferiore al valore; se fosse uguale sarebbe riga ancora da evadere,.. //ovviamente questo è vero se il residuo è inferiore al valore; se fosse uguale sarebbe riga ancora da evadere,..
//..se fosse maggiore sarebbe riga del cazzo //..se fosse maggiore sarebbe riga del cazzo
if (residuo < valore) if (residuo < valore)
@ -1544,7 +1549,9 @@ void TPrint_saldana_recordset::create_lines_to_print(const TString& query)
parse_rmovana(cms, datainiesc, datafinesc); parse_rmovana(cms, datainiesc, datafinesc);
// 2_b) calcolo dei saldi da documenti non ancora contabilizzati e quindi senza movana e saldana // 2_b) calcolo dei saldi da documenti non ancora contabilizzati e quindi senza movana e saldana
parse_rdoc(cms, datainiesc, datafinesc); // si fa solo se l'utente Adolfo lo ha deciso sulla maschera
if (_include_documenti)
parse_rdoc(cms, datainiesc, datafinesc);
} //if((_datacalcolo<datafinesc... } //if((_datacalcolo<datafinesc...
} //if(_tipo==8)... } //if(_tipo==8)...
@ -1782,6 +1789,7 @@ void TPrint_saldana_recordset::set_filter(const TMask& msk, const TString& curr_
{ {
_tipostima = msk.get(F_TIPOSTIMA)[0]; _tipostima = msk.get(F_TIPOSTIMA)[0];
_vitaintera = msk.get_bool(F_VITAINTERA); _vitaintera = msk.get_bool(F_VITAINTERA);
_include_documenti = msk.get_bool(F_INCLUDE_DOCUMENTI);
_depth = msk.get_int(F_DEPTH); _depth = msk.get_int(F_DEPTH);
_tipodetr = msk.get_bool(F_TIPODETR); _tipodetr = msk.get_bool(F_TIPODETR);
_tipostampa = msk.get_int(F_TIPOSTAMPA); _tipostampa = msk.get_int(F_TIPOSTAMPA);

View File

@ -71,6 +71,7 @@ class TPrint_saldana_recordset : public TRecordset
int _depth; int _depth;
int _tipostampa; int _tipostampa;
bool _vitaintera; bool _vitaintera;
bool _include_documenti;
bool _tipodetr; bool _tipodetr;
bool _forza_maturato; bool _forza_maturato;
char _tipostima; char _tipostima;

View File

@ -16,6 +16,7 @@
#define F_TIPOSTAMPA 113 #define F_TIPOSTAMPA 113
#define F_TIPODETR 114 #define F_TIPODETR 114
#define F_FORZA_MATURATO 115 #define F_FORZA_MATURATO 115
#define F_INCLUDE_DOCUMENTI 116
/* campi per la generazione automatica /* campi per la generazione automatica
#define F_FASE1 112 #define F_FASE1 112