Modificata la stampa delle deleghe IVA in funzione delle rivoluzioni all'uso
dei form (nome + codice) Collegata la prima nota al modello 770 tramite messaggio git-svn-id: svn://10.65.10.50/trunk@1424 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
5cde32a1ba
commit
66f345e712
@ -6,9 +6,8 @@
|
||||
#include <relation.h>
|
||||
#include <sheet.h>
|
||||
#include <tabutil.h>
|
||||
#include <utility.h>
|
||||
|
||||
#include <urldefid.h>
|
||||
#include <utility.h>
|
||||
|
||||
#include "cg1400.h"
|
||||
|
||||
@ -21,7 +20,10 @@ class TStampa_deleghe_IVA : public TApplication
|
||||
|
||||
int _mese, _anno, _tipo;
|
||||
TString16 _azienda, _dipendenza, _concessione;
|
||||
TFilename _profilo;
|
||||
|
||||
TString16 _profilo;
|
||||
long _codice;
|
||||
|
||||
bool _stampa_distinte, _aggiorna_codici, _definitiva, _contofis;
|
||||
|
||||
protected:
|
||||
@ -63,43 +65,15 @@ bool TStampa_deleghe_IVA::create()
|
||||
bool TStampa_deleghe_IVA::destroy()
|
||||
{
|
||||
delete _ditte;
|
||||
|
||||
delete _nditte;
|
||||
delete _banche;
|
||||
|
||||
delete _nditte;
|
||||
return TApplication::destroy();
|
||||
}
|
||||
|
||||
|
||||
HIDDEN bool abi_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
if (k == K_TAB)
|
||||
{
|
||||
TMask& m = f.mask();
|
||||
if (!m.get_bool(F_CONTOFIS))
|
||||
m.set(F_PROFILO, f.get());
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
HIDDEN bool profile_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
if (f.to_check(k))
|
||||
{
|
||||
TFilename p;
|
||||
p << "del" << f.get() << ".frm";
|
||||
if (!fexist(p))
|
||||
error_box("Non esiste il file di profilo %s", (const char*)p);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int TStampa_deleghe_IVA::select()
|
||||
{
|
||||
TMask m("cg1400a");
|
||||
m.set_handler(F_ABI, abi_handler);
|
||||
m.set_handler(F_PROFILO, profile_handler);
|
||||
|
||||
m.set(F_CONCESSIONE, _concessione);
|
||||
m.set(F_ABI, _azienda);
|
||||
@ -119,7 +93,8 @@ int TStampa_deleghe_IVA::select()
|
||||
_contofis = m.get_bool(F_CONTOFIS);
|
||||
|
||||
_profilo = "del";
|
||||
_profilo << m.get(F_PROFILO);
|
||||
if (_contofis) _profilo << "titcf";
|
||||
_codice = m.get_long(F_PROFILO);
|
||||
|
||||
const TDate pd(m.get(F_DATA));
|
||||
printer().setdate(pd);
|
||||
@ -179,7 +154,8 @@ int TStampa_deleghe_IVA::select()
|
||||
}
|
||||
else
|
||||
{
|
||||
warning_box("Nessuna ditta ha deleghe da stampare");
|
||||
warning_box("Nessuna ditta ha deleghe %s da stampare",
|
||||
_contofis ? "per conto fiscale" : "normali");
|
||||
res = 2;
|
||||
}
|
||||
|
||||
@ -187,7 +163,7 @@ int TStampa_deleghe_IVA::select()
|
||||
return res;
|
||||
}
|
||||
|
||||
bool TStampa_deleghe_IVA::menu(MENU_TAG mt)
|
||||
bool TStampa_deleghe_IVA::menu(MENU_TAG)
|
||||
{
|
||||
int s;
|
||||
while ((s = select()) != 0)
|
||||
@ -200,7 +176,7 @@ void TStampa_deleghe_IVA::print()
|
||||
print_deleghe();
|
||||
if (_stampa_distinte)
|
||||
{
|
||||
const bool ok = yesno_box("Inserire il modulo continuo nella stampante "
|
||||
const bool ok = yesno_box("Inserire il modulo di carta nella stampante "
|
||||
"e confermare la stampa della distinta");
|
||||
if (ok) print_distinta();
|
||||
}
|
||||
@ -256,10 +232,10 @@ void TStampa_deleghe_IVA::print_distinta()
|
||||
printer().setheaderline(4, row);
|
||||
|
||||
row.reset();
|
||||
row.put("Ditta", TAB_DITTA);
|
||||
row.put("Sede" , TAB_SEDE);
|
||||
row.put("Ditta", TAB_DITTA);
|
||||
row.put("Sede" , TAB_SEDE);
|
||||
row.put("Importo", TAB_IMPORTO+8);
|
||||
row.put("Note", TAB_NOTE);
|
||||
row.put("Note", TAB_NOTE);
|
||||
printer().setheaderline(3, row);
|
||||
|
||||
real totale;
|
||||
@ -309,7 +285,7 @@ bool TStampa_deleghe_IVA::print_deleghe()
|
||||
bool ok = printer().open();
|
||||
if (!ok) return FALSE;
|
||||
|
||||
TForm f(_profilo);
|
||||
TForm f(_profilo, _codice);
|
||||
|
||||
TCursor& cur = *f.cursor();
|
||||
TLocalisamfile& delega = cur.file();
|
||||
@ -324,7 +300,7 @@ bool TStampa_deleghe_IVA::print_deleghe()
|
||||
chiave.format("%05ld%04d%02d%d", d, _anno, _mese, _tipo);
|
||||
delega.put("CODTAB", chiave);
|
||||
|
||||
cur.read(); // Posiziona il cursore
|
||||
cur.read(); // Posiziona il cursore
|
||||
const bool cera = delega.get_int("S7") != 0;
|
||||
if (!cera)
|
||||
{
|
||||
@ -332,7 +308,7 @@ bool TStampa_deleghe_IVA::print_deleghe()
|
||||
delega.put("S8", _dipendenza);
|
||||
delega.put("S9", r.get(7));
|
||||
delega.rewrite();
|
||||
cur.repos(); // Riposiziona il cursore
|
||||
cur.repos(); // Riposiziona il cursore
|
||||
}
|
||||
|
||||
ok = f.print(-1); // Stampa solo il record corrente
|
||||
|
@ -32,7 +32,6 @@ BEGIN
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
|
||||
NUMBER F_SOLO_ABI 5
|
||||
BEGIN
|
||||
PROMPT 2 3 "Codice ABI "
|
||||
@ -169,8 +168,6 @@ END
|
||||
BOOLEAN F_CONTOFIS
|
||||
BEGIN
|
||||
PROMPT 43 13 "Titolari Conto fiscale"
|
||||
MESSAGE FALSE ENABLE,F_PROFILO
|
||||
MESSAGE TRUE DISABLE,F_PROFILO|"TITCF",F_PROFILO
|
||||
END
|
||||
|
||||
BUTTON DLG_SELECT 9 2
|
||||
|
@ -6,9 +6,8 @@
|
||||
#include <relation.h>
|
||||
#include <sheet.h>
|
||||
#include <tabutil.h>
|
||||
#include <utility.h>
|
||||
|
||||
#include <urldefid.h>
|
||||
#include <utility.h>
|
||||
|
||||
#include "cg1400.h"
|
||||
|
||||
@ -21,7 +20,10 @@ class TStampa_deleghe_IVA : public TApplication
|
||||
|
||||
int _mese, _anno, _tipo;
|
||||
TString16 _azienda, _dipendenza, _concessione;
|
||||
TFilename _profilo;
|
||||
|
||||
TString16 _profilo;
|
||||
long _codice;
|
||||
|
||||
bool _stampa_distinte, _aggiorna_codici, _definitiva, _contofis;
|
||||
|
||||
protected:
|
||||
@ -63,43 +65,15 @@ bool TStampa_deleghe_IVA::create()
|
||||
bool TStampa_deleghe_IVA::destroy()
|
||||
{
|
||||
delete _ditte;
|
||||
|
||||
delete _nditte;
|
||||
delete _banche;
|
||||
|
||||
delete _nditte;
|
||||
return TApplication::destroy();
|
||||
}
|
||||
|
||||
|
||||
HIDDEN bool abi_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
if (k == K_TAB)
|
||||
{
|
||||
TMask& m = f.mask();
|
||||
if (!m.get_bool(F_CONTOFIS))
|
||||
m.set(F_PROFILO, f.get());
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
HIDDEN bool profile_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
if (f.to_check(k))
|
||||
{
|
||||
TFilename p;
|
||||
p << "del" << f.get() << ".frm";
|
||||
if (!fexist(p))
|
||||
error_box("Non esiste il file di profilo %s", (const char*)p);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int TStampa_deleghe_IVA::select()
|
||||
{
|
||||
TMask m("cg1400a");
|
||||
m.set_handler(F_ABI, abi_handler);
|
||||
m.set_handler(F_PROFILO, profile_handler);
|
||||
|
||||
m.set(F_CONCESSIONE, _concessione);
|
||||
m.set(F_ABI, _azienda);
|
||||
@ -119,7 +93,8 @@ int TStampa_deleghe_IVA::select()
|
||||
_contofis = m.get_bool(F_CONTOFIS);
|
||||
|
||||
_profilo = "del";
|
||||
_profilo << m.get(F_PROFILO);
|
||||
if (_contofis) _profilo << "titcf";
|
||||
_codice = m.get_long(F_PROFILO);
|
||||
|
||||
const TDate pd(m.get(F_DATA));
|
||||
printer().setdate(pd);
|
||||
@ -179,7 +154,8 @@ int TStampa_deleghe_IVA::select()
|
||||
}
|
||||
else
|
||||
{
|
||||
warning_box("Nessuna ditta ha deleghe da stampare");
|
||||
warning_box("Nessuna ditta ha deleghe %s da stampare",
|
||||
_contofis ? "per conto fiscale" : "normali");
|
||||
res = 2;
|
||||
}
|
||||
|
||||
@ -187,7 +163,7 @@ int TStampa_deleghe_IVA::select()
|
||||
return res;
|
||||
}
|
||||
|
||||
bool TStampa_deleghe_IVA::menu(MENU_TAG mt)
|
||||
bool TStampa_deleghe_IVA::menu(MENU_TAG)
|
||||
{
|
||||
int s;
|
||||
while ((s = select()) != 0)
|
||||
@ -200,7 +176,7 @@ void TStampa_deleghe_IVA::print()
|
||||
print_deleghe();
|
||||
if (_stampa_distinte)
|
||||
{
|
||||
const bool ok = yesno_box("Inserire il modulo continuo nella stampante "
|
||||
const bool ok = yesno_box("Inserire il modulo di carta nella stampante "
|
||||
"e confermare la stampa della distinta");
|
||||
if (ok) print_distinta();
|
||||
}
|
||||
@ -256,10 +232,10 @@ void TStampa_deleghe_IVA::print_distinta()
|
||||
printer().setheaderline(4, row);
|
||||
|
||||
row.reset();
|
||||
row.put("Ditta", TAB_DITTA);
|
||||
row.put("Sede" , TAB_SEDE);
|
||||
row.put("Ditta", TAB_DITTA);
|
||||
row.put("Sede" , TAB_SEDE);
|
||||
row.put("Importo", TAB_IMPORTO+8);
|
||||
row.put("Note", TAB_NOTE);
|
||||
row.put("Note", TAB_NOTE);
|
||||
printer().setheaderline(3, row);
|
||||
|
||||
real totale;
|
||||
@ -309,7 +285,7 @@ bool TStampa_deleghe_IVA::print_deleghe()
|
||||
bool ok = printer().open();
|
||||
if (!ok) return FALSE;
|
||||
|
||||
TForm f(_profilo);
|
||||
TForm f(_profilo, _codice);
|
||||
|
||||
TCursor& cur = *f.cursor();
|
||||
TLocalisamfile& delega = cur.file();
|
||||
@ -324,7 +300,7 @@ bool TStampa_deleghe_IVA::print_deleghe()
|
||||
chiave.format("%05ld%04d%02d%d", d, _anno, _mese, _tipo);
|
||||
delega.put("CODTAB", chiave);
|
||||
|
||||
cur.read(); // Posiziona il cursore
|
||||
cur.read(); // Posiziona il cursore
|
||||
const bool cera = delega.get_int("S7") != 0;
|
||||
if (!cera)
|
||||
{
|
||||
@ -332,7 +308,7 @@ bool TStampa_deleghe_IVA::print_deleghe()
|
||||
delega.put("S8", _dipendenza);
|
||||
delega.put("S9", r.get(7));
|
||||
delega.rewrite();
|
||||
cur.repos(); // Riposiziona il cursore
|
||||
cur.repos(); // Riposiziona il cursore
|
||||
}
|
||||
|
||||
ok = f.print(-1); // Stampa solo il record corrente
|
||||
|
@ -32,7 +32,6 @@ BEGIN
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
|
||||
NUMBER F_SOLO_ABI 5
|
||||
BEGIN
|
||||
PROMPT 2 3 "Codice ABI "
|
||||
@ -169,8 +168,6 @@ END
|
||||
BOOLEAN F_CONTOFIS
|
||||
BEGIN
|
||||
PROMPT 43 13 "Titolari Conto fiscale"
|
||||
MESSAGE FALSE ENABLE,F_PROFILO
|
||||
MESSAGE TRUE DISABLE,F_PROFILO|"TITCF",F_PROFILO
|
||||
END
|
||||
|
||||
BUTTON DLG_SELECT 9 2
|
||||
|
180
cg/cg2100.cpp
180
cg/cg2100.cpp
@ -1,4 +1,5 @@
|
||||
#include <config.h>
|
||||
#include <mailbox.h>
|
||||
#include <tabutil.h>
|
||||
#include <utility.h>
|
||||
#include <urldefid.h>
|
||||
@ -12,7 +13,7 @@
|
||||
|
||||
// Nomi dei campi
|
||||
#include <mov.h>
|
||||
#include <causali.h>
|
||||
#include <clifo.h>
|
||||
#include <rcausali.h>
|
||||
|
||||
TPrimanota_application::TPrimanota_application()
|
||||
@ -876,6 +877,8 @@ int TPrimanota_application::write(const TMask& m)
|
||||
_partite.write();
|
||||
}
|
||||
}
|
||||
|
||||
link_m770();
|
||||
}
|
||||
|
||||
lasterr = err;
|
||||
@ -891,15 +894,18 @@ int TPrimanota_application::rewrite(const TMask& m)
|
||||
{
|
||||
_saldi.registra();
|
||||
check_saldi();
|
||||
}
|
||||
|
||||
if (_is_saldaconto)
|
||||
{
|
||||
if (iva() != nessuna_iva)
|
||||
write_scadenze(m);
|
||||
else
|
||||
_partite.rewrite();
|
||||
}
|
||||
|
||||
link_m770();
|
||||
}
|
||||
|
||||
if (_is_saldaconto)
|
||||
{
|
||||
if (iva() != nessuna_iva)
|
||||
write_scadenze(m);
|
||||
else
|
||||
_partite.rewrite();
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
@ -1085,6 +1091,162 @@ void TPrimanota_application::genera_incasso(const char* causimm)
|
||||
}
|
||||
|
||||
|
||||
long TPrimanota_application::calcola_m770(int tipo_coll, real& spese, real& compenso,
|
||||
real& iva, real& ritfis)
|
||||
{
|
||||
const int m770 = causale().link_m770();
|
||||
long forn = 0;
|
||||
|
||||
if (tipo_coll == 1)
|
||||
{
|
||||
TString_array& riva = ivas().rows_array();
|
||||
TCodiceIVA codiva;
|
||||
for (int i = 0; i < riva.items(); i++)
|
||||
{
|
||||
TToken_string& row = riva.row(i);
|
||||
codiva.read(row.get(1));
|
||||
const TString& tipoiva = codiva.tipo();
|
||||
|
||||
const real imponibile(row.get(0));
|
||||
if ((tipoiva == "ES" || tipoiva == "NI" ||tipoiva == "NS") && riva.items() > 1)
|
||||
{
|
||||
if (m770 != 5)
|
||||
spese += imponibile;
|
||||
}
|
||||
else
|
||||
compenso += imponibile;
|
||||
|
||||
const real imposta(row.get(3));
|
||||
iva += imposta;
|
||||
}
|
||||
|
||||
i = type2pos('F');
|
||||
if (i >= 0)
|
||||
{
|
||||
TImporto imp; imp = cgs().row(i);
|
||||
ritfis = imp.valore();
|
||||
}
|
||||
}
|
||||
|
||||
if (tipo_coll == 3 || tipo_coll == 6)
|
||||
{
|
||||
TBill zio; causale().bill(1, zio);
|
||||
TImporto imp;
|
||||
|
||||
TString_array& rcg = cgs().rows_array();
|
||||
for (int i = 0; i < rcg.items(); i++)
|
||||
{
|
||||
TToken_string& row = rcg.row(i);
|
||||
imp = row;
|
||||
if (tipo_coll == 3)
|
||||
{
|
||||
const char cf = row.get_char(2);
|
||||
if (cf == 'F')
|
||||
{
|
||||
if (forn == 0)
|
||||
forn = row.get_long(5);
|
||||
else
|
||||
{
|
||||
forn = 0;
|
||||
compenso = ZERO;
|
||||
break;
|
||||
}
|
||||
compenso = imp.valore();
|
||||
}
|
||||
} else
|
||||
if (tipo_coll == 6)
|
||||
compenso += imp.valore();
|
||||
}
|
||||
}
|
||||
|
||||
return forn;
|
||||
}
|
||||
|
||||
|
||||
bool TPrimanota_application::link_m770()
|
||||
{
|
||||
const int m770 = causale().link_m770();
|
||||
if (!has_module(4) || iva() == iva_vendite || m770 == 0)
|
||||
return FALSE;
|
||||
|
||||
int tipo_coll = 0;
|
||||
char tipper = ' ';
|
||||
long codper = 0;
|
||||
real spese, compenso, imposte, ritenute;
|
||||
|
||||
if (iva() == iva_acquisti)
|
||||
{
|
||||
if (m770 == 1 || m770 == 5)
|
||||
{
|
||||
TLocalisamfile fornitori(LF_CLIFO);
|
||||
fornitori.put("TIPOCF", "F");
|
||||
fornitori.put("CODCF", curr_mask().get(F_FORNITORE));
|
||||
fornitori.read();
|
||||
tipper = fornitori.get_char(CLI_TIPOAPER);
|
||||
codper = fornitori.get_long(CLI_CODANAGPER);
|
||||
if (codper > 0)
|
||||
calcola_m770(tipo_coll = 1, spese, compenso, imposte, ritenute);
|
||||
}
|
||||
}
|
||||
else
|
||||
switch (m770)
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
const long f = calcola_m770(tipo_coll = 3, spese, compenso, imposte, ritenute);
|
||||
if (f != 0)
|
||||
{
|
||||
TLocalisamfile fornitori(LF_CLIFO);
|
||||
fornitori.put("TIPOCF", "F");
|
||||
fornitori.put("CODCF", f);
|
||||
fornitori.read();
|
||||
tipper = fornitori.get_char(CLI_TIPOAPER);
|
||||
codper = fornitori.get_long(CLI_CODANAGPER);
|
||||
}
|
||||
else tipo_coll = 7;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
tipo_coll = 4;
|
||||
break;
|
||||
case 6:
|
||||
calcola_m770(tipo_coll = 6, spese, compenso, imposte, ritenute);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (tipo_coll)
|
||||
{
|
||||
TToken_string s(80);
|
||||
s.add(tipo_coll);
|
||||
s.add(curr_mask().insert_mode() ? "I" : "M");
|
||||
s.add(tipper);
|
||||
s.add(codper);
|
||||
s.add(curr_mask().get(F_NUMREG));
|
||||
s.add(curr_mask().get(F_NUMDOC));
|
||||
s.add(curr_mask().get(F_DATADOC));
|
||||
if (iva() == iva_acquisti)
|
||||
s.add(curr_mask().get(F_TOTALE));
|
||||
else
|
||||
s.add("");
|
||||
s.add(spese.string());
|
||||
s.add(compenso.string());
|
||||
s.add(imposte.string());
|
||||
s.add(ritenute.string());
|
||||
|
||||
const char* name = (tipo_coll == 4) ? "770 -1" : "770 -0";
|
||||
TMessage m(name, "LINK770", s);
|
||||
m.send();
|
||||
|
||||
TExternal_app a(name);
|
||||
a.run();
|
||||
}
|
||||
|
||||
return tipo_coll > 0;
|
||||
}
|
||||
|
||||
|
||||
int cg2100 (int argc, char** argv)
|
||||
{
|
||||
TPrimanota_application a;
|
||||
|
@ -270,7 +270,6 @@ int TPrimanota_application::det_used(char det) const
|
||||
return users;
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// Gestione sheet CG
|
||||
///////////////////////////////////////////////////////////
|
||||
|
@ -134,7 +134,8 @@ protected: // TRelation_application
|
||||
virtual int write(const TMask& m);
|
||||
virtual int rewrite(const TMask& m);
|
||||
virtual bool remove();
|
||||
|
||||
virtual void write_enable(bool) {}
|
||||
|
||||
protected:
|
||||
void check_saldi();
|
||||
void genera_incasso(const char* causimm);
|
||||
@ -217,6 +218,9 @@ protected:
|
||||
|
||||
bool notify_cgline_deletion(TPartita& partita, long nreg, int numrig);
|
||||
bool notify_cgline_deletion(int numrig);
|
||||
|
||||
long calcola_m770(int tipo_coll, real& spese, real& compenso, real& iva, real& ritfis);
|
||||
bool link_m770();
|
||||
|
||||
public:
|
||||
static TPrimanota_application& app() { return (TPrimanota_application&)main_app(); }
|
||||
|
@ -299,7 +299,7 @@ bool TCausale::read(const char* cod, int year)
|
||||
for (int riga = 1; riga < size(); riga++) // Fill gaps
|
||||
if (objptr(riga) == NULL) add(rcaus.curr(), riga);
|
||||
|
||||
TString16 codreg(caus.get("REG"));
|
||||
TString16 codreg(caus.get(CAU_REG));
|
||||
const bool ok = _reg.read(codreg, year); // Read register
|
||||
if (!ok && codreg.not_empty())
|
||||
return error_box("Non esiste il registro '%s' per l'anno %d",
|
||||
@ -354,38 +354,41 @@ const char* TCausale::codice() const
|
||||
|
||||
|
||||
bool TCausale::data_doc() const
|
||||
{ return _rec.get_bool("DATADOC"); }
|
||||
{ return _rec.get_bool(CAU_DATADOC); }
|
||||
|
||||
bool TCausale::num_doc() const
|
||||
{ return _rec.get_bool("NUMDOC"); }
|
||||
{ return _rec.get_bool(CAU_NUMDOC); }
|
||||
|
||||
bool TCausale::apertura() const
|
||||
{ return _rec.get_char("MOVAP") == 'A'; }
|
||||
{ return _rec.get_char(CAU_MOVAP) == 'A'; }
|
||||
|
||||
bool TCausale::sezionale() const
|
||||
{ return _rec.get_bool("MOVSEZ"); }
|
||||
{ return _rec.get_bool(CAU_MOVSEZ); }
|
||||
|
||||
bool TCausale::valuta() const
|
||||
{ return _rec.get_bool("MOVVAL"); }
|
||||
{ return _rec.get_bool(CAU_MOVVAL); }
|
||||
|
||||
bool TCausale::intra() const
|
||||
{ return _rec.get_bool("INTRACOM"); }
|
||||
{ return _rec.get_bool(CAU_INTRACOM); }
|
||||
|
||||
bool TCausale::valintra() const
|
||||
{ return _rec.get_bool("VALINTRA"); }
|
||||
{ return _rec.get_bool(CAU_VALINTRA); }
|
||||
|
||||
const char* TCausale::causale_inc_imm() const
|
||||
{ return _rec.get("CODCAUSIM"); }
|
||||
{ return _rec.get(CAU_CODCAUSIM); }
|
||||
|
||||
const char* TCausale::tipo_doc() const
|
||||
{ return _rec.get("TIPODOC"); }
|
||||
{ return _rec.get(CAU_TIPODOC); }
|
||||
|
||||
int TCausale::tipomov() const
|
||||
{ return _rec.get_int("TIPOMOV"); }
|
||||
{ return _rec.get_int(CAU_TIPOMOV); }
|
||||
|
||||
bool TCausale::saldaconto() const
|
||||
{ return tipomov() > 0; }
|
||||
|
||||
int TCausale::link_m770() const
|
||||
{ return _rec.get_int(CAU_M770); }
|
||||
|
||||
bool TCausale::ok() const
|
||||
{
|
||||
if (iva() == iva_errata)
|
||||
@ -431,12 +434,12 @@ void TCausale::calcIVA()
|
||||
TipoIVA i = nessuna_iva; // Tipo IVA di default
|
||||
bool c = FALSE; // Corrispettivi di default
|
||||
|
||||
const TString16 tipodoc(_rec.get("TIPODOC"));
|
||||
if (tipodoc.not_empty())
|
||||
const TString16 td(tipo_doc());
|
||||
if (td.not_empty())
|
||||
{
|
||||
TTable tpd("%TPD");
|
||||
tpd.setkey(1);
|
||||
tpd.put("CODTAB", tipodoc);
|
||||
tpd.put("CODTAB", td);
|
||||
if (tpd.read() == NOERR)
|
||||
{
|
||||
i = (TipoIVA)tpd.get_int("I0"); // IVA acquisti, vendite, generica
|
||||
@ -445,12 +448,12 @@ void TCausale::calcIVA()
|
||||
i = ri;
|
||||
if (i != ri)
|
||||
{
|
||||
error_box("Tipo documento '%s' incompatibile con tipo registro", (const char*)tipodoc);
|
||||
error_box("Tipo documento '%s' incompatibile con tipo registro", (const char*)td);
|
||||
i = iva_errata;
|
||||
}
|
||||
c = tpd.get_bool("B0");
|
||||
}
|
||||
else error_box("Tipo documento sconosciuto: '%s'", (const char*)tipodoc);
|
||||
else error_box("Tipo documento sconosciuto: '%s'", (const char*)td);
|
||||
}
|
||||
_iva = i;
|
||||
_corrisp = c;
|
||||
|
@ -90,10 +90,12 @@ class TCausale : public TArray
|
||||
char _sezione_clifo, _sezione_ritsoc;
|
||||
|
||||
protected:
|
||||
|
||||
const TRectype& row(int num) const;
|
||||
void calcIVA();
|
||||
|
||||
public: // TObject
|
||||
virtual bool ok() const;
|
||||
|
||||
public:
|
||||
TBill& bill(int num, TBill& c) const;
|
||||
|
||||
@ -116,8 +118,8 @@ public:
|
||||
bool corrispettivi() const { return _corrisp; }
|
||||
int tipomov() const;
|
||||
bool saldaconto() const;
|
||||
int link_m770() const;
|
||||
|
||||
virtual bool ok() const;
|
||||
bool similar(const TCausale& c) const;
|
||||
|
||||
char sezione(int riga) const;
|
||||
@ -130,6 +132,7 @@ public:
|
||||
virtual ~TCausale() {}
|
||||
};
|
||||
|
||||
|
||||
class TCodiceIVA : public TRectype
|
||||
{
|
||||
public:
|
||||
|
Loading…
x
Reference in New Issue
Block a user