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:
angelo 1996-10-21 14:34:51 +00:00
parent 61f5aee724
commit cacddb21b7
17 changed files with 1660 additions and 0 deletions

116
ef/buildef.mak Executable file
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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)