Patch level : 12.0

Files correlati     : fp, cg

Commento:

Sistemato il recupero del numero e data documento da FPPRO per le integrazioni e i relativi campi in prima nota
This commit is contained in:
smen 2022-06-14 17:24:26 +02:00
parent 528d1e4e98
commit 1bf0d44f43
10 changed files with 33 additions and 78 deletions

View File

@ -1011,7 +1011,8 @@ void TPrimanota_application::f1_init(TMask& m, const bool fe_enabled, const bool
m.field(F_DATADOCSDI).show(fe_enabled && reverse_charge);
m.field(F_COLFPPRO).show(fe_enabled);
m.field(DLG_LINK).enable(fe_enabled);
m.set(F_COLFPPRO, fe_enabled && f1_linked, 0x3);
bool int_td16 = reverse_charge && app().causale().reg().iva() == iva_vendite && cache().get(LF_MOV, _rel->lfile().get(MOV_MOVCOLL), MOV_KEYFPPRO).full();
m.set(F_COLFPPRO, fe_enabled && (f1_linked || int_td16) ? "X" : "", 0x3);
}
void TPrimanota_application::init_modify_mode(TMask& m)

View File

@ -245,8 +245,6 @@
#define F_CODFISCALES 111
#define F_TIPOPROTS 112
#define F_PROGRESSS 113
#define F_IDDOCR 114
#define F_DATADOCR 115
#define F_KEYFPPROS 116
#define F_KEYFPPROS 114
#endif

View File

@ -575,8 +575,8 @@ BOOLEAN F_COLFPPRO
BEGIN
PROMPT 1 19 "Registrazione collegata a FPPRO"
FLAGS "DG"
MESSAGE TRUE DISABLE, F_IDDOCSDI|DISABLE F_DATADOCSDI
MESSAGE FALSE ENABLE, F_IDDOCSDI|ENABLE F_DATADOCSDI
MESSAGE TRUE DISABLE, F_IDDOCSDI|DISABLE,F_DATADOCSDI
MESSAGE FALSE ENABLE, F_IDDOCSDI|ENABLE,F_DATADOCSDI
END
STRING F_PROKEY 80

View File

@ -156,8 +156,6 @@ BEGIN
ITEM "Cod. Fiscale@14"
ITEM "Tipo Protocollo\nin ingresso@10"
ITEM "Progressivo\ndi ingresso@10"
ITEM "Id@20"
ITEM "Data fattura"
ITEM "Chiave FPPRO@40"
END
@ -277,18 +275,6 @@ BEGIN
FLAGS "D"
END
STRING F_IDDOCR 20
BEGIN
PROMPT 1 11 "Id "
FLAGS "H"
END
DATE F_DATADOCR
BEGIN
PROMPT 1 12 "DATA"
FLAGS "H"
END
STRING F_KEYFPPROS 80
BEGIN
PROMPT 1 13 "CHIAVE FPPRO"

View File

@ -4085,8 +4085,6 @@ void TPrimanota_application::riporta_dati_f1(TMask& cg_msk, TPro_msk & msk)
cg_msk.set(F_NUMDOCEXT, msk.get_str_numdoc());
cg_msk.set(F_NUMDOC, format("%-7ld", msk.get_numdoc()));
cg_msk.set(F_DATADOC, msk.get_datadoc());
cg_msk.set(F_IDDOCSDI, msk.get_iddocr());
cg_msk.set(F_DATADOCSDI, msk.get_datadocr());
cg_msk.disable(F_IDDOCSDI);
cg_msk.disable(F_DATADOCSDI);
}
@ -4265,9 +4263,6 @@ bool TPro_msk::load_fppro_mask(TMask & msk)
sf.set_row_cell(F_CODFISCALES, fp_db().sq_get("P2_CODFISCALE"), r);
sf.set_row_cell(F_TIPOPROTS, fp_db().sq_get("PZ_TIPOPROT"), r);
sf.set_row_cell(F_PROGRESSS, fp_db().sq_get("PZ_NUMPROT"), r);
sf.set_row_cell(F_IDDOCR, fp_db().sq_get("PZ_IDDOCR"), r);
sf.set_row_cell(F_DATADOCR, fp_db().sq_get_date("PZ_DATADOCR"), r);
sf.set_row_cell(F_KEYFPPROS, keys, r);
}
}
@ -4416,8 +4411,6 @@ void TPro_msk::set_doc(TSheet_field & s, int nrow)
{
_numero = s.get_long_row_cell(nrow, F_NUMEROS);
_str_numero = s.get_str_row_cell(nrow, F_NUMEROS);
_iddocr = s.get_str_row_cell(nrow, F_IDDOCR);
_datadocr = s.get_date_row_cell(nrow, F_DATADOCR);
_datadoc = s.get_date_row_cell(nrow, F_DATAS);
_totdoc = abs(s.get_real_row_cell(nrow, F_IMPTOTDOCS));
_ritenute = s.get_real_row_cell(nrow, F_RITENUTE);

View File

@ -57,8 +57,6 @@ class TPro_msk : public TAutomask
TString_array _scadenze;
bool _riporta;
TString _str_numero;
TString _iddocr;
TDate _datadocr;
// Non permette la selezione multipla
void fppro_selfatt() const;
@ -82,8 +80,6 @@ public:
const TString_array& get_righeiva() const { return _righe_iva; }
const TProtocollo& get_protocollo() const { return _protfppro; }
const TString_array& get_scadenze() const { return _scadenze; }
const TString & get_iddocr() const { return _iddocr; }
const TDate & get_datadocr() const { return _datadocr; }
real get_tot_imp_riva() ;

View File

@ -203,7 +203,7 @@ void TPassive_mask::fill()
elenco_prots_sel(prots_query);
query << "SELECT PZ_TIPOPROT AS TIPO_PROT, YEAR(P7_DATA) AS ANNO, P7_TIPODOC AS [TIPO_SDI], P7_NUMERO AS [NUM_DOC], " <<
"P7_DATA AS [DATA_DOC], PZ_DATAORARIC AS [DATA_RIC], PQ_IMPTOTDOC AS [TOT_DOC], PZ_NUMREGCONT AS NUMREGCONT, PZ_DATAREGCONT AS DATAREGCONT, P2_ANADENOMIN AS [RAG_SOC], P2_ANANOME AS NOME, PZ_IDDOCR, PZ_DATADOCR, " <<
"P7_DATA AS [DATA_DOC], PZ_DATAORARIC AS [DATA_RIC], PQ_IMPTOTDOC AS [TOT_DOC], PZ_NUMREGCONT AS NUMREGCONT, PZ_DATAREGCONT AS DATAREGCONT, P2_ANADENOMIN AS [RAG_SOC], P2_ANANOME AS NOME, PZ_NUMERO, PZ_DATA, " <<
"P2_ANACOGNOME AS COGNOME, P2_FISCIVACOD AS [P_IVA], P2_CODFISCALE AS [COD_FISC], P2_FISCIVAPAESE AS [COD_PAESE],\n" <<
"COUNT(PP_ATTACHMENT) AS ATTACHMENT, P1_CODDEST AS [COD_SDI], PU_PEC AS PEC, P1_KEYPRGINVIO AS KEYPROG, P1_KEYHEADERFATT AS KEYHEAD, P1_KEYBODYFATT AS KEYFATT, " <<
"PZ_NUMPROT AS [NUM_PROT], PZ_ANNOPROT AS [ANNO_PROT], PZ_TIPOCF AS [TIPO_CF], PZ_CLIFOR AS [COD_CLIFOR]\n" <<
@ -216,7 +216,8 @@ void TPassive_mask::fill()
"LEFT JOIN FPPRO00F FPPRO ON P1_KEYPRGINVIO = PZ_KEYPRGINVIO and P1_KEYHEADERFATT = PZ_KEYHEADERFATT and P1_KEYBODYFATT = PZ_KEYBODYFATT\n" <<
"WHERE PZ_DATAORARIC >= \'" << dal.date2ansi() << "\' AND PZ_DATAORARIC < \'" << (al+(long)1).date2ansi() << "\'" << prots_query << "\n" <<
"GROUP BY YEAR(P7_DATA), P7_TIPODOC, P7_NUMERO, P7_DATA, PZ_DATAORARIC, PQ_IMPTOTDOC, PZ_NUMREGCONT, PZ_DATAREGCONT, P2_ANADENOMIN, P2_ANANOME, P2_ANACOGNOME, P2_FISCIVACOD, P2_CODFISCALE, P2_FISCIVAPAESE,\n" <<
"P1_CODDEST, PU_PEC, P1_KEYPRGINVIO, P1_KEYHEADERFATT, P1_KEYBODYFATT, PZ_TIPOPROT, PZ_NUMPROT, PZ_ANNOPROT, PZ_TIPOCF, PZ_CLIFOR, PZ_IDDOCR, PZ_DATADOCR\n" <<
"P1_CODDEST, PU_PEC, P1_KEYPRGINVIO, P1_KEYHEADERFATT, P1_KEYBODYFATT, PZ_TIPOPROT, PZ_NUMPROT, PZ_ANNOPROT, PZ_TIPOCF, PZ_CLIFOR, PZ_NUMERO, PZ_DATA\n" <<
"ORDER BY " << (ordin == "D"? "P7_DATA" : "PZ_DATAORARIC") << " " << (verso_ord == "C"? "ASC" : "DESC");
fp_db().sq_set_exec(query, false);
@ -356,8 +357,9 @@ void TPassive_mask::aggiungi_riga(TLocalisamfile& clifo, TSheet_field& sf, TShee
sf.set_row_cell(S_ATTACH, fp_db().sq_get("ATTACHMENT")!="0", row);
sf.set_row_cell(S_RAGXML, denom, row);
sf.set_row_cell(S_NPROT, TProtocollo(fp_db().sq_get_int("ANNO_PROT"), fp_db().sq_get("TIPO_PROT"), fp_db().sq_get("NUM_PROT")).get_prot_str(), row);
sf.set_row_cell(S_IDDOCR, fp_db().sq_get("PZ_IDDOCR"), row);
sf.set_row_cell(S_DATADOCR, fp_db().sq_get_date("PZ_DATADOCR"), row);
sf.set_row_cell(S_NDOC, fp_db().sq_get("PZ_NUMERO"), row);
sf.set_row_cell(S_DATADOC, fp_db().sq_get_date("PZ_DATA"), row);
sf.set_row_cell(S_PROKEY, keys, row);
}
@ -697,11 +699,12 @@ int TPassive_mask::prepara_contab() const
contab_ini.set(MOV_DATAREG, datareg);
contab_ini.set(MOV_DATACOMP, datareg);
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_IDDOCSDI, sf.get_str_row_cell(row, S_IDDOCR));
contab_ini.set(MOV_DATADOCSDI, sf.get_date_row_cell(row, S_DATADOCR));
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))
if (datadoc.year() == datareg.year() && datadoc.month() < datareg.month())
contab_ini.set(MOV_MESELIQ, "X");
@ -735,6 +738,7 @@ int TPassive_mask::prepara_contab() const
contab_ini.set_paragraph(LF_RMOVIVA, i); // [25]
contab_ini.set("IMPONIBILE", abs(it->imponibile).string());
contab_ini.set("IMPOSTA", abs(it->imposta).string());
contab_ini.set("PERCIVA", it->aliquota.string());
contab_ini.set("NATURA", it->natura);
contab_ini.set("NRIGA", i);

View File

@ -37,8 +37,8 @@
#define S_ANNO 102
#define S_TIPODOCSDI 103
#define S_NDOC 104
#define S_DATARIC 105
#define S_DATADOC 106
#define S_DATADOC 105
#define S_DATARIC 106
#define S_TOTDOC 107
#define S_TOTRIT 108
#define S_FPPRO 109
@ -52,9 +52,7 @@
#define S_ATTACH 117
#define S_RAGXML 118
#define S_NPROT 119
#define S_IDDOCR 120
#define S_DATADOCR 121
#define S_PROKEY 122
#define S_PROKEY 120
#define F_ERR 301

View File

@ -299,26 +299,24 @@ SPREADSHEET F_DOCS -1 -1
BEGIN
PROMPT 0 4 ""
ITEM ""
ITEM "Anno"
ITEM "Tipo Doc.\nSDI@5"
ITEM "Numero\nDocumento@14"
ITEM "Anno"
ITEM "Tipo Doc.\nSDI@5"
ITEM "Numero\nDocumento@14"
ITEM "Data\nDoc.@8"
ITEM "Data\nRicezione@8"
ITEM "Data\nDoc.@8"
ITEM "Totale\nDocumento@7"
ITEM "Totale\nritenute@6"
ITEM "Fornitore\nassociato@6"
ITEM "Num. Regis.\ncontabile@8"
ITEM "Data Regis.\ncontabile@8"
ITEM "Fornitore@5"
ITEM "Ragione Sociale@40"
ITEM "Fornitore@5"
ITEM "Ragione Sociale@40"
ITEM "Stato\nP.IVA@4"
ITEM "Partita IVA@10"
ITEM "Partita IVA@10"
ITEM "Cod. Fiscale@12"
ITEM "Allegati@6"
ITEM "Allegati@6"
ITEM "Ragione Sociale (XML)@40"
ITEM "Numero Protocollo (in entrata)\n[anno-tipo prot/progressivo]@20"
ITEM "Id@20"
ITEM "Data fattura"
ITEM "Chiave Prot.@40"
END
@ -423,17 +421,18 @@ BEGIN
FLAGS "D"
END
DATE S_DATADOC
BEGIN
PROMPT 40 1 "Data Doc. "
FLAGS "D"
END
DATE S_DATARIC
BEGIN
PROMPT 20 1 "Data\nRicezione"
FLAGS "D"
END
DATE S_DATADOC
BEGIN
PROMPT 40 1 "Data Doc. "
FLAGS "D"
END
NUMBER S_TOTDOC 11 2
BEGIN
@ -576,18 +575,6 @@ BEGIN
FLAGS "D"
END
STRING S_IDDOCR 20
BEGIN
PROMPT 1 10 "Id"
FLAGS "D"
END
DATE S_DATADOCR
BEGIN
PROMPT 1 11 "Data fattura"
FLAGS "D"
END
STRING S_PROKEY 80
BEGIN
PROMPT 1 10 "db key"

View File

@ -544,14 +544,6 @@ void TMask_field::enable(
// @flag true | Abilita il campo (default)
// @flag false | Disabilita il campo
{
#ifdef DBG
if (dlg()==188) {
int i = 0;
}
#endif //
_flags.enabled = on;
}
@ -972,7 +964,7 @@ bool TOperable_field::is_kind_of(word cid) const
{ return cid == CLASS_OPERABLE_FIELD || TMask_field::is_kind_of(cid); }
void TOperable_field::enable(bool on)
{
{
TMask_field::enable(on);
if (_ctl) _ctl->enable(on);
if (mask().is_sheetmask())