Merge remote-tracking branch 'origin/R_10_00' into R_10_00
This commit is contained in:
commit
aea092103f
14
cd/test/ba0834.txt
Normal file
14
cd/test/ba0834.txt
Normal file
@ -0,0 +1,14 @@
|
||||
recdesc\f175.dir
|
||||
recdesc\f178.dir
|
||||
recdesc\f177.trr
|
||||
recdesc\f177.dir
|
||||
recdesc\f176.trr
|
||||
recdesc\f179.trr
|
||||
recdesc\f176.dir
|
||||
recdesc\f179.dir
|
||||
recdesc\f175.trr
|
||||
recdesc\f178.trr
|
||||
recdesc\f20.trr
|
||||
recdesc\f20.dir
|
||||
|
||||
Aggiornamento tracciati per personalizzazioni FP
|
49
cd/test/ba0834a.ini
Normal file
49
cd/test/ba0834a.ini
Normal file
@ -0,0 +1,49 @@
|
||||
[Main]
|
||||
Demo=0
|
||||
|
||||
[ba1]
|
||||
Edit_4 = ba3 -0
|
||||
Edit_5 = ba3 -0
|
||||
Edit_6 = ba4 -1
|
||||
File(225) = recdesc\f175.dir|X
|
||||
File(226) = recdesc\f175.trr|X
|
||||
File(227) = recdesc\f176.dir|X
|
||||
File(228) = recdesc\f176.trr|X
|
||||
File(229) = recdesc\f177.dir|X
|
||||
File(230) = recdesc\f177.trr|X
|
||||
File(231) = recdesc\f178.dir|X
|
||||
File(232) = recdesc\f178.trr|X
|
||||
File(233) = recdesc\f179.dir|X
|
||||
File(234) = recdesc\f179.trr|X
|
||||
Patch = 834
|
||||
Versione = 21511200
|
||||
|
||||
[ba2]
|
||||
File(380) = recdesc\f20.dir|X
|
||||
File(381) = recdesc\f20.trr|X
|
||||
Patch = 834
|
||||
Versione = 21511200
|
||||
|
||||
[ba99]
|
||||
Kill(0) = wxmsw240.dll|x
|
||||
Kill(1) = batbsce.txt|x
|
||||
Kill(2) = bastfsc.rep|x
|
||||
Kill(3) = bastfsc.msk|x
|
||||
Kill(4) = bastcms.msk|x
|
||||
Kill(5) = bastcms.rep|x
|
||||
Kill(6) = bastuue.rep|x
|
||||
Kill(7) = bastuue.msk|x
|
||||
|
||||
[ba]
|
||||
Data = 24-06-2019
|
||||
Descrizione = Base
|
||||
Dischi = 1
|
||||
Moduli = sy
|
||||
OEM =
|
||||
Patch = 0834
|
||||
PostProcess = bainst -0 BA
|
||||
PreProcess =
|
||||
Prezzo(1) =
|
||||
Prezzo(2) =
|
||||
Versione = 21511200
|
||||
|
BIN
cd/test/ba0834a1.zip
Normal file
BIN
cd/test/ba0834a1.zip
Normal file
Binary file not shown.
4
cd/test/cg0834.txt
Normal file
4
cd/test/cg0834.txt
Normal file
@ -0,0 +1,4 @@
|
||||
cg0.exe
|
||||
cg0200a.msk
|
||||
|
||||
Aggiornamento anagrafica clienti per personalizzazioni FP
|
98
cd/test/cg0834a.ini
Normal file
98
cd/test/cg0834a.ini
Normal file
@ -0,0 +1,98 @@
|
||||
[Main]
|
||||
Demo=0
|
||||
|
||||
[cg0]
|
||||
Edit_19 = cg0 -0
|
||||
Edit_20 = cg0 -1
|
||||
Edit_26 = cg0 -4
|
||||
Edit_5 = cg0 -5
|
||||
File(0) = cg0.exe|X
|
||||
File(2) = cg0200a.msk|X
|
||||
Patch = 834
|
||||
Versione = 21511200
|
||||
|
||||
[cg99]
|
||||
Kill(0) = bastcve.rep|x
|
||||
Kill(1) = batbcve.msk|x
|
||||
Kill(2) = bastscc.rep|x
|
||||
Kill(3) = batbtra.msk|x
|
||||
Kill(4) = batbesc.msk|x
|
||||
Kill(5) = batbivd.msk|x
|
||||
Kill(6) = bastleg.rep|x
|
||||
Kill(7) = bastver.rep|x
|
||||
Kill(8) = bastver.msk|x
|
||||
Kill(9) = bastcfi.msk|x
|
||||
Kill(10) = batblbu.msk|x
|
||||
Kill(11) = batblia.msk|x
|
||||
Kill(12) = bastarb.rep|x
|
||||
Kill(13) = bastcco.msk|x
|
||||
Kill(14) = bastcam.msk|x
|
||||
Kill(15) = batbpdb.msk|x
|
||||
Kill(16) = batbleg.msk|x
|
||||
Kill(17) = bastesc.rep|x
|
||||
Kill(18) = bastpdb.msk|x
|
||||
Kill(19) = batbscc.msk|x
|
||||
Kill(20) = batbind.msk|x
|
||||
Kill(21) = bastivd.rep|x
|
||||
Kill(22) = batbdel.msk|x
|
||||
Kill(23) = bastzon.rep|x
|
||||
Kill(24) = bastcfi.rep|x
|
||||
Kill(25) = bastntb.rep|x
|
||||
Kill(26) = batbarb.msk|x
|
||||
Kill(27) = bastzon.msk|x
|
||||
Kill(28) = bastcam.rep|x
|
||||
Kill(29) = bastmsp.rep|x
|
||||
Kill(30) = bastscc.msk|x
|
||||
Kill(31) = batbpor.msk|x
|
||||
Kill(32) = batbmsp.msk|x
|
||||
Kill(33) = bastarb.msk|x
|
||||
Kill(34) = bastpdb.rep|x
|
||||
Kill(35) = bastivd.msk|x
|
||||
Kill(36) = bastnot.rep|x
|
||||
Kill(37) = bastndo.msk|x
|
||||
Kill(38) = bastcco.rep|x
|
||||
Kill(39) = bastnot.msk|x
|
||||
Kill(40) = batbntb.msk|x
|
||||
Kill(41) = batbtit.msk|x
|
||||
Kill(42) = batbinl.msk|x
|
||||
Kill(43) = bastmsp.msk|x
|
||||
Kill(44) = batbreg.msk|x
|
||||
Kill(45) = batbcco.msk|x
|
||||
Kill(46) = bastreg.msk|x
|
||||
Kill(47) = batbnot.msk|x
|
||||
Kill(48) = bastesc.msk|x
|
||||
Kill(49) = batbvet.msk|x
|
||||
Kill(50) = bastpor.msk|x
|
||||
Kill(51) = batbdpn.msk|x
|
||||
Kill(52) = batbzon.msk|x
|
||||
Kill(53) = batblia.msk|x
|
||||
Kill(54) = batbcfi.msk|x
|
||||
Kill(55) = batbndo.msk|x
|
||||
Kill(56) = bastdpn.msk|x
|
||||
Kill(57) = bastdpn.rep|x
|
||||
Kill(58) = bastndo.rep|x
|
||||
Kill(59) = bastntb.msk|x
|
||||
Kill(60) = bastvet.rep|x
|
||||
Kill(61) = bastpor.rep|x
|
||||
Kill(62) = bastreg.rep|x
|
||||
Kill(63) = batbver.msk|x
|
||||
Kill(64) = batbcam.msk|x
|
||||
Kill(65) = bastvet.msk|x
|
||||
Kill(66) = bastleg.msk|x
|
||||
Kill(67) = bastcve.msk|x
|
||||
Kill(68) = cgtbcon.msk|x
|
||||
Kill(69) = batbins.msk|x
|
||||
|
||||
[cg]
|
||||
Data = 24-06-2019
|
||||
Descrizione = Contabilita' Generale
|
||||
Dischi = 1
|
||||
Moduli = ba
|
||||
OEM =
|
||||
Patch = 834
|
||||
PostProcess = bainst -0 CG
|
||||
PreProcess =
|
||||
Prezzo(1) =
|
||||
Prezzo(2) =
|
||||
Versione = 21511200
|
||||
|
BIN
cd/test/cg0834a1.zip
Normal file
BIN
cd/test/cg0834a1.zip
Normal file
Binary file not shown.
6
cd/test/cg0838.txt
Normal file
6
cd/test/cg0838.txt
Normal file
@ -0,0 +1,6 @@
|
||||
cg2.exe
|
||||
cg2fppro.msk
|
||||
|
||||
Aggiunta ritenuta da acconto da F1
|
||||
Corretto importo totale con ritenuta
|
||||
Aggiunto bottone in maschera fppro per solo collegamento senza riporto dati
|
95
cd/test/cg0838a.ini
Normal file
95
cd/test/cg0838a.ini
Normal file
@ -0,0 +1,95 @@
|
||||
[Main]
|
||||
Demo=0
|
||||
|
||||
[cg2]
|
||||
Edit_23 = cg2 -0
|
||||
File(162) = cg2.exe|X
|
||||
File(176) = cg2fppro.msk|X
|
||||
Patch = 0838
|
||||
Versione = 21511200
|
||||
|
||||
[cg99]
|
||||
Kill(0) = batbscc.msk|x
|
||||
Kill(1) = bastntb.rep|x
|
||||
Kill(2) = batbpor.msk|x
|
||||
Kill(3) = bastpdb.msk|x
|
||||
Kill(4) = bastcfi.rep|x
|
||||
Kill(5) = bastscc.msk|x
|
||||
Kill(6) = bastzon.msk|x
|
||||
Kill(7) = bastarb.msk|x
|
||||
Kill(8) = batbarb.msk|x
|
||||
Kill(9) = batbmsp.msk|x
|
||||
Kill(10) = batbpdb.msk|x
|
||||
Kill(11) = bastivd.rep|x
|
||||
Kill(12) = bastcam.msk|x
|
||||
Kill(13) = batbind.msk|x
|
||||
Kill(14) = bastesc.rep|x
|
||||
Kill(15) = bastzon.rep|x
|
||||
Kill(16) = batbleg.msk|x
|
||||
Kill(17) = batbdel.msk|x
|
||||
Kill(18) = batblia.msk|x
|
||||
Kill(19) = batblbu.msk|x
|
||||
Kill(20) = bastcco.msk|x
|
||||
Kill(21) = bastarb.rep|x
|
||||
Kill(22) = bastntb.msk|x
|
||||
Kill(23) = bastvet.msk|x
|
||||
Kill(24) = bastndo.rep|x
|
||||
Kill(25) = batbcam.msk|x
|
||||
Kill(26) = bastcve.msk|x
|
||||
Kill(27) = bastleg.msk|x
|
||||
Kill(28) = batbvet.msk|x
|
||||
Kill(29) = batbndo.msk|x
|
||||
Kill(30) = bastpor.rep|x
|
||||
Kill(31) = bastesc.msk|x
|
||||
Kill(32) = batbcfi.msk|x
|
||||
Kill(33) = bastvet.rep|x
|
||||
Kill(34) = bastdpn.rep|x
|
||||
Kill(35) = batbver.msk|x
|
||||
Kill(36) = bastdpn.msk|x
|
||||
Kill(37) = bastreg.rep|x
|
||||
Kill(38) = bastnot.msk|x
|
||||
Kill(39) = batbcco.msk|x
|
||||
Kill(40) = batbdpn.msk|x
|
||||
Kill(41) = bastcco.rep|x
|
||||
Kill(42) = batbreg.msk|x
|
||||
Kill(43) = bastpor.msk|x
|
||||
Kill(44) = batbnot.msk|x
|
||||
Kill(45) = batblia.msk|x
|
||||
Kill(46) = bastreg.msk|x
|
||||
Kill(47) = batbzon.msk|x
|
||||
Kill(48) = bastmsp.rep|x
|
||||
Kill(49) = bastivd.msk|x
|
||||
Kill(50) = batbtit.msk|x
|
||||
Kill(51) = bastcam.rep|x
|
||||
Kill(52) = bastpdb.rep|x
|
||||
Kill(53) = batbntb.msk|x
|
||||
Kill(54) = bastndo.msk|x
|
||||
Kill(55) = bastmsp.msk|x
|
||||
Kill(56) = bastnot.rep|x
|
||||
Kill(57) = batbinl.msk|x
|
||||
Kill(58) = batbins.msk|x
|
||||
Kill(59) = cgtbcon.msk|x
|
||||
Kill(60) = bastcfi.msk|x
|
||||
Kill(61) = bastver.msk|x
|
||||
Kill(62) = batbcve.msk|x
|
||||
Kill(63) = bastcve.rep|x
|
||||
Kill(64) = batbivd.msk|x
|
||||
Kill(65) = batbesc.msk|x
|
||||
Kill(66) = batbtra.msk|x
|
||||
Kill(67) = bastscc.rep|x
|
||||
Kill(68) = bastver.rep|x
|
||||
Kill(69) = bastleg.rep|x
|
||||
|
||||
[cg]
|
||||
Data = 25-06-2019
|
||||
Descrizione = Contabilita' Generale
|
||||
Dischi = 1
|
||||
Moduli = ba
|
||||
OEM =
|
||||
Patch = 838
|
||||
PostProcess = bainst -0 CG
|
||||
PreProcess =
|
||||
Prezzo(1) =
|
||||
Prezzo(2) =
|
||||
Versione = 21511200
|
||||
|
BIN
cd/test/cg0838a1.zip
Normal file
BIN
cd/test/cg0838a1.zip
Normal file
Binary file not shown.
7
cd/test/fp0834.txt
Normal file
7
cd/test/fp0834.txt
Normal file
@ -0,0 +1,7 @@
|
||||
fp0.exe
|
||||
fp0500a.msk
|
||||
fpmenu.men
|
||||
sql\fp0\fp0110.sql
|
||||
sql\fp0\fp0108.sql
|
||||
|
||||
Implementazione personalizzazioni FP + aggiornamento esportazione
|
23
cd/test/fp0834a.ini
Normal file
23
cd/test/fp0834a.ini
Normal file
@ -0,0 +1,23 @@
|
||||
[Main]
|
||||
Demo=0
|
||||
|
||||
[fp1]
|
||||
File(0) = fp0.exe|X
|
||||
File(5) = fp0500a.msk|X
|
||||
File(10) = fpmenu.men|X
|
||||
File(11) = sql\fp0\fp0110.sql|X
|
||||
File(12) = sql\fp0\fp0108.sql|X
|
||||
Patch = 834
|
||||
Versione = 21511200
|
||||
|
||||
[fp]
|
||||
Data = 24-06-2019
|
||||
Descrizione = Fattura Elettronica
|
||||
Dischi = 1
|
||||
Moduli = cg,ve
|
||||
OEM =
|
||||
Patch = 834
|
||||
PostProcess =
|
||||
PreProcess =
|
||||
Versione = 21511200
|
||||
|
BIN
cd/test/fp0834a1.zip
Normal file
BIN
cd/test/fp0834a1.zip
Normal file
Binary file not shown.
4
cd/test/fp0836.txt
Normal file
4
cd/test/fp0836.txt
Normal file
@ -0,0 +1,4 @@
|
||||
fp0.exe
|
||||
|
||||
Esportazione da f1-fp delle ritenute di acconto
|
||||
Correzione se importo e' nullo
|
19
cd/test/fp0836a.ini
Normal file
19
cd/test/fp0836a.ini
Normal file
@ -0,0 +1,19 @@
|
||||
[Main]
|
||||
Demo=0
|
||||
|
||||
[fp1]
|
||||
File(0) = fp0.exe|X
|
||||
Patch = 0836
|
||||
Versione = 21511200
|
||||
|
||||
[fp]
|
||||
Data = 25-06-2019
|
||||
Descrizione = Fattura Elettronica
|
||||
Dischi = 1
|
||||
Moduli = cg,ve
|
||||
OEM =
|
||||
Patch = 836
|
||||
PostProcess =
|
||||
PreProcess =
|
||||
Versione = 21511200
|
||||
|
BIN
cd/test/fp0836a1.zip
Normal file
BIN
cd/test/fp0836a1.zip
Normal file
Binary file not shown.
4
cd/test/ve0834.txt
Normal file
4
cd/test/ve0834.txt
Normal file
@ -0,0 +1,4 @@
|
||||
ve0.exe
|
||||
vetbtip.msk
|
||||
|
||||
Aggiornamento tipo documento per personalizzazioni FP
|
130
cd/test/ve0834a.ini
Normal file
130
cd/test/ve0834a.ini
Normal file
@ -0,0 +1,130 @@
|
||||
[Main]
|
||||
Demo=0
|
||||
|
||||
[ve1]
|
||||
File(0) = ve0.exe|X
|
||||
File(225) = vetbtip.msk|X
|
||||
Patch = 834
|
||||
Versione = 21511200
|
||||
|
||||
[ve99]
|
||||
Kill(0) = batbimb.msk|x
|
||||
Kill(1) = batbacr.msk|x
|
||||
Kill(2) = eftbbnp.msk|x
|
||||
Kill(3) = bastgmc.rep|x
|
||||
Kill(4) = bastabe.msk|x
|
||||
Kill(5) = bastbnp.msk|x
|
||||
Kill(6) = bastfrd.rep|x
|
||||
Kill(7) = bastcra.rep|x
|
||||
Kill(8) = ve7701a.ini|x
|
||||
Kill(9) = bastgcg.rep|x
|
||||
Kill(10) = batbstd.msk|x
|
||||
Kill(11) = batbfca.msk|x
|
||||
Kill(12) = batbnum.msk|x
|
||||
Kill(13) = bastfrm.msk|x
|
||||
Kill(14) = batbfsa.msk|x
|
||||
Kill(15) = batbgsa.msk|x
|
||||
Kill(16) = bastfrm.rep|x
|
||||
Kill(17) = ve7400conf.ini|x
|
||||
Kill(18) = bastgca.rep|x
|
||||
Kill(19) = batbbnp.msk|x
|
||||
Kill(20) = bastctr.rep|x
|
||||
Kill(21) = batbprv.msk|x
|
||||
Kill(22) = batbtri.msk|x
|
||||
Kill(23) = batbcau.msk|x
|
||||
Kill(24) = basteld.rep|x
|
||||
Kill(25) = ve7700a.msk|x
|
||||
Kill(26) = batbgca.msk|x
|
||||
Kill(27) = efstbnp.rep|x
|
||||
Kill(28) = ve7200a.msk|x
|
||||
Kill(29) = basttip.rep|x
|
||||
Kill(30) = bastcra.msk|x
|
||||
Kill(31) = bastasf.rep|x
|
||||
Kill(32) = bastcau.rep|x
|
||||
Kill(33) = ve7500a.msk|x
|
||||
Kill(34) = basttag.rep|x
|
||||
Kill(35) = bastfrr.msk|x
|
||||
Kill(36) = bastspp.msk|x
|
||||
Kill(37) = bastums.rep|x
|
||||
Kill(38) = batbabe.msk|x
|
||||
Kill(39) = batbprs.msk|x
|
||||
Kill(40) = batbgmc.msk|x
|
||||
Kill(41) = bastgca.msk|x
|
||||
Kill(42) = batbcaa.msk|x
|
||||
Kill(43) = bastrfa.rep|x
|
||||
Kill(44) = bastimb.rep|x
|
||||
Kill(45) = ve7100a.msk|x
|
||||
Kill(46) = basttri.rep|x
|
||||
Kill(47) = basteld.msk|x
|
||||
Kill(48) = batbtip.msk|x
|
||||
Kill(49) = ve7.exe|x
|
||||
Kill(50) = bastcau.msk|x
|
||||
Kill(51) = bastrfc.rep|x
|
||||
Kill(52) = batbrfc.msk|x
|
||||
Kill(53) = bastubi.rep|x
|
||||
Kill(54) = ve7300a.frm|x
|
||||
Kill(55) = bastgmc.msk|x
|
||||
Kill(56) = bastabe.rep|x
|
||||
Kill(57) = batbfid.msk|x
|
||||
Kill(58) = batbctr.msk|x
|
||||
Kill(59) = bastums.msk|x
|
||||
Kill(60) = bastasf.msk|x
|
||||
Kill(61) = bastfrr.rep|x
|
||||
Kill(62) = ve7600a.msk|x
|
||||
Kill(63) = batbspp.msk|x
|
||||
Kill(64) = batbtag.msk|x
|
||||
Kill(65) = ve7300a.msk|x
|
||||
Kill(66) = bastgcg.msk|x
|
||||
Kill(67) = bastubi.msk|x
|
||||
Kill(68) = bastnum.rep|x
|
||||
Kill(69) = bastrfa.msk|x
|
||||
Kill(70) = batbgcg.msk|x
|
||||
Kill(71) = ve7400a.ini|x
|
||||
Kill(72) = bastcaa.msk|x
|
||||
Kill(73) = batbasf.msk|x
|
||||
Kill(74) = bastfca.rep|x
|
||||
Kill(75) = batbmre.msk|x
|
||||
Kill(76) = baststd.msk|x
|
||||
Kill(77) = batbspt.msk|x
|
||||
Kill(78) = batbrfa.msk|x
|
||||
Kill(79) = bastprs.msk|x
|
||||
Kill(80) = bastimb.msk|x
|
||||
Kill(81) = bastrfc.msk|x
|
||||
Kill(82) = batbpro.msk|x
|
||||
Kill(83) = bastctr.msk|x
|
||||
Kill(84) = basttag.msk|x
|
||||
Kill(85) = batbfrr.msk|x
|
||||
Kill(86) = batbubi.msk|x
|
||||
Kill(87) = ve7200a.frm|x
|
||||
Kill(88) = batbfrd.msk|x
|
||||
Kill(89) = bastfca.msk|x
|
||||
Kill(90) = batbfrm.msk|x
|
||||
Kill(91) = batbcra.msk|x
|
||||
Kill(92) = bastnum.msk|x
|
||||
Kill(93) = basttri.msk|x
|
||||
Kill(94) = batbums.msk|x
|
||||
Kill(95) = batbeld.msk|x
|
||||
Kill(96) = efstbnp.msk|x
|
||||
Kill(97) = bastcaa.rep|x
|
||||
Kill(98) = bastspp.rep|x
|
||||
Kill(99) = batbcld.msk|x
|
||||
Kill(100) = bastfrd.msk|x
|
||||
Kill(101) = ve7400a.msk|x
|
||||
Kill(102) = bastbnp.rep|x
|
||||
Kill(103) = baststd.rep|x
|
||||
Kill(104) = basttip.msk|x
|
||||
Kill(105) = bastprs.rep|x
|
||||
|
||||
[ve]
|
||||
Data = 11-06-2019
|
||||
Descrizione = Vendite
|
||||
Dischi = 1
|
||||
Moduli = ba,cg9,pr9,mg9,sv9,in9,ef9
|
||||
OEM =
|
||||
Patch = 834
|
||||
PostProcess = bainst -0 VE
|
||||
PreProcess =
|
||||
Prezzo(1) =
|
||||
Prezzo(2) =
|
||||
Versione = 21511200
|
||||
|
BIN
cd/test/ve0834a1.zip
Normal file
BIN
cd/test/ve0834a1.zip
Normal file
Binary file not shown.
@ -2268,7 +2268,7 @@ void TPrimanota_application::ini2mask(TConfig& ini, TMask& msk, bool query)
|
||||
}
|
||||
if (_f1_ini && msk.find_by_id(FS_RECALC) != NULL)
|
||||
{
|
||||
msk.set(F_TOTALE, calcola_imp());
|
||||
//msk.set(F_TOTALE, calcola_imp());
|
||||
msk.set(F_COLFPPRO, "X");
|
||||
msk.set(FS_RECALC, "");
|
||||
load_perc_nat(msk, ini);
|
||||
|
@ -222,12 +222,13 @@
|
||||
#define F_DATAORARICS 103
|
||||
#define F_DATAS 104
|
||||
#define F_IMPTOTDOCS 105
|
||||
#define F_NUMEROS 106
|
||||
#define F_FISCIVAPAESES 107
|
||||
#define F_FISCIVACODS 108
|
||||
#define F_CODFISCALES 109
|
||||
#define F_TIPOPROTS 110
|
||||
#define F_PROGRESSS 111
|
||||
#define F_KEYFPPROS 112
|
||||
#define F_RITENUTE 106
|
||||
#define F_NUMEROS 107
|
||||
#define F_FISCIVAPAESES 108
|
||||
#define F_FISCIVACODS 109
|
||||
#define F_CODFISCALES 110
|
||||
#define F_TIPOPROTS 111
|
||||
#define F_PROGRESSS 112
|
||||
#define F_KEYFPPROS 113
|
||||
|
||||
#endif
|
||||
|
@ -3009,7 +3009,7 @@ bool TPrimanota_application::clifo_handler(TMask_field& f, KEY key)
|
||||
const bool ic = ixc->active() && (alleg < 5 || alleg == 7) && paiv.full() && !m.get_bool(F_LIQDIFF);
|
||||
ixc->set(ic ? "X" : "");
|
||||
}
|
||||
if(m.get(F_PROKEY).empty())
|
||||
if(m.get(F_PROKEY).empty() && app().has_module(F1AUT))
|
||||
fppro_mask(f, key);
|
||||
}
|
||||
}
|
||||
@ -3906,16 +3906,15 @@ void TPrimanota_application::set_clifo(TMask& cg_msk, const shared_ptr<TPro_msk>
|
||||
void TPrimanota_application::set_totale(TMask& cg_msk, const shared_ptr<TPro_msk>& msk)
|
||||
{
|
||||
real totale = msk->get_totdoc();
|
||||
if(totale == 0)
|
||||
if(totale == ZERO)
|
||||
totale = app().calcola_imp();
|
||||
const real rit = msk->get_ritenute();
|
||||
if(rit != ZERO)
|
||||
{
|
||||
const vector<TPro_msk::riga_iva_s>& righe = msk->get_righeiva();
|
||||
for(auto it = righe.begin(); it != righe.end(); ++it)
|
||||
{
|
||||
totale += it->imponibile;
|
||||
totale += it->imposta;
|
||||
}
|
||||
totale -= rit;
|
||||
cg_msk.set(F_RITFIS, rit);
|
||||
}
|
||||
cg_msk.set(F_TOTALE, abs(totale));
|
||||
cg_msk.set(F_TOTALE, totale);
|
||||
}
|
||||
|
||||
void TPrimanota_application::riporta_dati_f1(TMask& cg_msk, const shared_ptr<TPro_msk>& msk)
|
||||
@ -3923,7 +3922,7 @@ void TPrimanota_application::riporta_dati_f1(TMask& cg_msk, const shared_ptr<TPr
|
||||
cg_msk.set(F_NUMDOCEXT, msk->get_numdoc());
|
||||
cg_msk.set(F_NUMDOC, msk->get_numdoc().right(7));
|
||||
cg_msk.set(F_DATADOC, msk->get_datadoc());
|
||||
if (!cg_msk.get(F_CODCLIFOR).full())
|
||||
if (!cg_msk.get(F_CODCLIFOR).full() && msk->get_numdoc().full())
|
||||
set_clifo(cg_msk, msk);
|
||||
set_righe_iva_f1(cg_msk, msk);
|
||||
set_totale(cg_msk, msk);
|
||||
@ -3950,7 +3949,7 @@ bool TPrimanota_application::fppro_mask(TMask_field& f, KEY key)
|
||||
msk->run();
|
||||
// Riporto dati FPPRO su maschera Prima Nota (solo se hai F1)
|
||||
// Se non hai F1 collego senza riportarti i dati (solo le chiavi db)
|
||||
if(app().has_f1_db(&cg_msk))
|
||||
if(msk->should_bring_back())
|
||||
riporta_dati_f1(cg_msk, msk);
|
||||
cg_msk.set(F_PROKEY, msk->get_fpprokeys());
|
||||
is_collegato(cg_msk.field(F_COLFPPRO));
|
||||
@ -4018,6 +4017,7 @@ bool TPro_msk::load_fppro_mask(TMask* msk, KEY k)
|
||||
row.add(TDate(fp_db().sq_get_date("P1_DATAORARIC")));
|
||||
row.add(TDate(fp_db().sq_get_date("PZ_DATA")));
|
||||
row.add(fp_db().sq_get("PQ_IMPTOTDOC"));
|
||||
row.add(fp_db().sq_get("P7_IMPORTORIT"));
|
||||
row.add(fp_db().sq_get("PZ_NUMERO"));
|
||||
row.add(fp_db().sq_get("P2_FISCIVAPAESE"));
|
||||
row.add(fp_db().sq_get("P2_FISCIVACOD"));
|
||||
@ -4040,7 +4040,7 @@ bool TPro_msk::fppro_handler(TMask_field& f, KEY k)
|
||||
return load;
|
||||
}
|
||||
|
||||
bool TPro_msk::fppro_ok_handler(TMask_field& f, KEY k)
|
||||
bool TPro_msk::riporta_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
if (k != 32)
|
||||
return true;
|
||||
@ -4049,17 +4049,19 @@ bool TPro_msk::fppro_ok_handler(TMask_field& f, KEY k)
|
||||
//return true;
|
||||
bool ok = false;
|
||||
TSheet_field& sf = msk.sfield(F_SHEETFPPROS);
|
||||
bool loaded = false;
|
||||
|
||||
FOR_EACH_SHEET_ROW(sf, nr, row)
|
||||
{
|
||||
if(!loaded && *row->get(0) == 'X')
|
||||
if(*row->get(0) == 'X')
|
||||
{
|
||||
//TProtocollo protocollo(TDate(row->get(2)).year(), row->get(9), row->get(10));
|
||||
app()._pro_mask->set_doc(row->get(cid2index(F_NUMEROS)), row->get(cid2index(F_DATAS)),
|
||||
row->get(cid2index(F_IMPTOTDOCS)), "", row->get(cid2index(F_KEYFPPROS)),
|
||||
row->get(cid2index(F_IMPTOTDOCS)), row->get(cid2index(F_RITENUTE)), "", row->get(cid2index(F_KEYFPPROS)),
|
||||
row->get(cid2index(F_FISCIVACODS)));
|
||||
loaded = true;
|
||||
if (f.dlg() == DLG_OK)
|
||||
app()._pro_mask->_riporta = true;
|
||||
else
|
||||
app()._pro_mask->_riporta = false;
|
||||
ok = true;
|
||||
break;
|
||||
}
|
||||
@ -4073,13 +4075,18 @@ bool TPro_msk::fppro_ok_handler(TMask_field& f, KEY k)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TPro_msk::collega_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
return riporta_handler(f, k);
|
||||
}
|
||||
|
||||
bool TPro_msk::piva_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
TMask& msk = f.mask();
|
||||
bool ok = true;
|
||||
if(k == K_TAB && f.active() && f.focusdirty())
|
||||
{
|
||||
ok = load_fppro_mask(&msk, 32);
|
||||
ok = load_fppro_mask(&msk, K_SPACE);
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
@ -4090,7 +4097,7 @@ bool TPro_msk::date_handler(TMask_field& f, KEY k)
|
||||
bool ok = true;
|
||||
if (k == K_TAB && f.active() && f.focusdirty())
|
||||
{
|
||||
ok = load_fppro_mask(&msk, 32);
|
||||
ok = load_fppro_mask(&msk, K_SPACE);
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
@ -4119,7 +4126,7 @@ bool TPro_msk::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
break;
|
||||
case F_SHOWALL:
|
||||
if (e == fe_modify)
|
||||
load_fppro_mask(this, 32);
|
||||
load_fppro_mask(this, K_SPACE);
|
||||
break;
|
||||
case F_ENABSEARCH:
|
||||
if (e == fe_modify)
|
||||
@ -4170,11 +4177,12 @@ void TPro_msk::set_scadenze(const char* fpprokeys)
|
||||
}
|
||||
}
|
||||
|
||||
void TPro_msk::set_doc(const char* numero, const char* datadoc, const char* totdoc, const char* protfppro, const char* fpprokeys, const char* piva)
|
||||
void TPro_msk::set_doc(const char* numero, const char* datadoc, const char* totdoc, const char* ritenute, const char* protfppro, const char* fpprokeys, const char* piva)
|
||||
{
|
||||
_numero = numero;
|
||||
_datadoc = datadoc;
|
||||
_totdoc = totdoc;
|
||||
_totdoc = abs(totdoc);
|
||||
_ritenute = ritenute;
|
||||
_protfppro.sset(protfppro);
|
||||
_fpprokeys = fpprokeys;
|
||||
_piva = piva;
|
||||
@ -4232,7 +4240,7 @@ TString& TPro_msk::query_fppro(const TString& codforn, const TString& stato_piva
|
||||
}
|
||||
|
||||
static TString query;
|
||||
query.cut(0) << "SELECT PZ_CLIFOR, PZ_DATA, CAST(P1_DATAORARIC AS DATE) AS P1_DATAORARIC, P7_TIPODOC, PQ_IMPTOTDOC, PZ_NUMERO, PZ_NUMREGCONT, PZ_TIPOPROT, PZ_NUMPROT, P2_FISCIVAPAESE, P2_FISCIVACOD, P2_CODFISCALE, PZ_KEYPRGINVIO, PZ_KEYHEADERFATT, PZ_KEYBODYFATT\n" <<
|
||||
query.cut(0) << "SELECT PZ_CLIFOR, PZ_DATA, CAST(P1_DATAORARIC AS DATE) AS P1_DATAORARIC, P7_TIPODOC, PQ_IMPTOTDOC, P7_IMPORTORIT, PZ_NUMERO, PZ_NUMREGCONT, PZ_TIPOPROT, PZ_NUMPROT, P2_FISCIVAPAESE, P2_FISCIVACOD, P2_CODFISCALE, PZ_KEYPRGINVIO, PZ_KEYHEADERFATT, PZ_KEYBODYFATT\n" <<
|
||||
"FROM PAA0200F\n" << "JOIN FPPRO00F\n" << " ON P2_KEYPRGINVIO = PZ_KEYPRGINVIO AND P2_KEYHEADERFATT = PZ_KEYHEADERFATT AND P2_KEYBODYFATT = PZ_KEYBODYFATT\n" <<
|
||||
"JOIN PAA0100F\n" << " ON P2_KEYPRGINVIO = P1_KEYPRGINVIO AND P2_KEYHEADERFATT = P1_KEYHEADERFATT AND P2_KEYBODYFATT = P1_KEYBODYFATT\n" <<
|
||||
"JOIN PAA2700F\n" << "ON P2_KEYPRGINVIO = PQ_KEYPRGINVIO AND P2_KEYHEADERFATT = PQ_KEYHEADERFATT AND P2_KEYBODYFATT = PQ_KEYBODYFATT\n" <<
|
||||
@ -4282,10 +4290,13 @@ void TPro_msk::abilita_piva(TMask* msk)
|
||||
}
|
||||
}
|
||||
|
||||
TPro_msk::TPro_msk(TMask& cg_msk) : TAutomask("cg2fppro")
|
||||
TPro_msk::TPro_msk(TMask& cg_msk) : TAutomask("cg2fppro"), _riporta(false)
|
||||
{
|
||||
TMask::set_handler(DLG_CONFIG, fppro_handler);
|
||||
TMask::set_handler(DLG_LINK, fppro_ok_handler);
|
||||
TMask::set_handler(DLG_OK, riporta_handler);
|
||||
if (!app().has_module(F1AUT))
|
||||
field(DLG_OK).disable();
|
||||
TMask::set_handler(DLG_LINK, collega_handler);
|
||||
TMask::set_handler(F_PIVAS, piva_handler);
|
||||
TMask::set_handler(F_DATESEARCH, date_handler);
|
||||
TMask::set(F_CODCLIFORS, cg_msk.get(F_CODCLIFOR));
|
||||
|
@ -408,17 +408,20 @@ class TPro_msk : public TAutomask
|
||||
TString _numero;
|
||||
TDate _datadoc;
|
||||
real _totdoc;
|
||||
real _ritenute;
|
||||
TProtocollo _protfppro;
|
||||
TString _fpprokeys;
|
||||
TString _piva;
|
||||
vector<riga_iva_s> _righe_iva;
|
||||
vector<scadenza_s> _scadenze;
|
||||
bool _riporta;
|
||||
|
||||
// Handlers per aggancio FPPRO
|
||||
// Bottone carica documenti in maschera FPPRO
|
||||
static bool fppro_handler(TMask_field& f, KEY k);
|
||||
// Bottone riporta doc FPPRO in testata Prima Nota
|
||||
static bool fppro_ok_handler(TMask_field& f, KEY k);
|
||||
static bool riporta_handler(TMask_field& f, KEY k);
|
||||
static bool collega_handler(TMask_field& f, KEY k);
|
||||
static bool piva_handler(TMask_field& f, KEY k);
|
||||
static bool date_handler(TMask_field& f, KEY k);
|
||||
// Non permette la selezione multipla
|
||||
@ -440,20 +443,22 @@ public:
|
||||
|
||||
void set_righeiva(const char* fpprokeys);
|
||||
void set_scadenze(const char* fpprokeys);
|
||||
void set_doc(const char* numero, const char* datadoc, const char* totdoc, const char* protfppro, const char* fpprokeys, const char* piva);
|
||||
void set_doc(const char* numero, const char* datadoc, const char* totdoc, const char* ritenute, const char* protfppro, const char* fpprokeys, const char* piva);
|
||||
|
||||
TString get_numdoc() const { return _numero; }
|
||||
TDate get_datadoc() const { return _datadoc; }
|
||||
real get_totdoc() const { return _totdoc; }
|
||||
TProtocollo& get_protocollo() { return _protfppro; }
|
||||
TString get_fpprokeys() const { return _fpprokeys; }
|
||||
TString get_numdoc() const { return _numero; }
|
||||
TDate get_datadoc() const { return _datadoc; }
|
||||
real get_totdoc() const { return _totdoc; }
|
||||
real get_ritenute() { return _ritenute; }
|
||||
TProtocollo& get_protocollo() { return _protfppro; }
|
||||
TString get_fpprokeys() const { return _fpprokeys; }
|
||||
|
||||
TString get_piva() const { return _piva; }
|
||||
const vector<riga_iva_s>& get_righeiva() { return _righe_iva; }
|
||||
vector<scadenza_s>& get_scadenze() { return _scadenze; }
|
||||
void add_rigaiva(const real& imponibile, const real& imposta, const real& aliquota, const TString4& natura);
|
||||
void add_scad(const TDate& date, const real& importo);
|
||||
|
||||
bool should_bring_back() const { return _riporta; }
|
||||
|
||||
|
||||
static TString& query_fppro(const TString& keyprginvio, const TString& keyheaderfatt, const TString& keybodyfatt, const TString& where_str);
|
||||
static TString& query_fppro(const TString& codforn, const TString& date);
|
||||
|
@ -4,10 +4,16 @@ TOOLBAR "topbar" 0 0 0 2
|
||||
|
||||
BUTTON DLG_CONFIG 2 2
|
||||
BEGIN
|
||||
PROMPT 3 1 "Ricarica Fatture"
|
||||
PROMPT 1 1 "Ricarica Fatture"
|
||||
PICTURE TOOL_ELABORA
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 2 2
|
||||
BEGIN
|
||||
PROMPT 2 1 "Riporta Documento"
|
||||
MODULE F1
|
||||
END
|
||||
|
||||
BUTTON DLG_LINK 2 2
|
||||
BEGIN
|
||||
PROMPT 3 1 "Collega Documento"
|
||||
@ -89,6 +95,7 @@ BEGIN
|
||||
ITEM "Data Ricezione"
|
||||
ITEM "Data Doc."
|
||||
ITEM "Importo Totale"
|
||||
ITEM "Ritenute d'acconto"
|
||||
ITEM "Numero"
|
||||
ITEM "Paese"
|
||||
ITEM "P. IVA"
|
||||
@ -165,45 +172,51 @@ BEGIN
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_RITENUTE 10 3
|
||||
BEGIN
|
||||
PROMPT 1 4 "Ritenute d'acconto"
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_NUMEROS 20
|
||||
BEGIN
|
||||
PROMPT 1 4 "NUMERO"
|
||||
PROMPT 1 5 "NUMERO"
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_FISCIVAPAESES 2
|
||||
BEGIN
|
||||
PROMPT 1 5 "FISCIVAPAESE"
|
||||
PROMPT 1 6 "FISCIVAPAESE"
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_FISCIVACODS 16
|
||||
BEGIN
|
||||
PROMPT 1 6 "FISCIVACOD"
|
||||
PROMPT 1 7 "FISCIVACOD"
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_CODFISCALES 16
|
||||
BEGIN
|
||||
PROMPT 1 7 "CODFISCALE"
|
||||
PROMPT 1 8 "CODFISCALE"
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_TIPOPROTS 2
|
||||
BEGIN
|
||||
PROMPT 1 8 "TIPOPROT"
|
||||
PROMPT 1 9 "TIPOPROT"
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_PROGRESSS 10 0
|
||||
BEGIN
|
||||
PROMPT 1 9 "PROGRESS"
|
||||
PROMPT 1 10 "PROGRESS"
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_KEYFPPROS 80
|
||||
BEGIN
|
||||
PROMPT 1 10 "CHIAVE FPPRO"
|
||||
PROMPT 1 11 "CHIAVE FPPRO"
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
|
@ -8,6 +8,7 @@
|
||||
#include "../fp/fp0400a.h"
|
||||
#include "reputils.h"
|
||||
#include "../fp/fplib.h"
|
||||
#include "causali.h"
|
||||
|
||||
//////////////////////////////////////////////////////////
|
||||
// TFppro
|
||||
@ -107,6 +108,17 @@ TDate TFppro::get_datareg(TToken_string& keys)
|
||||
return TDate();
|
||||
}
|
||||
|
||||
real TFppro::get_ritenute() const
|
||||
{
|
||||
TString query;
|
||||
query << "SELECT P7_IMPORTORIT AS IMPORTO FROM PAA0700F\n" <<
|
||||
"WHERE P7_KEYPRGINVIO = '" << _keys.prginvio << "' AND P7_KEYHEADERFATT = '" << _keys.headerfatt << "' AND P7_KEYBODYFATT = '" << _keys.bodyfatt << "'";
|
||||
fp_db().sq_set_exec(query);
|
||||
if(fp_db().sq_items() >= 1)
|
||||
return fp_db().sq_get_real("IMPORTO");
|
||||
return ZERO;
|
||||
}
|
||||
|
||||
bool TFppro::set_keys(TToken_string& keys)
|
||||
{
|
||||
if(keys.items() == 3)
|
||||
@ -306,6 +318,14 @@ bool check_causale(const TString& cod_caus, const TString& tipo_doc, bool acq)
|
||||
return false;
|
||||
}
|
||||
|
||||
bool check_caus_has_rit(const TString& cod_caus, bool rit)
|
||||
{
|
||||
TLocalisamfile causali(LF_CAUSALI);
|
||||
causali.put(CAU_CODCAUS, cod_caus);
|
||||
causali.read();
|
||||
return *causali.get(CAU_M770) != '\0';
|
||||
}
|
||||
|
||||
void run_cont_ini(bool liq)
|
||||
{
|
||||
static TString run_string;
|
||||
|
@ -49,6 +49,7 @@ public:
|
||||
int get_numreg(TToken_string& keys);
|
||||
TDate get_datareg();
|
||||
TDate get_datareg(TToken_string& keys);
|
||||
real get_ritenute() const;
|
||||
bool set_query();
|
||||
bool set_keys(TToken_string& keys);
|
||||
bool set_keys(keys_s keys);
|
||||
@ -56,7 +57,7 @@ public:
|
||||
static TDate get_data_first_doc();
|
||||
|
||||
TFppro() : _keys({"\0", "\0", "\0" }), _guess(false), _keys_setted(false), _is_set(false) { }
|
||||
|
||||
TFppro::TFppro(TToken_string& keys) : TFppro() { set_keys(keys); }
|
||||
};
|
||||
|
||||
class TProtocollo : TObject
|
||||
@ -110,5 +111,6 @@ void set_periodprec(bool flag);
|
||||
bool check_causale(const TString& cod_caus, bool acq = true);
|
||||
// Controlla se il "cod_caus" ha come "tipo_doc" FA o NC (di acquisto)
|
||||
bool check_causale(const TString& cod_caus, const TString& tipo_doc, bool acq = true);
|
||||
bool check_caus_has_rit(const TString& cod_caus, bool rit);
|
||||
void run_cont_ini(bool liq);
|
||||
#endif
|
@ -35,6 +35,12 @@ enum { filtri = 0, elenco_fe = 1, elenco_err = 2 }; // Enum per bottoni toolbar
|
||||
|
||||
class TPassive_mask : public TAutomask
|
||||
{
|
||||
struct iva
|
||||
{
|
||||
real imponibile;
|
||||
real imposta;
|
||||
};
|
||||
|
||||
TLog_report* _log;
|
||||
bool _f1;
|
||||
|
||||
@ -61,6 +67,8 @@ protected:
|
||||
void run_cg0(const TString& filename) const;
|
||||
void elenco_prots_sel(TString& string) const;
|
||||
|
||||
vector<iva>& get_righe_iva(TToken_string& keys) const;
|
||||
real calcola_importo(vector<iva> riva) const;
|
||||
// Gestione F1
|
||||
int prepara_contab() const;
|
||||
void log_contab();
|
||||
@ -195,6 +203,36 @@ void TPassive_mask::elenco_prots_sel(TString& string) const
|
||||
string = "";
|
||||
}
|
||||
|
||||
vector<TPassive_mask::iva>& TPassive_mask::get_righe_iva(TToken_string& keys) const
|
||||
{
|
||||
static vector<iva> riva;
|
||||
riva.clear();
|
||||
TString where_q; where_q << "WHERE PL_KEYPRGINVIO = '" << keys.get(0);
|
||||
where_q << "' AND PL_KEYHEADERFATT = '" << keys.get();
|
||||
where_q << "' AND PL_KEYBODYFATT = '" << keys.get() << "'";
|
||||
TString query; query << "SELECT PL_IMPONIBILE AS IMPONIBILE, PL_IMPOSTA AS IMPOSTA \nFROM PAA2200F \n" << where_q;
|
||||
fp_db().sq_set_exec(query, false);
|
||||
for (bool ok = fp_db().sq_next(); ok; ok = fp_db().sq_next())
|
||||
{
|
||||
TString imponibile = fp_db().sq_get("IMPONIBILE");
|
||||
TString imposta = fp_db().sq_get("IMPOSTA");
|
||||
if (imponibile.full() || imposta.full())
|
||||
riva.insert(riva.end(), { real(imponibile), real(imposta) });
|
||||
}
|
||||
return riva;
|
||||
}
|
||||
|
||||
real TPassive_mask::calcola_importo(vector<iva> riva) const
|
||||
{
|
||||
real tot = ZERO;
|
||||
for(auto it = riva.begin(); it != riva.end(); ++it)
|
||||
{
|
||||
tot += it->imponibile;
|
||||
tot += it->imposta;
|
||||
}
|
||||
return tot;
|
||||
}
|
||||
|
||||
void TPassive_mask::aggiungi_riga(TLocalisamfile& clifo, TSheet_field& sf, TSheet_field& sf_err)
|
||||
{
|
||||
TString denom = fp_db().sq_get("RAG_SOC");
|
||||
@ -515,11 +553,15 @@ int TPassive_mask::prepara_contab() const
|
||||
FOR_EACH_SHEET_ROW(sf, n, row) {
|
||||
if (row->starts_with("X"))
|
||||
{
|
||||
TString prokeys = row->get(sf.cid2index(S_PROKEY));
|
||||
TToken_string keys(prokeys, ';');
|
||||
TString codcaus(get_codcaus(row->get(2), row->get(10)));
|
||||
|
||||
if(!TString(row->get(sf.cid2index(S_NUMREGCONT))).empty())
|
||||
return n+1000;
|
||||
TString codcaus(get_codcaus(row->get(2), row->get(10)));
|
||||
if (codcaus.empty())
|
||||
return no_codcaus;
|
||||
|
||||
TString tipodoc(row->get(sf.cid2index(S_TIPODOCSDI)));
|
||||
if(tipodoc == "TD01" && !check_causale(codcaus, "FA"))
|
||||
if(!yesno_box("Attenzione, per un documento di tipo TD01 e' stata selezionata \nuna causale diversa da Fattura d'Acquisto.\nContinuare?"))
|
||||
@ -528,6 +570,8 @@ int TPassive_mask::prepara_contab() const
|
||||
if(!yesno_box("Attenzione, per un documento di tipo TD04 e' stata selezionata \nuna causale diversa da Nota Credito di Acquisto.\nContinuare?"))
|
||||
return cancel;
|
||||
n_sel++;
|
||||
|
||||
vector<iva>& riva = get_righe_iva(keys);
|
||||
TString num; num.format("%04d", n);
|
||||
TFilename newf_ini;
|
||||
#ifndef DBG
|
||||
@ -536,10 +580,9 @@ int TPassive_mask::prepara_contab() const
|
||||
newf_ini << F1_INIREGCONT << num << ".ini";
|
||||
#endif
|
||||
TConfig contab_ini(newf_ini, "Transaction");
|
||||
TString prokeys = row->get(sf.cid2index(S_PROKEY));
|
||||
|
||||
contab_ini.set("Action", "INSERT");
|
||||
|
||||
// Esporto dati di testata
|
||||
contab_ini.set_paragraph(LF_MOV); // [23]
|
||||
contab_ini.set("CODCAUS", codcaus);
|
||||
contab_ini.set("CODCF", row->get(sf.cid2index(S_FORNITORE)));
|
||||
@ -547,16 +590,38 @@ int TPassive_mask::prepara_contab() const
|
||||
contab_ini.set("DATADOC", row->get(sf.cid2index(S_DATADOC)));
|
||||
contab_ini.set("NUMDOCEXT", row->get(sf.cid2index(S_NDOC)));
|
||||
contab_ini.set("NUMDOC", TString(row->get(sf.cid2index(S_NDOC))).right(7));
|
||||
contab_ini.set("TOTDOC", abs(real(row->get(sf.cid2index(S_TOTDOC)))).string());
|
||||
TString totdoc = row->get(sf.cid2index(S_TOTDOC));
|
||||
if(totdoc.empty())
|
||||
{
|
||||
real imp = calcola_importo(riva);
|
||||
totdoc.cut(0) << imp;
|
||||
}
|
||||
real rit = TFppro(keys).get_ritenute();
|
||||
if(rit != ZERO)
|
||||
{
|
||||
contab_ini.set("TOTDOC", (abs(real(totdoc)) - rit).string());
|
||||
contab_ini.set("RITFIS", rit.string());
|
||||
}
|
||||
else
|
||||
contab_ini.set("TOTDOC", abs(real(totdoc)).string());
|
||||
contab_ini.set("KEYFPPRO", prokeys);
|
||||
|
||||
// Esporto righe iva
|
||||
int i = 1;
|
||||
for (auto it = riva.begin(); it != riva.end(); ++it)
|
||||
{
|
||||
contab_ini.set_paragraph(LF_RMOVIVA, i);
|
||||
contab_ini.set("IMPONIBILE", it->imponibile.string());
|
||||
contab_ini.set("IMPOSTA", it->imposta.string());
|
||||
contab_ini.set("NRIGA", i);
|
||||
i++;
|
||||
}
|
||||
|
||||
// Se ci sono le scadenze esporto anche quelle
|
||||
TToken_string keys(prokeys, ';');
|
||||
TString where_q;
|
||||
where_q << "WHERE PO_KEYPRGINVIO = '" << keys.get() << "'";
|
||||
where_q << "WHERE PO_KEYPRGINVIO = '" << keys.get(0) << "'";
|
||||
where_q << " AND PO_KEYHEADERFATT = '" << keys.get() << "'";
|
||||
where_q << " AND PO_KEYBODYFATT = '" << keys.get() << "'";
|
||||
|
||||
TString query; query << "SELECT PO_RIGA AS RIGA, PO_DATASCADENZA AS DATA, PO_IMPORTO AS IMPORTO \nFROM PAA2500F \n" << where_q;
|
||||
|
||||
fp_db().sq_set_exec(query,false);
|
||||
@ -569,26 +634,7 @@ int TPassive_mask::prepara_contab() const
|
||||
contab_ini.set("NRATA", riga);
|
||||
contab_ini.set("NRIGA", "1");
|
||||
}
|
||||
|
||||
where_q.cut(0) << "WHERE PL_KEYPRGINVIO = '" << keys.get(0);
|
||||
where_q << "' AND PL_KEYHEADERFATT = '" << keys.get();
|
||||
where_q << "' AND PL_KEYBODYFATT = '" << keys.get() << "'";
|
||||
query.cut(0) << "SELECT PL_IMPONIBILE AS IMPONIBILE, PL_IMPOSTA AS IMPOSTA \nFROM PAA2200F \n" << where_q;
|
||||
fp_db().sq_set_exec(query, false);
|
||||
int i = 1;
|
||||
for (bool ok = fp_db().sq_next(); ok; ok = fp_db().sq_next())
|
||||
{
|
||||
TString imponibile = fp_db().sq_get("IMPONIBILE");
|
||||
TString imposta = fp_db().sq_get("IMPOSTA");
|
||||
if(imponibile.full() || imposta.full())
|
||||
{
|
||||
contab_ini.set_paragraph(LF_RMOVIVA, i);
|
||||
contab_ini.set("IMPONIBILE", imponibile);
|
||||
contab_ini.set("IMPOSTA", imposta);
|
||||
contab_ini.set("NRIGA", i);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
row->add("", 0);
|
||||
}
|
||||
}
|
||||
@ -607,7 +653,7 @@ void TPassive_mask::log_contab()
|
||||
TFilename cg_ini;
|
||||
TString msg;
|
||||
TF1_log log;
|
||||
std::vector<TString> doc_saved, doc_canceled, save_numreg, save_protiv;
|
||||
std::vector<TString> doc_saved, doc_canceled, save_numreg, save_protiv, canc_forn;
|
||||
FOR_EACH_SHEET_ROW(sfield(F_DOCS), n, row)
|
||||
{
|
||||
TString num; num.format("%04d", n);
|
||||
@ -619,23 +665,17 @@ void TPassive_mask::log_contab()
|
||||
if(cg_ini.exist())
|
||||
{
|
||||
TConfig config(cg_ini, "Transaction");
|
||||
TString numdoc;
|
||||
TString numreg;
|
||||
TString protiv;
|
||||
|
||||
if (config.get("Result") == "OK")
|
||||
{
|
||||
numdoc = config.get(MOV_NUMDOCEXT, "23");
|
||||
numreg = config.get(MOV_NUMREG, "23");
|
||||
protiv = config.get(MOV_PROTIVA, "23");
|
||||
doc_saved.insert(doc_saved.end(), numdoc);
|
||||
save_numreg.insert(save_numreg.end(), numreg);
|
||||
save_protiv.insert(save_protiv.end(), protiv);
|
||||
doc_saved.insert(doc_saved.end(), config.get(MOV_NUMDOCEXT, "23"));
|
||||
save_numreg.insert(save_numreg.end(), config.get(MOV_NUMREG, "23"));
|
||||
save_protiv.insert(save_protiv.end(), config.get(MOV_PROTIVA, "23"));
|
||||
}
|
||||
else if(config.get("Result") == "CANCEL")
|
||||
{
|
||||
numdoc = config.get(MOV_NUMDOCEXT, "23");
|
||||
doc_canceled.insert(doc_canceled.end(), numdoc);
|
||||
doc_canceled.insert(doc_canceled.end(), config.get(MOV_NUMDOCEXT, "23"));
|
||||
canc_forn.insert(canc_forn.end(), config.get(MOV_CODCF, "23"));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -658,12 +698,12 @@ void TPassive_mask::log_contab()
|
||||
{
|
||||
msg.cut(0);
|
||||
if (elem_canc == 1)
|
||||
msg << "La registrazione del documento n. '" << doc_canceled[0] << "' e' stata annullata.";
|
||||
msg << "La registrazione del documento n. '" << doc_canceled[0] << "' e' stata annullata. (fornitore n. " << canc_forn[0] << ")";
|
||||
else
|
||||
msg << "Sono state annullate " << elem_canc << " registrazioni.";
|
||||
if (elem_canc > 1)
|
||||
for (int i = 0; i < elem_canc; i++)
|
||||
msg << "\n - Documento n. '" << doc_canceled[i] << "'";
|
||||
msg << "\n - Documento n. '" << doc_canceled[i] << "'. (fornitore n. " << canc_forn[0] << ")";
|
||||
TToken_string msg_tok(msg, '\n');
|
||||
for (int i = 0; i < msg_tok.items(); i++)
|
||||
log.log(LOG_WARN, msg_tok.get());
|
||||
@ -687,7 +727,7 @@ void TPassive_mask::contabilizza()
|
||||
break;
|
||||
case no_codcaus:
|
||||
message_box("Attenzione, il fornitore non ha associato nessun codice causale predefinito.\nPrego selezionare un codice causale per la contabilizzazione.");
|
||||
next_page(1000);
|
||||
fill();
|
||||
break;
|
||||
case no_selected:
|
||||
message_box("Selezionare almeno un documento.");
|
||||
@ -743,7 +783,7 @@ void TPassive_mask::new_forn()
|
||||
{
|
||||
TString query; query << "SELECT PU_PEC AS PEC\n" <<
|
||||
"FROM PAA3200F\n" <<
|
||||
"WHERE PU_KEYPRGINVIO = '" << keys.get();
|
||||
"WHERE PU_KEYPRGINVIO = '" << keys.get(0);
|
||||
query << "' AND PU_KEYHEADERFATT = '" << keys.get();
|
||||
query << "' AND PU_KEYBODYFATT = '" << keys.get() << "'";
|
||||
fp_db().sq_set_exec(query);
|
||||
|
@ -305,7 +305,7 @@ BEGIN
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER S_TOTDOC 11 3
|
||||
NUMBER S_TOTDOC 11 2
|
||||
BEGIN
|
||||
PROMPT 1 2 "Totale Doc. "
|
||||
FLAGS "D"
|
||||
|
Loading…
x
Reference in New Issue
Block a user