diff --git a/ba/ba0.cpp b/ba/ba0.cpp index 72d901b2f..236722607 100755 --- a/ba/ba0.cpp +++ b/ba/ba0.cpp @@ -385,6 +385,7 @@ class TMenuitem : public TObject bool _enabled : 1; bool _firm : 1; bool _password : 1; + bool _reloadmenu : 1; protected: bool perform_submenu() const; @@ -491,7 +492,7 @@ public: TMenuitem::TMenuitem(TSubmenu* sm) : _submenu(sm), - _enabled(TRUE), _firm(FALSE), _password(FALSE), + _enabled(TRUE), _firm(FALSE), _password(FALSE), _reloadmenu(FALSE), _color(NORMAL_COLOR) { } @@ -514,6 +515,7 @@ void TMenuitem::create(const char* t) case 'D': _enabled = FALSE; break; case 'F': _firm = TRUE; break; case 'P': _password = TRUE; break; + case 'R': _reloadmenu = TRUE; break; default : break; } } @@ -529,8 +531,8 @@ void TMenuitem::create(const char* t) if (_action.empty()) _enabled = FALSE; - if (_enabled && is_program()) - _enabled = menu().has_module(_action); +// if (_enabled && is_program()) +// _enabled = menu().has_module(_action); } bool TMenuitem::enabled() const diff --git a/ba/install.ini b/ba/install.ini index 361d2d939..b9399d11c 100755 --- a/ba/install.ini +++ b/ba/install.ini @@ -1,6 +1,8 @@ [Main] +Demo = DiskPath = c:\cdinst~1\disk1\zip DiskSize = +Listino = [_area_di_base] Descrizione = BASE @@ -10,6 +12,7 @@ Data = 01-01-1998 Descrizione = Base Dischi = 1 Moduli = +Patch = PostProcess = PreProcess = Versione = 9801 @@ -18,6 +21,7 @@ Versione = 9801 Data = Descrizione = Gestione studi Moduli = +Patch = PostProcess = PreProcess = Versione = @@ -26,6 +30,7 @@ Versione = Data = Descrizione = Archiviazione Immagini Moduli = +Patch = PostProcess = PreProcess = Versione = @@ -34,6 +39,7 @@ Versione = Data = Descrizione = Multiutenza Moduli = +Patch = PostProcess = PreProcess = Versione = @@ -42,6 +48,7 @@ Versione = Data = Descrizione = Gestione Commesse Moduli = +Patch = PostProcess = PreProcess = Versione = @@ -50,6 +57,7 @@ Versione = Data = Descrizione = Elenchi Intracomunitari Moduli = +Patch = PostProcess = PreProcess = Versione = @@ -58,6 +66,7 @@ Versione = Data = Descrizione = Gestione Penna Ottica Moduli = +Patch = PostProcess = PreProcess = Versione = @@ -66,6 +75,7 @@ Versione = Data = Descrizione = Parcellazione Moduli = +Patch = PostProcess = PreProcess = Versione = @@ -77,6 +87,7 @@ Descrizione = AREA AMMINISTRAZIONE Data = Descrizione = Contabilita' Semplificata Moduli = ba +Patch = PostProcess = PreProcess = Versione = @@ -86,7 +97,8 @@ Data = 21-10-1997 Descrizione = Contabilita' Generale Dischi = 1 Moduli = ba -PostProcess = +Patch = +PostProcess = cgpostin.exe PreProcess = Versione = 9703 @@ -94,7 +106,8 @@ Versione = 9703 Data = 29-10-1997 Descrizione = Saldaconto Dischi = 1 -Moduli = ba +Moduli = ba,cg +Patch = PostProcess = PreProcess = Versione = 9702 @@ -104,6 +117,7 @@ Data = Descrizione = Cespiti Dischi = 1 Moduli = ba +Patch = PostProcess = PreProcess = Versione = @@ -112,6 +126,7 @@ Versione = Data = Descrizione = Estimi Moduli = +Patch = PostProcess = PreProcess = Versione = @@ -120,6 +135,7 @@ Versione = Data = Descrizione = Analisi di bilancio Moduli = ba +Patch = PostProcess = PreProcess = Versione = @@ -128,6 +144,7 @@ Versione = Data = Descrizione = Nota Integrativa Moduli = ba +Patch = PostProcess = PreProcess = Versione = @@ -136,6 +153,7 @@ Versione = Data = Descrizione = Nota Integrativa Ridotta Moduli = ba +Patch = PostProcess = PreProcess = Versione = @@ -146,7 +164,10 @@ Descrizione = AREA ACQUISTI E VENDITE [ve] Data = Descrizione = Vendite -Moduli = ba cg9 +Dischi = 1 +File(147) = mg0300a.msk +Moduli = ba,cg9 +Patch = PostProcess = PreProcess = Versione = 9703 @@ -154,7 +175,8 @@ Versione = 9703 [or] Data = Descrizione = Ordini -Moduli = ba ve0 cg9 +Moduli = ba,ve0,cg9 +Patch = PostProcess = PreProcess = Versione = @@ -162,7 +184,9 @@ Versione = [ef] Data = Descrizione = Effetti -Moduli = ba ve0 ve9 cg9 +Dischi = 1 +Moduli = ba,ve0,ve9,cg9 +Patch = PostProcess = PreProcess = Versione = 9702 @@ -170,7 +194,9 @@ Versione = 9702 [pr] Data = 01-01-1998 Descrizione = Provvigioni Agenti -Moduli = ba ve0 ve9 cg9 +Dischi = 1 +Moduli = ba,ve0,ve9,cg9 +Patch = PostProcess = PreProcess = Versione = 9801 @@ -178,7 +204,9 @@ Versione = 9801 [sv] Data = 01-01-1998 Descrizione = Statistiche di Vendita -Moduli = ba ve +Dischi = 1 +Moduli = ve +Patch = PostProcess = PreProcess = Versione = 9801 @@ -190,7 +218,8 @@ Descrizione = AREA MAGAZZINO E PRODUZIONE Data = 01-01-1998 Descrizione = Magazzino Dischi = 1 -Moduli = ba +Moduli = ba,ve9,cg9 +Patch = PostProcess = PreProcess = Versione = 9801 @@ -199,6 +228,7 @@ Versione = 9801 Data = Descrizione = Distinta Base Moduli = ba +Patch = PostProcess = PreProcess = Versione = @@ -210,6 +240,7 @@ Descrizione = AREA DICHIARAZIONI Data = Descrizione = Anagrafici Dichiarazioni Moduli = ba +Patch = PostProcess = PreProcess = Versione = @@ -218,6 +249,7 @@ Versione = Data = Descrizione = Modello 730 Moduli = ba +Patch = PostProcess = PreProcess = Versione = @@ -226,6 +258,7 @@ Versione = Data = Descrizione = Modello 740 Moduli = ba +Patch = PostProcess = PreProcess = Versione = @@ -234,6 +267,7 @@ Versione = Data = Descrizione = Modello 750 Moduli = ba +Patch = PostProcess = PreProcess = Versione = @@ -242,6 +276,7 @@ Versione = Data = Descrizione = Modello 760 Moduli = ba +Patch = PostProcess = PreProcess = Versione = @@ -251,6 +286,7 @@ Data = 30-10-1997 Descrizione = Modello 770 Dischi = 2 Moduli = ba +Patch = PostProcess = PreProcess = wordpad Versione = 9704 @@ -259,6 +295,7 @@ Versione = 9704 Data = Descrizione = Modello IVA 11 Moduli = ba +Patch = PostProcess = PreProcess = Versione = @@ -267,6 +304,7 @@ Versione = Data = Descrizione = IVA Moduli = ba +Patch = PostProcess = PreProcess = Versione = @@ -275,6 +313,7 @@ Versione = Data = Descrizione = ICI Moduli = ba +Patch = PostProcess = PreProcess = Versione = @@ -283,6 +322,7 @@ Versione = Data = Descrizione = ISI Moduli = ba +Patch = PostProcess = PreProcess = Versione = @@ -294,6 +334,7 @@ Descrizione = AREA AVIS Data = Descrizione = Accettazione AVIS Moduli = ba +Patch = PostProcess = PreProcess = Versione = @@ -302,6 +343,7 @@ Versione = Data = Descrizione = AVIS Assist Moduli = ba +Patch = PostProcess = PreProcess = Versione = @@ -310,6 +352,7 @@ Versione = Data = Descrizione = AVIS Provinciale Moduli = ba +Patch = PostProcess = PreProcess = Versione = @@ -318,6 +361,7 @@ Versione = Data = Descrizione = Medi-Base Moduli = +Patch = PostProcess = PreProcess = Versione = @@ -329,6 +373,7 @@ Descrizione = AREA AUTOFORMAZIONE Data = Descrizione = Autoformazione Moduli = ba +Patch = PostProcess = PreProcess = Versione = @@ -337,6 +382,7 @@ Versione = Data = Descrizione = Tecnico contabile Moduli = AF +Patch = PostProcess = PreProcess = Versione = @@ -345,6 +391,7 @@ Versione = Data = Descrizione = Tecnico appr. merci Moduli = AF +Patch = PostProcess = PreProcess = Versione = @@ -1147,165 +1194,698 @@ File(8) = sc1200a.msk File(9) = sc1300a.msk Versione = 9702 +[cg0] +File(0) = cg00.bmp +File(1) = cgarea.men +Versione = 9703 + +[cg1] +File(10) = batbcfi.rpt +File(100) = cg6700a.msk +File(101) = cg6800a.msk +File(102) = cg6800b.msk +File(103) = cg6800c.msk +File(104) = cg6801a.msk +File(105) = cg6802a.msk +File(106) = cg6802b.msk +File(107) = cg6803a.msk +File(108) = cg6804a.msk +File(109) = cg6804b.msk +File(11) = batbdel.msk +File(110) = cg6804c.msk +File(111) = cg6804d.msk +File(112) = cg6804e.msk +File(113) = cg6804f.msk +File(114) = cg6804g.msk +File(115) = cg6900a.msk +File(116) = cg6900b.msk +File(117) = cg6903a.msk +File(119) = cgaddon.men +File(12) = batbdpn.msk +File(120) = cgprassi.hlp +File(121) = cgprassi.men +File(122) = cgtrc.ini +File(13) = batbdpn.rpt +File(14) = batbind.msk +File(15) = batbinl.msk +File(16) = batbins.msk +File(17) = batbivd.msk +File(18) = batbivd.rpt +File(19) = batblbu.msk +File(20) = batblia.msk +File(21) = batbtra.msk +File(22) = batbver.msk +File(23) = batbver.rpt +File(24) = cg01.bmp +File(25) = cg2.exe +File(27) = cg2100a.msk +File(28) = cg2100b.msk +File(29) = cg2100c.msk +File(3) = bastcfi.msk +File(30) = cg2100i.msk +File(31) = cg2100k.msk +File(32) = cg2100n.msk +File(33) = cg2100o.msk +File(34) = cg2100p.msk +File(35) = cg2100s.msk +File(4) = bastdpn.msk +File(43) = cg2200a.msk +File(44) = cg3.exe +File(45) = cg3100a.msk +File(46) = cg3100b.msk +File(47) = cg3100c.msk +File(5) = bastivd.msk +File(51) = cg3200a.msk +File(53) = cg3300.frm +File(54) = cg3300a.msk +File(55) = cg3300b.msk +File(56) = cg3300c.msk +File(57) = cg3400a.msk +File(58) = cg3400b.msk +File(59) = cg3500a.msk +File(6) = bastver.msk +File(60) = cg3600a.msk +File(61) = cg3600b.msk +File(62) = cg3700a.msk +File(63) = cg4.exe +File(64) = cg4100a.msk +File(65) = cg4100b.msk +File(66) = cg4200a.msk +File(67) = cg4300a.msk +File(68) = cg4300b.msk +File(69) = cg4300c.msk +File(70) = cg4400a.msk +File(71) = cg4400b.msk +File(72) = cg4500a.msk +File(73) = cg4500b.msk +File(74) = cg4600a.msk +File(75) = cg4700a.msk +File(76) = cg4800a.msk +File(77) = cg4800b.msk +File(78) = cg4900a.msk +File(79) = cg4900b.msk +File(80) = cg4900c.msk +File(81) = cg4900d.msk +File(82) = cg5.exe +File(84) = cg5000a.msk +File(85) = cg5100a.msk +File(86) = cg5200a.msk +File(87) = cg5300a.msk +File(88) = cg5400a.msk +File(89) = cg5400b.msk +File(9) = batbcfi.msk +File(90) = cg5500a.msk +File(91) = cg5500b.msk +File(92) = cg5500c.msk +File(93) = cg5500d.msk +File(94) = cg5600a.msk +File(95) = cg6.exe +File(96) = cg6400a.msk +File(97) = cg6400b.msk +File(98) = cg6400c.msk +File(99) = cg6600a.msk +Versione = 9703 + +[cg2] +File(123) = cgtrcpc.ini +File(124) = recdesc\f103.dir +File(125) = recdesc\f103.trr +File(126) = recdesc\f104.dir +File(127) = recdesc\f104.trr +File(128) = recdesc\f15.dir +File(129) = recdesc\f15.trr +File(130) = recdesc\f16.dir +File(131) = recdesc\f16.trr +File(132) = recdesc\f21.dir +File(133) = recdesc\f21.trr +File(134) = recdesc\f22.dir +File(135) = recdesc\f22.trr +File(136) = recdesc\f23.dir +File(137) = recdesc\f23.trr +File(138) = recdesc\f24.dir +File(139) = recdesc\f24.trr +File(140) = recdesc\f25.dir +File(141) = recdesc\f25.trr +File(142) = recdesc\f26.dir +File(143) = recdesc\f26.trr +File(144) = recdesc\f27.dir +File(145) = recdesc\f27.trr +File(146) = recdesc\f28.dir +File(147) = recdesc\f28.trr +File(148) = recdesc\f29.dir +File(149) = recdesc\f29.trr +File(150) = recdesc\f30.dir +File(151) = recdesc\f30.trr +Versione = 9703 + +[cg9] +File(2) = bastcco.msk +File(7) = batbcco.msk +File(8) = batbcco.rpt +File(152) = bastcam.msk +File(153) = bastcve.msk +File(154) = bastesc.msk +File(155) = bastleg.msk +File(156) = bastmag.msk +File(157) = bastmsp.msk +File(158) = bastndo.msk +File(159) = bastnot.msk +File(160) = bastpor.msk +File(161) = bastreg.msk +File(162) = bastscc.msk +File(163) = bastspp.msk +File(164) = basttit.msk +File(165) = basttri.msk +File(166) = bastums.msk +File(167) = bastvet.msk +File(168) = bastzon.msk +File(169) = batbcam.msk +File(170) = batbcam.rpt +File(171) = batbcve.msk +File(172) = batbcve.rpt +File(173) = batbesc.msk +File(174) = batbesc.rpt +File(175) = batbleg.msk +File(176) = batbleg.rpt +File(179) = batbmsp.msk +File(180) = batbmsp.rpt +File(181) = batbndo.msk +File(182) = batbndo.rpt +File(183) = batbnot.msk +File(184) = batbnot.rpt +File(185) = batbpor.msk +File(186) = batbpor.rpt +File(187) = batbreg.msk +File(188) = batbreg.rpt +File(189) = batbscc.msk +File(190) = batbscc.rpt +File(191) = batbspp.msk +File(192) = batbspp.rpt +File(193) = batbtit.msk +File(194) = batbtit.rpt +File(195) = batbtri.msk +File(196) = batbtri.rpt +File(197) = batbums.msk +File(198) = batbums.rpt +File(199) = batbvet.msk +File(200) = batbvet.rpt +File(201) = batbzon.msk +File(202) = batbzon.rpt +File(203) = cg0.exe +File(204) = cg0100a.msk +File(205) = cg0200a.msk +File(206) = cg0200b.msk +File(207) = cg0300a.msk +File(208) = cg0400a.msk +File(209) = cg0400b.msk +File(212) = cg1.exe +File(213) = cg1100a.msk +File(214) = cg1200a.msk +File(215) = cg1200b.msk +File(216) = cg1300a.msk +File(217) = cg1300b.msk +File(218) = cg1300c.msk +File(219) = cg1300d.msk +File(220) = cg1400a.msk +File(221) = cg1500a.msk +File(222) = cg1600a.msk +File(223) = cg1700a.msk +File(224) = recdesc\f17.dir +File(225) = recdesc\f17.trr +File(226) = recdesc\f18.dir +File(227) = recdesc\f18.trr +File(228) = recdesc\f19.dir +File(229) = recdesc\f19.trr +File(230) = recdesc\f20.dir +File(231) = recdesc\f20.trr +Versione = 9703 + +[mg0] +File(0) = mg00.bmp +File(1) = mgarea.men +Versione = 9801 + +[mg1] +File(10) = mg1200.msk +File(11) = mg1400.msk +File(12) = mg3.exe +File(13) = mg3100.msk +File(14) = mg3100a.frm +File(15) = mg3100b.frm +File(16) = mg3200.frm +File(17) = mg3200.msk +File(18) = mg3200a.frm +File(19) = mg3200b.frm +File(2) = bastfcg.msk +File(20) = mg3300.frm +File(21) = mg3300.msk +File(22) = mg3300a.frm +File(23) = mg3300b.frm +File(24) = mg3400.msk +File(25) = mg3400a.frm +File(26) = mg3400b.frm +File(27) = mg3500.frm +File(28) = mg3500.msk +File(29) = mg4.exe +File(3) = batbfcg.msk +File(30) = mg4100.frm +File(31) = mg4100.msk +File(32) = mg4200.msk +File(33) = mg4200a.frm +File(34) = mg4200b.frm +File(35) = mg4300.frm +File(36) = mg4300.msk +File(37) = mgprassi.men +File(38) = tab_fcg.frm +File(4) = batbgcg.msk +File(5) = batbubi.msk +File(6) = mg01.bmp +File(7) = mg1.exe +File(8) = mg1100.msk +File(9) = mg1100a.msk +Versione = 9801 + +[mg2] +File(39) = recdesc\f109.dir +File(40) = recdesc\f109.trr +File(41) = recdesc\f110.dir +File(42) = recdesc\f110.trr +File(43) = recdesc\f111.dir +File(44) = recdesc\f111.trr +File(45) = recdesc\f114.dir +File(46) = recdesc\f114.trr +Versione = 9801 + +[pr1] +File(0) = pr0700a.msk +File(1) = pr0700b.msk +File(2) = pr1300a.frm +File(3) = pr1300a.msk +File(4) = pr1400.msk +File(5) = pr1400a.frm +File(6) = prprassi.men +Versione = 9801 + +[pr2] +File(10) = recdesc\f123.trr +File(11) = recdesc\f124.dir +File(12) = recdesc\f124.trr +File(7) = recdesc\f122.dir +File(8) = recdesc\f122.trr +File(9) = recdesc\f123.dir +Versione = 9801 + +[ef1] +File(1) = ef0100a.msk +File(10) = efprassi.hlp +File(11) = efprassi.men +File(2) = ef0200a.msk +File(21) = ef01.bmp +File(3) = ef0300a.msk +File(4) = ef0300c.msk +File(5) = ef0400a.msk +File(6) = ef0500a.msk +File(7) = ef0600a.msk +File(8) = ef0800a.msk +File(9) = ef0900a.msk +Versione = 9702 + +[ef2] +File(12) = recdesc\f14.dir +File(13) = recdesc\f14.trr +File(14) = recdesc\f31.dir +File(15) = recdesc\f31.trr +File(16) = recdesc\f32.dir +File(17) = recdesc\f32.trr +Versione = 9702 + +[ba0] +File(0) = ba00.bmp +File(1) = ba01.bmp +File(2) = ba02.bmp +File(3) = ba03.bmp +File(4) = ba04.bmp +File(5) = ba05.bmp +File(6) = ba06.bmp +File(7) = baprassi.men +Versione = 9801 + +[ba1] +File(10) = ba0200a.msk +File(100) = batbban.rpt +File(101) = batbclr.msk +File(102) = batbclr.rpt +File(103) = batbcpg.msk +File(104) = batbcpg.rpt +File(105) = batbcrs.msk +File(106) = batbcrs.rpt +File(107) = batbitl.msk +File(108) = batbitl.rpt +File(109) = batbiva.msk +File(11) = ba0300a.msk +File(110) = batbiva.rpt +File(111) = batblng.msk +File(112) = batblng.rpt +File(113) = batbois.msk +File(114) = batbois.rpt +File(115) = batbrgi.msk +File(116) = batbsta.msk +File(117) = batbsta.rpt +File(118) = batbstt.msk +File(119) = batbstt.rpt +File(120) = batbucc.msk +File(121) = batbucc.rpt +File(122) = batbucs.msk +File(123) = batbucs.rpt +File(124) = batbues.msk +File(125) = batbues.rpt +File(126) = batbuid.msk +File(127) = batbuid.rpt +File(128) = batbuiv.msk +File(129) = batbuiv.rpt +File(13) = ba1100a.msk +File(130) = batbure.msk +File(131) = batbure.rpt +File(132) = batbuue.msk +File(133) = batbuue.rpt +File(134) = batbval.msk +File(135) = batbval.rpt +File(136) = dir.gen +File(137) = prassi.aut +File(138) = prassis.ini +File(139) = trc.gen +File(14) = ba1100b.msk +File(15) = ba1100c.msk +File(16) = ba1100d.msk +File(17) = ba1100e.msk +File(170) = prassice.men +File(18) = ba1100f.msk +File(19) = ba1100g.msk +File(20) = ba1300a.msk +File(21) = ba1300b.msk +File(22) = ba1400a.msk +File(23) = ba1500a.frm +File(24) = ba1500a.msk +File(25) = ba1600a.msk +File(26) = ba1600b.msk +File(28) = ba2.exe +File(29) = ba2100a.msk +File(30) = ba2100b.msk +File(31) = ba2100c.msk +File(32) = ba2100f.msk +File(33) = ba2100r.msk +File(34) = ba2100s.msk +File(35) = ba2100u.msk +File(36) = ba21dt.msk +File(37) = ba21fn.msk +File(38) = ba21nm.msk +File(39) = ba2200.msk +File(40) = ba2300a.msk +File(41) = ba2300b.msk +File(42) = ba2300c.msk +File(43) = ba2300d.msk +File(44) = ba2500a.msk +File(45) = ba3.exe +File(46) = ba3200a.msk +File(47) = ba3300a.msk +File(48) = ba3500a.msk +File(49) = ba3600a.msk +File(50) = ba3601a.msk +File(51) = ba3700a.msk +File(52) = ba3800a.msk +File(53) = ba3800b.msk +File(54) = ba3a00a.msk +File(55) = ba4.exe +File(56) = ba4100a.msk +File(57) = ba4200b.msk +File(58) = ba4200c.msk +File(59) = ba4300a.msk +File(60) = ba4400a.msk +File(61) = ba4500a.msk +File(62) = ba4600a.msk +File(63) = ba5.exe +File(64) = ba5000.msk +File(65) = ba6.exe +File(66) = ba6100a.msk +File(67) = ba6100b.msk +File(68) = ba6200a.msk +File(69) = bacnv.exe +File(70) = bafax.exe +File(71) = bafax01.msk +File(72) = bafax02.msk +File(73) = bagn001a.msk +File(74) = bagn002.msk +File(75) = bagn004.msk +File(76) = bagn005.msk +File(77) = bagn006.msk +File(78) = bastais.msk +File(79) = bastban.msk +File(8) = ba0.exe +File(80) = bastclr.msk +File(81) = bastcpg.msk +File(82) = bastcrs.msk +File(83) = bastitl.msk +File(84) = bastiva.msk +File(85) = bastlng.msk +File(86) = bastois.msk +File(87) = baststa.msk +File(88) = baststt.msk +File(89) = bastucc.msk +File(9) = ba0100a.msk +File(90) = bastucs.msk +File(91) = bastues.msk +File(92) = bastuid.msk +File(93) = bastuiv.msk +File(94) = basture.msk +File(95) = bastuue.msk +File(96) = bastval.msk +File(97) = batbais.msk +File(98) = batbais.rpt +File(99) = batbban.msk +Versione = 9801 + +[ba2] +File(140) = recdesc\f10.dir +File(141) = recdesc\f10.trr +File(142) = recdesc\f105.dir +File(143) = recdesc\f105.trr +File(144) = recdesc\f11.dir +File(145) = recdesc\f11.trr +File(146) = recdesc\f12.dir +File(147) = recdesc\f12.trr +File(148) = recdesc\f13.dir +File(149) = recdesc\f13.trr +File(150) = recdesc\f2.dir +File(151) = recdesc\f2.trr +File(152) = recdesc\f3.dir +File(153) = recdesc\f3.trr +File(154) = recdesc\f4.dir +File(155) = recdesc\f4.trr +File(156) = recdesc\f5.dir +File(157) = recdesc\f5.trr +File(158) = recdesc\f50.dir +File(159) = recdesc\f50.trr +File(160) = recdesc\f54.dir +File(161) = recdesc\f54.trr +File(162) = recdesc\f6.dir +File(163) = recdesc\f6.trr +File(164) = recdesc\f7.dir +File(165) = recdesc\f7.trr +File(166) = recdesc\f8.dir +File(167) = recdesc\f8.trr +File(168) = recdesc\f9.dir +File(169) = recdesc\f9.trr +Versione = 9801 + [ve0] -File(0) = vearea.men -File(145) = ve00.bmp +File(0) = ve00.bmp +File(1) = vearea.men Versione = 9703 [ve1] -File(1) = bastabe.msk -File(10) = batbabe.msk -File(11) = batbabe.rpt -File(12) = batbctr.msk -File(13) = batbctr.rpt -File(14) = batbeld.msk -File(146) = ve01.bmp -File(15) = batbeld.rpt -File(16) = batbfrd.msk -File(17) = batbfrd.rpt -File(18) = batbfrr.msk -File(19) = batbfrr.rpt -File(2) = bastctr.msk -File(20) = batbnum.msk -File(21) = batbnum.rpt -File(22) = batbprs.msk -File(23) = batbprs.rpt -File(24) = batbstd.msk -File(25) = batbstd.rpt -File(26) = batbtip.msk -File(27) = batbtip.rpt -File(28) = ve0.exe -File(29) = ve0100a.msk -File(3) = basteld.msk -File(30) = ve0100o.msk -File(31) = ve0200a.msk -File(32) = ve0200b.msk -File(33) = ve0200c.msk -File(34) = ve0200d.msk -File(35) = ve0200e.msk -File(36) = ve0200f.msk -File(37) = ve0300a.ini -File(38) = ve0300b.dat -File(39) = ve0300c.ini -File(4) = bastfrd.msk -File(40) = ve1.exe -File(41) = ve1000b.msk -File(42) = ve1100a.msk -File(43) = ve3.exe -File(44) = ve3100.msk -File(45) = ve3100d.msk -File(46) = ve3100i.msk -File(47) = ve3100r.msk -File(48) = ve3200.msk -File(49) = ve3200x.msk -File(5) = bastfrr.msk -File(50) = ve3300.msk -File(51) = ve3400.msk -File(52) = ve4.exe -File(53) = ve4100.msk -File(54) = ve5.exe -File(55) = ve5100a.msk -File(56) = ve6.exe -File(57) = ve6100a.msk -File(58) = ve6200a.msk -File(59) = ve6300a.msk -File(6) = bastnum.msk -File(60) = veprassi.hlp -File(61) = veprassi.men -File(7) = bastprs.msk -File(8) = baststd.msk -File(9) = basttip.msk +File(10) = batbfrd.msk +File(11) = batbfrd.rpt +File(12) = batbfrr.msk +File(13) = batbfrr.rpt +File(14) = batbnum.msk +File(15) = batbnum.rpt +File(16) = batbstd.msk +File(17) = batbstd.rpt +File(18) = batbtip.msk +File(19) = batbtip.rpt +File(2) = basteld.msk +File(21) = ve01.bmp +File(3) = bastfrd.msk +File(33) = ve1.exe +File(34) = ve1000b.msk +File(35) = ve1100a.msk +File(36) = ve3200.msk +File(37) = ve3200x.msk +File(38) = ve3300.msk +File(39) = ve3400.msk +File(4) = bastfrr.msk +File(40) = ve5.exe +File(41) = ve5100a.msk +File(42) = ve6.exe +File(43) = ve6100a.msk +File(44) = ve6200a.msk +File(45) = ve6300a.msk +File(46) = veprassi.hlp +File(47) = veprassi.men +File(5) = bastnum.msk +File(6) = baststd.msk +File(7) = basttip.msk +File(8) = batbeld.msk +File(9) = batbeld.rpt Versione = 9703 [ve2] -File(62) = recdesc\f33.dir -File(63) = recdesc\f33.trr -File(64) = recdesc\f34.dir -File(65) = recdesc\f34.trr -File(66) = recdesc\f35.dir -File(67) = recdesc\f35.trr +File(48) = recdesc\f33.dir +File(49) = recdesc\f33.trr +File(50) = recdesc\f34.dir +File(51) = recdesc\f34.trr +File(52) = recdesc\f35.dir +File(53) = recdesc\f35.trr Versione = 9703 [ve3] -File(68) = veacc.frm -File(69) = vebol.frm -File(70) = vebolbmp.frm -File(71) = vefat.frm -File(72) = verig00.msk -File(73) = verig01.ini -File(74) = verig01.msk -File(75) = verig02.ini -File(76) = verig02.msk -File(77) = verig03.ini -File(78) = verig03.msk -File(79) = verig04.ini -File(80) = verig04.msk -File(81) = verig05.ini -File(82) = verig05.msk -File(83) = verig06.ini -File(84) = verig06.msk -File(85) = verig07.ini -File(86) = verig07.msk -File(87) = verig08.ini -File(88) = verig08.msk -File(89) = verig09.ini -File(90) = verig09.msk +File(175) = BOLLA.BMP +File(176) = FATTURA.BMP +File(54) = bollac.ini +File(55) = bollac.msk +File(56) = bollaf.ini +File(57) = bollaf.msk +File(58) = fatturaa.ini +File(59) = fatturaa.msk +File(60) = fatturac.ini +File(61) = fatturac.msk +File(62) = ordinec.ini +File(63) = ordinec.msk +File(64) = ordinef.ini +File(65) = ordinef.msk +File(66) = veacc.frm +File(67) = vebol.frm +File(68) = vebolbmp.frm +File(69) = vefat.frm +File(70) = vefatbmp.frm +File(71) = verig00.msk +File(72) = verig01.ini +File(73) = verig01.msk +File(74) = verig02.ini +File(75) = verig02.msk +File(76) = verig03.ini +File(77) = verig03.msk +File(78) = verig04.ini +File(79) = verig04.msk +File(80) = verig05.ini +File(81) = verig05.msk +File(82) = verig06.ini +File(83) = verig06.msk +File(84) = verig07.ini +File(85) = verig07.msk +File(86) = verig08.ini +File(87) = verig08.msk +File(88) = verig09.ini +File(89) = verig09.msk Versione = 9703 [ve9] -File(100) = batbasf.rpt -File(101) = batbcaa.msk -File(102) = batbcaa.rpt -File(103) = batbcau.msk -File(104) = batbcau.rpt -File(105) = batbcld.msk -File(106) = batbcra.msk -File(107) = batbcra.rpt -File(108) = batbfca.msk -File(109) = batbfrm.msk -File(110) = batbfrm.rpt -File(111) = batbgca.msk -File(112) = batbgmc.msk -File(113) = batbgmc.rpt -File(114) = batbprv.msk -File(115) = batbrfa.msk -File(116) = batbrfa.rpt -File(117) = mg0.exe -File(118) = recdesc\f47.dir -File(119) = recdesc\f47.trr -File(120) = recdesc\f48.dir -File(121) = recdesc\f48.trr -File(122) = recdesc\f49.dir -File(123) = recdesc\f49.trr -File(124) = recdesc\f51.dir -File(125) = recdesc\f51.trr -File(126) = recdesc\f52.dir -File(127) = recdesc\f52.trr -File(128) = recdesc\f53.dir -File(129) = recdesc\f53.trr -File(130) = tab_fca.frm -File(131) = ve2.exe -File(132) = ve2100.msk -File(133) = ve2100d.msk -File(134) = ve2100i.msk -File(135) = ve2100r.msk -File(136) = ve2200.msk -File(137) = ve2200x.msk -File(138) = ve2300.msk -File(139) = ve2300x.msk -File(140) = ve2300x.msk -File(141) = ve2400.msk -File(142) = ve2400a.msk -File(143) = ve2400b.msk -File(144) = ve2400c.msk +File(20) = ve0.exe +File(22) = ve0100a.msk +File(23) = ve0100o.msk +File(24) = ve0200a.msk +File(25) = ve0200b.msk +File(26) = ve0200c.msk +File(27) = ve0200d.msk +File(28) = ve0200e.msk +File(29) = ve0200f.msk +File(30) = ve0300a.ini +File(31) = ve0300b.dat +File(32) = ve0300c.ini +File(100) = bastprs.msk +File(101) = bastrfa.msk +File(102) = bastrfc.msk +File(103) = batbabe.msk +File(104) = batbabe.rpt +File(105) = batbasf.msk +File(106) = batbasf.rpt +File(107) = batbbnp.msk +File(108) = batbbnp.rpt +File(109) = batbcaa.msk +File(110) = batbcaa.rpt +File(111) = batbcau.msk +File(112) = batbcau.rpt +File(113) = batbcld.msk +File(114) = batbcra.msk +File(115) = batbcra.rpt +File(116) = batbctr.msk +File(117) = batbctr.rpt +File(118) = batbfca.msk +File(119) = batbfrm.msk +File(120) = batbfrm.rpt +File(121) = batbgca.msk +File(122) = batbgmc.msk +File(123) = batbgmc.rpt +File(124) = batbmag.msk +File(125) = batbmag.rpt +File(126) = batbprs.msk +File(127) = batbprs.rpt +File(128) = batbprv.msk +File(129) = batbrfa.msk +File(130) = batbrfa.rpt +File(131) = batbrfc.msk +File(132) = batbrfc.rpt +File(133) = ef0.exe +File(134) = mg0.exe +File(135) = pr0.exe +File(136) = pr0500a.msk +File(137) = pr0600a.msk +File(138) = pr1.exe +File(139) = pr1100.msk +File(140) = pr1100a.frm +File(141) = prtbapr.msk +File(142) = recdesc\f47.dir +File(143) = recdesc\f47.trr +File(144) = recdesc\f48.dir +File(145) = recdesc\f48.trr +File(146) = recdesc\f49.dir +File(147) = recdesc\f49.trr +File(148) = recdesc\f51.dir +File(149) = recdesc\f51.trr +File(150) = recdesc\f52.dir +File(151) = recdesc\f52.trr +File(152) = recdesc\f53.dir +File(153) = recdesc\f53.trr +File(154) = tab_fca.frm +File(155) = ve2.exe +File(156) = ve2100.msk +File(157) = ve2100d.msk +File(158) = ve2100i.msk +File(159) = ve2100r.msk +File(160) = ve2200.msk +File(161) = ve2200x.msk +File(162) = ve2300.msk +File(163) = ve2300x.msk +File(164) = ve2400.msk +File(165) = ve2400a.msk +File(166) = ve2400b.msk +File(167) = ve2400c.msk +File(168) = ve3.exe +File(169) = ve3100.msk +File(170) = ve3100d.msk +File(171) = ve3100i.msk +File(172) = ve3100r.msk +File(173) = ve4.exe +File(174) = ve4100.msk +File(90) = bastabe.msk File(91) = bastasf.msk -File(92) = bastcaa.msk -File(93) = bastcau.msk -File(94) = bastcra.msk -File(95) = bastfca.msk -File(96) = bastfrm.msk -File(97) = bastgmc.msk -File(98) = bastrfa.msk -File(99) = batbasf.msk +File(92) = bastbnp.msk +File(93) = bastcaa.msk +File(94) = bastcau.msk +File(95) = bastcra.msk +File(96) = bastctr.msk +File(97) = bastfca.msk +File(98) = bastfrm.msk +File(99) = bastgmc.msk Versione = 9703 diff --git a/cg/cg0200.cpp b/cg/cg0200.cpp index a4d738b5a..0ffb5c813 100755 --- a/cg/cg0200.cpp +++ b/cg/cg0200.cpp @@ -67,6 +67,9 @@ protected: static bool rsoc_handler(TMask_field& f, KEY k); public: + // @cmember Disabilita la verifica del modulo : essendo una anagrafica, va sempre abilitata + virtual bool check_autorization() const + {return FALSE;} virtual TRelation* get_relation() const {return (TRelation*)_rel;} TClifo_application(){} }; diff --git a/cg/cg0600.cpp b/cg/cg0600.cpp index 753b7455e..955ce4c9a 100755 --- a/cg/cg0600.cpp +++ b/cg/cg0600.cpp @@ -26,6 +26,9 @@ protected: virtual bool user_destroy(); public: + // @cmember Disabilita la verifica del modulo : essendo una anagrafica, va sempre abilitata + virtual bool check_autorization() const + {return FALSE;} static CGTab_application& app() { return (CGTab_application&)main_app(); } diff --git a/cg/cg1200.cpp b/cg/cg1200.cpp index dbde7c404..8e2e81bb3 100755 --- a/cg/cg1200.cpp +++ b/cg/cg1200.cpp @@ -50,8 +50,10 @@ class TPrintclifo_app : public TPrintapp long _codice; char _tipocf,_tipoaper; bool _gia_iniziati_fornitori; - public: + // @cmember Disabilita la verifica del modulo : essendo una anagrafica, va sempre abilitata + virtual bool check_autorization() const + {return FALSE;} virtual bool preprocess_page(int file, int counter); virtual bool preprocess_print(int file, int counter); diff --git a/ef/ef0700.cpp b/ef/ef0700.cpp index 1ba789004..4091de169 100755 --- a/ef/ef0700.cpp +++ b/ef/ef0700.cpp @@ -16,6 +16,9 @@ protected: virtual void init_query_mode (TMask&); virtual int rewrite(const TMask& m); public: + // @cmember Disabilita la verifica del modulo : essendo una anagrafica, va sempre abilitata + virtual bool check_autorization() const + {return FALSE;} TBnp_table_app() {} virtual ~TBnp_table_app() {} }; diff --git a/include/prefix.h b/include/prefix.h index 6428ab7bb..187573225 100755 --- a/include/prefix.h +++ b/include/prefix.h @@ -78,7 +78,7 @@ public: const char* description(int cod) const; // @cmember Controlla che la ditta attiva sia una ditta (e non es. dati comuni) bool is_firm() const - { return _prefix.len() == 6 && _prefix[5] == 'a';} + { return _prefix.len() == 6 && (toupper(_prefix[5]) == 'A');} // @cmember Controlla che siano attivi i dati comuni (e non una ditta) bool is_com() const { return !is_firm();} diff --git a/mg/mg0100.cpp b/mg/mg0100.cpp index 692a65948..2536e3276 100755 --- a/mg/mg0100.cpp +++ b/mg/mg0100.cpp @@ -26,6 +26,9 @@ class TMask_tabmag : public TMask public: + // @cmember Disabilita la verifica del modulo in chiave + virtual bool check_autorization() const + {return FALSE;} TMask_tabmag(const char * ,const TString16 &); virtual ~TMask_tabmag(); }; diff --git a/mg/mg0200.cpp b/mg/mg0200.cpp index 8102fd660..3bab99e96 100755 --- a/mg/mg0200.cpp +++ b/mg/mg0200.cpp @@ -23,6 +23,9 @@ protected: static bool hnd_livinizio(TMask_field &, KEY); // handler static bool hnd_livfine(TMask_field &, KEY); // handler public: + // @cmember Disabilita la verifica del modulo in chiave + virtual bool check_autorization() const + {return FALSE;} const TCodice_livelli & liv_cod() {return *_cod_liv;} diff --git a/mg/mg0300.cpp b/mg/mg0300.cpp index d08e0e3da..7fdcee49e 100755 --- a/mg/mg0300.cpp +++ b/mg/mg0300.cpp @@ -26,6 +26,9 @@ class TConf_magazz : public TConfig_application static bool check_fields(TMask_field& f, KEY k); public: + // @cmember Disabilita la verifica del modulo in chiave + virtual bool check_autorization() const + {return FALSE;} virtual bool preprocess_config (TMask& mask, TConfig& config); virtual bool postprocess_config (TMask& mask, TConfig& config); diff --git a/pr/f124.dir b/pr/f124.dir index dc201d07c..849a3e814 100755 --- a/pr/f124.dir +++ b/pr/f124.dir @@ -1,3 +1,3 @@ 124 0 -$provv|0|0|250|36|Archivio provvigioni||| +$provv|0|0|246|0|Archivio provvigioni||| diff --git a/pr/f124.trr b/pr/f124.trr index 853f91a9c..2fb917b68 100755 --- a/pr/f124.trr +++ b/pr/f124.trr @@ -1,11 +1,10 @@ 124 -26 +25 CODAGE|1|5|0|Codice agente ANNO|2|4|0|Anno del documento CODNUM|1|4|0|Codice numerazione del documento NDOC|3|7|0|Numero documento NRIGA|2|4|0|Numero riga di riferimento per documento -NROW|2|4|0|Numero riga di riferito per agente NRATA|2|4|0|Numero rata GENERATA|1|1|0|Flag di generazione (< >Immessa, generata dal ocumento) DATADOC|5|8|0|Data del documento @@ -26,7 +25,6 @@ PROVVPAG|4|18|2|Provvigione pagata PAGMAT|4|18|2|Pagamento maturato PROVVMAT|4|18|2|Provvigione maturata TIPOPAGPR|2|1|0|Tipo pagamento della provvigione (?) -3 -CODAGE+NROW| -CODAGE+ANNO+CODNUM+NDOC+NRIGA| +2 +CODAGE+ANNO+CODNUM+NDOC+NRIGA| CODAGE+DATADOC|X diff --git a/pr/pr0500.cpp b/pr/pr0500.cpp index 2c4fb0218..bee8a4f25 100755 --- a/pr/pr0500.cpp +++ b/pr/pr0500.cpp @@ -23,6 +23,9 @@ protected: static bool seqalt_handler(TMask_field& f, KEY k); static bool codalt_handler(TMask_field& f, KEY k); public: + // @cmember Disabilita la verifica del modulo in chiave + virtual bool check_autorization() const + {return FALSE;} TGestione_agenti_app() {}; ~TGestione_agenti_app() {}; }; diff --git a/pr/pr0700.cpp b/pr/pr0700.cpp index 85ac64afd..f6915ff30 100755 --- a/pr/pr0700.cpp +++ b/pr/pr0700.cpp @@ -263,7 +263,8 @@ bool TGestione_provv_app::rate_sheet_notify(TSheet_field& ds, int r, KEY key) } break; case K_DEL: // Notifica della cancellazione di una riga - rd.remove_rata(r); // Effettua anche il pack degli elementi + rd.remove_rata(r); + rd.pack_rate(); // Effettua anche il pack degli elementi (corrispondenza 1 a 1 tra sheet ed array) app()._dirty = TRUE; break; default: @@ -465,7 +466,11 @@ void TGestione_provv_app::load_provvigioni(TMask* m) _msk->set(F_MANNO,""); _msk->set(F_MCODNUM,""); _msk->set(F_MNDOC,""); - _prag->read(agente); + if (_prag->read(agente) == _islocked) + { + message_box("Dati agente %s in uso da un altro utente.", (const char*) agente); + return; + } KEY k; bool repeat; @@ -473,6 +478,7 @@ void TGestione_provv_app::load_provvigioni(TMask* m) fill_sheet_doc(); // Inizializza lo sheet dei documenti _dirty = FALSE; + int err = NOERR; do { k = _msk->run(); @@ -488,10 +494,13 @@ void TGestione_provv_app::load_provvigioni(TMask* m) } if (to_write) if (check_totals()) // Controlla i totali delle provvigioni per tutti i documenti - _prag->write(); + err = _prag->write(); else repeat = TRUE; } while (repeat); + if (err != NOERR) + message_box("Errore %d tentando di scrivere i dati provvigionali dell'agente.",err, (const char*) agente); + _prag->unlock(); } bool TGestione_provv_app::menu(MENU_TAG) diff --git a/pr/pr1100.cpp b/pr/pr1100.cpp index 5bcf9b643..e2abab75a 100755 --- a/pr/pr1100.cpp +++ b/pr/pr1100.cpp @@ -23,6 +23,10 @@ class TStampa_agenti : public TApplication protected: virtual bool create(); virtual bool destroy(); +public: + // @cmember Disabilita la verifica del modulo : essendo una anagrafica, va sempre abilitata + virtual bool check_autorization() const + {return FALSE;} }; bool TStampa_agenti::create() @@ -34,7 +38,7 @@ bool TStampa_agenti::create() TRectype darec(LF_AGENTI),arec(LF_AGENTI); _mask = new TMask("pr1100"); while (_mask->run() == K_ENTER) { - _form = new TForm("pr1100a", ""); + _form = new TForm("pr1100a", ""); TSorted_cursor& cur = (TSorted_cursor& )*_form->cursor(); TString sortexp; diff --git a/pr/prlib.h b/pr/prlib.h index 0fdb22ebd..a7764a576 100755 --- a/pr/prlib.h +++ b/pr/prlib.h @@ -47,7 +47,7 @@ public: const TRata& operator = (const TRata & r) { set(r);return *this;} TRata(const TRectype& rec); TRata(const TRata & r) { set(r);} - TRata() { _generata = ' ';} + TRata() { _generata = ' '; _saldata = FALSE; } virtual ~TRata() {} }; @@ -75,10 +75,13 @@ public: const real cambio() const { return _cambio;} const real impnet() const { return _impnetdoc;} const int items() { return _rows.items();} + const bool exist(const int i); TRata& row(int i, bool create = FALSE); TRata& operator[](int i){ return row(i,FALSE); } void add_rata(TRata* r) {_rows.add(r);} - void remove_rata(int i = -1) {_rows.destroy(i,TRUE);} + void remove_rata(int i = -1) {_rows.destroy(i);} + // Pakka le rate + void pack_rate() {_rows.pack();} // Ordina le rate void sort_rate() {_rows.sort();} // Controlla che la somma delle provvigioni delle singole rate sia <= della provvigione del documento @@ -116,6 +119,7 @@ public: int write() { return rate2rows(0); } int rewrite() { return rate2rows(1); } int remove() { return rate2rows(2); } + void unlock(); // Restituisce un elenco di documenti che hanno rate per le provvigioni di questo agente int documenti(TString_array& kl) { return _rate.get_keys(kl); } // Per accedere tramite singole rate... diff --git a/pr/prlib01.cpp b/pr/prlib01.cpp index 428ee0ecf..9809dc459 100755 --- a/pr/prlib01.cpp +++ b/pr/prlib01.cpp @@ -9,32 +9,45 @@ TProvvigioni_agente::TProvvigioni_agente() : TRectype(LF_AGENTI) { // _rows = new TRecord_array(LF_PROVV,PROV_NRIGA); _provv_rel = new TRelation(LF_PROVV); - _provv_cur = new TCursor(_provv_rel, "", 2); + _provv_cur = new TCursor(_provv_rel); } TProvvigioni_agente::TProvvigioni_agente(const char* agente) : TRectype(LF_AGENTI) { //_rows = new TRecord_array(LF_PROVV,PROV_NRIGA); _provv_rel = new TRelation(LF_PROVV); - _provv_cur = new TCursor(_provv_rel, "", 2); + _provv_cur = new TCursor(_provv_rel); read(agente); } TProvvigioni_agente::~TProvvigioni_agente() { // delete _rows; + unlock(); delete _provv_rel; delete _provv_cur; } +void TProvvigioni_agente::unlock() +{ + if (_agente.not_empty()) + { + TLocalisamfile age(LF_AGENTI); + TRectype::put(AGE_CODAGE,_agente); + TRectype::read(age, _isequal, _unlock); // Sblocca eventuali caricamenti precedenti + } +} + int TProvvigioni_agente::read(const char* agente, const int anno, const char* codnum, const long ndoc) { int err = NOERR; - + + unlock(); destroy(); // Cancella eventuali residui + TLocalisamfile age(LF_AGENTI); TRectype::put(AGE_CODAGE,agente); - err = TRectype::read(age); // Carica i dati dell'agente + err = TRectype::read(age, _isequal, _testandlock); // Carica i dati dell'agente if (err != NOERR) return err; @@ -54,6 +67,7 @@ int TProvvigioni_agente::read(const char* agente, const int anno, const char* co TRectype rec_to(rec_from); _provv_cur->setregion(rec_from, rec_to); // Cursore da leggere contenente le provvigioni + // Sara' bello, un giorno, poter bloccare tutti i record del cursore contemporaneamente... const long items = _provv_cur->items(); TRectype& r = _provv_cur->file().curr(); @@ -95,15 +109,11 @@ int TProvvigioni_agente::rate2rows(int action) { // Scorre gli elementi di _rate (TDoc_rate) uno ad uno // per settare le righe provvigionali - // Scrive tramite chiave 1: utilizzando un solo record array (CODAGE+NROW) + // Scrive tramite chiave 1: utilizzando un solo record array (CODAGE+ANNO+CODNUM+NDOC+NRIGA) int err = NOERR; if (_agente.not_empty()) { - TRecord_array * rows = new TRecord_array(LF_PROVV,PROV_NROW); - TRectype* k = new TRectype(LF_PROVV); - k->put(PROV_CODAGE, _agente); - rows->set_key(k); TString_array kl; int nrow = 1; // Numero riga per agente e per documento const int items = documenti(kl); // Prende l'elenco dei documenti @@ -123,6 +133,13 @@ int TProvvigioni_agente::rate2rows(int action) TDate datacam(rd.datacam()); real cambio = rd.cambio(); // Chiave del TRecord_array + TRecord_array * rows = new TRecord_array(LF_PROVV,PROV_NRIGA); + TRectype* k = new TRectype(LF_PROVV); + k->put(PROV_CODAGE, _agente); + k->put(PROV_ANNO, anno); + k->put(PROV_CODNUM, codnum); + k->put(PROV_NDOC, ndoc); + rows->set_key(k); const int ritems = rd.items(); // Ciclo per rate di questo documento for (int j = 0; j < ritems; j++) { @@ -132,7 +149,7 @@ int TProvvigioni_agente::rate2rows(int action) record->put(PROV_ANNO,anno); record->put(PROV_CODNUM,codnum); record->put(PROV_NDOC,ndoc); - record->put(PROV_NROW,nrow++); + //record->put(PROV_NROW,nrow++); record->put(PROV_NRIGA,j+1); record->put(PROV_NRATA,rt.rata()); record->put(PROV_GENERATA,rt.generata()); @@ -155,7 +172,7 @@ int TProvvigioni_agente::rate2rows(int action) record->put(PROV_PAGMAT,rt.pagmat()); record->put(PROV_PROVVMAT,rt.provvmat()); rows->add_row(record); - } + } // Ciclo per rata switch (action) { case 0: // write @@ -170,8 +187,10 @@ int TProvvigioni_agente::rate2rows(int action) default: // remove break; } - } - delete rows; + unlock(); + + delete rows; + } // Ciclo per documento } return err; } @@ -230,9 +249,14 @@ TRate_doc::TRate_doc(const TRectype& rec) set(rec); // bleah! } +const bool TRate_doc::exist(const int i) +{ + return _rows.objptr(i) != NULL; +} + TRata& TRate_doc::row(int i, bool create) { - if (create && _rows.objptr(i) == NULL) // Parametro di creazione + if (create && !exist(i) ) // Parametro di creazione _rows.add(new TRata(),i); return (TRata&) _rows[i]; } diff --git a/ve/ve0300.cpp b/ve/ve0300.cpp index 9ab1e70d7..53fb57bcd 100755 --- a/ve/ve0300.cpp +++ b/ve/ve0300.cpp @@ -1594,6 +1594,9 @@ protected: virtual bool create ( ); virtual bool destroy( ); public: + // @cmember Disabilita la verifica del modulo : essendo una anagrafica, va sempre abilitata + virtual bool check_autorization() const + {return FALSE;} void set_files(const bool b = TRUE) {_use_files = b;} void set_tablefile(const TString& t) {_tablefile = t;} }; diff --git a/ve/ve2100.cpp b/ve/ve2100.cpp index ba4539009..3c0b76ddf 100755 --- a/ve/ve2100.cpp +++ b/ve/ve2100.cpp @@ -72,6 +72,8 @@ class TTabelle_sconti: public TRelation_application { // static bool handle_cpg(TMask_field &, KEY); // handler delle condizioni di pagamento public: + // @cmember Disabilita la verifica del modulo : essendo una anagrafica, va sempre abilitata + virtual bool check_autorization() const {return FALSE;} TTabelle_sconti() {_sca = _scoum = _catven = FALSE;} virtual ~TTabelle_sconti() {} }; diff --git a/ve/ve2200.cpp b/ve/ve2200.cpp index dc9ae3c44..613b09943 100755 --- a/ve/ve2200.cpp +++ b/ve/ve2200.cpp @@ -52,6 +52,8 @@ class TCondizioni_vendita: public TRelation_application { virtual bool remove(); // metodo usato per cancellare il record sul file public: + // @cmember Disabilita la verifica del modulo : essendo una anagrafica, va sempre abilitata + virtual bool check_autorization() const {return FALSE;} TCondizioni_vendita() {} virtual ~TCondizioni_vendita() {} }; diff --git a/ve/ve2400.cpp b/ve/ve2400.cpp index 3ac16148a..d3f6ee77c 100755 --- a/ve/ve2400.cpp +++ b/ve/ve2400.cpp @@ -1034,7 +1034,8 @@ class TAnagrafica_magazzino : public TRelation_application { TMask_anamag *_msk; // maschera principale TRelation *_rel; // relazione principale di un solo file (anagrafiche di magazzino) - + +protected: virtual bool user_create(); virtual bool user_destroy(); virtual TMask *get_mask(int) { return _msk; } @@ -1048,6 +1049,8 @@ class TAnagrafica_magazzino : public TRelation_application { virtual int rewrite(const TMask& m); public: + // @cmember Disabilita la verifica del modulo : essendo una anagrafica, va sempre abilitata + virtual bool check_autorization() const {return FALSE;} TAnagrafica_magazzino() {} virtual ~TAnagrafica_magazzino() {} }; diff --git a/ve/ve3100.cpp b/ve/ve3100.cpp index 8dc98b5ec..33bb70617 100755 --- a/ve/ve3100.cpp +++ b/ve/ve3100.cpp @@ -98,6 +98,9 @@ protected: virtual bool destroy(void); virtual bool menu(MENU_TAG m); public: + // @cmember Disabilita la verifica del modulo in chiave + virtual bool check_autorization() const + {return FALSE;} TStampa_sconti() {}; virtual ~TStampa_sconti() {} }; diff --git a/ve/ve3200.cpp b/ve/ve3200.cpp index 8f71676fd..dcad23cc4 100755 --- a/ve/ve3200.cpp +++ b/ve/ve3200.cpp @@ -28,8 +28,8 @@ class TStampa_condizioni_vendita: public TPrint_application { - TRelation *_rel; // relazione principale - TString16 _condven; // stringa che indica il tipo di archivio + TRelation *_rel; // relazione principale + TString16 _condven; // stringa che indica il tipo di archivio bool _codlis_catven; // booleano di abilitazione della categoria di vendita nella chiave dei listini bool _codcon_codcf; // booleano di abilitazione del codice cliente/fornitore nella chiave dei contratti bool _listval; // booleano di abilitazione della stampa dei listini in valuta @@ -46,6 +46,11 @@ protected: virtual void preprocess_header(void); virtual void preprocess_footer(void); //virtual void process_link(int, const char *); +public: + // @cmember Disabilita la verifica del modulo in chiave + virtual bool check_autorization() const + {return FALSE;} + }; inline TStampa_condizioni_vendita& app() {return (TStampa_condizioni_vendita&) main_app();} diff --git a/ve/ve3400.cpp b/ve/ve3400.cpp index 30af4528c..de0b398d1 100755 --- a/ve/ve3400.cpp +++ b/ve/ve3400.cpp @@ -41,6 +41,10 @@ protected: virtual void set_page(int, int); virtual void preprocess_header(void); virtual void process_link(int, const char *); +public: + // @cmember Disabilita la verifica del modulo : essendo una anagrafica, va sempre abilitata + virtual bool check_autorization() const + {return FALSE;} }; diff --git a/ve/ve4100.cpp b/ve/ve4100.cpp index 17fefeb5f..6659d0f67 100755 --- a/ve/ve4100.cpp +++ b/ve/ve4100.cpp @@ -1062,6 +1062,9 @@ protected: virtual bool create(); public: + // @cmember Disabilita la verifica del modulo in chiave + virtual bool check_autorization() const + {return FALSE;} TRicalcola_application() { } virtual ~TRicalcola_application() { } }; diff --git a/ve/vearea.men b/ve/vearea.men index 2fe0fb394..9d85d7573 100755 --- a/ve/vearea.men +++ b/ve/vearea.men @@ -4,9 +4,9 @@ Picture = Module = 0 Flags = "F" Item_01 = "Archivi e tabelle di base", [ACQVEN_001] -Item_02 = "Documenti", +Item_02 = "Documenti di vendita", Item_03 = "Effetti", -Item_04 = "Provvigioni Agenti", +Item_04 = "Provvigioni agenti", Item_05 = "Ordini", Item_06 = "Statistiche di vendita", Item_07 = "Servizi", [ACQVEN_021] diff --git a/ve/velib03.cpp b/ve/velib03.cpp index 3bb749b75..38dad9e73 100755 --- a/ve/velib03.cpp +++ b/ve/velib03.cpp @@ -994,7 +994,7 @@ int TDocumento::write_rewrite(TBaseisamfile & f, bool re) const err = occ.rewrite(o); } } - if (_has_provv && tipo().provvigioni() && tipo().stato_provvigioni() >= stato()) + if (_has_provv && tipo().provvigioni() && tipo().stato_provvigioni() <= stato()) myself.write_provvigioni(); } if (tipo().statistiche() && _has_stat_ven) @@ -1042,6 +1042,18 @@ int TDocumento::remove(TBaseisamfile& f) const if (_docs_to_agg.items() == 0) _st_agg.update(); } + if (_has_provv && tipo().provvigioni()) + { + TString agente(get(DOC_CODAG)); + const int anno = TDocumento::anno(); + TString codnum(numerazione()); + const long ndoc = numero(); + + // Legge le provvigioni per questo documento + _provv_agente->read(agente, anno,codnum,ndoc); + // Le rimuove + _provv_agente->remove(); + } return TMultiple_rectype::remove(f); } @@ -1055,7 +1067,10 @@ TProvvigioni_agente& TDocumento::calc_provvigioni(const bool generata) const long ndoc = numero(); TDate datadoc(data()); - _provv_agente->read(agente, anno,codnum,ndoc); // Legge le provvigioni per questo documento + while (_provv_agente->read(agente, anno,codnum,ndoc) == _islocked) // Legge le provvigioni per questo documento + if (!yesno_box("Dati agente %s in uso da un altro utente. Riprovo?", (const char*) agente)) + return *_provv_agente; + const real perc = _provv_agente->perc_fatt(); const real tot_provv = provvigione(); real provv_fat = (tot_provv / 100.0) * perc; // Provvigione sul fatturato (rata 0) @@ -1105,9 +1120,9 @@ TProvvigioni_agente& TDocumento::calc_provvigioni(const bool generata) // data scadenza viene settata uguale alla data documento // la provvigione rimanente va suddivisa in rate a seconda del codice pagamento const int nrate = pag1.n_rate(); - for (int i = 0; i < nrate+1; i++) + for (int i = 0; i <= nrate; i++) { - TRata& rt = rd.row(i, isnew); + TRata& rt = rd.row(i, TRUE); // Se non esiste la rata ne forza la creazione rt.set_rata(i); rt.set_datascad(i == 0 ? datadoc : pag1.data_rata(i-1)); rt.set_tipopag(i == 0 ? 1 : pag1.tipo_rata(i-1)); @@ -1117,7 +1132,8 @@ TProvvigioni_agente& TDocumento::calc_provvigioni(const bool generata) rt.set_generata(); } // Rimuove eventuali righe in eccesso - for (i = nrate; i < _provv_agente->items(); i++) + const int rd_items = rd.items(); // Rate precedenti + for (i = nrate+1; i < rd_items; i++) rd.remove_rata(i); delete pag2; return *_provv_agente; diff --git a/ve/veprassi.men b/ve/veprassi.men index 70e264d7d..4b7959a3a 100755 --- a/ve/veprassi.men +++ b/ve/veprassi.men @@ -29,7 +29,7 @@ Item_04 = "Scarico e ripristino documenti", "ve5 -0", "" [PRASSIVE_052] Caption = "Configurazione" -Picture = +Picture = Module = 0 Flags = "" Item_01 = "Personalizzazione documenti", [PRASSIVE_003] @@ -62,5 +62,4 @@ Item_05 = "Formule righe documento", "ba3 -1 %FRR", "" Item_06 = "Formule ricalcolo magazzino", "ba3 -1 %FRM", "" Item_07 = "Elaborazioni differite", "ba3 -1 %ELD", "" Item_08 = "Stati documento", "ba3 -1 %STD", "" -Item_09 = "Collegamenti immediati", "disabled", ""