Patch level : 12.0 502
Files correlati : tf Commento : - Aggiunta colonna per tipo documento TD e tipo documento normale - Corretta inizializzazione TCausale in tutti i punti del programma (non sapevo servisse l'anno quando è stato fatto tutto) git-svn-id: svn://10.65.10.50/branches/R_10_00@24288 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
8fdba33e3a
commit
388e9345fc
@ -246,6 +246,7 @@ bool saveRec(TToken_string row, bool esportato)
|
||||
rCust.put("CODCF", row.get(_codcf));
|
||||
rCust.put("OCCAS", row.get(_occas));
|
||||
rCust.put("TIPODOC", row.get(_codnum));
|
||||
rCust.put("TIPODOCAE", row.get(_codnumAE));
|
||||
rCust.put("NUMDOC", row.get(_numdoc));
|
||||
rCust.put("DATAREG", row.get(_datareg));
|
||||
rCust.put("DATADOC", row.get(_datadoc));
|
||||
@ -1350,7 +1351,7 @@ bool TTrFa_app::tff0700(TSheet_field& sheet)
|
||||
|
||||
TString natura = strarr->get(_natura);
|
||||
|
||||
tff0700f.set("P7_TIPODOC", strarr->get(_codnum));
|
||||
tff0700f.set("P7_TIPODOC", strarr->get(_codnumAE));
|
||||
|
||||
// Controllo il tipo di esigilità
|
||||
tff0700f.set("P7_DATA", toDate(strarr->get(_datadoc)));
|
||||
|
@ -30,27 +30,28 @@
|
||||
|
||||
#define A_DATAREG 101
|
||||
#define A_TIPODOC 102
|
||||
#define A_NUMDOC 103
|
||||
#define A_DATADOC 104
|
||||
#define A_ALIQUOTA 105
|
||||
#define A_IMPONIBILE 106
|
||||
#define A_IMPOSTA 107
|
||||
#define A_NATURA 108
|
||||
#define A_DETRAIB 109
|
||||
#define A_TIPOCF 110
|
||||
#define A_CODCF 111
|
||||
#define A_OCFPI 112
|
||||
#define A_RAGSOC 113
|
||||
#define A_RFSO 114
|
||||
#define A_RAGSOCRFSO 115
|
||||
#define A_PAIV 116
|
||||
#define A_COFI 117
|
||||
#define A_REVERSE 118
|
||||
#define A_AUTOFATT 119
|
||||
#define A_SPEDITA 120
|
||||
#define A_INVIO 121
|
||||
#define A_FORZATA 122
|
||||
#define A_NUMERO 123
|
||||
#define A_CODERR 124
|
||||
#define A_TIPODOCAE 103
|
||||
#define A_NUMDOC 104
|
||||
#define A_DATADOC 105
|
||||
#define A_ALIQUOTA 106
|
||||
#define A_IMPONIBILE 107
|
||||
#define A_IMPOSTA 108
|
||||
#define A_NATURA 109
|
||||
#define A_DETRAIB 110
|
||||
#define A_TIPOCF 111
|
||||
#define A_CODCF 112
|
||||
#define A_OCFPI 113
|
||||
#define A_RAGSOC 114
|
||||
#define A_RFSO 115
|
||||
#define A_RAGSOCRFSO 116
|
||||
#define A_PAIV 117
|
||||
#define A_COFI 118
|
||||
#define A_REVERSE 119
|
||||
#define A_AUTOFATT 120
|
||||
#define A_SPEDITA 121
|
||||
#define A_INVIO 122
|
||||
#define A_FORZATA 123
|
||||
#define A_NUMERO 124
|
||||
#define A_CODERR 125
|
||||
|
||||
#define END_SHEET 124
|
||||
#define END_SHEET 125
|
@ -173,7 +173,8 @@ SPREADSHEET F_RIGHE
|
||||
BEGIN
|
||||
PROMPT 0 0 "Righe movimenti"
|
||||
ITEM "Data\n Reg.@8F"
|
||||
ITEM "Tipo\nDocum.@5F"
|
||||
ITEM "Tipo\nDocum.@2F"
|
||||
ITEM "Tipo\nDoc. AE.@5F"
|
||||
ITEM "Numero\nDocum.@5F"
|
||||
ITEM "Data\nDocum.@10"
|
||||
ITEM "Aliquota@4"
|
||||
@ -313,7 +314,22 @@ BEGIN
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
LIST A_TIPODOC 6
|
||||
STRING A_TIPODOC 2
|
||||
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 "HUD"
|
||||
ADD NONE
|
||||
END
|
||||
|
||||
LIST A_TIPODOCAE 6
|
||||
BEGIN
|
||||
PROMPT 23 6 "Tipo doc. "
|
||||
ITEM "TD01|TD01"
|
||||
|
@ -78,6 +78,7 @@ enum spesometroFields{
|
||||
_rfso = A_RFSO - SHEET_GAP,
|
||||
_ragsocrfso = A_RAGSOCRFSO - SHEET_GAP,
|
||||
_codnum = A_TIPODOC - SHEET_GAP,
|
||||
_codnumAE = A_TIPODOCAE - SHEET_GAP,
|
||||
_numdoc = A_NUMDOC - SHEET_GAP,
|
||||
_datadoc = A_DATADOC - SHEET_GAP,
|
||||
_natura = A_NATURA - SHEET_GAP,
|
||||
|
@ -672,15 +672,16 @@ void TTrFa_mask::load_sheet()
|
||||
row.add(findDetraib(movimento.get("TIPODET")), _detraibile); // Detraibilità
|
||||
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
|
||||
row.add(revCharge(movimento.get("NUMREG"), movimento.get_date("DATAREG").year()), _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
|
||||
row.add(td, _codnum);
|
||||
if(isCust.full())
|
||||
row.add(movimento.get("TIPODOCAE"), _codnumAE); // Tipo documento
|
||||
else
|
||||
row.add(decodTipo(&row, td), _codnum); // Tipo documento
|
||||
row.add(decodTipo(&row, td), _codnumAE); // Tipo documento
|
||||
|
||||
/*
|
||||
* Possono esistere movimenti custom dove il cliente ha una partita IVA propria
|
||||
@ -745,7 +746,7 @@ TTrFa_mask::TTrFa_mask(TString msk)
|
||||
loadConfig();
|
||||
|
||||
// Controllo che abbia aggiornato le causali dopo l'ultima patch cg0500
|
||||
bool ok = ini_get_int(CONFIG_INSTALL, "cg", "Patch") >= 500;
|
||||
bool ok = ini_get_int(CONFIG_GENERAL, "cg", "Patch") >= 500;
|
||||
if (!ok)
|
||||
{
|
||||
if (is_debug_station())
|
||||
|
@ -200,7 +200,7 @@ void TSpeCheck_msk::fillNoFilter()
|
||||
// RSOC RFSO
|
||||
row.add(getRFSO(clifo.get("CODRFSO")), s.cid2index(A_RAGSOCRFSO));
|
||||
// RC
|
||||
row.add((revCharge(rset.get("NUMREG").as_string())), s.cid2index(A_REVERSE));
|
||||
row.add((revCharge(rset.get("NUMREG").as_string(), rset.get("23.DATAREG").as_date().year())), s.cid2index(A_REVERSE));
|
||||
// AUTOFATT
|
||||
if(_ditta.partita_IVA() == clifo.get("PAIV"))
|
||||
{
|
||||
@ -277,6 +277,7 @@ void TSpeCheck_msk::fillDiff()
|
||||
|
||||
row.add(rset.get("DATAREG").as_string(), s.cid2index(A_DATAREG));
|
||||
row.add(rset.get("TIPODOC").as_string(), s.cid2index(A_TIPODOC));
|
||||
row.add(rset.get("TIPODOCAE").as_string(), s.cid2index(A_TIPODOCAE));
|
||||
row.add(rset.get("NUMDOC").as_string(), s.cid2index(A_NUMDOC));
|
||||
row.add(rset.get("DATADOC").as_string(), s.cid2index(A_DATADOC));
|
||||
row.add(rset.get("CODIVA").as_string(), s.cid2index(A_ALIQUOTA));
|
||||
@ -298,7 +299,7 @@ void TSpeCheck_msk::fillDiff()
|
||||
// RSOC RFSO
|
||||
row.add(getRFSO(clifo.get("CODRFSO")), s.cid2index(A_RAGSOCRFSO));
|
||||
// RC
|
||||
row.add((revCharge(rset.get("NUMREG").as_string())), s.cid2index(A_REVERSE));
|
||||
row.add((revCharge(rset.get("NUMREG").as_string(), rset.get("DATAREG").as_date().year())), s.cid2index(A_REVERSE));
|
||||
// AUTOFATT
|
||||
if(rset.get("AUTOFATT").as_string() == "X" || _ditta.partita_IVA() == clifo.get("PAIV"))
|
||||
{
|
||||
@ -380,7 +381,7 @@ void TSpeCheck_msk::foundHomeland(TToken_string& row, TString numreg, TString co
|
||||
// RSOC RFSO
|
||||
row.add(getRFSO(clifo.get("CODRFSO")), s.cid2index(A_RAGSOCRFSO));
|
||||
// RC
|
||||
row.add((revCharge(recMov.get("NUMREG"))), s.cid2index(A_REVERSE));
|
||||
row.add((revCharge(recMov.get("NUMREG"), recMov.get_date("DATAREG").year())), s.cid2index(A_REVERSE));
|
||||
// AUTOFATT
|
||||
if(_ditta.partita_IVA() == clifo.get("PAIV"))
|
||||
{
|
||||
@ -470,7 +471,7 @@ void TSpeCheck_msk::fillCust()
|
||||
// RSOC RFSO
|
||||
row.add(getRFSO(clifo.get("CODRFSO")), s.cid2index(A_RAGSOCRFSO));
|
||||
// RC
|
||||
row.add((revCharge(rset.get("NUMREG").as_string())), s.cid2index(A_REVERSE));
|
||||
row.add((revCharge(rset.get("NUMREG").as_string(), rset.get("DATAREG").as_date().year())), s.cid2index(A_REVERSE));
|
||||
// AUTOFATT
|
||||
if(rset.get("AUTOFATT").as_string() == "X" || _ditta.partita_IVA() == clifo.get("PAIV"))
|
||||
{
|
||||
@ -521,7 +522,6 @@ void TSpeCheck_msk::enableEdit(bool en)
|
||||
// Abilito/Disabilito le colonne
|
||||
s.enable_column(s.cid2index(A_ELIMINA), en);
|
||||
s.enable_column(s.cid2index(A_DATAREG),en);
|
||||
s.enable_column(s.cid2index(A_TIPODOC),en);
|
||||
s.enable_column(s.cid2index(A_NUMDOC),en);
|
||||
s.enable_column(s.cid2index(A_DATADOC),en);
|
||||
s.enable_column(s.cid2index(A_ALIQUOTA),en);
|
||||
|
@ -11,22 +11,23 @@
|
||||
#define A_ELIMINA 101
|
||||
#define A_DATAREG 102
|
||||
#define A_TIPODOC 103
|
||||
#define A_NUMDOC 104
|
||||
#define A_DATADOC 105
|
||||
#define A_ALIQUOTA 106
|
||||
#define A_IMPONIBILE 107
|
||||
#define A_IMPOSTA 108
|
||||
#define A_NATURA 109
|
||||
#define A_DETRAIB 110
|
||||
#define A_TIPOCF 111
|
||||
#define A_CODCF 112
|
||||
#define A_OCFPI 113
|
||||
#define A_RAGSOC 114
|
||||
#define A_RFSO 115
|
||||
#define A_RAGSOCRFSO 116
|
||||
#define A_PAIV 117
|
||||
#define A_COFI 118
|
||||
#define A_REVERSE 119
|
||||
#define A_AUTOFATT 120
|
||||
#define A_SPEDITA 121
|
||||
#define A_NUMERO 122
|
||||
#define A_TIPODOCAE 104
|
||||
#define A_NUMDOC 105
|
||||
#define A_DATADOC 106
|
||||
#define A_ALIQUOTA 107
|
||||
#define A_IMPONIBILE 108
|
||||
#define A_IMPOSTA 109
|
||||
#define A_NATURA 110
|
||||
#define A_DETRAIB 111
|
||||
#define A_TIPOCF 112
|
||||
#define A_CODCF 113
|
||||
#define A_OCFPI 114
|
||||
#define A_RAGSOC 115
|
||||
#define A_RFSO 116
|
||||
#define A_RAGSOCRFSO 117
|
||||
#define A_PAIV 118
|
||||
#define A_COFI 119
|
||||
#define A_REVERSE 120
|
||||
#define A_AUTOFATT 121
|
||||
#define A_SPEDITA 122
|
||||
#define A_NUMERO 123
|
@ -118,6 +118,7 @@ BEGIN
|
||||
ITEM "Elimina@1F"
|
||||
ITEM "Data\n Reg.@8F"
|
||||
ITEM "Tipo\nDocum.@2F"
|
||||
ITEM "Tipo\nDoc. AE@5F"
|
||||
ITEM "Numero\nDocum.@5F"
|
||||
ITEM "Data\nDocum.@10"
|
||||
ITEM "Aliquota@4"
|
||||
@ -247,10 +248,24 @@ BEGIN
|
||||
OUTPUT A_TIPODOC CODTAB
|
||||
WARNING "Tipo documento errato"
|
||||
CHECKTYPE REQUIRED
|
||||
FLAGS "U"
|
||||
FLAGS "HUD"
|
||||
ADD NONE
|
||||
END
|
||||
|
||||
LIST A_TIPODOCAE 6
|
||||
BEGIN
|
||||
PROMPT 23 6 "Tipo doc. "
|
||||
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
|
||||
BEGIN
|
||||
PROMPT 42 6 "Num. doc. "
|
||||
|
@ -61,11 +61,11 @@ real get_IVA(const TString& codiva)
|
||||
return ai.get_real("R0");
|
||||
}
|
||||
|
||||
TString revCharge(TString numreg)
|
||||
TString revCharge(TString numreg, int year)
|
||||
{
|
||||
// Controllo se la causale ha il reverse charge, se il cliente non l'ha impostata giusta sono ARAZZI suoi
|
||||
TString key = numreg;
|
||||
TCausale caus(cache().get(LF_MOV, key, "CODCAUS"));
|
||||
TCausale caus(cache().get(LF_MOV, key, "CODCAUS"), year);
|
||||
if(caus.reverse_charge())
|
||||
bool tolla = true;
|
||||
return caus.reverse_charge() ? "X" : "";
|
||||
@ -78,7 +78,7 @@ TString getRFSO(TString codrfso)
|
||||
}
|
||||
|
||||
/* Utilizzo questa funzione per filtrare al meglio i record, tutti i casi che devo omettere verranno rilevati e ritorneranno false
|
||||
* Nota bene: viene sfruttato un puntatore di TISA_Recordset per non creare nuovi oggetti e velocizzare la chiamata
|
||||
* Nota bene: viene sfruttato un puntatore di TISAM_Recordset per non creare nuovi oggetti e velocizzare la chiamata
|
||||
* a questo punto il programma non ha ancora creato un record di $trasfatt con i dati che mi interessano
|
||||
*/
|
||||
bool checkRecord(TISAM_recordset* rec)
|
||||
@ -99,7 +99,7 @@ bool checkRecord(TISAM_recordset* rec)
|
||||
if(rec->get("23.TIPO").as_string() == "C")
|
||||
{
|
||||
// Tolgo tutti i movimenti di sola IVA e in reverse charge o di tipo 3 (Acquisto di beni e servizi di soggetti non residenti)
|
||||
TCausale caus(rec->get("23.CODCAUS").as_string());
|
||||
TCausale caus(rec->get("23.CODCAUS").as_string(), rec->get("23.DATAREG").as_date().year());
|
||||
if(caus.soloiva() && (caus.reverse_charge() || caus.regime_speciale() == 3))
|
||||
return false;
|
||||
} else if(anaCli.italiano() && anaCli.partita_IVA()[0] != '0' && anaCli.partita_IVA()[0] != '1' && anaCli.codice_fiscale()[0] > '8')
|
||||
|
@ -18,7 +18,7 @@ real get_IVA(const TString& codiva);
|
||||
// Ritorna la % di detraibilità
|
||||
TString findDetraib(TString tipodet);
|
||||
// Ritorna "X" se ha il reverse charge
|
||||
TString revCharge(TString numreg);
|
||||
TString revCharge(TString numreg, int year);
|
||||
// Ritorna la ragione sociale del RFSO
|
||||
TString getRFSO(TString codrfso);
|
||||
// Controllo che sia un record che mi interessa
|
||||
|
Loading…
x
Reference in New Issue
Block a user