Patch level :
Files correlati : Ricompilazione Demo : [ ] Commento : _riportate corrrezioni e nuove implementazioni su esportazione rendiconto dalla 5.0 _iniziata la trattazione dei documenti nel bilancio di commessa alla data (filtro alla ricerca dei documenti validi) git-svn-id: svn://10.65.10.50/trunk@18881 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
4bc9aed05e
commit
ef4a02d3f1
106
ca/ca3700.cpp
106
ca/ca3700.cpp
@ -142,14 +142,6 @@ bool TPrint_rendiconto_ca_mask::on_field_event(TOperable_field& o, TField_event
|
|||||||
disable(F_PANDES1_FIN + k);
|
disable(F_PANDES1_FIN + k);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case DLG_PREVIEW:
|
|
||||||
if (e == fe_button)
|
|
||||||
{
|
|
||||||
_print_mode = 'A';
|
|
||||||
stop_run(K_ENTER);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case DLG_EXPORT:
|
case DLG_EXPORT:
|
||||||
if (e == fe_button)
|
if (e == fe_button)
|
||||||
{
|
{
|
||||||
@ -280,7 +272,7 @@ protected:
|
|||||||
bool valid_record(const TRelation& rel) const;
|
bool valid_record(const TRelation& rel) const;
|
||||||
virtual void set_custom_filter(TCursor& cur) const;
|
virtual void set_custom_filter(TCursor& cur) const;
|
||||||
|
|
||||||
void crea_righe_da_rmovana(TLocalisamfile& tmp, TLog_report& log);
|
void crea_righe_da_rmovana(TLocalisamfile& tmp, const TPrint_rendiconto_ca_mask& msk, TLog_report& log);
|
||||||
void crea_righe_da_rdoc(TLocalisamfile& tmp, const TPrint_rendiconto_ca_mask& msk, TLog_report& log);
|
void crea_righe_da_rdoc(TLocalisamfile& tmp, const TPrint_rendiconto_ca_mask& msk, TLog_report& log);
|
||||||
void crea_trr(const TFilename& trr) const;
|
void crea_trr(const TFilename& trr) const;
|
||||||
void scrive_riga(TLocalisamfile& tmp, const TRectype& rmovana, const TRectype& movana, const TDocumento* doc,
|
void scrive_riga(TLocalisamfile& tmp, const TRectype& rmovana, const TRectype& movana, const TDocumento* doc,
|
||||||
@ -1162,7 +1154,8 @@ void TPrint_rendiconto_ca_recordset::scrive_riga_speciale(TLocalisamfile& tmp, c
|
|||||||
|
|
||||||
|
|
||||||
//scanning delle righe dei movimenti di analitica
|
//scanning delle righe dei movimenti di analitica
|
||||||
void TPrint_rendiconto_ca_recordset::crea_righe_da_rmovana(TLocalisamfile& tmp, TLog_report& log)
|
void TPrint_rendiconto_ca_recordset::crea_righe_da_rmovana(TLocalisamfile& tmp, const TPrint_rendiconto_ca_mask& msk,
|
||||||
|
TLog_report& log)
|
||||||
{
|
{
|
||||||
TRelation rel_rmovana(LF_RMOVANA);
|
TRelation rel_rmovana(LF_RMOVANA);
|
||||||
rel_rmovana.add(LF_MOVANA, "NUMREG==NUMREG"); //aggiunge le testate x avere tipi mov e descr
|
rel_rmovana.add(LF_MOVANA, "NUMREG==NUMREG"); //aggiunge le testate x avere tipi mov e descr
|
||||||
@ -1179,16 +1172,28 @@ void TPrint_rendiconto_ca_recordset::crea_righe_da_rmovana(TLocalisamfile& tmp,
|
|||||||
}
|
}
|
||||||
|
|
||||||
TString filtro;
|
TString filtro;
|
||||||
|
TDate dal, al;
|
||||||
|
|
||||||
if (_dadata.ok())
|
//se siamo fortunati l'anno si può trovare così..
|
||||||
filtro << "(ANSI(DATACOMP)>=" << _dadata.date2ansi() << ")";
|
int anno = msk.get_int(F_ANNO);
|
||||||
if (_adata.ok() && !_vitaintera) //se vitaintera non si può avere una data limite superiore
|
if (anno > 0)
|
||||||
{
|
{
|
||||||
if (filtro.not_empty())
|
TEsercizi_contabili esc;
|
||||||
filtro << "&&";
|
esc.code2range(anno, dal, al);
|
||||||
|
|
||||||
filtro << "(ANSI(DATACOMP)<=" << _adata.date2ansi() << ")";
|
|
||||||
}
|
}
|
||||||
|
if (_dadata.ok())
|
||||||
|
dal = _dadata;
|
||||||
|
if (!_vitaintera)
|
||||||
|
{
|
||||||
|
if (_adata.ok())
|
||||||
|
al = _adata;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
al = TDate();
|
||||||
|
|
||||||
|
|
||||||
|
filtro << "BETWEEN(DATACOMP," << dal.date2ansi() << ',' << al.date2ansi() << ')';
|
||||||
|
|
||||||
|
|
||||||
if (_codcosto.not_empty())
|
if (_codcosto.not_empty())
|
||||||
{
|
{
|
||||||
@ -1290,6 +1295,8 @@ void TPrint_rendiconto_ca_recordset::crea_righe_da_rdoc(TLocalisamfile& tmp, con
|
|||||||
dardoc.put(RDOC_PROVV, 'D');
|
dardoc.put(RDOC_PROVV, 'D');
|
||||||
ardoc.put(RDOC_PROVV, 'D');
|
ardoc.put(RDOC_PROVV, 'D');
|
||||||
|
|
||||||
|
TDate dal, al;
|
||||||
|
|
||||||
//se siamo fortunati l'anno si può trovare così..
|
//se siamo fortunati l'anno si può trovare così..
|
||||||
int anno = msk.get_int(F_ANNO);
|
int anno = msk.get_int(F_ANNO);
|
||||||
if (anno > 0)
|
if (anno > 0)
|
||||||
@ -1305,15 +1312,24 @@ void TPrint_rendiconto_ca_recordset::crea_righe_da_rdoc(TLocalisamfile& tmp, con
|
|||||||
anno = _dadata.year();
|
anno = _dadata.year();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_dadata.ok())
|
if (anno > 0)
|
||||||
filtro_date << "(ANSI(33->DATADOC)>=" << _dadata.date2ansi() << ")";
|
|
||||||
if (_adata.ok() && !_vitaintera) //se vitaintera non si può avere una data limite superiore
|
|
||||||
{
|
{
|
||||||
if (filtro_date.not_empty())
|
TEsercizi_contabili esc;
|
||||||
filtro_date << "&&";
|
esc.code2range(anno, dal, al);
|
||||||
|
|
||||||
filtro_date << "(ANSI(33->DATADOC)<=" << _adata.date2ansi() << ")";
|
|
||||||
}
|
}
|
||||||
|
if (_dadata.ok())
|
||||||
|
dal = _dadata;
|
||||||
|
if (!_vitaintera)
|
||||||
|
{
|
||||||
|
if (_adata.ok())
|
||||||
|
al = _adata;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
al = TDate();
|
||||||
|
|
||||||
|
|
||||||
|
filtro_date << "BETWEEN(33->DATADOC," << dal.date2ansi() << ',' << al.date2ansi() << ')';
|
||||||
|
|
||||||
|
|
||||||
TContabilizzazione_analitica cont_anal; //oggetto necessario per contabilizzare il documento in osservazione
|
TContabilizzazione_analitica cont_anal; //oggetto necessario per contabilizzare il documento in osservazione
|
||||||
|
|
||||||
@ -1596,7 +1612,7 @@ void TPrint_rendiconto_ca_recordset::set_filter(const TPrint_rendiconto_ca_mask&
|
|||||||
|
|
||||||
//metodi per riempire il file da cui generare il report
|
//metodi per riempire il file da cui generare il report
|
||||||
//dati estratti dalle righe movimenti di contabilita' analitica
|
//dati estratti dalle righe movimenti di contabilita' analitica
|
||||||
crea_righe_da_rmovana(tmp, log);
|
crea_righe_da_rmovana(tmp, msk, log);
|
||||||
//dati estratti dalle righe documenti
|
//dati estratti dalle righe documenti
|
||||||
crea_righe_da_rdoc(tmp, msk, log);
|
crea_righe_da_rdoc(tmp, msk, log);
|
||||||
|
|
||||||
@ -1676,13 +1692,24 @@ void TPrint_rendiconto_ca::incrementa(TToken_string& riga, const int col, const
|
|||||||
void TPrint_rendiconto_ca::esporta_csv_row(ostream& file_to_date, const int first_level, const TString& cod_cms_cdc,
|
void TPrint_rendiconto_ca::esporta_csv_row(ostream& file_to_date, const int first_level, const TString& cod_cms_cdc,
|
||||||
const real importi[5][4], real importi_totali[5][4])
|
const real importi[5][4], real importi_totali[5][4])
|
||||||
{
|
{
|
||||||
|
const int posizione_importi = first_level == LF_COMMESSE ? 5 : 2;
|
||||||
//crea una token string su cui mettere i valori dei record letti dal file .dbf
|
//crea una token string su cui mettere i valori dei record letti dal file .dbf
|
||||||
TToken_string riga(512, '\t');
|
TToken_string riga(512, '\t');
|
||||||
|
|
||||||
riga.add(cod_cms_cdc);
|
riga.add(cod_cms_cdc);
|
||||||
//decodifica della commessa/cdc (non è ammessa una commessa "TOTALI" che lo incasina
|
//decodifica della commessa/cdc (non è ammessa una commessa "TOTALI" che lo incasina
|
||||||
if (cod_cms_cdc != "TOTALI")
|
if (cod_cms_cdc != "TOTALI")
|
||||||
riga.add(cache().get(first_level, cod_cms_cdc, "DESCRIZ"));
|
{
|
||||||
|
const TRectype& rec = cache().get(first_level, cod_cms_cdc);
|
||||||
|
const TString& descrizione = rec.get("DESCRIZ");
|
||||||
|
riga.add(descrizione);
|
||||||
|
if (first_level == LF_COMMESSE)
|
||||||
|
{
|
||||||
|
riga.add(rec.get(COMMESSE_DATAINIZIO));
|
||||||
|
riga.add(rec.get(COMMESSE_DATAFINE));
|
||||||
|
riga.add(rec.get(COMMESSE_DATAPROR));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//in base al valore di indbil e budget i valori degli importi vengono posizionati nel record
|
//in base al valore di indbil e budget i valori degli importi vengono posizionati nel record
|
||||||
for (int indbil = 1; indbil <= 4; indbil++)
|
for (int indbil = 1; indbil <= 4; indbil++)
|
||||||
@ -1690,10 +1717,10 @@ void TPrint_rendiconto_ca::esporta_csv_row(ostream& file_to_date, const int firs
|
|||||||
int col = 0;
|
int col = 0;
|
||||||
switch (indbil)
|
switch (indbil)
|
||||||
{
|
{
|
||||||
case 1: col = 16; break; //attività
|
case 1: col = posizione_importi + 14; break; //attività
|
||||||
case 2: col = 23; break; //passività
|
case 2: col = posizione_importi + 21; break; //passività
|
||||||
case 3: col = 2; break; //costi
|
case 3: col = posizione_importi; break; //costi
|
||||||
case 4: col = 9; break; //ricavi
|
case 4: col = posizione_importi + 7; break; //ricavi
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1715,7 +1742,7 @@ void TPrint_rendiconto_ca::esporta_csv_row(ostream& file_to_date, const int firs
|
|||||||
riga.add(da_fatturare.string(), col + 6);
|
riga.add(da_fatturare.string(), col + 6);
|
||||||
}
|
}
|
||||||
//scrive in excel mode
|
//scrive in excel mode
|
||||||
for (int i = 2; i < 30; i++)
|
for (int i = posizione_importi; i < posizione_importi + 28; i++)
|
||||||
{
|
{
|
||||||
const real r = riga.get(i);
|
const real r = riga.get(i);
|
||||||
if (!r.is_zero())
|
if (!r.is_zero())
|
||||||
@ -1882,6 +1909,8 @@ void TPrint_rendiconto_ca::main_loop()
|
|||||||
file_xls.add("rendiconto.xls");
|
file_xls.add("rendiconto.xls");
|
||||||
ofstream file_to_date(file_xls);
|
ofstream file_to_date(file_xls);
|
||||||
|
|
||||||
|
const int posizione_importi = first_level == LF_COMMESSE ? 5 : 2;
|
||||||
|
|
||||||
//intestazione primaria
|
//intestazione primaria
|
||||||
TToken_string intestazione_1(512, '\t');
|
TToken_string intestazione_1(512, '\t');
|
||||||
//l'intestazione primaria dipende anche dalla configurazione dei livelli!
|
//l'intestazione primaria dipende anche dalla configurazione dei livelli!
|
||||||
@ -1889,6 +1918,9 @@ void TPrint_rendiconto_ca::main_loop()
|
|||||||
{
|
{
|
||||||
intestazione_1.add("Commessa");
|
intestazione_1.add("Commessa");
|
||||||
intestazione_1.add("Descr. commessa");
|
intestazione_1.add("Descr. commessa");
|
||||||
|
intestazione_1.add("Data inizio");
|
||||||
|
intestazione_1.add("Data fine");
|
||||||
|
intestazione_1.add("Data proroga");
|
||||||
recset_key = 2; //chiave del recordset per commessa
|
recset_key = 2; //chiave del recordset per commessa
|
||||||
}
|
}
|
||||||
else //cdc-commessa
|
else //cdc-commessa
|
||||||
@ -1917,8 +1949,7 @@ void TPrint_rendiconto_ca::main_loop()
|
|||||||
//intestazione secondaria
|
//intestazione secondaria
|
||||||
TToken_string intestazione_2(512, '\t');
|
TToken_string intestazione_2(512, '\t');
|
||||||
//campi descrittivi iniziali vuoti (solo intestazione_1)
|
//campi descrittivi iniziali vuoti (solo intestazione_1)
|
||||||
for (int k = 0; k < 2; k++)
|
intestazione_2.add(" ", posizione_importi - 1);
|
||||||
intestazione_2.add("");
|
|
||||||
|
|
||||||
for (int l = 0; l < 4; l++)
|
for (int l = 0; l < 4; l++)
|
||||||
{
|
{
|
||||||
@ -2002,13 +2033,8 @@ void TPrint_rendiconto_ca::main_loop()
|
|||||||
if (log.recordset()->items() > 0)
|
if (log.recordset()->items() > 0)
|
||||||
log.preview();
|
log.preview();
|
||||||
|
|
||||||
if (key == K_ENTER) //stampa o anteprima
|
if (key == K_ENTER)
|
||||||
{
|
book.print_or_preview(); //stampa il book dei report
|
||||||
if (mask.print_mode() == 'A')
|
|
||||||
book.preview();
|
|
||||||
else
|
|
||||||
book.print();
|
|
||||||
}
|
|
||||||
} //while(true)...
|
} //while(true)...
|
||||||
|
|
||||||
delete _msk;
|
delete _msk;
|
||||||
|
120
ca/ca3883.cpp
120
ca/ca3883.cpp
@ -1,5 +1,7 @@
|
|||||||
#include <progind.h>
|
#include <progind.h>
|
||||||
|
|
||||||
|
#include "../ve/velib.h"
|
||||||
|
|
||||||
#include "calib01.h"
|
#include "calib01.h"
|
||||||
#include "calib02.h"
|
#include "calib02.h"
|
||||||
#include "ca3883.h"
|
#include "ca3883.h"
|
||||||
@ -1317,6 +1319,115 @@ void TPrint_saldana_recordset::parse_rmovana(TAssoc_array* cms, const TDate& dat
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int TPrint_saldana_recordset::numerazioni_ordini(TString_array& num_ordini, TString_array& tip_ordini) const
|
||||||
|
{
|
||||||
|
//i documenti che vanno presi in cosiderazione sono quelli che generano un IMPEGNATO secondo le auree regole del..
|
||||||
|
//..nostro invincibile Adolf!
|
||||||
|
//quindi dapprima trova i TIPI ordine, poi le NUMERAZIONI che li contengono; alla fine passa entrambi gli array
|
||||||
|
num_ordini.destroy();
|
||||||
|
tip_ordini.destroy();
|
||||||
|
|
||||||
|
//cominciamo con i tipi
|
||||||
|
TISAM_recordset tipi_recset("USE %TIP\nSELECT I1=3");
|
||||||
|
for (bool ok = tipi_recset.move_first(); ok; ok = tipi_recset.move_next()) //giro sui vari tipi ordine
|
||||||
|
{
|
||||||
|
const TString4 tipo = tipi_recset.cursor()->curr().get("CODTAB");
|
||||||
|
tip_ordini.add(tipo);
|
||||||
|
}
|
||||||
|
|
||||||
|
//e adesso cerca le numerazioni che contengono tipi ordine
|
||||||
|
TISAM_recordset num_recset("USE %NUM");
|
||||||
|
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 TCodice_numerazione& numerazione = cached_numerazione(codtab);
|
||||||
|
for (int t = numerazione.ntipi_doc() - 1; t >= 0; t--)
|
||||||
|
{
|
||||||
|
const TString& tipo_doc = numerazione.tipo_doc(t);
|
||||||
|
if (tip_ordini.find(tipo_doc) >= 0)
|
||||||
|
{
|
||||||
|
num_ordini.add(codtab);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} //for (int t = codnum..
|
||||||
|
} //for (bool ok = num_recset...
|
||||||
|
|
||||||
|
return num_ordini.items();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//aggiorna l'arrayone cms con le righedoc non ancora contabilizzate
|
||||||
|
void TPrint_saldana_recordset::parse_rdoc(TAssoc_array* cms, const TDate& datainiesc)
|
||||||
|
{
|
||||||
|
//solo le numerazioni con almeno un tipo documento ordine interessano
|
||||||
|
TString_array num_ordini, tip_ordini;
|
||||||
|
const int numerazioni_tipo_ordine = numerazioni_ordini(num_ordini, tip_ordini);
|
||||||
|
|
||||||
|
for (int n = 0; n < numerazioni_tipo_ordine; n++)
|
||||||
|
{
|
||||||
|
TString4 codnum = num_ordini.row(n);
|
||||||
|
|
||||||
|
//cerca tutte le righe documento che soddisfano i numerosi (fin troppo) parametri
|
||||||
|
//joina DOC perchè abbiamo un decisivo filtro sul range di date
|
||||||
|
TString query;
|
||||||
|
query << "USE RDOC KEY 3\n";
|
||||||
|
|
||||||
|
query << "SELECT (BETWEEN(DOC.DATADOC, #DATAINIES, #DATACALCOLO))";
|
||||||
|
|
||||||
|
//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!
|
||||||
|
switch (_tipostampa)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
case 4:
|
||||||
|
if (_fase.full())
|
||||||
|
query << "&&(FASCMS=\"" << _fase << "\")\n";
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
case 8:
|
||||||
|
if (_cdc.full())
|
||||||
|
query << "&&(CODCOSTO=\"" << _cdc << "\")\n";
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
if (_fase.full() || _cdc.full())
|
||||||
|
{
|
||||||
|
if (_fase.full() && _cdc.full())
|
||||||
|
query << "&&(FASCMS=\"" << _fase << "\")&&(CODCOSTO=\"" << _cdc << "\")\n";
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (_fase.full())
|
||||||
|
query << "&&(FASCMS=\"" << _fase << "\")\n";
|
||||||
|
else
|
||||||
|
query << "&&(CODCOSTO=\"" << _cdc << "\")\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
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";
|
||||||
|
TISAM_recordset recset(query);
|
||||||
|
recset.set_var("#ANNO", (long)_datacalcolo.year());
|
||||||
|
recset.set_var("#CODNUM", codnum);
|
||||||
|
recset.set_var("#DATAINIES", datainiesc);
|
||||||
|
recset.set_var("#DATACALCOLO", _datacalcolo);
|
||||||
|
|
||||||
|
const TRecnotype recset_items = recset.items();
|
||||||
|
|
||||||
|
//simpatica progind per intrattenere l'utonto
|
||||||
|
TProgind pi(recset_items, "Scansione documenti...", true, true);
|
||||||
|
|
||||||
|
for (bool ok = recset.move_first(); ok; ok = recset.move_next()) //giro sulle varie rdoc...
|
||||||
|
{
|
||||||
|
//aggiornamento progind intrattenitiva
|
||||||
|
pi.addstatus(1);
|
||||||
|
if (pi.iscancelled())
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
} //for (int n = 0; n < numerazioni...
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
//metodo principale di riempimento degli array da mandare in stampa
|
//metodo principale di riempimento degli array da mandare in stampa
|
||||||
void TPrint_saldana_recordset::create_lines_to_print(const TString& query)
|
void TPrint_saldana_recordset::create_lines_to_print(const TString& query)
|
||||||
{
|
{
|
||||||
@ -1339,15 +1450,16 @@ void TPrint_saldana_recordset::create_lines_to_print(const TString& query)
|
|||||||
{
|
{
|
||||||
if ((_datacalcolo < datafinesc) && !_vitaintera)
|
if ((_datacalcolo < datafinesc) && !_vitaintera)
|
||||||
{
|
{
|
||||||
|
// 2_a) calcolo dei saldi da righe movimenti analitici e quindi senza saldana
|
||||||
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
|
||||||
|
parse_rdoc(cms, datainiesc);
|
||||||
} //if((_datacalcolo<datafinesc...
|
} //if((_datacalcolo<datafinesc...
|
||||||
} //if(_tipo==8)...
|
} //if(_tipo==8)...
|
||||||
|
|
||||||
|
|
||||||
// 3)
|
// 3)
|
||||||
// calcolo dei saldi da documenti non ancora contabilizzati e quindi senza movana e saldana
|
|
||||||
|
|
||||||
|
|
||||||
// 4)
|
|
||||||
// merging dei 5 arrayini cms nell'arrayone _righe da mandare in stampa
|
// merging dei 5 arrayini cms nell'arrayone _righe da mandare in stampa
|
||||||
_righe.destroy();
|
_righe.destroy();
|
||||||
for (int i = 0; i < 5; i++)
|
for (int i = 0; i < 5; i++)
|
||||||
|
@ -95,16 +95,19 @@ protected:
|
|||||||
|
|
||||||
void parse_rmovana(TAssoc_array* cms, const TDate& datainiesc, const TDate& datafinesc);
|
void parse_rmovana(TAssoc_array* cms, const TDate& datainiesc, const TDate& datafinesc);
|
||||||
void parse_saldana(TAssoc_array* cms, const TDate& datainiesc, const TDate& datafinesc, const TString& query);
|
void parse_saldana(TAssoc_array* cms, const TDate& datainiesc, const TDate& datafinesc, const TString& query);
|
||||||
|
void parse_rdoc(TAssoc_array* cms, const TDate& datainiesc);
|
||||||
|
|
||||||
//per il solo ca3800
|
//per il solo ca3800
|
||||||
void aggiorna_importo(TAssoc_array& riga_array, const TString& livello, const int indbil,
|
void aggiorna_importo(TAssoc_array& riga_array, const TString& livello, const int indbil,
|
||||||
const TRectype& saldana, const bool inverti = false, const bool cms_detraz = false) const;
|
const TRectype& saldana, const bool inverti = false, const bool cms_detraz = false) const;
|
||||||
real calcola_avanzamento_tempo() const;
|
real calcola_avanzamento_tempo() const;
|
||||||
void create_lines_to_print(const TString& query);
|
|
||||||
long durata_commessa(const TRectype& rec_commesse, TDate& dataini, TDate& datafine) const;
|
long durata_commessa(const TRectype& rec_commesse, TDate& dataini, TDate& datafine) const;
|
||||||
const TDate calcola_min_datacomp(const TDate& datainiesc, const TDate& datafinesc) const;
|
const TDate calcola_min_datacomp(const TDate& datainiesc, const TDate& datafinesc) const;
|
||||||
int ricava_sezione_di_stampa(const TRectype& rec_commesse, const TDate& datainiesc, const TDate& datafinesc) const;
|
int ricava_sezione_di_stampa(const TRectype& rec_commesse, const TDate& datainiesc, const TDate& datafinesc) const;
|
||||||
TString ricava_chiave_cdc_fase(const TString& codcms, const TString& fase, const TString& cdc) const;
|
TString ricava_chiave_cdc_fase(const TString& codcms, const TString& fase, const TString& cdc) const;
|
||||||
|
int numerazioni_ordini(TString_array& num_ordini, TString_array& tip_ordini) const;
|
||||||
|
|
||||||
|
void create_lines_to_print(const TString& query);
|
||||||
|
|
||||||
//per il solo ca3900
|
//per il solo ca3900
|
||||||
void aggiorna_importi(TAssoc_array& riga_array, const int indbil, const TRectype& saldana,
|
void aggiorna_importi(TAssoc_array& riga_array, const int indbil, const TRectype& saldana,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user