Patch level : 12.00 1286
Files correlati : sc0.exe Commento : Programma di esportazione partite
This commit is contained in:
parent
9bf716335f
commit
ebfb6b49fc
@ -10,6 +10,7 @@ int main(int argc, char** argv)
|
||||
case 1: sc0200(argc,argv); break; // Gestione partite
|
||||
case 2: sc0300(argc, argv); break; // Pareggio partite
|
||||
case 3: sc0400(argc, argv); break; // Controllo partite
|
||||
case 4: sc0500(argc, argv); break; // Controllo partite
|
||||
default: sc0100(argc,argv); break; // Gestione classica
|
||||
}
|
||||
return 0;
|
||||
|
@ -2,3 +2,4 @@ int sc0100(int argc, char* argv[]);
|
||||
int sc0200(int argc, char* argv[]);
|
||||
int sc0300(int argc, char* argv[]);
|
||||
int sc0400(int argc, char* argv[]);
|
||||
int sc0500(int argc, char* argv[]);
|
||||
|
145
src/sc/sc0500.cpp
Normal file
145
src/sc/sc0500.cpp
Normal file
@ -0,0 +1,145 @@
|
||||
#include <applicat.h>
|
||||
#include <mask.h>
|
||||
#include <progind.h>
|
||||
#include <textset.h>
|
||||
#include <relation.h>
|
||||
#include <reputils.h>
|
||||
#include "../cg/cgsaldac.h"
|
||||
#include <nditte.h>
|
||||
#include <partite.h>
|
||||
#include "sc0500.h"
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TEsportazione_partite
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
class TEsportazione_partite : public TSkeleton_application
|
||||
{
|
||||
protected:
|
||||
virtual void main_loop();
|
||||
};
|
||||
|
||||
void TEsportazione_partite::main_loop()
|
||||
{
|
||||
TMask m("sc0500a");
|
||||
|
||||
while (m.run() == K_ENTER)
|
||||
{
|
||||
TCursor part(new TRelation(LF_PARTITE));
|
||||
TString4 last_tipocf;
|
||||
int last_gruppo = -1;
|
||||
int last_conto = -1;
|
||||
long last_sottoconto = -1L;
|
||||
int last_anno = -1;
|
||||
TString last_npart;
|
||||
const long items = part.items();
|
||||
TCSV_recordset out("CSV(\";\")");
|
||||
TDate al = m.get_date(F_DATE);
|
||||
TFilename file = m.get(F_DIR);
|
||||
TProgress_monitor p(items, "Controllo partite");
|
||||
|
||||
file.add(m.get(F_FILE));
|
||||
file.ext("csv");
|
||||
out.create_column("GRUPPO", _intfld);
|
||||
out.create_column("CONTO", _intfld);
|
||||
out.create_column("SOTTOCONTO", _longfld);
|
||||
out.create_column("NUMDOC", _alfafld);
|
||||
out.create_column("DATADOC", _datefld);
|
||||
out.create_column("SALDO", _realfld);
|
||||
out.create_column("SEZIONE", _alfafld);
|
||||
out.create_column("DATASCAD", _datefld);
|
||||
part.freeze();
|
||||
for (part = 0L; p.addstatus() && part.pos() < items; ++part)
|
||||
{
|
||||
const TString4 tipocf = part.curr().get(PART_TIPOCF);
|
||||
const int gruppo = part.curr().get_int(PART_GRUPPO);
|
||||
const int conto = part.curr().get_int(PART_CONTO);
|
||||
const long sottoconto = part.curr().get_long(PART_SOTTOCONTO);
|
||||
const TString npart = part.curr().get(PART_NUMPART);
|
||||
const int anno = part.curr().get_int(PART_ANNO);
|
||||
|
||||
if ((tipocf != last_tipocf) || (gruppo != last_gruppo) ||
|
||||
(conto != last_conto) || (sottoconto != last_sottoconto) ||
|
||||
(npart != last_npart) || (anno != last_anno))
|
||||
{
|
||||
last_tipocf = tipocf;
|
||||
last_gruppo = gruppo;
|
||||
last_conto = conto;
|
||||
last_sottoconto = sottoconto;
|
||||
last_npart = npart;
|
||||
last_anno = anno;
|
||||
|
||||
TPartita p(part.curr());
|
||||
TImporto saldo = p.calcola_saldo_al(false, al);
|
||||
|
||||
if (!saldo.is_zero())
|
||||
{
|
||||
int row = p.prima_fattura();
|
||||
|
||||
if (row <= 0)
|
||||
row = p.first();
|
||||
|
||||
TRiga_partite & riga = p.riga(row);
|
||||
int gruppo = riga.get_int(PART_GRUPPO);
|
||||
|
||||
out.new_rec();
|
||||
if (gruppo == 0)
|
||||
gruppo = riga.get_int(PART_GRUPPOCL);
|
||||
out.set("GRUPPO", gruppo);
|
||||
|
||||
int conto = riga.get_int(PART_CONTO);
|
||||
|
||||
if (conto == 0)
|
||||
conto = riga.get_int(PART_CONTOCL);
|
||||
out.set("CONTO", conto);
|
||||
out.set("SOTTOCONTO", riga.get_long(PART_SOTTOCONTO));
|
||||
out.set("NUMDOC", riga.get(PART_NUMDOC));
|
||||
out.set("DATADOC", riga.get(PART_DATADOC));
|
||||
|
||||
TString sezione;
|
||||
|
||||
out.set("SALDO", saldo.valore().stringa());
|
||||
sezione << saldo.sezione();
|
||||
out.set("SEZIONE", sezione);
|
||||
|
||||
TDate data = botime;
|
||||
|
||||
for (int r = row; r <= p.last(); r = p.succ(r))
|
||||
{
|
||||
TRiga_partite & riga = p.riga(r);
|
||||
|
||||
if (riga.is_fattura())
|
||||
{
|
||||
int nrate = riga.rate();
|
||||
for (int s = 1; s <= nrate; s++)
|
||||
{
|
||||
TRiga_scadenze & scad = riga.rata(s);
|
||||
|
||||
if (!scad.residuo(false).is_zero())
|
||||
{
|
||||
TDate data_scad = scad.get_date(SCAD_DATASCAD);
|
||||
|
||||
if (data_scad <= al && data_scad > data)
|
||||
data = data_scad;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
out.set("DATASCAD", data.stringa());
|
||||
}
|
||||
}
|
||||
}
|
||||
out.save_as(file, fmt_csv);
|
||||
}
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// Main
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
int sc0500(int argc, char* argv[])
|
||||
{
|
||||
TEsportazione_partite pp;
|
||||
pp.run(argc, argv, TR("Esportazione Partite"));
|
||||
return 0;
|
||||
}
|
5
src/sc/sc0500.h
Normal file
5
src/sc/sc0500.h
Normal file
@ -0,0 +1,5 @@
|
||||
|
||||
#define F_DATE 101
|
||||
#define F_DIR 102
|
||||
#define F_FILE 103
|
||||
|
35
src/sc/sc0500a.uml
Normal file
35
src/sc/sc0500a.uml
Normal file
@ -0,0 +1,35 @@
|
||||
#include "sc0500.h"
|
||||
|
||||
TOOLBAR "" 0 0 0 2
|
||||
|
||||
#include <stdbar.h>
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Esportazione partite" 0 0 0 0
|
||||
|
||||
DATE F_DATE
|
||||
BEGIN
|
||||
PROMPT 2 2 "Saldo dele partite sino al "
|
||||
HELP "Data Sino a cui eliminare le partite"
|
||||
CHECKTYPE REQUIRED
|
||||
WARNING "Si deve specificare la data limite per le partite"
|
||||
FLAGS "A"
|
||||
END
|
||||
|
||||
STRING F_DIR 50
|
||||
BEGIN
|
||||
PROMPT 2 4 "Cartella "
|
||||
WARNING "Manca la cartella di output"
|
||||
CHECKTYPE REQUIRED
|
||||
DSELECT
|
||||
END
|
||||
|
||||
STRING F_FILE 20
|
||||
BEGIN
|
||||
PROMPT 2 6 "File "
|
||||
WARNING "Manca il file di output"
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
ENDMASK
|
@ -25,4 +25,5 @@ Item_04 = "Abbuoni automatici", "sc1 -3", "F"
|
||||
Item_05 = "Controllo pagamenti doppi", "sc1 -4", "F"
|
||||
Item_06 = "Controllo partite chiuse", "sc1 -5", "F"
|
||||
Item_07 = "Controllo partite errate", "sc0 -3", "F"
|
||||
Item_08 = "ESportazione partite", "sc0 -4", "F"
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user