Patch level :10.0
Files correlati : Ricompilazione Demo : [ ] Commento : prima stesura programma di conversione CONAI; da provare completamente git-svn-id: svn://10.65.10.50/trunk@19335 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									be364c121f
								
							
						
					
					
						commit
						2d0815469f
					
				
							
								
								
									
										69
									
								
								ba/bacnv.cpp
									
									
									
									
									
								
							
							
						
						
									
										69
									
								
								ba/bacnv.cpp
									
									
									
									
									
								
							@ -1,4 +1,5 @@
 | 
			
		||||
#include <applicat.h>
 | 
			
		||||
#include <extcdecl.h>
 | 
			
		||||
#include <mailbox.h>
 | 
			
		||||
#include <progind.h>
 | 
			
		||||
#include <relation.h>
 | 
			
		||||
@ -7,16 +8,18 @@
 | 
			
		||||
#include <tabutil.h>
 | 
			
		||||
#include <urldefid.h>
 | 
			
		||||
#include <utility.h>
 | 
			
		||||
#include <extcdecl.h>
 | 
			
		||||
#include <varrec.h>
 | 
			
		||||
 | 
			
		||||
#include <causali.h>
 | 
			
		||||
#include <clifo.h>
 | 
			
		||||
#include <mov.h>
 | 
			
		||||
#include <pconti.h>
 | 
			
		||||
#include <rdoc.h>
 | 
			
		||||
#include <rmov.h>
 | 
			
		||||
#include <saldi.h>
 | 
			
		||||
 | 
			
		||||
#include "..\cg\cglib02.h"
 | 
			
		||||
#include "..\ve\velib.h"
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
 | 
			
		||||
@ -192,7 +195,7 @@ public:
 | 
			
		||||
  void convert_clifo_privati(); 
 | 
			
		||||
	void convert_pcon_ivd();
 | 
			
		||||
	void convert_profile(const char * profile_name);
 | 
			
		||||
 | 
			
		||||
  void convert_conai_righe();
 | 
			
		||||
  
 | 
			
		||||
  TConversione_archivi() : _oldditta(0), _codditta(0), _error(0) {}
 | 
			
		||||
};
 | 
			
		||||
@ -359,10 +362,13 @@ bool TConversione_archivi::menu(MENU_TAG)
 | 
			
		||||
  case 23:
 | 
			
		||||
		convert_profile(argv(2)); 
 | 
			
		||||
    break;
 | 
			
		||||
  case 24:
 | 
			
		||||
    convert_conai_righe();
 | 
			
		||||
    break;
 | 
			
		||||
  default:
 | 
			
		||||
    break;  
 | 
			
		||||
  }
 | 
			
		||||
  return FALSE;
 | 
			
		||||
  return false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
///////////////////////////////////////////////////////////
 | 
			
		||||
@ -2176,6 +2182,63 @@ void TConversione_archivi::convert_profile(const char* profile_name)
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
////////////////////////////////////////////////////////////////////
 | 
			
		||||
// Converte le righe documento in modo da riassegnare i campi CONAI
 | 
			
		||||
////////////////////////////////////////////////////////////////////
 | 
			
		||||
void TConversione_archivi::convert_conai_righe()
 | 
			
		||||
{
 | 
			
		||||
  //deve considerare tutte le righe documento che abbiano almeno uno tra codagg1 e codagg2 compilato
 | 
			
		||||
  TString query;
 | 
			
		||||
  query << "USE RDOC\n";
 | 
			
		||||
  query << "SELECT (CODAGG1?=\"??\")||(CODAGG2?=\"????\")";
 | 
			
		||||
  TISAM_recordset righedoc(query);
 | 
			
		||||
  const long righedoc_items = righedoc.items();
 | 
			
		||||
 | 
			
		||||
  TProgind pi(righedoc_items, "Ricostruzione righe CONAI...", false);
 | 
			
		||||
 | 
			
		||||
  //ci vuole un TVariable_rectype perchè il TRectype non ha campi virtuali!
 | 
			
		||||
  TVariable_rectype rdoc(LF_RIGHEDOC);
 | 
			
		||||
  rdoc.set_memo_fld(RDOC_RG1);
 | 
			
		||||
  for (bool ok = righedoc.move_first(); ok; ok = righedoc.move_next())
 | 
			
		||||
  {
 | 
			
		||||
    //deve prendere dalla riga il valore di codagg2 e confrontarlo con una delle nuove sottocategorie conai
 | 
			
		||||
    pi.addstatus(1);
 | 
			
		||||
    rdoc = righedoc.cursor()->curr();
 | 
			
		||||
    TString4 codagg2 = rdoc.get(RDOC_CODAGG2);
 | 
			
		||||
    TString4 codagg1 = rdoc.get(RDOC_CODAGG1);
 | 
			
		||||
    //se codagg2 non è 4 caratteri o è cazzato (<4) oppure non c'entra un cavolo (>4); quindi deve considerare..
 | 
			
		||||
    //..codagg1; se codagg1 è lungo 2 va bene lui
 | 
			
		||||
    if (codagg2.len() < 4 && codagg1.len() == 2)
 | 
			
		||||
    {
 | 
			
		||||
      codagg2 = codagg1;
 | 
			
		||||
      codagg2 << "99";
 | 
			
		||||
    }
 | 
			
		||||
    //per prima cosa sistema i codici categoria
 | 
			
		||||
    //quale è la classe conai? (plastica,carta,vetro,ecc.??)
 | 
			
		||||
    const TCONAI_class cc = conai_str2class(codagg2);
 | 
			
		||||
    //come si chiama il campo virtuale su rdoc in cui anrà inserito il codice categoria?
 | 
			
		||||
    const char* csn = conai_sottocat_name(cc);
 | 
			
		||||
    //noto il campo di destinazione ci mette il codice corretto
 | 
			
		||||
    rdoc.put(csn, codagg2);
 | 
			
		||||
    rdoc.zero(RDOC_CODAGG1);
 | 
			
		||||
    rdoc.zero(RDOC_CODAGG2);
 | 
			
		||||
 | 
			
		||||
    //adesso tocca ai pesi conai
 | 
			
		||||
    real qtagg1 = rdoc.get_real(RDOC_QTAGG1);
 | 
			
		||||
    //la classe è sempre quella di prima;il campo virtuale no
 | 
			
		||||
    const char* cpn = conai_peso_name(cc);
 | 
			
		||||
    //noto il campo di destinazione ci mette il peso conai
 | 
			
		||||
    rdoc.put(cpn, qtagg1);
 | 
			
		||||
    rdoc.zero(RDOC_QTAGG1);
 | 
			
		||||
 | 
			
		||||
    //scrittura finale del record
 | 
			
		||||
    TLocalisamfile f(LF_RIGHEDOC);
 | 
			
		||||
    int err = rdoc.rewrite(f);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
///////////////////////////////////////////////////////////
 | 
			
		||||
// Programma di conversione archivi speciale
 | 
			
		||||
///////////////////////////////////////////////////////////
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user