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 1: sc0200(argc,argv); break; // Gestione partite
|
||||||
case 2: sc0300(argc, argv); break; // Pareggio partite
|
case 2: sc0300(argc, argv); break; // Pareggio partite
|
||||||
case 3: sc0400(argc, argv); break; // Controllo partite
|
case 3: sc0400(argc, argv); break; // Controllo partite
|
||||||
|
case 4: sc0500(argc, argv); break; // Controllo partite
|
||||||
default: sc0100(argc,argv); break; // Gestione classica
|
default: sc0100(argc,argv); break; // Gestione classica
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -2,3 +2,4 @@ int sc0100(int argc, char* argv[]);
|
|||||||
int sc0200(int argc, char* argv[]);
|
int sc0200(int argc, char* argv[]);
|
||||||
int sc0300(int argc, char* argv[]);
|
int sc0300(int argc, char* argv[]);
|
||||||
int sc0400(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_05 = "Controllo pagamenti doppi", "sc1 -4", "F"
|
||||||
Item_06 = "Controllo partite chiuse", "sc1 -5", "F"
|
Item_06 = "Controllo partite chiuse", "sc1 -5", "F"
|
||||||
Item_07 = "Controllo partite errate", "sc0 -3", "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