Patch level : 10.0 250
Files correlati : ve0.exe Ricompilazione Demo : [ ] Commento : Riportata la versione 3.2 patch 1350 git-svn-id: svn://10.65.10.50/trunk@18385 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
a756ea9067
commit
3a03066a32
@ -4,6 +4,8 @@ USE LF_NDITTE
|
||||
JOIN LF_ANAG TO LF_NDITTE INTO TIPOA=TIPOA CODANAGR=CODANAGR
|
||||
JOIN LF_ANAGFIS TO LF_ANAG ALIAS 18 INTO CODANAGR=CODANAGR
|
||||
JOIN LF_ANAGGIU TO LF_ANAG INTO CODANAGR=CODANAGR
|
||||
JOIN LF_ATTIV INTO CODDITTA==CODDITTA CODATT==CODATTPREV
|
||||
|
||||
END
|
||||
|
||||
DESCRIPTION
|
||||
@ -108,6 +110,7 @@ STRINGA -1
|
||||
BEGIN
|
||||
KEY "Codice attività"
|
||||
PROMPT 58 12 "@rCodice attività @b"
|
||||
FIELD LF_ATTIV->CODATECO
|
||||
FIELD LF_NDITTE->CODATTPREV
|
||||
END
|
||||
|
||||
|
@ -4,6 +4,7 @@ USE LF_NDITTE
|
||||
JOIN LF_ANAG TO LF_NDITTE INTO TIPOA=TIPOA CODANAGR=CODANAGR
|
||||
JOIN LF_ANAGFIS TO LF_ANAG ALIAS 18 INTO CODANAGR=CODANAGR
|
||||
JOIN LF_ANAGGIU TO LF_ANAG INTO CODANAGR=CODANAGR
|
||||
JOIN LF_ATTIV INTO CODDITTA==CODDITTA CODATT==CODATTPREV
|
||||
END
|
||||
|
||||
DESCRIPTION
|
||||
@ -103,6 +104,7 @@ STRINGA -1
|
||||
BEGIN
|
||||
KEY "Codice attività"
|
||||
PROMPT 58 12 "@rCodice attività @b"
|
||||
FIELD LF_ATTIV->CODATECO
|
||||
FIELD LF_NDITTE->CODATTPREV
|
||||
END
|
||||
|
||||
|
@ -1,10 +1,4 @@
|
||||
|
||||
#include <applicat.h>
|
||||
#include <tabapp.h>
|
||||
#include <strings.h>
|
||||
#include <stdtypes.h>
|
||||
#include <tabutil.h>
|
||||
#include <utility.h>
|
||||
#include <prefix.h>
|
||||
|
||||
#include "..\ba\batbtra.h"
|
||||
@ -16,19 +10,13 @@ private:
|
||||
TString _tabname;
|
||||
|
||||
public:
|
||||
virtual bool check_autorization() const
|
||||
{return FALSE;}
|
||||
bool user_create();
|
||||
virtual bool check_autorization() const { return false; }
|
||||
virtual bool user_create();
|
||||
virtual void init_query_mode(TMask&);
|
||||
virtual void init_modify_mode(TMask&);
|
||||
virtual void init_insert_mode(TMask&);
|
||||
|
||||
Tabtra_application() {}
|
||||
virtual ~Tabtra_application() {}
|
||||
};
|
||||
|
||||
HIDDEN inline Tabtra_application& app() {return (Tabtra_application&) main_app();}
|
||||
|
||||
HIDDEN bool ultimo_handler(TMask& m, KEY k)
|
||||
{
|
||||
if (k == K_SHIFT+K_F12)
|
||||
@ -40,24 +28,37 @@ HIDDEN bool ultimo_handler(TMask& m, KEY k)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
HIDDEN bool ditta_handler(TMask_field& f, KEY k)
|
||||
HIDDEN bool dittaric_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
if (k == K_TAB)
|
||||
{
|
||||
long codditta = f.mask().get_long(F_CODDITTARIC);
|
||||
TMask& m = f.mask();
|
||||
|
||||
bool show_cfc = false;
|
||||
bool show_pcc = false;
|
||||
|
||||
if (codditta != 0)
|
||||
const long codditta = m.get_long(F_CODDITTARIC);
|
||||
if (codditta > 0)
|
||||
{
|
||||
if (prefix().exist(codditta))
|
||||
return TRUE;
|
||||
else
|
||||
if (!prefix().exist(codditta))
|
||||
{
|
||||
f.error_box(TR("La ditta selezionata non e' abilitata per la contabilita' "));
|
||||
return FALSE;
|
||||
f.error_box(TR("La ditta selezionata non e' abilitata per la contabilita'"));
|
||||
return false;
|
||||
}
|
||||
|
||||
TFilename path = firm2dir(codditta);
|
||||
path.add("ditta.ini");
|
||||
TConfig conf(path, "cg");
|
||||
show_cfc = conf.get_bool("AnCfCm");
|
||||
show_pcc = conf.get_bool("PcTcCm");
|
||||
}
|
||||
|
||||
// Accendi i campi per le forzature sui file in comune se necessario
|
||||
m.show(F_AGGPCONCOM, show_pcc);
|
||||
m.show(F_AGGCLIFOCOM, show_cfc);
|
||||
}
|
||||
return TRUE;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void Tabtra_application::init_query_mode(TMask& m)
|
||||
@ -89,7 +90,8 @@ bool Tabtra_application::user_create()
|
||||
if (_tabname == "%TRA")
|
||||
{
|
||||
_msk->set_handler(ultimo_handler);
|
||||
_msk->set_handler(F_CODDITTARIC, ditta_handler);
|
||||
_msk->set_handler(F_CODDITTARIC, dittaric_handler);
|
||||
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
@ -97,11 +99,9 @@ bool Tabtra_application::user_create()
|
||||
|
||||
int cg6300(int argc, char* argv[])
|
||||
{
|
||||
Tabtra_application* a= new Tabtra_application;
|
||||
|
||||
Tabtra_application* a = new Tabtra_application;
|
||||
a->run(argc,argv, TR("Tabelle"));
|
||||
delete a;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
@ -43,6 +43,7 @@ class TRic_archivi : public TSkeleton_application
|
||||
TDate _datatras,_datatrasp,_dataultras_tab,_dataultras;
|
||||
TString _sigle_file,_nrec_file;
|
||||
char _agg_cau,_agg_pcon,_agg_cls,_agg_clifo,_agg_fatatt,_agg_fatpas;
|
||||
bool _agg_pcc_com, _agg_cfc_com;
|
||||
|
||||
public:
|
||||
TString _titolo;
|
||||
@ -695,6 +696,9 @@ long TRic_archivi::leggi_tabella_tras()
|
||||
|
||||
const bool agg_fatpas = tab_tra.get_bool("B1");
|
||||
_agg_fatpas = agg_fatpas ? 'X' : ' ';
|
||||
|
||||
_agg_pcc_com = tab_tra.get_bool("B2"); // Aggiorna comunque piano dei conti in comune
|
||||
_agg_cfc_com = tab_tra.get_bool("B3"); // Aggiorna comunque clienti/fornitori in comune
|
||||
}
|
||||
|
||||
return ditta;
|
||||
@ -709,8 +713,8 @@ bool TRic_archivi::set_flag()
|
||||
bool fatto = true;
|
||||
|
||||
TConfig conf(CONFIG_DITTA, "cg");
|
||||
const TString4 ana_com = conf.get("AnCfCm");
|
||||
const TString4 pcon_cau = conf.get("PcTcCm");
|
||||
const bool ana_com = conf.get_bool("AnCfCm") && !_agg_cfc_com;
|
||||
const bool pcon_cau = conf.get_bool("PcTcCm") && !_agg_pcc_com;
|
||||
|
||||
_tras_file->open(_trasfhard);
|
||||
|
||||
@ -734,7 +738,7 @@ bool TRic_archivi::set_flag()
|
||||
{
|
||||
if (sigla == 'W' || sigla == 'P')
|
||||
{
|
||||
if (nrec > 0 && pcon_cau == "")
|
||||
if (nrec > 0 && !pcon_cau)
|
||||
{
|
||||
flag = "T";
|
||||
fatto = false;
|
||||
@ -743,7 +747,7 @@ bool TRic_archivi::set_flag()
|
||||
else
|
||||
if (sigla == 'A')
|
||||
{
|
||||
if (nrec > 0 && ana_com == "")
|
||||
if (nrec > 0 && !ana_com)
|
||||
{
|
||||
flag = "T";
|
||||
fatto = false;
|
||||
@ -772,7 +776,7 @@ bool TRic_archivi::set_flag()
|
||||
|
||||
if (sigla == 'W' || sigla == 'P')
|
||||
{
|
||||
if (pcon_cau == "X")
|
||||
if (pcon_cau)
|
||||
{
|
||||
_sigle_file.overwrite(" ",j);
|
||||
_nrec_file.overwrite("000000",k);
|
||||
@ -781,7 +785,7 @@ bool TRic_archivi::set_flag()
|
||||
|
||||
if (sigla == 'A')
|
||||
{
|
||||
if (ana_com == "X")
|
||||
if (ana_com)
|
||||
{
|
||||
_sigle_file.overwrite(" ",j);
|
||||
_nrec_file.overwrite("000000",k);
|
||||
@ -821,7 +825,7 @@ void TRic_archivi::aggiorna_tabella()
|
||||
{
|
||||
TTable tab_tra("%TRA");
|
||||
TString16 dep;
|
||||
dep.format("%10s%05ld", (const char*) _nomeid, _dittainv);
|
||||
dep.format("%10s%05ld", (const char*)_nomeid, _dittainv);
|
||||
tab_tra.put("CODTAB", dep);
|
||||
if (tab_tra.read() == NOERR)
|
||||
{
|
||||
|
@ -108,8 +108,9 @@ public:
|
||||
|
||||
HIDDEN TRic_tab& app() { return (TRic_tab &) main_app(); }
|
||||
|
||||
TRic_tab::TRic_tab(char ric_tab_mov, char ric_auto) :
|
||||
_scelta(toupper(ric_tab_mov)), _ric_auto(toupper(ric_auto))
|
||||
TRic_tab::TRic_tab(char ric_tab_mov, char ric_auto)
|
||||
: _scelta(toupper(ric_tab_mov)), _ric_auto(toupper(ric_auto)),
|
||||
_tcaus(NULL), _trcaus(NULL), _tclifo(NULL), _tpcon(NULL), _tmov(NULL), _trmov(NULL), _triva(NULL)
|
||||
{
|
||||
if (_scelta == 'T')
|
||||
_titolo = TR("Ricezione tabelle");
|
||||
@ -297,17 +298,13 @@ void TRic_tab::main_loop()
|
||||
|
||||
void TRic_tab::trasferimento()
|
||||
{
|
||||
char uselab;
|
||||
TString key = "";
|
||||
int posiz,i;
|
||||
int last_tab;
|
||||
char sigla;
|
||||
int last_tab = 0;
|
||||
char sigla = ' ';
|
||||
TString message;
|
||||
|
||||
uselab = _tras_file.ult_file()[0];
|
||||
posiz = _tras_file.num(uselab); //Ritorna la posizione della sigla all'interno dell'indice
|
||||
key = _tras_file.key();
|
||||
key.trim();
|
||||
char uselab = _tras_file.ult_file()[0];
|
||||
int posiz = _tras_file.num(uselab); //Ritorna la posizione della sigla all'interno dell'indice
|
||||
TString key = _tras_file.key(); key.trim();
|
||||
|
||||
leggi_record_controllo();
|
||||
|
||||
@ -317,7 +314,7 @@ void TRic_tab::trasferimento()
|
||||
if (_scelta == 'M')
|
||||
last_tab = _tras_file.last_mov();
|
||||
|
||||
for (i = posiz; i < last_tab;i++)
|
||||
for (int i = posiz; i < last_tab;i++)
|
||||
{
|
||||
const long numero = atol(_record.mid( ((i * 6) + 95),6));
|
||||
if (numero == 0) // Numero di records totali del tipo atteso
|
||||
@ -333,8 +330,16 @@ void TRic_tab::trasferimento()
|
||||
cicli = _tcaus->items();
|
||||
break;
|
||||
case 'A':
|
||||
message = TR("Ricezione anagrafica Clienti / Fornitori in corso... Prego attendere.");
|
||||
cicli = _tclifo->items();
|
||||
if (_tclifo != NULL)
|
||||
{
|
||||
message = TR("Ricezione anagrafica Clienti / Fornitori in corso... Prego attendere.");
|
||||
cicli = _tclifo->items();
|
||||
}
|
||||
else
|
||||
{
|
||||
error_box("Sono presenti %ld record clienti/fornitori non dichirati nel record di controllo", numero);
|
||||
cicli = 0;
|
||||
}
|
||||
break;
|
||||
case 'P':
|
||||
message = TR("Ricezione anagrafica Piano dei Conti in corso... Prego attendere.");
|
||||
@ -1859,7 +1864,7 @@ void TRic_tab::apri_file_temp()
|
||||
_tmpclifo = tmpclifo.mid(1);
|
||||
_tmpclifo << ".dbf";
|
||||
if (_tmpclifo.exist())
|
||||
_tclifo = new TIsamtempfile(LF_CLIFO, tmpclifo, 0);
|
||||
_tclifo = new TIsamtempfile(LF_CLIFO, tmpclifo, 0);
|
||||
TString80 tmppcon = "%";
|
||||
tmppcon << get_firm_dir();
|
||||
tmppcon << "\\" << TEMP_PCON;
|
||||
|
@ -535,7 +535,7 @@ bool TRic_ListaMov::controlla_mov()
|
||||
else
|
||||
{
|
||||
caus.zero();
|
||||
if (_causale.not_empty()) //se la causale e' significativa
|
||||
if (_causale.full()) //se la causale e' significativa
|
||||
{
|
||||
_errore_grave = TRUE;
|
||||
_err.set(7);
|
||||
@ -831,14 +831,14 @@ void TRic_ListaMov::stampa_errori_rmov(int riga)
|
||||
if (_gruppo == 0 || _conto == 0 || _sottoconto == 0l)
|
||||
{
|
||||
_errore_grave = TRUE;
|
||||
set_row(++riga, FR("@8g*** Sottoconto partita non valido o non presente in archivio"));
|
||||
set_row(++riga, FR("@8g*** Sottoconto partita %d.%d.%ld non valido"), _gruppo, _conto, _sottoconto);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!_esiste_conto)
|
||||
{
|
||||
_errore_grave = TRUE;
|
||||
set_row(++riga, FR("@8g*** Sottoconto partita non valido o non presente in archivio"));
|
||||
set_row(++riga, FR("@8g*** Sottoconto partita %d.%d.%ld non presente in archivio"), _gruppo, _conto, _sottoconto);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1035,12 +1035,12 @@ void TRic_ListaMov::stampa_errori_riva(int riga)
|
||||
set_row(++riga, FR("@8g--- Tipo costo/ricavo non valido"));
|
||||
|
||||
if (_gruppocr == 0 || _contocr == 0 || _sottocontocr == 0l)
|
||||
set_row(++riga, FR("@8g--- Sottoconto costo/ricavo non valido o non presente in archivio"));
|
||||
set_row(++riga, FR("@8g--- Sottoconto costo/ricavo %d.%d.%ld non valido"), _gruppocr, _contocr, _sottocontocr);
|
||||
else if (_gruppocr != 0 && _contocr != 0 && _sottocontocr != 0l)
|
||||
{
|
||||
bool ok = errori_partita(_gruppocr,_contocr,_sottocontocr);
|
||||
if (!ok)
|
||||
set_row(++riga, FR("@8g--- Sottoconto costo/ricavo non valido o non presente in archivio"));
|
||||
set_row(++riga, FR("@8g--- Sottoconto costo/ricavo %d.%d.%ld non presente in archivio"), _gruppocr, _contocr, _sottocontocr);
|
||||
}
|
||||
|
||||
if (_tipod != 0 && _tipod != 1 && _tipod != 3 && _tipod != 9)
|
||||
|
@ -333,11 +333,12 @@ void TTransfer_file::close()
|
||||
|
||||
bool TTransfer_file::open(const char* path, bool create)
|
||||
{
|
||||
if (_trasfer) fclose(_trasfer);
|
||||
if (_trasfer)
|
||||
fclose(_trasfer);
|
||||
|
||||
const char* mode = create ? "a+t" : "r+t";
|
||||
|
||||
_trasfer = fopen (path, mode);
|
||||
|
||||
return _trasfer != NULL;
|
||||
}
|
||||
|
||||
@ -472,41 +473,30 @@ void TTransfer_file::remove_all(bool file_ditta)
|
||||
|
||||
bool TTransfer_file::read_control_rec()
|
||||
{
|
||||
if (!exist())
|
||||
if (_trasfer == NULL || !exist())
|
||||
return false;
|
||||
|
||||
_control_rec->spaces();
|
||||
|
||||
// va all'inizio del file
|
||||
fseek(_trasfer, 0L, SEEK_SET);
|
||||
|
||||
// const word letti = fread((char*)(const char*)_control_rec,sizeof(char),sizeH,_trasfer);
|
||||
const word letti = fread(_control_rec->get_buffer(), 1, sizeH, _trasfer);
|
||||
|
||||
const word letti = fread(_control_rec->get_buffer(sizeH), 1, sizeH, _trasfer);
|
||||
_control_rec->cut(sizeH);
|
||||
|
||||
if (_control_rec->len() > sizeH)
|
||||
NFCHECK("Non e' possibile allocare una stringa di %d in una stringa fissa di %d caratteri", _control_rec->len(),sizeH);
|
||||
|
||||
_tiporec = _control_rec->left(2);
|
||||
|
||||
if (_tiporec == " 1")
|
||||
{
|
||||
_nome_simb = _control_rec->sub(60,70);
|
||||
_ditta = atol(_control_rec->sub(70,75));
|
||||
_nultras = atoi(_control_rec->sub(75,78));
|
||||
|
||||
const TString& tmp = _control_rec->sub(78,86);
|
||||
_dataultras = converti(tmp,true);
|
||||
|
||||
_sigle_file = _control_rec->sub(86,95); _sigle_file.rtrim();
|
||||
_nrec_file = _control_rec->sub(95,149);
|
||||
_ult_file = _control_rec->sub(240,241); _ult_file.trim();
|
||||
_key = _control_rec->sub(241,301); _key.trim();
|
||||
fill_index(_sigle_file,_nrec_file);
|
||||
}
|
||||
else
|
||||
if (_tiporec != " 1")
|
||||
return false;
|
||||
|
||||
_nome_simb = _control_rec->sub(60,70);
|
||||
_ditta = atol(_control_rec->sub(70,75));
|
||||
_nultras = atoi(_control_rec->sub(75,78));
|
||||
|
||||
const TString& tmp = _control_rec->sub(78,86);
|
||||
_dataultras = converti(tmp,true);
|
||||
|
||||
_sigle_file = _control_rec->sub(86,95); _sigle_file.rtrim();
|
||||
_nrec_file = _control_rec->sub(95,149);
|
||||
_ult_file = _control_rec->sub(240,241); _ult_file.trim();
|
||||
_key = _control_rec->sub(241,301); _key.trim();
|
||||
fill_index(_sigle_file, _nrec_file);
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -1988,16 +1978,16 @@ void TTransfer_file::tipo_anagrafica(TString& record,TString& tipoc)
|
||||
char tipo = (record.sub(15,16))[0];
|
||||
switch (tipo)
|
||||
{
|
||||
case '1':
|
||||
tipoc = "C";
|
||||
break;
|
||||
case '2':
|
||||
tipoc = "F";
|
||||
break;
|
||||
case '3':
|
||||
tipoc = " ";
|
||||
default:
|
||||
break;
|
||||
case '1':
|
||||
tipoc = "C";
|
||||
break;
|
||||
case '2':
|
||||
tipoc = "F";
|
||||
break;
|
||||
case '3':
|
||||
tipoc = " ";
|
||||
default:
|
||||
break;
|
||||
};
|
||||
}
|
||||
|
||||
@ -3312,8 +3302,7 @@ void TTransfer_file::scrivi_header(const char* dest, const char* wflag)
|
||||
const word size = 256;
|
||||
const int sizeH = 1024;
|
||||
TString buffer(sizeH);
|
||||
TString16 trec;
|
||||
|
||||
|
||||
FILE* o = fopen(dest, wflag);
|
||||
CHECKS(o, "Impossibile scrivere il file ", dest);
|
||||
|
||||
@ -3323,12 +3312,10 @@ void TTransfer_file::scrivi_header(const char* dest, const char* wflag)
|
||||
_ttab->put("CODTAB", " 1");
|
||||
_ttab->read();
|
||||
|
||||
trec = (_ttab->get("CODTAB")).sub(0,2);
|
||||
|
||||
const TString& trec = _ttab->get("CODTAB").left(2);
|
||||
if (trec == " 1") // Copio il record di controllo nel file di appoggio
|
||||
{ // header.
|
||||
TString rec;
|
||||
rec = (const char*) recf;
|
||||
TString rec = recf;
|
||||
buffer.spaces();
|
||||
buffer.overwrite(rec,0);
|
||||
|
||||
@ -3352,7 +3339,7 @@ void TTransfer_file::scrivi_header(const char* dest, const char* wflag)
|
||||
app.overwrite(app1,0);
|
||||
buffer.overwrite(app,0);
|
||||
buffer.cut(sizeH);
|
||||
fwrite((char*)(const char*)buffer, 1, sizeH, o);
|
||||
fwrite((const char*)buffer, 1, sizeH, o);
|
||||
fclose(o);
|
||||
}
|
||||
}
|
||||
@ -3370,12 +3357,11 @@ void TTransfer_file::scrivi_causali(long nrec)
|
||||
_ttab->put("CODTAB", "W1");
|
||||
for (_ttab->read(); !_ttab->eof(); _ttab->next())
|
||||
{
|
||||
const TString& trec = (_ttab->get("CODTAB")).left(2);
|
||||
|
||||
const TString& trec = _ttab->get("CODTAB").left(2);
|
||||
if (trec != "W1") break;
|
||||
|
||||
|
||||
buffer = (const char*) recf;
|
||||
|
||||
|
||||
write_tmp_tabelle(buffer,create);
|
||||
create = false;
|
||||
}
|
||||
@ -3395,7 +3381,7 @@ void TTransfer_file::scrivi_clifo(long nrec)
|
||||
_ttab->put("CODTAB", "A1");
|
||||
for (_ttab->read(); !_ttab->eof(); _ttab->next())
|
||||
{
|
||||
const TString& trec = (_ttab->get("CODTAB")).left(2);
|
||||
const TString& trec = _ttab->get("CODTAB").left(2);
|
||||
if (trec != "A1") break;
|
||||
|
||||
buffer = (const char*) recf;
|
||||
|
@ -208,23 +208,23 @@ PAGE "Configurazione chiusure mensili" -1 -1 0 0
|
||||
GROUP 2
|
||||
END
|
||||
|
||||
STRING F_NUMCHI 4
|
||||
STRING F_NUMRIT 4
|
||||
BEGIN
|
||||
PROMPT 2 4 "Numeraz. chiusura mensile "
|
||||
FIELD NumChi
|
||||
FIELD NumRit
|
||||
HELP "Codice numerazione"
|
||||
USE %NUM SELECT I1>5
|
||||
INPUT CODTAB F_NUMCHI
|
||||
INPUT CODTAB F_NUMRIT
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_NUMCHI CODTAB
|
||||
OUTPUT F_DNUMCHI S0
|
||||
OUTPUT F_NUMRIT CODTAB
|
||||
OUTPUT F_DNUMRIT S0
|
||||
CHECKTYPE REQUIRED
|
||||
FLAG "UPA"
|
||||
WARNING "Numerazione assente"
|
||||
END
|
||||
|
||||
STRING F_DNUMCHI 50
|
||||
STRING F_DNUMRIT 50
|
||||
BEGIN
|
||||
PROMPT 40 4 ""
|
||||
FLAGS "D"
|
||||
@ -271,9 +271,31 @@ PAGE "Configurazione chiusure mensili" -1 -1 0 0
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_NUMCHI 4
|
||||
BEGIN
|
||||
PROMPT 2 7 "Numeraz. chiusura mensile "
|
||||
FIELD NumChi
|
||||
HELP "Codice numerazione"
|
||||
USE %NUM SELECT I1>5
|
||||
INPUT CODTAB F_NUMCHI
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_NUMCHI CODTAB
|
||||
OUTPUT F_DNUMCHI S0
|
||||
CHECKTYPE REQUIRED
|
||||
FLAG "UPA"
|
||||
WARNING "Numerazione assente"
|
||||
END
|
||||
|
||||
STRING F_DNUMCHI 50
|
||||
BEGIN
|
||||
PROMPT 40 7 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_TIPOCHI 4
|
||||
BEGIN
|
||||
PROMPT 2 7 "Tipo doc.chiusura mensile "
|
||||
PROMPT 2 8 "Tipo doc.chiusura mensile "
|
||||
FIELD TipoChi
|
||||
HELP "Codice tipo documento"
|
||||
USE %TIP SELECT I1>5
|
||||
@ -288,13 +310,13 @@ PAGE "Configurazione chiusure mensili" -1 -1 0 0
|
||||
|
||||
STRING F_DTIPOCHI 50
|
||||
BEGIN
|
||||
PROMPT 40 7 ""
|
||||
PROMPT 40 8 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_SPCHI 8
|
||||
BEGIN
|
||||
PROMPT 2 8 "Cod.spesa chiusura mensile "
|
||||
PROMPT 2 9 "Cod.spesa chiusura mensile "
|
||||
USE SPP SELECT (S6="V")
|
||||
FLAGS "U"
|
||||
INPUT CODTAB F_SPCHI
|
||||
@ -308,13 +330,35 @@ PAGE "Configurazione chiusure mensili" -1 -1 0 0
|
||||
|
||||
STRING F_DSPCHI 50
|
||||
BEGIN
|
||||
PROMPT 40 8 ""
|
||||
PROMPT 40 9 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_NUMASS 4
|
||||
BEGIN
|
||||
PROMPT 2 10 "Numeraz. assegni "
|
||||
FIELD NumAss
|
||||
HELP "Codice numerazione"
|
||||
USE %NUM SELECT I1>5
|
||||
INPUT CODTAB F_NUMASS
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_NUMASS CODTAB
|
||||
OUTPUT F_DNUMASS S0
|
||||
CHECKTYPE REQUIRED
|
||||
FLAG "UPA"
|
||||
WARNING "Numerazione assente"
|
||||
END
|
||||
|
||||
STRING F_DNUMASS 50
|
||||
BEGIN
|
||||
PROMPT 40 10 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_TIPOASS 4
|
||||
BEGIN
|
||||
PROMPT 2 9 "Tipo doc.assegno "
|
||||
PROMPT 2 11 "Tipo doc.assegno "
|
||||
FIELD TipoAss
|
||||
HELP "Codice tipo documento"
|
||||
USE %TIP SELECT I1>5
|
||||
@ -329,13 +373,13 @@ PAGE "Configurazione chiusure mensili" -1 -1 0 0
|
||||
|
||||
STRING F_DTIPOASS 50
|
||||
BEGIN
|
||||
PROMPT 40 9 ""
|
||||
PROMPT 40 11 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_SPASS 8
|
||||
BEGIN
|
||||
PROMPT 2 10 "Cod.spesa assegni "
|
||||
PROMPT 2 12 "Cod.spesa assegni "
|
||||
USE SPP SELECT (S6="V")
|
||||
FLAGS "U"
|
||||
INPUT CODTAB F_SPASS
|
||||
@ -349,13 +393,13 @@ PAGE "Configurazione chiusure mensili" -1 -1 0 0
|
||||
|
||||
STRING F_DSPASS 50
|
||||
BEGIN
|
||||
PROMPT 40 10 ""
|
||||
PROMPT 40 12 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_CODELASS 8
|
||||
BEGIN
|
||||
PROMPT 2 12 "Cod.elab assegni "
|
||||
PROMPT 2 14 "Cod.elab assegni "
|
||||
FLAG "U"
|
||||
USE %ELD SELECT I0==5
|
||||
INPUT CODTAB F_CODELASS
|
||||
|
@ -80,13 +80,15 @@ class TEstrattoConto_rep : public TDocument_report
|
||||
real _saldodeb;
|
||||
real _ritenuta;
|
||||
|
||||
TString _numchi;
|
||||
TString _tiporit;
|
||||
TString _sprit;
|
||||
TString8 _numrit;
|
||||
TString8 _tiporit;
|
||||
TString _sprit;
|
||||
|
||||
TString _tipochi;
|
||||
TString8 _numchi;
|
||||
TString8 _tipochi;
|
||||
TString _tipoass;
|
||||
TString _spchi;
|
||||
TString8 _numass;
|
||||
TString8 _spchi;
|
||||
TString _spass;
|
||||
bool _chiusura;
|
||||
bool _genpag;
|
||||
@ -343,7 +345,7 @@ void TEstrattoConto_rep::chiudi_mese()
|
||||
|
||||
if (_ritenuta != ZERO) // create ritenute
|
||||
{
|
||||
TDocumento doc('D', datachi.year(), _numchi, 0L);
|
||||
TDocumento doc('D', datachi.year(), _numrit, 0L);
|
||||
|
||||
doc.set_tipo(_tiporit);
|
||||
doc.stato(doc.tipo().stato_finale_inserimento());
|
||||
@ -368,7 +370,7 @@ void TEstrattoConto_rep::chiudi_mese()
|
||||
|
||||
if (saldo > ZERO) // assegno
|
||||
{
|
||||
TDocumento doc('D', datachi.year(), _numchi, 0L);
|
||||
TDocumento doc('D', datachi.year(), _numass, 0L);
|
||||
|
||||
doc.set_tipo(_tipoass);
|
||||
doc.stato(doc.tipo().stato_finale_inserimento());
|
||||
@ -498,11 +500,13 @@ TEstrattoConto_rep::TEstrattoConto_rep(bool genpag, bool chiusura, bool aggiorna
|
||||
|
||||
TConfig c(CONFIG_DITTA);
|
||||
|
||||
_numchi = c.get("NumChi");
|
||||
_numrit = c.get("NumRit");
|
||||
_tiporit = c.get("TipoRit");
|
||||
_sprit = c.get("SpRitChi");
|
||||
_numchi = c.get("NumChi");
|
||||
_tipochi = c.get("TipoChi");
|
||||
_spchi = c.get("SpChi");
|
||||
_numass = c.get("NumAss");
|
||||
_tipoass = c.get("TipoAss");
|
||||
_spass = c.get("SpAss");
|
||||
_el = new TGenerazione_effetti(c.get("ElAss"));
|
||||
|
@ -313,7 +313,7 @@ bool TMovCoop_recset::move_to(TRecnotype pos)
|
||||
const TString & tipodoc = anamag.get(ANAMAG_USER3);
|
||||
TCodiceIVA iva(r.get(RDOC_CODIVA));
|
||||
|
||||
if (iva.get_int("S4") == 1)
|
||||
if (iva.get_int("S4") == 0)
|
||||
_codditta += 1000;
|
||||
if (tipodoc.full())
|
||||
{
|
||||
@ -359,6 +359,7 @@ protected:
|
||||
virtual bool mov_intra(const TRecordset& mov) { return false; }
|
||||
virtual bool mov_reverse_charge(const TRecordset& mov) { return false; }
|
||||
virtual long iva11_reverse(const TRecordset & mov) { return 0L;}
|
||||
virtual bool regime_agricolo(const TRecordset& mov) const { return true; }
|
||||
const TString & dittamulti(const TRecordset& mov) const { return ((TMovCoop_recset &)mov).ditta(); }
|
||||
|
||||
public:
|
||||
|
@ -32,5 +32,9 @@
|
||||
#define F_RAGCOOP 131
|
||||
#define F_CODELASS 132
|
||||
#define F_DESELASS 133
|
||||
#define F_NUMRIT 134
|
||||
#define F_DNUMRIT 135
|
||||
#define F_NUMASS 136
|
||||
#define F_DNUMASS 137
|
||||
|
||||
|
||||
|
@ -170,7 +170,7 @@ BEGIN
|
||||
DISPLAY "Denominazione@50" S0
|
||||
OUTPUT F_UFFIVA CODTAB
|
||||
OUTPUT F_DENUFFIVA S0
|
||||
CHECKTYPE NORMAL
|
||||
CHECKTYPE REQUIRED
|
||||
WARNING "Ufficio IVA assente"
|
||||
FLAGS "Z"
|
||||
FIELD UFFIVA
|
||||
@ -186,12 +186,14 @@ STRING F_VSPROT 7
|
||||
BEGIN
|
||||
PROMPT 1 12 "Numero di protocollo "
|
||||
FIELD VSPROT
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
DATE F_VSDATA
|
||||
BEGIN
|
||||
PROMPT 1 13 "Data di emissione "
|
||||
FIELD VSDATA
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 75 6
|
||||
|
@ -82,7 +82,8 @@ Esportazione documenti in formato testo formattato per Varauto verso il sistema
|
||||
PS0713 ATS
|
||||
Trasferimento dati contabili
|
||||
Trasferimento commesse
|
||||
Importazione fatture
|
||||
Importazione fatture di acquisto
|
||||
Importazione fatture di vendita
|
||||
|
||||
PS0816 AeC
|
||||
Caricamento listino personalizzato per AeC.
|
||||
|
@ -418,6 +418,8 @@ void TPaghe2mov::load_mov()
|
||||
TMov_recset movim(query);
|
||||
TProgind pi(movim.items(), TR("Scansione movimenti"), true, true);
|
||||
const TDate datareg(_m->get_date(F_DATAREG));
|
||||
const TDate from(_m->get_date(F_DATAFROM));
|
||||
const TDate to(_m->get_date(F_DATATO));
|
||||
long numreg = 0L;
|
||||
TEsercizi_contabili esc;
|
||||
const int annoes = esc.date2esc(datareg);
|
||||
@ -429,6 +431,16 @@ void TPaghe2mov::load_mov()
|
||||
{
|
||||
if (!pi.addstatus(1))
|
||||
break;
|
||||
|
||||
const TDate datadoc(movim.get("GIORNOD").as_int(),
|
||||
movim.get("MESED").as_int(),
|
||||
movim.get("ANNOD").as_int());
|
||||
|
||||
if (from.ok() && datadoc < from)
|
||||
continue;
|
||||
if (to.ok() && datadoc > to)
|
||||
continue;
|
||||
|
||||
TMovimentoPN mov;
|
||||
|
||||
int cg_rows = 0;
|
||||
@ -448,7 +460,7 @@ void TPaghe2mov::load_mov()
|
||||
continue;
|
||||
}
|
||||
|
||||
const TCausale caus(codcaus);
|
||||
const TCausale caus(codcaus, datareg.year());
|
||||
const TString8 codreg = rec.get(CAU_REG);
|
||||
TRegistro & reg = caus.reg();
|
||||
|
||||
@ -459,10 +471,6 @@ void TPaghe2mov::load_mov()
|
||||
mov.lfile().put(MOV_TIPO, "C");
|
||||
mov.lfile().put(MOV_CODCF, movim.get(MOV_CODCF).as_int());
|
||||
|
||||
const TDate datadoc(movim.get("GIORNOD").as_int(),
|
||||
movim.get("MESED").as_int(),
|
||||
movim.get("ANNOD").as_int());
|
||||
|
||||
mov.lfile().put(MOV_DATADOC, datadoc);
|
||||
const TString16 numdoc = movim.get(MOV_NUMDOC).as_string();
|
||||
mov.lfile().put(MOV_NUMDOC, numdoc);
|
||||
|
@ -4,4 +4,6 @@
|
||||
#define F_RAGSOC 102
|
||||
#define F_INPATH 103
|
||||
#define F_AGGCLI 104
|
||||
#define F_DATAREG 105
|
||||
#define F_DATAREG 105
|
||||
#define F_DATAFROM 106
|
||||
#define F_DATATO 107
|
@ -48,6 +48,18 @@ BEGIN
|
||||
FIELD DataReg
|
||||
END
|
||||
|
||||
DATE F_DATAFROM
|
||||
BEGIN
|
||||
PROMPT 3 9 "Dal "
|
||||
FIELD DataFrom
|
||||
END
|
||||
|
||||
DATE F_DATATO
|
||||
BEGIN
|
||||
PROMPT 40 9 "Al "
|
||||
FIELD DataTo
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 9 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
|
131
ps/ps0713400.cpp
131
ps/ps0713400.cpp
@ -18,20 +18,20 @@
|
||||
// TAutomask
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
class TImportaFatVen_mask : public TAutomask
|
||||
class TImporta_fatven_msk : public TAutomask
|
||||
{
|
||||
protected:
|
||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
|
||||
public:
|
||||
TImportaFatVen_mask();
|
||||
TImporta_fatven_msk();
|
||||
};
|
||||
|
||||
TImportaFatVen_mask::TImportaFatVen_mask() :TAutomask ("ps0713400a")
|
||||
TImporta_fatven_msk::TImporta_fatven_msk() :TAutomask ("ps0713400a")
|
||||
{
|
||||
}
|
||||
|
||||
bool TImportaFatVen_mask::on_field_event(TOperable_field& f, TField_event e, long jolly)
|
||||
bool TImporta_fatven_msk::on_field_event(TOperable_field& f, TField_event e, long jolly)
|
||||
{
|
||||
switch (f.dlg())
|
||||
{
|
||||
@ -39,8 +39,7 @@ bool TImportaFatVen_mask::on_field_event(TOperable_field& f, TField_event e, lon
|
||||
case F_NAME:
|
||||
if (e == fe_button)
|
||||
{
|
||||
TArray_sheet as(-1, -1, 72, 20, TR("Selezione file"),
|
||||
"File@32");
|
||||
TArray_sheet as(-1, -1, 72, 20, TR("Selezione file"),"File@32");
|
||||
TFilename path = get(F_PATH);
|
||||
path.add("*.csv"); //files delle testate
|
||||
list_files(path, as.rows_array());
|
||||
@ -70,16 +69,16 @@ bool TImportaFatVen_mask::on_field_event(TOperable_field& f, TField_event e, lon
|
||||
// Recordset specifici per i dati da trasferire
|
||||
/////////////////////////////////////////////////////////////
|
||||
|
||||
class TImportaFatVen_recordset : public TCSV_recordset
|
||||
class TImporta_fatven_recset : public TCSV_recordset
|
||||
{
|
||||
protected:
|
||||
virtual TRecnotype new_rec(const char* buf = NULL);
|
||||
|
||||
public:
|
||||
TImportaFatVen_recordset(const char * fileName);
|
||||
TImporta_fatven_recset(const char * fileName);
|
||||
};
|
||||
|
||||
TRecnotype TImportaFatVen_recordset::new_rec(const char* buf)
|
||||
TRecnotype TImporta_fatven_recset::new_rec(const char* buf)
|
||||
{
|
||||
TToken_string str(256,'\t'); //nuovo record tab separator
|
||||
|
||||
@ -118,7 +117,7 @@ TRecnotype TImportaFatVen_recordset::new_rec(const char* buf)
|
||||
}
|
||||
|
||||
|
||||
TImportaFatVen_recordset::TImportaFatVen_recordset(const char * fileName)
|
||||
TImporta_fatven_recset::TImporta_fatven_recset(const char * fileName)
|
||||
: TCSV_recordset("CSV(,)")
|
||||
{
|
||||
load_file(fileName);
|
||||
@ -127,17 +126,17 @@ TImportaFatVen_recordset::TImportaFatVen_recordset(const char * fileName)
|
||||
///////////////////////////////////////
|
||||
// TSkeleton_application
|
||||
///////////////////////////////////////
|
||||
class TImportaFatVen_applicat : public TSkeleton_application
|
||||
class TImporta_fatven_app : public TSkeleton_application
|
||||
{
|
||||
virtual bool check_autorization() const {return false;}
|
||||
virtual const char * extra_modules() const {return "ve";}
|
||||
|
||||
TImportaFatVen_mask* _msk;
|
||||
TImporta_fatven_msk* _msk;
|
||||
|
||||
|
||||
protected:
|
||||
long togli_apici_numero(TImportaFatVen_recordset & s, int i);
|
||||
const TString& togli_apici(TImportaFatVen_recordset & s, int i);
|
||||
long togli_apici_numero(TImporta_fatven_recset& s, int i);
|
||||
const TString& togli_apici(TImporta_fatven_recset& s, int i);
|
||||
bool find_clifo(long& codcf, TString& paiv, long& abi, long& cab, TString& codpag);
|
||||
|
||||
public:
|
||||
@ -146,17 +145,17 @@ public:
|
||||
virtual void main_loop();
|
||||
bool transfer(const TFilename& file);
|
||||
|
||||
TImportaFatVen_applicat() {}
|
||||
TImporta_fatven_app() {}
|
||||
};
|
||||
|
||||
long TImportaFatVen_applicat::togli_apici_numero(TImportaFatVen_recordset & s, int i)
|
||||
long TImporta_fatven_app::togli_apici_numero(TImporta_fatven_recset & s, int i)
|
||||
{
|
||||
TString80 tmp = s.get(i).as_string();
|
||||
tmp.strip("\"");
|
||||
return atol(tmp);
|
||||
}
|
||||
|
||||
const TString& TImportaFatVen_applicat::togli_apici(TImportaFatVen_recordset & s, int i)
|
||||
const TString& TImporta_fatven_app::togli_apici(TImporta_fatven_recset & s, int i)
|
||||
{
|
||||
TString& tmp = get_tmp_string();
|
||||
tmp = s.get(i).as_string();
|
||||
@ -165,7 +164,7 @@ const TString& TImportaFatVen_applicat::togli_apici(TImportaFatVen_recordset & s
|
||||
return tmp;
|
||||
}
|
||||
|
||||
bool TImportaFatVen_applicat::find_clifo(long& codcf, TString& paiv, long& abi, long& cab, TString& codpag)
|
||||
bool TImporta_fatven_app::find_clifo(long& codcf, TString& paiv, long& abi, long& cab, TString& codpag)
|
||||
{
|
||||
if (!paiv.blank())
|
||||
{
|
||||
@ -184,16 +183,32 @@ bool TImportaFatVen_applicat::find_clifo(long& codcf, TString& paiv, long& abi,
|
||||
return false;
|
||||
}
|
||||
|
||||
bool TImportaFatVen_applicat::transfer(const TFilename& file)
|
||||
bool TImporta_fatven_app::transfer(const TFilename& file)
|
||||
{
|
||||
const TString4 codnum = "F01"; //??????????????????????????
|
||||
const TString4 tpdoc = "F01"; //??????????????????????????
|
||||
|
||||
TImportaFatVen_recordset s(file);
|
||||
TImporta_fatven_recset s(file);
|
||||
|
||||
TProgind pi(s.items(),"Importazione fatture in corso ...",true,true);
|
||||
|
||||
for (bool ok=s.move_first();ok;ok=s.move_next())
|
||||
long ndoc_old;
|
||||
|
||||
s.move_first();
|
||||
//campi documento
|
||||
const long ndoc = ndoc_old = togli_apici_numero(s,0); //ndoc
|
||||
const TDate datadoc = togli_apici(s,1); //datadoc
|
||||
const int anno = datadoc.year(); //anno documento
|
||||
|
||||
TDocumento doctmp('D', anno, codnum, ndoc_old);
|
||||
if (doctmp.rows() > 0)
|
||||
{
|
||||
warning_box(TR("I documenti che si sta cercando di importare esistono già"));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
for (bool ok = s.move_first(); ok; ok = s.move_next())
|
||||
{
|
||||
if (!pi.addstatus(1))
|
||||
break;
|
||||
@ -203,8 +218,40 @@ bool TImportaFatVen_applicat::transfer(const TFilename& file)
|
||||
|
||||
//leggo il contenuto del tracciato record
|
||||
//campi documento
|
||||
const long ndoc = togli_apici_numero(s,0); //ndoc
|
||||
const TDate datadoc = togli_apici(s,1); //datadoc
|
||||
const long ndoc = togli_apici_numero(s,0); //ndoc
|
||||
const TDate datadoc = togli_apici(s,1); //datadoc
|
||||
const int anno = datadoc.year(); //anno documento
|
||||
|
||||
//correggo l'imponibile dell'ultima riga del documento precedente per far tornare i conti
|
||||
if (ndoc != ndoc_old)
|
||||
{
|
||||
//carico il documento
|
||||
TDocumento doc('D', anno, codnum, ndoc_old);
|
||||
|
||||
s.move_prev();
|
||||
real tot_doc = togli_apici(s,18);
|
||||
real tot_imp = doc.get_real("TOTVALORE");
|
||||
|
||||
//se è necessario, faccio la modifica sull'ultima riga
|
||||
if (tot_imp != tot_doc)
|
||||
{
|
||||
//calcolo la differenza
|
||||
real diff = tot_doc - tot_imp;
|
||||
|
||||
//estraggo l'imponibile dell'ultima riga
|
||||
TRiga_documento& rdoc = doc[doc.rows()];
|
||||
real imp = rdoc.get_real(RDOC_PREZZO);
|
||||
|
||||
//calcolo l'imponibile esatto e lo inserisco nella riga documento
|
||||
imp += diff;
|
||||
rdoc.put(RDOC_PREZZO, imp);
|
||||
doc.write();
|
||||
}
|
||||
//passo al nuovo documento
|
||||
ndoc_old = ndoc;
|
||||
s.move_next();
|
||||
}
|
||||
|
||||
//campi articolo 1
|
||||
TString descr1 = togli_apici(s,2); //descrizione aritcolo 1
|
||||
const TString80 art1 = togli_apici(s,3); //articolo 1
|
||||
@ -227,7 +274,6 @@ bool TImportaFatVen_applicat::transfer(const TFilename& file)
|
||||
const TString16 codcms = togli_apici(s,17);
|
||||
|
||||
//cerco gli altri dati di interesse
|
||||
const int anno = datadoc.year(); //anno documento
|
||||
long codcf;
|
||||
long abi;
|
||||
long cab;
|
||||
@ -237,16 +283,15 @@ bool TImportaFatVen_applicat::transfer(const TFilename& file)
|
||||
if (!find_clifo(codcf, paiv, abi, cab, codpag))
|
||||
{
|
||||
//campi cliente (da utilizzare se non esiste già)
|
||||
const TString80 ragsoc = togli_apici(s,10); //ragione sociale
|
||||
const TString80 ind = togli_apici(s,11); //indirizzo
|
||||
const TString4 nciv = togli_apici_numero(s,12); //numero civico
|
||||
const long cap = togli_apici_numero(s,13); //CAP
|
||||
const TString80 comune = togli_apici(s,14); //comune
|
||||
const TString80 loc = togli_apici(s,15); //località
|
||||
const TString4 prov = togli_apici(s,16); //provincia
|
||||
|
||||
const TString80 ragsoc = togli_apici(s,10); //ragione sociale
|
||||
const TString80 ind = togli_apici(s,11); //indirizzo
|
||||
const TString4 nciv = togli_apici_numero(s,12); //numero civico
|
||||
const long cap = togli_apici_numero(s,13); //CAP
|
||||
const TString80 comune = togli_apici(s,14); //comune
|
||||
const TString80 loc = togli_apici(s,15); //località
|
||||
const TString4 prov = togli_apici(s,16); //provincia
|
||||
|
||||
const TString& codcom = cap2comune(cap, comune); //codice comune
|
||||
const TString& codcom = cap2comune(cap, comune); //codice comune
|
||||
|
||||
TLocalisamfile clifo(LF_CLIFO);
|
||||
|
||||
@ -276,11 +321,13 @@ bool TImportaFatVen_applicat::transfer(const TFilename& file)
|
||||
clifo.put(CLI_LOCCF, loc);
|
||||
|
||||
clifo.write();
|
||||
|
||||
abi = 0;
|
||||
cab = 0;
|
||||
codpag = "";
|
||||
}
|
||||
|
||||
|
||||
|
||||
TDocumento doc('D', anno, codnum, ndoc);
|
||||
|
||||
doc.put(DOC_TIPODOC, tpdoc);
|
||||
@ -290,10 +337,10 @@ bool TImportaFatVen_applicat::transfer(const TFilename& file)
|
||||
doc.put(DOC_CODABIA, abi);
|
||||
doc.put(DOC_CODCABA, cab);
|
||||
doc.put(DOC_CODPAG, codpag);
|
||||
doc.put(DOC_CODCMS, codcms);
|
||||
doc.put(DOC_CODCMS, codcms);
|
||||
|
||||
if (imp1 != 0)
|
||||
{
|
||||
{
|
||||
TRiga_documento& rdoc = doc.new_row("01");
|
||||
|
||||
if (descr1.len() <= 50)
|
||||
@ -339,20 +386,20 @@ bool TImportaFatVen_applicat::transfer(const TFilename& file)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TImportaFatVen_applicat::create()
|
||||
bool TImporta_fatven_app::create()
|
||||
{
|
||||
_msk = new TImportaFatVen_mask();
|
||||
_msk = new TImporta_fatven_msk();
|
||||
|
||||
return TSkeleton_application::create();
|
||||
}
|
||||
|
||||
bool TImportaFatVen_applicat::destroy()
|
||||
bool TImporta_fatven_app::destroy()
|
||||
{
|
||||
delete _msk;
|
||||
return TApplication::destroy();
|
||||
}
|
||||
|
||||
void TImportaFatVen_applicat::main_loop()
|
||||
void TImporta_fatven_app::main_loop()
|
||||
{
|
||||
KEY tasto;
|
||||
tasto = _msk->run();
|
||||
@ -366,12 +413,12 @@ void TImportaFatVen_applicat::main_loop()
|
||||
}
|
||||
|
||||
|
||||
TImportaFatVen_applicat& app() { return (TImportaFatVen_applicat&) main_app(); }
|
||||
TImporta_fatven_app& app() { return (TImporta_fatven_app&) main_app(); }
|
||||
|
||||
|
||||
int ps0713400 (int argc, char* argv[])
|
||||
{
|
||||
TImportaFatVen_applicat main_app;
|
||||
TImporta_fatven_app main_app;
|
||||
main_app.run(argc, argv, TR("Importazione Fatture"));
|
||||
return true;
|
||||
}
|
@ -270,7 +270,7 @@ const TString& TPack_transfer::get_real_str(const char* campo) const
|
||||
const TVariant& var = recordset().get(campo);
|
||||
if (var.is_zero())
|
||||
return EMPTY_STRING;
|
||||
return get_tmp_string() = var.as_string();
|
||||
return var.as_string();
|
||||
}
|
||||
|
||||
long TPack_transfer::get_long(const char* field) const
|
||||
@ -298,7 +298,7 @@ const TString& TPack_transfer::decode_field(const char* tab, const char* field)
|
||||
|
||||
const TString& TPack_transfer::build_insert_query(const char* table, const char* f, const char* v) const
|
||||
{
|
||||
TString& qry = get_tmp_string();
|
||||
TString qry(255);
|
||||
|
||||
qry << "INSERT INTO " << table;
|
||||
|
||||
@ -339,7 +339,7 @@ const TString& TPack_transfer::build_insert_query(const char* table, const char*
|
||||
qry.rtrim(1);
|
||||
qry << ')';
|
||||
|
||||
return qry;
|
||||
return get_tmp_string() = qry;
|
||||
}
|
||||
|
||||
TPack_transfer::TPack_transfer()
|
||||
|
@ -524,25 +524,32 @@ TPack_clifo::~TPack_clifo()
|
||||
///////////////////////////////////////////////////////////
|
||||
// TPack_indsped
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
bool TPack_indsped::get_clifo(char& tipocf, long& codcf)
|
||||
{
|
||||
TString query = query_header();
|
||||
query << "SELECT CodContab,FlagCustSupp FROM Customers_Suppliers WHERE CustSuppCode=#CODCF";
|
||||
TODBC_recordset clifo(query);
|
||||
|
||||
const TVariant& code = recordset().get("CustSuppRefCode");
|
||||
clifo.set_var("#CODCF", code);
|
||||
bool ok = clifo.move_first();
|
||||
bool ok = !code.is_empty();
|
||||
|
||||
if (ok)
|
||||
{
|
||||
codcf = clifo.get(0u).as_int();
|
||||
tipocf = clifo.get(1u).as_string()[0];
|
||||
TString query = query_header();
|
||||
query << "SELECT CodContab,FlagCustSupp FROM Customers_Suppliers WHERE CustSuppCode=#CODCF";
|
||||
TODBC_recordset clifo(query);
|
||||
|
||||
if (tipocf == 'T')
|
||||
return false; // Ignora clienti temporanei senza dare segnalazioni
|
||||
clifo.set_var("#CODCF", code);
|
||||
ok = clifo.move_first();
|
||||
|
||||
if (ok)
|
||||
{
|
||||
codcf = clifo.get(0u).as_int();
|
||||
tipocf = clifo.get(1u).as_string()[0];
|
||||
|
||||
if (tipocf == 'T')
|
||||
return false; // Ignora clienti temporanei senza dare segnalazioni
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (!ok || codcf <= 0)
|
||||
{
|
||||
TString msg;
|
||||
|
@ -443,7 +443,7 @@ bool TPack_ddt::trasferisci()
|
||||
"PDdT_Row.DefPrice, PDdT_Row.PriceNet, PDdT_Row.PriceNetDef, PDdT_Row.AmountNet, PDdT_Row.AmountNetDef, "
|
||||
"PDdT_Row.Amount, PDdT_Row.AmountDef, PDdT_Row.FlagUMPrice, IVA.IVACode, PDdT_Row.AccountCode, "
|
||||
"PDdT_Row.AccountSubCode, PDdT_Row.WeightETUnit, PDdT_Row.ClassCode, PDdT_Row.SubclassCode, "
|
||||
"PDdT_Row.DDTRowType, PDdT_Header.StatusFlag, PDdT_Row.Report, "
|
||||
"PDdT_Row.DDTRowType, PDdT_Header.StatusFlag, PDdT_Row.Report, PDdT_Row.FamilyCode,"
|
||||
"Mag_Existing_Article.ArtType, Mag_Existing_Article.Height, Mag_Existing_Article.Width, Mag_Existing_Article.Lenght, "
|
||||
"(select case when [Modalità Fornitura Bancali].[Value1] is null then 1 else [Modalità Fornitura Bancali].[Value1] end) AS FornituraBancali, "
|
||||
"PDdT_Header.InvoicingType, PDdT_Header.DocProvv, PDdT_Header.ReceiptBook\n"
|
||||
@ -654,11 +654,13 @@ bool TPack_ddt::trasferisci()
|
||||
const TString& conai_class = get_str("ClassCode");
|
||||
rdoc.put(RDOC_CODAGG1, conai_class);
|
||||
rdoc.put(RDOC_CODAGG2, get_str("SubclassCode"));
|
||||
rdoc.put("FAMILY", get_str("FamilyCode")); // Uso campo virtuale RG1:FAMILY
|
||||
|
||||
const TString& conai_cfv = config().get(conai_class, "CFV_CONAI");
|
||||
if (conai_cfv.full())
|
||||
{
|
||||
TToken_string tok; tok.add(doc->get(DOC_TIPOCF)); tok.add(doc->get(DOC_CODCF));
|
||||
TString8 tok;
|
||||
tok.format("%c|%ld", doc->get_char(DOC_TIPOCF), doc->get_long(DOC_CODCF));
|
||||
const TRectype& cfven = cache().get(LF_CFVEN, tok);
|
||||
const real perc = cfven.get(conai_cfv);
|
||||
rdoc.put(RDOC_QTAGG2, perc);
|
||||
|
Loading…
x
Reference in New Issue
Block a user