This commit was generated by cvs2svn to compensate for changes in r3807,
which included commits to RCS files with non-trunk default branches. git-svn-id: svn://10.65.10.50/trunk@3808 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
61f5aee724
commit
cacddb21b7
116
ef/buildef.mak
Executable file
116
ef/buildef.mak
Executable file
@ -0,0 +1,116 @@
|
||||
if test -r /tmp/build_ef_$1
|
||||
then
|
||||
echo Ci hanno pensato prima di te.
|
||||
exit 255
|
||||
fi
|
||||
|
||||
btouch
|
||||
|
||||
touch /tmp/build_ef_$1
|
||||
trap "rm /tmp/build_ef_$1;echo ok, basta;exit" 2
|
||||
CCOMP=cc++
|
||||
RCOMP=rescomp
|
||||
MCOMP=mskcomp
|
||||
LINK=linkdue
|
||||
IP=$SRC_HOME/include/
|
||||
if [ "$EXEHOME" = "" ] ;
|
||||
then
|
||||
EXEHOME=$P2HOME
|
||||
fi
|
||||
EP=$EXEHOME/campo/
|
||||
LIBC="$P2HOME/lib/libdue.a $P2HOME/lib/libuno.a $P2HOME/lib/libgfm.a"
|
||||
LIBD1="$P2HOME/lib/libdued.a $P2HOME/lib/libuno.a $P2HOME/lib/libgfm.a"
|
||||
LIBD2="$P2HOME/lib/libdued.a $P2HOME/lib/libunod.a $P2HOME/lib/libgfm.a"
|
||||
LIBD3="$P2HOME/lib/libdued.a $P2HOME/lib/libunod.a $P2HOME/lib/libgfmd.a"
|
||||
DIR=`pwd | grep -v $P2HOME`
|
||||
if [ "$DIR" != "" ];
|
||||
then
|
||||
LIBC=
|
||||
LIBD1=
|
||||
LIBD2=
|
||||
LIBD3=
|
||||
if [ -f $SRC_HOME/lib/libdue.a ];
|
||||
then
|
||||
LIBC=$LIBC"$SRC_HOME"
|
||||
else
|
||||
LIBC=$LIBC"$P2HOME"
|
||||
fi
|
||||
if [ -f $SRC_HOME/lib/libdued.a ];
|
||||
then
|
||||
LIBD1=$LIBD1"$SRC_HOME"
|
||||
LIBD2=$LIBD2"$SRC_HOME"
|
||||
LIBD3=$LIBD3"$SRC_HOME"
|
||||
else
|
||||
LIBD1=$LIBD1"$P2HOME"
|
||||
LIBD2=$LIBD2"$P2HOME"
|
||||
LIBD3=$LIBD3"$P2HOME"
|
||||
fi
|
||||
LIBC=$LIBC"/lib/libdue.a "
|
||||
LIBD1=$LIBD1"/lib/libdued.a "
|
||||
LIBD2=$LIBD2"/lib/libdued.a "
|
||||
LIBD3=$LIBD3"/lib/libdued.a "
|
||||
if [ -f $SRC_HOME/lib/libuno.a ];
|
||||
then
|
||||
LIBC=$LIB"$SRC_HOME"
|
||||
LIBD1=$LIBD1"$SRC_HOME"
|
||||
else
|
||||
LIBC=$LIB"$P2HOME"
|
||||
LIBD1=$LIBD1"$P2HOME"
|
||||
fi
|
||||
if [ -f $SRC_HOME/lib/libunod.a ];
|
||||
then
|
||||
LIBD2=$LIBD2"$SRC_HOME"
|
||||
LIBD3=$LIBD3"$SRC_HOME"
|
||||
else
|
||||
LIBD2=$LIBD2"$P2HOME"
|
||||
LIBD3=$LIBD3"$P2HOME"
|
||||
fi
|
||||
LIBC=$LIBC"/lib/libuno.a "
|
||||
LIBD1=$LIBD1"/lib/libuno.a "
|
||||
LIBD2=$LIBD2"/lib/libunod.a "
|
||||
LIBD3=$LIBD3"/lib/libunod.a "
|
||||
if [ -f $SRC_HOME/lib/libgfm.a ];
|
||||
then
|
||||
LIBC=$LIBC"$SRC_HOME"
|
||||
LIBD1=$LIBD1"$SRC_HOME"
|
||||
LIBD2=$LIBD2"$SRC_HOME"
|
||||
else
|
||||
LIBC=$LIBC"$P2HOME"
|
||||
LIBD1=$LIBD1"$P2HOME"
|
||||
LIBD2=$LIBD2"$P2HOME"
|
||||
fi
|
||||
if [ -f $SRC_HOME/lib/libgfmd.a ];
|
||||
then
|
||||
LIBD3=$LIBD3"$SRC_HOME"
|
||||
else
|
||||
LIBD3=$LIBD3"$P2HOME"
|
||||
fi
|
||||
LIBC=$LIBC"/lib/libgfm.a "
|
||||
LIBD1=$LIBD1"/lib/libgfm.a "
|
||||
LIBD3=$LIBD2"/lib/libgfm.a "
|
||||
LIBD3=$LIBD3"/lib/libgfmd.a "
|
||||
fi
|
||||
CFLAGSC="-r -c "
|
||||
CFLAGSD="-r -p "
|
||||
LFLAGSC="-r "
|
||||
LFLAGSD1="-r -d1 "
|
||||
LFLAGSD2="-r -d2 "
|
||||
LFLAGSD2="-r -d3 "
|
||||
O=$SRC_HOME/objs
|
||||
export CCOMP LINK IP EP LIB O CFLAGS LFLAGS RCOMP MCOMP LFLAGS2
|
||||
export CCOMP LINK IP EP LIBC LIBD1 LIBD2 LIBD3 O CFLAGSD LFLAGSC RCOMP MCOMP LFLAGSD1 LFLAGSD2 LFLAGSD3 CFLAGSC
|
||||
FLAGS=
|
||||
DASH=`echo $1 | cut -c1 `
|
||||
while [ "$DASH" = "-" ];
|
||||
do
|
||||
FLAGS=$FLAGS" "$1
|
||||
shift
|
||||
DASH=`echo $1 | cut -c1 `
|
||||
done
|
||||
if [ "$1" = "" -o "$1" = "etc" ];
|
||||
then
|
||||
gmake $FLAGS $1
|
||||
else
|
||||
gmake $FLAGS $EP$1
|
||||
fi
|
||||
rm /tmp/build_ef_$1
|
11
ef/cession.h
Executable file
11
ef/cession.h
Executable file
@ -0,0 +1,11 @@
|
||||
#ifndef __CES_H
|
||||
#define __CES_H
|
||||
|
||||
#define CES_NPROGTR "NPROGTR"
|
||||
#define CES_NRIGA "NRIGA"
|
||||
#define CES_RAGSOC "RAGSOC"
|
||||
#define CES_LOCALITA "LOCALITA"
|
||||
#define CES_STATO "STATO"
|
||||
#define CES_COM "COM"
|
||||
|
||||
#endif
|
18
ef/ef0.cpp
Executable file
18
ef/ef0.cpp
Executable file
@ -0,0 +1,18 @@
|
||||
#include <xvt.h>
|
||||
#include <checks.h>
|
||||
#include "ef0.h"
|
||||
|
||||
#define usage "Error - usage : %s -{0|1}"
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
const int op = argc < 2 ? 0 : atoi(argv[1]+1)+1;
|
||||
int res = 1;
|
||||
switch (op)
|
||||
{
|
||||
case 1: res = ef0100(argc,argv) ; break;
|
||||
case 2: res = ef0200(argc,argv) ; break;
|
||||
default: error_box(usage, argv[0]); break;
|
||||
}
|
||||
return res;
|
||||
}
|
8
ef/ef0.h
Executable file
8
ef/ef0.h
Executable file
@ -0,0 +1,8 @@
|
||||
#ifndef __EF0_H
|
||||
#define __EF0_H
|
||||
|
||||
int ef0100(int argc, char* argv[]);
|
||||
int ef0200(int argc, char* argv[]);
|
||||
|
||||
#endif // __EF0_H
|
||||
|
11
ef/ef0.url
Executable file
11
ef/ef0.url
Executable file
@ -0,0 +1,11 @@
|
||||
#include <default.url>
|
||||
|
||||
/* ef0 -0 */
|
||||
MENU TASK_MENUBAR
|
||||
SUBMENU MENU_FILE "~File"
|
||||
|
||||
/* ef0 -1 */
|
||||
MENUBAR MENU_BAR(1)
|
||||
|
||||
MENU MENU_BAR(1)
|
||||
SUBMENU MENU_FILE "~File"
|
212
ef/ef0100.cpp
Executable file
212
ef/ef0100.cpp
Executable file
@ -0,0 +1,212 @@
|
||||
#include <relapp.h>
|
||||
#include <msksheet.h>
|
||||
#include <sheet.h>
|
||||
#include <utility.h>
|
||||
#include <lffiles.h>
|
||||
#include <clifo.h>
|
||||
#include <effetti.h>
|
||||
#include <cession.h>
|
||||
#include "ef0.h"
|
||||
#include "ef0100.h"
|
||||
#include "ef0101.h"
|
||||
|
||||
class Variazione_Effetti: public TRelation_application
|
||||
{
|
||||
TMask* _msk;
|
||||
TEffObb *_rel;
|
||||
|
||||
virtual const char* get_next_key();
|
||||
TSheet_field& obb_sheet() const;
|
||||
void obb_pack();
|
||||
void common_f(const TMask& m);
|
||||
virtual int read(TMask& m);
|
||||
virtual int rewrite(const TMask& m);
|
||||
virtual int write(const TMask& m);
|
||||
bool user_create();
|
||||
bool user_destroy();
|
||||
virtual TMask* get_mask(int mode) {return _msk;}
|
||||
virtual bool changing_mask(int mode) {return FALSE;}
|
||||
public:
|
||||
static bool codcf_handler(TMask_field& f, KEY k);
|
||||
static bool effcomp_handler(TMask_field& f, KEY k);
|
||||
virtual TRelation* get_relation() const {return _rel;}
|
||||
Variazione_Effetti() {}
|
||||
};
|
||||
|
||||
|
||||
const char* Variazione_Effetti::get_next_key()
|
||||
{
|
||||
TLocalisamfile& effetti=_rel->lfile();
|
||||
long nprogtr=1L;
|
||||
|
||||
if (!effetti.empty())
|
||||
{
|
||||
effetti.zero();
|
||||
effetti.setkey(1);
|
||||
effetti.last();
|
||||
if (effetti.good())
|
||||
nprogtr+=effetti.get_long(EFF_NPROGTR);
|
||||
}
|
||||
return format("%d|%ld",F_NPROGTR,nprogtr);
|
||||
}
|
||||
|
||||
TSheet_field& Variazione_Effetti::obb_sheet() const
|
||||
{
|
||||
TSheet_field& o_sheet=(TSheet_field&) _msk->field(F_SHEET_EFF);
|
||||
return o_sheet;
|
||||
}
|
||||
|
||||
void Variazione_Effetti::obb_pack()
|
||||
{
|
||||
TArray& rows=obb_sheet().rows_array();
|
||||
int nr=rows.items();
|
||||
|
||||
for (int i=0;i<nr;i++)
|
||||
{
|
||||
TToken_string& riga=(TToken_string&)rows[i];
|
||||
if (riga.empty_items())
|
||||
rows.destroy(i,FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
void Variazione_Effetti::common_f(const TMask& m)
|
||||
{
|
||||
long nprogtr=m.get_long(F_NPROGTR);
|
||||
|
||||
_rel->lfile().zero();
|
||||
m.autosave(_rel);
|
||||
// LF_CESS SAVER!
|
||||
_rel->destroy_rows();
|
||||
obb_pack();
|
||||
TArray& rows=obb_sheet().rows_array();
|
||||
for (int i=0; i<rows.items();i++)
|
||||
{
|
||||
TToken_string& row=(TToken_string&)rows[i];
|
||||
TRectype& rec=_rel->obbligato(i);
|
||||
row.restart();
|
||||
rec.zero();
|
||||
rec.put(CES_NPROGTR,nprogtr);
|
||||
rec.put(CES_NRIGA,i+1);
|
||||
rec.put(CES_RAGSOC,row.get());
|
||||
rec.put(CES_LOCALITA,row.get());
|
||||
rec.put(CES_STATO,row.get_int());
|
||||
rec.put(CES_COM,row.get());
|
||||
}
|
||||
}
|
||||
|
||||
int Variazione_Effetti::read(TMask& m)
|
||||
{
|
||||
m.autoload(_rel);
|
||||
// LF_CESS loader!
|
||||
TToken_string riga(80);
|
||||
obb_sheet().reset();
|
||||
for (int i=0; i<_rel->obbligati_items();i++)
|
||||
{
|
||||
TRectype& rec=_rel->obbligato(i);
|
||||
riga.cut(0);
|
||||
riga.add(rec.get(CES_RAGSOC));
|
||||
riga.add(rec.get(CES_LOCALITA));
|
||||
riga.add(rec.get(CES_STATO));
|
||||
riga.add(rec.get(CES_COM));
|
||||
obb_sheet().row(i)=riga;
|
||||
}
|
||||
return _rel->status();
|
||||
}
|
||||
|
||||
int Variazione_Effetti::rewrite(const TMask& m)
|
||||
{
|
||||
common_f(m);
|
||||
return _rel->rewrite(TRUE);
|
||||
}
|
||||
|
||||
int Variazione_Effetti::write(const TMask& m)
|
||||
{
|
||||
common_f(m);
|
||||
return _rel->write(TRUE);
|
||||
}
|
||||
|
||||
|
||||
bool Variazione_Effetti::user_create()
|
||||
{
|
||||
_msk = new TMask("ef0100a") ;
|
||||
_rel = new TEffObb;
|
||||
|
||||
_msk->set_handler(F_CODCF,codcf_handler);
|
||||
_msk->set_handler(F_EFFCOMP,effcomp_handler);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool Variazione_Effetti::user_destroy()
|
||||
{
|
||||
delete _msk;
|
||||
delete _rel;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool Variazione_Effetti::codcf_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
long codcf=atol(f.get()),n=0;
|
||||
TString ragsoc(50);
|
||||
TToken_string line;
|
||||
TLocalisamfile clifo(LF_CLIFO);
|
||||
TArray_sheet cli(-1,-1,59,20,"Clienti","Codice|Ragione sociale@50|Sospeso|Codice fiscale@18");
|
||||
|
||||
switch (k)
|
||||
{
|
||||
case K_TAB:
|
||||
if (f.focusdirty()) // When changing focus put customer's name
|
||||
{
|
||||
clifo.zero();
|
||||
clifo.setkey(1);
|
||||
clifo.put(CLI_TIPOCF,"C");
|
||||
clifo.put(CLI_CODCF,codcf);
|
||||
clifo.read();
|
||||
if (clifo.good())
|
||||
{
|
||||
ragsoc=clifo.get(CLI_RAGSOC);
|
||||
f.mask().set(F_CFRAGSOC,(const char*)ragsoc);
|
||||
} else
|
||||
return FALSE;
|
||||
}
|
||||
break;
|
||||
case K_F8: // If F8 was pressed perform customer's search
|
||||
clifo.setkey(1);
|
||||
clifo.first();
|
||||
while (clifo.good() && clifo.get(CLI_TIPOCF)=="C")
|
||||
{
|
||||
line.cut(0);
|
||||
if (codcf == clifo.get_long(CLI_CODCF)) n=cli.items();
|
||||
line.add(clifo.get(CLI_CODCF));
|
||||
line.add(clifo.get(CLI_RAGSOC));
|
||||
line.add(clifo.get(CLI_SOSPESO));
|
||||
line.add(clifo.get(CLI_COFI));
|
||||
cli.add(line);
|
||||
clifo.next();
|
||||
}
|
||||
cli.select(n);
|
||||
if (cli.run()==K_ENTER)
|
||||
{
|
||||
line=cli.row(-1);
|
||||
f.set(line.get(0));
|
||||
f.mask().set(F_CFRAGSOC,line.get(1));
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool Variazione_Effetti::effcomp_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
if (!f.mask().get(F_NRATA).empty())
|
||||
f.set("X");
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int ef0100(int argc, char* argv[])
|
||||
{
|
||||
Variazione_Effetti a ;
|
||||
a.run(argc, argv, "Gestione effetti");
|
||||
return 0;
|
||||
}
|
46
ef/ef0100.h
Executable file
46
ef/ef0100.h
Executable file
@ -0,0 +1,46 @@
|
||||
#ifndef __EF0100_H
|
||||
#define __EF0100_H
|
||||
|
||||
// campi maschera ef0100a.msk
|
||||
|
||||
#define F_NPROGTR 101
|
||||
#define F_CODCF 102
|
||||
#define F_CFRAGSOC 103
|
||||
#define F_TIPOPAG 104
|
||||
#define F_DATASCAD 105
|
||||
#define F_IMPORTO 106
|
||||
#define F_NFATT 107
|
||||
#define F_DATAFATT 108
|
||||
#define F_IMPFATT 109
|
||||
#define F_NRATA 110
|
||||
#define F_ULTRATA 111
|
||||
#define F_CODABI 112
|
||||
#define F_CODCAB 113
|
||||
#define F_DATAEMISS 114
|
||||
#define F_NUMEMISS 115
|
||||
#define F_IMPBOLLO 116
|
||||
#define F_EFFSTAMP 117
|
||||
#define F_SHEET_EFF 118
|
||||
#define F_TIPODIST 119
|
||||
#define F_DATADIST 121
|
||||
#define F_NDIST 122
|
||||
#define F_NRIGADIST 123
|
||||
#define F_DISTSTAM 124
|
||||
#define F_CODABIP 125
|
||||
#define F_CODCABP 126
|
||||
#define F_EFFCONT 127
|
||||
#define F_CODFOR 128
|
||||
#define F_ULTCLASS 129
|
||||
#define F_DATARIBA 130
|
||||
#define F_DISRIBAEST 131
|
||||
#define F_EFFCOMP 132
|
||||
|
||||
|
||||
// Identificatori campi per lo spreadsheet "Obbligati principali"
|
||||
#define F_RAGSOC 101
|
||||
#define F_LOCALITA 102
|
||||
#define F_STATO 103
|
||||
#define F_COM 104
|
||||
#define F_DENCOM 105
|
||||
|
||||
#endif // __EF0100_H
|
410
ef/ef0100a.uml
Executable file
410
ef/ef0100a.uml
Executable file
@ -0,0 +1,410 @@
|
||||
#include "ef0100.h"
|
||||
|
||||
TOOLBAR "" 0 20 0 2
|
||||
|
||||
#include <toolbar.h>
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Gestione Effetti" 0 -1 0 19
|
||||
|
||||
GROUPBOX DLG_NULL 78 4
|
||||
BEGIN
|
||||
PROMPT 1 0 "Dati effetto"
|
||||
END
|
||||
|
||||
NUMBER F_NPROGTR 7
|
||||
BEGIN
|
||||
PROMPT 2 1 "Numero "
|
||||
FIELD LF_EFFETTI->NPROGTR
|
||||
FLAGS "R"
|
||||
KEY 1
|
||||
USE LF_EFFETTI KEY 1
|
||||
JOIN LF_CLIFO TO LF_EFFETTI KEY 1 INTO CODCF=CODCF TIPOCF="C"
|
||||
INPUT NPROGTR F_NPROGTR
|
||||
DISPLAY "Nr. Progressivo" NPROGTR
|
||||
DISPLAY "Codice cliente" CODCF
|
||||
DISPLAY "Data scadenza" DATASCAD
|
||||
DISPLAY "Data fattura" DATAFATT
|
||||
DISPLAY "Numero fattura" NFATT
|
||||
DISPLAY "Importo fattura @R" IMPFATT
|
||||
DISPLAY "Importo effetto @R" IMPORTO
|
||||
DISPLAY "Tipo" TIPOPAG
|
||||
DISPLAY "Nr distinta" NDIST
|
||||
DISPLAY "Tipo distinta" TIPODIST
|
||||
OUTPUT F_NPROGTR NPROGTR
|
||||
OUTPUT F_CODCF CODCF
|
||||
OUTPUT F_DATASCAD DATASCAD
|
||||
OUTPUT F_CFRAGSOC LF_CLIFO->RAGSOC
|
||||
CHECKTYPE REQUIRED
|
||||
HELP "Inserire il numero progressivo dell'effetto"
|
||||
END
|
||||
|
||||
NUMBER F_CODCF 6
|
||||
BEGIN
|
||||
PROMPT 2 2 "Cod. cliente "
|
||||
FIELD LF_EFFETTI->CODCF
|
||||
KEY 2
|
||||
USE LF_EFFETTI KEY 2
|
||||
JOIN LF_CLIFO TO LF_EFFETTI KEY 1 INTO CODCF=CODCF TIPOCF="C"
|
||||
INPUT CODCF F_CODCF
|
||||
INPUT NPROGTR F_NPROGTR
|
||||
DISPLAY "Codice cliente" CODCF
|
||||
DISPLAY "Nr. progressivo" NPROGTR
|
||||
DISPLAY "Data scadenza" DATASCAD
|
||||
DISPLAY "Data fattura" DATAFATT
|
||||
DISPLAY "Numero fattura" NFATT
|
||||
DISPLAY "Importo fattura @R" IMPFATT
|
||||
DISPLAY "Importo effetto @R" IMPORTO
|
||||
DISPLAY "Tipo" TIPOPAG
|
||||
DISPLAY "Nr distinta" NDIST
|
||||
DISPLAY "Tipo distinta" TIPODIST
|
||||
COPY OUTPUT F_NPROGTR
|
||||
CHECKTYPE REQUIRED
|
||||
HELP "Inserire il codice del cliente. F8 ricerca cliente."
|
||||
END
|
||||
|
||||
STRING F_CFRAGSOC 50
|
||||
BEGIN
|
||||
PROMPT 25 2 ""
|
||||
USE LF_CLIFO KEY 2
|
||||
INPUT TIPOCF "C"
|
||||
INPUT RAGSOC F_CFRAGSOC
|
||||
DISPLAY "Ragione sociale@50" RAGSOC
|
||||
DISPLAY "Codice" CODCF
|
||||
OUTPUT F_CODCF CODCF
|
||||
OUTPUT F_CFRAGSOC RAGSOC
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
LIST F_TIPOPAG 16
|
||||
BEGIN
|
||||
PROMPT 2 4 "Tipo effetto "
|
||||
FIELD LF_EFFETTI->TIPOPAG
|
||||
ITEM "2|Tratta"
|
||||
MESSAGE DISABLE,F_CODFOR|RESET,F_CODFOR
|
||||
ITEM "3|Ricevuta bancaria"
|
||||
MESSAGE DISABLE,F_CODFOR|UNDO,F_CODFOR
|
||||
ITEM "4|Cessione"
|
||||
MESSAGE ENABLE,F_CODFOR|UNDO,F_CODFOR
|
||||
ITEM "5|Paghero'"
|
||||
MESSAGE DISABLE,F_CODFOR|UNDO,F_CODFOR
|
||||
HELP "Inserire il tipo dell'effetto"
|
||||
END
|
||||
|
||||
STRING F_ULTCLASS 1
|
||||
BEGIN
|
||||
PROMPT 42 4 "Ulteriore classificazione "
|
||||
FIELD LF_EFFETTI->ULTCLASS
|
||||
USE %CLR
|
||||
INPUT CODTAB[1,1] F_TIPOPAG SELECT
|
||||
INPUT CODTAB[2,2] F_ULTCLASS
|
||||
DISPLAY "Classificazione" CODTAB[2,2]
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_ULTCLASS CODTAB[2,2]
|
||||
HELP "Inserire l'ulteriore classificazione dell'effetto"
|
||||
END
|
||||
|
||||
DATE F_DATASCAD
|
||||
BEGIN
|
||||
PROMPT 2 5 "Data scadenza "
|
||||
FIELD LF_EFFETTI->DATASCAD
|
||||
KEY 3
|
||||
USE LF_EFFETTI KEY 3
|
||||
JOIN LF_CLIFO TO LF_EFFETTI KEY 1 INTO CODCF=CODCF TIPOCF="C"
|
||||
INPUT DATASCAD F_DATASCAD
|
||||
INPUT NPROGTR F_NPROGTR
|
||||
DISPLAY "Data scadenza" DATASCAD
|
||||
DISPLAY "Nr progressivo" NPROGTR
|
||||
DISPLAY "Codice cliente" CODCF
|
||||
DISPLAY "Data fattura" DATAFATT
|
||||
DISPLAY "Numero fattura" NFATT
|
||||
DISPLAY "Importo fattura @R" IMPFATT
|
||||
DISPLAY "Importo effetto @R" IMPORTO
|
||||
DISPLAY "Tipo" TIPOPAG
|
||||
DISPLAY "Nr distinta" NDIST
|
||||
DISPLAY "Tipo distinta" TIPODIST
|
||||
COPY OUTPUT F_NPROGTR
|
||||
CHECKTYPE REQUIRED
|
||||
HELP "Inserire la data di scadenza dell'effetto"
|
||||
END
|
||||
|
||||
NUMBER F_IMPORTO 15
|
||||
BEGIN
|
||||
PROMPT 42 5 "Importo effetto "
|
||||
FIELD LF_EFFETTI->IMPORTO
|
||||
FLAGS "R"
|
||||
PICTURE "."
|
||||
HELP "Inserire l'importo dell'effetto"
|
||||
VALIDATE NOT_EMPTY_FUNC
|
||||
WARNING "Manca l'importo dell'effetto"
|
||||
END
|
||||
|
||||
STRING F_NFATT 7
|
||||
BEGIN
|
||||
PROMPT 2 7 "Nr. fattura "
|
||||
FIELD LF_EFFETTI->NFATT
|
||||
VALIDATE NOT_EMPTY_FUNC
|
||||
HELP "Inserire il numero della fattura"
|
||||
WARNING "Manca il numero della fattura"
|
||||
END
|
||||
|
||||
DATE F_DATAFATT
|
||||
BEGIN
|
||||
PROMPT 2 8 "Data fattura "
|
||||
FIELD LF_EFFETTI->DATAFATT
|
||||
VALIDATE NOT_EMPTY_FUNC
|
||||
HELP "Inserire la data della fattura"
|
||||
WARNING "Manca la data della fattura"
|
||||
END
|
||||
|
||||
NUMBER F_IMPFATT 15
|
||||
BEGIN
|
||||
PROMPT 42 8 "Importo fattura "
|
||||
FIELD LF_EFFETTI->IMPFATT
|
||||
FLAGS "R"
|
||||
PICTURE "."
|
||||
NUM_EXPR {#THIS_FIELD>=#F_IMPORTO}
|
||||
HELP "Inserire l'importo della fattura"
|
||||
WARNING "L'importo dell'effetto deve essere contenuto nell'importo di fattura"
|
||||
END
|
||||
|
||||
NUMBER F_NRATA 3
|
||||
BEGIN
|
||||
PROMPT 2 9 "Nr. rata "
|
||||
FIELD LF_EFFETTI->NRATA
|
||||
HELP "Inserire il numero della rata"
|
||||
END
|
||||
|
||||
BOOLEAN F_ULTRATA
|
||||
BEGIN
|
||||
PROMPT 42 9 "Ultima rata"
|
||||
FIELD LF_EFFETTI->ULTRATA
|
||||
HELP "Inserire se e' l'ultima rata relativa alla fattura"
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 38 4
|
||||
BEGIN
|
||||
PROMPT 1 10 "Banca d'appoggio"
|
||||
END
|
||||
|
||||
NUMBER F_CODABI 5
|
||||
BEGIN
|
||||
PROMPT 2 11 "Codice ABI "
|
||||
FIELD LF_EFFETTI->CODABI
|
||||
FLAGS "RZ"
|
||||
USE %BAN KEY 1 SELECT CODTAB ?="?????"
|
||||
INPUT CODTAB F_CODABI
|
||||
DISPLAY "Codice ABI" CODTAB[1,5]
|
||||
DISPLAY "Codice CAB" CODTAB[6,10]
|
||||
DISPLAY "Denominazione@50" S0
|
||||
OUTPUT F_CODABI CODTAB[1,5]
|
||||
OUTPUT F_CODCAB CODTAB[6,10]
|
||||
CHECKTYPE REQUIRED
|
||||
HELP "Inserire il codice ABI della banca d'appoggio"
|
||||
END
|
||||
|
||||
NUMBER F_CODCAB 5
|
||||
BEGIN
|
||||
PROMPT 2 12 "Codice CAB "
|
||||
FIELD LF_EFFETTI->CODCAB
|
||||
FLAGS "RZ"
|
||||
USE %BAN
|
||||
INPUT CODTAB[1,5] F_CODABI
|
||||
INPUT CODTAB[6,10] F_CODCAB
|
||||
COPY DISPLAY F_CODABI
|
||||
OUTPUT F_CODABI CODTAB[1,5]
|
||||
OUTPUT F_CODCAB CODTAB[6,10]
|
||||
CHECKTYPE REQUIRED
|
||||
HELP "Inserire il codice CAB della banca d'appoggio"
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 38 4
|
||||
BEGIN
|
||||
PROMPT 41 10 "Banca di presentazione"
|
||||
END
|
||||
|
||||
NUMBER F_CODABIP 5
|
||||
BEGIN
|
||||
PROMPT 42 11 "Codice ABI "
|
||||
FIELD LF_EFFETTI->CODABIP
|
||||
FLAGS "RZ"
|
||||
USE %BAN KEY 1 SELECT CODTAB ?="?????"
|
||||
INPUT CODTAB F_CODABIP
|
||||
DISPLAY "Codice ABI" CODTAB[1,5]
|
||||
DISPLAY "Codice CAB" CODTAB[6,10]
|
||||
DISPLAY "Denominazione@50" S0
|
||||
OUTPUT F_CODABIP CODTAB[1,5]
|
||||
OUTPUT F_CODCABP CODTAB[6,10]
|
||||
CHECKTYPE NORMAL
|
||||
HELP "Inserire il codice ABI della banca di presentazione effetti"
|
||||
END
|
||||
|
||||
NUMBER F_CODCABP 5
|
||||
BEGIN
|
||||
PROMPT 42 12 "Codice CAB "
|
||||
FIELD LF_EFFETTI->CODCABP
|
||||
FLAGS "RZ"
|
||||
USE %BAN
|
||||
INPUT CODTAB[1,5] F_CODABIP
|
||||
INPUT CODTAB[6,10] F_CODCABP
|
||||
COPY DISPLAY F_CODABIP
|
||||
OUTPUT F_CODABIP CODTAB[1,5]
|
||||
OUTPUT F_CODCABP CODTAB[6,10]
|
||||
CHECKTYPE NORMAL
|
||||
HELP "Inserire il codice CAB della banca di presentazione effetti"
|
||||
END
|
||||
GROUPBOX DLG_NULL 78 4
|
||||
BEGIN
|
||||
PROMPT 1 14 "Dati stampa"
|
||||
END
|
||||
|
||||
DATE F_DATAEMISS
|
||||
BEGIN
|
||||
PROMPT 2 15 "Data di emissione "
|
||||
FIELD LF_EFFETTI->DATAEMISS
|
||||
END
|
||||
|
||||
NUMBER F_NUMEMISS 8
|
||||
BEGIN
|
||||
PROMPT 48 15 "Nr. di emissione "
|
||||
FIELD LF_EFFETTI->NUMEMISS
|
||||
END
|
||||
|
||||
NUMBER F_IMPBOLLO 15
|
||||
BEGIN
|
||||
PROMPT 2 16 "Importo bollo "
|
||||
FIELD LF_EFFETTI->IMPBOLLO
|
||||
FLAGS "R"
|
||||
PICTURE "."
|
||||
END
|
||||
|
||||
BOOLEAN F_EFFSTAMP
|
||||
BEGIN
|
||||
PROMPT 48 16 "Effetto stampato"
|
||||
FIELD LF_EFFETTI->EFFSTAMP
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Pag. 2" 0 -1 0 19
|
||||
|
||||
GROUPBOX DLG_NULL 78 4
|
||||
BEGIN
|
||||
PROMPT 1 0 "Dati distinta"
|
||||
END
|
||||
|
||||
LIST F_TIPODIST 15
|
||||
BEGIN
|
||||
PROMPT 2 1 "Tipo distinta "
|
||||
FIELD LF_EFFETTI->TIPODIST
|
||||
ITEM " |** Nessuno **"
|
||||
MESSAGE DISABLE,2@|RESET,2@
|
||||
ITEM "I|All'incasso"
|
||||
MESSAGE ENABLE,2@|UNDO,2@
|
||||
ITEM "B|Salvo buon fine"
|
||||
MESSAGE ENABLE,2@|UNDO,2@
|
||||
ITEM "S|Allo sconto"
|
||||
MESSAGE ENABLE,2@|UNDO,2@
|
||||
HELP "Inserire il tipo di distinta"
|
||||
END
|
||||
|
||||
NUMBER F_NDIST 8
|
||||
BEGIN
|
||||
PROMPT 53 1 "Nr Distinta "
|
||||
FIELD LF_EFFETTI->NDIST
|
||||
FLAGS "D"
|
||||
VALIDATE NOT_EMPTY_FUNC
|
||||
HELP "Inserire il numero della distinta"
|
||||
WARNING "Numero di distinta obbligatorio se si e' inserito il tipo di distinta"
|
||||
GROUP 2
|
||||
END
|
||||
|
||||
DATE F_DATADIST
|
||||
BEGIN
|
||||
PROMPT 2 2 "Data distinta "
|
||||
FIELD LF_EFFETTI->DATADIST
|
||||
FLAGS "D"
|
||||
HELP "Inserire la data della distinta"
|
||||
GROUP 2
|
||||
END
|
||||
|
||||
BOOLEAN F_DISTSTAM
|
||||
BEGIN
|
||||
PROMPT 36 2 "Stampata"
|
||||
FIELD LF_EFFETTI->DISTSTAM
|
||||
FLAGS "D"
|
||||
HELP "Inserire se la distinta e' stato stampata"
|
||||
GROUP 2
|
||||
END
|
||||
|
||||
NUMBER F_NRIGADIST 6
|
||||
BEGIN
|
||||
PROMPT 53 2 "Nr di riga "
|
||||
FIELD LF_EFFETTI->NRIGADIST
|
||||
FLAGS "D"
|
||||
HELP "Inserire il numero di riga della distinta"
|
||||
GROUP 2
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 3
|
||||
BEGIN
|
||||
PROMPT 1 4 "Dati Ri.Ba."
|
||||
END
|
||||
|
||||
DATE F_DATARIBA
|
||||
BEGIN
|
||||
PROMPT 2 5 "Data Ri.Ba. "
|
||||
FIELD LF_EFFETTI->DATARIBA
|
||||
HELP "Inserire la data della Ricevuta Bancaria"
|
||||
END
|
||||
|
||||
BOOLEAN F_DISRIBAEST
|
||||
BEGIN
|
||||
PROMPT 49 5 "Distinta Ri.Ba. estratta"
|
||||
FIELD LF_EFFETTI->DISRIBAEST
|
||||
END
|
||||
|
||||
NUMBER F_CODFOR 6
|
||||
BEGIN
|
||||
PROMPT 2 7 "Cod. fornitore "
|
||||
FIELD LF_EFFETTI->CODFOR
|
||||
USE LF_CLIFO KEY 1
|
||||
INPUT TIPOCF "F"
|
||||
INPUT CODCF F_CODFOR
|
||||
DISPLAY "Codice" CODCF
|
||||
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||
DISPLAY "Sospeso" SOSPESO
|
||||
OUTPUT F_CODFOR CODCF
|
||||
CHECKTYPE NORMAL
|
||||
HELP "Inserire il codice del fornitore relativo alla cessione"
|
||||
END
|
||||
|
||||
BOOLEAN F_EFFCONT
|
||||
BEGIN
|
||||
PROMPT 49 7 "Effetto contabilizzato"
|
||||
FIELD LF_EFFETTI->EFFCONT
|
||||
HELP "Inserire se l'effetto e' contabilizzato"
|
||||
END
|
||||
|
||||
SPREADSHEET F_SHEET_EFF 76 4
|
||||
BEGIN
|
||||
PROMPT 2 10 "Obbligati principali"
|
||||
ITEM "Ragione Sociale@50"
|
||||
ITEM "Localita'@35"
|
||||
ITEM "Stato"
|
||||
ITEM "Cod. comune"
|
||||
ITEM "Comune@50"
|
||||
END
|
||||
|
||||
BOOLEAN F_EFFCOMP
|
||||
BEGIN
|
||||
PROMPT 2 15 "Effetto compilato"
|
||||
FIELD LF_EFFETTI->EFFCOMP
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
|
||||
#include "ef0100b.uml"
|
81
ef/ef0100b.uml
Executable file
81
ef/ef0100b.uml
Executable file
@ -0,0 +1,81 @@
|
||||
#include "ef0100.h"
|
||||
|
||||
PAGE "Obbligati principali" -1 -1 76 12
|
||||
|
||||
STRING F_RAGSOC 50
|
||||
BEGIN
|
||||
PROMPT 2 2 "Rag. sociale "
|
||||
HELP "Inserire la ragione sociale dell'obbligato"
|
||||
END
|
||||
|
||||
STRING F_LOCALITA 35
|
||||
BEGIN
|
||||
PROMPT 2 4 "Localita "
|
||||
HELP "Inserire la localita dell'obbligato"
|
||||
END
|
||||
|
||||
NUMBER F_STATO 3
|
||||
BEGIN
|
||||
PROMPT 60 4 "Stato "
|
||||
FLAGS "RZ"
|
||||
USE %STA
|
||||
INPUT CODTAB F_STATO
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Stato@50" S0
|
||||
OUTPUT F_STATO CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
WARNING "Stato assente"
|
||||
HELP "Inserire lo stato in cui risiede l'obbligato"
|
||||
END
|
||||
|
||||
STRING F_COM 4
|
||||
BEGIN
|
||||
PROMPT 2 6 "Comune "
|
||||
FLAGS "U"
|
||||
USE LF_COMUNI
|
||||
INPUT STATO F_STATO
|
||||
INPUT COM F_COM
|
||||
DISPLAY "Stato" STATO
|
||||
DISPLAY "Codice" COM
|
||||
DISPLAY "Comune@50" DENCOM
|
||||
OUTPUT F_STATO STATO
|
||||
OUTPUT F_COM COM
|
||||
OUTPUT F_DENCOM DENCOM
|
||||
CHECKTYPE NORMAL
|
||||
WARNING "Comune assente"
|
||||
HELP "Inserire il comune in cui risiede l'obbligato"
|
||||
ADD MASK ba4100a
|
||||
END
|
||||
|
||||
STRING F_DENCOM 50
|
||||
BEGIN
|
||||
PROMPT 24 6 ""
|
||||
USE LF_COMUNI KEY 2
|
||||
INPUT DENCOM F_DENCOM
|
||||
DISPLAY "Comune @50" DENCOM
|
||||
DISPLAY "Stato" STATO
|
||||
DISPLAY "Codice" COM
|
||||
COPY OUTPUT F_COM
|
||||
CHECKTYPE NORMAL
|
||||
ADD MASK ba4100a
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 9 2
|
||||
BEGIN
|
||||
PROMPT -13 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_CANCEL 9 2
|
||||
BEGIN
|
||||
PROMPT -23 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_DELREC 9 2
|
||||
BEGIN
|
||||
PROMPT -33 -1 "Elimina"
|
||||
MESSAGE EXIT, K_DEL
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
121
ef/ef0101.cpp
Executable file
121
ef/ef0101.cpp
Executable file
@ -0,0 +1,121 @@
|
||||
#include <effetti.h>
|
||||
#include <cession.h>
|
||||
#include "ef0101.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
TEffObb::TEffObb():TRelation(LF_EFFETTI), _oldobbligati(0)
|
||||
{
|
||||
add(LF_CESS,"NPROGTR=NPROGTR");
|
||||
}
|
||||
|
||||
void TEffObb::destroy_rows()
|
||||
{
|
||||
_obbligati.destroy();
|
||||
}
|
||||
|
||||
TRectype& TEffObb::obbligato(int i)
|
||||
{
|
||||
TRectype *r=(TRectype*)_obbligati.objptr(i);
|
||||
|
||||
if (r == NULL)
|
||||
{
|
||||
r = new TRectype(LF_CESS);
|
||||
_obbligati.add(r,i);
|
||||
}
|
||||
return *r;
|
||||
}
|
||||
|
||||
int TEffObb::read_obbligati()
|
||||
{
|
||||
const TLocalisamfile& robb = lfile(LF_CESS);
|
||||
|
||||
position_rels();
|
||||
destroy_rows();
|
||||
for (bool ok=is_first_match(LF_CESS);ok;ok=next_match(LF_CESS))
|
||||
{
|
||||
const int nriga=robb.get_int(CES_NRIGA) -1;
|
||||
obbligato(nriga)=robb.curr();
|
||||
}
|
||||
_oldobbligati=obbligati_items();
|
||||
return NOERR;
|
||||
}
|
||||
|
||||
int TEffObb::read(TIsamop op, TReclock lockop, TDate& atdate)
|
||||
{
|
||||
int err=file().read(op,lockop,atdate);
|
||||
if (err==NOERR) read_obbligati();
|
||||
return err;
|
||||
}
|
||||
|
||||
int TEffObb::write_rec(bool re, const TRectype& rec, TLocalisamfile& f)
|
||||
{
|
||||
if (re)
|
||||
{
|
||||
const bool scrivi= (f.rewrite(rec)!=NOERR);
|
||||
if (scrivi) f.write(rec);
|
||||
} else
|
||||
f.write(rec);
|
||||
return f.status();
|
||||
}
|
||||
|
||||
int TEffObb::cancella(TLocalisamfile& f, int da, int a)
|
||||
{
|
||||
const long nprogtr=lfile().get_long(EFF_NPROGTR);
|
||||
|
||||
for (int i=da; i<=a;i++)
|
||||
{
|
||||
f.zero();
|
||||
f.put(CES_NPROGTR,nprogtr);
|
||||
f.put(CES_NRIGA,i);
|
||||
if (f.read(_isequal,_lock)==NOERR)
|
||||
f.remove();
|
||||
}
|
||||
return f.status();
|
||||
}
|
||||
|
||||
int TEffObb::registra(bool re, bool force)
|
||||
{
|
||||
TLocalisamfile& c=lfile(LF_EFFETTI);
|
||||
int err=write_rec(re,c.curr(),c);
|
||||
if (err!=NOERR) return err;
|
||||
|
||||
TLocalisamfile& robb=lfile(LF_CESS);
|
||||
const long nprogtr=c.get_long(CES_NPROGTR);
|
||||
|
||||
for (int i=0; i<obbligati_items(); i++)
|
||||
{
|
||||
if (!re)
|
||||
obbligato(i).put(CES_NPROGTR,nprogtr);
|
||||
err=write_rec(TRUE,obbligato(i),robb);
|
||||
}
|
||||
if (i<_oldobbligati)
|
||||
cancella(robb,i+1,_oldobbligati);
|
||||
_oldobbligati=obbligati_items();
|
||||
return err;
|
||||
}
|
||||
|
||||
int TEffObb::write(bool force, TDate&)
|
||||
{
|
||||
_oldobbligati=0;
|
||||
return registra(FALSE,force);
|
||||
}
|
||||
|
||||
int TEffObb::rewrite(bool force, TDate&)
|
||||
{
|
||||
return registra(TRUE,force);
|
||||
}
|
||||
|
||||
int TEffObb::remove(TDate&)
|
||||
{
|
||||
TLocalisamfile& c=lfile(LF_EFFETTI);
|
||||
|
||||
c.remove();
|
||||
|
||||
TLocalisamfile& robb=lfile(LF_CESS);
|
||||
cancella(robb,1,_oldobbligati);
|
||||
_oldobbligati=0;
|
||||
|
||||
return c.status();
|
||||
}
|
38
ef/ef0101.h
Executable file
38
ef/ef0101.h
Executable file
@ -0,0 +1,38 @@
|
||||
#ifndef __RELATION_H
|
||||
#include <relation.h>
|
||||
#endif
|
||||
|
||||
|
||||
////////////////////////////////////////////////
|
||||
|
||||
class TEffObb:public TRelation
|
||||
{
|
||||
// @DPRIV
|
||||
TArray _obbligati;
|
||||
int _oldobbligati;
|
||||
// @END
|
||||
protected:
|
||||
// @FPROT
|
||||
int write_rec(bool re, const TRectype& r, TLocalisamfile& f);
|
||||
int cancella(TLocalisamfile& f, int da, int a);
|
||||
int registra(bool re, bool force);
|
||||
int read_obbligati();
|
||||
// @END
|
||||
public:
|
||||
virtual int next(TReclock lockop=_nolock) {return (lfile().next(lockop) || read_obbligati());}
|
||||
virtual int prev(TReclock lockop=_nolock) {return (lfile().prev(lockop) || read_obbligati());}
|
||||
virtual int first(TReclock lockop=_nolock) {return (lfile().first(lockop) || read_obbligati());}
|
||||
virtual int last(TReclock lockop=_nolock) {return (lfile().last(lockop) || read_obbligati());}
|
||||
virtual int skip(TReclock lockop=_nolock) {return (lfile().skip(lockop) || read_obbligati());}
|
||||
virtual int read(TIsamop = _isgteq, TReclock lockop = _nolock, TDate& atdate = (TDate&) botime);
|
||||
virtual int write(bool force=TRUE, TDate& atdate = (TDate&) botime);
|
||||
virtual int rewrite(bool force=TRUE, TDate& atdate = (TDate&) botime);
|
||||
virtual int remove(TDate& atdate = (TDate&) botime);
|
||||
|
||||
TRectype& obbligato(int i);
|
||||
int obbligati_items() const {return _obbligati.items();}
|
||||
void destroy_rows();
|
||||
|
||||
TEffObb();
|
||||
virtual ~TEffObb() {}
|
||||
};
|
243
ef/ef0200.cpp
Executable file
243
ef/ef0200.cpp
Executable file
@ -0,0 +1,243 @@
|
||||
#include <applicat.h>
|
||||
#include <mask.h>
|
||||
#include <maskfld.h>
|
||||
#include <sheet.h>
|
||||
#include <msksheet.h>
|
||||
#include <urldefid.h>
|
||||
#include <lffiles.h>
|
||||
#include <clifo.h>
|
||||
#include <effetti.h>
|
||||
#include "ef0.h"
|
||||
#include "ef0200.h"
|
||||
|
||||
class Creazione_Effetti_da_EC : public TApplication
|
||||
{
|
||||
TMask * _msk;
|
||||
TArray_sheet * _Partite_aperte;
|
||||
real _residuo;
|
||||
|
||||
void Load_Partite_Aperte(const long cli);
|
||||
static bool Gen_Handler(TMask_field& f, KEY k);
|
||||
static bool Gen_Notify(int r, KEY k);
|
||||
static bool Cli_Handler(TMask_field& f, KEY k);
|
||||
virtual bool create();
|
||||
virtual bool destroy();
|
||||
virtual bool menu(MENU_TAG m);
|
||||
public:
|
||||
real get_res() {return _residuo;}
|
||||
void set_res(real& a) {_residuo = a;}
|
||||
TMask* get_msk() {return _msk;}
|
||||
Creazione_Effetti_da_EC() : _residuo(0.0) {}
|
||||
};
|
||||
|
||||
inline Creazione_Effetti_da_EC& app() {return (Creazione_Effetti_da_EC&)main_app();}
|
||||
|
||||
void Creazione_Effetti_da_EC::Load_Partite_Aperte(const long cli)
|
||||
{
|
||||
/*
|
||||
Caricamento partite aperte da E.C.
|
||||
|
||||
Questo che segue e' pseudo-codice; andra' verificato non appena
|
||||
sara' completato lo scadenziario.
|
||||
|
||||
TLocalisamfile Ec(LF_........);
|
||||
|
||||
* Carica tutte le partite aperte del cliente *
|
||||
|
||||
Ec.zero();
|
||||
Ec.put(EC_CODCLI,cli);
|
||||
Ec.read();
|
||||
|
||||
Finche' si tratta dello stesso cliente...
|
||||
|
||||
while (Ec.good() && Ec.get_long(EC_CODCLI) == cli)
|
||||
{
|
||||
|
||||
Controlla se la partita esaminata e' aperta...
|
||||
|
||||
if (Ec.get(EC_APERTA))
|
||||
{
|
||||
Con questo le carica tutte nello sheet...
|
||||
|
||||
TToken_string riga(80);
|
||||
riga.cut(0);
|
||||
riga.add(Ec.get(EC_ANNO));
|
||||
riga.add(Ec.get(EC_NUMERO));
|
||||
riga.add(Ec.get(EC_DATADOC));
|
||||
riga.add(Ec.get(EC_SALDO));
|
||||
_Partite_aperte->add(riga);
|
||||
}
|
||||
|
||||
Legge il prossimo record
|
||||
|
||||
Ec.next()
|
||||
}
|
||||
*/
|
||||
TToken_string riga(80);
|
||||
riga.cut(0);
|
||||
riga.add("");
|
||||
riga.add("1994");
|
||||
riga.add("1");
|
||||
riga.add("10-11-94");
|
||||
riga.add("19000000");
|
||||
_Partite_aperte->add(riga);
|
||||
riga.cut(0);
|
||||
riga.add("");
|
||||
riga.add("1994");
|
||||
riga.add("2");
|
||||
riga.add("11-11-94");
|
||||
riga.add("18000000");
|
||||
_Partite_aperte->add(riga);
|
||||
riga.cut(0);
|
||||
riga.add("");
|
||||
riga.add("1994");
|
||||
riga.add("3");
|
||||
riga.add("16-11-94");
|
||||
riga.add("23009000");
|
||||
_Partite_aperte->add(riga);
|
||||
riga.cut(0);
|
||||
riga.add("");
|
||||
riga.add("1994");
|
||||
riga.add("4");
|
||||
riga.add("19-11-94");
|
||||
riga.add("450600");
|
||||
_Partite_aperte->add(riga);
|
||||
}
|
||||
|
||||
bool Creazione_Effetti_da_EC::Gen_Handler(TMask_field& f, KEY k)
|
||||
{
|
||||
if (k==K_TAB && f.focusdirty())
|
||||
{
|
||||
real importo=(real)(const char*)f.mask().get(F_RATA);
|
||||
importo+=(real)(const char*)f.mask().get(F_SPESE);
|
||||
importo+=(real)(const char*)f.mask().get(F_BOLLI);
|
||||
f.mask().set(F_IMPEFF,importo.string("."));
|
||||
f.set_focusdirty(FALSE);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool Creazione_Effetti_da_EC::Gen_Notify(int r, KEY k)
|
||||
{
|
||||
TSheet_field& S=(TSheet_field&)app().get_msk()->field(F_SHEET_EFF);
|
||||
static real old_rata;
|
||||
real importo;
|
||||
|
||||
switch (k)
|
||||
{
|
||||
case K_INS:
|
||||
if (app().get_res().is_zero())
|
||||
{
|
||||
warning_box("Residuo da ripartire gia' annullato");
|
||||
return FALSE;
|
||||
}
|
||||
break;
|
||||
case K_SPACE:
|
||||
old_rata=(real)(const char*)S.row(r).get(1);
|
||||
break;
|
||||
case K_DEL:
|
||||
app().set_res(app().get_res() + (real)(const char*)S.row(r).get(1));
|
||||
break;
|
||||
case K_ENTER:
|
||||
app().set_res(app().get_res() - (real)(const char*)S.row(r).get(1) + old_rata);
|
||||
if (app().get_res()<0)
|
||||
{
|
||||
warning_box("Non e' possibile superare l'importo da ripartire");
|
||||
if (old_rata.is_zero())
|
||||
{
|
||||
app().set_res(app().get_res() + (real)(const char*)S.row(r).get(1));
|
||||
S.row(r).add(app().get_res().string(),1);
|
||||
app().set_res(0.0);
|
||||
} else
|
||||
{
|
||||
app().set_res(app().get_res() + (real)(const char*)S.row(r).get(1) - old_rata);
|
||||
S.row(r).add(old_rata.string(),1);
|
||||
}
|
||||
}
|
||||
importo=(real)(const char*)S.row(r).get(1);
|
||||
importo+=(real)(const char*)S.row(r).get(2);
|
||||
importo+=(real)(const char*)S.row(r).get(3);
|
||||
S.row(r).add(importo.string(),4);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
S.mask().set(F_RESIDUO,app().get_res().string("."));
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool Creazione_Effetti_da_EC::Cli_Handler(TMask_field&f, KEY k)
|
||||
{
|
||||
if (f.focusdirty())
|
||||
{
|
||||
TSheet_field& S=(TSheet_field&)f.mask().field(F_SHEET_EFF);
|
||||
S.reset();
|
||||
S.force_update();
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool Creazione_Effetti_da_EC::create()
|
||||
{
|
||||
_msk = new TMask("ef0200a");
|
||||
TSheet_field& Sheet_Eff = (TSheet_field&) _msk->field(F_SHEET_EFF);
|
||||
Sheet_Eff.set_notify(Gen_Notify);
|
||||
Sheet_Eff.enable_column(4,FALSE);
|
||||
TMask& SMask=Sheet_Eff.sheet_mask();
|
||||
SMask.set_handler(F_RATA,Gen_Handler);
|
||||
SMask.set_handler(F_SPESE,Gen_Handler);
|
||||
SMask.set_handler(F_BOLLI,Gen_Handler);
|
||||
_msk->set_handler(F_CODCF,Cli_Handler);
|
||||
dispatch_e_menu(BAR_ITEM(1));
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool Creazione_Effetti_da_EC::destroy()
|
||||
{
|
||||
if (_msk != NULL) delete _msk;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool Creazione_Effetti_da_EC::menu(MENU_TAG)
|
||||
{
|
||||
KEY tasto;
|
||||
|
||||
do {
|
||||
tasto=get_msk()->run();
|
||||
switch (tasto)
|
||||
{
|
||||
case K_ENTER: // first check if the application can write effects
|
||||
{
|
||||
TSheet_field& S=(TSheet_field&)get_msk()->field(F_SHEET_EFF);
|
||||
if (!_residuo && S.items()>0)
|
||||
message_box("Perform writing procedure...");
|
||||
break;
|
||||
}
|
||||
case K_F6: //Selects opened counts from E.C.
|
||||
{
|
||||
_residuo=0.0;
|
||||
_Partite_aperte = new TArray_sheet(-1,-1,0,0,"Selezione partite aperte","@1|Anno|Numero|Data documento|Saldo@15");
|
||||
Load_Partite_Aperte(get_msk()->get_long(F_CODCF));
|
||||
_Partite_aperte->run();
|
||||
for (int i=0; i<_Partite_aperte->items(); i++)
|
||||
if (_Partite_aperte->checked(i))
|
||||
_residuo+=(real)_Partite_aperte->row(i).get(4);
|
||||
delete _Partite_aperte;
|
||||
get_msk()->set(F_RESIDUO,_residuo.string("."));
|
||||
TSheet_field& S=(TSheet_field&)get_msk()->field(F_SHEET_EFF);
|
||||
S.reset();
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
} while (tasto!=K_QUIT);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
int ef0200(int argc, char* argv[])
|
||||
{
|
||||
Creazione_Effetti_da_EC a ;
|
||||
a.run(argc, argv, "Creazione effetti da E.C.");
|
||||
return 0;
|
||||
}
|
31
ef/ef0200.h
Executable file
31
ef/ef0200.h
Executable file
@ -0,0 +1,31 @@
|
||||
#ifndef __EF0200_H
|
||||
#define __EF0200_H
|
||||
|
||||
// campi maschera ef0200a.msk
|
||||
|
||||
#define F_CODCF 101
|
||||
#define F_RAGSOC 102
|
||||
#define F_INDIRIZZO 103
|
||||
#define F_COMUNE 104
|
||||
#define F_PROV 105
|
||||
#define F_CODABI 106
|
||||
#define F_CODCAB 107
|
||||
#define F_TIPOEFF 108
|
||||
#define F_ADDEBITO 109
|
||||
#define F_ADDSPINC 110
|
||||
#define F_ADDBOLLITR 111
|
||||
#define F_ADDBOLLIRB 112
|
||||
#define F_ADDBNS1500 113
|
||||
#define F_RESIDUO 114
|
||||
#define F_SHEET_EFF 115
|
||||
|
||||
#define DLG_PARTITE 201
|
||||
|
||||
// campi per maschera ef0200b
|
||||
#define F_DATASCAD 101
|
||||
#define F_RATA 102
|
||||
#define F_SPESE 103
|
||||
#define F_BOLLI 104
|
||||
#define F_IMPEFF 105
|
||||
|
||||
#endif // __EF0200_H
|
169
ef/ef0200a.uml
Executable file
169
ef/ef0200a.uml
Executable file
@ -0,0 +1,169 @@
|
||||
#include "ef0200.h"
|
||||
|
||||
PAGE "Selezione dati" -1 1 78 21
|
||||
|
||||
GROUPBOX DLG_NULL 76 5
|
||||
BEGIN
|
||||
PROMPT 1 0 "Dati clienti"
|
||||
END
|
||||
|
||||
NUMBER F_CODCF 6
|
||||
BEGIN
|
||||
PROMPT 2 1 "Cliente "
|
||||
USE LF_CLIFO KEY 1
|
||||
JOIN LF_CFVEN TO LF_CLIFO KEY 1 INTO CODCF=CODCF TIPOCF="C"
|
||||
JOIN LF_COMUNI TO LF_CLIFO KEY 1 INTO STATO=STATOCF COM=COMCF
|
||||
INPUT TIPOCF "C"
|
||||
INPUT CODCF F_CODCF
|
||||
DISPLAY "Codice" CODCF
|
||||
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||
DISPLAY "Codice fiscale@16" COFI
|
||||
DISPLAY "Partita IVA@11" PAIV
|
||||
DISPLAY "Comune@50" LF_COMUNI->DENCOM
|
||||
OUTPUT F_CODCF CODCF
|
||||
OUTPUT F_RAGSOC RAGSOC
|
||||
OUTPUT F_INDIRIZZO INDCF
|
||||
OUTPUT F_CODABI CODABI
|
||||
OUTPUT F_CODCAB CODCAB
|
||||
OUTPUT F_ADDSPINC LF_CFVEN->ADDSPINC
|
||||
OUTPUT F_ADDBOLLIRB LF_CFVEN->ADDBOLLIRB
|
||||
OUTPUT F_ADDBOLLITR LF_CFVEN->ADDBOLLITR
|
||||
OUTPUT F_ADDBNS1500 LF_CFVEN->ADDBNS1500
|
||||
OUTPUT F_COMUNE LF_COMUNI->DENCOM
|
||||
OUTPUT F_PROV LF_COMUNI->PROVCOM
|
||||
HELP "Inserire il codice del cliente"
|
||||
END
|
||||
|
||||
STRING F_RAGSOC 50
|
||||
BEGIN
|
||||
PROMPT 22 1 ""
|
||||
USE LF_CLIFO KEY 2
|
||||
JOIN LF_CFVEN TO LF_CLIFO KEY 1 INTO CODCF=CODCF TIPOCF="C"
|
||||
JOIN LF_COMUNI TO LF_CLIFO KEY 1 INTO STATO=STATOCF COM=COMCF
|
||||
INPUT TIPOCF "C"
|
||||
INPUT RAGSOC F_RAGSOC
|
||||
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||
DISPLAY "Codice" CODCF
|
||||
DISPLAY "Codice fiscale@16" COFI
|
||||
DISPLAY "Partita IVA@11" PAIV
|
||||
COPY OUTPUT F_CODCF
|
||||
END
|
||||
|
||||
STRING F_INDIRIZZO 35
|
||||
BEGIN
|
||||
PROMPT 2 2 "Indirizzo "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_COMUNE 50
|
||||
BEGIN
|
||||
PROMPT 2 3 "Comune "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_PROV 2
|
||||
BEGIN
|
||||
PROMPT 70 3 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_CODABI 5
|
||||
BEGIN
|
||||
PROMPT 2 5 "Banca d'appoggio "
|
||||
FLAGS "RZ"
|
||||
USE %BAN KEY 1 SELECT CODTAB ?="?????"
|
||||
INPUT CODTAB F_CODABI
|
||||
DISPLAY "Codice ABI" CODTAB[1,5]
|
||||
DISPLAY "Codice CAB" CODTAB[6,10]
|
||||
DISPLAY "Denominazione@50" S0
|
||||
OUTPUT F_CODABI CODTAB[1,5]
|
||||
OUTPUT F_CODCAB CODTAB[6,10]
|
||||
CHECKTYPE NORMAL
|
||||
HELP "Inserire il codice della banca d'appoggio"
|
||||
END
|
||||
|
||||
NUMBER F_CODCAB 5
|
||||
BEGIN
|
||||
PROMPT 32 5 ""
|
||||
FLAGS "RZ"
|
||||
USE %BAN
|
||||
INPUT CODTAB[1,5] F_CODABI
|
||||
INPUT CODTAB[6,10] F_CODCAB
|
||||
COPY DISPLAY F_CODABI
|
||||
COPY OUTPUT F_CODABI
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
LIST F_TIPOEFF 16
|
||||
BEGIN
|
||||
PROMPT 43 5 "Tipo effetto "
|
||||
ITEM "2|Tratta"
|
||||
ITEM "3|Ricevuta bancaria"
|
||||
HELP "Inserire il tipo dell'effetto"
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 35 4
|
||||
BEGIN
|
||||
PROMPT 1 6 "Addebiti"
|
||||
END
|
||||
|
||||
BOOLEAN F_ADDSPINC
|
||||
BEGIN
|
||||
PROMPT 2 7 "Sp. incasso"
|
||||
HELP "Flag di addebito delle spese d'incasso"
|
||||
END
|
||||
|
||||
BOOLEAN F_ADDBOLLIRB
|
||||
BEGIN
|
||||
PROMPT 19 7 "Bolli R.B."
|
||||
HELP "Flag di addebito bolli delle R.B. "
|
||||
END
|
||||
|
||||
BOOLEAN F_ADDBOLLITR
|
||||
BEGIN
|
||||
PROMPT 2 8 "Bolli Tr."
|
||||
HELP "Flag di addebito bolli delle tratte"
|
||||
END
|
||||
|
||||
BOOLEAN F_ADDBNS1500
|
||||
BEGIN
|
||||
PROMPT 19 8 "Bollo esente"
|
||||
HELP "Flag di addebito dei bolli"
|
||||
END
|
||||
|
||||
BUTTON DLG_PARTITE 9 2
|
||||
BEGIN
|
||||
PROMPT 39 8 "~Partite"
|
||||
MESSAGE EXIT,K_F6
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 9 2
|
||||
BEGIN
|
||||
PROMPT 52 8 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 9 2
|
||||
BEGIN
|
||||
PROMPT 65 8 ""
|
||||
END
|
||||
|
||||
STRING F_RESIDUO 15
|
||||
BEGIN
|
||||
PROMPT 2 10 "Residuo da ripartire "
|
||||
FLAGS "RD"
|
||||
END
|
||||
|
||||
SPREADSHEET F_SHEET_EFF 74 8
|
||||
BEGIN
|
||||
PROMPT 2 12 "Immissione effetti"
|
||||
ITEM "Data scad."
|
||||
ITEM "Importo rata@15 R"
|
||||
ITEM "Spese incasso@15 R"
|
||||
ITEM "Importo bolli@15 R"
|
||||
ITEM "Importo effetto@15 R"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
ENDMASK
|
||||
|
||||
#include "ef0200b.uml"
|
60
ef/ef0200b.uml
Executable file
60
ef/ef0200b.uml
Executable file
@ -0,0 +1,60 @@
|
||||
#include "ef0200.h"
|
||||
|
||||
PAGE "Immissione effetti" -1 -1 60 10
|
||||
|
||||
DATE F_DATASCAD
|
||||
BEGIN
|
||||
PROMPT 2 1 "Data scadenza "
|
||||
HELP "Inserire la data di scadenza dell'effetto"
|
||||
MESSAGE DISABLE,F_IMPEFF
|
||||
END
|
||||
|
||||
NUMBER F_RATA 15
|
||||
BEGIN
|
||||
PROMPT 2 3 "Importo rata "
|
||||
PICTURE "."
|
||||
FLAGS "R"
|
||||
HELP "Inserire l'importo della rata"
|
||||
END
|
||||
|
||||
NUMBER F_SPESE 15
|
||||
BEGIN
|
||||
PROMPT 2 5 "Spese incasso "
|
||||
PICTURE "."
|
||||
FLAGS "R"
|
||||
HELP "Inserire l'importo delle spese d'incasso"
|
||||
END
|
||||
|
||||
NUMBER F_BOLLI 15
|
||||
BEGIN
|
||||
PROMPT 2 7 "Importo bolli "
|
||||
PICTURE "."
|
||||
FLAGS "R"
|
||||
HELP "Inserire l'importo dei bolli"
|
||||
END
|
||||
|
||||
STRING F_IMPEFF 15
|
||||
BEGIN
|
||||
PROMPT 2 9 "Importo effetto "
|
||||
FLAGS "R"
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 9 2
|
||||
BEGIN
|
||||
PROMPT 45 3 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_CANCEL 9 2
|
||||
BEGIN
|
||||
PROMPT 45 5 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_DELREC 9 2
|
||||
BEGIN
|
||||
PROMPT 45 7 "Elimina"
|
||||
MESSAGE EXIT,K_DEL
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
36
ef/effetti.h
Executable file
36
ef/effetti.h
Executable file
@ -0,0 +1,36 @@
|
||||
#ifndef __EFF_H
|
||||
#define __EFF_H
|
||||
|
||||
#define EFF_NPROGTR "NPROGTR"
|
||||
#define EFF_DATASCAD "DATASCAD"
|
||||
#define EFF_TIPOPAG "TIPOPAG"
|
||||
#define EFF_ULTCLASS "ULTCLASS"
|
||||
#define EFF_CODCF "CODCF"
|
||||
#define EFF_NUMEMISS "NUMEMISS"
|
||||
#define EFF_DATAEMISS "DATAEMISS"
|
||||
#define EFF_ANNO "ANNO"
|
||||
#define EFF_NUMPART "NUMPART"
|
||||
#define EFF_NFATT "NFATT"
|
||||
#define EFF_DATAFATT "DATAFATT"
|
||||
#define EFF_IMPFATT "IMPFATT"
|
||||
#define EFF_IMPORTO "IMPORTO"
|
||||
#define EFF_NRATA "NRATA"
|
||||
#define EFF_CODABI "CODABI"
|
||||
#define EFF_CODCAB "CODCAB"
|
||||
#define EFF_IMPBOLLO "IMPBOLLO"
|
||||
#define EFF_ULTRATA "ULTRATA"
|
||||
#define EFF_TIPODIST "TIPODIST"
|
||||
#define EFF_NDIST "NDIST"
|
||||
#define EFF_DATADIST "DATADIST"
|
||||
#define EFF_NRIGADIST "NRIGADIST"
|
||||
#define EFF_EFFCOMP "EFFCOMP"
|
||||
#define EFF_EFFSTAMP "EFFSTAMP"
|
||||
#define EFF_DISTSTAM "DISTSTAM"
|
||||
#define EFF_EFFCONT "EFFCONT"
|
||||
#define EFF_CODFOR "CODFOR"
|
||||
#define EFF_CODABIP "CODABIP"
|
||||
#define EFF_CODCABP "CODCABP"
|
||||
#define EFF_DATARIBA "DATARIBA"
|
||||
#define EFF_DISRIBAEST "DISRIBAEST"
|
||||
|
||||
#endif
|
49
ef/makefile
Executable file
49
ef/makefile
Executable file
@ -0,0 +1,49 @@
|
||||
EXE=$(EP)ef0
|
||||
FRL=$(EP)ef0.frl
|
||||
|
||||
|
||||
$(O)/%.o: %.cpp
|
||||
$(CCOMP) $(CFLAGSD) $(<:.cpp= ) $(O)/$*
|
||||
|
||||
$(EP)%.msk: %.uml
|
||||
$(MCOMP) $(basename $<) $(basename $@)
|
||||
|
||||
$(EP)%.frm: %.frm
|
||||
cp $< $(EP)
|
||||
|
||||
$(EP)%.rpt: %.rpt
|
||||
rptcomp $(basename $<) $(basename $@)
|
||||
|
||||
$(EP)%.mnu: %.mnu
|
||||
cp $< $(EP)
|
||||
|
||||
$(EP)%.ini: %.ini
|
||||
cp $< $(EP)
|
||||
|
||||
include ../include/include.mak
|
||||
|
||||
.PRECIOUS: $(EXE) $(FRL)
|
||||
|
||||
ef: $(EXE) etc
|
||||
|
||||
etc: masks $(FRL)
|
||||
|
||||
$(O)/ef0.o: ef0.cpp $(I10) $(I24) $(I32)
|
||||
|
||||
$(O)/ef0100.o: ef0100.cpp $(I15) $(I31) $(I53) ef0100.h ef0.h
|
||||
|
||||
$(O)/ef0101.o: ef0101.cpp $(I15) $(I31) $(I53) ef0100.h ef0.h
|
||||
|
||||
$(O)/ef0200.o: ef0200.cpp $(I15) $(I31) $(I53) ef0200.h ef0.h
|
||||
|
||||
$(EP)ef0: $(O)/ef0.o $(O)/ef0100.o $(O)/ef0101.o $(O)/ef0200.o $(LIBD1) $(EP)ef0.frl
|
||||
$(LINK) $(LFLAGSD1) $@ $(O)/ef0.o $(O)/ef0100.o $(O)/ef0101.o $(O)/ef0200.o
|
||||
|
||||
$(EP)ef0.frl: ef0.url $(U1)
|
||||
$(RCOMP) ef0 -l $(EP)ef0
|
||||
|
||||
masks: $(EP)ef0100a.msk $(EP)ef0200a.msk
|
||||
|
||||
$(EP)ef0100a.msk: ef0100a.uml ef0100b.uml ef0100.h $(E1)
|
||||
|
||||
$(EP)ef0200a.msk: ef0200a.uml ef0200b.uml ef0200.h $(E1)
|
Loading…
x
Reference in New Issue
Block a user