Merge branch 'R12.00.1136' of http://10.65.20.33/sirio/CAMPO/campo into R12.00.1136

This commit is contained in:
Alessandro Bonazzi 2022-10-23 22:51:09 +02:00
commit 2be84dd6ea
30 changed files with 321 additions and 26 deletions

4
cd/test/ba1208.txt Normal file
View File

@ -0,0 +1,4 @@
recdesc\f181.trr
recdesc\f181.dir
Modificato il file DOCF9 negli archivi (f181)

32
cd/test/ba1208a.ini Normal file
View File

@ -0,0 +1,32 @@
[Main]
Demo=0
[ba0]
File(548) = recdesc\f181.dir|X
File(549) = recdesc\f181.trr|X
Patch = 1208
Versione = 21511200
[ba99]
Kill(0) = batbsce.txt|x
Kill(1) = wxmsw240.dll|x
Kill(2) = bastcms.rep|x
Kill(3) = bastcms.msk|x
Kill(4) = bastfsc.msk|x
Kill(5) = bastfsc.rep|x
Kill(6) = bastuue.msk|x
Kill(7) = bastuue.rep|x
[ba]
Data = 18-10-2022
Descrizione = Base
Dischi = 1
Moduli = sy
OEM =
Patch = 1208
PostProcess = bainst -0 BA
PreProcess =
Prezzo(1) =
Prezzo(2) =
Versione = 21511200

BIN
cd/test/ba1208a1.zip Normal file

Binary file not shown.

4
cd/test/ba1210.txt Normal file
View File

@ -0,0 +1,4 @@
recdesc\f26.trr
recdesc\f26.dir
Aggiunto il campo booleano "ESCLUDIARC" per flaggare una causale da escludere dall'archiviazione

32
cd/test/ba1210a.ini Normal file
View File

@ -0,0 +1,32 @@
[Main]
Demo=0
[ba0]
File(290) = recdesc\f26.dir|X
File(291) = recdesc\f26.trr|X
Patch = 1210
Versione = 21511200
[ba99]
Kill(0) = wxmsw240.dll|x
Kill(1) = batbsce.txt|x
Kill(2) = bastfsc.rep|x
Kill(3) = bastfsc.msk|x
Kill(4) = bastcms.msk|x
Kill(5) = bastcms.rep|x
Kill(6) = bastuue.rep|x
Kill(7) = bastuue.msk|x
[ba]
Data = 19-10-2022
Descrizione = Base
Dischi = 1
Moduli = sy
OEM =
Patch = 1210
PostProcess = bainst -0 BA
PreProcess =
Prezzo(1) =
Prezzo(2) =
Versione = 21511200

BIN
cd/test/ba1210a1.zip Normal file

Binary file not shown.

4
cd/test/cg1210.txt Normal file
View File

@ -0,0 +1,4 @@
cg0.exe
cg0500a.msk
Aggunto il flag "Escludi da Archiviazione Sostitutiva" nella videata delle causali

99
cd/test/cg1210a.ini Normal file
View File

@ -0,0 +1,99 @@
[Main]
Demo=0
[cg0]
File(0) = cg0.exe|X
File(5) = cg0500a.msk|X
Patch = 1210
Versione = 21511200
[cg99]
Kill(0) = batbzon.msk|x
Kill(1) = bastdpn.rep|x
Kill(2) = bastzon.msk|x
Kill(3) = batbinl.msk|x
Kill(4) = bastcco.rep|x
Kill(5) = bastntb.rep|x
Kill(6) = batblbu.msk|x
Kill(7) = batbscc.msk|x
Kill(8) = batbpor.msk|x
Kill(9) = bastesc.msk|x
Kill(10) = batbcve.msk|x
Kill(11) = bastvet.rep|x
Kill(12) = batbver.msk|x
Kill(13) = batbind.msk|x
Kill(14) = bastcam.rep|x
Kill(15) = bastvet.msk|x
Kill(16) = batbleg.msk|x
Kill(17) = bastpdb.msk|x
Kill(18) = bastreg.msk|x
Kill(19) = bastnot.rep|x
Kill(20) = bastcco.msk|x
Kill(21) = batbnot.msk|x
Kill(22) = batblia.msk|x
Kill(23) = batbesc.msk|x
Kill(24) = bastnot.msk|x
Kill(25) = batbdel.msk|x
Kill(26) = batbvet.msk|x
Kill(27) = bastcfi.msk|x
Kill(28) = bastpor.msk|x
Kill(29) = bastndo.msk|x
Kill(30) = batbcam.msk|x
Kill(31) = bastleg.msk|x
Kill(32) = bastmsp.rep|x
Kill(33) = bastivd.rep|x
Kill(34) = bastpdb.rep|x
Kill(35) = bastcam.msk|x
Kill(36) = bastdpn.msk|x
Kill(37) = bastscc.msk|x
Kill(38) = batbntb.msk|x
Kill(39) = bastver.rep|x
Kill(40) = batbcfi.msk|x
Kill(41) = batbmsp.msk|x
Kill(42) = batblia.msk|x
Kill(43) = bastver.msk|x
Kill(44) = bastndo.rep|x
Kill(45) = batbndo.msk|x
Kill(46) = bastcve.msk|x
Kill(47) = batbarb.msk|x
Kill(48) = batbtra.msk|x
Kill(49) = bastarb.rep|x
Kill(50) = batbins.msk|x
Kill(51) = bastntb.msk|x
Kill(52) = bastmsp.msk|x
Kill(53) = bastscc.rep|x
Kill(54) = batbreg.msk|x
Kill(55) = batbivd.msk|x
Kill(56) = bastpor.rep|x
Kill(57) = batbpdb.msk|x
Kill(58) = batbcco.msk|x
Kill(59) = bastleg.rep|x
Kill(60) = cgtbcon.msk|x
Kill(61) = cg2fppro.msk|x
Kill(62) = batbdpn.msk|x
Kill(63) = bastesc.rep|x
Kill(64) = bastreg.rep|x
Kill(65) = bastcfi.rep|x
Kill(66) = batbtit.msk|x
Kill(67) = bastarb.msk|x
Kill(68) = bastzon.rep|x
Kill(69) = bastcve.rep|x
Kill(70) = bastivd.msk|x
[cg]
Data = 19-10-2022
Descrizione = Contabilita' Generale
Dischi = 1
Edit_19 = cg0 -0
Edit_20 = cg0 -1
Edit_26 = cg0 -4
Edit_5 = cg0 -5
Moduli = ba
OEM =
Patch = 1210
PostProcess = bainst -0 CG
PreProcess =
Prezzo(1) =
Prezzo(2) =
Versione = 21511200

BIN
cd/test/cg1210a1.zip Normal file

Binary file not shown.

5
cd/test/f91208.txt Normal file
View File

@ -0,0 +1,5 @@
f90.exe
f90300a.msk
f90300b.msk
Modifiche al programma dei documenti cartacei

21
cd/test/f91208a.ini Normal file
View File

@ -0,0 +1,21 @@
[Main]
Demo=0
[f90]
File(0) = f90.exe|X
File(6) = f90300a.msk|X
File(7) = f90300b.msk|X
Patch = 1208
Versione = 21511200
[f9]
Data = 18-10-2022
Descrizione = Archiviazione Sostitutiva
Dischi = 1
Moduli = fp
OEM =
Patch = 1208
PostProcess =
PreProcess =
Versione = 21511200

BIN
cd/test/f91208a1.zip Normal file

Binary file not shown.

3
cd/test/f91210.txt Normal file
View File

@ -0,0 +1,3 @@
f90.exe
Il giro dell'archiviazione sostitutiva ora ignora le causali con flag "Escludi da archiviazione sostitutiva" attivo

19
cd/test/f91210a.ini Normal file
View File

@ -0,0 +1,19 @@
[Main]
Demo=0
[f90]
File(0) = f90.exe|X
Patch = 1210
Versione = 21511200
[f9]
Data = 19-10-2022
Descrizione = Archiviazione Sostitutiva
Dischi = 1
Moduli = fp
OEM =
Patch = 1210
PostProcess =
PreProcess =
Versione = 21511200

BIN
cd/test/f91210a1.zip Normal file

Binary file not shown.

4
cd/test/fp1208.txt Normal file
View File

@ -0,0 +1,4 @@
fp0.exe
fp0300a.msk
Rilascio dell "Invio fatture in valuta"

23
cd/test/fp1208a.ini Normal file
View File

@ -0,0 +1,23 @@
[Main]
Demo=0
[fp0]
File(0) = fp0.exe|X
File(3) = fp0300a.msk|X
Patch = 1208
Versione = 21511200
[fp99]
Kill(0) = fppro.msk|x
[fp]
Data = 07-10-2022
Descrizione = Fattura Elettronica
Dischi = 1
Moduli = cg,ve
OEM =
Patch = 1208
PostProcess =
PreProcess =
Versione = 21511200

BIN
cd/test/fp1208a1.zip Normal file

Binary file not shown.

3
cd/test/tp1210.txt Normal file
View File

@ -0,0 +1,3 @@
tp0.exe
Ricompilato il traferimento Pack con le dll di Release

21
cd/test/tp1210a.ini Normal file
View File

@ -0,0 +1,21 @@
[Main]
Demo=0
[tp0]
File(0) = tp0.exe|X
Patch = 1210
Versione = 21511200
[tp]
Data = 19-10-2022
Descrizione = Trasferimento PACK
Dischi = 1
Moduli = ve
OEM =
Patch = 1210
PostProcess =
PreProcess =
Prezzo(1) =
Prezzo(2) =
Versione = 21511200

BIN
cd/test/tp1210a1.zip Normal file

Binary file not shown.

View File

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

View File

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

View File

@ -336,6 +336,7 @@ public:
int regime_speciale() const;
bool corrispettivi() const { return _corrisp; }
bool esclusione_allegati() const;
bool escludi2archiviazione() const { return _rec.get_bool(CAU_ESCLUDIARC); }
// bill deve essere il conto di ricavo
bool IVA2bill(const TCodiceIVA& iva, TBill& bill) const;
@ -415,6 +416,8 @@ public: // TObject
bool denominatore_pro_rata() const { return get_bool("B7"); }
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 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

View File

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

View File

@ -1,5 +1,5 @@
26
29
30
CODCAUS|1|3|0|Codice causale
DESCR|1|50|0|Descrizione causale
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
DATAREGPR|8|1|0|Registrazione rilevamento fatture da ricevere/emettere a fine esercizio
TIPODOCSDI|1|4|0|Tipo documento Agenzia delle Entrate
ESCLUDIARC|8|1|0|Flag per escludere la causale dall'archiviazione sostitutiva
2
CODCAUS|
UPPER(DESCR)|X

View File

@ -129,7 +129,7 @@ void set_dataendreg(const TString& date);
void set_periodprec(bool flag);
// Controlla se il "cod_caus" e' per Fatture d'acquisto o Note Credito d'Acquisto
bool check_causale(const TString& cod_caus, int year, bool acq = true);
bool check_causale(const TString& cod_caus, int year=2022, bool acq = true);
// Controlla se il "cod_caus" ha come "tipo_doc" FA o NC (di acquisto)
bool check_causale(const TString& cod_caus, int year, const TString& tipo_doc, bool acq = true);
bool check_caus_has_rit(const TString& cod_caus, int year = 0);

View File

@ -1094,10 +1094,18 @@ bool TEstrazione::estrazione_iva(bool escluso)
FOR_EACH_ARRAY_ITEM(_movs, r, obj)
{
TMovimento_estr & mov_i = (TMovimento_estr &)*obj;
const TRectype& mov = cache().get(LF_MOV, mov_i.numreg());
const TCausale caus(mov.get(MOV_CODCAUS), mov.get_date(MOV_DATAREG).year());
if (bar.add_status() && mov_i.estratto())
bool harambe = caus.escludi2archiviazione();
if (caus.escludi2archiviazione()) {
int siamodentro = 0;
}
if (bar.add_status() && mov_i.estratto() && !caus.escludi2archiviazione())
{
const TRectype& mov = cache().get(LF_MOV, mov_i.numreg());
TToken_string key = mov.get(MOV_TIPO);
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_PIVA, paiv, 28);
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));
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 TString& codnum = mov.get(MOV_DCODNUM);
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);
}
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
{
TToken_string key(mov.get((MOV_KEYFPPRO)), ';');
@ -1159,10 +1172,12 @@ bool TEstrazione::estrazione_iva(bool escluso)
if(tipodoc.full())
iva_query.add(IVA_CAUSSOS, tipodoc, 6);
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
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_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_DATPROT, datareg);
/*if(is_autofattura(mov))
{
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);
if (catdoc != nullptr)
iva_query.add(IVA_CLASDOC, catdoc->class_sost(), 10);
iva_query.add(IVA_NOMFD, mov_i.nomefilecart().name(), 100);
// Load annessi...

View File

@ -672,10 +672,10 @@ int TPassive_mask::prepara_contab() const
const TString codcaus(get_codcaus(sf.get_str_row_cell(row, S_TIPODOCSDI), sf.get_long_row_cell(row, S_FORNITORE)));
TString tipodoc(sf.get_str_row_cell(row, S_TIPODOCSDI));
if (tipodoc == "TD01" && !check_causale(codcaus, "FA", true))
if (tipodoc == "TD01" && !check_causale(codcaus, S_ANNO, "FA", true))
if (!yesno_box("Attenzione, per un documento di tipo TD01 e' stata selezionata \nuna causale diversa da Fattura d'Acquisto.\nProcedere lo stesso con l'esportazione?"))
continue;
if (tipodoc == "TD04" && !check_causale(codcaus, "NC", true))
if (tipodoc == "TD04" && !check_causale(codcaus, S_ANNO, "NC", true))
if (!yesno_box("Attenzione, per un documento di tipo TD04 e' stata selezionata \nuna causale diversa da Nota Credito di Acquisto.\nProcedere lo stesso con l'esportazione?"))
continue;
n_sel++;
@ -708,7 +708,7 @@ int TPassive_mask::prepara_contab() const
contab_ini.set(MOV_DATADOC, datadoc);
contab_ini.set(MOV_NUMDOCEXT, sf.get_str_row_cell(row, S_NDOC));
contab_ini.set(MOV_NUMDOC, TString(sf.get_str_row_cell(row, S_NDOC)).right(7));
contab_ini.set(MOV_DATADOCSDI, sf.get_date_row_cell(row, S_DATADOCR));
contab_ini.set(MOV_DATADOCSDI, sf.get_date_row_cell(row, S_DATADOC));
contab_ini.set(MOV_IDDOCSDI, sf.get_str_row_cell(row, S_NDOC));
contab_ini.set(MOV_DATADOCSDI, sf.get_date_row_cell(row, S_DATADOC));
if (get_bool(F_PERIODPREC))
@ -777,7 +777,7 @@ int TPassive_mask::prepara_contab() const
}
}
if (check_causale(codcaus, "NC", true) && is_tipomov_nc(codcaus))
if (check_causale(codcaus, S_ANNO, "NC", true) && is_tipomov_nc(codcaus))
{
contab_ini.set_paragraph(LF_MOV); // Aggiungo i riferimenti al documento se nota credito: GESTISCO DA CG PER IMPOSTARE PARTITE/SCADENZIARIO
where_q.cut(0) << "WHERE PD_KEYPRGINVIO = '" << keys.get(0) << "'";

View File

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