Files correlati : Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/branches/R_10_00@20862 c028cbd2-c16b-5b4b-a496-9718f37d4682
186 lines
4.6 KiB
C++
Executable File
186 lines
4.6 KiB
C++
Executable File
#include <applicat.h>
|
|
#include <automask.h>
|
|
#include <execp.h>
|
|
#include <progind.h>
|
|
#include <tabutil.h>
|
|
#include "../ve/velib.h"
|
|
|
|
#include <clifo.h>
|
|
#include <doc.h>
|
|
#include <rdoc.h>
|
|
|
|
#include "ps0713lib.h"
|
|
#include "ps0713300a.h"
|
|
|
|
///////////////////////////////////
|
|
//// TIMPORTA_FATACQ_MSK ////
|
|
///////////////////////////////////
|
|
|
|
//Classe TImporta_fatacq_msk
|
|
class TImporta_fatacq_msk : public TAutomask
|
|
{
|
|
protected:
|
|
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
|
|
|
public:
|
|
TImporta_fatacq_msk();
|
|
};
|
|
|
|
TImporta_fatacq_msk::TImporta_fatacq_msk() :TAutomask ("ps0713300a")
|
|
{
|
|
}
|
|
|
|
//ON_FIELD_EVENT: metodo che gestisce i comportamenti dei vari campi della maschera
|
|
//(per adesso segnaposto)
|
|
bool TImporta_fatacq_msk::on_field_event(TOperable_field& f, TField_event e, long jolly)
|
|
{
|
|
return true;
|
|
}
|
|
///////////////////////////////////
|
|
//// TIMPORTA_FATACQ_APP ////
|
|
///////////////////////////////////
|
|
|
|
//Classe TImporta_fatacq_app
|
|
class TImporta_fatacq_app : public TSkeleton_application
|
|
{
|
|
TImporta_fatacq_msk* _msk;
|
|
|
|
protected:
|
|
virtual bool check_autorization() const {return false;}
|
|
virtual const char * extra_modules() const {return "ve";}
|
|
|
|
public:
|
|
virtual bool create();
|
|
virtual bool destroy();
|
|
virtual void main_loop();
|
|
bool get_doc(const TFilename& file, const TMask & m);
|
|
void add_spesa(TDocumento & doc, const TString & cod, const real & perc);
|
|
|
|
TImporta_fatacq_app() {};
|
|
};
|
|
|
|
void TImporta_fatacq_app::add_spesa(TDocumento & doc, const TString & cod, const real & perc)
|
|
{
|
|
if (cod.full() && perc != ZERO)
|
|
{
|
|
TSpesa_prest p(cod);
|
|
TString tiporiga = p.get("S8").left(4);
|
|
|
|
TRiga_documento & row = doc.new_row(tiporiga);
|
|
|
|
row.put(RDOC_CODART, cod);
|
|
row.put(RDOC_CHECKED, "X");
|
|
row.put(RDOC_QTA, perc);
|
|
const TString & ivacli = doc.clifor().vendite().get(CFV_ASSFIS);
|
|
row.put(RDOC_CODIVA, ivacli.full() ? ivacli : p.cod_iva());
|
|
}
|
|
}
|
|
|
|
bool TImporta_fatacq_app::get_doc(const TFilename& file, const TMask & m)
|
|
{
|
|
const TDate datadoc(m.get_date(F_DATAREG));
|
|
TDocumento doc('D', datadoc.year(), m.get(F_CODNUM), 0L);
|
|
TVB_recset s(file, ',');
|
|
|
|
TProgind pi(s.items(),"Importazione fatture in corso ...",true,true);
|
|
|
|
doc.put(DOC_TIPODOC, m.get(F_TIPODOC));
|
|
doc.put(DOC_TIPOCF, "F");
|
|
doc.put(DOC_CODCF, m.get(F_CODCF));
|
|
doc.put(DOC_DATADOC, datadoc);
|
|
doc.cli2doc();
|
|
|
|
int nriga = 1;
|
|
TSpesa_prest p("GENPR", 'P');
|
|
|
|
for (bool ok = s.move_first(); ok; ok = s.move_next())
|
|
{
|
|
if (!pi.addstatus(1))
|
|
break;
|
|
|
|
TString16 tmp = s.get(1).as_string();
|
|
|
|
tmp.strip(".");
|
|
tmp.replace(',', '.');
|
|
|
|
real imp(tmp); imp.round(doc.decimals());
|
|
if (imp != ZERO)
|
|
{
|
|
TRiga_documento & row = doc.new_row("A6");
|
|
|
|
row.put(RDOC_CODART, p.codice());
|
|
row.put(RDOC_CHECKED, "X");
|
|
|
|
row.put(RDOC_QTA, 1);
|
|
row.put(RDOC_UMQTA, p.um());
|
|
row.put(RDOC_PREZZO, imp);
|
|
const TString & ivacli = doc.clifor().vendite().get(CFV_ASSFIS);
|
|
row.put(RDOC_CODIVA, ivacli.full() ? ivacli : p.cod_iva());
|
|
|
|
const TString16 codcom = s.get(0).as_string();
|
|
TCommessa cms(codcom);
|
|
TCommessa_string ankey = cms.cmsstr();
|
|
TString descr;
|
|
|
|
descr << " Id. Lavoro " << codcom;
|
|
|
|
row.put(RDOC_DESCR, descr);
|
|
row.put(RDOC_CODCMS, codcom);
|
|
row.put(RDOC_QTAGG1, ankey.gruppo());
|
|
row.put(RDOC_QTAGG2, ankey.conto());
|
|
row.put(RDOC_QTAGG3, ankey.sotco());
|
|
}
|
|
}
|
|
TString16 codsp = m.get(F_CODSP1);
|
|
real perc = m.get(F_PERCSP1);
|
|
|
|
add_spesa(doc, codsp, perc);
|
|
codsp = m.get(F_CODSP2);
|
|
perc = m.get_real(F_PERCSP2);
|
|
add_spesa(doc, codsp, perc);
|
|
codsp = m.get(F_CODSP3);
|
|
perc = m.get_real(F_PERCSP3);
|
|
add_spesa(doc, codsp, perc);
|
|
|
|
return doc.write() == NOERR;
|
|
}
|
|
|
|
const char* nomeini = "ps0713300fatt.ini";
|
|
|
|
bool TImporta_fatacq_app::create()
|
|
{
|
|
xvt_fsys_remove_file(nomeini);
|
|
|
|
_msk = new TImporta_fatacq_msk();
|
|
|
|
return TSkeleton_application::create();
|
|
}
|
|
|
|
bool TImporta_fatacq_app::destroy()
|
|
{
|
|
delete _msk;
|
|
return TApplication::destroy();
|
|
}
|
|
|
|
void TImporta_fatacq_app::main_loop()
|
|
{
|
|
if (_msk->run() == K_ENTER)
|
|
{
|
|
//genero il nome del file da caricare
|
|
TFilename name = _msk->get(F_PATH);
|
|
TFilename tmp = _msk->get(F_NAME);
|
|
name.add(tmp.name());
|
|
if (get_doc(name, *_msk))
|
|
message_box(TR("Importazione fatture completata"));
|
|
}
|
|
}
|
|
|
|
TImporta_fatacq_app& app() { return (TImporta_fatacq_app&) main_app(); }
|
|
|
|
|
|
int ps0713300 (int argc, char* argv[])
|
|
{
|
|
TImporta_fatacq_app main_app;
|
|
main_app.run(argc, argv, TR("Importazione Fatture"));
|
|
return true;
|
|
} |