Files correlati : Ricompilazione Demo : [ ] Commento : Riportata la versione 3.1 patch 650 git-svn-id: svn://10.65.10.50/trunk@14148 c028cbd2-c16b-5b4b-a496-9718f37d4682
139 lines
2.8 KiB
C++
Executable File
139 lines
2.8 KiB
C++
Executable File
#include <applicat.h>
|
|
#include <automask.h>
|
|
#include <defmask.h>
|
|
#include <relation.h>
|
|
#include <cfven.h>
|
|
#include "../ve/velib.h"
|
|
|
|
#include "ps0920.h"
|
|
#include "ps0920200a.h"
|
|
|
|
#include <rdoc.h>
|
|
|
|
class TMaskPs09202 : public TAutomask
|
|
{
|
|
protected:
|
|
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
|
|
|
public:
|
|
TMaskPs09202();
|
|
virtual ~TMaskPs09202();
|
|
};
|
|
|
|
TMaskPs09202::TMaskPs09202()
|
|
: TAutomask("ps0920200a")
|
|
{
|
|
}
|
|
|
|
TMaskPs09202::~TMaskPs09202()
|
|
{
|
|
}
|
|
|
|
bool TMaskPs09202::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
|
{
|
|
const int id = o.dlg();
|
|
switch (id)
|
|
{
|
|
case F_CODCLI:
|
|
if (e == fe_modify)
|
|
{
|
|
TString key; key.format("C|%ld", atol(o.get()));
|
|
const TRectype & cli = cache().get(LF_CFVEN, key);
|
|
if (cli.get(CFV_ASSFIS).empty())
|
|
o.mask().enable(F_CODIVA);
|
|
else
|
|
{
|
|
o.mask().set(F_CODIVA, "");
|
|
o.mask().disable(F_CODIVA);
|
|
}
|
|
|
|
}
|
|
default:
|
|
break;
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
class TAggiornaIVAPs0920 : public TSkeleton_application
|
|
{
|
|
TMaskPs09202 * _mask;
|
|
virtual bool check_autorization() const {return false;}
|
|
virtual const char * extra_modules() const {return "ve";}
|
|
|
|
|
|
protected:
|
|
virtual void main_loop();
|
|
virtual bool create();
|
|
|
|
public:
|
|
const TMaskPs09202 & mask() const {return *_mask;}
|
|
virtual ~TAggiornaIVAPs0920();
|
|
};
|
|
|
|
void TAggiornaIVAPs0920::main_loop()
|
|
{
|
|
while (_mask->run() == K_ENTER)
|
|
{
|
|
TCursor c(new TRelation(LF_DOC));
|
|
TRectype from(c.curr());
|
|
|
|
from.put(DOC_PROVV, "D");
|
|
from.put(DOC_CODNUM, _mask->get(F_NUM));
|
|
from.put(DOC_ANNO, _mask->get_int(F_ANNO));
|
|
|
|
TRectype to(from);
|
|
from.put(DOC_NDOC, _mask->get_int(F_NDOCDA));
|
|
to.put(DOC_NDOC, _mask->get_int(F_NDOCA));
|
|
c.setregion(from, to);
|
|
TString filter; filter.format("CODCF=%ld", _mask->get_long(F_CODCLI));
|
|
c.setfilter(filter);
|
|
|
|
TString key; key.format("C|%ld", _mask->get_long(F_CODCLI));
|
|
const TRectype & cli = cache().get(LF_CFVEN, key);
|
|
TString codice_IVA(cli.get(CFV_ASSFIS));
|
|
|
|
if (codice_IVA.empty())
|
|
codice_IVA = _mask->get(F_CODIVA);
|
|
|
|
const long items = c.items();
|
|
TString16 iva_orig;
|
|
|
|
for (c = 0L; c.pos() < items; ++c)
|
|
{
|
|
TDocumento doc(c.curr());
|
|
const int rows = doc.physical_rows();
|
|
|
|
for (int r = 1 ; r <= rows; r++)
|
|
{
|
|
TRiga_documento & riga = doc[r];
|
|
|
|
iva_orig = riga.get(RDOC_CODIVA);
|
|
|
|
if (iva_orig.not_empty())
|
|
riga.put(RDOC_CODIVA, codice_IVA);
|
|
}
|
|
doc.rewrite();
|
|
}
|
|
}
|
|
}
|
|
|
|
bool TAggiornaIVAPs0920::create()
|
|
{
|
|
_mask = new TMaskPs09202;
|
|
return TSkeleton_application:: create();
|
|
}
|
|
|
|
TAggiornaIVAPs0920::~TAggiornaIVAPs0920()
|
|
{
|
|
delete _mask;
|
|
}
|
|
|
|
TAggiornaIVAPs0920 & app() { return (TAggiornaIVAPs0920&) main_app();}
|
|
|
|
int ps0920200(int argc, char* argv[])
|
|
{
|
|
TAggiornaIVAPs0920 a;
|
|
a.run(argc, argv, "Aggiornamento IVA Documenti");
|
|
return 0;
|
|
}
|