Patch level : 12.0 428
Files correlati : tf Commento : - Aggiornati tracciati - Aggiunta gestione tipi documento "SD", ma non è completamente corretto in quanto non possiamo sapere bene a quale movimento ci stiamo riferendo - Corretta creazione TRectype RFSO - Reso obbligatorio dati sede cliente/fornitore - Aggiunto controllo preventivo (bloccante) decodifica tipo documenti git-svn-id: svn://10.65.10.50/branches/R_10_00@23966 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
9c2be96942
commit
b7389c60b2
@ -230,8 +230,34 @@ const char* decodTipo(TToken_string* strarr)
|
||||
return "TD04";
|
||||
else if(tipodoc == "ND")
|
||||
return "TD05";
|
||||
else
|
||||
return tipodoc;
|
||||
else if(tipodoc == "SD")
|
||||
{
|
||||
// Devo capire a che documento è associato
|
||||
TRelation r(LF_MOV);
|
||||
TRectype filter(LF_RMOV);
|
||||
filter.put("NUMREG", strarr->get(_numero));
|
||||
TCursor c(&r, "", 1, &filter, &filter);
|
||||
for(c = 0; c.pos() < c.items(); ++c)
|
||||
{
|
||||
TRectype r = c.curr();
|
||||
if(r.get("tipoc") == "C")
|
||||
{
|
||||
if(r.get("SEZIONE") == "D")
|
||||
return "TD01";
|
||||
else
|
||||
return "TD04";
|
||||
} else
|
||||
if(r.get("tipoc") == "F")
|
||||
{
|
||||
if(r.get("SEZIONE") == "A")
|
||||
return "TD01";
|
||||
else
|
||||
return "TD04";
|
||||
}
|
||||
}
|
||||
}
|
||||
// Nel caso ritorno un valore che da errore
|
||||
return "ERR0";
|
||||
}
|
||||
|
||||
/* Salvo il record modificato in TFCustom */
|
||||
@ -962,7 +988,7 @@ bool TTrFa_app::tff0200(TString key)
|
||||
if(via.full() && cap.full() && nazione.full())
|
||||
{
|
||||
tff0200f.set("P2_SEDEIND", via);
|
||||
tff0200f.set("P2_SEDENRCIVICO", _ditta.civico_residenza());
|
||||
tff0200f.set("P2_SEDENRCIVICO", _ditta.civico_residenza().left(8));
|
||||
tff0200f.set("P2_SEDECAP", cap);
|
||||
tff0200f.set("P2_SEDECOMUNE", _ditta.comune_residenza());
|
||||
if(_ditta.italiano()) // Campo ritornerebbe "EE" se estero
|
||||
@ -973,14 +999,14 @@ bool TTrFa_app::tff0200(TString key)
|
||||
myrfso = "";
|
||||
if(haveRFSO(myrfso))
|
||||
{
|
||||
TRectype r_ana = cache().get(LF_ANAG, TString(myrfso[0]) << myrfso.sub(1));
|
||||
TRectype r_ana = cache().get(LF_ANAG, TString(myrfso.left(1)) << "|" << myrfso.sub(1));
|
||||
if(r_ana.get_char("TIPORFSO") == 'S') // Stabile Organizzazione
|
||||
{
|
||||
TAnagrafica rfso(r_ana);
|
||||
TString via = rfso.via_residenza(), cap = rfso.CAP_residenza(), nazione = rfso.stato_residenza_ISO();
|
||||
|
||||
tff0200f.set("P2_STABORGIND", via);
|
||||
tff0200f.set("P2_STABORGNRCIVICO", rfso.civico_residenza());
|
||||
tff0200f.set("P2_STABORGNRCIVICO", rfso.civico_residenza().left(8));
|
||||
tff0200f.set("P2_STABORGCAP", cap);
|
||||
tff0200f.set("P2_STABORGCOMUNE", rfso.comune_residenza());
|
||||
if(rfso.italiano())
|
||||
@ -1174,18 +1200,14 @@ bool TTrFa_app::tff0400(TSheet_field& sheet)
|
||||
{
|
||||
tff0400f.set("P4_ANADENOM", cedeprest.ragione_sociale());
|
||||
}
|
||||
TString via = cedeprest.via_residenza(), cap = cedeprest.CAP_residenza(), nazione = cedeprest.stato_residenza_ISO();
|
||||
// Valori necessari, se non ci sono salto
|
||||
if(via.full() && (cap.full() || cedeprest.estero()) && nazione.full())
|
||||
{
|
||||
tff0400f.set("P4_SEDEIND", via);
|
||||
tff0400f.set("P4_SEDENRCIVICO", cedeprest.civico_residenza());
|
||||
tff0400f.set("P4_SEDECAP", cap);
|
||||
tff0400f.set("P4_SEDECOMUNE", cedeprest.comune_residenza());
|
||||
if(cedeprest.italiano()) // Campo ritornerebbe "EE" se estero
|
||||
tff0400f.set("P4_SEDEPROV", cedeprest.provincia_residenza());
|
||||
tff0400f.set("P4_SEDENAZ", nazione);
|
||||
}
|
||||
|
||||
tff0400f.set("P4_SEDEIND", cedeprest.via_residenza());
|
||||
tff0400f.set("P4_SEDENRCIVICO", cedeprest.civico_residenza().left(8));
|
||||
tff0400f.set("P4_SEDECAP", cedeprest.CAP_residenza());
|
||||
tff0400f.set("P4_SEDECOMUNE", cedeprest.comune_residenza());
|
||||
if(cedeprest.italiano()) // Campo ritornerebbe "EE" se estero
|
||||
tff0400f.set("P4_SEDEPROV", cedeprest.provincia_residenza());
|
||||
tff0400f.set("P4_SEDENAZ", cedeprest.stato_residenza_ISO());
|
||||
}
|
||||
tff0400f.set("P4_GESTIONE", "D");
|
||||
|
||||
@ -1197,8 +1219,8 @@ bool TTrFa_app::tff0400(TSheet_field& sheet)
|
||||
TString rfso = strarr->get(_rfso);
|
||||
if(rfso.full())
|
||||
{
|
||||
TRectype r_ana = cache().get(LF_ANAG, TString(myrfso[0]) << rfso.sub(1));
|
||||
ok = tff3100(strarr, r_ana);
|
||||
TRectype r_ana = cache().get(LF_ANAG, TString(rfso.left(1)) << "|" << rfso.sub(1));
|
||||
ok = r_ana.full() && tff3100(strarr, r_ana);
|
||||
}
|
||||
|
||||
// E dopo l'inserimento del tff3100
|
||||
@ -1315,7 +1337,7 @@ bool TTrFa_app::tff3100(TToken_string* strarr, TRectype r_ana)
|
||||
TString via = rfso.via_residenza(), cap = rfso.CAP_residenza(), nazione = rfso.stato_residenza_ISO();
|
||||
|
||||
tff3100f.set("PH_STABORGIND", via);
|
||||
tff3100f.set("PH_STABORGNRCIVICO", rfso.civico_residenza());
|
||||
tff3100f.set("PH_STABORGNRCIVICO", rfso.civico_residenza().left(8));
|
||||
tff3100f.set("PH_STABORGCAP", cap);
|
||||
tff3100f.set("PH_STABORGCOMUNE", rfso.comune_residenza());
|
||||
if(rfso.italiano())
|
||||
|
@ -55,6 +55,8 @@ enum filter_fatt
|
||||
#define FLAG_FORZATO "F"
|
||||
#define FLAG_INVIATO "I"
|
||||
#define SPESOMETROBASE "ModuliSirio"
|
||||
#define REG_ATT 1
|
||||
#define REG_PAS 2
|
||||
|
||||
/* Così facendo basta modificare la maschera (e le dichiarazioni di conseguenza)
|
||||
* per avere l'inserimento nello sheet corretto */
|
||||
|
@ -486,6 +486,14 @@ bool TTrFa_mask::checkRec(TPrinter* stampa, TToken_string* rec)
|
||||
coderr << "3;";
|
||||
}
|
||||
|
||||
if(decodTipo(rec) == "ERR")
|
||||
{
|
||||
ok = false;
|
||||
msgerr.cut(0) << "Non riesco a determinare il tipo di documento corretto per l'agenzia delle entrate!";
|
||||
printError(stampa, numMov, numDoc, msgerr);
|
||||
coderr << "4;";
|
||||
}
|
||||
|
||||
// Flaggo il record con i messaggi di errore
|
||||
rec->add(coderr, _coderr); // Sempre potrebbero esserci errori non bloccanti
|
||||
|
||||
@ -510,7 +518,7 @@ bool TTrFa_mask::checkNotEmpty()
|
||||
return sheet.full();
|
||||
}
|
||||
|
||||
void TTrFa_mask::theFinalCheckDown()
|
||||
void TTrFa_mask::theFinalCheckDown() // IT'S THE FINAL CHECKDOOOOOOOWN! WE'RE CHECKING TOGEEEETHEEEEER!!!!
|
||||
{
|
||||
TSheet_field& sheet = sfield(F_RIGHE);
|
||||
TAssoc_array cliDocs;
|
||||
|
@ -51,7 +51,7 @@ P2_STABORGPROV = CHAR(2)
|
||||
P2_STABORGNAZ = CHAR(2)
|
||||
P2_ISCRREAUFF = CHAR(2)
|
||||
P2_ISCRREANUM = CHAR(20)
|
||||
P2_ISCRREACAP = CHAR(5)
|
||||
P2_ISCRREACAP = NUMERIC(15,2)
|
||||
P2_ISCRREASOCIOU = CHAR(2)
|
||||
P2_ISCRREASLIQUID = CHAR(2)
|
||||
P2_CONTATTITELEF = CHAR(12)
|
||||
@ -66,7 +66,7 @@ INDEX_1 = P2_KEYPRGINVIO
|
||||
|
||||
[TFF0300F]
|
||||
P3_KEYPRGINVIO = CHAR(10)
|
||||
P3_FISCIVAPAESE = CHAR(2)
|
||||
P3_FISCIVAPAESE = CHAR(2)
|
||||
P3_FISCIVACODICE = CHAR(28)
|
||||
P3_CODFISC = CHAR(16)
|
||||
P3_ANADENOMI = CHAR(80)
|
||||
@ -138,7 +138,7 @@ PL_KEYBODYDETT = CHAR(20)
|
||||
PL_ALIQUOTAIVA = NUMERIC(6,2)
|
||||
PL_NATURA = CHAR(2)
|
||||
PL_SPESEACCESS = NUMERIC(15,2)
|
||||
PL_ARROTONDAM = NUMERIC(15,2)
|
||||
PL_ARROTONDAM = NUMERIC(21,2)
|
||||
PL_IMPONIBILE = NUMERIC(15,2)
|
||||
PL_IMPOSTA = NUMERIC(15,2)
|
||||
PL_ESIGIVA = CHAR(1)
|
||||
|
Loading…
x
Reference in New Issue
Block a user