Patch level :10.0
Files correlati : Ricompilazione Demo : [ ] Commento : programma per dinamica rivisto e corretto git-svn-id: svn://10.65.10.50/trunk@20258 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
22ad03876d
commit
90921f3979
@ -185,13 +185,7 @@ TRecnotype TImporta_movana_recordset::new_rec(const char* buf)
|
|||||||
TImporta_movana_recordset::TImporta_movana_recordset(const char * filename, char sep_field)
|
TImporta_movana_recordset::TImporta_movana_recordset(const char * filename, char sep_field)
|
||||||
: TCSV_recordset("CSV(;)"), _sep_field(sep_field) //separatore campi
|
: TCSV_recordset("CSV(;)"), _sep_field(sep_field) //separatore campi
|
||||||
{
|
{
|
||||||
TString query;
|
load_file(filename);
|
||||||
query << "CSV(" << sep_field << ")\n"
|
|
||||||
<< "SELECT * FROM " << filename;
|
|
||||||
|
|
||||||
TFilename n;
|
|
||||||
if (parse_query(query, n) == _qt_select && n.exist())
|
|
||||||
load_file(n);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////
|
///////////////////////////////////////
|
||||||
@ -218,8 +212,10 @@ public:
|
|||||||
bool TImporta_movana::transfer(const TFilename& file)
|
bool TImporta_movana::transfer(const TFilename& file)
|
||||||
{
|
{
|
||||||
//roba dalla maschera
|
//roba dalla maschera
|
||||||
|
//parametri di importazione
|
||||||
const char sep_field = _msk->get(F_SEP_FIELD)[0]; //separatore dei campi
|
const char sep_field = _msk->get(F_SEP_FIELD)[0]; //separatore dei campi
|
||||||
const char sep_dec = _msk->get(F_SEP_DEC)[0]; //separatore decimali
|
const char sep_dec = _msk->get(F_SEP_DEC)[0]; //separatore decimali
|
||||||
|
//parametri del movana
|
||||||
const int annoes = _msk->get_int(F_ANNOES);
|
const int annoes = _msk->get_int(F_ANNOES);
|
||||||
const TDate datareg = _msk->get_date(F_DATAREG);
|
const TDate datareg = _msk->get_date(F_DATAREG);
|
||||||
const TDate datacomp = _msk->get_date(F_DATACOMP);
|
const TDate datacomp = _msk->get_date(F_DATACOMP);
|
||||||
@ -228,6 +224,8 @@ bool TImporta_movana::transfer(const TFilename& file)
|
|||||||
const TString descrizione = _msk->get(F_DESCR);
|
const TString descrizione = _msk->get(F_DESCR);
|
||||||
const char tipomov = _msk->get(F_TIPO)[0];
|
const char tipomov = _msk->get(F_TIPO)[0];
|
||||||
const TString4 codcaus = _msk->get(F_CODCAUS);
|
const TString4 codcaus = _msk->get(F_CODCAUS);
|
||||||
|
const real ori_totimp = _msk->get_real(F_TOTMOV);
|
||||||
|
const char ori_totsez = _msk->get(F_TOTMOV_SEZ)[0];
|
||||||
|
|
||||||
|
|
||||||
//crea il recordset sul file di input utilizzando il separatore
|
//crea il recordset sul file di input utilizzando il separatore
|
||||||
@ -262,8 +260,6 @@ bool TImporta_movana::transfer(const TFilename& file)
|
|||||||
break;
|
break;
|
||||||
curr_line ++;
|
curr_line ++;
|
||||||
|
|
||||||
//nuova riga del movana (sfrutta il fatto che è un multiple rectype)
|
|
||||||
TRectype& rmovana = movana.new_row();
|
|
||||||
//prende i dati dal record di input del file csv
|
//prende i dati dal record di input del file csv
|
||||||
//----------------------------------------------
|
//----------------------------------------------
|
||||||
//codcms ci deve essere e va maiuscolizzato; se non c'è va segnalato sul log..
|
//codcms ci deve essere e va maiuscolizzato; se non c'è va segnalato sul log..
|
||||||
@ -294,14 +290,11 @@ bool TImporta_movana::transfer(const TFilename& file)
|
|||||||
TString80 str_importo = s.get(2).as_string();
|
TString80 str_importo = s.get(2).as_string();
|
||||||
if (sep_dec == ',')
|
if (sep_dec == ',')
|
||||||
{
|
{
|
||||||
str_importo.replace('.',' '); //togle il separatore delle migliaia
|
str_importo.strip("."); //togle il separatore delle migliaia
|
||||||
str_importo.replace(',','.'); //sostituisce il separatore decimale
|
str_importo.replace(',','.'); //sostituisce il separatore decimale
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
str_importo.replace(',',' '); //togle il separatore delle migliaia
|
str_importo.strip(",");
|
||||||
|
|
||||||
str_importo.strip_spaces();
|
|
||||||
str_importo.trim();
|
|
||||||
|
|
||||||
const real importo = str_importo;
|
const real importo = str_importo;
|
||||||
/*if (importo == ZERO)
|
/*if (importo == ZERO)
|
||||||
@ -339,13 +332,16 @@ bool TImporta_movana::transfer(const TFilename& file)
|
|||||||
|
|
||||||
//riempie la riga analitica
|
//riempie la riga analitica
|
||||||
//-------------------------
|
//-------------------------
|
||||||
|
//nuova riga del movana (sfrutta il fatto che è un multiple rectype)
|
||||||
|
TRectype& rmovana = movana.new_row();
|
||||||
|
|
||||||
rmovana.put(RMOVANA_DESCR, "Riga importata");
|
rmovana.put(RMOVANA_DESCR, "Riga importata");
|
||||||
rmovana.put(RMOVANA_CODCONTO, conto);
|
rmovana.put(RMOVANA_CODCONTO, conto);
|
||||||
rmovana.put(RMOVANA_CODCMS, codcms);
|
rmovana.put(RMOVANA_CODCMS, codcms);
|
||||||
rmovana.put(RMOVANA_CODCCOSTO, cdc);
|
rmovana.put(RMOVANA_CODCCOSTO, cdc);
|
||||||
rmovana.put(RMOVANA_SEZIONE, sezione);
|
rmovana.put(RMOVANA_SEZIONE, sezione);
|
||||||
rmovana.put(RMOVANA_IMPORTO, importo);
|
rmovana.put(RMOVANA_IMPORTO, importo);
|
||||||
//aggiorna anche il totale documento
|
//aggiorna anche il totale documento..
|
||||||
TImporto importo_riga(sezione, importo);
|
TImporto importo_riga(sezione, importo);
|
||||||
totale += importo_riga;
|
totale += importo_riga;
|
||||||
}
|
}
|
||||||
@ -353,19 +349,36 @@ bool TImporta_movana::transfer(const TFilename& file)
|
|||||||
//completa la testata
|
//completa la testata
|
||||||
//-------------------
|
//-------------------
|
||||||
totale.normalize();
|
totale.normalize();
|
||||||
|
const char totsez = totale.sezione();
|
||||||
|
const real totimp = totale.valore();
|
||||||
|
|
||||||
|
//controllo sul totmov in caso di riscrittura
|
||||||
|
if (ori_totimp != totimp || ori_totsez != totsez)
|
||||||
|
{
|
||||||
|
TString str_totimp;
|
||||||
|
str_totimp << totimp;
|
||||||
|
TString str_ori_totimp;
|
||||||
|
str_ori_totimp << ori_totimp;
|
||||||
|
TString msg;
|
||||||
|
msg.format("Il totale movimento originale e' %s %c, quello importato e' %s %c.\n"
|
||||||
|
"Registrare il movimento con il totale delle righe importate?",
|
||||||
|
(const char*)str_totimp, totsez, (const char*)str_ori_totimp, ori_totsez);
|
||||||
|
if (!yesno_box(msg))
|
||||||
|
log.log(2, "Totale movimento originale NON coincidente con quello importato !");
|
||||||
|
}
|
||||||
movana.put(MOVANA_SEZIONE, totale.sezione());
|
movana.put(MOVANA_SEZIONE, totale.sezione());
|
||||||
movana.put(MOVANA_TOTDOC, totale.valore());
|
movana.put(MOVANA_TOTDOC, totale.valore());
|
||||||
|
|
||||||
//solo se non ci sono errori procede alla registrazione del movimento
|
//solo se non ci sono errori procede alla registrazione del movimento
|
||||||
const int items = log.recordset()->items();
|
const int items = log.recordset()->items();
|
||||||
if (items > 1)
|
if (items > 0)
|
||||||
log.preview();
|
log.preview();
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
TLocalisamfile fmovana(LF_MOVANA);
|
TLocalisamfile fmovana(LF_MOVANA);
|
||||||
int err = movana.rewrite_write(fmovana);
|
int err = movana.rewrite_write(fmovana);
|
||||||
if (err != NOERR)
|
if (err != NOERR)
|
||||||
error_box("Impossibile registrare il movimento analitico generato!");
|
error_box("Impossibile registrare il movimento analitico !");
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -1,16 +1,17 @@
|
|||||||
#define F_CODITTA 101
|
#define F_NUMREGCA 102
|
||||||
#define F_RAGSOC 102
|
|
||||||
#define F_PATH 103
|
#define F_PATH 103
|
||||||
#define F_NAME 104
|
#define F_NAME 104
|
||||||
#define F_SEP_FIELD 105
|
#define F_SEP_FIELD 105
|
||||||
#define F_SEP_DEC 106
|
#define F_SEP_DEC 106
|
||||||
|
|
||||||
#define F_TIPO 110
|
#define F_TIPO 110
|
||||||
#define F_DATAREG 111
|
#define F_DATAREG 111
|
||||||
#define F_ANNOES 112
|
#define F_ANNOES 112
|
||||||
#define F_DATACOMP 113
|
#define F_DATACOMP 113
|
||||||
#define F_DATAFCOMP 114
|
#define F_DATAFCOMP 114
|
||||||
#define F_AUTOFCOMP 115
|
#define F_AUTOFCOMP 115
|
||||||
#define F_DESCR 116
|
#define F_DESCR 116
|
||||||
#define F_CODCAUS 117
|
#define F_CODCAUS 117
|
||||||
#define F_DESCAUS 118
|
#define F_DESCAUS 118
|
||||||
|
#define F_TOTMOV 119
|
||||||
|
#define F_TOTMOV_SEZ 120
|
@ -46,9 +46,33 @@ BEGIN
|
|||||||
PROMPT 1 7 "@bParametri testata movimento"
|
PROMPT 1 7 "@bParametri testata movimento"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
NUMBER F_NUMREGCA 7
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 8 "Movimento analitico da aggiornare o creare "
|
||||||
|
USE MOVANA
|
||||||
|
INPUT NUMREG F_NUMREGCA
|
||||||
|
DISPLAY "Numreg" NUMREG
|
||||||
|
DISPLAY "Anno" ANNOES
|
||||||
|
DISPLAY "Data Reg@10" DATAREG
|
||||||
|
DISPLAY "Data Comp@10" DATACOMP
|
||||||
|
DISPLAY "Descrizione@50" DESCR
|
||||||
|
OUTPUT F_NUMREGCA NUMREG
|
||||||
|
OUTPUT F_TIPO TIPOMOV
|
||||||
|
OUTPUT F_DATAREG DATAREG
|
||||||
|
OUTPUT F_ANNOES ANNOES
|
||||||
|
OUTPUT F_DATACOMP DATAFCOMP
|
||||||
|
OUTPUT F_DATAFCOMP DATAFCOMP
|
||||||
|
OUTPUT F_AUTOFCOMP AUTOFCOMP
|
||||||
|
OUTPUT F_DESCR DESCR
|
||||||
|
OUTPUT F_CODCAUS CODCAUS
|
||||||
|
OUTPUT F_TOTMOV TOTDOC
|
||||||
|
OUTPUT F_TOTMOV_SEZ SEZIONE
|
||||||
|
CHECKTYPE SEARCH
|
||||||
|
END
|
||||||
|
|
||||||
LIST F_TIPO 1 25
|
LIST F_TIPO 1 25
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 8 "Tipo movimento "
|
PROMPT 2 9 "Tipo movimento "
|
||||||
ITEM " |Normale"
|
ITEM " |Normale"
|
||||||
ITEM "P|Preventivo"
|
ITEM "P|Preventivo"
|
||||||
ITEM "V|Variazione preventivo"
|
ITEM "V|Variazione preventivo"
|
||||||
@ -56,7 +80,7 @@ END
|
|||||||
|
|
||||||
DATE F_DATAREG
|
DATE F_DATAREG
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 9 "Data di registrazione "
|
PROMPT 2 10 "Data di registrazione "
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
FLAGS "A"
|
FLAGS "A"
|
||||||
WARNING "La data di registrazione non appartiene ad un esercizio valido"
|
WARNING "La data di registrazione non appartiene ad un esercizio valido"
|
||||||
@ -64,38 +88,38 @@ END
|
|||||||
|
|
||||||
NUMBER F_ANNOES 4
|
NUMBER F_ANNOES 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 54 9 "Esercizio "
|
PROMPT 54 10 "Esercizio "
|
||||||
FLAGS "DG"
|
FLAGS "DG"
|
||||||
END
|
END
|
||||||
|
|
||||||
DATE F_DATACOMP
|
DATE F_DATACOMP
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 10 "Data di competenza "
|
PROMPT 2 11 "Data di competenza "
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
WARNING "La data di competenza non appartiene ad un esercizio valido"
|
WARNING "La data di competenza non appartiene ad un esercizio valido"
|
||||||
END
|
END
|
||||||
|
|
||||||
DATE F_DATAFCOMP
|
DATE F_DATAFCOMP
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 43 10 "Data di fine competenza "
|
PROMPT 43 11 "Data di fine competenza "
|
||||||
WARNING "La data di fine competenza non puo' essere anteriore alla data di competenza"
|
WARNING "La data di fine competenza non puo' essere anteriore alla data di competenza"
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_AUTOFCOMP
|
BOOLEAN F_AUTOFCOMP
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 11 "Fine competenza coincidente con fine commessa di ogni riga"
|
PROMPT 2 12 "Fine competenza coincidente con fine commessa di ogni riga"
|
||||||
MESSAGE FALSE ENABLE,F_DATAFCOMP
|
MESSAGE FALSE ENABLE,F_DATAFCOMP
|
||||||
MESSAGE TRUE CLEAR,F_DATAFCOMP
|
MESSAGE TRUE CLEAR,F_DATAFCOMP
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_DESCR 50
|
STRING F_DESCR 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 12 "Descrizione "
|
PROMPT 2 13 "Descrizione "
|
||||||
END
|
END
|
||||||
|
|
||||||
STRINGA F_CODCAUS 3
|
STRINGA F_CODCAUS 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 13 "Causale "
|
PROMPT 2 14 "Causale "
|
||||||
USE LF_CAUSALI SELECT MOVIND!=''
|
USE LF_CAUSALI SELECT MOVIND!=''
|
||||||
INPUT CODCAUS F_CODCAUS
|
INPUT CODCAUS F_CODCAUS
|
||||||
DISPLAY "Codice" CODCAUS
|
DISPLAY "Codice" CODCAUS
|
||||||
@ -108,7 +132,7 @@ END
|
|||||||
|
|
||||||
STRINGA F_DESCAUS 50 40
|
STRINGA F_DESCAUS 50 40
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 24 13 ""
|
PROMPT 24 14 ""
|
||||||
USE LF_CAUSALI KEY 2 SELECT MOVIND!=''
|
USE LF_CAUSALI KEY 2 SELECT MOVIND!=''
|
||||||
INPUT DESCR F_DESCAUS
|
INPUT DESCR F_DESCAUS
|
||||||
DISPLAY "Descrizione@50" DESCR
|
DISPLAY "Descrizione@50" DESCR
|
||||||
@ -117,6 +141,16 @@ BEGIN
|
|||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
END
|
END
|
||||||
|
|
||||||
|
CURRENCY F_TOTMOV 18
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 15 "Totale movimento "
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_TOTMOV_SEZ 1
|
||||||
|
BEGIN
|
||||||
|
PROMPT 40 15 ""
|
||||||
|
END
|
||||||
|
|
||||||
STRING DLG_PROFILE 50
|
STRING DLG_PROFILE 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 -2 "Profilo "
|
PROMPT 2 -2 "Profilo "
|
||||||
@ -129,9 +163,9 @@ ENDPAGE
|
|||||||
|
|
||||||
PAGE "Istruzioni " 0 2 0 0
|
PAGE "Istruzioni " 0 2 0 0
|
||||||
|
|
||||||
TEXT -1
|
GROUPBOX DLG_NULL 80 15
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 1 "@bIstruzioni"
|
PROMPT 0 1 "@bIstruzioni"
|
||||||
END
|
END
|
||||||
|
|
||||||
TEXT -1
|
TEXT -1
|
||||||
@ -161,7 +195,27 @@ END
|
|||||||
|
|
||||||
TEXT -1
|
TEXT -1
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 7 "_ I campi dei sepatratori dipendono dalle impostazioni del proprio computer. Si controllano aprendo il file di input con un editor di testo."
|
PROMPT 1 7 "_ I campi dei sepatratori dipendono dalle impostazioni del proprio computer. Si controllano aprendo il file di input"
|
||||||
|
END
|
||||||
|
|
||||||
|
TEXT -1
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 8 " con un editor di testo."
|
||||||
|
END
|
||||||
|
|
||||||
|
TEXT -1
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 9 "@bGestione movimento"
|
||||||
|
END
|
||||||
|
|
||||||
|
TEXT -1
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 10 "_ Selezionando un movimento analitico già esistente, sarà sovrascritto con i dati di testata eventualmente modificati "
|
||||||
|
END
|
||||||
|
|
||||||
|
TEXT -1
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 11 " e con le righe importate."
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
Loading…
x
Reference in New Issue
Block a user