Informazioni di chiusura anno inserite nella prima linea di storico
git-svn-id: svn://10.65.10.50/trunk@4573 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									2782535535
								
							
						
					
					
						commit
						a2a967d125
					
				
							
								
								
									
										360
									
								
								ve/ve2400.cpp
									
									
									
									
									
								
							
							
						
						
									
										360
									
								
								ve/ve2400.cpp
									
									
									
									
									
								
							@ -8,19 +8,14 @@
 | 
				
			|||||||
#include <modaut.h>
 | 
					#include <modaut.h>
 | 
				
			||||||
#include "velib.h"
 | 
					#include "velib.h"
 | 
				
			||||||
#include "..\mg\mglib.h"
 | 
					#include "..\mg\mglib.h"
 | 
				
			||||||
 | 
					#include "..\mg\stomag.h"
 | 
				
			||||||
#include "ve2400.h"
 | 
					#include "ve2400.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// maschera dell'anagrafica di  magazzino
 | 
					// maschera dell'anagrafica di  magazzino
 | 
				
			||||||
class TMask_anamag: public TMask {
 | 
					class TMask_anamag: public TMask {
 | 
				
			||||||
//  TLocalisamfile *_codcorr; // file di accesso ai codici corrispondenti
 | 
					 | 
				
			||||||
//  TLocalisamfile *_deslin; // file di accesso alle descrizioni in lingua
 | 
					 | 
				
			||||||
//	TLocalisamfile *_umart; // file di accesso alle unità di misura
 | 
					 | 
				
			||||||
//  TLocalisamfile *_giacenze; // file di accesso alle giacenze
 | 
					 | 
				
			||||||
  TRelation * _rel; // relazione principale
 | 
					  TRelation * _rel; // relazione principale
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
 	TRecord_array *_linee_rec_giac; // record array di accoppiamento delle giacenze con lo sheet
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  TMag_livelli * livelli_giac;// oggetto handler  per i livelli di giacenza
 | 
					  TMag_livelli * livelli_giac;// oggetto handler  per i livelli di giacenza
 | 
				
			||||||
  TMag_livelli * livelli_art;// oggetto handler  per i livelli di anagraficca
 | 
					  TMag_livelli * livelli_art;// oggetto handler  per i livelli di anagraficca
 | 
				
			||||||
	TMetachar * metac;
 | 
						TMetachar * metac;
 | 
				
			||||||
@ -40,12 +35,17 @@ class TMask_anamag: public TMask {
 | 
				
			|||||||
  static bool handle_sheet_um_um(TMask_field &, KEY); // handler del campo UM dello sheet delle unità di misura
 | 
					  static bool handle_sheet_um_um(TMask_field &, KEY); // handler del campo UM dello sheet delle unità di misura
 | 
				
			||||||
  static bool handle_sheet_um_price(TMask_field &, KEY); // handler del campo PREZZO e PREZZO_LORDO dello sheet delle unità di misura
 | 
					  static bool handle_sheet_um_price(TMask_field &, KEY); // handler del campo PREZZO e PREZZO_LORDO dello sheet delle unità di misura
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						static void sheetgiac_get(TSheet_field &fld_righe, int item);
 | 
				
			||||||
 | 
						static void sheetgiac_put(TSheet_field &fld_righe, int item);
 | 
				
			||||||
 | 
						static void sheetsto_get(TSheet_field &fld_righe, int item);
 | 
				
			||||||
 | 
						static void sheetsto_put(TSheet_field &fld_righe, int item);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						void clear_info_sto();
 | 
				
			||||||
 | 
						bool info_sto_dirty();
 | 
				
			||||||
public:
 | 
					public:
 | 
				
			||||||
	TMask_anamag(TRelation * rel, bool enable_mag, bool enable_artliv);
 | 
						TMask_anamag(TRelation * rel, bool enable_mag, bool enable_artliv);
 | 
				
			||||||
	virtual ~TMask_anamag();
 | 
						virtual ~TMask_anamag();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	static void sheetgiac_get(TSheet_field &fld_righe, int item);
 | 
					 | 
				
			||||||
	static void sheetgiac_put(TSheet_field &fld_righe, int item);
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -53,12 +53,6 @@ public:
 | 
				
			|||||||
TMask_anamag::TMask_anamag(TRelation * rel, bool enable_mag, bool enable_artliv) : TMask("ve2400")
 | 
					TMask_anamag::TMask_anamag(TRelation * rel, bool enable_mag, bool enable_artliv) : TMask("ve2400")
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  _rel=rel;
 | 
					  _rel=rel;
 | 
				
			||||||
/*  _umart= new TLocalisamfile(LF_UMART);  // apre i file per disporre dei tracciati record
 | 
					 | 
				
			||||||
  _deslin= new TLocalisamfile(LF_DESLIN);
 | 
					 | 
				
			||||||
  _codcorr= new TLocalisamfile(LF_CODCORR);
 | 
					 | 
				
			||||||
  _giacenze= new TLocalisamfile(LF_MAG); 
 | 
					 | 
				
			||||||
	_linee_rec_giac= new TRecord_array(LF_MAG, "NRIGA");// alloca i record 
 | 
					 | 
				
			||||||
*/	
 | 
					 | 
				
			||||||
	// imposta il riconoscimento dei  caratteri del formato dell'ultima parte dell'articolo
 | 
						// imposta il riconoscimento dei  caratteri del formato dell'ultima parte dell'articolo
 | 
				
			||||||
	TString80 format("");
 | 
						TString80 format("");
 | 
				
			||||||
	TTable _tabfca("FCA");
 | 
						TTable _tabfca("FCA");
 | 
				
			||||||
@ -83,6 +77,8 @@ TMask_anamag::TMask_anamag(TRelation * rel, bool enable_mag, bool enable_artliv)
 | 
				
			|||||||
  ((TSheet_field &)field(F_SHEETGIAC)).set_userget(sheetgiac_get);
 | 
					  ((TSheet_field &)field(F_SHEETGIAC)).set_userget(sheetgiac_get);
 | 
				
			||||||
  ((TSheet_field &)field(F_SHEETGIAC)).set_userput(sheetgiac_put);
 | 
					  ((TSheet_field &)field(F_SHEETGIAC)).set_userput(sheetgiac_put);
 | 
				
			||||||
  set_handler(F_SHEETSTOMAG, handle_sheetstomag);
 | 
					  set_handler(F_SHEETSTOMAG, handle_sheetstomag);
 | 
				
			||||||
 | 
					  ((TSheet_field &)field(F_SHEETSTOMAG)).set_userget(sheetsto_get);
 | 
				
			||||||
 | 
					  ((TSheet_field &)field(F_SHEETSTOMAG)).set_userput(sheetsto_put);
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  TSheet_field &f= (TSheet_field &)field(F_SHEETUM);
 | 
					  TSheet_field &f= (TSheet_field &)field(F_SHEETUM);
 | 
				
			||||||
@ -134,7 +130,6 @@ TMask_anamag::TMask_anamag(TRelation * rel, bool enable_mag, bool enable_artliv)
 | 
				
			|||||||
		field(F_CODART).hide();
 | 
							field(F_CODART).hide();
 | 
				
			||||||
		field(F_GCA).hide();
 | 
							field(F_GCA).hide();
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		for (int i=0; i<3; i++) 
 | 
							for (int i=0; i<3; i++) 
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			// versione  con campi predefiniti sulla maschera
 | 
								// versione  con campi predefiniti sulla maschera
 | 
				
			||||||
@ -161,15 +156,61 @@ TMask_anamag::TMask_anamag(TRelation * rel, bool enable_mag, bool enable_artliv)
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void TMask_anamag::sheetsto_put(TSheet_field &sheet_sto, int item)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						if (item>1) return;
 | 
				
			||||||
 | 
						TMask_anamag & m=(TMask_anamag & )sheet_sto.mask();
 | 
				
			||||||
 | 
						TRectype & first_rec=sheet_sto.record()->row(1,TRUE);
 | 
				
			||||||
 | 
						first_rec.put(STOMAG_ULTCOS1,m.get_real(F_STOULTCOS1 ));
 | 
				
			||||||
 | 
						first_rec.put(STOMAG_ULTCOS2,m.get_real(F_STOULTCOS2 ));
 | 
				
			||||||
 | 
						first_rec.put(STOMAG_COSTSTD,m.get_real(F_STOCOSTOSTD ));
 | 
				
			||||||
 | 
						first_rec.put(STOMAG_COSTOMEDIO,m.get_real(F_STOCOSTOMEDIO ));
 | 
				
			||||||
 | 
						first_rec.put(STOMAG_CATVEN,m.get(F_STOCATVEN ));
 | 
				
			||||||
 | 
						first_rec.put(STOMAG_CODLISTINO,m.get(F_STOCODLIST));
 | 
				
			||||||
 | 
						first_rec.put(STOMAG_PRZLIST,m.get(F_STOPREZZOLIST ));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void TMask_anamag::sheetsto_get(TSheet_field &sheet_sto, int item)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						if (item>1) return;
 | 
				
			||||||
 | 
						TMask_anamag & m=(TMask_anamag &) sheet_sto.mask();
 | 
				
			||||||
 | 
						TRectype & first_rec=sheet_sto.record()->row(1,TRUE);
 | 
				
			||||||
 | 
						m.set(F_STOULTCOS1,    first_rec.get_real(STOMAG_ULTCOS1));
 | 
				
			||||||
 | 
						m.set(F_STOULTCOS2,    first_rec.get_real(STOMAG_ULTCOS2 ));
 | 
				
			||||||
 | 
						m.set(F_STOCOSTOSTD,   first_rec.get_real( STOMAG_COSTSTD ));
 | 
				
			||||||
 | 
						m.set(F_STOCOSTOMEDIO, first_rec.get_real(STOMAG_COSTOMEDIO));
 | 
				
			||||||
 | 
						m.set(F_STOCATVEN ,    first_rec.get(STOMAG_CATVEN));
 | 
				
			||||||
 | 
						m.set(F_STOCODLIST ,   first_rec.get(STOMAG_CODLISTINO));
 | 
				
			||||||
 | 
						m.set(F_STOPREZZOLIST ,first_rec.get(STOMAG_PRZLIST));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool TMask_anamag::info_sto_dirty()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return 
 | 
				
			||||||
 | 
						field(F_STOULTCOS1).dirty() ||
 | 
				
			||||||
 | 
							field(F_STOULTCOS2).dirty() ||
 | 
				
			||||||
 | 
								field(F_STOCOSTOSTD).dirty() ||
 | 
				
			||||||
 | 
									field(F_STOCOSTOMEDIO).dirty()||
 | 
				
			||||||
 | 
										field(F_STOCATVEN ).dirty()||
 | 
				
			||||||
 | 
											field(F_STOCODLIST).dirty()||
 | 
				
			||||||
 | 
												field(F_STOPREZZOLIST).dirty();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void TMask_anamag::clear_info_sto()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						reset(F_STOULTCOS1);
 | 
				
			||||||
 | 
						reset(F_STOULTCOS2);
 | 
				
			||||||
 | 
						reset(F_STOCOSTOSTD);
 | 
				
			||||||
 | 
						reset(F_STOCOSTOMEDIO);
 | 
				
			||||||
 | 
						reset(F_STOCATVEN );
 | 
				
			||||||
 | 
						reset(F_STOCODLIST);
 | 
				
			||||||
 | 
						reset(F_STOPREZZOLIST);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
TMask_anamag::~TMask_anamag()
 | 
					TMask_anamag::~TMask_anamag()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
/*  delete _linee_rec_giac;
 | 
					 | 
				
			||||||
  delete _giacenze;
 | 
					 | 
				
			||||||
  delete _codcorr;
 | 
					 | 
				
			||||||
  delete _deslin;
 | 
					 | 
				
			||||||
  delete _umart;
 | 
					 | 
				
			||||||
*/
 | 
					 | 
				
			||||||
  delete livelli_art;
 | 
					  delete livelli_art;
 | 
				
			||||||
  delete livelli_giac;
 | 
					  delete livelli_giac;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -264,14 +305,18 @@ bool TMask_anamag::handle_stoanno(TMask_field &fld, KEY k)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  	if (mask.last_annosto>0 && mask.last_annosto!=fld.mask().get_int(F_STOANNO))
 | 
					  	if (mask.last_annosto>0 && mask.last_annosto!=fld.mask().get_int(F_STOANNO))
 | 
				
			||||||
  	{
 | 
					  	{
 | 
				
			||||||
  		if (fld.mask().field(F_SHEETSTOMAG).dirty() && handle_sheetstomag(fld_stomag,K_ENTER)) {
 | 
					  		if ((mask.field(F_SHEETSTOMAG).dirty() || mask.info_sto_dirty())	&& 
 | 
				
			||||||
 | 
					  			handle_sheetstomag(fld_stomag,K_ENTER) &&
 | 
				
			||||||
 | 
					  				fld_stomag.items()>0 ) 
 | 
				
			||||||
 | 
					  		{
 | 
				
			||||||
	 			if (fld.yesno_box("Vuoi salvare le righe di storico per l'anno %d",mask.last_annosto)) {
 | 
						 			if (fld.yesno_box("Vuoi salvare le righe di storico per l'anno %d",mask.last_annosto)) {
 | 
				
			||||||
 					fld_stomag.autosave(*mask._rel);
 | 
					 					fld_stomag.autosave(*mask._rel);
 | 
				
			||||||
 					fld_stomag.record()->write(TRUE);
 | 
					 					fld_stomag.record()->write(TRUE);
 | 
				
			||||||
 				}	
 | 
					 				}	
 | 
				
			||||||
	 		}
 | 
						 		}
 | 
				
			||||||
	  	mask.field(F_STOANNORIF).set(fld.get());
 | 
						  	mask.field(F_STOANNORIF).set(fld.get());
 | 
				
			||||||
  		// rilegge le giacenze relative a quell'anno ed aggiorna il layout
 | 
					  		// rilegge lo storico relativo a quell'anno ed aggiorna il layout
 | 
				
			||||||
 | 
								mask.clear_info_sto();			
 | 
				
			||||||
			fld_stomag.record()->read(*fld_stomag.putkey(*mask._rel));
 | 
								fld_stomag.record()->read(*fld_stomag.putkey(*mask._rel));
 | 
				
			||||||
			fld_stomag.autoload(*mask._rel);
 | 
								fld_stomag.autoload(*mask._rel);
 | 
				
			||||||
			fld_stomag.force_update();
 | 
								fld_stomag.force_update();
 | 
				
			||||||
@ -282,7 +327,6 @@ bool TMask_anamag::handle_stoanno(TMask_field &fld, KEY k)
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
bool TMask_anamag::handle_sheet_um(TMask_field &fld, KEY k)
 | 
					bool TMask_anamag::handle_sheet_um(TMask_field &fld, KEY k)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  if (k == K_ENTER)
 | 
					  if (k == K_ENTER)
 | 
				
			||||||
@ -620,38 +664,13 @@ int TAnagrafica_magazzino::read(TMask& m)
 | 
				
			|||||||
  if (err == NOERR)
 | 
					  if (err == NOERR)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    // LETTURA SHEET STORICO MAGAZZINO  IN AUTOMATICO
 | 
					    // LETTURA SHEET STORICO MAGAZZINO  IN AUTOMATICO
 | 
				
			||||||
    TSheet_field &fld_stomag= (TSheet_field &)m.field(F_SHEETSTOMAG); // prende il sheet delle unità di misura
 | 
					    /*TSheet_field &fld_stomag= (TSheet_field &)m.field(F_SHEETSTOMAG); // prende il sheet delle unità di misura
 | 
				
			||||||
    fld_stomag.sheet_mask().field(F_STOCODART).set(m.field(F_CODART).get()); 
 | 
					    fld_stomag.sheet_mask().field(F_STOCODART).set(m.field(F_CODART).get()); */
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    //int i;
 | 
					 | 
				
			||||||
    // *****************************
 | 
					    // *****************************
 | 
				
			||||||
    // LETTURA SHEET UNITA' DI MISURA
 | 
					    // LETTURA SHEET UNITA' DI MISURA
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    TSheet_field &fld_um= (TSheet_field &)m.field(F_SHEETUM); // prende il sheet delle unità di misura
 | 
					    TSheet_field &fld_um= (TSheet_field &)m.field(F_SHEETUM); // prende il sheet delle unità di misura
 | 
				
			||||||
    /*
 | 
					 | 
				
			||||||
    TRectype rum(LF_UMART); // crea il record dal file delle unità di misura
 | 
					 | 
				
			||||||
    TString codiva(m.get(F_CODIVA));
 | 
					 | 
				
			||||||
    real netto = 0.0, lordo = 0.0;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    fld_um.destroy(); // cancella lo sheet
 | 
					 | 
				
			||||||
    rum.put("CODART", m.get(F_CODART)); // imposta il record corrente sul codice articolo (dalla maschera)
 | 
					 | 
				
			||||||
    _linee_rec_um->read(rum); // legge il record array
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    const int lastum = _linee_rec_um->last_row();
 | 
					 | 
				
			||||||
    for (int i= 1; i <= lastum; i++)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      TRectype &rec= _linee_rec_um->row(i, TRUE); // prende il record della riga corrente dal record array
 | 
					 | 
				
			||||||
      TToken_string &row= fld_um.row(i-1); 
 | 
					 | 
				
			||||||
      row = "";
 | 
					 | 
				
			||||||
      row.add(rec.get("UM")); // imposta la riga dello sheet con i campi del record della riga corrente
 | 
					 | 
				
			||||||
      row.add(rec.get("FC"));
 | 
					 | 
				
			||||||
      row.add(rec.get("PREZZO"));
 | 
					 | 
				
			||||||
      netto = real(rec.get("PREZZO"));
 | 
					 | 
				
			||||||
      lordo = netto2lordo(netto,codiva);
 | 
					 | 
				
			||||||
      row.add(lordo.string());
 | 
					 | 
				
			||||||
      
 | 
					 | 
				
			||||||
    } 
 | 
					 | 
				
			||||||
		*/
 | 
					 | 
				
			||||||
    if (fld_um.items() == 0)
 | 
					    if (fld_um.items() == 0)
 | 
				
			||||||
      ((TToken_string &)fld_um.row(0)) = "|1"; // aggiunge una riga allo sheet
 | 
					      ((TToken_string &)fld_um.row(0)) = "|1"; // aggiunge una riga allo sheet
 | 
				
			||||||
    else  
 | 
					    else  
 | 
				
			||||||
@ -659,55 +678,7 @@ int TAnagrafica_magazzino::read(TMask& m)
 | 
				
			|||||||
    fld_um.disable_cell(0, 1); // mette in sola lettura il secondo campo della prima riga (il fattore di conversione della prima U.M. è fisso a 1)
 | 
					    fld_um.disable_cell(0, 1); // mette in sola lettura il secondo campo della prima riga (il fattore di conversione della prima U.M. è fisso a 1)
 | 
				
			||||||
    fld_um.force_update(0); // aggiorna lo stato della riga 0
 | 
					    fld_um.force_update(0); // aggiorna lo stato della riga 0
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
    
 | 
							// preleva le info di storico (prezzi, ultcosti, ecc)
 | 
				
			||||||
    // *****************************
 | 
					 | 
				
			||||||
    // LETTURA SHEET DESCRIZIONI IN LINGUA
 | 
					 | 
				
			||||||
    /*
 | 
					 | 
				
			||||||
    TRectype r(LF_DESLIN); // prende il record corrente dal file delle descrizioni in lingua
 | 
					 | 
				
			||||||
    TSheet_field &fld_deslin= (TSheet_field &)m.field(F_SHEETDESLIN); // prende il sheet delle descrizioni in lingua
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    r.zero();
 | 
					 | 
				
			||||||
    r.put("CODART", m.get(F_CODART)); // imposta il record corrente sul codice articolo (dalla maschera)
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    _linee_rec_deslin->read(r); // legge il record array
 | 
					 | 
				
			||||||
    fld_deslin.destroy(); // cancella lo sheet
 | 
					 | 
				
			||||||
    const int lastdes= _linee_rec_deslin->last_row();
 | 
					 | 
				
			||||||
    for (i = 1; i <= lastdes; i++)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      TRectype &rec= _linee_rec_deslin->row(i, TRUE); // prende il record della riga corrente dal record array
 | 
					 | 
				
			||||||
      TToken_string &row= fld_deslin.row(i-1);
 | 
					 | 
				
			||||||
                              
 | 
					 | 
				
			||||||
      row = "";                               
 | 
					 | 
				
			||||||
      row.add(rec.get("CODLIN")); // imposta la riga dello sheet con i campi del record della riga corrente
 | 
					 | 
				
			||||||
      row.add(rec.get("DESCR"));
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    */
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    // ***************************
 | 
					 | 
				
			||||||
    // LETTURA  SHEET CODICI CORRISPONDENTI
 | 
					 | 
				
			||||||
    /*
 | 
					 | 
				
			||||||
    TRectype rcor(LF_CODCORR); // prende il record corrente dal file dei codici corrispondenti
 | 
					 | 
				
			||||||
    TSheet_field &fld_cod= (TSheet_field &)m.field(F_SHEETCOD); // prende lo sheet dei codici corrispondenti
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    rcor.zero();
 | 
					 | 
				
			||||||
    rcor.put("CODART", m.get(F_CODART)); // imposta il record corrente sul codice articolo (dalla maschera)
 | 
					 | 
				
			||||||
    _linee_rec_cod->read(rcor); // legge il record array
 | 
					 | 
				
			||||||
    fld_cod.destroy(); // cancella lo sheet
 | 
					 | 
				
			||||||
    const int lastcod = _linee_rec_cod->last_row();
 | 
					 | 
				
			||||||
    for (i= 1; i <= lastcod; i++)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      TRectype &rec= _linee_rec_cod->row(i, TRUE); // prende il record della riga corrente dal record array
 | 
					 | 
				
			||||||
      TToken_string &row= fld_cod.row(i-1);
 | 
					 | 
				
			||||||
      
 | 
					 | 
				
			||||||
      row = "";
 | 
					 | 
				
			||||||
      row.add(rec.get("CODARTALT")); // imposta la riga dello sheet con i campi del record della riga corrente
 | 
					 | 
				
			||||||
      row.add(rec.get("TIPO"));
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    */
 | 
					 | 
				
			||||||
    // *****************************
 | 
					 | 
				
			||||||
    // LETTURA  SHEET GIACENZE
 | 
					 | 
				
			||||||
		//((TMask_anamag &)m).sheetgiac_read();    
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
  } // no errors in TRelation_application::read(m);
 | 
					  } // no errors in TRelation_application::read(m);
 | 
				
			||||||
  return err;
 | 
					  return err;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -715,199 +686,17 @@ int TAnagrafica_magazzino::read(TMask& m)
 | 
				
			|||||||
bool TAnagrafica_magazzino::remove()
 | 
					bool TAnagrafica_magazzino::remove()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  return //_linee_rec_um->remove() == NOERR &&
 | 
					  return TRelation_application::remove(); 
 | 
				
			||||||
      //   _linee_rec_deslin->remove() == NOERR &&
 | 
					 | 
				
			||||||
      //   _linee_rec_cod->remove() == NOERR &&
 | 
					 | 
				
			||||||
      //   _msk->sheetgiac_remove() == NOERR &&
 | 
					 | 
				
			||||||
         TRelation_application::remove(); 
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int TAnagrafica_magazzino::write(const TMask& m)
 | 
					int TAnagrafica_magazzino::write(const TMask& m)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  int err= TRelation_application::write(m);
 | 
						return TRelation_application::write(m);
 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  //if (err != NOERR)
 | 
					 | 
				
			||||||
  //  return err;
 | 
					 | 
				
			||||||
  //int i;
 | 
					 | 
				
			||||||
  // ***********************
 | 
					 | 
				
			||||||
  // write dello sheet unita' di misura
 | 
					 | 
				
			||||||
  /*
 | 
					 | 
				
			||||||
  TSheet_field &fld_um= (TSheet_field &)m.field(F_SHEETUM);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  _linee_rec_um->destroy_rows();
 | 
					 | 
				
			||||||
  if (m.insert_mode()) _linee_rec_um->renum_key("CODART", m.get(F_CODART));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  for (int i= 0; i < fld_um.items(); i++)
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    TToken_string &row= fld_um.row(i);
 | 
					 | 
				
			||||||
    TString16 um(row.get(0));
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    um.rtrim();
 | 
					 | 
				
			||||||
    if (um.not_empty())
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      TRectype &rec= _linee_rec_um->row(i+1, TRUE);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      rec.put("UM", um);
 | 
					 | 
				
			||||||
      rec.put("FC", row.get());                    
 | 
					 | 
				
			||||||
      rec.put("PREZZO", row.get());                    
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
  }    
 | 
					 | 
				
			||||||
  err = _linee_rec_um->write();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  if (err != NOERR)
 | 
					 | 
				
			||||||
    return err;
 | 
					 | 
				
			||||||
	*/
 | 
					 | 
				
			||||||
  // ***********************
 | 
					 | 
				
			||||||
  // write dello sheet  descrizioni in lingua
 | 
					 | 
				
			||||||
  /*TSheet_field &fld_deslin= (TSheet_field &)m.field(F_SHEETDESLIN);
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
  _linee_rec_deslin->destroy_rows();
 | 
					 | 
				
			||||||
  if (m.insert_mode()) _linee_rec_deslin->renum_key("CODART", m.get(F_CODART));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  for (i = 0; i < fld_deslin.items(); i++)
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    TToken_string &row= fld_deslin.row(i);
 | 
					 | 
				
			||||||
    TString16 codlin(row.get(0));
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    codlin.rtrim();
 | 
					 | 
				
			||||||
      
 | 
					 | 
				
			||||||
    if (codlin.not_empty())
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      TRectype &rec= _linee_rec_deslin->row(i+1, TRUE);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      rec.put("CODLIN", codlin);
 | 
					 | 
				
			||||||
      rec.put("DESCR", row.get());
 | 
					 | 
				
			||||||
    }                                          
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  err= _linee_rec_deslin->write();
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  if (err != NOERR)
 | 
					 | 
				
			||||||
    return err;
 | 
					 | 
				
			||||||
  */
 | 
					 | 
				
			||||||
  // ***********************
 | 
					 | 
				
			||||||
  // write dello sheet  codici alternativi
 | 
					 | 
				
			||||||
  /*
 | 
					 | 
				
			||||||
  TSheet_field &fld_cod= (TSheet_field &)m.field(F_SHEETCOD);
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  _linee_rec_cod->destroy_rows();
 | 
					 | 
				
			||||||
  if (m.insert_mode()) _linee_rec_cod->renum_key("CODART", m.get(F_CODART));
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
  for (i= 0; i < fld_cod.items(); i++)
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    TToken_string &row= fld_cod.row(i);
 | 
					 | 
				
			||||||
    TString80 codartalt(row.get(0));
 | 
					 | 
				
			||||||
          
 | 
					 | 
				
			||||||
    codartalt.rtrim();
 | 
					 | 
				
			||||||
    if (codartalt.not_empty())
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      TRectype &reccor= _linee_rec_cod->row(i+1, TRUE); 
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      reccor.put("CODARTALT", codartalt);
 | 
					 | 
				
			||||||
      reccor.put("TIPO", row.get());
 | 
					 | 
				
			||||||
    }                                          
 | 
					 | 
				
			||||||
  }    
 | 
					 | 
				
			||||||
  err= _linee_rec_cod->write();
 | 
					 | 
				
			||||||
  if (err != NOERR)
 | 
					 | 
				
			||||||
    return err;
 | 
					 | 
				
			||||||
  */
 | 
					 | 
				
			||||||
  // ***********************
 | 
					 | 
				
			||||||
  // write dello sheet  giacenze
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  //err = ((TMask_anamag &)m).sheetgiac_write(FALSE);
 | 
					 | 
				
			||||||
	return err;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
int TAnagrafica_magazzino::rewrite(const TMask& m)
 | 
					int TAnagrafica_magazzino::rewrite(const TMask& m)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  int err;
 | 
						return TRelation_application::rewrite(m);
 | 
				
			||||||
  // rewrite dello sheet  Unita' di misura
 | 
					 | 
				
			||||||
  /*
 | 
					 | 
				
			||||||
  TSheet_field &fld_um= (TSheet_field &)m.field(F_SHEETUM);
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  _linee_rec_um->destroy_rows();
 | 
					 | 
				
			||||||
  if (m.insert_mode()) _linee_rec_um->renum_key("CODART", m.get(F_CODART));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  for (int i= 0; i < fld_um.items(); i++)
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    TToken_string & row = fld_um.row(i);
 | 
					 | 
				
			||||||
    TString16 um(row.get(0));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    um.rtrim();      
 | 
					 | 
				
			||||||
    if (um.not_empty())
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      TRectype &rec= _linee_rec_um->row(i+1, TRUE); 
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
      rec.put("UM", um);
 | 
					 | 
				
			||||||
      rec.put("FC", row.get());
 | 
					 | 
				
			||||||
      rec.put("PREZZO", row.get());
 | 
					 | 
				
			||||||
    }                                          
 | 
					 | 
				
			||||||
  }   
 | 
					 | 
				
			||||||
   
 | 
					 | 
				
			||||||
  int err = _linee_rec_um->rewrite();
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  if (err != NOERR)
 | 
					 | 
				
			||||||
    return err;   
 | 
					 | 
				
			||||||
  */
 | 
					 | 
				
			||||||
  // rewrite dello sheet  descrizioni in lingua
 | 
					 | 
				
			||||||
  /*
 | 
					 | 
				
			||||||
  TSheet_field &fld_deslin= (TSheet_field &)m.field(F_SHEETDESLIN);
 | 
					 | 
				
			||||||
  _linee_rec_deslin->destroy_rows();
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
  if (m.insert_mode()) _linee_rec_deslin->renum_key("CODART", m.get(F_CODART));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  for (i= 0; i < fld_deslin.items(); i++)
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    TToken_string & row = fld_deslin.row(i);
 | 
					 | 
				
			||||||
    TString16 codlin(row.get(0));
 | 
					 | 
				
			||||||
          
 | 
					 | 
				
			||||||
    codlin.rtrim();
 | 
					 | 
				
			||||||
    if (codlin.not_empty()) 
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      TRectype &rec= _linee_rec_deslin->row(i+1, TRUE); 
 | 
					 | 
				
			||||||
      
 | 
					 | 
				
			||||||
      rec.put("CODLIN", codlin);
 | 
					 | 
				
			||||||
      rec.put("DESCR", row.get());
 | 
					 | 
				
			||||||
    }                                          
 | 
					 | 
				
			||||||
  }    
 | 
					 | 
				
			||||||
  err = _linee_rec_deslin->rewrite();
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  if (err != NOERR)
 | 
					 | 
				
			||||||
   return err;
 | 
					 | 
				
			||||||
  */
 | 
					 | 
				
			||||||
  // rewrite dello sheet  codici alt.
 | 
					 | 
				
			||||||
  /*
 | 
					 | 
				
			||||||
  TSheet_field &fld_cod= (TSheet_field &)m.field(F_SHEETCOD);
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  _linee_rec_cod->destroy_rows();
 | 
					 | 
				
			||||||
  if (m.insert_mode()) _linee_rec_cod->renum_key("CODART", m.get(F_CODART));
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
  for (i = 0; i < fld_cod.items(); i++)
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    TToken_string &row= fld_cod.row(i);
 | 
					 | 
				
			||||||
    TString80 codartalt(row.get(0));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    codartalt.rtrim();      
 | 
					 | 
				
			||||||
    if (codartalt.not_empty())
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      TRectype &reccor = _linee_rec_cod->row(i+1, TRUE);
 | 
					 | 
				
			||||||
      
 | 
					 | 
				
			||||||
      reccor.put("CODARTALT", codartalt);
 | 
					 | 
				
			||||||
      reccor.put("TIPO", row.get());
 | 
					 | 
				
			||||||
    }                                          
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  err = _linee_rec_cod->rewrite();
 | 
					 | 
				
			||||||
  if (err != NOERR)
 | 
					 | 
				
			||||||
   return err;
 | 
					 | 
				
			||||||
  */
 | 
					 | 
				
			||||||
  // rewrite dello sheet giacenze
 | 
					 | 
				
			||||||
  //
 | 
					 | 
				
			||||||
	//err = ((TMask_anamag &)m).sheetgiac_write(TRUE);
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
  //if (err == NOERR)
 | 
					 | 
				
			||||||
    err= TRelation_application::rewrite(m);
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  return err;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void TAnagrafica_magazzino::init_insert_mode(TMask &m)
 | 
					void TAnagrafica_magazzino::init_insert_mode(TMask &m)
 | 
				
			||||||
@ -921,7 +710,6 @@ void TAnagrafica_magazzino::init_insert_mode(TMask &m)
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
// ************************
 | 
					// ************************
 | 
				
			||||||
//
 | 
					//
 | 
				
			||||||
int ve2400(int argc, char* argv[])
 | 
					int ve2400(int argc, char* argv[])
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										10
									
								
								ve/ve2400.h
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								ve/ve2400.h
									
									
									
									
									
								
							@ -65,7 +65,6 @@
 | 
				
			|||||||
#define F_INDBILA        176
 | 
					#define F_INDBILA        176
 | 
				
			||||||
#define F_INDBILV        177
 | 
					#define F_INDBILV        177
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
#define H_ANNO		180
 | 
					#define H_ANNO		180
 | 
				
			||||||
#define F_ANNO		181
 | 
					#define F_ANNO		181
 | 
				
			||||||
#define F_ANNORIF		182
 | 
					#define F_ANNORIF		182
 | 
				
			||||||
@ -90,6 +89,14 @@
 | 
				
			|||||||
#define F_SHEETGIAC      203
 | 
					#define F_SHEETGIAC      203
 | 
				
			||||||
#define F_SHEETSTOMAG      204
 | 
					#define F_SHEETSTOMAG      204
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define F_STOULTCOS1 210
 | 
				
			||||||
 | 
					#define F_STOULTCOS2 211
 | 
				
			||||||
 | 
					#define F_STOCOSTOSTD 212
 | 
				
			||||||
 | 
					#define F_STOCOSTOMEDIO 213
 | 
				
			||||||
 | 
					#define F_STOCATVEN 214
 | 
				
			||||||
 | 
					#define F_STOCODLIST 215
 | 
				
			||||||
 | 
					#define F_STOPREZZOLIST 216
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// definizioni per l'archivio di misura articoli
 | 
					// definizioni per l'archivio di misura articoli
 | 
				
			||||||
#define FS_CODUM         101
 | 
					#define FS_CODUM         101
 | 
				
			||||||
#define FS_FCUM          102
 | 
					#define FS_FCUM          102
 | 
				
			||||||
@ -114,3 +121,4 @@
 | 
				
			|||||||
#define F_STOPREZZO	104
 | 
					#define F_STOPREZZO	104
 | 
				
			||||||
#define F_STOCODART	120
 | 
					#define F_STOCODART	120
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -839,6 +839,45 @@ BEGIN
 | 
				
			|||||||
	FLAGS  "AD"
 | 
						FLAGS  "AD"
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					NUMBER F_STOULTCOS1 15 5
 | 
				
			||||||
 | 
					BEGIN
 | 
				
			||||||
 | 
						FLAGS "U"
 | 
				
			||||||
 | 
						PROMPT 2 16 "Ultimo costo   "
 | 
				
			||||||
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					NUMBER F_STOULTCOS2 15 5
 | 
				
			||||||
 | 
					BEGIN
 | 
				
			||||||
 | 
						FLAGS "U"
 | 
				
			||||||
 | 
						PROMPT 42 16 "Penultimo costo "
 | 
				
			||||||
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					NUMBER F_STOCOSTOSTD 15 5
 | 
				
			||||||
 | 
					BEGIN
 | 
				
			||||||
 | 
						FLAGS "U"
 | 
				
			||||||
 | 
						PROMPT 2 17 "Costo standard "
 | 
				
			||||||
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					NUMBER F_STOCOSTOMEDIO 15 5
 | 
				
			||||||
 | 
					BEGIN
 | 
				
			||||||
 | 
						FLAGS "U"
 | 
				
			||||||
 | 
						PROMPT 42 17 "Costo medio     "
 | 
				
			||||||
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					STRING F_STOCATVEN 3
 | 
				
			||||||
 | 
					BEGIN
 | 
				
			||||||
 | 
						PROMPT 2 18 "Cat.vendita "
 | 
				
			||||||
 | 
					END
 | 
				
			||||||
 | 
					STRING F_STOCODLIST 3 
 | 
				
			||||||
 | 
					BEGIN
 | 
				
			||||||
 | 
						PROMPT 26 18 "Cod.listino "
 | 
				
			||||||
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					NUMBER F_STOPREZZOLIST 15 5
 | 
				
			||||||
 | 
					BEGIN
 | 
				
			||||||
 | 
						FLAGS "U"
 | 
				
			||||||
 | 
						PROMPT 47 18  "Prezzo "
 | 
				
			||||||
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
SPREADSHEET F_SHEETSTOMAG 77 10
 | 
					SPREADSHEET F_SHEETSTOMAG 77 10
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
  PROMPT 2 4 "Storico Giacenze"
 | 
					  PROMPT 2 4 "Storico Giacenze"
 | 
				
			||||||
@ -852,6 +891,7 @@ BEGIN
 | 
				
			|||||||
	ITEM "Valore@15"
 | 
						ITEM "Valore@15"
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ENDPAGE
 | 
					ENDPAGE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ENDMASK
 | 
					ENDMASK
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user