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