Patch level : 12.0 698
Files correlati : fp Commento : implementazione monitor fatture passive
This commit is contained in:
parent
ab258c2e5c
commit
45c051406c
200
src/fp/fp0400.cpp
Normal file
200
src/fp/fp0400.cpp
Normal file
@ -0,0 +1,200 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////////
|
||||
// TPassive_mask
|
||||
/////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "defmask.h"
|
||||
#include "automask.h"
|
||||
#include "applicat.h"
|
||||
#include <progind.h>
|
||||
#include "tsdb.h"
|
||||
#include "fp0400a.h"
|
||||
#include "fplib.h"
|
||||
|
||||
|
||||
class TPassive_mask : public TAutomask
|
||||
{
|
||||
protected:
|
||||
|
||||
void set_filter_changed();
|
||||
bool on_field_event(TOperable_field& o, TField_event e, long jolly) override;
|
||||
void next_page(int p) override;
|
||||
void fill();
|
||||
void init();
|
||||
|
||||
void load_all_fields();
|
||||
|
||||
bool _filter_changed;
|
||||
|
||||
public:
|
||||
void save_all_fields() const;
|
||||
|
||||
TPassive_mask() : TAutomask("fp0400a"), _filter_changed(true)
|
||||
{
|
||||
load_all_fields();
|
||||
}
|
||||
};
|
||||
|
||||
void TPassive_mask::set_filter_changed()
|
||||
{
|
||||
_filter_changed = true;
|
||||
}
|
||||
|
||||
void TPassive_mask::next_page(int p)
|
||||
{
|
||||
//if(true)
|
||||
if (_filter_changed && p != 1000)
|
||||
{
|
||||
fill();
|
||||
_filter_changed = false;
|
||||
}
|
||||
TAutomask::next_page(p);
|
||||
}
|
||||
|
||||
void TPassive_mask::fill()
|
||||
{
|
||||
TSheet_field& sf = sfield(F_DOCS);
|
||||
//TString_array& sht = sf.rows_array();
|
||||
sf.hide();
|
||||
sf.destroy();
|
||||
|
||||
const TDate dal = get(F_DATAINI);
|
||||
const TDate al = get(F_DATAEND);
|
||||
|
||||
TString query;
|
||||
|
||||
query << "SELECT 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, " <<
|
||||
"P2_ANACOGNOME AS COGNOME, P2_FISCIVACOD AS [P_IVA], P2_CODFISCALE AS [COD_FISC], P2_FISCIVAPAESE AS [COD_PAESE], PP_ATTACHMENT ATTACHMENT, P1_CODDEST as [COD_SDI], PU_PEC AS PEC\n" <<
|
||||
"FROM PAA0100F PAA01\n" <<
|
||||
"JOIN PAA0200F PAA02 ON P1_KEYPRGINVIO = P2_KEYPRGINVIO and P1_KEYHEADERFATT = P2_KEYHEADERFATT and P1_KEYBODYFATT = P2_KEYBODYFATT\n" <<
|
||||
"JOIN PAA0700F PAA07 ON P1_KEYPRGINVIO = P7_KEYPRGINVIO and P1_KEYHEADERFATT = P7_KEYHEADERFATT and P1_KEYBODYFATT = P7_KEYBODYFATT\n" <<
|
||||
"JOIN PAA2700F PAA27 ON P1_KEYPRGINVIO = PQ_KEYPRGINVIO and P1_KEYHEADERFATT = PQ_KEYHEADERFATT and P1_KEYBODYFATT = PQ_KEYBODYFATT\n" <<
|
||||
"LEFT JOIN PAA2600F PAA26 ON P1_KEYPRGINVIO = PP_KEYPRGINVIO and P1_KEYHEADERFATT = PP_KEYHEADERFATT and P1_KEYBODYFATT = PP_KEYBODYFATT\n" <<
|
||||
"LEFT JOIN PAA3200F PAA32 ON P1_KEYPRGINVIO = PU_KEYPRGINVIO and PU_KEYHEADERFATT = PU_KEYHEADERFATT and P1_KEYBODYFATT = PU_KEYBODYFATT\n" <<
|
||||
"WHERE P7_DATA >= \'" << dal.date2ansi() << "\' AND P7_DATA <= \'" << al.date2ansi() << "\'";
|
||||
fp_db().sq_set_exec(query, false);
|
||||
|
||||
//TProgress_monitor pi(fp_db().sq_items(), nullptr);
|
||||
|
||||
TLocalisamfile clifo(LF_CLIFO);
|
||||
|
||||
while(fp_db().sq_next())
|
||||
//for(bool ok = ; ok; ok = s.sq_next())
|
||||
{
|
||||
clifo.zero();
|
||||
clifo.put(CLI_TIPOCF, 'F');
|
||||
TToken_string& row = sf.row(-1);
|
||||
TString denom = fp_db().sq_get("RAG_SOC");
|
||||
if (denom.blank()) {
|
||||
denom = fp_db().sq_get("NOME");
|
||||
denom.trim();
|
||||
denom << " " << fp_db().sq_get("COGNOME");
|
||||
denom.trim();
|
||||
}
|
||||
TString id_fisc = fp_db().sq_get("COGNOME");
|
||||
|
||||
row.add(fp_db().sq_get_int("ANNO"), 0);
|
||||
row.add(fp_db().sq_get("TIPO_SDI"));
|
||||
row.add(fp_db().sq_get("NUM_DOC"));
|
||||
row.add(fp_db().sq_get("DATA_DOC"));
|
||||
row.add(fp_db().sq_get("TOT_DOC"));
|
||||
// Cerco se il fornitore è presente in Campo
|
||||
|
||||
if (fp_db().sq_get("P_IVA") == "01903590154")
|
||||
bool tolla = true;
|
||||
|
||||
|
||||
if(fp_db().sq_get("COD_PAESE").full() && fp_db().sq_get("P_IVA").full())
|
||||
{
|
||||
clifo.setkey(5);
|
||||
clifo.put(CLI_STATOPAIV, fp_db().sq_get("COD_PAESE"));
|
||||
clifo.put(CLI_PAIV, fp_db().sq_get("P_IVA"));
|
||||
if(clifo.read() == NOERR)
|
||||
row.add(clifo.get(CLI_CODCF));
|
||||
else if (fp_db().sq_get("COD_PAESE") == "IT")
|
||||
{
|
||||
clifo.put(CLI_PAIV, fp_db().sq_get("P_IVA"));
|
||||
clifo.put(CLI_STATOPAIV, "");
|
||||
if (clifo.read() == NOERR)
|
||||
row.add(clifo.get(CLI_CODCF));
|
||||
}
|
||||
}
|
||||
else if(fp_db().sq_get("COD_FISC").full())
|
||||
{
|
||||
clifo.setkey(4);
|
||||
clifo.put(CLI_COFI, fp_db().sq_get("COD_FISC"));
|
||||
if (clifo.read() == NOERR)
|
||||
row.add(clifo.get(CLI_CODCF));
|
||||
}
|
||||
row.add(denom, sf.cid2index(S_RAGSOC));
|
||||
|
||||
row.add(fp_db().sq_get("COD_PAESE") << fp_db().sq_get("P_IVA"));
|
||||
row.add(fp_db().sq_get("COD_FISC"));
|
||||
TString appo = fp_db().sq_get("ATTACHMENT");
|
||||
row.add( appo.blank() ? "" : "X" );
|
||||
row.add(fp_db().sq_get("COD_SDI").blank() ? fp_db().sq_get("PEC") : fp_db().sq_get("COD_SDI"));
|
||||
}
|
||||
|
||||
sf.force_update();
|
||||
sf.show();
|
||||
}
|
||||
|
||||
void TPassive_mask::init()
|
||||
{
|
||||
}
|
||||
|
||||
void TPassive_mask::load_all_fields()
|
||||
{
|
||||
}
|
||||
|
||||
bool TPassive_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
{
|
||||
switch (o.dlg())
|
||||
{
|
||||
case F_DATAINI:
|
||||
if (e == fe_init)
|
||||
o.set(ini_get_string(CONFIG_DITTA, "fp", "LastXML", "01-01-2019"));
|
||||
else if (e == fe_close)
|
||||
ini_set_string(CONFIG_DITTA, "fp", "LastXML", o.get());
|
||||
break;
|
||||
case F_DATAEND:
|
||||
if (e == fe_init)
|
||||
o.set(TDate(TODAY));
|
||||
default: break;
|
||||
}
|
||||
if ((e == fe_modify || e >= se_enter) && jolly == 0)
|
||||
if (o.dlg() >= START_MASK && o.dlg() <= END_MASK)
|
||||
set_filter_changed();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////
|
||||
// TPassive_app
|
||||
/////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
class TPassive_app : public TSkeleton_application
|
||||
{
|
||||
|
||||
public:
|
||||
void main_loop() override;
|
||||
|
||||
TPassive_app() = default;
|
||||
};
|
||||
|
||||
void TPassive_app::main_loop()
|
||||
{
|
||||
TPassive_mask mask;
|
||||
while(mask.run() == K_ENTER)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
int fp0400(int argc, char * argv[])
|
||||
{
|
||||
TPassive_app fpas;
|
||||
fpas.run(argc, argv, TR("Fatturazione F.P."));
|
||||
return 0;
|
||||
}
|
32
src/fp/fp0400a.h
Normal file
32
src/fp/fp0400a.h
Normal file
@ -0,0 +1,32 @@
|
||||
#define START_MASK 401
|
||||
#define F_DATAINI 401
|
||||
#define F_DATAEND 402
|
||||
#define END_MASK 499
|
||||
|
||||
|
||||
#define F_DOCUMENTI_TIPO 301
|
||||
|
||||
//#define S_SELCODNUM 101
|
||||
//#define S_TIPODOCSEL 102
|
||||
//#define S_DASTATO 103
|
||||
//#define S_ASTATO 104
|
||||
//#define S_TIPODOCSDI 105
|
||||
|
||||
#define F_DOCS 201
|
||||
|
||||
//#define S_SELECTED 101
|
||||
#define S_ANNO 101
|
||||
#define S_CODSDI 102
|
||||
#define S_NDOC 103
|
||||
#define S_DATADOC 104
|
||||
#define S_TOTDOC 105
|
||||
#define S_CLIENTE 106
|
||||
#define S_RAGSOC 107
|
||||
#define S_PARIVA 108
|
||||
#define S_CODFISC 109
|
||||
#define S_ATTACH 110
|
||||
#define S_COFI 111
|
||||
|
||||
|
||||
|
||||
|
175
src/fp/fp0400a.uml
Normal file
175
src/fp/fp0400a.uml
Normal file
@ -0,0 +1,175 @@
|
||||
#include "fp0400a.h"
|
||||
|
||||
TOOLBAR "topbar" 0 0 0 2
|
||||
|
||||
BUTTON DLG_ALL 2 2
|
||||
BEGIN
|
||||
PROMPT 1 1 "~Tutti"
|
||||
PICTURE TOOL_MULTISEL
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 2 2
|
||||
BEGIN
|
||||
PROMPT 1 1 "Elabora"
|
||||
PICTURE TOOL_ELABORA
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
BUTTON DLG_SAVEREC 2 2
|
||||
BEGIN
|
||||
PROMPT 1 1 "Elimina"
|
||||
PICTURE TOOL_WARNING
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
BUTTON DLG_FINDREC 2 2
|
||||
BEGIN
|
||||
PROMPT 1 1 "Segna pronto"
|
||||
PICTURE TOOL_PERMISSIONS
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
#include <helpbar.h>
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Fatture Passive" 0 2 0 0
|
||||
|
||||
DATE F_DATAINI
|
||||
BEGIN
|
||||
PROMPT 1 1 "Data iniziale"
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
DATE F_DATAEND
|
||||
BEGIN
|
||||
PROMPT 50 1 "Data finale "
|
||||
VALIDATE DATE_CMP_FUNC >= F_DATAINI
|
||||
WARNING "La data finale non può essere minore della data iniziale"
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Elenco Fatture" 0 2 0 0
|
||||
|
||||
SPREADSHEET F_DOCS
|
||||
BEGIN
|
||||
PROMPT 0 2 ""
|
||||
ITEM "Anno"
|
||||
ITEM "Tipo SDI@4"
|
||||
ITEM "Num.\nDoc.@11"
|
||||
ITEM "Data\nDoc.@10"
|
||||
ITEM "Totale\nDoc."
|
||||
ITEM "Fornitore"
|
||||
ITEM "Ragione Sociale@50"
|
||||
ITEM "P. IVA@16"
|
||||
ITEM "Cod. Fiscale@16"
|
||||
ITEM "Allegati"
|
||||
ITEM "Codice destinatario@20"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
ENDMASK
|
||||
|
||||
|
||||
PAGE "Documento" -1 -1 78 9
|
||||
|
||||
NUMBER S_ANNO 4
|
||||
BEGIN
|
||||
PROMPT 1 2 "Anno "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
LIST S_CODSDI 35
|
||||
BEGIN
|
||||
PROMPT 41 2 "Tipo Doc SDI"
|
||||
ITEM "TD01|TD01 Fattura"
|
||||
ITEM "TD02|TD02 Acconto/Anticipo su fattura"
|
||||
ITEM "TD03|TD03 Acconto/Anticipo su parcella"
|
||||
ITEM "TD04|TD04 Nota di credito"
|
||||
ITEM "TD05|TD05 Nota di debito"
|
||||
ITEM "TD06|TD06 Parcella"
|
||||
ITEM "TD20|TD20 Autofattura"
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
NUMBER S_NDOC 11
|
||||
BEGIN
|
||||
PROMPT 1 3 "Numero "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
DATE S_DATADOC
|
||||
BEGIN
|
||||
PROMPT 21 3 "Data "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER S_TOTDOC 11 3
|
||||
BEGIN
|
||||
PROMPT 26 3 "Data "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER S_CLIENTE 6
|
||||
BEGIN
|
||||
PROMPT 1 4 "Fornitore "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING S_RAGSOC 50
|
||||
BEGIN
|
||||
PROMPT 21 4 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING S_PARIVA 50 20
|
||||
BEGIN
|
||||
PROMPT 1 5 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING S_CODFISC 50 20
|
||||
BEGIN
|
||||
PROMPT 1 5 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING S_COFI 20
|
||||
BEGIN
|
||||
PROMPT 1 6 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
BOOLEAN S_ATTACH
|
||||
BEGIN
|
||||
PROMPT 1 8 "Documenti in allegato"
|
||||
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
|
Loading…
x
Reference in New Issue
Block a user