Patch level : 12.0 486
Files correlati : tf Commento : - Aggiornato DataBase - Aggiunto in esportazione Numero Documento Esteso - Messo al posto del Tipo Documento di Campo quelli dell'Agenzia delle Entrate (es. F01 -> TD01) - Aggiornati tracciati git-svn-id: svn://10.65.10.50/branches/R_10_00@24234 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
e3d3c18006
commit
587e673e75
@ -1,3 +1,3 @@
|
||||
173
|
||||
0
|
||||
$trasfatt|15|15|112|0|Tabella trasferimento fatture|||
|
||||
$trasfatt|0|2|114|0|Tabella trasferimento fatture|||
|
||||
|
@ -3,7 +3,7 @@
|
||||
NUMREG|3|10|0|Codice esercizio
|
||||
TIPO|7|1|0|Tipo <C>liente o <F>ornitore
|
||||
CODCF|3|6|0|Codice
|
||||
TIPODOC|1|2|0|Tipo documento
|
||||
TIPODOC|1|4|0|Tipo documento
|
||||
OCCAS|1|16|0|Codice occasionali
|
||||
NUMDOC|1|7|0|Numero documento
|
||||
DATAREG|5|8|0|Data Registrazione
|
||||
|
@ -133,11 +133,10 @@ bool xvt_fsys_fupdate(const char* src, const char* dst)
|
||||
* TD10: Fatt di acquisto intra beni
|
||||
* TD11: Fatt di acquisto intra servizi
|
||||
*/
|
||||
const char* decodTipo(TToken_string* strarr)
|
||||
const char* decodTipo(TToken_string* strarr, const TString& tipodoc)
|
||||
{
|
||||
TRectype mov = cache().get(LF_MOV, strarr->get(_numero));
|
||||
TCausale caus(mov.get("CODCAUS"), mov.get_int("ANNOIVA"));
|
||||
TString tipodoc; tipodoc << strarr->get(_codnum);
|
||||
// Le autofatture possono essere solo di tipo TDO1 e le bolle doganali nel dubbio pure
|
||||
if(tipodoc == "AF" || tipodoc == "BD" || tipodoc == "FF" || tipodoc == "FV" || tipodoc == "FS")
|
||||
return "TD01";
|
||||
@ -679,15 +678,12 @@ bool TTrFa_app::create()
|
||||
TString16 d; d.format("TF%05ld.db", prefix().get_codditta());
|
||||
_dbname.add(d);
|
||||
|
||||
bool create = !_dbname.exist();
|
||||
_db = xvt_sql_open(_dbname, user(), "", _dbname.path());
|
||||
if (_db == NULL)
|
||||
return false;
|
||||
|
||||
if(create)
|
||||
{
|
||||
createDB();
|
||||
}
|
||||
|
||||
// Questa funzione crea/verifica il DB
|
||||
verifyDB(!_dbname.exist());
|
||||
|
||||
return TSkeleton_application::create();
|
||||
}
|
||||
@ -700,7 +696,7 @@ bool TTrFa_app::syncronizeDB()
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TTrFa_app::createDB()
|
||||
bool TTrFa_app::verifyDB(const bool create)
|
||||
{
|
||||
const TFilename ini = "tff.ini";
|
||||
bool ok = ini.exist();
|
||||
@ -717,7 +713,7 @@ bool TTrFa_app::createDB()
|
||||
ok = create_table(TFF, table);
|
||||
}
|
||||
}
|
||||
if(ok)
|
||||
if(ok && create)
|
||||
{
|
||||
// Aggiungo il valore di default in TFNUM
|
||||
TTrFa_record tfnum("TFNUM00F");
|
||||
@ -1213,7 +1209,6 @@ bool TTrFa_app::tff0400(TSheet_field& sheet)
|
||||
{
|
||||
// Sono sicuro che se è di tipo 3,7 o 8 ha la ragione sociale
|
||||
int tipo = cedeprest.inserimento_in_allegato();//r_cedeprest.get_char(CLI_ALLEG);
|
||||
int pippo = 'C';
|
||||
bool rsoc = cedeprest.giuridica() || (tipo == 3 || tipo == 7 || tipo == 8 || tipo == 0);
|
||||
bool privato = tipo == 6 || (cedeprest.estero() && cedeprest.fisica());
|
||||
|
||||
@ -1366,11 +1361,12 @@ bool TTrFa_app::tff0700(TSheet_field& sheet)
|
||||
|
||||
TString natura = strarr->get(_natura);
|
||||
|
||||
tff0700f.set("P7_TIPODOC", decodTipo(strarr));
|
||||
tff0700f.set("P7_TIPODOC", strarr->get(_codnum));
|
||||
|
||||
// Controllo il tipo di esigilità
|
||||
tff0700f.set("P7_DATA", toDate(strarr->get(_datadoc)));
|
||||
tff0700f.set("P7_NUMERO", strarr->get(_numdoc));
|
||||
tff0700f.set("P7_NRODOC", cache().get(LF_MOV, strarr->get(_numero), "NUMDOCEXT"));
|
||||
tff0700f.set("P7_DATAREG", toDate(strarr->get(_datareg))); // Obbligatoria nei DTR
|
||||
tff0700f.set("P7_GESTIONE", "");
|
||||
ok = tff0700f.insert();
|
||||
|
@ -173,7 +173,7 @@ SPREADSHEET F_RIGHE
|
||||
BEGIN
|
||||
PROMPT 0 0 "Righe movimenti"
|
||||
ITEM "Data\n Reg.@8F"
|
||||
ITEM "Tipo\nDocum.@2F"
|
||||
ITEM "Tipo\nDocum.@5F"
|
||||
ITEM "Numero\nDocum.@5F"
|
||||
ITEM "Data\nDocum.@10"
|
||||
ITEM "Aliquota@4"
|
||||
@ -313,19 +313,17 @@ BEGIN
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING A_TIPODOC 2
|
||||
LIST A_TIPODOC 6
|
||||
BEGIN
|
||||
PROMPT 23 6 "Tipo doc. "
|
||||
FIELD TIPODOC
|
||||
USE %TPD
|
||||
INPUT CODTAB A_TIPODOC
|
||||
DISPLAY "Tipo " CODTAB
|
||||
DISPLAY "Descrizione @50" S0
|
||||
OUTPUT A_TIPODOC CODTAB
|
||||
WARNING "Tipo documento errato"
|
||||
CHECKTYPE REQUIRED
|
||||
FLAGS "U"
|
||||
ADD NONE
|
||||
ITEM "TD01|TD01"
|
||||
ITEM "TD04|TD04"
|
||||
ITEM "TD05|TD05"
|
||||
ITEM "TD07|TD07"
|
||||
ITEM "TD08|TD08"
|
||||
ITEM "TD10|TD10"
|
||||
ITEM "TD11|TD11"
|
||||
ITEM "ERR0|Errore"
|
||||
END
|
||||
|
||||
STRING A_NUMDOC 7
|
||||
|
@ -105,7 +105,7 @@ static SLIST_ELT xvt_slist_find_str(SLIST list, const char* str);
|
||||
// Aggiorna il file dst se più vecchio di src (Potrebbe diventare una funzione di XVT.h)
|
||||
bool xvt_fsys_fupdate(const char* src, const char* dst);
|
||||
// Decodifica il tipo di documento per il trasferimento fatture
|
||||
const char * decodTipo(TToken_string* strarr);
|
||||
const char * decodTipo(TToken_string* strarr, const TString& tipodoc);
|
||||
// Salvo un singolo record
|
||||
bool saveRec(TToken_string row, bool esportato = false);
|
||||
// Ritorno una data in formato ANSI
|
||||
@ -279,7 +279,7 @@ protected:
|
||||
void log(int severity, const char* msg);
|
||||
bool show_log();
|
||||
bool syncronizeDB();
|
||||
bool createDB();
|
||||
bool verifyDB(const bool create);
|
||||
bool copySSA();
|
||||
|
||||
public:
|
||||
|
@ -196,14 +196,6 @@ bool TTrFa_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
}
|
||||
}
|
||||
break;
|
||||
case A_TIPODOC:
|
||||
// Controllo che il tipo di documento rientri in quelli del filtro
|
||||
if(e == fe_modify && !get_bool(getTipoDoc(o.get())))
|
||||
{
|
||||
error_box("Attenzione! il tipo di documento scelto non fa parte dei filtri correnti!");
|
||||
o.set("");
|
||||
}
|
||||
break;
|
||||
case DLG_SAVEREC:
|
||||
if(e == fe_button)
|
||||
saveAll();
|
||||
@ -497,7 +489,7 @@ bool TTrFa_mask::checkRec(TPrinter* stampa, TToken_string* rec)
|
||||
coderr << "3;";
|
||||
}
|
||||
|
||||
if(decodTipo(rec) == "ERR0")
|
||||
if(strcmp(rec->get(_codnum), "ERR0") == 0)
|
||||
{
|
||||
ok = false;
|
||||
msgerr.cut(0) << "Non riesco a determinare il tipo di documento corretto per l'agenzia delle entrate!";
|
||||
@ -671,7 +663,6 @@ void TTrFa_mask::load_sheet()
|
||||
row.add(cli.get("RAGSOC"), _ragsoc); // Ragione sociale
|
||||
row.add(cli.get("CODRFSO"), _rfso); // Codice RF/SO
|
||||
row.add(getRFSO(cli.get("CODRFSO")), _ragsocrfso); // Ragione Sociale RF/SO
|
||||
row.add(movimento.get("TIPODOC"), _codnum); // Tipo documento
|
||||
row.add(movimento.get("NUMDOC"), _numdoc); // Numero documento
|
||||
row.add(movimento.get_date("DATADOC"), _datadoc); // Data documento
|
||||
nat.cut(0) << movimento.get("NATURA");
|
||||
@ -681,6 +672,14 @@ void TTrFa_mask::load_sheet()
|
||||
row.add(movimento.get_real("IMPONIBILE"), _imponibile); // Imponibile
|
||||
row.add(movimento.get_real("IMPOSTA"), _importoIVA); // Imposta
|
||||
row.add(revCharge(movimento.get("NUMREG")), _reverse); // Rev.Charge
|
||||
|
||||
// Calcolo il tipo documento alla fine per sicurezza
|
||||
static TString4 td;
|
||||
td.cut(0) << movimento.get("TIPODOC");
|
||||
if(isCust.full() && td.starts_with("TD"))
|
||||
row.add(td, _codnum); // Tipo documento
|
||||
else
|
||||
row.add(decodTipo(&row, td), _codnum); // Tipo documento
|
||||
|
||||
/*
|
||||
* Possono esistere movimenti custom dove il cliente ha una partita IVA propria
|
||||
|
@ -126,6 +126,10 @@ P7_NUMEROREG = NUMERIC(20,0)
|
||||
P7_TIPOREG = CHAR(6)
|
||||
P7_PROTOCOLLO = CHAR(18)
|
||||
P7_POSIZIONE = NUMERIC(7,0)
|
||||
P7_CLIFOR = CHAR(20)
|
||||
P7_NRODOC = CHAR(20)
|
||||
P7_DTADOC = DATE
|
||||
|
||||
|
||||
INDEX_1 = P7_KEYPRGINVIO,P7_KEYHEADERFATT,P7_KEYBODYFATT
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user