2010-12-22 16:25:51 +00:00
|
|
|
|
#include <applicat.h>
|
|
|
|
|
#include <automask.h>
|
2011-02-01 17:05:36 +00:00
|
|
|
|
#include <progind.h>
|
2011-01-31 14:36:38 +00:00
|
|
|
|
#include <recarray.h>
|
2010-12-22 16:25:51 +00:00
|
|
|
|
#include <relation.h>
|
2011-02-01 16:45:07 +00:00
|
|
|
|
#include <reprint.h>
|
|
|
|
|
#include <reputils.h>
|
2010-12-22 16:25:51 +00:00
|
|
|
|
|
|
|
|
|
#include "../cg/cglib01.h"
|
|
|
|
|
|
|
|
|
|
#include "doc.h"
|
|
|
|
|
|
|
|
|
|
#include "pd0610300a.h"
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////
|
|
|
|
|
//// TSOST_CONDPAG_MSK ////
|
|
|
|
|
/////////////////////////////////
|
|
|
|
|
|
|
|
|
|
class TSost_condpag_msk: public TAutomask
|
|
|
|
|
{
|
|
|
|
|
protected:
|
2011-01-10 18:14:06 +00:00
|
|
|
|
bool elabora_documenti();
|
2010-12-22 16:25:51 +00:00
|
|
|
|
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
|
|
|
|
public:
|
|
|
|
|
TSost_condpag_msk();
|
|
|
|
|
};
|
|
|
|
|
|
2011-01-10 18:14:06 +00:00
|
|
|
|
bool TSost_condpag_msk::elabora_documenti()
|
2010-12-22 16:25:51 +00:00
|
|
|
|
{
|
2011-02-01 16:45:07 +00:00
|
|
|
|
TLog_report rep(TR("Documenti modificati"));
|
|
|
|
|
|
2010-12-22 16:25:51 +00:00
|
|
|
|
//se non sono settate le date, compilo gli anni dagli esercizi contabili
|
|
|
|
|
TEsercizi_contabili& esc = esercizi();
|
2011-01-10 18:14:06 +00:00
|
|
|
|
const TDate dadata = get_date(F_DADATA);
|
|
|
|
|
const TDate adata = get_date(F_ADATA);
|
|
|
|
|
const long daanno = dadata.ok() ? dadata.year() : esc.first();
|
|
|
|
|
const long aanno = adata.ok() ? adata.year() : esc.last();
|
|
|
|
|
const TString8 tipodoc = get(F_TIPODOC);
|
|
|
|
|
const TString8 stato = get(F_STATO);
|
|
|
|
|
const long dacodcf = get_long(F_DACODCF);
|
|
|
|
|
const long acodcf = get_long(F_ACODCF);
|
|
|
|
|
const TString8 codnum = get(F_CODNUM);
|
2011-01-12 16:30:25 +00:00
|
|
|
|
const real totdoc = get_real(F_TOTDOC);
|
2010-12-22 16:25:51 +00:00
|
|
|
|
|
|
|
|
|
TString query;
|
2011-02-11 09:45:01 +00:00
|
|
|
|
query << "USE DOC SELECT (CODNUM=\"" << codnum << "\")"
|
|
|
|
|
<< "&&(TIPODOC=\"" << tipodoc << "\")"
|
|
|
|
|
<< "&&(STATO=\"" << stato << "\")"
|
|
|
|
|
<< "&&(TIPOCF=\"C\")"
|
|
|
|
|
<< "&&(BETWEEN(CODCF," << dacodcf << "," << acodcf << "))"
|
2011-02-11 10:09:33 +00:00
|
|
|
|
<< "&&(BETWEEN(DATADOC,#DADATA,#ADATA))";
|
|
|
|
|
if(totdoc > ZERO)
|
|
|
|
|
query << "&&(STR(G1:TOTDOC<=" << totdoc << "))";
|
|
|
|
|
query << "\n"
|
2011-01-10 18:14:06 +00:00
|
|
|
|
<< "FROM PROVV=\"D\" ANNO=" << daanno << "\n"
|
|
|
|
|
<< "TO PROVV=\"D\" ANNO=" << aanno;
|
2010-12-22 16:25:51 +00:00
|
|
|
|
|
|
|
|
|
//instanzio il recordset e gli setto tutte le variabili
|
|
|
|
|
TISAM_recordset doc(query);
|
|
|
|
|
doc.set_var("#DADATA", dadata);
|
|
|
|
|
doc.set_var("#ADATA", adata);
|
|
|
|
|
|
|
|
|
|
TLocalisamfile& documenti = doc.cursor()->file();
|
|
|
|
|
|
2011-01-10 18:14:06 +00:00
|
|
|
|
const TString4 codpag = get(F_CODPAG);
|
2010-12-22 16:25:51 +00:00
|
|
|
|
|
2011-02-01 17:05:36 +00:00
|
|
|
|
TProgind pi(doc.items(), TR("Elaborazione documenti in corso..."), true, true);
|
|
|
|
|
|
2010-12-22 16:25:51 +00:00
|
|
|
|
//scorro il recordset e aggiorno i documenti che <20> necessario aggiornare
|
|
|
|
|
for(bool ok = doc.move_first(); ok; ok = doc.move_next())
|
|
|
|
|
{
|
2011-02-01 17:05:36 +00:00
|
|
|
|
if (!pi.addstatus(1))
|
|
|
|
|
break;
|
|
|
|
|
|
2010-12-22 16:25:51 +00:00
|
|
|
|
TRectype& rec = doc.cursor()->curr();
|
|
|
|
|
|
2011-01-31 14:36:38 +00:00
|
|
|
|
const TString4 codpagdoc = rec.get(DOC_CODPAG);
|
2011-02-11 09:45:01 +00:00
|
|
|
|
const TString4 tipopag = cache().get("%CPG", codpagdoc, "S4");
|
2011-01-31 14:36:38 +00:00
|
|
|
|
|
2011-02-11 10:09:33 +00:00
|
|
|
|
if (codpagdoc != codpag && tipopag == "3" ) //tipopag = 3-> riba
|
2010-12-22 16:25:51 +00:00
|
|
|
|
{
|
|
|
|
|
rec.put(DOC_CODPAG, codpag);
|
2011-02-10 11:56:14 +00:00
|
|
|
|
|
2011-02-11 08:14:59 +00:00
|
|
|
|
const TString8 abi = get(F_ABI);
|
|
|
|
|
if (abi.full())
|
2011-02-10 11:56:14 +00:00
|
|
|
|
{
|
2011-02-11 08:14:59 +00:00
|
|
|
|
const TString8 cab = get(F_CAB);
|
2011-02-11 09:45:01 +00:00
|
|
|
|
const TString prog = get(F_PROG);
|
2011-02-10 11:56:14 +00:00
|
|
|
|
|
|
|
|
|
rec.put(DOC_CODABIP, abi);
|
|
|
|
|
rec.put(DOC_CODCABP, cab);
|
|
|
|
|
rec.put(DOC_PROGBNP, prog);
|
|
|
|
|
}
|
|
|
|
|
|
2010-12-22 16:25:51 +00:00
|
|
|
|
rec.rewrite(documenti);
|
2011-02-01 16:45:07 +00:00
|
|
|
|
|
|
|
|
|
TString str;
|
|
|
|
|
str << doc.get(DOC_PROVV).as_string() << '|' << doc.get(DOC_ANNO).as_int() << '|' << doc.get(DOC_CODNUM).as_string() << '|' << doc.get(DOC_NDOC);
|
|
|
|
|
rep.log(0, str);
|
2010-12-22 16:25:51 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2011-02-01 16:45:07 +00:00
|
|
|
|
|
|
|
|
|
TReport_book buc;
|
|
|
|
|
buc.add(rep);
|
|
|
|
|
if (buc.pages() > 0)
|
|
|
|
|
buc.preview();
|
2011-01-10 18:14:06 +00:00
|
|
|
|
return doc.items() > 0 ? true : false;
|
2010-12-22 16:25:51 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool TSost_condpag_msk::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
|
|
|
|
{
|
|
|
|
|
switch(o.dlg())
|
|
|
|
|
{
|
|
|
|
|
case DLG_OK:
|
|
|
|
|
if(e == fe_button)
|
|
|
|
|
{
|
2011-01-10 18:14:06 +00:00
|
|
|
|
if(elabora_documenti())
|
|
|
|
|
message_box(TR("Elaborazione terminata"));
|
|
|
|
|
else
|
|
|
|
|
message_box(TR("Non <20> stato possibile individuare nessuna commessa da modificare con i filtri impostati"));
|
2010-12-22 16:25:51 +00:00
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
default: break;
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
TSost_condpag_msk::TSost_condpag_msk() : TAutomask("pd0610300a")
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////
|
|
|
|
|
//// TSOST_CONDPAG_APP ////
|
|
|
|
|
/////////////////////////////////
|
|
|
|
|
|
|
|
|
|
class TSost_condpag_app: public TSkeleton_application
|
|
|
|
|
{
|
|
|
|
|
protected:
|
|
|
|
|
virtual bool check_autorization() const {return false;}
|
|
|
|
|
virtual const char * extra_modules() const {return "ve";}
|
|
|
|
|
virtual void main_loop();
|
|
|
|
|
void elabora();
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
void TSost_condpag_app::elabora()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void TSost_condpag_app::main_loop()
|
|
|
|
|
{
|
|
|
|
|
TSost_condpag_msk m;
|
|
|
|
|
while (m.run() == K_ENTER)
|
|
|
|
|
{
|
|
|
|
|
elabora();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int pd0610300(int argc, char* argv[])
|
|
|
|
|
{
|
|
|
|
|
TSost_condpag_app app;
|
|
|
|
|
app.run(argc, argv, TR("Sostituzione Condizioni di Pagamento"));
|
|
|
|
|
return 0;
|
|
|
|
|
}
|