campo-sirio/src/fp/fp0400.cpp

200 lines
5.3 KiB
C++
Raw Normal View History

/////////////////////////////////////////////////////////////////////////////////////
// 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 <20> 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;
}