Patch level : 10.0 860
Files correlati : lv4.exe Ricompilazione Demo : [ ] Commento : NUovo programma per esportazione bolle in txt (CHIMA) git-svn-id: svn://10.65.10.50/branches/R_10_00@21302 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									6f58035200
								
							
						
					
					
						commit
						8b494ba712
					
				@ -13,6 +13,7 @@ int main(int argc, char** argv)
 | 
			
		||||
  case 4:  lv4500(argc, argv); break;	// Importa fatture
 | 
			
		||||
  case 5:  lv4600(argc, argv); break;	// Riclassificazione conti COGECO
 | 
			
		||||
  case 6:  lv4700(argc, argv); break;	// Riclassificazione tabelle COGECO
 | 
			
		||||
  case 7:  lv4800(argc, argv); break;	// Esportazione Bolle
 | 
			
		||||
  default: lv4100(argc, argv); break;	// Importazione movimenti contabili
 | 
			
		||||
  }
 | 
			
		||||
  return 0;
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										1
									
								
								lv/lv4.h
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								lv/lv4.h
									
									
									
									
									
								
							@ -5,3 +5,4 @@ int lv4400(int argc, char* argv[]); // riscrittura movimenti
 | 
			
		||||
int lv4500(int argc, char* argv[]); // importazione fatture
 | 
			
		||||
int lv4600(int argc, char* argv[]); // riclassificazione conti COGECO
 | 
			
		||||
int lv4700(int argc, char* argv[]); // riclassificazione tabelle COGECO
 | 
			
		||||
int lv4800(int argc, char* argv[]); // esportazione bolle
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										114
									
								
								lv/lv4800.cpp
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										114
									
								
								lv/lv4800.cpp
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,114 @@
 | 
			
		||||
#include <applicat.h>
 | 
			
		||||
 | 
			
		||||
#include "../ve/velib.h"
 | 
			
		||||
#include <utility.h>
 | 
			
		||||
 | 
			
		||||
                                                    //////////////////////////////////////////
 | 
			
		||||
                                                    ////    TSpedisci Bolla    ////
 | 
			
		||||
                                                    //////////////////////////////////////////
 | 
			
		||||
 | 
			
		||||
//Classe TAggiungi_listini_app
 | 
			
		||||
class TSpedisci_bolla : public TSkeleton_application
 | 
			
		||||
{
 | 
			
		||||
private:
 | 
			
		||||
  TFilename _ini_name;
 | 
			
		||||
    
 | 
			
		||||
protected:
 | 
			
		||||
  virtual bool check_autorization() const {return false;}
 | 
			
		||||
 | 
			
		||||
  virtual void main_loop();
 | 
			
		||||
  void output_doc(const char * outdir);
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
  bool load_ini();  
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//LOAD_INI: carica il file ini che contiene il documento
 | 
			
		||||
bool TSpedisci_bolla::load_ini()
 | 
			
		||||
{   
 | 
			
		||||
  if (argc() <= 3)
 | 
			
		||||
    return false;                                     
 | 
			
		||||
 | 
			
		||||
	const TFixed_string arg = argv(3);
 | 
			
		||||
  if ((arg[0] != '-' && arg[0] != '/') || (arg[1] != 'i' && arg[1] != 'I'))
 | 
			
		||||
    return false;
 | 
			
		||||
    
 | 
			
		||||
  _ini_name = arg.mid(2);
 | 
			
		||||
 | 
			
		||||
	//controlla che il file su cui deve scrivere ci sia; se non c'é dá una segnalazione di errore
 | 
			
		||||
  if (!_ini_name.exist())
 | 
			
		||||
    return false;
 | 
			
		||||
  
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//CHECK_DOC: scorro il file ini e aggiungo alla tabella dei listini le righe mancanti
 | 
			
		||||
void TSpedisci_bolla::output_doc(const char * outdir)
 | 
			
		||||
{              
 | 
			
		||||
  TConfig ini(_ini_name, "33");
 | 
			
		||||
  TString4 para;  para.format("%d", LF_DOC);
 | 
			
		||||
	const char provv = ini.get(DOC_PROVV, para)[0];
 | 
			
		||||
	const int anno = ini.get_int(DOC_ANNO, para);
 | 
			
		||||
	const TString4 codnum = ini.get(DOC_CODNUM, para);
 | 
			
		||||
	const long ndoc = ini.get_long(DOC_NDOC, para);
 | 
			
		||||
	const long codcf = ini.get_long(DOC_CODCF, para);
 | 
			
		||||
	const TDate datadoc(ini.get(DOC_DATADOC, para));
 | 
			
		||||
	const int codaut = ini.get_int(DOC_CODAG, para);
 | 
			
		||||
	TDocumento doc(provv, anno, codnum,ndoc);
 | 
			
		||||
 | 
			
		||||
	const int rows = doc.physical_rows();
 | 
			
		||||
	TString outrow(30);
 | 
			
		||||
	TFilename outname(outdir);
 | 
			
		||||
 | 
			
		||||
	outname.add(format("bo%06ld%06ld", codcf, ndoc));
 | 
			
		||||
 | 
			
		||||
	ofstream outfile(outname);
 | 
			
		||||
 | 
			
		||||
  for(int r = 1; r <= rows; r++)
 | 
			
		||||
  {
 | 
			
		||||
		const TRiga_documento row = doc[r];
 | 
			
		||||
		real qta = row.get_real(RDOC_QTA); qta.floor();
 | 
			
		||||
		TString16 sqta = qta.string(9, 0, '0');
 | 
			
		||||
		const TString & codart = row.get(RDOC_CODART);
 | 
			
		||||
		
 | 
			
		||||
		outrow.cut(0);
 | 
			
		||||
    outrow.format("%06ld%2s%06ld%08ld%-20s%9s%04d", codcf, (const char *) codnum.mid(1), ndoc, datadoc.date2ansi(), (const char *) codart, (const char *)sqta, codaut);
 | 
			
		||||
		outfile << outrow << '\n';
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TSpedisci_bolla::main_loop() //definizione della member function main_loop, della classe TSpedisci_bolla
 | 
			
		||||
{
 | 
			
		||||
	message_box("Start");
 | 
			
		||||
 	TFilename outdir(argv(2)); outdir.lower(); 
 | 
			
		||||
 | 
			
		||||
	if (outdir.starts_with("-d"))
 | 
			
		||||
	{
 | 
			
		||||
		outdir = outdir.mid(2);
 | 
			
		||||
 | 
			
		||||
		if (outdir.exist())
 | 
			
		||||
		{
 | 
			
		||||
			open_files(LF_TAB, LF_DOC, LF_RIGHEDOC, 0);
 | 
			
		||||
 | 
			
		||||
			//mostra un messaggio di errore se non riesce ad aprire  il file richiesto; nota la conversione dei tipi che
 | 
			
		||||
			//é da eseguire quando devo passare una TString ad un %s
 | 
			
		||||
			if(load_ini())
 | 
			
		||||
				output_doc(outdir);
 | 
			
		||||
			else
 | 
			
		||||
			{
 | 
			
		||||
				error_box(TR("Impossibile aprire il file '%s'"), (const char*)_ini_name);
 | 
			
		||||
				return;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//////  Esecuzione del programma  ///////////
 | 
			
		||||
 | 
			
		||||
int lv4800(int argc, char* argv[])
 | 
			
		||||
{
 | 
			
		||||
  TSpedisci_bolla app;
 | 
			
		||||
  app.run(argc,argv,"Esporta Bolle");
 | 
			
		||||
  return 0;
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user