Patch level : 12.0 752
Files correlati : cg2100, tsdb Commento : - Modificata maschera per selezionare fatture FPPRO - Modificata sq_get_date per problemi di compatibilità
This commit is contained in:
parent
1f3dccc389
commit
c3aebe7a62
3
exe/f23.dir
Normal file
3
exe/f23.dir
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
23
|
||||||
|
0
|
||||||
|
$mov|96166|96166|577|0|Movimenti di prima nota|NMOV||
|
68
exe/f23.trr
Normal file
68
exe/f23.trr
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
23
|
||||||
|
61
|
||||||
|
ANNOES|9|4|0|Codice esercizio
|
||||||
|
NUMREG|3|7|0|Numero di operazione
|
||||||
|
DATAREG|5|8|0|Data operazione
|
||||||
|
DATACOMP|5|8|0|Data competenza
|
||||||
|
DATADOC|5|8|0|Data documento
|
||||||
|
RITFATT|8|1|0|Fattura in ritardo
|
||||||
|
DATA74TER|5|8|0|Data per art. 74 ter
|
||||||
|
MESELIQ|2|2|0|Mese per liquidazione differita
|
||||||
|
NUMDOC|1|7|0|Numero documento
|
||||||
|
NUMDOCEXT|1|50|0|Numero documento esteso
|
||||||
|
TIPODOC|1|2|0|Tipo documento
|
||||||
|
CODCAUS|1|3|0|Codice causale
|
||||||
|
DESCR|1|50|0|Descrizione
|
||||||
|
TIPOMOV|1|1|0|Tipo movimento
|
||||||
|
ANNOIVA|2|4|0|Anno IVA
|
||||||
|
REG|1|3|0|Codice registro IVA
|
||||||
|
PROTIVA|3|6|0|Numero di protocollo IVA
|
||||||
|
UPROTIVA|3|6|0|Ultimo numero di protocollo IVA se diverso da PROTIVA
|
||||||
|
CODVAL|1|3|0|Codice valuta
|
||||||
|
DATACAM|5|8|0|Data del cambio
|
||||||
|
CAMBIO|4|15|6|Cambio della valuta
|
||||||
|
REGST|8|1|0|Stampato su registro IVA
|
||||||
|
STAMPATO|8|1|0|Stampato su giornale
|
||||||
|
NUMGIO|3|7|0|Numero operazione sul giornale
|
||||||
|
TIPO|1|1|0|Tipo <C>liente o <F>ornitore
|
||||||
|
CODCF|3|6|0|Codice
|
||||||
|
TOTDOC|4|18|3|Totale documento
|
||||||
|
TOTDOCVAL|4|18|3|Totale documento in valuta
|
||||||
|
RITFIS|4|18|3|Ritenute fiscali
|
||||||
|
RITSOC|4|18|3|Ritenute sociali
|
||||||
|
REVCHARGE|4|18|3|Reverse charge
|
||||||
|
PROVVIS|1|1|0|Tipo movimento (" " Normale, "P" Provvisorio cancellabile, "C" Provvisorio cespiti)
|
||||||
|
CODVALI|1|3|0|Codice valuta intra-comunitaria
|
||||||
|
CAMBIOI|4|15|6|Cambio della valuta intra-comunitaria
|
||||||
|
CORRLIRE|4|18|3|Corrispettivo in lire intra-comunitario
|
||||||
|
CORRVALUTA|4|18|3|Corrispettivo in valuta intra-comunitario
|
||||||
|
DATACOMPI|5|8|0|Data di competenza intra-comunitaria
|
||||||
|
OCFPI|1|16|0|Codice cliente / fornitore occasionale
|
||||||
|
CODPAG|1|4|0|Codice pagamento
|
||||||
|
INVIATO|8|1|0|Inviato ad altra contabilità
|
||||||
|
INVIVA|8|1|0|Inviata la parte IVA ad altra contabilita'
|
||||||
|
SCARCON|8|1|0|Scaricata la contabilitá
|
||||||
|
TNUMREG|3|7|0|Numero di registrazione temporaneo per ricezioni
|
||||||
|
TOCFP|1|16|0|Codice occasionale temporaneo per ricezioni
|
||||||
|
DPROVV|1|1|0|Documento originale PROVV
|
||||||
|
DANNO|2|4|0|Documento originale ANNO
|
||||||
|
DCODNUM|1|4|0|Documento originale CODNUM
|
||||||
|
DNDOC|3|7|0|Documento originale NDOC
|
||||||
|
DATAINC|5|8|0|Data di incasso per liquidazione differita
|
||||||
|
LIQDIFF|8|1|0|Flag di movimento a liquidazione differita
|
||||||
|
IVAXCASSA|8|1|0|Flag di movimento IVA per cassa
|
||||||
|
SPLITPAY|1|1|0|Flag di scissione pagamenti [_=Auto,S=Split,N=Normale]
|
||||||
|
NOLEGGIO|1|1|0|Tipo veicolo Auto, Camper, Altro, Diporto, aEreo
|
||||||
|
INVIOFE|5|8|0|Data invio definitivo dati rilevanti
|
||||||
|
CONTSEP|1|6|0|Contabilità separata
|
||||||
|
CFBOLLADOG|1|7|0|Codice fornitore a cui è riferita la bolla doganale
|
||||||
|
TFINVIO|7|1|0|Flag Invio Trasferimento Fatture
|
||||||
|
TFDATA|5|8|0|Data ultimo invio Trasferimento Fatture
|
||||||
|
IVALIQ|8|1|0|Iva per cassa liquidata completamente
|
||||||
|
KEYFPPRO|1|80|0|Chiavi dell'FPPRO [KEYPRGINVIO;KEYHEADERFATT;KEYBODYFATT]
|
||||||
|
PROGFPPRO|1|18|0|Numero protocollazione in ingresso FPPRO [yyyy-TIPOPROT/NUMPROT]
|
||||||
|
4
|
||||||
|
NUMREG|
|
||||||
|
DATAREG+NUMREG|X
|
||||||
|
TIPO+CODCF+DATAREG+NUMREG|X
|
||||||
|
REG+DATAREG+PROTIVA+DATAINC+DATA74TER+NUMREG|X
|
@ -58,7 +58,7 @@ TMask* TPrimanota_application::load_mask(int n)
|
|||||||
|
|
||||||
TString8 name = "cg2100"; name << char(n == 3 ? 'o' : 'a'+n);
|
TString8 name = "cg2100"; name << char(n == 3 ? 'o' : 'a'+n);
|
||||||
TMask* m = new TMask(name);
|
TMask* m = new TMask(name);
|
||||||
|
|
||||||
switch (n)
|
switch (n)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
@ -114,8 +114,9 @@ TMask* TPrimanota_application::load_mask(int n)
|
|||||||
ism.set_handler(209, sheet_clifo_handler);
|
ism.set_handler(209, sheet_clifo_handler);
|
||||||
ism.set_handler(309, sheet_clifo_handler);
|
ism.set_handler(309, sheet_clifo_handler);
|
||||||
ism.set_handler(CG_RATEO, sheet_rateo_handler);
|
ism.set_handler(CG_RATEO, sheet_rateo_handler);
|
||||||
ism.set_handler(CG_RISCONTO, sheet_risconto_handler);
|
ism.set_handler(CG_RISCONTO, sheet_risconto_handler);
|
||||||
|
if (!(fexist("fp0.exe") && !fp_settings().get_db_indirizzo().empty() && !fp_settings().is_f8()))
|
||||||
|
m->hide(F_PROTFPPRO);
|
||||||
if (_quadratura)
|
if (_quadratura)
|
||||||
m->set_handler(F_ADJUST_IVA, quadratura_handler);
|
m->set_handler(F_ADJUST_IVA, quadratura_handler);
|
||||||
}
|
}
|
||||||
@ -2166,8 +2167,14 @@ bool TPrimanota_application::save(bool check_dirty)
|
|||||||
_swap_mask = false;
|
_swap_mask = false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
save_fppro();
|
const bool saved_fppro = save_fppro();
|
||||||
return TRelation_application::save(check_dirty);
|
const bool saved = TRelation_application::save(check_dirty);
|
||||||
|
if (saved && saved_fppro)
|
||||||
|
{
|
||||||
|
if (!save_dbmov())
|
||||||
|
message_box("Attenzione non è stato possibile salvare i riferimenti del documento (in ingresso) nel movimento");
|
||||||
|
}
|
||||||
|
return saved;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TPrimanota_application::dump_rec(TConfig & ini, const TRectype & rec, int row, int pref)
|
void TPrimanota_application::dump_rec(TConfig & ini, const TRectype & rec, int row, int pref)
|
||||||
@ -2282,15 +2289,27 @@ void TPrimanota_application::mask2ini(const TMask& msk, TConfig& ini)
|
|||||||
|
|
||||||
bool TPrimanota_application::save_fppro() const
|
bool TPrimanota_application::save_fppro() const
|
||||||
{
|
{
|
||||||
const KEY last = curr_mask().last_key();
|
TMask& msk = curr_mask();
|
||||||
if (last != K_SAVE) // Salto se sto uscendo
|
const KEY last = msk.last_key();
|
||||||
return true;
|
|
||||||
|
// Controllo che sto registrando un documento FA Fattura di Acquisto
|
||||||
|
TLocalisamfile clifo(LF_CAUSALI);
|
||||||
|
clifo.setkey(1);
|
||||||
|
clifo.put("CODCAUS", msk.get(F_CODCAUS));
|
||||||
|
if (clifo.read() != NOERR)
|
||||||
|
return false;
|
||||||
|
if (clifo.get("TIPODOC") != "FA")
|
||||||
|
return false;
|
||||||
// Provo a vedere se hanno l'FP: se c'è l'indirizzo controllo che non sia F8 se non c'è non hanno l'FP
|
// Provo a vedere se hanno l'FP: se c'è l'indirizzo controllo che non sia F8 se non c'è non hanno l'FP
|
||||||
if (!fexist("fp0.exe") || 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
|
return false; // Salto il salvataggio in FPPRO
|
||||||
|
|
||||||
TMask& msk = curr_mask();
|
|
||||||
|
|
||||||
|
|
||||||
|
if (last != K_SAVE) { // Salto se sto uscendo
|
||||||
|
message_box("La registrazione del movimento non verrà salvata sul database.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
const TDate data_operazione(msk.get(F_DATAREG));
|
const TDate data_operazione(msk.get(F_DATAREG));
|
||||||
const TDate data_documento(msk.get(F_DATADOC));
|
const TDate data_documento(msk.get(F_DATADOC));
|
||||||
const TString& numero_docext = msk.get(F_NUMDOCEXT);
|
const TString& numero_docext = msk.get(F_NUMDOCEXT);
|
||||||
@ -2345,8 +2364,9 @@ bool TPrimanota_application::save_fppro() const
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
const TString& dataoraric = fp_db().sq_get("P1_DATAORARIC"); // Devo controllare che la data operazione sia maggiore della data ric
|
// Devo controllare che la data operazione sia maggiore della data ric
|
||||||
if(data_operazione < TDate(dataoraric))
|
const TDate dataoraric = fp_db().sq_get_date("P1_DATAORARIC");
|
||||||
|
if(data_operazione < dataoraric)
|
||||||
{
|
{
|
||||||
error_box("Attenzione non è possibile registrare una fattura\ncon data operazione minore della data di ricezione.");
|
error_box("Attenzione non è possibile registrare una fattura\ncon data operazione minore della data di ricezione.");
|
||||||
return false;
|
return false;
|
||||||
@ -2364,7 +2384,28 @@ bool TPrimanota_application::save_fppro() const
|
|||||||
"WHERE PZ_KEYPRGINVIO = \'" << keyprginvio << "\' AND PZ_KEYHEADERFATT = \'" << keyheaderfatt << "\' AND PZ_KEYBODYFATT = \'" << keybodyfatt << "\';";
|
"WHERE PZ_KEYPRGINVIO = \'" << keyprginvio << "\' AND PZ_KEYHEADERFATT = \'" << keyheaderfatt << "\' AND PZ_KEYBODYFATT = \'" << keybodyfatt << "\';";
|
||||||
|
|
||||||
fp_db().sq_set_exec(update_query);
|
fp_db().sq_set_exec(update_query);
|
||||||
return fp_db().sq_commit();
|
const bool saved = fp_db().sq_commit();
|
||||||
|
if (!saved)
|
||||||
|
error_box("Attenzione non è stato possibile registrare la fattura nel database.");
|
||||||
|
return saved;
|
||||||
|
}
|
||||||
|
bool TPrimanota_application::save_dbmov() const
|
||||||
|
{
|
||||||
|
const TMask& msk = curr_mask();
|
||||||
|
const TString& numreg = msk.get(H_NUMREG);
|
||||||
|
const TString& keyfppro = msk.get(F_PROKEY);
|
||||||
|
const TString& progfppro = msk.get(F_PROTFPPRO);
|
||||||
|
|
||||||
|
TLocalisamfile mov(LF_MOV);
|
||||||
|
mov.put(MOV_NUMREG, numreg);
|
||||||
|
bool ok = mov.read() == NOERR;
|
||||||
|
if (ok)
|
||||||
|
{
|
||||||
|
mov.put(MOV_KEYFPPRO, keyfppro);
|
||||||
|
mov.put(MOV_PROGFPPRO, progfppro);
|
||||||
|
ok = mov.rewrite() == NOERR;
|
||||||
|
}
|
||||||
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TPrimanota_application::link_cesp(const TMask& msk, const char* action)
|
bool TPrimanota_application::link_cesp(const TMask& msk, const char* action)
|
||||||
|
@ -19,7 +19,9 @@
|
|||||||
#define F_DATACOMP 116
|
#define F_DATACOMP 116
|
||||||
#define F_ANNOIVA 117
|
#define F_ANNOIVA 117
|
||||||
#define F_NUMDOCEXT 130
|
#define F_NUMDOCEXT 130
|
||||||
|
#define F_PROTFPPRO 230
|
||||||
#define F_RITFATT 231
|
#define F_RITFATT 231
|
||||||
|
#define F_PROKEY 232
|
||||||
|
|
||||||
#define F_CLIFO 128
|
#define F_CLIFO 128
|
||||||
#define F_CODCLIFOR 151
|
#define F_CODCLIFOR 151
|
||||||
@ -192,4 +194,30 @@
|
|||||||
#define K_ANNOES 415
|
#define K_ANNOES 415
|
||||||
#define K_DATACOMP 416
|
#define K_DATACOMP 416
|
||||||
|
|
||||||
|
|
||||||
|
// Campi per maschera FPPRO
|
||||||
|
#define F_SHEETFPPRO 601
|
||||||
|
#define F_CODCLIFORS 602
|
||||||
|
#define F_COFIS 603
|
||||||
|
#define F_STATOPAIVS 604
|
||||||
|
#define F_PIVAS 605
|
||||||
|
#define F_SHEETFPPROS 606
|
||||||
|
|
||||||
|
#define F_NUMEROI 607
|
||||||
|
#define F_DATAI 608
|
||||||
|
#define F_TOTDOCI 609
|
||||||
|
#define F_PROTFPPROI 610
|
||||||
|
#define F_FPPROKEYSI 611
|
||||||
|
|
||||||
|
#define F_SELFPPROS 101
|
||||||
|
#define F_DATAS 102
|
||||||
|
#define F_DATAORARICS 103
|
||||||
|
#define F_IMPTOTDOCS 104
|
||||||
|
#define F_NUMEROS 105
|
||||||
|
#define F_FISCIVAPAESES 106
|
||||||
|
#define F_FISCIVACODS 107
|
||||||
|
#define F_CODFISCALES 108
|
||||||
|
#define F_TIPOPROTS 109
|
||||||
|
#define F_PROGRESSS 110
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -3,6 +3,8 @@
|
|||||||
|
|
||||||
TOOLBAR "topbar" 0 0 0 2
|
TOOLBAR "topbar" 0 0 0 2
|
||||||
#include <relapbar.h>
|
#include <relapbar.h>
|
||||||
|
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
PAGE "Testata" -1 -1 77 20
|
PAGE "Testata" -1 -1 77 20
|
||||||
@ -594,6 +596,19 @@ BEGIN
|
|||||||
DRIVENBY F_VALUTAINTRA
|
DRIVENBY F_VALUTAINTRA
|
||||||
END
|
END
|
||||||
|
|
||||||
|
STRING F_PROTFPPRO 18
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 17 "Codice Protocollo FPPRO "
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_PROKEY 80
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 18 "db key"
|
||||||
|
HELP "Chiave database"
|
||||||
|
FLAGS "H"
|
||||||
|
END
|
||||||
|
|
||||||
BOOLEAN F_RITFATT
|
BOOLEAN F_RITFATT
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 21 "Fattura in ritardo "
|
PROMPT 1 21 "Fattura in ritardo "
|
||||||
@ -776,3 +791,5 @@ ENDMASK
|
|||||||
#include "cg21iva.uml"
|
#include "cg21iva.uml"
|
||||||
#include "cg21cg.uml"
|
#include "cg21cg.uml"
|
||||||
#include "cg21rata.uml"
|
#include "cg21rata.uml"
|
||||||
|
|
||||||
|
ENDMASK
|
@ -19,6 +19,7 @@
|
|||||||
#include <pconti.h>
|
#include <pconti.h>
|
||||||
#include <doc.h>
|
#include <doc.h>
|
||||||
#include <occas.h>
|
#include <occas.h>
|
||||||
|
#include "../fp/fplib.h"
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
// Funzioni di decodifica/calcolo
|
// Funzioni di decodifica/calcolo
|
||||||
@ -2987,6 +2988,7 @@ bool TPrimanota_application::clifo_handler(TMask_field& f, KEY key)
|
|||||||
const bool ic = ixc->active() && (alleg < 5 || alleg == 7) && paiv.full() && !m.get_bool(F_LIQDIFF);
|
const bool ic = ixc->active() && (alleg < 5 || alleg == 7) && paiv.full() && !m.get_bool(F_LIQDIFF);
|
||||||
ixc->set(ic ? "X" : "");
|
ixc->set(ic ? "X" : "");
|
||||||
}
|
}
|
||||||
|
fppro_mask(f, key);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3449,6 +3451,30 @@ bool TPrimanota_application::protiva_handler(TMask_field& f, KEY key)
|
|||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TPrimanota_application::fppro_mask(TMask_field& f, KEY key)
|
||||||
|
{
|
||||||
|
TMask& cg_msk = f.mask();
|
||||||
|
// Provo a vedere se hanno l'FP: se c'è l'indirizzo controllo che non sia F8 se non c'è non hanno l'FP
|
||||||
|
if (!(fexist("fp0.exe") && !fp_settings().get_db_indirizzo().empty() && !fp_settings().is_f8()))
|
||||||
|
return;
|
||||||
|
|
||||||
|
TMask* msk = new TMask("cgFPPRO");
|
||||||
|
msk->set_handler(DLG_CONFIG, fppro_handler);
|
||||||
|
msk->set_handler(DLG_LINK, fppro_ok_handler);
|
||||||
|
msk->set(F_CODCLIFORS, cg_msk.get(F_CODCLIFOR));
|
||||||
|
msk->set(F_COFIS, cg_msk.get(F_COFI));
|
||||||
|
msk->set(F_STATOPAIVS, cg_msk.get(F_STATOPAIV));
|
||||||
|
msk->set(F_PIVAS, cg_msk.get(F_PIVA));
|
||||||
|
msk->run();
|
||||||
|
// Riporto dati FPPRO su maschera Prima Nota
|
||||||
|
cg_msk.set(F_NUMDOCEXT, msk->get(F_NUMEROI));
|
||||||
|
cg_msk.set(F_NUMDOC, TString(msk->get(F_NUMEROI)).left(7));
|
||||||
|
cg_msk.set(F_DATADOC, msk->get(F_DATAI));
|
||||||
|
cg_msk.set(F_TOTALE, msk->get(F_TOTDOCI));
|
||||||
|
cg_msk.set(F_PROTFPPRO, msk->get(F_PROTFPPROI));
|
||||||
|
cg_msk.set(F_PROKEY, msk->get(F_FPPROKEYSI));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Handler of the F_RITFIS
|
// Handler of the F_RITFIS
|
||||||
// Certified 100%
|
// Certified 100%
|
||||||
@ -3823,3 +3849,113 @@ bool TPrimanota_application::quadratura_handler(TMask_field& f, KEY key)
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool TPrimanota_application::fppro_handler(TMask_field& f, KEY k)
|
||||||
|
{
|
||||||
|
if (k != 32)
|
||||||
|
return true;
|
||||||
|
TMask& msk = f.mask();
|
||||||
|
//if(msk.curr_page() != 3)
|
||||||
|
//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 (!fexist("fp0.exe") || fp_settings().get_db_indirizzo().empty() || fp_settings().is_f8())
|
||||||
|
return true; // Salto il salvataggio in FPPRO
|
||||||
|
|
||||||
|
|
||||||
|
const int forn = msk.get_int(F_CODCLIFORS);
|
||||||
|
if (forn == 0)
|
||||||
|
{
|
||||||
|
message_box("Inserire prima il fornitore");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
const TString& codfisc = msk.get(F_COFIS);
|
||||||
|
const TString& stato_piva = msk.get(F_STATOPAIVS);
|
||||||
|
const TString& piva = msk.get(F_PIVAS);
|
||||||
|
TString id_fornitore;
|
||||||
|
if (!piva.empty())
|
||||||
|
{
|
||||||
|
id_fornitore << " (P2_FISCIVAPAESE = ";
|
||||||
|
if (!stato_piva.empty())
|
||||||
|
id_fornitore << "\'" << stato_piva << "\'";
|
||||||
|
else
|
||||||
|
id_fornitore << "\'IT\'";
|
||||||
|
id_fornitore << " AND P2_FISCIVACOD = \'" << piva << "\'";
|
||||||
|
}
|
||||||
|
if (!codfisc.empty())
|
||||||
|
{
|
||||||
|
if (!id_fornitore.empty())
|
||||||
|
id_fornitore << " OR ";
|
||||||
|
id_fornitore << " P2_CODFISCALE = \'" << codfisc << "\'";
|
||||||
|
}
|
||||||
|
if (!id_fornitore.empty())
|
||||||
|
id_fornitore << ")";
|
||||||
|
TString query;
|
||||||
|
query << "SELECT PZ_DATA, CAST(P1_DATAORARIC AS DATE) AS P1_DATAORARIC, PQ_IMPTOTDOC, PZ_NUMERO, PZ_NUMREGCONT, PZ_TIPOPROT, PZ_NUMPROT, P2_FISCIVAPAESE, P2_FISCIVACOD, P2_CODFISCALE, PZ_KEYPRGINVIO, PZ_KEYHEADERFATT, PZ_KEYBODYFATT\n" <<
|
||||||
|
"FROM PAA0200F\n" << "JOIN FPPRO00F\n" << " ON P2_KEYPRGINVIO = PZ_KEYPRGINVIO AND P2_KEYHEADERFATT = PZ_KEYHEADERFATT AND P2_KEYBODYFATT = PZ_KEYBODYFATT\n" <<
|
||||||
|
"JOIN PAA0100F\n" << " ON P2_KEYPRGINVIO = P1_KEYPRGINVIO AND P2_KEYHEADERFATT = P1_KEYHEADERFATT AND P2_KEYBODYFATT = P1_KEYBODYFATT\n" <<
|
||||||
|
"JOIN PAA2700F\n" << "ON P2_KEYPRGINVIO = PQ_KEYPRGINVIO AND P2_KEYHEADERFATT = PQ_KEYHEADERFATT AND P2_KEYBODYFATT = PQ_KEYBODYFATT\n" <<
|
||||||
|
"WHERE " << id_fornitore << ";";
|
||||||
|
fp_db().sq_set_exec(query, false);
|
||||||
|
|
||||||
|
TSheet_field& sf = msk.sfield(F_SHEETFPPROS);
|
||||||
|
sf.hide();
|
||||||
|
while (fp_db().sq_next())
|
||||||
|
{
|
||||||
|
TString numreg = fp_db().sq_get("PZ_NUMREGCONT");
|
||||||
|
if (numreg != "0")
|
||||||
|
continue;
|
||||||
|
TToken_string& row = sf.row(-1);
|
||||||
|
row.add("", 0);
|
||||||
|
row.add(TDate(fp_db().sq_get_date("PZ_DATA")));
|
||||||
|
row.add(TDate(fp_db().sq_get_date("P1_DATAORARIC")));
|
||||||
|
row.add(fp_db().sq_get("PQ_IMPTOTDOC"));
|
||||||
|
row.add(fp_db().sq_get("PZ_NUMERO"));
|
||||||
|
row.add(fp_db().sq_get("P2_FISCIVAPAESE"));
|
||||||
|
row.add(fp_db().sq_get("P2_FISCIVACOD"));
|
||||||
|
row.add(fp_db().sq_get("P2_CODFISCALE"));
|
||||||
|
row.add(fp_db().sq_get("PZ_TIPOPROT"));
|
||||||
|
row.add(fp_db().sq_get("PZ_NUMPROT"));
|
||||||
|
}
|
||||||
|
sf.force_update();
|
||||||
|
sf.show();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TPrimanota_application::fppro_ok_handler(TMask_field& f, KEY k)
|
||||||
|
{
|
||||||
|
if (k != 32)
|
||||||
|
return true;
|
||||||
|
TMask& msk = f.mask();
|
||||||
|
//if (msk.curr_page() != 3)
|
||||||
|
//return true;
|
||||||
|
bool ok = false;
|
||||||
|
TSheet_field& sf = msk.sfield(F_SHEETFPPROS);
|
||||||
|
bool loaded = false;
|
||||||
|
FOR_EACH_SHEET_ROW(sf, nr, row)
|
||||||
|
{
|
||||||
|
if(!loaded && *row->get(0) == 'X')
|
||||||
|
{
|
||||||
|
msk.set(F_NUMEROI, row->get(4));
|
||||||
|
msk.set(F_DATAI, row->get(1));
|
||||||
|
msk.set(F_TOTDOCI, row->get(3));
|
||||||
|
TString protocollo; protocollo << TDate(row->get(1)).year() << "-" << row->get(8) << "/" << row->get(9);
|
||||||
|
msk.set(F_PROTFPPROI, protocollo);
|
||||||
|
TString key_prot; key_prot << fp_db().sq_get("PZ_KEYPRGINVIO") << ";" << fp_db().sq_get("PZ_KEYHEADERFATT") << ";" << fp_db().sq_get("PZ_KEYBODYFATT");
|
||||||
|
msk.set(F_FPPROKEYSI, key_prot);
|
||||||
|
loaded = true;
|
||||||
|
ok = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if(*row->get(0) == 'X')
|
||||||
|
row->add("", 0);
|
||||||
|
}
|
||||||
|
sf.force_update();
|
||||||
|
if(ok)
|
||||||
|
message_box("Dati caricati.\nChiudere la maschera per tornare alla prima nota.");
|
||||||
|
else
|
||||||
|
message_box("Nessun documento selezionato.");
|
||||||
|
//msk.stop_run(20334);
|
||||||
|
return true;
|
||||||
|
}
|
@ -110,6 +110,7 @@ class TPrimanota_application : public TRelation_application
|
|||||||
static bool annorif_handler(TMask_field& f, KEY key);
|
static bool annorif_handler(TMask_field& f, KEY key);
|
||||||
static bool numrif_handler(TMask_field& f, KEY key);
|
static bool numrif_handler(TMask_field& f, KEY key);
|
||||||
static bool protiva_handler(TMask_field& f, KEY key);
|
static bool protiva_handler(TMask_field& f, KEY key);
|
||||||
|
|
||||||
static bool clifo_handler(TMask_field& f, KEY key);
|
static bool clifo_handler(TMask_field& f, KEY key);
|
||||||
static bool totdoc_handler(TMask_field& f, KEY key);
|
static bool totdoc_handler(TMask_field& f, KEY key);
|
||||||
static bool totdocval_handler(TMask_field& f, KEY key);
|
static bool totdocval_handler(TMask_field& f, KEY key);
|
||||||
@ -167,6 +168,10 @@ class TPrimanota_application : public TRelation_application
|
|||||||
static bool colors_handler(TMask_field& f, KEY k);
|
static bool colors_handler(TMask_field& f, KEY k);
|
||||||
|
|
||||||
static bool quadratura_handler(TMask_field& f, KEY k); // Bottone quadratura per ATS
|
static bool quadratura_handler(TMask_field& f, KEY k); // Bottone quadratura per ATS
|
||||||
|
|
||||||
|
static bool fppro_handler(TMask_field& f, KEY k); // Carica spread fppro
|
||||||
|
static bool fppro_ok_handler(TMask_field& f, KEY k); // Riporta doc FPPRO in testata
|
||||||
|
static void fppro_mask(TMask_field& f, KEY key);
|
||||||
|
|
||||||
void reset_sheet_row(TSheet_field& s, int n);
|
void reset_sheet_row(TSheet_field& s, int n);
|
||||||
int crea_somma_spese(TImporto& imp);
|
int crea_somma_spese(TImporto& imp);
|
||||||
@ -182,6 +187,8 @@ protected: // TApplication
|
|||||||
virtual void ini2mask(TConfig& ini, TMask& msk, bool query);
|
virtual void ini2mask(TConfig& ini, TMask& msk, bool query);
|
||||||
virtual void mask2ini(const TMask& msk, TConfig& ini);
|
virtual void mask2ini(const TMask& msk, TConfig& ini);
|
||||||
bool save_fppro() const;
|
bool save_fppro() const;
|
||||||
|
// Salva riferimento documento in FPPRO in mov
|
||||||
|
bool save_dbmov() const;
|
||||||
virtual bool save(bool check_dirty);
|
virtual bool save(bool check_dirty);
|
||||||
|
|
||||||
bool get_mask_swap_file(TFilename& name) const;
|
bool get_mask_swap_file(TFilename& name) const;
|
||||||
|
184
src/cg/cgFPPRO.uml
Normal file
184
src/cg/cgFPPRO.uml
Normal file
@ -0,0 +1,184 @@
|
|||||||
|
#include "cg2100.h"
|
||||||
|
|
||||||
|
TOOLBAR "topbar" 0 0 0 2
|
||||||
|
|
||||||
|
BUTTON DLG_CONFIG 2 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT 3 1 "Carica FPPRO"
|
||||||
|
PICTURE TOOL_ELABORA
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_LINK 2 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT 3 1 "Collega FPPRO"
|
||||||
|
PICTURE TOOL_LINK
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_QUIT 2 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT 4 1 "Fine"
|
||||||
|
PICTURE TOOL_QUIT
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
|
||||||
|
|
||||||
|
PAGE "FPPRO" -1 -1 77 20
|
||||||
|
|
||||||
|
NUMBER F_CODCLIFORS 6
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 1 "Codice fornitore"
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_COFIS 16
|
||||||
|
BEGIN
|
||||||
|
PROMPT 40 1 "C.F. "
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_STATOPAIVS 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 2 "STATO P.I."
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_PIVAS 12
|
||||||
|
BEGIN
|
||||||
|
PROMPT 40 2 "P.I. "
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
SPREADSHEET F_SHEETFPPROS 0 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 0 4 ""
|
||||||
|
ITEM "SEL"
|
||||||
|
ITEM "DATA"
|
||||||
|
ITEM "DATAORARIC"
|
||||||
|
ITEM "IMPTOTDOCP"
|
||||||
|
ITEM "NUMERO"
|
||||||
|
ITEM "FISCIVAPAESE"
|
||||||
|
ITEM "FISCIVACOD"
|
||||||
|
ITEM "CODFISCALE"
|
||||||
|
ITEM "TIPOPROT"
|
||||||
|
ITEM "PROGRESS"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_NUMEROI 20
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 20 "NUMERO"
|
||||||
|
FLAGS "H"
|
||||||
|
END
|
||||||
|
|
||||||
|
DATE F_DATAI
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 21 "DATA"
|
||||||
|
FLAGS "H"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_TOTDOCI 10 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 22 "IMPTOTDOC"
|
||||||
|
FLAGS "H"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_PROTFPPROI 18
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 23 "Tipo Protocollo"
|
||||||
|
FLAGS "H"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_FPPROKEYSI 80
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 19 "db key"
|
||||||
|
HELP "Chiave database"
|
||||||
|
FLAGS "H"
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
ENDMASK
|
||||||
|
|
||||||
|
|
||||||
|
PAGE "ELEMENTI SPREADSHEET" -1 -1 77 20
|
||||||
|
|
||||||
|
BOOLEAN F_SELFPPROS
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 0 "Selected"
|
||||||
|
FLAGS ""
|
||||||
|
END
|
||||||
|
|
||||||
|
DATE F_DATAS
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 1 "DATA"
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
DATE F_DATAORARICS
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 2 "DATAORARIC"
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_IMPTOTDOCS 10 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 3 "IMPTOTDOC"
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_NUMEROS 20
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 4 "NUMERO"
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_FISCIVAPAESES 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 5 "FISCIVAPAESE"
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_FISCIVACODS 16
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 6 "FISCIVACOD"
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_CODFISCALES 16
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 7 "CODFISCALE"
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_TIPOPROTS 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 8 "TIPOPROT"
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_PROGRESSS 10 0
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 9 "PROGRESS"
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
TOOLBAR "Documento" 0 0 0 2
|
||||||
|
|
||||||
|
BUTTON DLG_OK 2 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_USER 2 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 1 "Collega"
|
||||||
|
PICTURE TOOL_LINK
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_CANCEL 2 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
ENDMASK
|
@ -56,6 +56,8 @@
|
|||||||
#define MOV_CONTSEP "CONTSEP"
|
#define MOV_CONTSEP "CONTSEP"
|
||||||
#define MOV_TNUMREG "TNUMREG"
|
#define MOV_TNUMREG "TNUMREG"
|
||||||
#define MOV_IVALIQ "IVALIQ"
|
#define MOV_IVALIQ "IVALIQ"
|
||||||
|
#define MOV_KEYFPPRO "KEYFPPRO"
|
||||||
|
#define MOV_PROGFPPRO "PROGFPPRO"
|
||||||
|
|
||||||
#define NUMREG_PROVVISORIO 999999L
|
#define NUMREG_PROVVISORIO 999999L
|
||||||
|
|
||||||
|
@ -9,8 +9,15 @@
|
|||||||
|
|
||||||
const TDate SSimple_query::sq_get_date(const char * field)
|
const TDate SSimple_query::sq_get_date(const char * field)
|
||||||
{
|
{
|
||||||
const TDate app(_rec.get_date(field));
|
TDate date(_rec.get_date(field));
|
||||||
return app;
|
if(!date.ok() || date == 19000100)
|
||||||
|
{
|
||||||
|
TString dt_str = _rec.get(field);
|
||||||
|
if (dt_str.len() > 10)
|
||||||
|
dt_str = dt_str.left(10);
|
||||||
|
date = dt_str;
|
||||||
|
}
|
||||||
|
return date;
|
||||||
}
|
}
|
||||||
|
|
||||||
const real SSimple_query::sq_get_real(const char * field)
|
const real SSimple_query::sq_get_real(const char * field)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user