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:
alex 2010-12-14 14:23:21 +00:00
parent 6f58035200
commit 8b494ba712
3 changed files with 116 additions and 0 deletions

View File

@ -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;

View File

@ -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
View 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;
}