Patch level : 12.0

Files correlati     : cg0500a.uml f26.dir f26.trr f9lib01.cpp

Commento:
Aggiunto il flag "Escludi da archiviazione sostitutiva" nella videata delle causali.
Tutti docoumenti di vendita che hanno una causale con questo flag attivo vengono ignorati da programma che fa l'archiviazione sostitutiva
This commit is contained in:
Simoe 2022-10-19 09:19:37 +02:00
parent 29e7c0c77a
commit de72654815
7 changed files with 42 additions and 21 deletions

View File

@ -39,6 +39,7 @@
#define F_RIL_FT_EM_RI 236 #define F_RIL_FT_EM_RI 236
#define F_DATAREG_PREC 237 #define F_DATAREG_PREC 237
#define F_TIPO_SDI 238 #define F_TIPO_SDI 238
#define F_ESCULDIARC 239
#define SS_TIPO 101 #define SS_TIPO 101
#define SS_SEZIONE 102 #define SS_SEZIONE 102

View File

@ -191,6 +191,12 @@ BEGIN
FIELD SOLOIVA FIELD SOLOIVA
END END
BOOLEAN F_ESCULDIARC
BEGIN
PROMPT 30 7 "Escludi causale dall'archiviazione sostitutiva"
FILED ESCLUDIARC
END
SPREADSHEET F_SHEET_GCS SPREADSHEET F_SHEET_GCS
BEGIN BEGIN
PROMPT 0 8 "Righe" PROMPT 0 8 "Righe"

View File

@ -336,6 +336,7 @@ public:
int regime_speciale() const; int regime_speciale() const;
bool corrispettivi() const { return _corrisp; } bool corrispettivi() const { return _corrisp; }
bool esclusione_allegati() const; bool esclusione_allegati() const;
bool escludi2archiviazione() const { return _rec.get_bool(CAU_ESCLUDIARC); }
// bill deve essere il conto di ricavo // bill deve essere il conto di ricavo
bool IVA2bill(const TCodiceIVA& iva, TBill& bill) const; bool IVA2bill(const TCodiceIVA& iva, TBill& bill) const;
@ -415,6 +416,8 @@ public: // TObject
bool denominatore_pro_rata() const { return get_bool("B7"); } bool denominatore_pro_rata() const { return get_bool("B7"); }
bool reverse_charge_attivo() const { return get_bool("B8"); } bool reverse_charge_attivo() const { return get_bool("B8"); }
real imposta(const real& imponibile, int ndec = AUTO_DECIMALS, const char * codval = "") const; // Calcola l'imposta sull'imponibile l'imposta e la ritorna real imposta(const real& imponibile, int ndec = AUTO_DECIMALS, const char * codval = "") const; // Calcola l'imposta sull'imponibile l'imposta e la ritorna
real scorpora(real& imponibile, int ndec = AUTO_DECIMALS, const char * codval = "") const; // Scorpora dall'imponibile l'imposta e la ritorna real scorpora(real& imponibile, int ndec = AUTO_DECIMALS, const char * codval = "") const; // Scorpora dall'imponibile l'imposta e la ritorna
real lordo(const real& imponibile, int ndec = AUTO_DECIMALS, const char * codval = "") const; // Calcola il lordo dell'imponibile l'imposta e la ritorna real lordo(const real& imponibile, int ndec = AUTO_DECIMALS, const char * codval = "") const; // Calcola il lordo dell'imponibile l'imposta e la ritorna

View File

@ -1,3 +1,3 @@
26 26
0 0
$caus|0|0|92|0|Causali contabili||| $caus|0|0|93|0|Causali contabili|||

View File

@ -1,5 +1,5 @@
26 26
29 30
CODCAUS|1|3|0|Codice causale CODCAUS|1|3|0|Codice causale
DESCR|1|50|0|Descrizione causale DESCR|1|50|0|Descrizione causale
TIPODOC|1|2|0|Tipo documento TIPODOC|1|2|0|Tipo documento
@ -29,6 +29,7 @@ LIQDIFF|8|1|0|Fatture a liquidazione differita
RILFTEMRI|8|1|0|Causale di rilevazione fatture de emettere o ricevere RILFTEMRI|8|1|0|Causale di rilevazione fatture de emettere o ricevere
DATAREGPR|8|1|0|Registrazione rilevamento fatture da ricevere/emettere a fine esercizio DATAREGPR|8|1|0|Registrazione rilevamento fatture da ricevere/emettere a fine esercizio
TIPODOCSDI|1|4|0|Tipo documento Agenzia delle Entrate TIPODOCSDI|1|4|0|Tipo documento Agenzia delle Entrate
ESCLUDIARC|8|1|0|Flag per escludere la causale dall'archiviazione sostitutiva
2 2
CODCAUS| CODCAUS|
UPPER(DESCR)|X UPPER(DESCR)|X

View File

@ -1094,10 +1094,18 @@ bool TEstrazione::estrazione_iva(bool escluso)
FOR_EACH_ARRAY_ITEM(_movs, r, obj) FOR_EACH_ARRAY_ITEM(_movs, r, obj)
{ {
TMovimento_estr & mov_i = (TMovimento_estr &)*obj; TMovimento_estr & mov_i = (TMovimento_estr &)*obj;
if (bar.add_status() && mov_i.estratto())
{
const TRectype& mov = cache().get(LF_MOV, mov_i.numreg()); const TRectype& mov = cache().get(LF_MOV, mov_i.numreg());
const TCausale caus(mov.get(MOV_CODCAUS), mov.get_date(MOV_DATAREG).year());
bool harambe = caus.escludi2archiviazione();
if (caus.escludi2archiviazione()) {
int siamodentro = 0;
}
if (bar.add_status() && mov_i.estratto() && !caus.escludi2archiviazione())
{
TToken_string key = mov.get(MOV_TIPO); TToken_string key = mov.get(MOV_TIPO);
key.add(mov.get(MOV_CODCF)); key.add(mov.get(MOV_CODCF));
@ -1126,27 +1134,32 @@ bool TEstrazione::estrazione_iva(bool escluso)
iva_query.add(IVA_IDFISC, idfisc, 30); iva_query.add(IVA_IDFISC, idfisc, 30);
iva_query.add(IVA_PIVA, paiv, 28); iva_query.add(IVA_PIVA, paiv, 28);
iva_query.add(IVA_CODFIS, codfis, 16); iva_query.add(IVA_CODFIS, codfis, 16);
iva_query.add(IVA_CATDOC, mov_i.catdoc(categorie_doc())->catdoc(), 10);
const TClasse_doc* catdoc = mov_i.catdoc(categorie_doc());
if (catdoc != nullptr)
iva_query.add(IVA_CATDOC, catdoc->catdoc(), 10);
const TRegistro& reg = cached_registro(mov.get(MOV_REG), mov.get_int(MOV_ANNOIVA)); const TRegistro& reg = cached_registro(mov.get(MOV_REG), mov.get_int(MOV_ANNOIVA));
if (reg.iva() == iva_vendite) if (reg.iva() == iva_vendite)
{ {
int anno = mov.get_int(MOV_DANNO); const int anno_doc = mov.get_int(MOV_DANNO);
if (anno > 0) if (anno_doc > 0)
{ {
const char provv = mov.get(MOV_DPROVV)[0]; const char provv = mov.get(MOV_DPROVV)[0];
const TString& codnum = mov.get(MOV_DCODNUM); const TString& codnum = mov.get(MOV_DCODNUM);
const long ndoc = mov.get_long(MOV_DNDOC); const long ndoc = mov.get_long(MOV_DNDOC);
TDocumento doc(provv, anno, codnum, ndoc); TDocumento doc(provv, anno_doc, codnum, ndoc);
iva_query.add(IVA_CAUSSOS, tipo_doc_sdi(doc) , 6); iva_query.add(IVA_CAUSSOS, tipo_doc_sdi(doc) , 6);
} }
else else
iva_query.add(IVA_CAUSSOS, mov_i.catdoc(categorie_doc())->caus_sost(), 6); if(catdoc!=nullptr)
iva_query.add(IVA_CAUSSOS, catdoc->caus_sost(), 6);
} }
//
else else
{ {
TToken_string key(mov.get((MOV_KEYFPPRO)), ';'); TToken_string key(mov.get((MOV_KEYFPPRO)), ';');
@ -1159,10 +1172,12 @@ bool TEstrazione::estrazione_iva(bool escluso)
if(tipodoc.full()) if(tipodoc.full())
iva_query.add(IVA_CAUSSOS, tipodoc, 6); iva_query.add(IVA_CAUSSOS, tipodoc, 6);
else else
iva_query.add(IVA_CAUSSOS, mov_i.catdoc(categorie_doc())->caus_sost(), 6); if (catdoc != nullptr)
iva_query.add(IVA_CAUSSOS, catdoc->caus_sost(), 6);
} }
else else
iva_query.add(IVA_CAUSSOS, mov_i.catdoc(categorie_doc())->caus_sost(), 6); if (catdoc != nullptr)
iva_query.add(IVA_CAUSSOS, catdoc->caus_sost(), 6);
} }
iva_query.add(IVA_NUMDOC, mov_i.numdoc(), 20); iva_query.add(IVA_NUMDOC, mov_i.numdoc(), 20);
iva_query.add(IVA_DATADOC, datadoc); iva_query.add(IVA_DATADOC, datadoc);
@ -1171,15 +1186,9 @@ bool TEstrazione::estrazione_iva(bool escluso)
iva_query.add(IVA_NPROT, mov.get(MOV_PROTIVA), 20); iva_query.add(IVA_NPROT, mov.get(MOV_PROTIVA), 20);
iva_query.add(IVA_DATPROT, datareg); iva_query.add(IVA_DATPROT, datareg);
/*if(is_autofattura(mov)) if (catdoc != nullptr)
{ iva_query.add(IVA_CLASDOC, catdoc->class_sost(), 10);
iva_query.add(IVA_FORNOR, "");
iva_query.add(IVA_REGOR, "");
iva_query.add(IVA_NUMOR, N ORI);
iva_query.add(IVA_DATAOR, TDate(20010101));
}*/
iva_query.add(IVA_CLASDOC, mov_i.catdoc(categorie_doc())->class_sost(), 10);
iva_query.add(IVA_NOMFD, mov_i.nomefilecart().name(), 100); iva_query.add(IVA_NOMFD, mov_i.nomefilecart().name(), 100);
// Load annessi... // Load annessi...

View File

@ -33,5 +33,6 @@
#define CAU_RILFTEMRI "RILFTEMRI" #define CAU_RILFTEMRI "RILFTEMRI"
#define CAU_DATAREGPR "DATAREGPR" #define CAU_DATAREGPR "DATAREGPR"
#define CAU_TIPODOCSDI "TIPODOCSDI" #define CAU_TIPODOCSDI "TIPODOCSDI"
#define CAU_ESCLUDIARC "ESCLUDIARC"
#endif #endif