Patch level : 12.0 no-patch
Files correlati : cg2, cg2100t.msk Commento : - Modificati bottoni maschera fatture SDI - Corretto riporta codice fornitore se non e' valorizzato - Aggiunto scollegamento movimento da FPPRO - Corretto controllo righe vuote IVA - Riporta dati numdoc e datadoc anche col collega (per quelli che non hanno f1)
This commit is contained in:
parent
890c6936dd
commit
7d02362ae2
@ -131,11 +131,17 @@ TMask* TPrimanota_application::load_mask(int n)
|
||||
if (m->find_by_id(F_COLFPPRO) != NULL)
|
||||
m->hide(F_COLFPPRO);
|
||||
if (m->find_by_id(DLG_LINK) != NULL)
|
||||
{
|
||||
m->disable(DLG_LINK);
|
||||
m->disable(DLG_EDIT);
|
||||
}
|
||||
}
|
||||
else
|
||||
if (m->find_by_id(DLG_LINK) != NULL)
|
||||
{
|
||||
m->set_handler(DLG_LINK, fppro_mask);
|
||||
m->set_handler(DLG_EDIT, scollega_handler);
|
||||
}
|
||||
|
||||
if (_quadratura)
|
||||
m->set_handler(F_ADJUST_IVA, quadratura_handler);
|
||||
@ -1750,7 +1756,7 @@ void TPrimanota_application::clean_fppro()
|
||||
// Controlli: solo in mod modifica; che abbia fp-f1 (no F8); che non sono in salvataggio
|
||||
if (_mode != MODE_MOD
|
||||
|| !has_f1_db(&msk)
|
||||
|| last_key != K_DEL && last_key != K_SAVE && last_key != K_ELIMMAS && last_key != K_QUIT)
|
||||
|| last_key != K_DEL && last_key != K_SAVE && last_key != K_ELIMMAS && last_key != K_QUIT && !scollega())
|
||||
return;
|
||||
|
||||
const TString& numreg = msk.get(F_NUMREG);
|
||||
@ -2660,6 +2666,11 @@ bool TPrimanota_application::save_dbmov(bool clean) const
|
||||
mov.put(MOV_KEYFPPRO, !clean ? keyfppro : "");
|
||||
ok = mov.rewrite() == NOERR;
|
||||
}
|
||||
if(clean && ok)
|
||||
{
|
||||
app().curr_mask().set(F_PROKEY, "");
|
||||
app().curr_mask().set(F_COLFPPRO, "");
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
|
@ -10,6 +10,13 @@ BEGIN
|
||||
MODULE FP
|
||||
END
|
||||
|
||||
BUTTON DLG_EDIT 2 2
|
||||
BEGIN
|
||||
PROMPT 3 1 "Scollega F.E."
|
||||
PICTURE TOOL_CANCEL
|
||||
MODULE FP
|
||||
END
|
||||
|
||||
BUTTON DLG_NULL 2 2
|
||||
BEGIN
|
||||
PROMPT 1 1 ""
|
||||
|
@ -10,13 +10,14 @@ END
|
||||
|
||||
BUTTON DLG_OK 2 2
|
||||
BEGIN
|
||||
PROMPT 2 1 "Riporta Documento"
|
||||
PROMPT 2 1 "Contabilizzaz."
|
||||
PICTURE TOOL_EXPORT
|
||||
MODULE F1
|
||||
END
|
||||
|
||||
BUTTON DLG_LINK 2 2
|
||||
BEGIN
|
||||
PROMPT 3 1 "Collega Documento"
|
||||
PROMPT 3 1 "Collega in Prima nota"
|
||||
PICTURE TOOL_LINK
|
||||
END
|
||||
|
||||
@ -33,7 +34,7 @@ PAGE "Fatture Ricevute SDI" -1 -1 77 20
|
||||
|
||||
NUMBER F_CODCLIFORS 6
|
||||
BEGIN
|
||||
PROMPT 1 1 "Codice fornitore"
|
||||
PROMPT 0 1 "Fornitore"
|
||||
FIELD CODCF
|
||||
GROUP 1
|
||||
USE LF_CLIFO
|
||||
@ -54,27 +55,17 @@ BEGIN
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_COFIS 16
|
||||
STRING F_RAGSOCS 50
|
||||
BEGIN
|
||||
PROMPT 35 1 "Cod. Fiscale "
|
||||
GROUP 1
|
||||
USE LF_CLIFO KEY 4
|
||||
INPUT TIPOCF "F"
|
||||
INPUT COFI F_COFIS
|
||||
DISPLAY "Codice fiscale@16" COFI
|
||||
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||
DISPLAY "Codice" CODCF
|
||||
DISPLAY "Sospeso@C" SOSPESO
|
||||
DISPLAY "Partita IVA@12" PAIV
|
||||
COPY OUTPUT F_CODCLIFORS
|
||||
CHECKTYPE NORMAL
|
||||
ADD RUN cg0 -1
|
||||
PROMPT 20 1 ""
|
||||
INPUT TIPOCF F_CLIFO SELECT
|
||||
INPUT RAGSOC F_RAGSOCCF
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_STATOPAIVS 2
|
||||
BEGIN
|
||||
PROMPT 1 2 "P. IVA"
|
||||
PROMPT 0 2 "P. IVA"
|
||||
USE %SCE
|
||||
INPUT CODTAB F_STATOPAIVS
|
||||
DISPLAY "Codice" CODTAB
|
||||
@ -103,11 +94,21 @@ BEGIN
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_RAGSOCS 50
|
||||
STRING F_COFIS 16
|
||||
BEGIN
|
||||
PROMPT 0 3 "Rag. Soc."
|
||||
INPUT TIPOCF F_CLIFO SELECT
|
||||
INPUT RAGSOC F_RAGSOCCF
|
||||
PROMPT 35 2 "Cod. Fiscale "
|
||||
GROUP 1
|
||||
USE LF_CLIFO KEY 4
|
||||
INPUT TIPOCF "F"
|
||||
INPUT COFI F_COFIS
|
||||
DISPLAY "Codice fiscale@16" COFI
|
||||
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||
DISPLAY "Codice" CODCF
|
||||
DISPLAY "Sospeso@C" SOSPESO
|
||||
DISPLAY "Partita IVA@12" PAIV
|
||||
COPY OUTPUT F_CODCLIFORS
|
||||
CHECKTYPE NORMAL
|
||||
ADD RUN cg0 -1
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
|
@ -3917,23 +3917,38 @@ bool TPrimanota_application::write_scad_f1(const TMask& cg_msk, const shared_ptr
|
||||
|
||||
void TPrimanota_application::write_clifo(TMask& cg_msk, const shared_ptr<TPro_msk>& msk)
|
||||
{
|
||||
bool ok = false;
|
||||
TLocalisamfile clifo(LF_CLIFO);
|
||||
if (msk->get_codforn().empty())
|
||||
TToken_string keys(msk->get_fpprokeys(), ';');
|
||||
TString codforn = TFppro(keys).get_codforn();
|
||||
if (codforn.empty())
|
||||
codforn = msk->get_codforn();
|
||||
if (codforn.empty())
|
||||
{
|
||||
clifo.setkey(5);
|
||||
clifo.put(CLI_TIPOCF, "F");
|
||||
clifo.put(CLI_PAIV, msk->get_piva());
|
||||
clifo.read();
|
||||
ok = clifo.get(CLI_PAIV) == msk->get_piva();
|
||||
if(!ok)
|
||||
{
|
||||
clifo.zero();
|
||||
clifo.setkey(5);
|
||||
clifo.put(CLI_TIPOCF, "F");
|
||||
clifo.put(CLI_PAIV, msk->get_piva());
|
||||
clifo.put(CLI_STATOPAIV, "IT");
|
||||
clifo.read();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
clifo.setkey(1);
|
||||
clifo.put(CLI_TIPOCF, "F");
|
||||
clifo.put(CLI_CODCF, msk->get_codforn());
|
||||
clifo.put(CLI_CODCF, codforn);
|
||||
clifo.read();
|
||||
}
|
||||
|
||||
if (clifo.get(CLI_PAIV) == msk->get_piva() && (cg_msk.get(F_CODCLIFOR).empty() || cg_msk.get(F_CODCLIFOR) != msk->get_codforn()))
|
||||
ok = clifo.get(CLI_PAIV) == msk->get_piva();
|
||||
if (ok && (cg_msk.get(F_CODCLIFOR).empty() || cg_msk.get(F_CODCLIFOR) != codforn))
|
||||
{
|
||||
cg_msk.set(F_CODCLIFOR, clifo.get(CLI_CODCF));
|
||||
cg_msk.set(F_RAGSOCCF, clifo.get(CLI_RAGSOC));
|
||||
@ -3964,16 +3979,26 @@ void TPrimanota_application::set_totale(TMask& cg_msk, const shared_ptr<TPro_msk
|
||||
|
||||
void TPrimanota_application::riporta_dati_f1(TMask& cg_msk, const shared_ptr<TPro_msk>& msk)
|
||||
{
|
||||
cg_msk.set(F_NUMDOCEXT, msk->get_numdoc());
|
||||
cg_msk.set(F_NUMDOC, msk->get_numdoc().right(7));
|
||||
cg_msk.set(F_DATADOC, msk->get_datadoc());
|
||||
if (msk->get_numdoc().full())
|
||||
write_clifo(cg_msk, msk);
|
||||
write_righe_iva_f1(cg_msk, msk);
|
||||
set_totale(cg_msk, msk);
|
||||
cg_msk.set(FS_RECALC, ""); cg_msk.disable(FS_RDIFFER); cg_msk.disable(FS_MCOMM); cg_msk.disable(FS_NRATE);
|
||||
if(write_scad_f1(cg_msk, msk))
|
||||
app().set_scad_f1(cg_msk);
|
||||
const bool bring = msk->should_bring_back();
|
||||
if (bring)
|
||||
{
|
||||
if (msk->get_numdoc().full() && cg_msk.get(F_CODCLIFOR).empty())
|
||||
write_clifo(cg_msk, msk);
|
||||
write_righe_iva_f1(cg_msk, msk);
|
||||
set_totale(cg_msk, msk);
|
||||
cg_msk.set(FS_RECALC, ""); cg_msk.disable(FS_RDIFFER); cg_msk.disable(FS_MCOMM); cg_msk.disable(FS_NRATE);
|
||||
if (write_scad_f1(cg_msk, msk))
|
||||
app().set_scad_f1(cg_msk);
|
||||
}
|
||||
// Li riporto anche con il collega in prima nota, e in quel caso solo se i campi non sono gia valorizzati
|
||||
if (bring || cg_msk.get(F_NUMDOC).empty())
|
||||
{
|
||||
cg_msk.set(F_NUMDOCEXT, msk->get_numdoc());
|
||||
cg_msk.set(F_NUMDOC, msk->get_numdoc().right(7));
|
||||
}
|
||||
|
||||
if (bring || cg_msk.get(F_DATADOC).empty())
|
||||
cg_msk.set(F_DATADOC, msk->get_datadoc());
|
||||
}
|
||||
|
||||
bool TPrimanota_application::fppro_mask(TMask_field& f, KEY key)
|
||||
@ -3995,12 +4020,7 @@ bool TPrimanota_application::fppro_mask(TMask_field& f, KEY key)
|
||||
msk->run();
|
||||
// Riporto dati FPPRO su maschera Prima Nota (solo se hai F1)
|
||||
// Se non hai F1 collego senza riportarti i dati (solo le chiavi db)
|
||||
if (msk->should_bring_back())
|
||||
{
|
||||
riporta_dati_f1(cg_msk, msk);
|
||||
//TConfig ini("cg2CONTAB0001.ini");
|
||||
//app().ini2mask(ini, cg_msk, false);
|
||||
}
|
||||
riporta_dati_f1(cg_msk, msk);
|
||||
cg_msk.set(F_PROKEY, msk->get_fpprokeys());
|
||||
is_collegato(cg_msk.field(F_COLFPPRO));
|
||||
cg_msk.set(F_ANNORIF, cg_msk.get(F_ANNOIVA));
|
||||
@ -4009,6 +4029,30 @@ bool TPrimanota_application::fppro_mask(TMask_field& f, KEY key)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TPrimanota_application::scollega(const bool set)
|
||||
{
|
||||
static bool scollega = false;
|
||||
if (set)
|
||||
return scollega = true;
|
||||
const bool last = scollega;
|
||||
scollega = false;
|
||||
return last;
|
||||
}
|
||||
|
||||
bool TPrimanota_application::scollega_handler(TMask_field& f, KEY key)
|
||||
{
|
||||
TMask& cg_msk = f.mask();
|
||||
if (!app().has_module(FPAUT) || key != K_SPACE && key != K_TAB || !check_causale(cg_msk.get(F_CODCAUS)))
|
||||
return true;
|
||||
if (cg_msk.get_bool(F_COLFPPRO))
|
||||
{
|
||||
scollega(true);
|
||||
app().clean_fppro();
|
||||
app().save_dbmov(true);
|
||||
message_box("Il movimento e' stato scollegato dalla fattura elettronica\nin ingresso, precedentemente associata.");
|
||||
}
|
||||
}
|
||||
|
||||
bool TPrimanota_application::is_collegato(TMask_field& f)
|
||||
{
|
||||
TMask& cg_msk = f.mask();
|
||||
|
@ -194,6 +194,7 @@ class TPrimanota_application : public TRelation_application
|
||||
// Handlers per aggancio FPPRO
|
||||
// Bottone per maschera FPPRO
|
||||
static bool fppro_mask(TMask_field& f, KEY key);
|
||||
static bool scollega_handler(TMask_field& f, KEY key);
|
||||
static bool is_collegato(TMask_field& f);
|
||||
static void fppromask_set_handl(TMask* msk);
|
||||
static void load_list(TMask* msk, KEY k);
|
||||
@ -224,6 +225,7 @@ protected: // TApplication
|
||||
int save_fppro();
|
||||
// Salva sul movimento il riferimento al documento in FPPRO (keys)
|
||||
bool save_dbmov(bool clean = false) const;
|
||||
static bool scollega(bool set = false);
|
||||
// Pulisce il mov e db dai firerimenti FPPRO (in MODE_MOD per edit/delete)
|
||||
void clean_fppro();
|
||||
// setta variabili prima del controllo has_f1_db
|
||||
|
@ -1,251 +0,0 @@
|
||||
#include "cg2100.h"
|
||||
|
||||
TOOLBAR "topbar" 0 0 0 2
|
||||
|
||||
BUTTON DLG_CONFIG 2 2
|
||||
BEGIN
|
||||
PROMPT 1 1 "Ricarica Fatture"
|
||||
PICTURE TOOL_CONVERT
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 2 2
|
||||
BEGIN
|
||||
PROMPT 2 1 "Riporta Documento"
|
||||
MODULE F1
|
||||
END
|
||||
|
||||
BUTTON DLG_LINK 2 2
|
||||
BEGIN
|
||||
PROMPT 3 1 "Collega Documento"
|
||||
PICTURE TOOL_LINK
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 2 2
|
||||
BEGIN
|
||||
PROMPT 4 1 "Fine"
|
||||
PICTURE TOOL_QUIT
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
|
||||
PAGE "Fatture Ricevute SDI" -1 -1 77 20
|
||||
|
||||
NUMBER F_CODCLIFORS 6
|
||||
BEGIN
|
||||
PROMPT 1 1 "Codice fornitore"
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_COFIS 16
|
||||
BEGIN
|
||||
PROMPT 35 1 "Cod. Fiscale "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_STATOPAIVS 2
|
||||
BEGIN
|
||||
PROMPT 1 2 "P. IVA"
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_PIVAS 12
|
||||
BEGIN
|
||||
PROMPT 15 2 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_RAGSOCS 50
|
||||
BEGIN
|
||||
PROMPT 0 3 "Rag. Soc."
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
BOOLEAN F_ENABSEARCH
|
||||
BEGIN
|
||||
PROMPT 0 4 "Effettua ricerca per P.IVA/Disabilita ricerca per cod. Fornitore"
|
||||
END
|
||||
|
||||
BOOLEAN F_ENABDATE
|
||||
BEGIN
|
||||
PROMPT 0 5 "Abilita filtro per data"
|
||||
END
|
||||
|
||||
DATE F_DATESEARCH
|
||||
BEGIN
|
||||
PROMPT 35 5 "Data documento"
|
||||
FLAGS "H"
|
||||
END
|
||||
|
||||
TEXT F_SHEET_TEXT
|
||||
BEGIN
|
||||
PROMPT 0 6 "@BSelezionare la fattura, quindi premere 'Collega Documento'"
|
||||
END
|
||||
|
||||
BOOLEAN F_SHOWALL
|
||||
BEGIN
|
||||
PROMPT 0 7 "Mostra anche fatture già registrate"
|
||||
END
|
||||
|
||||
SPREADSHEET F_SHEETFPPROS 0 15
|
||||
BEGIN
|
||||
PROMPT 0 8 ""
|
||||
ITEM " "
|
||||
ITEM "Tipo Doc@5"
|
||||
ITEM "Data\nRicezione@8"
|
||||
ITEM "Data\nDoc.@8"
|
||||
ITEM "Totale\nDocumento@7"
|
||||
ITEM "Ritenute\nfiscali@6"
|
||||
ITEM "Numero@14"
|
||||
ITEM "Ragione sociale@40"
|
||||
ITEM "Paese@4"
|
||||
ITEM "P. IVA@10"
|
||||
ITEM "Cod. Fiscale@14"
|
||||
ITEM "Tipo Protocollo\nin ingresso@10"
|
||||
ITEM "Progressivo\ndi ingresso@10"
|
||||
ITEM "Chiave FPPRO@40"
|
||||
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
|
||||
|
||||
STRING F_TIPODOCS 4
|
||||
BEGIN
|
||||
PROMPT 10 0 "TIPODOC"
|
||||
FLAGS "D"
|
||||
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
|
||||
|
||||
NUMBER F_RITENUTE 10 3
|
||||
BEGIN
|
||||
PROMPT 1 4 "Ritenute d'acconto"
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_NUMEROS 20
|
||||
BEGIN
|
||||
PROMPT 1 5 "NUMERO"
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_RAGXML 50
|
||||
BEGIN
|
||||
PROMPT 1 8 ""
|
||||
FLAGS "D"
|
||||
HELP "Ragione sociale scritta nell'xml"
|
||||
END
|
||||
|
||||
STRING F_FISCIVAPAESES 2
|
||||
BEGIN
|
||||
PROMPT 1 6 "FISCIVAPAESE"
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_FISCIVACODS 16
|
||||
BEGIN
|
||||
PROMPT 1 7 "FISCIVACOD"
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_CODFISCALES 16
|
||||
BEGIN
|
||||
PROMPT 1 8 "CODFISCALE"
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_TIPOPROTS 2
|
||||
BEGIN
|
||||
PROMPT 1 9 "TIPOPROT"
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_PROGRESSS 10 0
|
||||
BEGIN
|
||||
PROMPT 1 10 "PROGRESS"
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_KEYFPPROS 80
|
||||
BEGIN
|
||||
PROMPT 1 11 "CHIAVE FPPRO"
|
||||
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
|
@ -88,6 +88,14 @@ int TFppro::get_numreg(TToken_string& keys)
|
||||
return get_numreg();
|
||||
}
|
||||
|
||||
TString TFppro::get_codforn() const
|
||||
{
|
||||
TString query;
|
||||
query << "SELECT PZ_CLIFOR FROM FPPRO00F\n" << where_str();
|
||||
_db->sq_set_exec(query);
|
||||
return _db->sq_get("PZ_CLIFOR");
|
||||
}
|
||||
|
||||
TDate TFppro::get_datareg()
|
||||
{
|
||||
if (!_is_set)
|
||||
|
@ -50,6 +50,7 @@ public:
|
||||
void get_keys_fppro();
|
||||
int get_numreg();
|
||||
int get_numreg(TToken_string& keys);
|
||||
TString get_codforn() const;
|
||||
TDate get_datareg();
|
||||
TDate get_datareg(TToken_string& keys);
|
||||
real get_ritenute() const;
|
||||
|
Loading…
x
Reference in New Issue
Block a user