Embrioni disseccati e scheletrici di sc2, stampa speranzosa degli
estratti conto git-svn-id: svn://10.65.10.50/trunk@2093 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
80ecf677c5
commit
6f39d41a3e
44
sc/sc0.cpp
44
sc/sc0.cpp
@ -1,22 +1,22 @@
|
|||||||
#include <xvt.h>
|
#include <xvt.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
#include <checks.h>
|
#include <checks.h>
|
||||||
|
|
||||||
#include "sc0.h"
|
#include "sc0.h"
|
||||||
|
|
||||||
#define usage "Errore - uso : sc0 -{0}"
|
#define usage "Errore - uso : sc0 -{0}"
|
||||||
|
|
||||||
int main(int argc,char** argv)
|
int main(int argc,char** argv)
|
||||||
{
|
{
|
||||||
const int n = (argc > 1) ? (atoi(&argv[1][1])) : 0;
|
const int n = (argc > 1) ? (atoi(&argv[1][1])) : 0;
|
||||||
|
|
||||||
switch(n)
|
switch(n)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
sc0100(argc,argv); break;
|
sc0100(argc,argv); break;
|
||||||
default:
|
default:
|
||||||
error_box(usage);
|
error_box(usage);
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
108
sc/sc0100.cpp
108
sc/sc0100.cpp
@ -1,55 +1,55 @@
|
|||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
|
||||||
#include <mask.h>
|
#include <mask.h>
|
||||||
#include <urldefid.h>
|
#include <urldefid.h>
|
||||||
|
|
||||||
#include "sc0100.h"
|
#include "sc0100.h"
|
||||||
|
|
||||||
bool TSaldaconto_app::create()
|
bool TSaldaconto_app::create()
|
||||||
{
|
{
|
||||||
open_files(LF_PARTITE, LF_SCADENZE, LF_PAGSCA, 0);
|
open_files(LF_PARTITE, LF_SCADENZE, LF_PAGSCA, 0);
|
||||||
_msk = new TMask("sc0100a");
|
_msk = new TMask("sc0100a");
|
||||||
dispatch_e_menu(MENU_ITEM(1));
|
dispatch_e_menu(MENU_ITEM(1));
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TSaldaconto_app::destroy()
|
bool TSaldaconto_app::destroy()
|
||||||
{
|
{
|
||||||
delete _msk;
|
delete _msk;
|
||||||
close_files();
|
close_files();
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TSaldaconto_app::open_files(int logicnum, ...)
|
void TSaldaconto_app::open_files(int logicnum, ...)
|
||||||
{
|
{
|
||||||
va_list marker;
|
va_list marker;
|
||||||
va_start(marker, logicnum);
|
va_start(marker, logicnum);
|
||||||
while (logicnum > 0)
|
while (logicnum > 0)
|
||||||
{
|
{
|
||||||
CHECKD(_file.objptr(logicnum) == NULL, "File gia' aperto: ", logicnum);
|
CHECKD(_file.objptr(logicnum) == NULL, "File gia' aperto: ", logicnum);
|
||||||
_file.add(new TLocalisamfile(logicnum), logicnum);
|
_file.add(new TLocalisamfile(logicnum), logicnum);
|
||||||
logicnum = va_arg(marker, int);
|
logicnum = va_arg(marker, int);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool TSaldaconto_app::menu(MENU_TAG)
|
bool TSaldaconto_app::menu(MENU_TAG)
|
||||||
{
|
{
|
||||||
KEY k;
|
KEY k;
|
||||||
TMask& m = curr_mask();
|
TMask& m = curr_mask();
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
k = m.run();
|
k = m.run();
|
||||||
if (k == K_ENTER)
|
if (k == K_ENTER)
|
||||||
edit_partite(m);
|
edit_partite(m);
|
||||||
} while (k != K_QUIT);
|
} while (k != K_QUIT);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int sc0100(int argc, char* argv[])
|
int sc0100(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
TSaldaconto_app app;
|
TSaldaconto_app app;
|
||||||
app.run(argc, argv, "Gestione Saldaconto");
|
app.run(argc, argv, "Gestione Saldaconto");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
88
sc/sc0100.h
88
sc/sc0100.h
@ -1,44 +1,44 @@
|
|||||||
#ifndef __SC100_H
|
#ifndef __SC100_H
|
||||||
#define __SC100_H
|
#define __SC100_H
|
||||||
|
|
||||||
#ifndef __APPLICAT_H
|
#ifndef __APPLICAT_H
|
||||||
#include <applicat.h>
|
#include <applicat.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef __SALDACON_H
|
#ifndef __SALDACON_H
|
||||||
#include "../cg/saldacon.h"
|
#include "../cg/saldacon.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef __MASK_H
|
#ifndef __MASK_H
|
||||||
class TMask;
|
class TMask;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
class TSaldaconto_app : public TApplication
|
class TSaldaconto_app : public TApplication
|
||||||
{
|
{
|
||||||
TMask* _msk;
|
TMask* _msk;
|
||||||
TArray _file;
|
TArray _file;
|
||||||
|
|
||||||
TPartite_array _partite;
|
TPartite_array _partite;
|
||||||
|
|
||||||
protected: // TApplication
|
protected: // TApplication
|
||||||
virtual bool create();
|
virtual bool create();
|
||||||
virtual bool destroy();
|
virtual bool destroy();
|
||||||
virtual bool menu(MENU_TAG tag);
|
virtual bool menu(MENU_TAG tag);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void open_files(int logicnum, ...);
|
void open_files(int logicnum, ...);
|
||||||
void close_files() { _file.destroy(); }
|
void close_files() { _file.destroy(); }
|
||||||
|
|
||||||
void edit_partite(const TMask& m);
|
void edit_partite(const TMask& m);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
TMask& curr_mask() { return *_msk; }
|
TMask& curr_mask() { return *_msk; }
|
||||||
TPartite_array& partite() { return _partite; }
|
TPartite_array& partite() { return _partite; }
|
||||||
|
|
||||||
TSaldaconto_app() : _file(32) {}
|
TSaldaconto_app() : _file(32) {}
|
||||||
virtual ~TSaldaconto_app() {}
|
virtual ~TSaldaconto_app() {}
|
||||||
};
|
};
|
||||||
|
|
||||||
inline TSaldaconto_app& app() { return (TSaldaconto_app&)main_app(); }
|
inline TSaldaconto_app& app() { return (TSaldaconto_app&)main_app(); }
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
24
sc/sc0100a.h
24
sc/sc0100a.h
@ -1,13 +1,13 @@
|
|||||||
#define F_TIPO 101
|
#define F_TIPO 101
|
||||||
#define F_GRUPPO 102
|
#define F_GRUPPO 102
|
||||||
#define F_CONTO 103
|
#define F_CONTO 103
|
||||||
#define F_SOTTOCONTO 104
|
#define F_SOTTOCONTO 104
|
||||||
#define F_CLIENTE 204
|
#define F_CLIENTE 204
|
||||||
#define F_FORNITORE 304
|
#define F_FORNITORE 304
|
||||||
#define F_DESCR 105
|
#define F_DESCR 105
|
||||||
#define F_DESCRCLI 205
|
#define F_DESCRCLI 205
|
||||||
#define F_DESCRFOR 305
|
#define F_DESCRFOR 305
|
||||||
#define F_FATPAG 106
|
#define F_FATPAG 106
|
||||||
#define F_ANNO 107
|
#define F_ANNO 107
|
||||||
#define F_NUMERO 108
|
#define F_NUMERO 108
|
||||||
#define F_RIGA 109
|
#define F_RIGA 109
|
316
sc/sc0100a.uml
316
sc/sc0100a.uml
@ -1,158 +1,158 @@
|
|||||||
#include "sc0100a.h"
|
#include "sc0100a.h"
|
||||||
|
|
||||||
TOOLBAR "" 0 20 0 2
|
TOOLBAR "" 0 20 0 2
|
||||||
|
|
||||||
BUTTON DLG_OK 10 2
|
BUTTON DLG_OK 10 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT -12 -1 ""
|
PROMPT -12 -1 ""
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON DLG_QUIT 10 2
|
BUTTON DLG_QUIT 10 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT -22 -1 ""
|
PROMPT -22 -1 ""
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
PAGE "Selezione partite" -1 -1 77 20
|
PAGE "Selezione partite" -1 -1 77 20
|
||||||
|
|
||||||
LIST F_TIPO 1 12
|
LIST F_TIPO 1 12
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 1 "Tipo conto "
|
PROMPT 1 1 "Tipo conto "
|
||||||
ITEM " |Conto"
|
ITEM " |Conto"
|
||||||
MESSAGE SHOW,1@|RESET,1@|HIDE,2@|HIDE,3@
|
MESSAGE SHOW,1@|RESET,1@|HIDE,2@|HIDE,3@
|
||||||
ITEM "C|Cliente"
|
ITEM "C|Cliente"
|
||||||
MESSAGE HIDE,1@|SHOW,2@|RESET,2@|HIDE,3@
|
MESSAGE HIDE,1@|SHOW,2@|RESET,2@|HIDE,3@
|
||||||
ITEM "F|Fornitore"
|
ITEM "F|Fornitore"
|
||||||
MESSAGE HIDE,1@|HIDE,2@|SHOW,3@|RESET,3@
|
MESSAGE HIDE,1@|HIDE,2@|SHOW,3@|RESET,3@
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_GRUPPO 3
|
NUMBER F_GRUPPO 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 26 1 "Gruppo "
|
PROMPT 26 1 "Gruppo "
|
||||||
USE LF_PCON SELECT CONTO==""
|
USE LF_PCON SELECT CONTO==""
|
||||||
INPUT GRUPPO F_GRUPPO
|
INPUT GRUPPO F_GRUPPO
|
||||||
DISPLAY "Gruppo" GRUPPO
|
DISPLAY "Gruppo" GRUPPO
|
||||||
DISPLAY "Descrizione@50" DESCR
|
DISPLAY "Descrizione@50" DESCR
|
||||||
OUTPUT F_GRUPPO GRUPPO
|
OUTPUT F_GRUPPO GRUPPO
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
ADD RUN cg0 -0
|
ADD RUN cg0 -0
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_CONTO 3
|
NUMBER F_CONTO 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 40 1 "Conto "
|
PROMPT 40 1 "Conto "
|
||||||
USE LF_PCON SELECT (CONTO!="")&&(SOTTOCONTO="")
|
USE LF_PCON SELECT (CONTO!="")&&(SOTTOCONTO="")
|
||||||
INPUT GRUPPO F_GRUPPO
|
INPUT GRUPPO F_GRUPPO
|
||||||
INPUT CONTO F_CONTO
|
INPUT CONTO F_CONTO
|
||||||
DISPLAY "Gruppo" GRUPPO
|
DISPLAY "Gruppo" GRUPPO
|
||||||
DISPLAY "Conto" CONTO
|
DISPLAY "Conto" CONTO
|
||||||
DISPLAY "Descrizione@50" DESCR
|
DISPLAY "Descrizione@50" DESCR
|
||||||
DISPLAY "Tipo" TMCF
|
DISPLAY "Tipo" TMCF
|
||||||
OUTPUT F_TIPO TMCF
|
OUTPUT F_TIPO TMCF
|
||||||
OUTPUT F_GRUPPO GRUPPO
|
OUTPUT F_GRUPPO GRUPPO
|
||||||
OUTPUT F_CONTO CONTO
|
OUTPUT F_CONTO CONTO
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
ADD RUN cg0 -0
|
ADD RUN cg0 -0
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_SOTTOCONTO 6
|
NUMBER F_SOTTOCONTO 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 54 1 "Sottoconto "
|
PROMPT 54 1 "Sottoconto "
|
||||||
USE LF_PCON SELECT SOTTOCONTO!=""
|
USE LF_PCON SELECT SOTTOCONTO!=""
|
||||||
COPY INPUT F_CONTO
|
COPY INPUT F_CONTO
|
||||||
INPUT SOTTOCONTO F_SOTTOCONTO
|
INPUT SOTTOCONTO F_SOTTOCONTO
|
||||||
DISPLAY "Gruppo" GRUPPO
|
DISPLAY "Gruppo" GRUPPO
|
||||||
DISPLAY "Conto" CONTO
|
DISPLAY "Conto" CONTO
|
||||||
DISPLAY "Sottoconto" SOTTOCONTO
|
DISPLAY "Sottoconto" SOTTOCONTO
|
||||||
DISPLAY "Descrizione@50" DESCR
|
DISPLAY "Descrizione@50" DESCR
|
||||||
OUTPUT F_GRUPPO GRUPPO
|
OUTPUT F_GRUPPO GRUPPO
|
||||||
OUTPUT F_CONTO CONTO
|
OUTPUT F_CONTO CONTO
|
||||||
OUTPUT F_SOTTOCONTO SOTTOCONTO
|
OUTPUT F_SOTTOCONTO SOTTOCONTO
|
||||||
OUTPUT F_DESCR DESCR
|
OUTPUT F_DESCR DESCR
|
||||||
ADD RUN cg0 -0
|
ADD RUN cg0 -0
|
||||||
GROUP 1
|
GROUP 1
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_CLIENTE 6
|
NUMBER F_CLIENTE 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 54 1 "Cliente "
|
PROMPT 54 1 "Cliente "
|
||||||
USE LF_CLIFO
|
USE LF_CLIFO
|
||||||
INPUT TIPOCF "C"
|
INPUT TIPOCF "C"
|
||||||
INPUT CODCF F_CLIENTE
|
INPUT CODCF F_CLIENTE
|
||||||
DISPLAY "Cliente" CODCF
|
DISPLAY "Cliente" CODCF
|
||||||
DISPLAY "Descrizione@50" RAGSOC
|
DISPLAY "Descrizione@50" RAGSOC
|
||||||
// OUTPUT F_GRUPPO GRUPPO
|
// OUTPUT F_GRUPPO GRUPPO
|
||||||
// OUTPUT F_CONTO CONTO
|
// OUTPUT F_CONTO CONTO
|
||||||
OUTPUT F_CLIENTE CODCF
|
OUTPUT F_CLIENTE CODCF
|
||||||
OUTPUT F_DESCRCLI RAGSOC
|
OUTPUT F_DESCRCLI RAGSOC
|
||||||
ADD RUN cg0 -1 C
|
ADD RUN cg0 -1 C
|
||||||
GROUP 2
|
GROUP 2
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
MESSAGE COPY,F_SOTTOCONTO
|
MESSAGE COPY,F_SOTTOCONTO
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_FORNITORE 6
|
NUMBER F_FORNITORE 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 54 1 "Fornitore "
|
PROMPT 54 1 "Fornitore "
|
||||||
USE LF_CLIFO
|
USE LF_CLIFO
|
||||||
INPUT TIPOCF "F"
|
INPUT TIPOCF "F"
|
||||||
INPUT CODCF F_FORNITORE
|
INPUT CODCF F_FORNITORE
|
||||||
DISPLAY "Fornitore" CODCF
|
DISPLAY "Fornitore" CODCF
|
||||||
DISPLAY "Descrizione@50" RAGSOC
|
DISPLAY "Descrizione@50" RAGSOC
|
||||||
// OUTPUT F_GRUPPO GRUPPO
|
// OUTPUT F_GRUPPO GRUPPO
|
||||||
// OUTPUT F_CONTO CONTO
|
// OUTPUT F_CONTO CONTO
|
||||||
OUTPUT F_FORNITORE CODCF
|
OUTPUT F_FORNITORE CODCF
|
||||||
OUTPUT F_DESCRFOR RAGSOC
|
OUTPUT F_DESCRFOR RAGSOC
|
||||||
ADD RUN cg0 -1 F
|
ADD RUN cg0 -1 F
|
||||||
GROUP 3
|
GROUP 3
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
MESSAGE COPY,F_SOTTOCONTO
|
MESSAGE COPY,F_SOTTOCONTO
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_DESCR 50 58
|
STRING F_DESCR 50 58
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 2 "Descrizione "
|
PROMPT 1 2 "Descrizione "
|
||||||
USE LF_PCON KEY 2
|
USE LF_PCON KEY 2
|
||||||
INPUT DESCR F_DESCR
|
INPUT DESCR F_DESCR
|
||||||
DISPLAY "Descrizione@50" DESCR
|
DISPLAY "Descrizione@50" DESCR
|
||||||
DISPLAY "Gruppo" GRUPPO
|
DISPLAY "Gruppo" GRUPPO
|
||||||
DISPLAY "Conto" CONTO
|
DISPLAY "Conto" CONTO
|
||||||
DISPLAY "Sottoconto" SOTTOCONTO
|
DISPLAY "Sottoconto" SOTTOCONTO
|
||||||
COPY OUTPUT F_SOTTOCONTO
|
COPY OUTPUT F_SOTTOCONTO
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
GROUP 1
|
GROUP 1
|
||||||
ADD RUN cg0 -0
|
ADD RUN cg0 -0
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_DESCRCLI 50 58
|
STRING F_DESCRCLI 50 58
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 2 "Descrizione "
|
PROMPT 1 2 "Descrizione "
|
||||||
USE LF_CLIFO KEY 2
|
USE LF_CLIFO KEY 2
|
||||||
INPUT TIPOCF "C"
|
INPUT TIPOCF "C"
|
||||||
INPUT RAGSOC F_DESCRCLI
|
INPUT RAGSOC F_DESCRCLI
|
||||||
DISPLAY "Gruppo" GRUPPO
|
DISPLAY "Gruppo" GRUPPO
|
||||||
DISPLAY "Conto" CONTO
|
DISPLAY "Conto" CONTO
|
||||||
DISPLAY "Sottoconto" CODCF
|
DISPLAY "Sottoconto" CODCF
|
||||||
DISPLAY "Ragione sociale@50" RAGSOC
|
DISPLAY "Ragione sociale@50" RAGSOC
|
||||||
COPY OUTPUT F_CLIENTE
|
COPY OUTPUT F_CLIENTE
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
GROUP 2
|
GROUP 2
|
||||||
ADD RUN cg0 -1
|
ADD RUN cg0 -1
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_DESCRFOR 50 58
|
STRING F_DESCRFOR 50 58
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 2 "Descrizione "
|
PROMPT 1 2 "Descrizione "
|
||||||
USE LF_PCON KEY 2
|
USE LF_PCON KEY 2
|
||||||
INPUT TIPOCF "F"
|
INPUT TIPOCF "F"
|
||||||
INPUT RAGSOC F_DESCRFOR
|
INPUT RAGSOC F_DESCRFOR
|
||||||
COPY DISPLAY F_DESCRCLI
|
COPY DISPLAY F_DESCRCLI
|
||||||
COPY OUTPUT F_FORNITORE
|
COPY OUTPUT F_FORNITORE
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
GROUP 3
|
GROUP 3
|
||||||
ADD RUN cg0 -1
|
ADD RUN cg0 -1
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDMASK
|
ENDMASK
|
||||||
|
@ -1,21 +1,21 @@
|
|||||||
#include "../cg/cg21sld.h"
|
#include "../cg/cg21sld.h"
|
||||||
|
|
||||||
TOOLBAR "" 0 20 0 2
|
TOOLBAR "" 0 20 0 2
|
||||||
|
|
||||||
BUTTON DLG_OK 10 2
|
BUTTON DLG_OK 10 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT -12 -1 ""
|
PROMPT -12 -1 ""
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON DLG_CANCEL 10 2
|
BUTTON DLG_CANCEL 10 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT -22 -1 ""
|
PROMPT -22 -1 ""
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
#include "../cg/cg21sld.uml"
|
#include "../cg/cg21sld.uml"
|
||||||
|
|
||||||
ENDMASK
|
ENDMASK
|
||||||
|
|
||||||
#include "../cg/cg21rata.uml"
|
#include "../cg/cg21rata.uml"
|
||||||
|
834
sc/sc0101.cpp
834
sc/sc0101.cpp
@ -1,417 +1,417 @@
|
|||||||
#include "../cg/conto.h"
|
#include "../cg/conto.h"
|
||||||
#include "../cg/pagament.h"
|
#include "../cg/pagament.h"
|
||||||
#include "../cg/saldacon.h"
|
#include "../cg/saldacon.h"
|
||||||
#include "../cg/cg21sld.h"
|
#include "../cg/cg21sld.h"
|
||||||
|
|
||||||
#include "sc0100.h"
|
#include "sc0100.h"
|
||||||
#include "sc0100a.h"
|
#include "sc0100a.h"
|
||||||
|
|
||||||
#define __EXTRA__
|
#define __EXTRA__
|
||||||
#include "../cg/cg2105.cpp"
|
#include "../cg/cg2105.cpp"
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
// Maschera gestione rate
|
// Maschera gestione rate
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
class TFattura_mask : public TMask
|
class TFattura_mask : public TMask
|
||||||
{
|
{
|
||||||
TRiga_partite& _fattura;
|
TRiga_partite& _fattura;
|
||||||
TPagamento* _pag;
|
TPagamento* _pag;
|
||||||
TString_array _pag_rows;
|
TString_array _pag_rows;
|
||||||
|
|
||||||
protected: // TMask
|
protected: // TMask
|
||||||
virtual void start_run();
|
virtual void start_run();
|
||||||
virtual bool stop_run(KEY k);
|
virtual bool stop_run(KEY k);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
static bool pag_notify(TSheet_field& ps, int r, KEY k);
|
static bool pag_notify(TSheet_field& ps, int r, KEY k);
|
||||||
static bool pag_handler(TMask_field& f, KEY key);
|
static bool pag_handler(TMask_field& f, KEY key);
|
||||||
static bool reset_handler(TMask_field& f, KEY key);
|
static bool reset_handler(TMask_field& f, KEY key);
|
||||||
static bool recalc_handler(TMask_field& f, KEY key);
|
static bool recalc_handler(TMask_field& f, KEY key);
|
||||||
static bool nrate_handler(TMask_field& f, KEY key);
|
static bool nrate_handler(TMask_field& f, KEY key);
|
||||||
static bool codcab_handler(TMask_field& f, KEY key);
|
static bool codcab_handler(TMask_field& f, KEY key);
|
||||||
|
|
||||||
TSheet_field& pag_sheet() const { return (TSheet_field&)field(FS_RATESHEET); }
|
TSheet_field& pag_sheet() const { return (TSheet_field&)field(FS_RATESHEET); }
|
||||||
|
|
||||||
void read_scadenze();
|
void read_scadenze();
|
||||||
void write_scadenze() const;
|
void write_scadenze() const;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
TFattura_mask(TRiga_partite& fattura, const TString& codpag);
|
TFattura_mask(TRiga_partite& fattura, const TString& codpag);
|
||||||
virtual ~TFattura_mask() {}
|
virtual ~TFattura_mask() {}
|
||||||
};
|
};
|
||||||
|
|
||||||
TFattura_mask::TFattura_mask(TRiga_partite& fattura, const TString& codpag)
|
TFattura_mask::TFattura_mask(TRiga_partite& fattura, const TString& codpag)
|
||||||
: TMask("sc0100b"), _fattura(fattura), _pag(NULL)
|
: TMask("sc0100b"), _fattura(fattura), _pag(NULL)
|
||||||
{
|
{
|
||||||
set_handler(FS_RESET, reset_handler);
|
set_handler(FS_RESET, reset_handler);
|
||||||
set_handler(FS_RECALC, recalc_handler);
|
set_handler(FS_RECALC, recalc_handler);
|
||||||
set_handler(FS_NRATE, nrate_handler);
|
set_handler(FS_NRATE, nrate_handler);
|
||||||
set_handler(FS_NSCAB, codcab_handler);
|
set_handler(FS_NSCAB, codcab_handler);
|
||||||
set_handler(FS_VSCAB, codcab_handler);
|
set_handler(FS_VSCAB, codcab_handler);
|
||||||
|
|
||||||
pag_sheet().set_notify(pag_notify);
|
pag_sheet().set_notify(pag_notify);
|
||||||
pag_sheet().set_handler(pag_handler);
|
pag_sheet().set_handler(pag_handler);
|
||||||
|
|
||||||
const TRiga_partite& partita = _fattura;
|
const TRiga_partite& partita = _fattura;
|
||||||
const TString16 datadoc = partita.get(PART_DATADOC);
|
const TString16 datadoc = partita.get(PART_DATADOC);
|
||||||
_pag = new TPagamento(codpag, datadoc);
|
_pag = new TPagamento(codpag, datadoc);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TFattura_mask::start_run()
|
void TFattura_mask::start_run()
|
||||||
{
|
{
|
||||||
read_scadenze();
|
read_scadenze();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TFattura_mask::stop_run(KEY k)
|
bool TFattura_mask::stop_run(KEY k)
|
||||||
{
|
{
|
||||||
const bool ok = TMask::stop_run(k);
|
const bool ok = TMask::stop_run(k);
|
||||||
if (ok && k == K_ENTER)
|
if (ok && k == K_ENTER)
|
||||||
write_scadenze();
|
write_scadenze();
|
||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TFattura_mask::pag_notify(TSheet_field& ps, int r, KEY k)
|
bool TFattura_mask::pag_notify(TSheet_field& ps, int r, KEY k)
|
||||||
{
|
{
|
||||||
if (k == K_INS || k == K_DEL)
|
if (k == K_INS || k == K_DEL)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
if (k != K_ENTER)
|
if (k != K_ENTER)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
TFattura_mask& fm = (TFattura_mask&)ps.mask();
|
TFattura_mask& fm = (TFattura_mask&)ps.mask();
|
||||||
TPagamento& pag = *fm._pag;
|
TPagamento& pag = *fm._pag;
|
||||||
TString_array& rws = fm._pag_rows;
|
TString_array& rws = fm._pag_rows;
|
||||||
|
|
||||||
const int rdiff = fm.get_int(FS_RDIFFER);
|
const int rdiff = fm.get_int(FS_RDIFFER);
|
||||||
const bool in_valuta = pag.in_valuta();
|
const bool in_valuta = pag.in_valuta();
|
||||||
const int impos = in_valuta ? 2 : 1;
|
const int impos = in_valuta ? 2 : 1;
|
||||||
|
|
||||||
bool doit = TRUE, m_imp = FALSE, m_perc = FALSE, m_pag = FALSE;
|
bool doit = TRUE, m_imp = FALSE, m_perc = FALSE, m_pag = FALSE;
|
||||||
bool m_scad = FALSE, m_tipo = FALSE, mod = FALSE;
|
bool m_scad = FALSE, m_tipo = FALSE, mod = FALSE;
|
||||||
word ahiahi = P_OK;
|
word ahiahi = P_OK;
|
||||||
|
|
||||||
const bool recalc = fm.get_bool(FS_RECALC);
|
const bool recalc = fm.get_bool(FS_RECALC);
|
||||||
const bool mcomm = fm.get_bool(FS_MCOMM);
|
const bool mcomm = fm.get_bool(FS_MCOMM);
|
||||||
|
|
||||||
TToken_string ns = ps.row(r);
|
TToken_string ns = ps.row(r);
|
||||||
TToken_string ts = rws.row(r);
|
TToken_string ts = rws.row(r);
|
||||||
|
|
||||||
const TString news = ns.get(0); // Data scadenza
|
const TString news = ns.get(0); // Data scadenza
|
||||||
const TString newi = ns.get(impos); // Imponibile (lire o valuta)
|
const TString newi = ns.get(impos); // Imponibile (lire o valuta)
|
||||||
const TString newp = ns.get(3); // Percentuale
|
const TString newp = ns.get(3); // Percentuale
|
||||||
const TString newt = ns.get(4); // Tipo pagamento
|
const TString newt = ns.get(4); // Tipo pagamento
|
||||||
|
|
||||||
// qui viene il bello, si fa per dire
|
// qui viene il bello, si fa per dire
|
||||||
if (news != ts.get(0)) // modificata data scadenza
|
if (news != ts.get(0)) // modificata data scadenza
|
||||||
mod = m_scad = TRUE;
|
mod = m_scad = TRUE;
|
||||||
if (newp != ts.get(3)) // modificata percentuale
|
if (newp != ts.get(3)) // modificata percentuale
|
||||||
mod = m_perc = TRUE;
|
mod = m_perc = TRUE;
|
||||||
if (newi != ts.get(impos)) // modificato importo
|
if (newi != ts.get(impos)) // modificato importo
|
||||||
{
|
{
|
||||||
// se si modifica la percentuale l'importo non viene cagato
|
// se si modifica la percentuale l'importo non viene cagato
|
||||||
if ((recalc && !m_perc) || (!recalc))
|
if ((recalc && !m_perc) || (!recalc))
|
||||||
mod = m_imp = TRUE;
|
mod = m_imp = TRUE;
|
||||||
}
|
}
|
||||||
if (newt != ts.get(4)) // modificato tipo pagamento
|
if (newt != ts.get(4)) // modificato tipo pagamento
|
||||||
mod = m_tipo = TRUE;
|
mod = m_tipo = TRUE;
|
||||||
|
|
||||||
|
|
||||||
// settato da recalc_rate se occorre ridefinire lo sheet
|
// settato da recalc_rate se occorre ridefinire lo sheet
|
||||||
// aggiungendo o togliendo righe
|
// aggiungendo o togliendo righe
|
||||||
bool need_recalc = FALSE;
|
bool need_recalc = FALSE;
|
||||||
|
|
||||||
if (mod && recalc)
|
if (mod && recalc)
|
||||||
{
|
{
|
||||||
// ricalcola sheet come sai fare tu
|
// ricalcola sheet come sai fare tu
|
||||||
ahiahi = pag.recalc_rate(r, m_perc,
|
ahiahi = pag.recalc_rate(r, m_perc,
|
||||||
((m_perc || m_imp) ?
|
((m_perc || m_imp) ?
|
||||||
(m_perc ? (const char*)newp : (const char*)newi) :
|
(m_perc ? (const char*)newp : (const char*)newi) :
|
||||||
NULL),
|
NULL),
|
||||||
(m_scad ? (const char*)news : NULL),
|
(m_scad ? (const char*)news : NULL),
|
||||||
(m_tipo ? (const char*)newt : NULL),
|
(m_tipo ? (const char*)newt : NULL),
|
||||||
rdiff, mcomm, need_recalc);
|
rdiff, mcomm, need_recalc);
|
||||||
// see if rdiff changed
|
// see if rdiff changed
|
||||||
fm.set(FS_RDIFFER, pag.rate_differenziate() ? "1" : "2");
|
fm.set(FS_RDIFFER, pag.rate_differenziate() ? "1" : "2");
|
||||||
fm.set(FS_NRATE, pag.n_rate());
|
fm.set(FS_NRATE, pag.n_rate());
|
||||||
}
|
}
|
||||||
if (!recalc)
|
if (!recalc)
|
||||||
{
|
{
|
||||||
ahiahi = P_OK;
|
ahiahi = P_OK;
|
||||||
// put data as they are
|
// put data as they are
|
||||||
TToken_string& trw = pag.rata(r);
|
TToken_string& trw = pag.rata(r);
|
||||||
TToken_string srw = trw;
|
TToken_string srw = trw;
|
||||||
if (m_tipo) trw.add(newt,2);
|
if (m_tipo) trw.add(newt,2);
|
||||||
if (m_scad) trw.add(news,3);
|
if (m_scad) trw.add(news,3);
|
||||||
if (m_imp)
|
if (m_imp)
|
||||||
{
|
{
|
||||||
trw.add(newi,4);
|
trw.add(newi,4);
|
||||||
const real p = pag.recalc_percrata(r);
|
const real p = pag.recalc_percrata(r);
|
||||||
ps.row(r).add(p.string(), 3);
|
ps.row(r).add(p.string(), 3);
|
||||||
rws.row(r) = ps.row(r);
|
rws.row(r) = ps.row(r);
|
||||||
ps.force_update(r);
|
ps.force_update(r);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ahiahi) // any error? Rimetti le righe com'erano prima
|
if (ahiahi) // any error? Rimetti le righe com'erano prima
|
||||||
{
|
{
|
||||||
if (recalc)
|
if (recalc)
|
||||||
{
|
{
|
||||||
beep();
|
beep();
|
||||||
ps.row(r) = rws.row(r);
|
ps.row(r) = rws.row(r);
|
||||||
ps.force_update(r);
|
ps.force_update(r);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (recalc && mod && need_recalc)
|
else if (recalc && mod && need_recalc)
|
||||||
{
|
{
|
||||||
// ridefinisci lo sheet sulla base delle nuove rate
|
// ridefinisci lo sheet sulla base delle nuove rate
|
||||||
pag.set_sheet(ps);
|
pag.set_sheet(ps);
|
||||||
rws = ps.rows_array();
|
rws = ps.rows_array();
|
||||||
}
|
}
|
||||||
|
|
||||||
return doit;
|
return doit;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TFattura_mask::pag_handler(TMask_field& f, KEY key)
|
bool TFattura_mask::pag_handler(TMask_field& f, KEY key)
|
||||||
{
|
{
|
||||||
if (key == K_TAB || key == K_ENTER)
|
if (key == K_TAB || key == K_ENTER)
|
||||||
{
|
{
|
||||||
TFattura_mask& fm = (TFattura_mask&)f.mask();
|
TFattura_mask& fm = (TFattura_mask&)f.mask();
|
||||||
TPagamento& pag = *fm._pag;
|
TPagamento& pag = *fm._pag;
|
||||||
const word err = pag.validate();
|
const word err = pag.validate();
|
||||||
if (err != P_OK)
|
if (err != P_OK)
|
||||||
{
|
{
|
||||||
TString256 s;
|
TString256 s;
|
||||||
pag.strerr(err, s);
|
pag.strerr(err, s);
|
||||||
return error_box(s);
|
return error_box(s);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TFattura_mask::reset_handler(TMask_field& f, KEY key)
|
bool TFattura_mask::reset_handler(TMask_field& f, KEY key)
|
||||||
{
|
{
|
||||||
if (key == K_SPACE)
|
if (key == K_SPACE)
|
||||||
{
|
{
|
||||||
TFattura_mask& fm = (TFattura_mask&)f.mask();
|
TFattura_mask& fm = (TFattura_mask&)f.mask();
|
||||||
if (fm._fattura.rate() == 0)
|
if (fm._fattura.rate() == 0)
|
||||||
fm._pag->read();
|
fm._pag->read();
|
||||||
fm.read_scadenze();
|
fm.read_scadenze();
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TFattura_mask::recalc_handler(TMask_field& f, KEY key)
|
bool TFattura_mask::recalc_handler(TMask_field& f, KEY key)
|
||||||
{
|
{
|
||||||
if (key == K_SPACE)
|
if (key == K_SPACE)
|
||||||
{
|
{
|
||||||
const bool on = f.get().not_empty();
|
const bool on = f.get().not_empty();
|
||||||
const TMask& m = f.mask();
|
const TMask& m = f.mask();
|
||||||
TSheet_field& ps = (TSheet_field&)m.field(FS_RATESHEET);
|
TSheet_field& ps = (TSheet_field&)m.field(FS_RATESHEET);
|
||||||
ps.enable_column(3, on);
|
ps.enable_column(3, on);
|
||||||
}
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TFattura_mask::nrate_handler(TMask_field& f, KEY key)
|
bool TFattura_mask::nrate_handler(TMask_field& f, KEY key)
|
||||||
{
|
{
|
||||||
if (key == K_TAB && f.focusdirty())
|
if (key == K_TAB && f.focusdirty())
|
||||||
{
|
{
|
||||||
TFattura_mask& fm = (TFattura_mask&)f.mask();
|
TFattura_mask& fm = (TFattura_mask&)f.mask();
|
||||||
TPagamento& pag = *fm._pag;
|
TPagamento& pag = *fm._pag;
|
||||||
|
|
||||||
pag.set_numero_rate(atoi(f.get()));
|
pag.set_numero_rate(atoi(f.get()));
|
||||||
if (pag.dirty())
|
if (pag.dirty())
|
||||||
{
|
{
|
||||||
TSheet_field& ps = (TSheet_field&)fm.field(FS_RATESHEET);
|
TSheet_field& ps = (TSheet_field&)fm.field(FS_RATESHEET);
|
||||||
pag.set_sheet(ps);
|
pag.set_sheet(ps);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TFattura_mask::codcab_handler(TMask_field& f, KEY key)
|
bool TFattura_mask::codcab_handler(TMask_field& f, KEY key)
|
||||||
{
|
{
|
||||||
if (key == K_TAB && f.focusdirty())
|
if (key == K_TAB && f.focusdirty())
|
||||||
{
|
{
|
||||||
const TMask& m = f.mask();
|
const TMask& m = f.mask();
|
||||||
const short id = f.dlg() == FS_NSCAB ? FS_NSABI : FS_VSABI;
|
const short id = f.dlg() == FS_NSCAB ? FS_NSABI : FS_VSABI;
|
||||||
const int pos = id == FS_NSABI ? 6 : 8;
|
const int pos = id == FS_NSABI ? 6 : 8;
|
||||||
const TString16 abi = m.get(id);
|
const TString16 abi = m.get(id);
|
||||||
const TString16 cab = m.get(id+1);
|
const TString16 cab = m.get(id+1);
|
||||||
TSheet_field& ps = (TSheet_field&)m.field(FS_RATESHEET);
|
TSheet_field& ps = (TSheet_field&)m.field(FS_RATESHEET);
|
||||||
for (int i = ps.items()-1; i >= 0; i--)
|
for (int i = ps.items()-1; i >= 0; i--)
|
||||||
{
|
{
|
||||||
TToken_string& row = ps.row(i);
|
TToken_string& row = ps.row(i);
|
||||||
row.add(abi, pos);
|
row.add(abi, pos);
|
||||||
row.add(cab, pos+1);
|
row.add(cab, pos+1);
|
||||||
}
|
}
|
||||||
ps.force_update();
|
ps.force_update();
|
||||||
}
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TFattura_mask::read_scadenze()
|
void TFattura_mask::read_scadenze()
|
||||||
{
|
{
|
||||||
TRiga_partite& partita = _fattura;
|
TRiga_partite& partita = _fattura;
|
||||||
TPagamento& pag = *_pag;
|
TPagamento& pag = *_pag;
|
||||||
TSheet_field& ps = pag_sheet();
|
TSheet_field& ps = pag_sheet();
|
||||||
|
|
||||||
real imponibile, imposte, spese, cambio;
|
real imponibile, imposte, spese, cambio;
|
||||||
|
|
||||||
if (partita.in_valuta())
|
if (partita.in_valuta())
|
||||||
{
|
{
|
||||||
imponibile = partita.get_real(PART_IMPORTOVAL);
|
imponibile = partita.get_real(PART_IMPORTOVAL);
|
||||||
cambio = partita.get_real(PART_CAMBIO);
|
cambio = partita.get_real(PART_CAMBIO);
|
||||||
|
|
||||||
real imp = imponibile;
|
real imp = imponibile;
|
||||||
imp *= cambio;
|
imp *= cambio;
|
||||||
imp.round();
|
imp.round();
|
||||||
set(FS_IMPONIBILI, imp);
|
set(FS_IMPONIBILI, imp);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
imponibile = partita.get_real(PART_IMPORTO);
|
imponibile = partita.get_real(PART_IMPORTO);
|
||||||
set(FS_IMPONIBILI, imponibile);
|
set(FS_IMPONIBILI, imponibile);
|
||||||
}
|
}
|
||||||
|
|
||||||
pag.set_total(imponibile, imposte, spese);
|
pag.set_total(imponibile, imposte, spese);
|
||||||
pag.set_cambio(cambio);
|
pag.set_cambio(cambio);
|
||||||
|
|
||||||
if (partita.rate() > 0)
|
if (partita.rate() > 0)
|
||||||
{
|
{
|
||||||
pag.zap_rate();
|
pag.zap_rate();
|
||||||
for (int i = 1; i <= partita.rate(); i++)
|
for (int i = 1; i <= partita.rate(); i++)
|
||||||
{
|
{
|
||||||
const TRiga_scadenze& scadenza = partita.rata(i);
|
const TRiga_scadenze& scadenza = partita.rata(i);
|
||||||
real importo = scadenza.get(SCAD_IMPORTO);
|
real importo = scadenza.get(SCAD_IMPORTO);
|
||||||
const TDate scad = scadenza.get(SCAD_DATASCAD);
|
const TDate scad = scadenza.get(SCAD_DATASCAD);
|
||||||
const int tipop = scadenza.get_int(SCAD_TIPOPAG);
|
const int tipop = scadenza.get_int(SCAD_TIPOPAG);
|
||||||
const bool paid = scadenza.get_bool(SCAD_PAGATA);
|
const bool paid = scadenza.get_bool(SCAD_PAGATA);
|
||||||
const TString16 ulc = scadenza.get(SCAD_ULTCLASS);
|
const TString16 ulc = scadenza.get(SCAD_ULTCLASS);
|
||||||
if (scadenza.in_valuta())
|
if (scadenza.in_valuta())
|
||||||
{
|
{
|
||||||
const real impval(scadenza.get(SCAD_IMPORTOVAL));
|
const real impval(scadenza.get(SCAD_IMPORTOVAL));
|
||||||
pag.set_rata(i-1, impval, importo, scad, tipop, ulc, paid);
|
pag.set_rata(i-1, impval, importo, scad, tipop, ulc, paid);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
pag.set_rata(i-1, importo, ZERO, scad, tipop, ulc, paid);
|
pag.set_rata(i-1, importo, ZERO, scad, tipop, ulc, paid);
|
||||||
|
|
||||||
TToken_string& str = ps.row(i-1);
|
TToken_string& str = ps.row(i-1);
|
||||||
str.add(scadenza.get(SCAD_CODABIPR), 6);
|
str.add(scadenza.get(SCAD_CODABIPR), 6);
|
||||||
str.add(scadenza.get(SCAD_CODCABPR), 7);
|
str.add(scadenza.get(SCAD_CODCABPR), 7);
|
||||||
str.add(scadenza.get(SCAD_CODABI), 8);
|
str.add(scadenza.get(SCAD_CODABI), 8);
|
||||||
str.add(scadenza.get(SCAD_CODCAB), 9);
|
str.add(scadenza.get(SCAD_CODCAB), 9);
|
||||||
if (i == 1)
|
if (i == 1)
|
||||||
{
|
{
|
||||||
set(FS_NSABI, str.get(6));
|
set(FS_NSABI, str.get(6));
|
||||||
set(FS_NSCAB, str.get(7));
|
set(FS_NSCAB, str.get(7));
|
||||||
set(FS_VSABI, str.get(8));
|
set(FS_VSABI, str.get(8));
|
||||||
set(FS_VSCAB, str.get(9));
|
set(FS_VSCAB, str.get(9));
|
||||||
set(FS_AGENTE, scadenza.get(SCAD_CODAG));
|
set(FS_AGENTE, scadenza.get(SCAD_CODAG));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
||||||
pag.set_rate_auto();
|
pag.set_rate_auto();
|
||||||
}
|
}
|
||||||
|
|
||||||
set(FS_RDIFFER, pag.rate_differenziate() ? "1" : "2");
|
set(FS_RDIFFER, pag.rate_differenziate() ? "1" : "2");
|
||||||
set(FS_NAMEPAG, pag.name());
|
set(FS_NAMEPAG, pag.name());
|
||||||
set(FS_TIPOPR, pag.desc_tpr());
|
set(FS_TIPOPR, pag.desc_tpr());
|
||||||
set(FS_MCOMM, pag.mese_commerciale() ? "X" : "");
|
set(FS_MCOMM, pag.mese_commerciale() ? "X" : "");
|
||||||
set(FS_RECALC, "X", TRUE);
|
set(FS_RECALC, "X", TRUE);
|
||||||
set(FS_NRATE, pag.n_rate());
|
set(FS_NRATE, pag.n_rate());
|
||||||
|
|
||||||
pag.set_sheet(ps);
|
pag.set_sheet(ps);
|
||||||
_pag_rows = ps.rows_array();
|
_pag_rows = ps.rows_array();
|
||||||
|
|
||||||
// se la prima rata e' fissa non si tocca
|
// se la prima rata e' fissa non si tocca
|
||||||
if (pag.tipo_prima_rata() > 3)
|
if (pag.tipo_prima_rata() > 3)
|
||||||
ps.disable_cell(0,-1);
|
ps.disable_cell(0,-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TFattura_mask::write_scadenze() const
|
void TFattura_mask::write_scadenze() const
|
||||||
{
|
{
|
||||||
CHECK(_pag, "Null pagament");
|
CHECK(_pag, "Null pagament");
|
||||||
const TPagamento& pag = *_pag;
|
const TPagamento& pag = *_pag;
|
||||||
TRiga_partite& partita = _fattura;
|
TRiga_partite& partita = _fattura;
|
||||||
|
|
||||||
TSheet_field& ps = pag_sheet();
|
TSheet_field& ps = pag_sheet();
|
||||||
|
|
||||||
const TString agente = get(FS_AGENTE);
|
const TString agente = get(FS_AGENTE);
|
||||||
|
|
||||||
partita.elimina_rate();
|
partita.elimina_rate();
|
||||||
for (int i = 0; i < pag.n_rate(); i++)
|
for (int i = 0; i < pag.n_rate(); i++)
|
||||||
{
|
{
|
||||||
TToken_string& row = ps.row(i);
|
TToken_string& row = ps.row(i);
|
||||||
|
|
||||||
TRiga_scadenze& scadenza = partita.new_row();
|
TRiga_scadenze& scadenza = partita.new_row();
|
||||||
scadenza.put(SCAD_CODPAG, pag.code());
|
scadenza.put(SCAD_CODPAG, pag.code());
|
||||||
scadenza.put(SCAD_TIPOPAG, pag.tipo_rata(i));
|
scadenza.put(SCAD_TIPOPAG, pag.tipo_rata(i));
|
||||||
scadenza.put(SCAD_ULTCLASS, pag.ulc_rata(i));
|
scadenza.put(SCAD_ULTCLASS, pag.ulc_rata(i));
|
||||||
if (partita.in_valuta())
|
if (partita.in_valuta())
|
||||||
{
|
{
|
||||||
scadenza.put(SCAD_IMPORTO, pag.tlit_rata(i));
|
scadenza.put(SCAD_IMPORTO, pag.tlit_rata(i));
|
||||||
scadenza.put(SCAD_IMPORTOVAL, pag.tpay_rata(i));
|
scadenza.put(SCAD_IMPORTOVAL, pag.tpay_rata(i));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
scadenza.put(SCAD_IMPORTO, pag.tpay_rata(i));
|
scadenza.put(SCAD_IMPORTO, pag.tpay_rata(i));
|
||||||
scadenza.zero(SCAD_IMPORTOVAL);
|
scadenza.zero(SCAD_IMPORTOVAL);
|
||||||
}
|
}
|
||||||
scadenza.put(SCAD_DATASCAD, pag.data_rata(i));
|
scadenza.put(SCAD_DATASCAD, pag.data_rata(i));
|
||||||
scadenza.put(SCAD_CODABIPR, row.get(6));
|
scadenza.put(SCAD_CODABIPR, row.get(6));
|
||||||
scadenza.put(SCAD_CODCABPR, row.get(7));
|
scadenza.put(SCAD_CODCABPR, row.get(7));
|
||||||
scadenza.put(SCAD_CODABI, row.get(8));
|
scadenza.put(SCAD_CODABI, row.get(8));
|
||||||
scadenza.put(SCAD_CODCAB, row.get(9));
|
scadenza.put(SCAD_CODCAB, row.get(9));
|
||||||
scadenza.put(SCAD_PAGATA, pag.ratapagata(i));
|
scadenza.put(SCAD_PAGATA, pag.ratapagata(i));
|
||||||
scadenza.put(SCAD_CODAG, agente);
|
scadenza.put(SCAD_CODAG, agente);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
// Addendum alla maschera gestione partite
|
// Addendum alla maschera gestione partite
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
bool TGame_mask::edit_fattura(TPartita& p, int nriga)
|
bool TGame_mask::edit_fattura(TPartita& p, int nriga)
|
||||||
{
|
{
|
||||||
TString16 codpag;
|
TString16 codpag;
|
||||||
|
|
||||||
const bool nuova = nriga <= 0;
|
const bool nuova = nriga <= 0;
|
||||||
if (nuova)
|
if (nuova)
|
||||||
nriga = nuova_riga(p);
|
nriga = nuova_riga(p);
|
||||||
|
|
||||||
TRiga_partite& f = p.riga(nriga);
|
TRiga_partite& f = p.riga(nriga);
|
||||||
if (f.rate() > 0)
|
if (f.rate() > 0)
|
||||||
_codpag = f.rata(1).get(SCAD_CODPAG);
|
_codpag = f.rata(1).get(SCAD_CODPAG);
|
||||||
|
|
||||||
TFattura_mask fm(f, _codpag);
|
TFattura_mask fm(f, _codpag);
|
||||||
const bool ok = fm.run() == K_ENTER;
|
const bool ok = fm.run() == K_ENTER;
|
||||||
|
|
||||||
if (nuova && !ok)
|
if (nuova && !ok)
|
||||||
p.rimuovi_riga(nriga);
|
p.rimuovi_riga(nriga);
|
||||||
|
|
||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
// Gestione partite extra-contabili
|
// Gestione partite extra-contabili
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
void TSaldaconto_app::edit_partite(const TMask& m)
|
void TSaldaconto_app::edit_partite(const TMask& m)
|
||||||
{
|
{
|
||||||
TBill b; // Legge il conto della riga selezionata
|
TBill b; // Legge il conto della riga selezionata
|
||||||
b.set(m.get_int(F_GRUPPO), m.get_int(F_CONTO),
|
b.set(m.get_int(F_GRUPPO), m.get_int(F_CONTO),
|
||||||
m.get_long(F_SOTTOCONTO), m.get(F_TIPO)[0]);
|
m.get_long(F_SOTTOCONTO), m.get(F_TIPO)[0]);
|
||||||
|
|
||||||
TGame_mask gm(b, 0, 0);
|
TGame_mask gm(b, 0, 0);
|
||||||
gm.run();
|
gm.run();
|
||||||
if (gm.changed() && yesno_box("Si vogliono salvare le partite modificate?"))
|
if (gm.changed() && yesno_box("Si vogliono salvare le partite modificate?"))
|
||||||
partite().rewrite();
|
partite().rewrite();
|
||||||
partite().destroy();
|
partite().destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
21
sc/sc2.cpp
Executable file
21
sc/sc2.cpp
Executable file
@ -0,0 +1,21 @@
|
|||||||
|
#include <xvt.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <checks.h>
|
||||||
|
|
||||||
|
#include "sc2.h"
|
||||||
|
|
||||||
|
#define usage "Errore - uso : sc2 -0"
|
||||||
|
|
||||||
|
int main(int argc,char** argv)
|
||||||
|
{
|
||||||
|
const int n = (argc > 1) ? (atoi(&argv[1][1])) : 0;
|
||||||
|
|
||||||
|
switch(n)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
sc2100(argc,argv); break;
|
||||||
|
default:
|
||||||
|
error_box(usage);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
10
sc/sc2.url
Executable file
10
sc/sc2.url
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
#include <default.url>
|
||||||
|
|
||||||
|
MENU TASK_MENUBAR
|
||||||
|
SUBMENU MENU_FILE "~File"
|
||||||
|
|
||||||
|
MENUBAR MENU_BAR(1)
|
||||||
|
|
||||||
|
MENU MENU_BAR(1)
|
||||||
|
SUBMENU MENU_FILE "~File"
|
||||||
|
|
396
sc/sc2100.cpp
Executable file
396
sc/sc2100.cpp
Executable file
@ -0,0 +1,396 @@
|
|||||||
|
#ifndef __APPLICAT_H
|
||||||
|
#include <applicat.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __MASK_H
|
||||||
|
#include <mask.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __FORM_H
|
||||||
|
#include <form.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __RELATION_H
|
||||||
|
#include <relation.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __URLDEFID_H
|
||||||
|
#include <urldefid.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __SHEET_H
|
||||||
|
#include <sheet.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __LFFILES_H
|
||||||
|
#include <lffiles.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "sc2.h"
|
||||||
|
#include "sc2100a.h"
|
||||||
|
|
||||||
|
class TStampaEC_application : public TApplication
|
||||||
|
{
|
||||||
|
enum what {clienti, fornitori};
|
||||||
|
|
||||||
|
// begin AARGH
|
||||||
|
TRelation* _clifo_rel;
|
||||||
|
TCursor* _cli_cur_k1;
|
||||||
|
TCursor* _cli_cur_k2;
|
||||||
|
TCursor* _for_cur_k1;
|
||||||
|
TCursor* _for_cur_k2;
|
||||||
|
TCursor_sheet* _cli_sh_k1;
|
||||||
|
TCursor_sheet* _cli_sh_k2;
|
||||||
|
TCursor_sheet* _for_sh_k1;
|
||||||
|
TCursor_sheet* _for_sh_k2;
|
||||||
|
// end AARGH
|
||||||
|
|
||||||
|
what _what;
|
||||||
|
int _key;
|
||||||
|
TBit_array _selected;
|
||||||
|
|
||||||
|
TRelation* _ditta;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
virtual bool create();
|
||||||
|
virtual bool destroy();
|
||||||
|
virtual bool menu(MENU_TAG m);
|
||||||
|
|
||||||
|
long select_clifo_range(TMask& m, long from, long to);
|
||||||
|
|
||||||
|
static TStampaEC_application& app() { return (TStampaEC_application&)main_app(); }
|
||||||
|
|
||||||
|
// handlers
|
||||||
|
static bool bfrom_handler(TMask_field& f, KEY k);
|
||||||
|
static bool bto_handler(TMask_field& f, KEY k);
|
||||||
|
static bool ffrom_handler(TMask_field& f, KEY k);
|
||||||
|
static bool fto_handler(TMask_field& f, KEY k);
|
||||||
|
static bool breset_handler(TMask_field& f, KEY k);
|
||||||
|
static bool bselect_handler(TMask_field& f, KEY k);
|
||||||
|
static bool rclifo_handler(TMask_field& f, KEY k);
|
||||||
|
static bool rsortcf_handler(TMask_field& f, KEY k);
|
||||||
|
|
||||||
|
void set_clifo_limits(TMask&);
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
bool select_ec(); // starting point
|
||||||
|
bool print_selected();
|
||||||
|
bool print_ec(long clifo);
|
||||||
|
|
||||||
|
TCursor_sheet* cur_sheet();
|
||||||
|
|
||||||
|
// utils per handlers
|
||||||
|
void reset_sheets(TMask& m);
|
||||||
|
void set_what(what w) {_what = w; }
|
||||||
|
void set_key (int k) {_key = k; }
|
||||||
|
|
||||||
|
TStampaEC_application();
|
||||||
|
virtual ~TStampaEC_application() {}
|
||||||
|
};
|
||||||
|
|
||||||
|
// handlers
|
||||||
|
bool TStampaEC_application::bfrom_handler(TMask_field& f, KEY k)
|
||||||
|
{
|
||||||
|
if (k == K_SPACE)
|
||||||
|
{
|
||||||
|
app().cur_sheet()->disable_check();
|
||||||
|
if (app().cur_sheet()->run() == K_ENTER)
|
||||||
|
{
|
||||||
|
TToken_string& t = app().cur_sheet()->row(app().cur_sheet()->selected());
|
||||||
|
long cod1 = t.get_long(1);
|
||||||
|
long cod2 = f.mask().get_long(F_CFCODTO);
|
||||||
|
f.mask().set(F_CFCODFR, cod1);
|
||||||
|
app().select_clifo_range(f.mask(), cod1, cod2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TStampaEC_application::bto_handler(TMask_field& f, KEY k)
|
||||||
|
{
|
||||||
|
if (k == K_SPACE)
|
||||||
|
{
|
||||||
|
app().cur_sheet()->disable_check();
|
||||||
|
if (app().cur_sheet()->run() == K_ENTER)
|
||||||
|
{
|
||||||
|
TToken_string& t = app().cur_sheet()->row(app().cur_sheet()->selected());
|
||||||
|
long cod2 = t.get_long(1);
|
||||||
|
long cod1 = f.mask().get_long(F_CFCODFR);
|
||||||
|
f.mask().set(F_CFCODTO, cod2);
|
||||||
|
app().select_clifo_range(f.mask(), cod1, cod2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TStampaEC_application::ffrom_handler(TMask_field& f, KEY k)
|
||||||
|
{
|
||||||
|
if (!f.focusdirty()) return TRUE;
|
||||||
|
|
||||||
|
if (k == K_TAB)
|
||||||
|
{
|
||||||
|
long cod1 = atol(f.get());
|
||||||
|
long cod2 = f.mask().get_long(F_CFCODTO);
|
||||||
|
app().select_clifo_range(f.mask(), cod1, cod2);
|
||||||
|
}
|
||||||
|
else if (k == K_F9)
|
||||||
|
app().bfrom_handler(f.mask().field(B_CFCODFR), K_SPACE);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TStampaEC_application::fto_handler(TMask_field& f, KEY k)
|
||||||
|
{
|
||||||
|
if (!f.focusdirty()) return TRUE;
|
||||||
|
|
||||||
|
if (k == K_TAB)
|
||||||
|
{
|
||||||
|
long cod2 = atol(f.get());
|
||||||
|
long cod1 = f.mask().get_long(F_CFCODFR);
|
||||||
|
app().select_clifo_range(f.mask(), cod1, cod2);
|
||||||
|
}
|
||||||
|
else if (k == K_F9)
|
||||||
|
app().bfrom_handler(f.mask().field(B_CFCODTO), K_SPACE);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TStampaEC_application::breset_handler(TMask_field& f, KEY k)
|
||||||
|
{
|
||||||
|
if (k == K_SPACE)
|
||||||
|
app().reset_sheets(f.mask());
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TStampaEC_application::bselect_handler(TMask_field& f, KEY k)
|
||||||
|
{
|
||||||
|
if (k == K_SPACE)
|
||||||
|
{
|
||||||
|
app().cur_sheet()->enable_check();
|
||||||
|
app().cur_sheet()->run();
|
||||||
|
}
|
||||||
|
app().set_clifo_limits(f.mask());
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TStampaEC_application::rclifo_handler(TMask_field& f, KEY k)
|
||||||
|
{
|
||||||
|
if (k == K_SPACE)
|
||||||
|
{
|
||||||
|
app().set_what(f.get() == "1" ? clienti : fornitori);
|
||||||
|
app().reset_sheets(f.mask());
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TStampaEC_application::rsortcf_handler(TMask_field& f, KEY k)
|
||||||
|
{
|
||||||
|
if (k == K_SPACE)
|
||||||
|
{
|
||||||
|
app().set_key(atoi(f.get()));
|
||||||
|
app().reset_sheets(f.mask());
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
long TStampaEC_application::select_clifo_range(TMask& m, long from, long to)
|
||||||
|
{
|
||||||
|
long nsel = 0;
|
||||||
|
|
||||||
|
if (cur_sheet()->items() == 0)
|
||||||
|
{
|
||||||
|
beep();
|
||||||
|
return 0l;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (to == 0l)
|
||||||
|
to = cur_sheet()->row(cur_sheet()->items() - 1).get_long(1);
|
||||||
|
if (from == 0l)
|
||||||
|
from = cur_sheet()->row(0).get_long(1);
|
||||||
|
|
||||||
|
if (from > to)
|
||||||
|
{
|
||||||
|
long tmp = to;
|
||||||
|
to = from;
|
||||||
|
from = tmp;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool go = FALSE;
|
||||||
|
bool cod1ok = FALSE, cod2ok = FALSE;
|
||||||
|
long last = 0l;
|
||||||
|
long firs = 0l;
|
||||||
|
|
||||||
|
for (long i = 0; i < cur_sheet()->items(); i++)
|
||||||
|
{
|
||||||
|
TToken_string& tt = cur_sheet()->row(i);
|
||||||
|
long cod = tt.get_long(1);
|
||||||
|
if (cod >= from && cod <= to)
|
||||||
|
{
|
||||||
|
cur_sheet()->check(i);
|
||||||
|
nsel ++;
|
||||||
|
if (firs == 0l) firs = cod;
|
||||||
|
last = cod;
|
||||||
|
}
|
||||||
|
else cur_sheet()->uncheck(i);
|
||||||
|
|
||||||
|
if (cod == from) cod1ok = TRUE;
|
||||||
|
if (cod == to) cod2ok = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!cod1ok) from = firs;
|
||||||
|
if (!cod2ok) to = last;
|
||||||
|
|
||||||
|
m.set(F_CFCODFR, from);
|
||||||
|
m.set(F_CFCODTO, to);
|
||||||
|
m.set(F_NSEL, nsel);
|
||||||
|
return 0l;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TStampaEC_application::reset_sheets(TMask& m)
|
||||||
|
{
|
||||||
|
_cli_sh_k1->uncheck(-1);
|
||||||
|
_cli_sh_k2->uncheck(-1);
|
||||||
|
_for_sh_k1->uncheck(-1);
|
||||||
|
_for_sh_k2->uncheck(-1);
|
||||||
|
|
||||||
|
m.set(F_CFCODFR,"");
|
||||||
|
m.set(F_CFCODTO,"");
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TStampaEC_application::select_ec()
|
||||||
|
{
|
||||||
|
TMask m("sc2100a");
|
||||||
|
KEY k;
|
||||||
|
|
||||||
|
m.set_handler(R_CLIFO, rclifo_handler);
|
||||||
|
m.set_handler(R_SORTCF, rsortcf_handler);
|
||||||
|
m.set_handler(B_CFCODFR, bfrom_handler);
|
||||||
|
m.set_handler(B_CFCODTO, bto_handler);
|
||||||
|
m.set_handler(B_SELECT, bselect_handler);
|
||||||
|
m.set_handler(B_RESET, breset_handler);
|
||||||
|
m.set_handler(F_CFCODFR, ffrom_handler);
|
||||||
|
m.set_handler(F_CFCODTO, fto_handler);
|
||||||
|
|
||||||
|
if (_ditta->good())
|
||||||
|
{
|
||||||
|
m.set(F_COMSEND, _ditta->lfile(LF_COMUNI).get("COM"));
|
||||||
|
m.set(F_LUOGOSEND, _ditta->lfile(LF_COMUNI).get("DENCOM"));
|
||||||
|
}
|
||||||
|
|
||||||
|
while ((k = m.run()) != K_ESC)
|
||||||
|
if (k == K_ENTER)
|
||||||
|
print_selected();
|
||||||
|
|
||||||
|
return k != K_ESC;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TStampaEC_application::set_clifo_limits(TMask& m)
|
||||||
|
{
|
||||||
|
long first = 0, last = 0;
|
||||||
|
bool primo = FALSE;
|
||||||
|
for (int i = 0; i < cur_sheet()->items(); i++)
|
||||||
|
{
|
||||||
|
if (cur_sheet()->checked(i))
|
||||||
|
{
|
||||||
|
TToken_string& t = cur_sheet()->row(i);
|
||||||
|
long kod = t.get_long(1);
|
||||||
|
if (!primo++) first = last = kod;
|
||||||
|
if (first > kod) first = kod;
|
||||||
|
if (last < kod) last = kod;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
m.set(F_CFCODFR, first);
|
||||||
|
m.set(F_CFCODTO, last);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TStampaEC_application::print_selected()
|
||||||
|
{
|
||||||
|
for (int i = 0; i < cur_sheet()->items(); i++)
|
||||||
|
{
|
||||||
|
if (cur_sheet()->checked(i))
|
||||||
|
{
|
||||||
|
TToken_string& t = cur_sheet()->row(i);
|
||||||
|
print_ec(t.get_long(1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TStampaEC_application::print_ec(long clifo)
|
||||||
|
{
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
TCursor_sheet* TStampaEC_application::cur_sheet()
|
||||||
|
{
|
||||||
|
if (_key == 1) return (_what == clienti ? _cli_sh_k1 : _for_sh_k1);
|
||||||
|
else return (_what == clienti ? _cli_sh_k2 : _for_sh_k2);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TStampaEC_application::create()
|
||||||
|
{
|
||||||
|
TApplication::create();
|
||||||
|
|
||||||
|
// crea relazioni, cursori e cursor_sheets
|
||||||
|
_clifo_rel = new TRelation(LF_CLIFO);
|
||||||
|
|
||||||
|
_cli_cur_k1 = new TCursor(_clifo_rel, "TIPOCF=\"C\"", 1);
|
||||||
|
_cli_cur_k2 = new TCursor(_clifo_rel, "TIPOCF=\"C\"", 2);
|
||||||
|
_for_cur_k1 = new TCursor(_clifo_rel, "TIPOCF=\"F\"", 1);
|
||||||
|
_for_cur_k2 = new TCursor(_clifo_rel, "TIPOCF=\"F\"", 2);
|
||||||
|
|
||||||
|
_cli_sh_k1 = new TCursor_sheet(_cli_cur_k1, " |CODCF|RAGSOC", "Selezione clienti per codice",
|
||||||
|
"@1|Codice|Ragione Sociale@50");
|
||||||
|
_cli_sh_k2 = new TCursor_sheet(_cli_cur_k2, " |RAGSOC|CODCF", "Selezione clienti per ragione sociale",
|
||||||
|
"@1|Ragione Sociale@50|Codice");
|
||||||
|
_for_sh_k1 = new TCursor_sheet(_for_cur_k1, " |CODCF|RAGSOC", "Selezione fornitori per codice",
|
||||||
|
"@1|Codice|Ragione Sociale@50");
|
||||||
|
_for_sh_k2 = new TCursor_sheet(_for_cur_k2, " |RAGSOC|CODCF", "Selezione fornitori per ragione sociale",
|
||||||
|
"@1|Ragione Sociale@50|Codice");
|
||||||
|
|
||||||
|
// relasiun per la ditta defiga
|
||||||
|
_ditta = new TRelation(LF_NDITTE);
|
||||||
|
_ditta->add(LF_ANAG, "TIPOA==TIPOA|CODANAGR==CODANAGR");
|
||||||
|
_ditta->add(LF_COMUNI, "COM==COMRF(COMRES)", 1, LF_ANAG);
|
||||||
|
|
||||||
|
_ditta->zero();
|
||||||
|
_ditta->lfile().put("CODDITTA", get_firm());
|
||||||
|
_ditta->read();
|
||||||
|
|
||||||
|
dispatch_e_menu(MENU_ITEM(1));
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TStampaEC_application::destroy()
|
||||||
|
{
|
||||||
|
delete _for_sh_k2;
|
||||||
|
delete _for_sh_k1;
|
||||||
|
delete _cli_sh_k2;
|
||||||
|
delete _cli_sh_k1;
|
||||||
|
delete _for_cur_k2;
|
||||||
|
delete _for_cur_k1;
|
||||||
|
delete _cli_cur_k2;
|
||||||
|
delete _cli_cur_k1;
|
||||||
|
delete _clifo_rel;
|
||||||
|
|
||||||
|
return TApplication::destroy();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TStampaEC_application::menu(MENU_TAG m)
|
||||||
|
{
|
||||||
|
if (m == MENU_ITEM(1))
|
||||||
|
return select_ec();
|
||||||
|
else return TApplication::menu(m);
|
||||||
|
}
|
||||||
|
|
||||||
|
TStampaEC_application::TStampaEC_application() : _selected(10000), _what(clienti), _key(1)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
int sc2100(int argc, char** argv)
|
||||||
|
{
|
||||||
|
TStampaEC_application app;
|
||||||
|
app.run(argc, argv, "Stampa Estratti Conto");
|
||||||
|
return 0;
|
||||||
|
}
|
23
sc/sc2100a.h
Executable file
23
sc/sc2100a.h
Executable file
@ -0,0 +1,23 @@
|
|||||||
|
#define F_CODDITTA 101
|
||||||
|
#define F_RAGSOC 102
|
||||||
|
#define F_CODPROF 103
|
||||||
|
#define F_DESPROF 104
|
||||||
|
#define D_DATALIMOP 105
|
||||||
|
#define D_DATALIMSC 106
|
||||||
|
#define F_GIORISCH 107
|
||||||
|
#define B_STAMPCHIU 108
|
||||||
|
#define D_DATACHIU 109
|
||||||
|
#define F_LUOGOSEND 110
|
||||||
|
#define D_DATASEND 111
|
||||||
|
#define R_CLIFO 112
|
||||||
|
#define F_CFCODFR 113
|
||||||
|
#define F_CFCODTO 114
|
||||||
|
#define B_CFCODFR 115
|
||||||
|
#define B_CFCODTO 116
|
||||||
|
#define F_CFDESFR 117
|
||||||
|
#define F_CFDESTO 118
|
||||||
|
#define B_SELECT 119
|
||||||
|
#define B_RESET 120
|
||||||
|
#define R_SORTCF 121
|
||||||
|
#define F_NSEL 122
|
||||||
|
#define F_COMSEND 123
|
198
sc/sc2100a.uml
Executable file
198
sc/sc2100a.uml
Executable file
@ -0,0 +1,198 @@
|
|||||||
|
#include "sc2100a.h"
|
||||||
|
|
||||||
|
PAGE "Stampa estratti conto" -1 -1 68 17
|
||||||
|
|
||||||
|
NUMBER F_CODDITTA 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 1 "Cod. "
|
||||||
|
FLAGS "DFR"
|
||||||
|
USE LF_NDITTE KEY 1
|
||||||
|
INPUT CODDITTA F_CODDITTA
|
||||||
|
OUTPUT F_RAGSOC RAGSOC
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_RAGSOC 50 46
|
||||||
|
BEGIN
|
||||||
|
PROMPT 13 1 "R.S. "
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 68 8
|
||||||
|
BEGIN
|
||||||
|
PROMPT 0 7 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_CODPROF 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 8 "Codice profilo "
|
||||||
|
USE LF_FORM KEY 1
|
||||||
|
DISPLAY "Codice" CODPROF
|
||||||
|
DISPLAY "Descrizione@50" DESC
|
||||||
|
INPUT CODPROF F_CODPROF
|
||||||
|
OUTPUT F_CODPROF CODPROF
|
||||||
|
OUTPUT F_DESPROF DESC
|
||||||
|
HELP ""
|
||||||
|
FLAGS ""
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_DESPROF 50 30
|
||||||
|
BEGIN
|
||||||
|
PROMPT 34 8 " "
|
||||||
|
HELP ""
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
DATE D_DATALIMOP
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 9 "Data limite operazione "
|
||||||
|
HELP ""
|
||||||
|
FLAGS "A"
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
|
DATE D_DATALIMSC
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 10 "Data limite scaduto "
|
||||||
|
HELP ""
|
||||||
|
FLAGS ""
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_GIORISCH 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 11 "Giorni calcolo rischio "
|
||||||
|
HELP ""
|
||||||
|
FLAGS ""
|
||||||
|
END
|
||||||
|
|
||||||
|
BOOLEAN B_STAMPCHIU
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 12 "Stampa partite chiuse"
|
||||||
|
MESSAGE TRUE ENABLE,D_DATACHIU
|
||||||
|
MESSAGE FALSE DISABLE,D_DATACHIU
|
||||||
|
HELP ""
|
||||||
|
FLAGS ""
|
||||||
|
END
|
||||||
|
|
||||||
|
DATE D_DATACHIU
|
||||||
|
BEGIN
|
||||||
|
PROMPT 25 12 "dal "
|
||||||
|
HELP ""
|
||||||
|
FLAGS ""
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_COMSEND 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 13 "Luogo d'invio "
|
||||||
|
USE LF_COMUNI KEY 1
|
||||||
|
INPUT COM F_COMSEND
|
||||||
|
INPUT DENCOM F_LUOGOSEND
|
||||||
|
DISPLAY "Codice" COM
|
||||||
|
DISPLAY "Descrizione@50" DENCOM
|
||||||
|
OUTPUT F_COMSEND COM
|
||||||
|
OUTPUT F_LUOGOSEND DENCOM
|
||||||
|
// CHECKTYPE NORMAL
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_LUOGOSEND 50 20
|
||||||
|
BEGIN
|
||||||
|
PROMPT 24 13 ""
|
||||||
|
USE LF_COMUNI KEY 2
|
||||||
|
INPUT DENCOM F_LUOGOSEND
|
||||||
|
INPUT COM F_COMSEND
|
||||||
|
DISPLAY "Descrizione@50" DENCOM
|
||||||
|
DISPLAY "Codice" COM
|
||||||
|
OUTPUT F_COMSEND COM
|
||||||
|
OUTPUT F_LUOGOSEND DENCOM
|
||||||
|
// CHECKTYPE NORMAL
|
||||||
|
END
|
||||||
|
|
||||||
|
DATE D_DATASEND
|
||||||
|
BEGIN
|
||||||
|
PROMPT 50 13 "data "
|
||||||
|
HELP ""
|
||||||
|
FLAGS "A"
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
BUTTON B_SELECT 10 1
|
||||||
|
BEGIN
|
||||||
|
PROMPT 51 3 "~Selezione"
|
||||||
|
HELP ""
|
||||||
|
FLAGS ""
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON B_RESET 10 1
|
||||||
|
BEGIN
|
||||||
|
PROMPT 51 4 "~Azzera"
|
||||||
|
HELP ""
|
||||||
|
FLAGS ""
|
||||||
|
END
|
||||||
|
|
||||||
|
RADIOBUTTON R_CLIFO 20
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 2 "Selezione"
|
||||||
|
ITEM "1|Clienti"
|
||||||
|
ITEM "2|Fornitori"
|
||||||
|
HELP ""
|
||||||
|
FLAGS ""
|
||||||
|
END
|
||||||
|
|
||||||
|
RADIOBUTTON R_SORTCF 20
|
||||||
|
BEGIN
|
||||||
|
PROMPT 25 2 "Ordinamento"
|
||||||
|
ITEM "1|Per codice"
|
||||||
|
ITEM "2|Per ragione sociale"
|
||||||
|
HELP ""
|
||||||
|
FLAGS ""
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_CFCODFR 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 6 "Da codice "
|
||||||
|
HELP ""
|
||||||
|
FLAGS ""
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_CFCODTO 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 36 6 "a codice "
|
||||||
|
HELP ""
|
||||||
|
FLAGS ""
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_NSEL 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 56 6 "N. "
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON B_CFCODFR 2 1
|
||||||
|
BEGIN
|
||||||
|
PROMPT 31 6 ""
|
||||||
|
PICTURE 109
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON B_CFCODTO 2 1
|
||||||
|
BEGIN
|
||||||
|
PROMPT 51 6 ""
|
||||||
|
PICTURE 109
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
BUTTON DLG_OK 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -12 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_CANCEL 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -22 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
ENDMASK
|
Loading…
x
Reference in New Issue
Block a user