Patch level : 12.0 750

Files correlati     : cg2100, fp0400
Commento            :
- Per prima nota: aggiunto controllo esistenza programma fp
- Migliorato controllo corrispondenza documento in FPPRO
- Aggiunto controllo se già registrato in FPPRO
- Per monitor passive: aggiunte colonne per registrazione contabile
This commit is contained in:
Simone Palacino 2019-03-27 14:53:22 +01:00
parent 979dec06f4
commit 06c0588356
4 changed files with 56 additions and 27 deletions

View File

@ -2283,10 +2283,10 @@ void TPrimanota_application::mask2ini(const TMask& msk, TConfig& ini)
bool TPrimanota_application::save_fppro() const
{
const KEY last = curr_mask().last_key();
if (last == K_ESC || last == K_QUIT || last == K_F9) // Salto se sto uscendo
if (last == K_ESC || last == K_QUIT || last == K_F9 || last == K_INS) // Salto se sto uscendo
return true;
// Provo a vedere se hanno l'FP: se c'è l'indirizzo controllo che non sia F8 se non c'è non hanno l'FP
if (fp_settings().get_db_indirizzo().empty() || fp_settings().is_f8())
if (!fexist("fp0.exe") || fp_settings().get_db_indirizzo().empty() || fp_settings().is_f8())
return true; // Salto il salvataggio in FPPRO
TMask& msk = curr_mask();
@ -2332,13 +2332,20 @@ bool TPrimanota_application::save_fppro() const
"JOIN PAA2700F\n" << "ON P2_KEYPRGINVIO = PQ_KEYPRGINVIO AND P2_KEYHEADERFATT = PQ_KEYHEADERFATT AND P2_KEYBODYFATT = PQ_KEYBODYFATT\n" <<
"WHERE " << id_fornitore << " AND PZ_DATA = \'" << data_documento.date2ansi() << "\' AND PQ_IMPTOTDOC = \'" << tot_doc << "\' AND PZ_NUMERO = \'" << (!numero_docext.empty() ? numero_docext : numero_doc) << "\' ;";
fp_db().sq_set_exec(query);
const TDate& dataoraric = fp_db().sq_get_date("P1_DATAORARIC"); // Devo controllare che la data operazione sia maggiore della data ric
if (dataoraric.empty())
const int n = fp_db().sq_items();
if (n != 1)
{
message_box("Attenzione non è stato possibile indentificare\nil documento con una fattura in FPPRO");
message_box("Attenzione non è stato possibile indentificare\nil documento con una specifica fattura in FPPRO");
return false;
}
const int numreg = fp_db().sq_get_int("PZ_NUMREGCONT");
if (numreg != 0)
{
error_box(TString("Il documento ") << data_documento.year() << " / " << numero_doc << " è già stato inserito con la registrazione numero " << numreg << "\nSalvataggio in FPPRO impossibile.");
return false;
}
const TString& dataoraric = fp_db().sq_get("P1_DATAORARIC"); // Devo controllare che la data operazione sia maggiore della data ric
if(data_operazione < TDate(dataoraric))
{
error_box("Attenzione non è possibile registrare una fattura\ncon data operazione minore della data di ricezione.");

View File

@ -108,7 +108,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], PQ_IMPTOTDOC AS [TOT_DOC], P2_ANADENOMIN AS [RAG_SOC], P2_ANANOME AS NOME, " <<
"P7_DATA AS [DATA_DOC], PQ_IMPTOTDOC AS [TOT_DOC], PZ_NUMREGCONT AS NUMREGCONT, PZ_DATAREGCONT AS DATAREGCONT, P2_ANADENOMIN AS [RAG_SOC], P2_ANANOME AS NOME, " <<
"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_TIPOPROT AS [TIPO_PROT], PZ_NUMPROT AS [NUM_PROT], PZ_ANNOPROT AS [ANNO_PROT], PZ_TIPOCF AS [TIPO_CF], PZ_CLIFOR AS [COD_CLIFOR]\n" <<
@ -120,7 +120,7 @@ void TPassive_mask::fill()
"LEFT JOIN PAA3200F PAA32 ON P1_KEYPRGINVIO = PU_KEYPRGINVIO and P1_KEYHEADERFATT = PU_KEYHEADERFATT and P1_KEYBODYFATT = PU_KEYBODYFATT\n" <<
"LEFT JOIN FPPRO00F FPPRO ON P1_KEYPRGINVIO = PZ_KEYPRGINVIO and P1_KEYHEADERFATT = PZ_KEYHEADERFATT and P1_KEYBODYFATT = PZ_KEYBODYFATT\n" <<
"WHERE P7_DATA >= \'" << dal.date2ansi() << "\' AND P7_DATA <= \'" << al.date2ansi() << "\'" << prots_query << "\n" <<
"GROUP BY YEAR(P7_DATA), P7_TIPODOC, P7_NUMERO, P7_DATA, PQ_IMPTOTDOC, P2_ANADENOMIN, P2_ANANOME, P2_ANACOGNOME, P2_FISCIVACOD, P2_CODFISCALE, P2_FISCIVAPAESE,\n" <<
"GROUP BY YEAR(P7_DATA), P7_TIPODOC, P7_NUMERO, P7_DATA, 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\n" <<
"ORDER BY PZ_ANNOPROT DESC, PZ_TIPOPROT ASC, PZ_NUMPROT DESC";
fp_db().sq_set_exec(query, false);
@ -170,8 +170,9 @@ void TPassive_mask::aggiungi_riga(TLocalisamfile& clifo, TSheet_field& sf, TShee
const TString paa_piva = fp_db().sq_get("P_IVA");
const TString paa_codpaese = fp_db().sq_get("COD_PAESE");
const TString paa_codsdi = fp_db().sq_get("COD_SDI");
TString prot = fp_db().sq_get("TIPO_PROT");
TString filter_elab = get(F_FATTSEL);
const TString prot = fp_db().sq_get("TIPO_PROT");
const TDate dataregcont = fp_db().sq_get_date("DATAREGCONT");
const TString filter_elab = get(F_FATTSEL);
clifo.zero();
clifo.put(CLI_TIPOCF, 'F');
@ -199,6 +200,11 @@ void TPassive_mask::aggiungi_riga(TLocalisamfile& clifo, TSheet_field& sf, TShee
else
row.add("");
row.add(fp_db().sq_get("NUMREGCONT"));
if(dataregcont == TDate("20010101"))
row.add("");
else
row.add(dataregcont);
// Valorizzo le colonne rimanenti o la tabella degli errori
if (forn_code >= 0)
{

View File

@ -20,16 +20,18 @@
#define S_DATADOC 105
#define S_TOTDOC 106
#define S_FPPRO 107
#define S_FORNITORE 108
#define S_RAGSOC 109
#define S_STATOPAIV 110
#define S_PARIVA 111
#define S_CODFISC 112
#define S_ATTACH 113
#define S_CODSDI 114
#define S_RAGXML 115
#define S_NPROT 116
#define S_PROKEY 117
#define S_NUMREGCONT 108
#define S_DATAREGCONT 109
#define S_FORNITORE 110
#define S_RAGSOC 111
#define S_STATOPAIV 112
#define S_PARIVA 113
#define S_CODFISC 114
#define S_ATTACH 115
#define S_CODSDI 116
#define S_RAGXML 117
#define S_NPROT 118
#define S_PROKEY 119
#define F_ERR 301

View File

@ -74,16 +74,18 @@ BEGIN
ITEM ""
ITEM "Anno"
ITEM "Tipo Doc.\nSDI@6"
ITEM "Numero\nDocumento@20"
ITEM "Data\nDoc.@10"
ITEM "Totale\nDocumento"
ITEM "Numero\nDocumento@18"
ITEM "Data\nDoc.@8"
ITEM "Totale\nDocumento@12"
ITEM "Salvato in\nFP PRO@7"
ITEM "Fornitore"
ITEM "Num. Registrazione\ncontabile@12"
ITEM "Data Registrazione\ncontabile@12"
ITEM "Fornitore@7"
ITEM "Ragione Sociale@50"
ITEM "Stato\nP.IVA@4"
ITEM "Partita IVA@16"
ITEM "Partita IVA@10"
ITEM "Cod. Fiscale@16"
ITEM "Allegati"
ITEM "Allegati@7"
ITEM "Codice\ndestinatario@8"
ITEM "Ragione Sociale (XML)@50"
ITEM "Numero Protocollo (in entrata)\n[anno-tipo prot/progressivo]@22"
@ -199,6 +201,18 @@ BEGIN
FLAGS "D"
END
NUMBER S_NUMREGCONT 6 0
BEGIN
PROMPT 1 3 "Num. Registrazione contabile"
FLAGS "D"
END
DATE S_DATAREGCONT
BEGIN
PROMPT 1 3 "Data Registrazione contabile"
FLAGS "D"
END
NUMBER S_FORNITORE 6
BEGIN
PROMPT 1 4 "Fornitore "