Patch level : 12.0 436

Files correlati     : tf
Commento            : 
- Aggiunta nuovo programma cambio stato
TF0100:
- Tolta detraibilità
- Tolti campi inutili dalla maschera
- Spostata funzione checkRecord in tfutility
- Aggiunti (disabilitati) a menù i nuovi programmi

git-svn-id: svn://10.65.10.50/branches/R_10_00@24053 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
mtollari 2017-08-29 12:31:55 +00:00
parent b6fe090da8
commit fe7c5f30df
9 changed files with 50 additions and 40 deletions

View File

@ -8,10 +8,10 @@ int main(int argc, char** argv)
switch (r)
{
case 1 : rt = tf0200(argc, argv); break; // Comunicazione Liquidazioni Periodiche IVA
case 3: rt = tf0400(argc, argv); break; // Controllo Spesometro
case 4: rt = tf0500(argc, argv); break; // Invio IVA
//case 2 : rt = tf0300(argc, argv); break; // Cambio stato invio
case 3 : rt = tf0400(argc, argv); break; // Controllo Spesometro
case 4 : rt = tf0500(argc, argv); break; // Invio IVA
default: rt = tf0100(argc, argv); break; // Spesometro
}
return rt;

View File

@ -3,6 +3,7 @@
int tf0100(int argc, char* argv[]);
int tf0200(int argc, char* argv[]);
int tf0300(int argc, char* argv[]);
int tf0400(int argc, char* argv[]);
int tf0500(int argc, char* argv[]);

View File

@ -1325,17 +1325,21 @@ bool TTrFa_app::tff2200(TToken_string* strarr, int nriga)
TRectype thisMov = cache().get(LF_MOV, strarr->get(_numero));
tff2200f.set("PL_ESIGIVA", is_split_payment(thisMov) ? "S" : is_IVA_diff(thisMov) || is_IVAxCassa(thisMov) ? "D" : "I");
tff2200f.set("PL_NATURA", strarr->get(_natura));
/* Tutto disabilitato! *************************************
real det(strarr->get(_detraibile));
// Nella conversione la vigola viene persa e 100,00 diventa 10.000 quindi divido
det /= CENTO;
if(det > ZERO)
{
tff2200f.set("PL_DETRAIBILE", det);
tff2200f.set("PL_DETRAIBILE", CENTO - det);
}
else if(false) // Sempre disabilitato!
{
tff2200f.set("PL_DEDUCIBILE", "SI");
}
*/
tff2200f.set("PL_GESTIONE", "D");
return tff2200f.insert();

View File

@ -342,7 +342,6 @@ BEGIN
ITEM "N5|N5 - IVA in regime del margine"
ITEM "N6|N6 - IVA in reverse charge"
ITEM "N7|N7 - IVA assolta in altro stato U3"
FIELD S12
END
STRING A_ALIQUOTA 4
@ -375,26 +374,22 @@ END
NUMBER A_IMPONIBILE 12 2
BEGIN
PROMPT 42 8 "Imponibile"
FIELD IMPORTO
CHEKTYPE REQUIRED
END
NUMBER A_IMPOSTA 12 2
BEGIN
PROMPT 42 9 "Imposta "
FIELD IMPOSTA
END
BOOLEAN A_REVERSE
BEGIN
PROMPT 1 9 "Reverse charge"
FIELD REVERSE
END
BOOLEAN A_AUTOFATT
BEGIN
PROMPT 25 9 "Autofattura"
FIELD AUTOFATT
FLAGS "D"
END

View File

@ -44,7 +44,6 @@ enum filter_fatt
disabled // Disabilitate
};
#define MOV_CUSTOM 10000000
#define SHEET_GAP 101
#define DTE_PROVV "DTE0000001"
#define DTR_PROVV "DTR0000001"
@ -172,7 +171,6 @@ class TTrFa_cursors : TObject
TRectype _next(return_code& code, TString& tipocf, TString& codcf, TString& ocfpi); // Si sposta avanti di un elemento
TRectype _nextCust(return_code& code, TString& tipocf, TString& codcf, TString& ocfpi); // Si sposta avanti di un elemento tra quelli custom
bool checkRecord(TISAM_recordset* rec);
public:
//TTrFa_cursors();
~TTrFa_cursors();

View File

@ -152,29 +152,6 @@ TRectype TTrFa_cursors::_nextCust(return_code& code, TString& tipocf, TString& c
return c_trasfatt->cursor()->curr();
}
/* 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
* a questo punto il programma non ha ancora creato un record di $trasfatt con i dati che mi interessano
*/
bool TTrFa_cursors::checkRecord(TISAM_recordset* rec)
{
TString keyClifo; keyClifo << rec->get("23.TIPO").as_string() << "|" << rec->get("23.CODCF").as_string();
// Salto le schede carburanti
if(cache().get(LF_CLIFO, keyClifo, "ALLEG") == "C")
return false;
// Clienti
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());
if(caus.soloiva() && (caus.reverse_charge() || caus.regime_speciale() == 3))
return false;
}
return true;
}
int TTrFa_cursors::updateFilters(const char tipocf, const long codcf, TDate dal, TDate al, int cod)
{

View File

@ -3,7 +3,9 @@ Caption = "Trasferimento Fatture"
Picture = <cg01>
Module = tf
Flags = ""
Item_01 = "Trasferimento Fatture", "tf0 -0", ""
Item_02 = "Controllo Spesometro", "tf0 -3", ""
Item_03 = "Liquidazione IVA Periodica", "tf0 -1", ""
Item_04 = "Invio Liquidazione IVA Periodica", "tf0 -4", ""
Item_01 = "Trasferimento Fatture", "tf0 -0", ""+
//Item_02 = "Cambio stato Spesometro", "tf0 -2", ""
//Item_03 = "Controllo Spesometro", "tf0 -3", ""
Item_04 = "Report Spesometro", "ba8 -4 totiva_aliq.rep", ""
Item_05 = "Liquidazione IVA Periodica", "tf0 -1", ""
Item_06 = "Invio Liquidazione IVA Periodica", "tf0 -4", ""

View File

@ -75,4 +75,33 @@ TString getRFSO(TString codrfso)
{
TString key; key << codrfso[0] << "|" << codrfso.mid(1);
return cache().get(LF_ANAG, key, "RAGSOC");
}
/* 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
* a questo punto il programma non ha ancora creato un record di $trasfatt con i dati che mi interessano
*/
bool checkRecord(TISAM_recordset* rec)
{
TString keyClifo; keyClifo << rec->get("23.TIPO").as_string() << "|" << rec->get("23.CODCF").as_string();
TRectype rclifo = cache().get(LF_CLIFO, keyClifo);
// Salto le schede carburanti
if(rclifo.get("ALLEG") == "C")
return false;
// Clienti
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());
if(caus.soloiva() && (caus.reverse_charge() || caus.regime_speciale() == 3))
return false;
} else if(rclifo.get("PAIV")[0] != '0' && rclifo.get("PAIV")[0] != '1' && rclifo.get("COFI")[0] >= '8')
// Salto tutti i fornitori con cod cf che inizia per 8 o 9 e con p.iva non valida
{
return false;
}
return true;
}

View File

@ -1,7 +1,9 @@
#include <strings.h>
#include <recset.h>
// Funzioni comode per più programmi
// Funzioni/Costanti comode per più programmi
#define MOV_CUSTOM 10000000
// Ritorna il record custom
TRectype getTrasFatt(TString reg, TString codiva);
@ -18,4 +20,6 @@ TString findDetraib(TString tipodet);
// Ritorna "X" se ha il reverse charge
TString revCharge(TString numreg);
// Ritorna la ragione sociale del RFSO
TString getRFSO(TString codrfso);
TString getRFSO(TString codrfso);
// Controllo che sia un record che mi interessa
bool checkRecord(TISAM_recordset* rec);