Corretto controllo di stampato su bollato in prima nota

Corretto ripristino stampa registri


git-svn-id: svn://10.65.10.50/trunk@887 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1995-01-19 13:58:07 +00:00
parent 489a57bf64
commit 5c08bfe0f5
6 changed files with 48 additions and 22 deletions

View File

@ -1082,8 +1082,8 @@ bool TPrimanota_application::num_handler(TMask_field& f, KEY key)
{ {
const long max = app()._lastreg+1; const long max = app()._lastreg+1;
_skip_giornale_check = FALSE; app()._skip_giornale_check = FALSE;
_skip_bollato_check = FALSE; app()._skip_bollato_check = FALSE;
if (num < max) if (num < max)
{ {
@ -1094,16 +1094,16 @@ bool TPrimanota_application::num_handler(TMask_field& f, KEY key)
if (mov.get_bool("STAMPATO")) if (mov.get_bool("STAMPATO"))
{ {
ok = yesnobox("Il movimento e' gia' stato stampato sul libro giornale:\n" ok = yesno_box("Il movimento e' gia' stato stampato sul libro giornale:\n"
"si desidera continuare ugualmente"); "si desidera continuare ugualmente");
_skip_giornale_check = ok; app()._skip_giornale_check = ok;
} }
if (ok && mov.get_bool("REGST")) if (ok && mov.get_bool("REGST"))
{ {
ok = yesnobox("Il movimento e' gia' stato stampato sul bollato:\n" ok = yesno_box("Il movimento e' gia' stato stampato sul bollato:\n"
"si desidera continuare ugualmente"); "si desidera continuare ugualmente");
_skip_bollato_check = ok; app()._skip_bollato_check = ok;
} }
if (ok) if (ok)
@ -1207,7 +1207,7 @@ bool TPrimanota_application::datareg_handler(TMask_field& f, KEY key)
const long numreg = m.get_long(F_NUMREG); const long numreg = m.get_long(F_NUMREG);
const bool error = numreg == 0 || numreg > app()._lastreg; const bool error = numreg == 0 || numreg > app()._lastreg;
if (!_skip_giornale_check) if (!app()._skip_giornale_check)
{ {
const TLibro_giornale& gio = app().giornale(); const TLibro_giornale& gio = app().giornale();
if (dr < gio.last_print()) if (dr < gio.last_print())
@ -1239,7 +1239,7 @@ bool TPrimanota_application::datareg_handler(TMask_field& f, KEY key)
m.field(F_CODREG).on_hit(); m.field(F_CODREG).on_hit();
} }
if (!_skip_bollato_check) if (!app()._skip_bollato_check)
{ {
if (dr < reg.last_print()) if (dr < reg.last_print())
{ {

View File

@ -3,11 +3,11 @@
#include <config.h> #include <config.h>
#include <mask.h> #include <mask.h>
#include <printapp.h> #include <printapp.h>
#include <progind.h>
#include <relation.h> #include <relation.h>
#include <tabutil.h> #include <tabutil.h>
#include <utility.h> #include <utility.h>
#include <progind.h>
#include <pconti.h> #include <pconti.h>
#include <comuni.h> #include <comuni.h>
#include <clifo.h> #include <clifo.h>

View File

@ -1,5 +1,7 @@
#include <xvt.h> #include <xvt.h>
#include <checks.h> #include <checks.h>
#define __MAIN__
#include "cg4.h" #include "cg4.h"
const char* const usage = "Errore - uso : %s -{0|1|2|3|4|5}"; const char* const usage = "Errore - uso : %s -{0|1|2|3|4|5}";

View File

@ -1,6 +1,10 @@
#ifndef __CG4_H #ifndef __CG4_H
#define __CG4_H #define __CG4_H
#ifndef __STRINGS_H
#include <strings.h>
#endif
int cg4100(int argc, char* argv[]); int cg4100(int argc, char* argv[]);
int cg4200(int argc, char* argv[]); int cg4200(int argc, char* argv[]);
int cg4300(int argc, char* argv[]); int cg4300(int argc, char* argv[]);
@ -8,5 +12,15 @@ int cg4400(int argc, char* argv[]);
int cg4500(int argc, char* argv[]); int cg4500(int argc, char* argv[]);
int cg4600(int argc, char* argv[]); int cg4600(int argc, char* argv[]);
#ifdef __MAIN__
#define extern
#endif
extern TString256 TMP;
#ifdef __MAIN__
#undef extern
#endif
#endif // __CG4_H #endif // __CG4_H

View File

@ -5,8 +5,6 @@
#include "cg4400a.h" #include "cg4400a.h"
#include "cg4400b.h" #include "cg4400b.h"
static TString256 TMP;
inline CG4400_application& app() { return (CG4400_application&)main_app(); } inline CG4400_application& app() { return (CG4400_application&)main_app(); }
bool CG4400_application::filter_func (const TRelation * r) bool CG4400_application::filter_func (const TRelation * r)
@ -287,14 +285,14 @@ bool CG4400_application::mask_libun (TMask_field& f, KEY k)
int last_mese = 13; int last_mese = 13;
int mese; int mese;
app().__firm = app().TApplication::get_firm(); app().__firm = app().get_firm();
for (int i = 0; i < app()._ditte->items(); i++) for (int i = 0; i < app()._ditte->items(); i++)
{ {
long ditta = app()._ditte->row(i).get_long(1); long ditta = app()._ditte->row(i).get_long(1);
if (prefhndl->exist(ditta)) if (prefhndl->exist(ditta))
{ {
app().TApplication::set_firm(ditta); app().set_firm(ditta);
if (cod.not_empty()) if (cod.not_empty())
{ {
ok = app().look_reg(i,anno,codlib,fino_a_mese,cod,&mese,ditta); ok = app().look_reg(i,anno,codlib,fino_a_mese,cod,&mese,ditta);
@ -305,7 +303,7 @@ bool CG4400_application::mask_libun (TMask_field& f, KEY k)
} }
if (mese != 0 && mese < fino_a_mese - 1) //indipendentemente se si tratta di una ditta selezionata oppure no if (mese != 0 && mese < fino_a_mese - 1) //indipendentemente se si tratta di una ditta selezionata oppure no
{ {
app().TApplication::set_firm(app().__firm); app().set_firm(app().__firm);
return error_box("Ditta %ld: Stampare i registri dei mesi precedenti", ditta); return error_box("Ditta %ld: Stampare i registri dei mesi precedenti", ditta);
} }
} }

View File

@ -74,6 +74,9 @@ bool TRipristina_stampa::do_restore(long firm, const char * regist,
reg.zero(); reg.zero();
reg.put("CODTAB", s); reg.put("CODTAB", s);
TDate inizio_anno(1, 1, year);
if (reg.read(_isequal, _lock) == NOERR) if (reg.read(_isequal, _lock) == NOERR)
{ {
TDate dlast(reg.get_date("D3")); TDate dlast(reg.get_date("D3"));
@ -90,11 +93,15 @@ bool TRipristina_stampa::do_restore(long firm, const char * regist,
} }
TDate wd(esc.get_date("D0")); TDate wd(esc.get_date("D0"));
inizio_anno = wd;
// Determina il corretto anno solare dell'esercizio: se il giorno di inizio esercizio
// e successivo alla data di ripristino allora mi trovo nell'anno solare successivo
year = wd.year(); year = wd.year();
if (wd.month() > month) if (wd.month() > month || (wd.month() == month && wd.day() > day))
year++; year++;
} }
const int ld = TDate::last_day(month, year); const int ld = TDate::last_day(month, year);
if (day > ld) day = ld; if (day > ld) day = ld;
TDate d(day, month, year); TDate d(day, month, year);
@ -126,16 +133,21 @@ bool TRipristina_stampa::do_restore(long firm, const char * regist,
{ {
p.addstatus(1); p.addstatus(1);
mov.read(_isequal, _lock); mov.read(_isequal, _lock);
mov.zero(fieldname); mov.zero(fieldname); // Azzera flag STAMPATO o REGST
ok = (mov.rewrite() == NOERR); ok = (mov.rewrite() == NOERR);
if (!ok) if (!ok)
error_box("Errore nell'aggiornamento del movimento %ld.\n Errore n. %d", error_box("Errore nell'aggiornamento del movimento %ld.\n Errore n. %d",
mov.get_long(MOV_NUMREG), mov.status()); mov.get_long(MOV_NUMREG), mov.status());
} }
--d; --d;
reg.put("D3", d); if (d > inizio_anno) // Aggiorna data ultima stampa
reg.put("D3", d);
else
reg.zero("D3");
if (giornale) if (giornale)
reg.put("I6", last_num); reg.put("I6", last_num); // Aggiorna ultima pagina giornale
ok = (reg.rewrite() == NOERR); ok = (reg.rewrite() == NOERR);
if (!ok) if (!ok)
error_box("Errore nell'aggiornamento del registro %s.\n Errore n. %d", error_box("Errore nell'aggiornamento del registro %s.\n Errore n. %d",