1997-10-24 14:35:11 +00:00
# include <applicat.h>
1997-06-09 11:01:55 +00:00
# include <utility.h>
# include <tabutil.h>
# include <msksheet.h>
# include <recarray.h>
# include <assoc.h>
# include <checks.h>
# include <defmask.h>
# include "mg1200.h"
# include "mglib.h"
1997-10-24 14:35:11 +00:00
# include "..\cg\cglib01.h"
1997-06-09 11:01:55 +00:00
class TMask_buildmov : public TMask {
1997-10-24 14:35:11 +00:00
TEsercizi_contabili esercizi ;
static bool handle_annoes ( TMask_field & , KEY ) ; // handler del numero di registrazione
1997-06-09 11:01:55 +00:00
public :
1997-10-24 14:35:11 +00:00
TMask_buildmov ( ) ;
virtual ~ TMask_buildmov ( )
{ } ;
1997-06-09 11:01:55 +00:00
} ;
TMask_buildmov : : TMask_buildmov ( )
1997-10-24 14:35:11 +00:00
: TMask ( " mg1200 " )
1997-06-09 11:01:55 +00:00
{
set_handler ( F_ANNOES , handle_annoes ) ;
}
bool TMask_buildmov : : handle_annoes ( TMask_field & fld , KEY k )
{
1997-10-24 14:35:11 +00:00
TMask_buildmov & mask = ( TMask_buildmov & ) fld . mask ( ) ;
if ( fld . get ( ) . empty ( ) )
{
1998-01-09 16:33:25 +00:00
// DEFAULT
const long esc = mask . esercizi . date2esc ( mask . get_date ( F_DATA ) ) ;
if ( esc ! = 0 )
fld . set ( esc ) ;
1997-10-24 14:35:11 +00:00
}
if ( k = = K_TAB & & fld . focusdirty ( ) )
{
if ( mask . esercizi . exist ( mask . get_int ( F_ANNOES ) ) )
{
const TEsercizio & e = mask . esercizi . esercizio ( mask . get_int ( F_ANNOES ) ) ;
if ( mask . esercizi . esercizio ( mask . get_int ( F_ANNOES ) ) . chiusura_mag ( ) ! = TDate ( NULLDATE ) )
{
fld . error_box ( " Il magazzino dell'esercizio indicato risulta chiuso \n Impossibile effettuare la ricostruzione saldi " ) ;
return FALSE ;
}
}
}
1997-06-09 11:01:55 +00:00
return TRUE ;
}
1997-10-24 14:35:11 +00:00
class TApp_rebuildbalances : public TSkeleton_application {
TArray * used_files ;
TRelation * _rel ; // relazione
TCursor * _cur ; // cursore
TString16 _annoes ;
bool _reset_giac ;
protected :
virtual bool create ( ) ;
virtual bool destroy ( ) ;
virtual void main_loop ( ) ;
1997-06-09 11:01:55 +00:00
public :
TApp_rebuildbalances ( ) { } ;
virtual ~ TApp_rebuildbalances ( ) { } ;
} ;
//inline TApp_rebuildbalances& app() { return (TApp_rebuildbalances&) main_app(); }
1997-10-24 14:35:11 +00:00
1997-06-09 11:01:55 +00:00
bool TApp_rebuildbalances : : create ( )
{
1998-08-25 18:07:30 +00:00
open_files ( LF_ANAMAG , LF_UMART , LF_MAG , LF_MOVMAG , LF_RMOVMAG , LF_TABCOM , LF_STOMAG , 0 ) ;
1997-10-24 14:35:11 +00:00
TSkeleton_application : : create ( ) ;
return TRUE ;
1997-06-09 11:01:55 +00:00
}
bool TApp_rebuildbalances : : destroy ( )
{
1997-10-24 14:35:11 +00:00
delete used_files ;
TSkeleton_application : : destroy ( ) ;
1997-06-09 11:01:55 +00:00
return TRUE ;
}
1997-10-24 14:35:11 +00:00
void TApp_rebuildbalances : : main_loop ( )
{
/*if (argc()>2)
_annoes = argv ( 2 ) ;
else
fatal_box ( " Manca l'indicazione dell'esercizio da ricostruire " ) ;
if ( argc ( ) > 3 )
_reset_giac = ( TString ( argv ( 3 ) ) . upper ( ) = = " RESET " ) ; */
TMask_buildmov m ;
while ( m . run ( ) = = K_ENTER )
{
1998-08-25 18:07:30 +00:00
if ( ! rebuild_balances ( m . get ( F_ANNOES ) ) )
warning_box ( " A causa degli errori riscontrati i saldi di magazzino \n potrebbero non essere stati del tutto aggiornati. \n Procedere ad una nuova operazione di ''Ricostruzione saldi'' " ) ;
1997-10-24 14:35:11 +00:00
}
}
1997-06-09 11:01:55 +00:00
int mg1200 ( int argc , char * argv [ ] )
{
TApp_rebuildbalances a ;
a . run ( argc , argv , " Ricostruzione saldi " ) ;
return 0 ;
1997-10-24 14:35:11 +00:00
}