Merge branch 'R12.00.1136' of http://10.65.20.33/sirio/CAMPO/campo into R12.00.1136
This commit is contained in:
commit
cfe082f8b0
4
cd/test/cg1138.txt
Normal file
4
cd/test/cg1138.txt
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
cg4.exe
|
||||||
|
|
||||||
|
Corretta imputazione quadro VT ora viene usato il comune dell'unità locale
|
||||||
|
corretto calcolo imponibile nel caso di fatture pagate nel periodo in acluni casi aggiungieva l'imonibile 2 volte
|
98
cd/test/cg1138a.ini
Normal file
98
cd/test/cg1138a.ini
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
[Main]
|
||||||
|
Demo=0
|
||||||
|
|
||||||
|
[cg4]
|
||||||
|
File(84) = cg4.exe|X
|
||||||
|
Patch = 1138
|
||||||
|
Versione = 21511200
|
||||||
|
|
||||||
|
[cg99]
|
||||||
|
Kill(0) = bastdpn.msk|x
|
||||||
|
Kill(1) = batbins.msk|x
|
||||||
|
Kill(2) = batbvet.msk|x
|
||||||
|
Kill(3) = bastcve.msk|x
|
||||||
|
Kill(4) = batbver.msk|x
|
||||||
|
Kill(5) = bastnot.rep|x
|
||||||
|
Kill(6) = batbcfi.msk|x
|
||||||
|
Kill(7) = batbtra.msk|x
|
||||||
|
Kill(8) = batbscc.msk|x
|
||||||
|
Kill(9) = bastcfi.msk|x
|
||||||
|
Kill(10) = bastdpn.rep|x
|
||||||
|
Kill(11) = bastpdb.rep|x
|
||||||
|
Kill(12) = bastzon.rep|x
|
||||||
|
Kill(13) = batbind.msk|x
|
||||||
|
Kill(14) = bastzon.msk|x
|
||||||
|
Kill(15) = batbdel.msk|x
|
||||||
|
Kill(16) = batbleg.msk|x
|
||||||
|
Kill(17) = bastleg.msk|x
|
||||||
|
Kill(18) = bastscc.rep|x
|
||||||
|
Kill(19) = bastesc.rep|x
|
||||||
|
Kill(20) = bastcco.msk|x
|
||||||
|
Kill(21) = cgtbcon.msk|x
|
||||||
|
Kill(22) = cg2fppro.msk|x
|
||||||
|
Kill(23) = bastreg.rep|x
|
||||||
|
Kill(24) = bastcam.rep|x
|
||||||
|
Kill(25) = bastcam.msk|x
|
||||||
|
Kill(26) = bastivd.rep|x
|
||||||
|
Kill(27) = batbndo.msk|x
|
||||||
|
Kill(28) = bastvet.rep|x
|
||||||
|
Kill(29) = bastndo.msk|x
|
||||||
|
Kill(30) = batbcve.msk|x
|
||||||
|
Kill(31) = bastivd.msk|x
|
||||||
|
Kill(32) = bastarb.msk|x
|
||||||
|
Kill(33) = bastmsp.msk|x
|
||||||
|
Kill(34) = batbntb.msk|x
|
||||||
|
Kill(35) = bastscc.msk|x
|
||||||
|
Kill(36) = bastver.msk|x
|
||||||
|
Kill(37) = batbesc.msk|x
|
||||||
|
Kill(38) = bastleg.rep|x
|
||||||
|
Kill(39) = bastver.rep|x
|
||||||
|
Kill(40) = batbtit.msk|x
|
||||||
|
Kill(41) = batbmsp.msk|x
|
||||||
|
Kill(42) = batblia.msk|x
|
||||||
|
Kill(43) = bastntb.rep|x
|
||||||
|
Kill(44) = batbcam.msk|x
|
||||||
|
Kill(45) = bastcco.rep|x
|
||||||
|
Kill(46) = batbcco.msk|x
|
||||||
|
Kill(47) = bastnot.msk|x
|
||||||
|
Kill(48) = batbinl.msk|x
|
||||||
|
Kill(49) = bastarb.rep|x
|
||||||
|
Kill(50) = batbivd.msk|x
|
||||||
|
Kill(51) = bastntb.msk|x
|
||||||
|
Kill(52) = bastreg.msk|x
|
||||||
|
Kill(53) = batblia.msk|x
|
||||||
|
Kill(54) = bastpor.msk|x
|
||||||
|
Kill(55) = bastvet.msk|x
|
||||||
|
Kill(56) = bastcfi.rep|x
|
||||||
|
Kill(57) = bastpor.rep|x
|
||||||
|
Kill(58) = bastpdb.msk|x
|
||||||
|
Kill(59) = bastesc.msk|x
|
||||||
|
Kill(60) = batbdpn.msk|x
|
||||||
|
Kill(61) = batblbu.msk|x
|
||||||
|
Kill(62) = bastcve.rep|x
|
||||||
|
Kill(63) = bastndo.rep|x
|
||||||
|
Kill(64) = batbpdb.msk|x
|
||||||
|
Kill(65) = batbzon.msk|x
|
||||||
|
Kill(66) = batbnot.msk|x
|
||||||
|
Kill(67) = batbarb.msk|x
|
||||||
|
Kill(68) = batbpor.msk|x
|
||||||
|
Kill(69) = bastmsp.rep|x
|
||||||
|
Kill(70) = batbreg.msk|x
|
||||||
|
|
||||||
|
[cg]
|
||||||
|
Data = 21-04-2022
|
||||||
|
Descrizione = Contabilita' Generale
|
||||||
|
Dischi = 1
|
||||||
|
Edit_19 = cg0 -0
|
||||||
|
Edit_20 = cg0 -1
|
||||||
|
Edit_26 = cg0 -4
|
||||||
|
Edit_5 = cg0 -5
|
||||||
|
Moduli = ba
|
||||||
|
OEM =
|
||||||
|
Patch = 1138
|
||||||
|
PostProcess = bainst -0 CG
|
||||||
|
PreProcess =
|
||||||
|
Prezzo(1) =
|
||||||
|
Prezzo(2) =
|
||||||
|
Versione = 21511200
|
||||||
|
|
BIN
cd/test/cg1138a1.zip
Normal file
BIN
cd/test/cg1138a1.zip
Normal file
Binary file not shown.
4
cd/test/ve1138.txt
Normal file
4
cd/test/ve1138.txt
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
ve4300a.msk
|
||||||
|
ve4.exe
|
||||||
|
|
||||||
|
Corretto bug "Controllo IBAN da documenti". mancava la maschera
|
130
cd/test/ve1138a.ini
Normal file
130
cd/test/ve1138a.ini
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
[Main]
|
||||||
|
Demo=0
|
||||||
|
|
||||||
|
[ve4]
|
||||||
|
File(281) = ve4300a.msk|X
|
||||||
|
File(282) = ve4.exe|X
|
||||||
|
Patch = 1138
|
||||||
|
Versione = 21511200
|
||||||
|
|
||||||
|
[ve99]
|
||||||
|
Kill(0) = batbcld.msk|x
|
||||||
|
Kill(1) = bastspp.rep|x
|
||||||
|
Kill(2) = batbspp.msk|x
|
||||||
|
Kill(3) = bastgmc.rep|x
|
||||||
|
Kill(4) = bastfca.msk|x
|
||||||
|
Kill(5) = bastrfc.msk|x
|
||||||
|
Kill(6) = batbabe.msk|x
|
||||||
|
Kill(7) = basttip.msk|x
|
||||||
|
Kill(8) = batbfrm.msk|x
|
||||||
|
Kill(9) = efstbnp.msk|x
|
||||||
|
Kill(10) = batbrfc.msk|x
|
||||||
|
Kill(11) = bastprs.msk|x
|
||||||
|
Kill(12) = ve7200a.frm|x
|
||||||
|
Kill(13) = bastimb.msk|x
|
||||||
|
Kill(14) = bastcaa.msk|x
|
||||||
|
Kill(15) = batbums.msk|x
|
||||||
|
Kill(16) = bastfrr.rep|x
|
||||||
|
Kill(17) = bastasf.msk|x
|
||||||
|
Kill(18) = ve7400a.msk|x
|
||||||
|
Kill(19) = batbgca.msk|x
|
||||||
|
Kill(20) = ve7200a.msk|x
|
||||||
|
Kill(21) = basttri.msk|x
|
||||||
|
Kill(22) = batbgmc.msk|x
|
||||||
|
Kill(23) = bastnum.msk|x
|
||||||
|
Kill(24) = basteld.rep|x
|
||||||
|
Kill(25) = bastfrd.msk|x
|
||||||
|
Kill(26) = ve7701a.ini|x
|
||||||
|
Kill(27) = batbfrr.msk|x
|
||||||
|
Kill(28) = bastcaa.rep|x
|
||||||
|
Kill(29) = batbtag.msk|x
|
||||||
|
Kill(30) = bastbnp.msk|x
|
||||||
|
Kill(31) = bastfrm.msk|x
|
||||||
|
Kill(32) = bastrfc.rep|x
|
||||||
|
Kill(33) = batbmre.msk|x
|
||||||
|
Kill(34) = batbfid.msk|x
|
||||||
|
Kill(35) = batbgsa.msk|x
|
||||||
|
Kill(36) = ve7300a.frm|x
|
||||||
|
Kill(37) = batbspt.msk|x
|
||||||
|
Kill(38) = batbpro.msk|x
|
||||||
|
Kill(39) = ve7400a.ini|x
|
||||||
|
Kill(40) = ve7400conf.ini|x
|
||||||
|
Kill(41) = batbnum.msk|x
|
||||||
|
Kill(42) = batbprs.msk|x
|
||||||
|
Kill(43) = bastctr.rep|x
|
||||||
|
Kill(44) = batbtri.msk|x
|
||||||
|
Kill(45) = bastrfa.msk|x
|
||||||
|
Kill(46) = bastnum.rep|x
|
||||||
|
Kill(47) = batbfsa.msk|x
|
||||||
|
Kill(48) = bastgca.rep|x
|
||||||
|
Kill(49) = ve7700a.msk|x
|
||||||
|
Kill(50) = batbrfa.msk|x
|
||||||
|
Kill(51) = batbgcg.msk|x
|
||||||
|
Kill(52) = batbprv.msk|x
|
||||||
|
Kill(53) = bastfrr.msk|x
|
||||||
|
Kill(54) = bastcau.msk|x
|
||||||
|
Kill(55) = batbcau.msk|x
|
||||||
|
Kill(56) = bastubi.msk|x
|
||||||
|
Kill(57) = bastgmc.msk|x
|
||||||
|
Kill(58) = bastubi.rep|x
|
||||||
|
Kill(59) = batbstd.msk|x
|
||||||
|
Kill(60) = batbtip.msk|x
|
||||||
|
Kill(61) = bastgcg.msk|x
|
||||||
|
Kill(62) = bastimb.rep|x
|
||||||
|
Kill(63) = basttag.msk|x
|
||||||
|
Kill(64) = basteld.msk|x
|
||||||
|
Kill(65) = batbbnp.msk|x
|
||||||
|
Kill(66) = bastums.rep|x
|
||||||
|
Kill(67) = bastctr.msk|x
|
||||||
|
Kill(68) = bastcau.rep|x
|
||||||
|
Kill(69) = batbasf.msk|x
|
||||||
|
Kill(70) = batbubi.msk|x
|
||||||
|
Kill(71) = bastasf.rep|x
|
||||||
|
Kill(72) = basttri.rep|x
|
||||||
|
Kill(73) = bastcra.msk|x
|
||||||
|
Kill(74) = bastgca.msk|x
|
||||||
|
Kill(75) = bastfrd.rep|x
|
||||||
|
Kill(76) = batbctr.msk|x
|
||||||
|
Kill(77) = basttag.rep|x
|
||||||
|
Kill(78) = batbfrd.msk|x
|
||||||
|
Kill(79) = ve7500a.msk|x
|
||||||
|
Kill(80) = bastabe.rep|x
|
||||||
|
Kill(81) = ve7600a.msk|x
|
||||||
|
Kill(82) = efstbnp.rep|x
|
||||||
|
Kill(83) = bastabe.msk|x
|
||||||
|
Kill(84) = ve7.exe|x
|
||||||
|
Kill(85) = bastprs.rep|x
|
||||||
|
Kill(86) = basttip.rep|x
|
||||||
|
Kill(87) = bastfca.rep|x
|
||||||
|
Kill(88) = baststd.msk|x
|
||||||
|
Kill(89) = ve7100a.msk|x
|
||||||
|
Kill(90) = bastrfa.rep|x
|
||||||
|
Kill(91) = bastgcg.rep|x
|
||||||
|
Kill(92) = baststd.rep|x
|
||||||
|
Kill(93) = bastspp.msk|x
|
||||||
|
Kill(94) = batbcaa.msk|x
|
||||||
|
Kill(95) = batbeld.msk|x
|
||||||
|
Kill(96) = bastcra.rep|x
|
||||||
|
Kill(97) = batbfca.msk|x
|
||||||
|
Kill(98) = batbacr.msk|x
|
||||||
|
Kill(99) = batbimb.msk|x
|
||||||
|
Kill(100) = bastfrm.rep|x
|
||||||
|
Kill(101) = eftbbnp.msk|x
|
||||||
|
Kill(102) = bastbnp.rep|x
|
||||||
|
Kill(103) = bastums.msk|x
|
||||||
|
Kill(104) = batbcra.msk|x
|
||||||
|
Kill(105) = ve7300a.msk|x
|
||||||
|
|
||||||
|
[ve]
|
||||||
|
Data = 26-04-2022
|
||||||
|
Descrizione = Vendite
|
||||||
|
Dischi = 1
|
||||||
|
Moduli = ba,cg0, cg9,pr9,mg9,sv9,in9,ef9
|
||||||
|
OEM =
|
||||||
|
Patch = 1138
|
||||||
|
PostProcess = bainst -0 VE
|
||||||
|
PreProcess =
|
||||||
|
Prezzo(1) =
|
||||||
|
Prezzo(2) =
|
||||||
|
Versione = 21511200
|
||||||
|
|
BIN
cd/test/ve1138a1.zip
Normal file
BIN
cd/test/ve1138a1.zip
Normal file
Binary file not shown.
@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
#include <nditte.h>
|
#include <nditte.h>
|
||||||
#include <attiv.h>
|
#include <attiv.h>
|
||||||
|
#include <unloc.h>
|
||||||
#include <causali.h>
|
#include <causali.h>
|
||||||
#include <tab1100.h>
|
#include <tab1100.h>
|
||||||
#include <mov.h>
|
#include <mov.h>
|
||||||
@ -35,19 +36,21 @@
|
|||||||
#ifdef DBG
|
#ifdef DBG
|
||||||
|
|
||||||
#define _BREAK(func, par, values) func(par, values);
|
#define _BREAK(func, par, values) func(par, values);
|
||||||
#define BREAK_DBG _BREAK(check_nreg, __nreg, __values)
|
#define BREAK_NREG _BREAK(check_nreg, __nreg, __nregs)
|
||||||
#define LOAD_VAL load_values()
|
#define BREAK_CODIVA(codiva) _BREAK(check_codiva, codiva, __codivas)
|
||||||
|
#define LOAD_VAL(sel) load_values(sel)
|
||||||
|
|
||||||
const char * load_values()
|
const char * load_values(int selector)
|
||||||
{
|
{
|
||||||
TFilename dbgname;
|
TFilename dbgname;
|
||||||
TFilename filename("dbg");
|
TFilename filename("dbg");
|
||||||
|
const char * names[] = { "NReg", "CodIVA"};
|
||||||
|
|
||||||
filename << main_app().name();
|
filename << main_app().name();
|
||||||
dbgname.currdir();
|
dbgname.currdir();
|
||||||
dbgname.add(filename);
|
dbgname.add(filename);
|
||||||
dbgname.ext("ini");
|
dbgname.ext("ini");
|
||||||
return ini_get_string(dbgname, "Main", "Values");
|
return ini_get_string(dbgname, "Main", names[selector]);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool check_nreg(TToken_string &nreg, TToken_string &values)
|
bool check_nreg(TToken_string &nreg, TToken_string &values)
|
||||||
@ -61,8 +64,20 @@ bool check_nreg(TToken_string &nreg, TToken_string &values)
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool check_codiva(const TString4 &codiva, TToken_string &values)
|
||||||
|
{
|
||||||
|
|
||||||
|
FOR_EACH_TOKEN(values, val)
|
||||||
|
{
|
||||||
|
if (codiva == val)
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
#define BREAK_DBG
|
#define BREAK_NREG
|
||||||
|
#define BREAK_CODIVA
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
bool TLiquidazione_app::recalc_all()
|
bool TLiquidazione_app::recalc_all()
|
||||||
@ -338,7 +353,7 @@ bool TLiquidazione_app::update_firm(int month, bool recalc)
|
|||||||
TString8 cattiv(codatt);
|
TString8 cattiv(codatt);
|
||||||
cattiv << tipoatt;
|
cattiv << tipoatt;
|
||||||
|
|
||||||
const bool waspla = look_pla(cattiv); // perchè sta cosa ) , has_single_activity);
|
const bool waspla = look_pla(cattiv, has_single_activity);
|
||||||
if (!waspla)
|
if (!waspla)
|
||||||
break; // Non calcolare attività inesistenti 29-11-2012
|
break; // Non calcolare attività inesistenti 29-11-2012
|
||||||
|
|
||||||
@ -1148,10 +1163,11 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
|
|||||||
TDate date = _mov->get(MOV_DATAREG);
|
TDate date = _mov->get(MOV_DATAREG);
|
||||||
#ifdef DBG
|
#ifdef DBG
|
||||||
TToken_string __nreg = _mov->get(MOV_NUMREG);
|
TToken_string __nreg = _mov->get(MOV_NUMREG);
|
||||||
TToken_string __values = LOAD_VAL;
|
TToken_string __nregs = LOAD_VAL(0);
|
||||||
|
TToken_string __codivas = LOAD_VAL(1);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
BREAK_DBG;
|
BREAK_NREG;
|
||||||
const int liqmonth = _mov->get_int(MOV_MESELIQ);
|
const int liqmonth = _mov->get_int(MOV_MESELIQ);
|
||||||
const TString4 reg = _mov->get("REG");
|
const TString4 reg = _mov->get("REG");
|
||||||
const bool isreg = look_reg(reg);
|
const bool isreg = look_reg(reg);
|
||||||
@ -1199,7 +1215,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
|
|||||||
TPartite_array arrpart; // Partite interessate
|
TPartite_array arrpart; // Partite interessate
|
||||||
TPointer_array pagscatt; // Righe di pagsca interessate
|
TPointer_array pagscatt; // Righe di pagsca interessate
|
||||||
|
|
||||||
BREAK_DBG;
|
BREAK_NREG;
|
||||||
if (fattrit)
|
if (fattrit)
|
||||||
dok = (atoi(_year) == datadoc.year()) && _month == 13;
|
dok = (atoi(_year) == datadoc.year()) && _month == 13;
|
||||||
|
|
||||||
@ -1221,7 +1237,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
|
|||||||
bool game_found = false;
|
bool game_found = false;
|
||||||
TImporto residuo;
|
TImporto residuo;
|
||||||
|
|
||||||
BREAK_DBG;
|
BREAK_NREG;
|
||||||
if (has_sc)
|
if (has_sc)
|
||||||
{
|
{
|
||||||
arrpart.add_numreg(numreg);
|
arrpart.add_numreg(numreg);
|
||||||
@ -1253,12 +1269,9 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
|
|||||||
bool regular_month = orizzonte >= date;
|
bool regular_month = orizzonte >= date;
|
||||||
bool first_month = regular_month && date > inizio + 1L;
|
bool first_month = regular_month && date > inizio + 1L;
|
||||||
|
|
||||||
BREAK_DBG;
|
BREAK_NREG;
|
||||||
#ifdef DBG
|
|
||||||
if (rp.get_long(PART_NREG) == 100616)
|
|
||||||
int i = 1;
|
|
||||||
#endif
|
|
||||||
flag_pg_nc = rp.calcola_pagato_periodo(first_month ? botime : inizio + 1L, orizzonte, pg_per, nc_per, &pagscatt) && regular_month;
|
flag_pg_nc = rp.calcola_pagato_periodo(first_month ? botime : inizio + 1L, orizzonte, pg_per, nc_per, &pagscatt) && regular_month;
|
||||||
|
if (IMPORTO_NON_ZERO(residuo))
|
||||||
residuo += pg_per;
|
residuo += pg_per;
|
||||||
if (pagscatt.items() >= 2)
|
if (pagscatt.items() >= 2)
|
||||||
{
|
{
|
||||||
@ -1304,7 +1317,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
|
|||||||
if (ps == obj)
|
if (ps == obj)
|
||||||
{
|
{
|
||||||
found = true;
|
found = true;
|
||||||
BREAK_DBG;
|
BREAK_NREG;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!found)
|
if (!found)
|
||||||
@ -1367,7 +1380,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
|
|||||||
datainc = data_end_cassa;
|
datainc = data_end_cassa;
|
||||||
#ifdef DBG
|
#ifdef DBG
|
||||||
else
|
else
|
||||||
BREAK_DBG;
|
BREAK_NREG;
|
||||||
#endif
|
#endif
|
||||||
_mov->put(MOV_DATAINC, datainc);
|
_mov->put(MOV_DATAINC, datainc);
|
||||||
if (datainc < date)
|
if (datainc < date)
|
||||||
@ -1450,10 +1463,10 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
|
|||||||
real nin_iva = ZERO; // imposta non incassati
|
real nin_iva = ZERO; // imposta non incassati
|
||||||
|
|
||||||
const TString4 codiva = _rmoviva->get(RMI_CODIVA);
|
const TString4 codiva = _rmoviva->get(RMI_CODIVA);
|
||||||
TCodiceIVA civa(codiva);
|
const TCodiceIVA& civa = cached_codIVA(codiva);
|
||||||
|
|
||||||
#ifdef DBG
|
#ifdef DBG
|
||||||
BREAK_DBG;
|
BREAK_NREG;
|
||||||
if (tipomov == vendite)
|
if (tipomov == vendite)
|
||||||
int i = 1;
|
int i = 1;
|
||||||
if (!bIsMovDiff && (civa.percentuale() == 20))
|
if (!bIsMovDiff && (civa.percentuale() == 20))
|
||||||
@ -1466,17 +1479,16 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
look_iva(codiva); // da eliminare esso per evitare un problema di non lettura _iva ve eliminato
|
const TString4 tipoiva = civa.tipo();
|
||||||
const TString4 tipoiva = _iva->get("S1");
|
const TString4 tipoes_v = civa.IVA11_vendite();
|
||||||
const TString4 tipoes_v = _iva->get("S2");
|
const TString4 tipoes_a = civa.IVA11_acquisti();
|
||||||
const TString4 tipoes_a = _iva->get("S9");
|
const int tipoagr = civa.tipo_IVA_agricola(); // 2/9/2015 was S4
|
||||||
const int tipoagr = _iva->get_int("I4"); // 2/9/2015 was S4
|
const int tipoag = civa.tipo_agenzie_viaggio();
|
||||||
const int tipoag = _iva->get_int("S5");
|
const int tipopla = civa.tipo_plafond();
|
||||||
const int tipopla = _iva->get_int("S3");
|
int isrimbinfr = civa.codice_rimborso_infrannuale(); // vale per calcolo rimborso se ES o NI
|
||||||
int isrimbinfr = _iva->get_bool("B3"); // vale per calcolo rimborso se ES o NI
|
const real perciva = civa.moltiplicatore_percentuale();
|
||||||
const real perciva = _iva->get_real("R0") / CENTO;
|
int ivarimb = !civa.escluso_dal_rimborso(); // non escluso calcolo rimb. per al. media
|
||||||
int ivarimb = !_iva->get_bool("B4"); // non escluso calcolo rimb. per al. media
|
const bool den_prorata = civa.tipo_IVA_agricola(); // denominatore prorata nel caso di calcolo pro rata con numeratore e denominatore
|
||||||
const bool den_prorata = _iva->get_bool("B7"); // denominatore prorata nel caso di calcolo pro rata con numeratore e denominatore
|
|
||||||
|
|
||||||
const TString4 tipocr_s = _rmoviva->get(RMI_TIPOCR);
|
const TString4 tipocr_s = _rmoviva->get(RMI_TIPOCR);
|
||||||
const int tipocr = atoi(tipocr_s);
|
const int tipocr = atoi(tipocr_s);
|
||||||
@ -1528,7 +1540,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
|
|||||||
const TCli_for & clifo = cached_clifor(LF_MOV, _mov->curr());
|
const TCli_for & clifo = cached_clifor(LF_MOV, _mov->curr());
|
||||||
const int tp = clifo.alleg();
|
const int tp = clifo.alleg();
|
||||||
|
|
||||||
BREAK_DBG;
|
BREAK_NREG;
|
||||||
if ((soloiva &&
|
if ((soloiva &&
|
||||||
(caus_reg.objptr(codcaus) != NULL || tp < 1)) &&
|
(caus_reg.objptr(codcaus) != NULL || tp < 1)) &&
|
||||||
sosp_imp != vol_affari)
|
sosp_imp != vol_affari)
|
||||||
@ -1551,15 +1563,17 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
|
|||||||
real diff_ivar = (is_detr_diff == 0) ? impos_det : impos_ind;
|
real diff_ivar = (is_detr_diff == 0) ? impos_det : impos_ind;
|
||||||
real diff_totr = diff_impr + diff_ivar;
|
real diff_totr = diff_impr + diff_ivar;
|
||||||
|
|
||||||
|
|
||||||
if (diff_totr == ZERO)
|
if (diff_totr == ZERO)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
BREAK_CODIVA(codiva);
|
||||||
TDate datafat = _mov->get_date(MOV_DATAREG);
|
TDate datafat = _mov->get_date(MOV_DATAREG);
|
||||||
long numreg = _rmoviva->get_long(RMI_NUMREG);
|
long numreg = _rmoviva->get_long(RMI_NUMREG);
|
||||||
|
|
||||||
sezfat = tipomov == vendita ? 'D' : 'A';
|
sezfat = tipomov == vendita ? 'D' : 'A';
|
||||||
|
|
||||||
if (is_detr_diff == 1 || civa.tipo() == "NS")
|
if (is_detr_diff == 1 || civa.iva_non_soggetta())
|
||||||
continue;
|
continue;
|
||||||
if (bIsMovDiff && tm == tm_fattura)
|
if (bIsMovDiff && tm == tm_fattura)
|
||||||
{
|
{
|
||||||
@ -1567,7 +1581,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
|
|||||||
int mesereg = liqmonth == 0 ? datareg.month() : liqmonth;
|
int mesereg = liqmonth == 0 ? datareg.month() : liqmonth;
|
||||||
bool ok = is_month_ok(mesereg, month) && (atoi(_year) == datareg.year());
|
bool ok = is_month_ok(mesereg, month) && (atoi(_year) == datareg.year());
|
||||||
|
|
||||||
BREAK_DBG;
|
BREAK_NREG;
|
||||||
if (ok)
|
if (ok)
|
||||||
{
|
{
|
||||||
datafat = datareg;
|
datafat = datareg;
|
||||||
@ -1876,28 +1890,28 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
|
|||||||
|
|
||||||
if (tipoiva.empty() && codcf != 0)
|
if (tipoiva.empty() && codcf != 0)
|
||||||
{
|
{
|
||||||
TString8 key; key.format("%c|%ld", _mov->get_char(MOV_TIPO), codcf);
|
TToken_string key; key.format("%c|%ld", _mov->get_char(MOV_TIPO), codcf);
|
||||||
const TRectype& clifo = cache().get(LF_CLIFO, key);
|
const TRectype& clifo = cache().get(LF_CLIFO, key);
|
||||||
int codreg = 0; // codice regione x privati 22 == partite iva 0 == senza codice
|
int codreg = 0; // codice regione x privati 22 == partite iva 0 == senza codice
|
||||||
const int tipoalleg = clifo.get_int(CLI_ALLEG);
|
const int tipoalleg = clifo.get_int(CLI_ALLEG);
|
||||||
|
|
||||||
if (tipoalleg == 6) // privato
|
if (tipoalleg == 6) // privato
|
||||||
{
|
{
|
||||||
if (clifo.get_bool(CLI_OCCAS))
|
key.cut(0);
|
||||||
{
|
key.add(get_firm());
|
||||||
const TString& key_occ = _mov->get(MOV_OCFPI);
|
|
||||||
const TRectype& occas = cache().get(LF_OCCAS, key_occ);
|
|
||||||
|
|
||||||
key = occas.get(OCC_STATO);
|
int unloc = _reg->get_int("I7");
|
||||||
key << "|" << occas.get(OCC_COM);
|
|
||||||
}
|
if (unloc == 0)
|
||||||
else
|
unloc = 1;
|
||||||
{
|
key.add(unloc);
|
||||||
key = clifo.get(CLI_STATOCF);
|
|
||||||
key << "|" << clifo.get(CLI_COMCF);
|
const TRectype & runloc = cache().get(LF_UNLOC, key);
|
||||||
}
|
|
||||||
|
key.format("|%s", (const char *)runloc.get(ULC_COMULC));
|
||||||
|
|
||||||
const TRectype& comune = cache().get(LF_COMUNI, key);
|
const TRectype& comune = cache().get(LF_COMUNI, key);
|
||||||
|
|
||||||
codreg = comune.get_int(COM_CODREG) + 1;
|
codreg = comune.get_int(COM_CODREG) + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1918,7 +1932,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
|
|||||||
bool bMovDiffToAdd = true;
|
bool bMovDiffToAdd = true;
|
||||||
|
|
||||||
#ifdef DBG
|
#ifdef DBG
|
||||||
BREAK_DBG;
|
BREAK_NREG;
|
||||||
if (!bIsMovDiff && (civa.percentuale() == 20))
|
if (!bIsMovDiff && (civa.percentuale() == 20))
|
||||||
real p = imposta_orig / imponibile_orig * CENTO;
|
real p = imposta_orig / imponibile_orig * CENTO;
|
||||||
#endif
|
#endif
|
||||||
@ -2221,8 +2235,10 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
|
|||||||
if (_pcon_1_r->get_int(PCN_INDBIL) == 4)
|
if (_pcon_1_r->get_int(PCN_INDBIL) == 4)
|
||||||
if (_cur->is_first_match(-AGR_PCON2)) // Esiste il sottoconto ?
|
if (_cur->is_first_match(-AGR_PCON2)) // Esiste il sottoconto ?
|
||||||
{
|
{
|
||||||
if (look_iva(_pcon_2_r->get(PCN_IVACOMP)))
|
const TCodiceIVA & civa = cached_codIVA(_pcon_2_r->get(PCN_IVACOMP));
|
||||||
ivacomp = _iva->get("CODTAB"); // Ecco il codice IVA di compensazione
|
|
||||||
|
if (civa.ok())
|
||||||
|
ivacomp = civa.codice(); // Ecco il codice IVA di compensazione
|
||||||
}
|
}
|
||||||
look_pia(month, codatt, codiva, ivacomp, true); // Crea il record in tabella se non esiste
|
look_pia(month, codatt, codiva, ivacomp, true); // Crea il record in tabella se non esiste
|
||||||
real pia_imp = _pia->get_real("R0") + agr_imp; // Aggiorna...
|
real pia_imp = _pia->get_real("R0") + agr_imp; // Aggiorna...
|
||||||
@ -2727,11 +2743,10 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
|
|||||||
if (_pim->get_bool("B4"))
|
if (_pim->get_bool("B4"))
|
||||||
{
|
{
|
||||||
// ricalcola l'imposta a partire dal codice IVA
|
// ricalcola l'imposta a partire dal codice IVA
|
||||||
look_iva(*_pim_codiva);
|
const TCodiceIVA & civa = cached_codIVA(*_pim_codiva);
|
||||||
real old_iva = _pim->get_real("R1");
|
const real old_iva = _pim->get_real("R1");
|
||||||
real perc = _iva->get_real("R0");
|
real new_iva = _pim->get_real("R0") * civa.moltiplicatore_percentuale();
|
||||||
|
|
||||||
real new_iva = _pim->get_real("R0") * perc / CENTO;
|
|
||||||
round_al_centesimo(new_iva);
|
round_al_centesimo(new_iva);
|
||||||
|
|
||||||
if (new_iva != old_iva)
|
if (new_iva != old_iva)
|
||||||
@ -2759,10 +2774,9 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
|
|||||||
if (_pia->get_bool("B0"))
|
if (_pia->get_bool("B0"))
|
||||||
{
|
{
|
||||||
// calcola l'imposta a partire dal codice IVA di compensazione
|
// calcola l'imposta a partire dal codice IVA di compensazione
|
||||||
look_iva(*_pia_codcom);
|
const TCodiceIVA & civa = cached_codIVA(*_pia_codcom);
|
||||||
real perc = _iva->get_real("R0");
|
real iva = _pia->get_real("R0") * civa.moltiplicatore_percentuale();
|
||||||
|
|
||||||
real iva = _pia->get_real("R0") * perc / CENTO;
|
|
||||||
round_al_centesimo(iva);
|
round_al_centesimo(iva);
|
||||||
agr_detIA += iva;
|
agr_detIA += iva;
|
||||||
_pia->put("R1",iva);
|
_pia->put("R1",iva);
|
||||||
@ -2994,12 +3008,14 @@ void TLiquidazione_app::iva11_set_arr_phase_1(const TString& codatt)
|
|||||||
|
|
||||||
if (is_split_payment(_mov->curr()))
|
if (is_split_payment(_mov->curr()))
|
||||||
imposta = ZERO;
|
imposta = ZERO;
|
||||||
const TString4 codiva = _iva->get("CODTAB");
|
|
||||||
const TString4 tipoiva = _iva->get("S1");
|
const TCodiceIVA & civa = cached_codIVA(_rmoviva->get(RMI_CODIVA));
|
||||||
const real ali = _iva->get_real("R0");
|
const TString4 codiva = civa.codice();
|
||||||
const TString4 tipoes_v = _iva->get("S2");
|
const TString4 tipoiva = civa.tipo();
|
||||||
const TString4 tipoes_a = _iva->get("S9");
|
const real ali = civa.percentuale();
|
||||||
const int tipoagr = _iva->get_int("I4"); // 2/9/2015 was S4
|
const TString4 tipoes_v = civa.IVA11_vendite();
|
||||||
|
const TString4 tipoes_a = civa.IVA11_acquisti();
|
||||||
|
const int tipoagr = civa.tipo_IVA_agricola(); // 2/9/2015 was S4
|
||||||
const TRectype& rcs = _cur->curr(LF_CAUSALI);
|
const TRectype& rcs = _cur->curr(LF_CAUSALI);
|
||||||
const bool autofattura = rcs.get_bool("AUTOFATT");
|
const bool autofattura = rcs.get_bool("AUTOFATT");
|
||||||
const bool valintra = rcs.get_bool("VALINTRA");
|
const bool valintra = rcs.get_bool("VALINTRA");
|
||||||
@ -3379,14 +3395,17 @@ void TLiquidazione_app::iva11_set_arr_phase_2(const TString& codatt)
|
|||||||
// Must consider current activity too...
|
// Must consider current activity too...
|
||||||
codiva = *_pim_codiva;
|
codiva = *_pim_codiva;
|
||||||
reg = *_pim_codreg;
|
reg = *_pim_codreg;
|
||||||
look_iva(codiva); look_reg(reg); // posiziona la tabella registri e quella IVA
|
|
||||||
tiva = _iva->get("S1"); // tipo IVA
|
const TCodiceIVA & civa = cached_codIVA(codiva);
|
||||||
tpla = _iva->get("S3"); // tipo gestione plafond
|
|
||||||
tagr = _iva->get_int("I4"); // tipo gestione regime agricolo 2/9/2015 was S4
|
look_reg(reg); // posiziona la tabella registri e quella IVA
|
||||||
tvia = _iva->get("S5"); // tipo gestione ag. viaggio
|
tiva = civa.tipo(); // tipo IVA
|
||||||
v11 = _iva->get("S2"); // n.ro riga vendite per mod. IVA11
|
tpla = civa.tipo_plafond(); // tipo gestione plafond
|
||||||
a11 = _iva->get("S9"); // n.ro riga acquisti per mod. IVA11
|
tagr = civa.tipo_IVA_agricola(); // tipo gestione regime agricolo 2/9/2015 was S4
|
||||||
aliq = _iva->get_real("R0"); // aliquota
|
tvia = civa.tipo_agenzie_viaggio(); // tipo gestione ag. viaggio
|
||||||
|
v11 = civa.IVA11_vendite(); // n.ro riga vendite per mod. IVA11
|
||||||
|
a11 = civa.IVA11_acquisti(); // n.ro riga acquisti per mod. IVA11
|
||||||
|
aliq = civa.percentuale(); // aliquota
|
||||||
treg = (tiporeg)_reg->get_long("I0");
|
treg = (tiporeg)_reg->get_long("I0");
|
||||||
const bool is_vendita = treg == vendita;
|
const bool is_vendita = treg == vendita;
|
||||||
const bool is_acquisto = treg == acquisto;
|
const bool is_acquisto = treg == acquisto;
|
||||||
@ -3484,7 +3503,7 @@ void TLiquidazione_app::iva11_set_arr_phase_2(const TString& codatt)
|
|||||||
_CorrItem& ca = (_CorrItem&) corr_ann[codiva];
|
_CorrItem& ca = (_CorrItem&) corr_ann[codiva];
|
||||||
ca._totale += lor;
|
ca._totale += lor;
|
||||||
if (!is_present)
|
if (!is_present)
|
||||||
ca._aliquota = _iva->get_real("R0"); // Se e' nuovo setta l'aliquota
|
ca._aliquota = civa.percentuale(); // Se e' nuovo setta l'aliquota
|
||||||
}
|
}
|
||||||
|
|
||||||
tt = _pim->get("S0");
|
tt = _pim->get("S0");
|
||||||
@ -4541,8 +4560,10 @@ void TLiquidazione_app::recalc_annual(const char* att, bool & first)
|
|||||||
const int tipocr = atoi(*_pim_tipocr);
|
const int tipocr = atoi(*_pim_tipocr);
|
||||||
codiva = *_pim_codiva;
|
codiva = *_pim_codiva;
|
||||||
reg = *_pim_codreg;
|
reg = *_pim_codreg;
|
||||||
look_iva(codiva); look_reg(reg);
|
const TCodiceIVA & civa = cached_codIVA(codiva);
|
||||||
tiva = _iva->get("S1");
|
|
||||||
|
look_reg(reg);
|
||||||
|
tiva = civa.tipo();
|
||||||
|
|
||||||
const TRegistro & reg = cached_registro(_reg->curr());
|
const TRegistro & reg = cached_registro(_reg->curr());
|
||||||
const tipo_sospensione simp = reg.sospensione();
|
const tipo_sospensione simp = reg.sospensione();
|
||||||
@ -4573,7 +4594,7 @@ void TLiquidazione_app::recalc_annual(const char* att, bool & first)
|
|||||||
_CorrItem& ca = (_CorrItem&)corr_ann[codiva];
|
_CorrItem& ca = (_CorrItem&)corr_ann[codiva];
|
||||||
ca._totale += _pim->get_real("R3");
|
ca._totale += _pim->get_real("R3");
|
||||||
if (!is_key) // se non c'e' lo aggiunge
|
if (!is_key) // se non c'e' lo aggiunge
|
||||||
ca._aliquota = _iva->get_real("R0") / CENTO; // Se è nuovo setta l'aliquota
|
ca._aliquota = civa.moltiplicatore_percentuale(); // Se è nuovo setta l'aliquota
|
||||||
}
|
}
|
||||||
if (tipoatt == 1)
|
if (tipoatt == 1)
|
||||||
volaff1 += imp_ifs;
|
volaff1 += imp_ifs;
|
||||||
|
@ -1194,6 +1194,7 @@ int TMask::win2page(WINDOW w) const
|
|||||||
TMask_field* TMask::parse_field(TScanner& scanner)
|
TMask_field* TMask::parse_field(TScanner& scanner)
|
||||||
{
|
{
|
||||||
const TString& k = scanner.key();
|
const TString& k = scanner.key();
|
||||||
|
|
||||||
if (k == "BO") return new TBoolean_field(this);
|
if (k == "BO") return new TBoolean_field(this);
|
||||||
if (k == "BR") return new TBrowsefile_field(this);
|
if (k == "BR") return new TBrowsefile_field(this);
|
||||||
if (k == "BU") return new TButton_field(this);
|
if (k == "BU") return new TButton_field(this);
|
||||||
|
@ -61,7 +61,6 @@
|
|||||||
#define MOV_KEYFPPRO "KEYFPPRO"
|
#define MOV_KEYFPPRO "KEYFPPRO"
|
||||||
#define MOV_MOVCOLL "MOVCOLL"
|
#define MOV_MOVCOLL "MOVCOLL"
|
||||||
#define MOV_ELABF9 "ELABF9"
|
#define MOV_ELABF9 "ELABF9"
|
||||||
|
|
||||||
#define MOV_IDDOCSDI "IDDOCSDI"
|
#define MOV_IDDOCSDI "IDDOCSDI"
|
||||||
#define MOV_DATADOCSDI "DATADOCSDI"
|
#define MOV_DATADOCSDI "DATADOCSDI"
|
||||||
|
|
||||||
|
@ -1423,7 +1423,6 @@ TRecnotype TCursor::update()
|
|||||||
_lastrec = eod;
|
_lastrec = eod;
|
||||||
_index_firm = prefix().get_codditta();
|
_index_firm = prefix().get_codditta();
|
||||||
_lastkrec = DB_changed(handle);
|
_lastkrec = DB_changed(handle);
|
||||||
|
|
||||||
return _totrec;
|
return _totrec;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -108,6 +108,8 @@ bool TTable_application::user_create()
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
_tabname = argv(2);
|
_tabname = argv(2);
|
||||||
|
if (_tabname == "ĘU")
|
||||||
|
_tabname = "%CAU";
|
||||||
_tabname.upper();
|
_tabname.upper();
|
||||||
_rel = new TRelation(_tabname);
|
_rel = new TRelation(_tabname);
|
||||||
|
|
||||||
|
@ -26,28 +26,35 @@ const real SSimple_query::sq_get_real(const char * field)
|
|||||||
return app;
|
return app;
|
||||||
}
|
}
|
||||||
|
|
||||||
TString SSimple_query::sq_get(const char* field, bool rtrim)
|
const TString & SSimple_query::sq_get(const char* field, const bool rtrim)
|
||||||
{
|
{
|
||||||
TString fld = _rec.get(field);
|
TString & fld = get_tmp_string(1024);
|
||||||
|
|
||||||
|
fld = _rec.get(field);
|
||||||
if (rtrim)
|
if (rtrim)
|
||||||
fld.rtrim();
|
fld.rtrim();
|
||||||
|
|
||||||
return fld;
|
return fld;
|
||||||
}
|
}
|
||||||
|
|
||||||
TString SSimple_query::sq_get(const string& field, const bool rtrim)
|
const TString & SSimple_query::sq_get(const string& field, const bool rtrim)
|
||||||
{
|
{
|
||||||
return sq_get(field.c_str(), rtrim);
|
return sq_get(field.c_str(), rtrim);
|
||||||
}
|
}
|
||||||
|
|
||||||
TString SSimple_query::sq_get(TString& field, bool rtrim)
|
const TString & SSimple_query::sq_get(TString& field, const bool rtrim)
|
||||||
{
|
{
|
||||||
return sq_get(static_cast<const char*>(field), rtrim);
|
return sq_get((const char *)field, rtrim);
|
||||||
}
|
}
|
||||||
|
|
||||||
TString SSimple_query::sq_get(unsigned int column, bool rtrim)
|
const TString & SSimple_query::sq_get(unsigned int column, const bool rtrim)
|
||||||
{
|
{
|
||||||
return _rec.get(column);
|
TString & val = get_tmp_string(1024);
|
||||||
|
|
||||||
|
val << _rec.get(column);
|
||||||
|
if (rtrim)
|
||||||
|
val.rtrim();
|
||||||
|
return val;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned SSimple_query::sq_get_num_fields() const
|
unsigned SSimple_query::sq_get_num_fields() const
|
||||||
@ -55,9 +62,12 @@ unsigned SSimple_query::sq_get_num_fields() const
|
|||||||
return _rec.get_num_fields();
|
return _rec.get_num_fields();
|
||||||
}
|
}
|
||||||
|
|
||||||
TString SSimple_query::sq_get_name_field(const unsigned column) const
|
const TString & SSimple_query::sq_get_name_field(const unsigned column) const
|
||||||
{
|
{
|
||||||
return _rec.get_name_field(column);
|
TString & name = get_tmp_string();
|
||||||
|
|
||||||
|
name = _rec.get_name_field(column);
|
||||||
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
int SSimple_query::sq_get_width_field(const unsigned column) const
|
int SSimple_query::sq_get_width_field(const unsigned column) const
|
||||||
@ -75,6 +85,8 @@ TFieldtypes SSimple_query::sq_get_type_field(const unsigned column) const
|
|||||||
return _boolfld;
|
return _boolfld;
|
||||||
if (type == "dtShort")
|
if (type == "dtShort")
|
||||||
return _intfld;
|
return _intfld;
|
||||||
|
if (type == "dtLong")
|
||||||
|
return _longfld;
|
||||||
if (type == "dtULong")
|
if (type == "dtULong")
|
||||||
return _longfld;
|
return _longfld;
|
||||||
if (type == "dtDouble")
|
if (type == "dtDouble")
|
||||||
|
@ -40,29 +40,22 @@
|
|||||||
|
|
||||||
#ifndef __STRINGS_H
|
#ifndef __STRINGS_H
|
||||||
#include <strings.h>
|
#include <strings.h>
|
||||||
#endif // !__STRINGS_H
|
#endif //
|
||||||
|
|
||||||
#ifndef __DATE_H
|
#ifndef __DATE_H
|
||||||
#include <date.h>
|
#include <date.h>
|
||||||
#endif // !__DATE_H
|
#endif //
|
||||||
|
|
||||||
#ifndef __REAL_H
|
#ifndef __REAL_H
|
||||||
#include <real.h>
|
#include <real.h>
|
||||||
#endif // !__REAL_H
|
#endif //
|
||||||
|
|
||||||
#define CHIAVE_ID_ "_ID_"
|
|
||||||
#include "recset.h"
|
#include "recset.h"
|
||||||
|
|
||||||
/********************************************************************************
|
/********************************************************************************
|
||||||
* SSimpleQuery (Sirio Simple Query) *
|
* SSimpleQuery (Sirio Simple Query) *
|
||||||
* "Wrapper" di TXvt_recordset, implementa OGNI funzione in modo tale da *
|
* "Wrapper" di TXvt_recordset, implementa OGNI funzione in modo tale da *
|
||||||
* poterlo sostituire brutalmente in qualsiasi momento così da non aver *
|
* poterlo sostituire brutalmente in qualsiasi momento così da non aver *
|
||||||
* problemi come durante il passaggio da ISAM a SQL (spero). *
|
* problemi come durante il passaggio da ISAM a SQL (spero). che cazzata da riscrivere *
|
||||||
* Se ti stai domandando perchè non è stata usata l'ereditarietà (magari con *
|
|
||||||
* un bel ": private TXvt_recordset" così da bloccare il tutto) è per bloccare *
|
|
||||||
* qualsiasi riferimento a questa classe in eventuali reimplementazioni future. *
|
|
||||||
* Preferisco scrivere un po' di codice ridondante adesso che andare a fare *
|
|
||||||
* salti mortali dopo *
|
|
||||||
********************************************************************************/
|
********************************************************************************/
|
||||||
class SSimple_query
|
class SSimple_query
|
||||||
{
|
{
|
||||||
@ -160,19 +153,19 @@ public:
|
|||||||
/**< Ritorna il valore nel campo (field) in formato (SADateTime), Campo non gestisce le ore */
|
/**< Ritorna il valore nel campo (field) in formato (SADateTime), Campo non gestisce le ore */
|
||||||
//SADateTime sqGetDateTime(const char* field) { get_short(field); }
|
//SADateTime sqGetDateTime(const char* field) { get_short(field); }
|
||||||
/**< Ritorna il valore nel campo (field) passato come (const char *) in formato (const char *) */
|
/**< Ritorna il valore nel campo (field) passato come (const char *) in formato (const char *) */
|
||||||
TString sq_get(const char* field, bool rtrim = true);
|
const TString & sq_get(const char* field, bool rtrim = true);
|
||||||
/**< Ritorna il valore nel campo (field) passato come (string) in formato (const char *) */
|
/**< Ritorna il valore nel campo (field) passato come (string) in formato (const char *) */
|
||||||
TString sq_get(const string& field, bool rtrim = true);
|
const TString & sq_get(const string& field, bool rtrim = true);
|
||||||
/**< Ritorna il valore nel campo (field) passato come (TString) in formato (const char *) */
|
/**< Ritorna il valore nel campo (field) passato come (TString) in formato (const char *) */
|
||||||
TString sq_get(TString& field, bool rtrim = true);
|
const TString & sq_get(TString& field, bool rtrim = true);
|
||||||
/**< Ritorna il valore della colonna numero (column) passato come (unsigned int) */
|
/**< Ritorna il valore della colonna numero (column) passato come (unsigned int) */
|
||||||
TString sq_get(unsigned int column, bool rtrim = true);
|
const TString & sq_get(unsigned int column, bool rtrim = true);
|
||||||
/**< Ritorna il valore nel campo (field) in formato (char) */
|
/**< Ritorna il valore nel campo (field) in formato (char) */
|
||||||
const char sq_get_char(const char* field) { return _rec.get_char(field); }
|
const char sq_get_char(const char* field) { return _rec.get_char(field); }
|
||||||
/**< Ritorna il numero di campi dopo l'ultimo comando di esecuzione effettuato; se il risultato esiste */
|
/**< Ritorna il numero di campi dopo l'ultimo comando di esecuzione effettuato; se il risultato esiste */
|
||||||
unsigned int sq_get_num_fields() const;
|
unsigned int sq_get_num_fields() const;
|
||||||
/**< Ritorna il nome del campo numero (column) in formato (TString= */
|
/**< Ritorna il nome del campo numero (column) in formato (TString) = */
|
||||||
TString sq_get_name_field(unsigned column) const;
|
const TString & sq_get_name_field(unsigned column) const;
|
||||||
/**< Ritorna la grandezza del campo numero (column) */
|
/**< Ritorna la grandezza del campo numero (column) */
|
||||||
int sq_get_width_field(unsigned column) const;
|
int sq_get_width_field(unsigned column) const;
|
||||||
/**< Ritorna il tipo del campo numero (column) in formato (TFieldtypes) */
|
/**< Ritorna il tipo del campo numero (column) in formato (TFieldtypes) */
|
||||||
@ -198,12 +191,12 @@ public:
|
|||||||
void defrost() { _rec.defrost(); }
|
void defrost() { _rec.defrost(); }
|
||||||
|
|
||||||
/**< Costruttore, non inizializza nulla, da caricare successivamente */
|
/**< Costruttore, non inizializza nulla, da caricare successivamente */
|
||||||
SSimple_query() = default;
|
SSimple_query() {};
|
||||||
/**< Costruttore, Accetta in ingresso dei parametri per la connessione, volendo è anche possibile impostare una query ed eseguirla. Attenzione! Non risponde se la query ha avuto un esito positivo o negativo! */
|
/**< Costruttore, Accetta in ingresso dei parametri per la connessione, volendo è anche possibile impostare una query ed eseguirla. Attenzione! Non risponde se la query ha avuto un esito positivo o negativo! */
|
||||||
SSimple_query(const char* db, const char* user, const char* pass, const TT_driver tipo_db, const char * query = "", const bool ex = false, const bool freezed = false) : _rec(db, user, pass, tipo_db, query, ex, freezed) {}
|
SSimple_query(const char* db, const char* user, const char* pass, const TT_driver tipo_db, const char * query = "", const bool ex = false, const bool freezed = false) : _rec(db, user, pass, tipo_db, query, ex, freezed) {}
|
||||||
//SSimpleQuery(const TString& db, const TString& user, const TString& pass, TT_driver tipoDb, const char * query = "", const bool ex = false, const bool freezed = false) : _rec(db, user, pass, tipoDb, query, ex, freezed) {}
|
//SSimpleQuery(const TString& db, const TString& user, const TString& pass, TT_driver tipoDb, const char * query = "", const bool ex = false, const bool freezed = false) : _rec(db, user, pass, tipoDb, query, ex, freezed) {}
|
||||||
/**< Distruttore */
|
/**< Distruttore */
|
||||||
virtual ~SSimple_query() = default;
|
virtual ~SSimple_query() {};
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
@ -490,6 +490,7 @@ struct linger {
|
|||||||
/*
|
/*
|
||||||
* Windows Sockets definitions of regular Microsoft C error constants
|
* Windows Sockets definitions of regular Microsoft C error constants
|
||||||
*/
|
*/
|
||||||
|
#ifndef WSAEINTR
|
||||||
#define WSAEINTR (WSABASEERR+4)
|
#define WSAEINTR (WSABASEERR+4)
|
||||||
#define WSAEBADF (WSABASEERR+9)
|
#define WSAEBADF (WSABASEERR+9)
|
||||||
#define WSAEACCES (WSABASEERR+13)
|
#define WSAEACCES (WSABASEERR+13)
|
||||||
@ -497,6 +498,7 @@ struct linger {
|
|||||||
#define WSAEINVAL (WSABASEERR+22)
|
#define WSAEINVAL (WSABASEERR+22)
|
||||||
#define WSAEMFILE (WSABASEERR+24)
|
#define WSAEMFILE (WSABASEERR+24)
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Windows Sockets definitions of regular Berkeley error constants
|
* Windows Sockets definitions of regular Berkeley error constants
|
||||||
*/
|
*/
|
||||||
@ -581,6 +583,7 @@ struct linger {
|
|||||||
/*
|
/*
|
||||||
* Windows Sockets errors redefined as regular Berkeley error constants
|
* Windows Sockets errors redefined as regular Berkeley error constants
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define EWOULDBLOCK WSAEWOULDBLOCK
|
#define EWOULDBLOCK WSAEWOULDBLOCK
|
||||||
#define EINPROGRESS WSAEINPROGRESS
|
#define EINPROGRESS WSAEINPROGRESS
|
||||||
#define EALREADY WSAEALREADY
|
#define EALREADY WSAEALREADY
|
||||||
@ -618,6 +621,7 @@ struct linger {
|
|||||||
#define EDQUOT WSAEDQUOT
|
#define EDQUOT WSAEDQUOT
|
||||||
#define ESTALE WSAESTALE
|
#define ESTALE WSAESTALE
|
||||||
#define EREMOTE WSAEREMOTE
|
#define EREMOTE WSAEREMOTE
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Socket function prototypes */
|
/* Socket function prototypes */
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user