Tab esplosi
git-svn-id: svn://10.65.10.50/trunk@4699 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									0b8f07e996
								
							
						
					
					
						commit
						cfc16a03b7
					
				
							
								
								
									
										441
									
								
								mg/mg1100.cpp
									
									
									
									
									
								
							
							
						
						
									
										441
									
								
								mg/mg1100.cpp
									
									
									
									
									
								
							@ -18,38 +18,38 @@
 | 
				
			|||||||
// maschera dell'applicazione "Gestione interattiva movimenti di magazzino"
 | 
					// maschera dell'applicazione "Gestione interattiva movimenti di magazzino"
 | 
				
			||||||
//
 | 
					//
 | 
				
			||||||
class TMask_movmag: public TMask {
 | 
					class TMask_movmag: public TMask {
 | 
				
			||||||
	TMov_mag * mov_mag;
 | 
					  TMov_mag * mov_mag;
 | 
				
			||||||
	TMag_livelli * livelli_giac; // oggetto gestione livelli di giacenza
 | 
					  TMag_livelli * livelli_giac; // oggetto gestione livelli di giacenza
 | 
				
			||||||
	TString price_codart;
 | 
					  TString price_codart;
 | 
				
			||||||
	real price_quant;
 | 
					  real price_quant;
 | 
				
			||||||
	bool price_proposed;
 | 
					  bool price_proposed;
 | 
				
			||||||
	real proposed_price(TString  codart, real quant);
 | 
					  real proposed_price(TString  codart, real quant);
 | 
				
			||||||
	bool update_rigamov (int r, const char * old_codcaus);
 | 
					  bool update_rigamov (int r, const char * old_codcaus);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	static bool notify_righe(TSheet_field & fld_righe, int item, KEY k); // notify delle righe di sheet
 | 
					  static bool notify_righe(TSheet_field & fld_righe, int item, KEY k); // notify delle righe di sheet
 | 
				
			||||||
	static bool handle_righe(TMask_field &f, KEY k); // handler delle righe
 | 
					  static bool handle_righe(TMask_field &f, KEY k); // handler delle righe
 | 
				
			||||||
	static bool handle_righeprezzo(TMask_field &f, KEY k); // handler del prezzo delle righe
 | 
					  static bool handle_righeprezzo(TMask_field &f, KEY k); // handler del prezzo delle righe
 | 
				
			||||||
	static bool handle_codcaus(TMask_field &fld, KEY k); // handler della causale
 | 
					  static bool handle_codcaus(TMask_field &fld, KEY k); // handler della causale
 | 
				
			||||||
	static bool handle_datacomp(TMask_field &, KEY k); // handler del numero di registrazione
 | 
					  static bool handle_datacomp(TMask_field &, KEY k); // handler del numero di registrazione
 | 
				
			||||||
	static void sheetrighe_put(TSheet_field &fld_righe, int item);
 | 
					  static void sheetrighe_put(TSheet_field &fld_righe, int item);
 | 
				
			||||||
	static void sheetrighe_get(TSheet_field &fld_righe, int item);
 | 
					  static void sheetrighe_get(TSheet_field &fld_righe, int item);
 | 
				
			||||||
public:
 | 
					public:
 | 
				
			||||||
	TMask_movmag(TMag_livelli *l_m,TMov_mag * m_m);
 | 
					  TMask_movmag(TMag_livelli *l_m,TMov_mag * m_m);
 | 
				
			||||||
	virtual ~TMask_movmag();
 | 
					  virtual ~TMask_movmag();
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// costruttore della maschera anagrafica di magazzino
 | 
					// costruttore della maschera anagrafica di magazzino
 | 
				
			||||||
//TMask_movmag::TMask_movmag() : 
 | 
					//TMask_movmag::TMask_movmag() : 
 | 
				
			||||||
TMask_movmag::TMask_movmag(TMag_livelli *l_m,TMov_mag * m_m) 
 | 
					TMask_movmag::TMask_movmag(TMag_livelli *l_m,TMov_mag * m_m) 
 | 
				
			||||||
	: TMask("mg1100")
 | 
					  : TMask("mg1100")
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	// oggetti dell'applicazione
 | 
					  // oggetti dell'applicazione
 | 
				
			||||||
	livelli_giac= l_m;
 | 
					  livelli_giac= l_m;
 | 
				
			||||||
	mov_mag = m_m;
 | 
					  mov_mag = m_m;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// setta handler e notify
 | 
					  // setta handler e notify
 | 
				
			||||||
	TSheet_field & ss=(TSheet_field &)field(F_RIGHE);
 | 
					  TSheet_field & ss=(TSheet_field &)field(F_RIGHE);
 | 
				
			||||||
  set_handler(F_DATACOMP, handle_datacomp);
 | 
					  set_handler(F_DATACOMP, handle_datacomp);
 | 
				
			||||||
  set_handler(F_CODCAUS, handle_codcaus);
 | 
					  set_handler(F_CODCAUS, handle_codcaus);
 | 
				
			||||||
  ss.sheet_mask().field(F_PREZZO).set_handler(handle_righeprezzo);
 | 
					  ss.sheet_mask().field(F_PREZZO).set_handler(handle_righeprezzo);
 | 
				
			||||||
@ -59,49 +59,49 @@ TMask_movmag::TMask_movmag(TMag_livelli *l_m,TMov_mag * m_m)
 | 
				
			|||||||
  ss.set_handler(handle_righe);
 | 
					  ss.set_handler(handle_righe);
 | 
				
			||||||
  ss.set_userget(sheetrighe_get);
 | 
					  ss.set_userget(sheetrighe_get);
 | 
				
			||||||
  ss.set_userput(sheetrighe_put);
 | 
					  ss.set_userput(sheetrighe_put);
 | 
				
			||||||
	ss.set_lines_record(m_m->body());
 | 
					  ss.set_lines_record(m_m->body());
 | 
				
			||||||
	// setta i campi della maschera
 | 
					  // setta i campi della maschera
 | 
				
			||||||
	// per la pagina giacenze
 | 
					  // per la pagina giacenze
 | 
				
			||||||
	TSheet_field &fld_righe= (TSheet_field &)field(F_RIGHE); 
 | 
					  TSheet_field &fld_righe= (TSheet_field &)field(F_RIGHE); 
 | 
				
			||||||
	// disabilita le colonne quando non sono utilizzati i livelli di giacenza
 | 
					  // disabilita le colonne quando non sono utilizzati i livelli di giacenza
 | 
				
			||||||
	if (livelli_giac->enabled(1)) {
 | 
					  if (livelli_giac->enabled(1)) {
 | 
				
			||||||
		fld_righe.sheet_mask().field(F_LIV1).show();
 | 
					    fld_righe.sheet_mask().field(F_LIV1).show();
 | 
				
			||||||
		fld_righe.set_column_header(fld_righe.cid2index(F_LIV1),livelli_giac->name(1));
 | 
					    fld_righe.set_column_header(fld_righe.cid2index(F_LIV1),livelli_giac->name(1));
 | 
				
			||||||
		fld_righe.sheet_mask().field(F_LIV1).set_prompt(livelli_giac->name(1));
 | 
					    fld_righe.sheet_mask().field(F_LIV1).set_prompt(livelli_giac->name(1));
 | 
				
			||||||
	} else {
 | 
					  } else {
 | 
				
			||||||
		fld_righe.sheet_mask().field(F_LIV1).hide();
 | 
					    fld_righe.sheet_mask().field(F_LIV1).hide();
 | 
				
			||||||
		fld_righe.delete_column(fld_righe.cid2index(F_LIV1));
 | 
					    fld_righe.delete_column(fld_righe.cid2index(F_LIV1));
 | 
				
			||||||
	}
 | 
					  }
 | 
				
			||||||
	if (livelli_giac->enabled(2)) {
 | 
					  if (livelli_giac->enabled(2)) {
 | 
				
			||||||
		fld_righe.sheet_mask().field(F_LIV2).show();
 | 
					    fld_righe.sheet_mask().field(F_LIV2).show();
 | 
				
			||||||
		fld_righe.set_column_header(fld_righe.cid2index(F_LIV2),livelli_giac->name(2));
 | 
					    fld_righe.set_column_header(fld_righe.cid2index(F_LIV2),livelli_giac->name(2));
 | 
				
			||||||
		fld_righe.sheet_mask().field(F_LIV2).set_prompt(livelli_giac->name(2));
 | 
					    fld_righe.sheet_mask().field(F_LIV2).set_prompt(livelli_giac->name(2));
 | 
				
			||||||
	} else {
 | 
					  } else {
 | 
				
			||||||
		fld_righe.sheet_mask().field(F_LIV2).hide();
 | 
					    fld_righe.sheet_mask().field(F_LIV2).hide();
 | 
				
			||||||
		fld_righe.delete_column(fld_righe.cid2index(F_LIV2));
 | 
					    fld_righe.delete_column(fld_righe.cid2index(F_LIV2));
 | 
				
			||||||
	}
 | 
					  }
 | 
				
			||||||
	if (livelli_giac->enabled(3)) {
 | 
					  if (livelli_giac->enabled(3)) {
 | 
				
			||||||
		fld_righe.sheet_mask().field(F_LIV3).show();
 | 
					    fld_righe.sheet_mask().field(F_LIV3).show();
 | 
				
			||||||
		fld_righe.set_column_header(fld_righe.cid2index(F_LIV3),livelli_giac->name(3));
 | 
					    fld_righe.set_column_header(fld_righe.cid2index(F_LIV3),livelli_giac->name(3));
 | 
				
			||||||
		fld_righe.sheet_mask().field(F_LIV3).set_prompt(livelli_giac->name(3));
 | 
					    fld_righe.sheet_mask().field(F_LIV3).set_prompt(livelli_giac->name(3));
 | 
				
			||||||
	} else {
 | 
					  } else {
 | 
				
			||||||
		fld_righe.sheet_mask().field(F_LIV3).hide();
 | 
					    fld_righe.sheet_mask().field(F_LIV3).hide();
 | 
				
			||||||
		fld_righe.delete_column(fld_righe.cid2index(F_LIV3));
 | 
					    fld_righe.delete_column(fld_righe.cid2index(F_LIV3));
 | 
				
			||||||
	}
 | 
					  }
 | 
				
			||||||
	if (livelli_giac->enabled(4)) {
 | 
					  if (livelli_giac->enabled(4)) {
 | 
				
			||||||
		fld_righe.sheet_mask().field(F_LIV4).show();
 | 
					    fld_righe.sheet_mask().field(F_LIV4).show();
 | 
				
			||||||
		fld_righe.set_column_header(fld_righe.cid2index(F_LIV4),livelli_giac->name(4));
 | 
					    fld_righe.set_column_header(fld_righe.cid2index(F_LIV4),livelli_giac->name(4));
 | 
				
			||||||
		fld_righe.sheet_mask().field(F_LIV4).set_prompt(livelli_giac->name(4));
 | 
					    fld_righe.sheet_mask().field(F_LIV4).set_prompt(livelli_giac->name(4));
 | 
				
			||||||
	} else {
 | 
					  } else {
 | 
				
			||||||
		fld_righe.sheet_mask().field(F_LIV4).hide();
 | 
					    fld_righe.sheet_mask().field(F_LIV4).hide();
 | 
				
			||||||
		fld_righe.delete_column(fld_righe.cid2index(F_LIV4));
 | 
					    fld_righe.delete_column(fld_righe.cid2index(F_LIV4));
 | 
				
			||||||
	}
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	TConfig prassid(CONFIG_DITTA, "ve"); // apre il file di configurazione della ditta corrente
 | 
					  TConfig prassid(CONFIG_DITTA, "ve"); // apre il file di configurazione della ditta corrente
 | 
				
			||||||
  if (prassid.get_bool("GES", NULL, A_LISTINI))
 | 
					  if (prassid.get_bool("GES", NULL, A_LISTINI))
 | 
				
			||||||
	  field(F_CATVEN).enable(prassid.get_bool("GESLISCV"));
 | 
					    field(F_CATVEN).enable(prassid.get_bool("GESLISCV"));
 | 
				
			||||||
	else 
 | 
					  else 
 | 
				
			||||||
		field(F_CATVEN).disable();	
 | 
					    field(F_CATVEN).disable();  
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -115,13 +115,13 @@ void TMask_movmag::sheetrighe_get(TSheet_field &fld_righe, int item)
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  TMask_movmag &m=(TMask_movmag &)fld_righe.mask();
 | 
					  TMask_movmag &m=(TMask_movmag &)fld_righe.mask();
 | 
				
			||||||
  // prende il record della riga corrente dal record array
 | 
					  // prende il record della riga corrente dal record array
 | 
				
			||||||
	TRectype &rec= fld_righe.record()->row(item, TRUE);
 | 
					  TRectype &rec= fld_righe.record()->row(item, TRUE);
 | 
				
			||||||
  TToken_string &row= fld_righe.row(item-1);
 | 
					  TToken_string &row= fld_righe.row(item-1);
 | 
				
			||||||
  // codici di livello
 | 
					  // codici di livello
 | 
				
			||||||
  row.add( m.livelli_giac->unpack_grpcode(rec.get("LIVGIAC") ,1),fld_righe.cid2index(F_LIV1) );
 | 
					  row.add( m.livelli_giac->unpack_grpcode(rec.get("LIVGIAC") ,1),fld_righe.cid2index(F_LIV1) );
 | 
				
			||||||
	row.add( m.livelli_giac->unpack_grpcode(rec.get("LIVGIAC") ,2),fld_righe.cid2index(F_LIV2) );
 | 
					  row.add( m.livelli_giac->unpack_grpcode(rec.get("LIVGIAC") ,2),fld_righe.cid2index(F_LIV2) );
 | 
				
			||||||
  row.add( m.livelli_giac->unpack_grpcode(rec.get("LIVGIAC") ,3),fld_righe.cid2index(F_LIV3) );
 | 
					  row.add( m.livelli_giac->unpack_grpcode(rec.get("LIVGIAC") ,3),fld_righe.cid2index(F_LIV3) );
 | 
				
			||||||
	row.add( m.livelli_giac->unpack_grpcode(rec.get("LIVGIAC") ,4),fld_righe.cid2index(F_LIV4) );
 | 
					  row.add( m.livelli_giac->unpack_grpcode(rec.get("LIVGIAC") ,4),fld_righe.cid2index(F_LIV4) );
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// item varies from 1 to items()
 | 
					// item varies from 1 to items()
 | 
				
			||||||
@ -130,44 +130,44 @@ void TMask_movmag::sheetrighe_put(TSheet_field &fld_righe, int item)
 | 
				
			|||||||
  TMask_movmag &m=(TMask_movmag &)fld_righe.mask();
 | 
					  TMask_movmag &m=(TMask_movmag &)fld_righe.mask();
 | 
				
			||||||
  TToken_string &row= fld_righe.row(item-1);
 | 
					  TToken_string &row= fld_righe.row(item-1);
 | 
				
			||||||
          
 | 
					          
 | 
				
			||||||
		TRectype &recrighe= fld_righe.record()->row(item, TRUE);
 | 
					    TRectype &recrighe= fld_righe.record()->row(item, TRUE);
 | 
				
			||||||
		// codici livello
 | 
					    // codici livello
 | 
				
			||||||
		if (m.livelli_giac->enabled()) {
 | 
					    if (m.livelli_giac->enabled()) {
 | 
				
			||||||
     	TString16 packedcode;
 | 
					      TString16 packedcode;
 | 
				
			||||||
     	m.livelli_giac->pack_grpcode(packedcode,row.get(fld_righe.cid2index(F_LIV1)),1);
 | 
					      m.livelli_giac->pack_grpcode(packedcode,row.get(fld_righe.cid2index(F_LIV1)),1);
 | 
				
			||||||
     	m.livelli_giac->pack_grpcode(packedcode,row.get(fld_righe.cid2index(F_LIV2)),2);
 | 
					      m.livelli_giac->pack_grpcode(packedcode,row.get(fld_righe.cid2index(F_LIV2)),2);
 | 
				
			||||||
     	m.livelli_giac->pack_grpcode(packedcode,row.get(fld_righe.cid2index(F_LIV3)),3);
 | 
					      m.livelli_giac->pack_grpcode(packedcode,row.get(fld_righe.cid2index(F_LIV3)),3);
 | 
				
			||||||
     	m.livelli_giac->pack_grpcode(packedcode,row.get(fld_righe.cid2index(F_LIV4)),4);
 | 
					      m.livelli_giac->pack_grpcode(packedcode,row.get(fld_righe.cid2index(F_LIV4)),4);
 | 
				
			||||||
     	recrighe.put("LIVGIAC", packedcode);
 | 
					      recrighe.put("LIVGIAC", packedcode);
 | 
				
			||||||
		}			
 | 
					    }     
 | 
				
			||||||
}  
 | 
					}  
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
bool TMask_movmag::handle_righe(TMask_field &f, KEY k)
 | 
					bool TMask_movmag::handle_righe(TMask_field &f, KEY k)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  if (k == K_ENTER)  {
 | 
					  if (k == K_ENTER)  {
 | 
				
			||||||
		TSheet_field & ss=(TSheet_field & )f;
 | 
					    TSheet_field & ss=(TSheet_field & )f;
 | 
				
			||||||
  	for (int i=0; i< ss.items(); i++)
 | 
					    for (int i=0; i< ss.items(); i++)
 | 
				
			||||||
  	{
 | 
					    {
 | 
				
			||||||
	    if (ss.cell(i,ss.cid2index(F_CODMAG))==NULL  || *ss.cell(i,ss.cid2index(F_CODMAG)) ==' ')
 | 
					      if (*ss.cell(i,ss.cid2index(F_CODMAG)) ==' ')
 | 
				
			||||||
	    {
 | 
					      {
 | 
				
			||||||
	    	f.error_box("Nella riga %d manca l'indicazione del magazzino ",i+1);
 | 
					        f.error_box("Nella riga %d manca l'indicazione del magazzino ",i+1);
 | 
				
			||||||
  			return FALSE;
 | 
					        return FALSE;
 | 
				
			||||||
  		}
 | 
					      }
 | 
				
			||||||
  	}
 | 
					    }
 | 
				
			||||||
	}
 | 
					  }
 | 
				
			||||||
	return TRUE;
 | 
					  return TRUE;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool TMask_movmag::notify_righe(TSheet_field & ss, int r, KEY key)
 | 
					bool TMask_movmag::notify_righe(TSheet_field & ss, int r, KEY key)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 	static TString16 old_codcaus;
 | 
					  static TString16 old_codcaus;
 | 
				
			||||||
  if ( key == K_DEL ) // Cancellazione 
 | 
					  if ( key == K_DEL ) // Cancellazione 
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    if (*ss.cell(r,ss.cid2index( F_AUTOMATICA))=='A')
 | 
					    if (*ss.cell(r,ss.cid2index( F_AUTOMATICA))==riga_automatica)
 | 
				
			||||||
			return FALSE; // can't remove auto lines directly
 | 
					      return FALSE; // can't remove auto lines directly
 | 
				
			||||||
    if (r < ss.items()-1)
 | 
					    if (r < ss.items()-1)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      if (*ss.cell(r+1,ss.cid2index( F_AUTOMATICA))=='A')
 | 
					      if (*ss.cell(r+1,ss.cid2index( F_AUTOMATICA))==riga_automatica)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        ss.destroy(r + 1);
 | 
					        ss.destroy(r + 1);
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
@ -175,180 +175,176 @@ bool TMask_movmag::notify_righe(TSheet_field & ss, int r, KEY key)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  } else if (key == K_INS) { // Inserimento              
 | 
					  } else if (key == K_INS) { // Inserimento              
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      if (*ss.cell(r,ss.cid2index( F_AUTOMATICA))=='A')
 | 
					      if (*ss.cell(r,ss.cid2index( F_AUTOMATICA))==riga_automatica)
 | 
				
			||||||
        return FALSE; // cannot insert between a row and its generated one
 | 
					        return FALSE; // cannot insert between a row and its generated one
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  } else if (key == K_SPACE)  {
 | 
					  } else if (key == K_SPACE)  {
 | 
				
			||||||
		old_codcaus=ss.sheet_mask().get(F_CAUSRIG);
 | 
					    old_codcaus=ss.sheet_mask().get(F_CAUSRIG);
 | 
				
			||||||
    if (old_codcaus.blank())
 | 
					    if (old_codcaus.blank())
 | 
				
			||||||
    	old_codcaus=ss.mask().get(F_CODCAUS);
 | 
					      old_codcaus=ss.mask().get(F_CODCAUS);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  } else if (key == K_ENTER)  {
 | 
					  } else if (key == K_ENTER)  {
 | 
				
			||||||
	  TMask_movmag &m=(TMask_movmag &)ss.mask();
 | 
					    TMask_movmag &m=(TMask_movmag &)ss.mask();
 | 
				
			||||||
  	if (m.update_rigamov(r,old_codcaus))
 | 
					    if (m.update_rigamov(r,old_codcaus))
 | 
				
			||||||
			 ss.select(r+1);
 | 
					       ss.select(r+1);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
	return TRUE;
 | 
					  return TRUE;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool TMask_movmag::handle_righeprezzo(TMask_field &f, KEY k)
 | 
					bool TMask_movmag::handle_righeprezzo(TMask_field &f, KEY k)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	TSheet_field &sh=(TSheet_field &)(*f.mask().get_sheet());
 | 
					  TSheet_field &sh=(TSheet_field &)(*f.mask().get_sheet());
 | 
				
			||||||
	TMask_movmag &m=(TMask_movmag &)sh.mask();
 | 
					  TMask_movmag &m=(TMask_movmag &)sh.mask();
 | 
				
			||||||
	if (k==K_TAB && f.focusdirty())
 | 
					  if (k==K_TAB && f.focusdirty())
 | 
				
			||||||
	{
 | 
					  {
 | 
				
			||||||
		m.price_proposed=FALSE;
 | 
					    m.price_proposed=FALSE;
 | 
				
			||||||
		// in caso di nuova linea o prezzo nullo, propone il prezzo in base alla causale
 | 
					    // in caso di nuova linea o prezzo nullo, propone il prezzo in base alla causale
 | 
				
			||||||
		if (!f.mask().get(F_QUANT).blank() && 
 | 
					    if (!f.mask().get(F_QUANT).blank() && 
 | 
				
			||||||
			!f.mask().get(F_CODART).blank() &&
 | 
					      !f.mask().get(F_CODART).blank() &&
 | 
				
			||||||
			f.mask().get(F_PREZZO).blank() &&
 | 
					      f.mask().get(F_PREZZO).blank() &&
 | 
				
			||||||
			(m.price_proposed==FALSE))
 | 
					      (m.price_proposed==FALSE))
 | 
				
			||||||
		{
 | 
					    {
 | 
				
			||||||
			m.price_proposed=TRUE;
 | 
					      m.price_proposed=TRUE;
 | 
				
			||||||
			real prz=m.proposed_price(f.mask().get(F_CODART),
 | 
					      real prz=m.proposed_price(f.mask().get(F_CODART),
 | 
				
			||||||
				f.mask().get_real(F_QUANT));
 | 
					        f.mask().get_real(F_QUANT));
 | 
				
			||||||
			f.mask().set(F_PREZZO,prz);
 | 
					      f.mask().set(F_PREZZO,prz);
 | 
				
			||||||
  	}
 | 
					    }
 | 
				
			||||||
	}
 | 
					  }
 | 
				
			||||||
  return TRUE;
 | 
					  return TRUE;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool TMask_movmag::update_rigamov (int r, const char * old_codcaus)
 | 
					bool TMask_movmag::update_rigamov (int r, const char * old_codcaus)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	TSheet_field & ss=(TSheet_field & )field(F_RIGHE);
 | 
					  TSheet_field & ss=(TSheet_field & )field(F_RIGHE);
 | 
				
			||||||
	TCausale_magazzino cau_riga();
 | 
					 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
	TString16 new_codcaus(ss.cell(r,ss.cid2index(F_CAUSRIG)));
 | 
					  TString16 new_codcaus(ss.cell(r,ss.cid2index(F_CAUSRIG)));
 | 
				
			||||||
	if (new_codcaus.blank())
 | 
					  if (new_codcaus.blank())
 | 
				
			||||||
		new_codcaus=get(F_CODCAUS);
 | 
					    new_codcaus=get(F_CODCAUS);
 | 
				
			||||||
	TCausale_magazzino oldcau(old_codcaus);
 | 
					  TCausale_magazzino oldcau(old_codcaus);
 | 
				
			||||||
	TCausale_magazzino cau(new_codcaus);
 | 
					  TCausale_magazzino cau(new_codcaus);
 | 
				
			||||||
	if (*cau.get_collegata()!='\0')
 | 
					  if (*cau.get_collegata()!='\0')
 | 
				
			||||||
	{
 | 
					  {
 | 
				
			||||||
		// deve esserci una riga collegata
 | 
					    // deve esserci una riga collegata
 | 
				
			||||||
	  TString16	codmag,coddep;
 | 
					    TString16 codmag,coddep;
 | 
				
			||||||
		real prezzo(ss.cell(r,ss.cid2index(F_PREZZO)));
 | 
					    real prezzo(ss.cell(r,ss.cid2index(F_PREZZO)));
 | 
				
			||||||
	  if (r < ss.items()-1 && *ss.cell(r+1,ss.cid2index( F_AUTOMATICA)) == ' ')
 | 
					    if (r < ss.items()-1 && *ss.cell(r+1,ss.cid2index( F_AUTOMATICA)) != riga_automatica)
 | 
				
			||||||
	  {
 | 
					    {
 | 
				
			||||||
	  	// manca, la inserisco
 | 
					      // manca, la inserisco
 | 
				
			||||||
	  	ss.insert(r+1);
 | 
					      ss.insert(r+1);
 | 
				
			||||||
			ss.row(r+1)=ss.row(r);
 | 
					      ss.row(r+1)=ss.row(r);
 | 
				
			||||||
	  } else {
 | 
					    } else {
 | 
				
			||||||
	  	codmag=ss.cell(r+1,ss.cid2index(F_CODMAG));
 | 
					      codmag=ss.cell(r+1,ss.cid2index(F_CODMAG));
 | 
				
			||||||
	  	coddep=ss.cell(r+1,ss.cid2index(F_CODDEP));
 | 
					      coddep=ss.cell(r+1,ss.cid2index(F_CODDEP));
 | 
				
			||||||
			ss.row(r+1)=ss.row(r);
 | 
					      ss.row(r+1)=ss.row(r);
 | 
				
			||||||
	  }
 | 
					    }
 | 
				
			||||||
		ss.row(r+1).add(prezzo.string(),ss.cid2index(F_PREZZO));
 | 
					    ss.row(r+1).add(prezzo.string(),ss.cid2index(F_PREZZO));
 | 
				
			||||||
		ss.row(r+1).add(codmag,ss.cid2index(F_CODMAG));
 | 
					    ss.row(r+1).add(codmag,ss.cid2index(F_CODMAG));
 | 
				
			||||||
		ss.row(r+1).add(coddep,ss.cid2index(F_CODDEP));
 | 
					    ss.row(r+1).add(coddep,ss.cid2index(F_CODDEP));
 | 
				
			||||||
		ss.row(r+1).add(cau.get_collegata(),ss.cid2index(F_CAUSRIG));
 | 
					    ss.row(r+1).add(cau.get_collegata(),ss.cid2index(F_CAUSRIG));
 | 
				
			||||||
		ss.row(r+1).add("A",ss.cid2index(F_AUTOMATICA));
 | 
					    ss.row(r+1).add(TString(1,riga_automatica),ss.cid2index(F_AUTOMATICA));
 | 
				
			||||||
		ss.check_row(r+1);
 | 
					    ss.check_row(r+1);
 | 
				
			||||||
		ss.force_update(r+1);
 | 
					    ss.force_update(r+1);
 | 
				
			||||||
		return TRUE;
 | 
					    return TRUE;
 | 
				
			||||||
	} else
 | 
					  } else
 | 
				
			||||||
		if (*oldcau.get_collegata()!='\0')
 | 
					    if (*oldcau.get_collegata()!='\0')
 | 
				
			||||||
		{
 | 
					    {
 | 
				
			||||||
			// scollega la vecchia riga
 | 
					      // scollega la vecchia riga
 | 
				
			||||||
	    ss.destroy(r + 1);
 | 
					      ss.destroy(r + 1);
 | 
				
			||||||
		}
 | 
					    }
 | 
				
			||||||
	return FALSE;
 | 
					  return FALSE;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
real TMask_movmag::proposed_price(TString  codart, 
 | 
					real TMask_movmag::proposed_price(TString  codart, 
 | 
				
			||||||
				real quant)
 | 
					        real quant)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	real rv("0");
 | 
					  real rv("0");
 | 
				
			||||||
	TCausale_magazzino cau(get(F_CODCAUS));
 | 
					  TCausale_magazzino cau(get(F_CODCAUS));
 | 
				
			||||||
	TLocalisamfile anamag(LF_ANAMAG);
 | 
					  TLocalisamfile anamag(LF_ANAMAG);
 | 
				
			||||||
	anamag.put("CODART",codart);
 | 
					  anamag.put("CODART",codart);
 | 
				
			||||||
	anamag.read();
 | 
					  anamag.read();
 | 
				
			||||||
	switch (cau.get_tipoprz()) {
 | 
					  switch (cau.get_tipoprz()) {
 | 
				
			||||||
		// prezzo 
 | 
					    // prezzo 
 | 
				
			||||||
		case 'P': {
 | 
					    case 'P': {
 | 
				
			||||||
			TLocalisamfile umart(LF_UMART);
 | 
					      TLocalisamfile umart(LF_UMART);
 | 
				
			||||||
			TConfig cfgditta(CONFIG_DITTA);
 | 
					      TConfig cfgditta(CONFIG_DITTA);
 | 
				
			||||||
			TCondizione_vendita cv(&cfgditta,&anamag,&umart);
 | 
					      TCondizione_vendita cv(&cfgditta,&anamag,&umart);
 | 
				
			||||||
      
 | 
					      
 | 
				
			||||||
			cv.put_listino(get(F_CODCONDV),get(F_CATVEN));
 | 
					      cv.put_listino(get(F_CODCONDV),get(F_CATVEN));
 | 
				
			||||||
			cv.ricerca(codart,quant);
 | 
					      cv.ricerca(codart,quant);
 | 
				
			||||||
			rv=cv.get_prezzo();
 | 
					      rv=cv.get_prezzo();
 | 
				
			||||||
		}
 | 
					    }
 | 
				
			||||||
		break;
 | 
					    break;
 | 
				
			||||||
		// costo
 | 
					    // costo
 | 
				
			||||||
		case 'C': {
 | 
					    case 'C': {
 | 
				
			||||||
			rv=anamag.get_real("ULTCOS1");
 | 
					      rv=anamag.get_real("ULTCOS1");
 | 
				
			||||||
			}
 | 
					      }
 | 
				
			||||||
		break;
 | 
					    break;
 | 
				
			||||||
	}
 | 
					  }
 | 
				
			||||||
	return rv;
 | 
					  return rv;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool TMask_movmag::handle_codcaus(TMask_field &fld, KEY k)
 | 
					bool TMask_movmag::handle_codcaus(TMask_field &fld, KEY k)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 	static TString16 old_codcaus;
 | 
					  static TString16 old_codcaus;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (k == K_TAB && fld.focusdirty() && old_codcaus!="")	{
 | 
					  if (k == K_TAB && fld.focusdirty() && old_codcaus!="")  {
 | 
				
			||||||
		// aggiorna le righe di sheet
 | 
					    // aggiorna le righe di sheet
 | 
				
			||||||
	  TMask_movmag &m=(TMask_movmag &)fld.mask();
 | 
					    TMask_movmag &m=(TMask_movmag &)fld.mask();
 | 
				
			||||||
		TSheet_field & ss=(TSheet_field & )m.field(F_RIGHE);
 | 
					    TSheet_field & ss=(TSheet_field & )m.field(F_RIGHE);
 | 
				
			||||||
		bool added_some;
 | 
					    bool added_some;
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
  	for (int i=0; i< ss.items(); i++)
 | 
					    for (int i=0; i< ss.items(); i++)
 | 
				
			||||||
  	{
 | 
					    {
 | 
				
			||||||
	    if (*ss.cell(i,ss.cid2index(F_CAUSRIG)) ==' ')
 | 
					      if (*ss.cell(i,ss.cid2index(F_CAUSRIG)) ==' ')
 | 
				
			||||||
	    	// la riga dipende dalla causale movimento
 | 
					        // la riga dipende dalla causale movimento
 | 
				
			||||||
	  		added_some &=(m.update_rigamov(i,old_codcaus));
 | 
					        added_some &=(m.update_rigamov(i,old_codcaus));
 | 
				
			||||||
  	}
 | 
					    }
 | 
				
			||||||
  	if (added_some)
 | 
					    if (added_some)
 | 
				
			||||||
  	{
 | 
					    {
 | 
				
			||||||
	  	ss.dirty();
 | 
					      ss.dirty();
 | 
				
			||||||
	  	ss.set_focus();
 | 
					      ss.set_focus();
 | 
				
			||||||
	  }
 | 
					    }
 | 
				
			||||||
	}
 | 
					  }
 | 
				
			||||||
  if (k == K_TAB) 
 | 
					  if (k == K_TAB) 
 | 
				
			||||||
   	old_codcaus=fld.get();
 | 
					    old_codcaus=fld.get();
 | 
				
			||||||
  return TRUE;
 | 
					  return TRUE;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool TMask_movmag::handle_datacomp(TMask_field &fld, KEY k)
 | 
					bool TMask_movmag::handle_datacomp(TMask_field &fld, KEY k)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	if (k == K_TAB && fld.focusdirty()) 
 | 
					  if (k == K_TAB && fld.focusdirty()) 
 | 
				
			||||||
	{
 | 
					  {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		int codes=((TMask_movmag &)fld.mask()).mov_mag->codice_esercizio(TDate(fld.get()));
 | 
					    int codes=((TMask_movmag &)fld.mask()).mov_mag->codice_esercizio(TDate(fld.get()));
 | 
				
			||||||
		if (codes>0)
 | 
					    if (codes>0)
 | 
				
			||||||
			fld.mask().field(F_ANNOES).set(codes);
 | 
					      fld.mask().field(F_ANNOES).set(codes);
 | 
				
			||||||
		else
 | 
					    else
 | 
				
			||||||
		{
 | 
					    {
 | 
				
			||||||
			fld.error_box("La data indicata non appartiene a nessuno degli esercizi contabili inseriti ")	;
 | 
					      fld.error_box("La data indicata non appartiene a nessuno degli esercizi contabili inseriti ") ;
 | 
				
			||||||
			return FALSE;	
 | 
					      return FALSE; 
 | 
				
			||||||
		}
 | 
					    }
 | 
				
			||||||
	}
 | 
					  }
 | 
				
			||||||
  return TRUE;
 | 
					  return TRUE;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class TApp_movmag: public TRelation_application {
 | 
					class TApp_movmag: public TRelation_application {
 | 
				
			||||||
	TMask_movmag *_msk; // maschera principale
 | 
					  TArray used_files;
 | 
				
			||||||
 | 
					  TMask_movmag *_msk; // maschera principale
 | 
				
			||||||
  TMag_livelli * _livelli_giac;// oggetto handler  per i livelli di giacenza
 | 
					  TMag_livelli * _livelli_giac;// oggetto handler  per i livelli di giacenza
 | 
				
			||||||
	TRelation * _rel;		// relazione contenente il file movimenti
 | 
					  TRelation * _rel;   // relazione contenente il file movimenti
 | 
				
			||||||
	TLocalisamfile * _rmovmag; // file aperto per utilizzarne il record
 | 
					
 | 
				
			||||||
  virtual bool user_create();
 | 
					  virtual bool user_create();
 | 
				
			||||||
  virtual bool user_destroy();                        
 | 
					  virtual bool user_destroy();                        
 | 
				
			||||||
  virtual TMask *get_mask(int) { return _msk; }
 | 
					  virtual TMask *get_mask(int) { return _msk; }
 | 
				
			||||||
  virtual bool changing_mask(int) { return FALSE; }
 | 
					  virtual bool changing_mask(int) { return FALSE; }
 | 
				
			||||||
  virtual TRelation *get_relation() const { return _rel; }
 | 
					  virtual TRelation *get_relation() const { return _rel; }
 | 
				
			||||||
	virtual const char *get_next_key();
 | 
					  virtual const char *get_next_key();
 | 
				
			||||||
//  virtual int read(TMask& m);
 | 
					 | 
				
			||||||
//  virtual bool remove();
 | 
					 | 
				
			||||||
//  virtual int write(const TMask& m);             
 | 
					 | 
				
			||||||
//  virtual int rewrite(const TMask& m);           
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	TString16 _nextcod;    
 | 
					  TString16 _nextcod;    
 | 
				
			||||||
public:
 | 
					public:
 | 
				
			||||||
  TApp_movmag() {};
 | 
					  TApp_movmag() {};
 | 
				
			||||||
  virtual ~TApp_movmag() {};
 | 
					  virtual ~TApp_movmag() {};
 | 
				
			||||||
@ -359,16 +355,20 @@ inline TApp_movmag& app() { return (TApp_movmag&) main_app(); }
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
bool TApp_movmag::user_create()
 | 
					bool TApp_movmag::user_create()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					  used_files.add(new TLocalisamfile(LF_ANAMAG));
 | 
				
			||||||
 | 
					  used_files.add(new TLocalisamfile(LF_UMART));
 | 
				
			||||||
 | 
					  used_files.add(new TLocalisamfile(LF_MOVMAG));
 | 
				
			||||||
 | 
					  used_files.add(new TLocalisamfile(LF_RMOVMAG));
 | 
				
			||||||
 | 
					  used_files.add(new TTable("%CAU"));
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
	_rmovmag = new TLocalisamfile(LF_RMOVMAG);
 | 
					 | 
				
			||||||
  TMov_mag * m_m= new TMov_mag(); // record del movimento di magazzino
 | 
					  TMov_mag * m_m= new TMov_mag(); // record del movimento di magazzino
 | 
				
			||||||
	m_m->enable_autoload(LF_RMOVMAG);
 | 
					  m_m->enable_autoload(LF_RMOVMAG);
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
	// gestione giacenza a livelli
 | 
					  // gestione giacenza a livelli
 | 
				
			||||||
	_livelli_giac= new TMag_livelli("FCG");
 | 
					  _livelli_giac= new TMag_livelli("FCG");
 | 
				
			||||||
  // maschera specifica con gli handler dei movimenti
 | 
					  // maschera specifica con gli handler dei movimenti
 | 
				
			||||||
  _msk= new TMask_movmag(_livelli_giac,m_m);
 | 
					  _msk= new TMask_movmag(_livelli_giac,m_m);
 | 
				
			||||||
	// relazione con un solo file (LF_MOVMAG) ma col record Head_Body
 | 
					  // relazione con un solo file (LF_MOVMAG) ma col record Head_Body
 | 
				
			||||||
  _rel= new TRelation(LF_MOVMAG);
 | 
					  _rel= new TRelation(LF_MOVMAG);
 | 
				
			||||||
  _rel->lfile().set_curr(m_m);
 | 
					  _rel->lfile().set_curr(m_m);
 | 
				
			||||||
      
 | 
					      
 | 
				
			||||||
@ -377,7 +377,6 @@ bool TApp_movmag::user_create()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
bool TApp_movmag::user_destroy()
 | 
					bool TApp_movmag::user_destroy()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  delete _rmovmag;
 | 
					 | 
				
			||||||
  delete _rel;  
 | 
					  delete _rel;  
 | 
				
			||||||
  delete _msk;
 | 
					  delete _msk;
 | 
				
			||||||
  delete _livelli_giac;
 | 
					  delete _livelli_giac;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user