Repository m770

git-svn-id: svn://10.65.10.50/trunk@2996 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
villa 1996-06-17 08:46:44 +00:00
parent fc56ab436a
commit 57c332a0d4
268 changed files with 58956 additions and 0 deletions

31
m770/770.cpp Executable file
View File

@ -0,0 +1,31 @@
#include <xvt.h>
#include <checks.h>
#include "770.h"
#define usage "Error - usage : %s -{0|1|2|3|4|5} [params]"
int main(int argc,char** argv)
{
const int n = (argc > 1) ? atoi(argv[1]+1) : -1;
switch(n)
{
case 0:
SchedaPerc(argc,argv); break;
case 1:
collega_vers_rit(argc,argv); break;
case 2:
// cg1300(argc,argv); break;
case 3:
// cg1400(argc,argv); break;
case 4:
// cg1500(argc,argv); break;
case 5:
// cg1600(argc,argv); break;
case 6:
// cg1700(argc,argv); break;
default:
error_box(usage, argv[0]); break;
}
return n < 0;
}

19
m770/770.h Executable file
View File

@ -0,0 +1,19 @@
#ifndef __770_H
#define __770_H
#ifdef MAIN
#define extern
#endif
#ifdef MAIN
#undef extern
#endif
#ifndef __STRINGS_H
#include <strings.h>
#endif
int SchedaPerc(int argc, char* argv[]);
int collega_vers_rit(int argc, char* argv[]);
#endif // __770_H

436
m770/770.mak Executable file
View File

@ -0,0 +1,436 @@
# Microsoft Visual C++ generated build script - Do not modify
PROJ = 770
DEBUG = 1
PROGTYPE = 0
CALLER =
ARGS = -0 -u prassi
DLLS =
D_RCDEFINES = /d_DEBUG
R_RCDEFINES = /dNDEBUG
ORIGIN = MSVC
ORIGIN_VER = 1.00
PROJPATH = F:\NIK\P.DUE\77\
USEMFC = 0
CC = cl
CPP = cl
CXX = cl
CCREATEPCHFLAG =
CPPCREATEPCHFLAG =
CUSEPCHFLAG =
CPPUSEPCHFLAG =
FIRSTC =
FIRSTCPP = 770.CPP
RC = rc
CFLAGS_D_WEXE = /nologo /Gs /G2 /Gy /W3 /Gf /Zi /AL /Gt65000 /Od /D "XVT_OS"="400" /D "DBG" /FR /GA /Fd"770.PDB"
CFLAGS_R_WEXE = /nologo /Gs /Gy /W3 /Gf /AL /Gt65000 /O1 /D "XVT_OS"="400" /FR /GA
LFLAGS_D_WEXE = /NOLOGO /NOD /NOE /PACKC:65000 /PACKD:65000 /SEG:512 /ALIGN:16 /ONERROR:NOEXE /CO
LFLAGS_R_WEXE = /NOLOGO /NOD /NOE /PACKC:65000 /PACKD:65000 /SEG:512 /ALIGN:16 /ONERROR:NOEXE
LIBS_D_WEXE = oldnames libw llibcew toolhelp.lib
LIBS_R_WEXE = oldnames libw llibcew toolhelp.lib
RCFLAGS = /nologo
RESFLAGS = /nologo /k
RUNFLAGS =
DEFFILE = ..\WIN\LIB\UNIVERSL.DEF
OBJS_EXT =
LIBS_EXT = ..\WIN\LIB\WINDUED.LIB ..\WIN\LIB\WINGFM.LIB ..\WIN\LIB\WINUNO.LIB ..\WIN\LIB\XVT400.LIB \
..\WIN\LIB\HLAPI_CW.LIB
!if "$(DEBUG)" == "1"
CFLAGS = $(CFLAGS_D_WEXE)
LFLAGS = $(LFLAGS_D_WEXE)
LIBS = $(LIBS_D_WEXE)
MAPFILE = nul
RCDEFINES = $(D_RCDEFINES)
!else
CFLAGS = $(CFLAGS_R_WEXE)
LFLAGS = $(LFLAGS_R_WEXE)
LIBS = $(LIBS_R_WEXE)
MAPFILE = nul
RCDEFINES = $(R_RCDEFINES)
!endif
!if [if exist MSVC.BND del MSVC.BND]
!endif
SBRS = 770.SBR \
770100.SBR \
770101.SBR \
770102.SBR \
770200.SBR
WINDUED_DEP =
WINGFM_DEP =
WINUNO_DEP =
XVT400_DEP =
HLAPI_CW_DEP =
770_DEP = f:\xvt.400\win_x86\ptk\include\xvt.h \
f:\xvt.400\win_x86\ptk\include\xvt_env.h \
f:\xvt.400\win_x86\ptk\include\xvt_plat.h \
f:\xvt.400\win_x86\ptk\include\xvt_varg.h \
f:\xvt.400\win_x86\ptk\include\xvt_styp.h \
f:\xvt.400\win_x86\ptk\include\xvt_defs.h \
f:\xvt.400\win_x86\ptk\include\xvt_menu.h \
f:\xvt.400\win_x86\ptk\include\xvt_type.h \
f:\xvt.400\win_x86\ptk\include\xvt_sel.h \
f:\xvt.400\win_x86\ptk\include\xvt_perr.h \
f:\xvt.400\win_x86\ptk\include\xvt_help.h \
f:\xvt.400\win_x86\ptk\include\xvt_r3.h \
f:\xvt.400\win_x86\ptk\include\xvterr.h \
f:\xvt.400\win_x86\ptk\include\xvtapp.h \
f:\xvt.400\win_x86\ptk\include\xvtcb.h \
f:\xvt.400\win_x86\ptk\include\xvtctl.h \
f:\xvt.400\win_x86\ptk\include\xvtdebug.h \
f:\xvt.400\win_x86\ptk\include\xvtdlg.h \
f:\xvt.400\win_x86\ptk\include\xvtdm.h \
f:\xvt.400\win_x86\ptk\include\xvtdwin.h \
f:\xvt.400\win_x86\ptk\include\xvtevent.h \
f:\xvt.400\win_x86\ptk\include\xvtfont.h \
f:\xvt.400\win_x86\ptk\include\xvtfsys.h \
f:\xvt.400\win_x86\ptk\include\xvtgmem.h \
f:\xvt.400\win_x86\ptk\include\xvtiostr.h \
f:\xvt.400\win_x86\ptk\include\xvtimage.h \
f:\xvt.400\win_x86\ptk\include\xvtlist.h \
f:\xvt.400\win_x86\ptk\include\xvtmenu.h \
f:\xvt.400\win_x86\ptk\include\xvtmem.h \
f:\xvt.400\win_x86\ptk\include\xvtpalet.h \
f:\xvt.400\win_x86\ptk\include\xvtpict.h \
f:\xvt.400\win_x86\ptk\include\xvtpmap.h \
f:\xvt.400\win_x86\ptk\include\xvtprint.h \
f:\xvt.400\win_x86\ptk\include\xvtrect.h \
f:\xvt.400\win_x86\ptk\include\xvtres.h \
f:\xvt.400\win_x86\ptk\include\xvtsbar.h \
f:\xvt.400\win_x86\ptk\include\xvtscr.h \
f:\xvt.400\win_x86\ptk\include\xvtslist.h \
f:\xvt.400\win_x86\ptk\include\xvtstr.h \
f:\xvt.400\win_x86\ptk\include\xvttimer.h \
f:\xvt.400\win_x86\ptk\include\xvttx.h \
f:\xvt.400\win_x86\ptk\include\xvtvobj.h \
f:\xvt.400\win_x86\ptk\include\xvtwin.h \
f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \
f:\p.due\include\checks.h \
f:\p.due\77\770.h \
f:\p.due\include\strings.h \
f:\p.due\include\array.h \
f:\p.due\include\object.h \
f:\p.due\include\classes.h \
f:\p.due\include\stdtypes.h
770100_DEP = f:\p.due\include\relapp.h \
f:\p.due\include\applicat.h \
f:\xvt.400\win_x86\ptk\include\xvt.h \
f:\xvt.400\win_x86\ptk\include\xvt_env.h \
f:\xvt.400\win_x86\ptk\include\xvt_plat.h \
f:\xvt.400\win_x86\ptk\include\xvt_varg.h \
f:\xvt.400\win_x86\ptk\include\xvt_styp.h \
f:\xvt.400\win_x86\ptk\include\xvt_defs.h \
f:\xvt.400\win_x86\ptk\include\xvt_menu.h \
f:\xvt.400\win_x86\ptk\include\xvt_type.h \
f:\xvt.400\win_x86\ptk\include\xvt_sel.h \
f:\xvt.400\win_x86\ptk\include\xvt_perr.h \
f:\xvt.400\win_x86\ptk\include\xvt_help.h \
f:\xvt.400\win_x86\ptk\include\xvt_r3.h \
f:\xvt.400\win_x86\ptk\include\xvterr.h \
f:\xvt.400\win_x86\ptk\include\xvtapp.h \
f:\xvt.400\win_x86\ptk\include\xvtcb.h \
f:\xvt.400\win_x86\ptk\include\xvtctl.h \
f:\xvt.400\win_x86\ptk\include\xvtdebug.h \
f:\xvt.400\win_x86\ptk\include\xvtdlg.h \
f:\xvt.400\win_x86\ptk\include\xvtdm.h \
f:\xvt.400\win_x86\ptk\include\xvtdwin.h \
f:\xvt.400\win_x86\ptk\include\xvtevent.h \
f:\xvt.400\win_x86\ptk\include\xvtfont.h \
f:\xvt.400\win_x86\ptk\include\xvtfsys.h \
f:\xvt.400\win_x86\ptk\include\xvtgmem.h \
f:\xvt.400\win_x86\ptk\include\xvtiostr.h \
f:\xvt.400\win_x86\ptk\include\xvtimage.h \
f:\xvt.400\win_x86\ptk\include\xvtlist.h \
f:\xvt.400\win_x86\ptk\include\xvtmenu.h \
f:\xvt.400\win_x86\ptk\include\xvtmem.h \
f:\xvt.400\win_x86\ptk\include\xvtpalet.h \
f:\xvt.400\win_x86\ptk\include\xvtpict.h \
f:\xvt.400\win_x86\ptk\include\xvtpmap.h \
f:\xvt.400\win_x86\ptk\include\xvtprint.h \
f:\xvt.400\win_x86\ptk\include\xvtrect.h \
f:\xvt.400\win_x86\ptk\include\xvtres.h \
f:\xvt.400\win_x86\ptk\include\xvtsbar.h \
f:\xvt.400\win_x86\ptk\include\xvtscr.h \
f:\xvt.400\win_x86\ptk\include\xvtslist.h \
f:\xvt.400\win_x86\ptk\include\xvtstr.h \
f:\xvt.400\win_x86\ptk\include\xvttimer.h \
f:\xvt.400\win_x86\ptk\include\xvttx.h \
f:\xvt.400\win_x86\ptk\include\xvtvobj.h \
f:\xvt.400\win_x86\ptk\include\xvtwin.h \
f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \
f:\p.due\include\strings.h \
f:\p.due\include\array.h \
f:\p.due\include\object.h \
f:\p.due\include\classes.h \
f:\p.due\include\stdtypes.h \
f:\p.due\include\checks.h \
f:\p.due\include\relation.h \
f:\p.due\include\isam.h \
f:\p.due\include\sysfld.h \
f:\p.due\include\real.h \
f:\mathlib\gmsys1.h \
f:\mathlib\gfd.h \
f:\p.due\include\date.h \
f:\p.due\include\files.h \
f:\p.due\include\extctype.h \
f:\p.due\include\rectypes.h \
f:\p.due\include\lffiles.h \
f:\p.due\include\mask.h \
f:\p.due\include\window.h \
f:\p.due\include\xvtility.h \
f:\p.due\include\keys.h \
f:\p.due\include\maskfld.h \
f:\p.due\include\scanner.h \
f:\p.due\include\msksheet.h \
f:\p.due\include\tabutil.h \
f:\p.due\include\mailbox.h \
f:\p.due\include\scperc.h \
f:\p.due\include\rver.h \
f:\p.due\include\rpag.h \
f:\p.due\include\perc.h \
f:\p.due\77\770101.h \
f:\p.due\77\770102.h \
f:\p.due\include\sheet.h \
f:\p.due\include\config.h \
f:\p.due\include\assoc.h \
f:\p.due\77\770100a.h \
f:\p.due\77\770.h \
f:\p.due\77\77lib.h
770101_DEP = f:\p.due\include\tabutil.h \
f:\p.due\include\isam.h \
f:\p.due\77\770101.h \
f:\p.due\include\relation.h \
f:\p.due\include\perc.h \
f:\p.due\include\scperc.h \
f:\p.due\include\rver.h \
f:\p.due\include\rpag.h \
f:\p.due\cg/cg2103.h \
f:\p.due\include\sysfld.h \
f:\p.due\include\real.h \
f:\mathlib\gmsys1.h \
f:\mathlib\gfd.h \
f:\p.due\include\stdtypes.h \
f:\xvt.400\win_x86\ptk\include\xvt_env.h \
f:\p.due\include\strings.h \
f:\p.due\include\array.h \
f:\p.due\include\object.h \
f:\p.due\include\classes.h \
f:\p.due\include\checks.h \
f:\p.due\include\date.h \
f:\p.due\include\files.h \
f:\p.due\include\extctype.h \
f:\p.due\include\rectypes.h \
f:\p.due\include\lffiles.h \
f:\p.due\cg/\conto.h
770102_DEP = f:\p.due\77\770100a.h \
f:\p.due\77\770101.h \
f:\p.due\include\relation.h \
f:\p.due\77\770102.h \
f:\p.due\include\sheet.h \
f:\p.due\include\strings.h \
f:\p.due\include\array.h \
f:\p.due\include\object.h \
f:\p.due\include\classes.h \
f:\p.due\include\stdtypes.h \
f:\xvt.400\win_x86\ptk\include\xvt_env.h \
f:\p.due\include\checks.h \
f:\p.due\include\window.h \
f:\p.due\include\msksheet.h \
f:\p.due\include\config.h \
f:\xvt.400\win_x86\ptk\include\xvt.h \
f:\xvt.400\win_x86\ptk\include\xvt_plat.h \
f:\xvt.400\win_x86\ptk\include\xvt_varg.h \
f:\xvt.400\win_x86\ptk\include\xvt_styp.h \
f:\xvt.400\win_x86\ptk\include\xvt_defs.h \
f:\xvt.400\win_x86\ptk\include\xvt_menu.h \
f:\xvt.400\win_x86\ptk\include\xvt_type.h \
f:\xvt.400\win_x86\ptk\include\xvt_sel.h \
f:\xvt.400\win_x86\ptk\include\xvt_perr.h \
f:\xvt.400\win_x86\ptk\include\xvt_help.h \
f:\xvt.400\win_x86\ptk\include\xvt_r3.h \
f:\xvt.400\win_x86\ptk\include\xvterr.h \
f:\xvt.400\win_x86\ptk\include\xvtapp.h \
f:\xvt.400\win_x86\ptk\include\xvtcb.h \
f:\xvt.400\win_x86\ptk\include\xvtctl.h \
f:\xvt.400\win_x86\ptk\include\xvtdebug.h \
f:\xvt.400\win_x86\ptk\include\xvtdlg.h \
f:\xvt.400\win_x86\ptk\include\xvtdm.h \
f:\xvt.400\win_x86\ptk\include\xvtdwin.h \
f:\xvt.400\win_x86\ptk\include\xvtevent.h \
f:\xvt.400\win_x86\ptk\include\xvtfont.h \
f:\xvt.400\win_x86\ptk\include\xvtfsys.h \
f:\xvt.400\win_x86\ptk\include\xvtgmem.h \
f:\xvt.400\win_x86\ptk\include\xvtiostr.h \
f:\xvt.400\win_x86\ptk\include\xvtimage.h \
f:\xvt.400\win_x86\ptk\include\xvtlist.h \
f:\xvt.400\win_x86\ptk\include\xvtmenu.h \
f:\xvt.400\win_x86\ptk\include\xvtmem.h \
f:\xvt.400\win_x86\ptk\include\xvtpalet.h \
f:\xvt.400\win_x86\ptk\include\xvtpict.h \
f:\xvt.400\win_x86\ptk\include\xvtpmap.h \
f:\xvt.400\win_x86\ptk\include\xvtprint.h \
f:\xvt.400\win_x86\ptk\include\xvtrect.h \
f:\xvt.400\win_x86\ptk\include\xvtres.h \
f:\xvt.400\win_x86\ptk\include\xvtsbar.h \
f:\xvt.400\win_x86\ptk\include\xvtscr.h \
f:\xvt.400\win_x86\ptk\include\xvtslist.h \
f:\xvt.400\win_x86\ptk\include\xvtstr.h \
f:\xvt.400\win_x86\ptk\include\xvttimer.h \
f:\xvt.400\win_x86\ptk\include\xvttx.h \
f:\xvt.400\win_x86\ptk\include\xvtvobj.h \
f:\xvt.400\win_x86\ptk\include\xvtwin.h \
f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \
f:\p.due\include\assoc.h \
f:\p.due\include\relapp.h
770200_DEP = f:\p.due\include\applicat.h \
f:\xvt.400\win_x86\ptk\include\xvt.h \
f:\xvt.400\win_x86\ptk\include\xvt_env.h \
f:\xvt.400\win_x86\ptk\include\xvt_plat.h \
f:\xvt.400\win_x86\ptk\include\xvt_varg.h \
f:\xvt.400\win_x86\ptk\include\xvt_styp.h \
f:\xvt.400\win_x86\ptk\include\xvt_defs.h \
f:\xvt.400\win_x86\ptk\include\xvt_menu.h \
f:\xvt.400\win_x86\ptk\include\xvt_type.h \
f:\xvt.400\win_x86\ptk\include\xvt_sel.h \
f:\xvt.400\win_x86\ptk\include\xvt_perr.h \
f:\xvt.400\win_x86\ptk\include\xvt_help.h \
f:\xvt.400\win_x86\ptk\include\xvt_r3.h \
f:\xvt.400\win_x86\ptk\include\xvterr.h \
f:\xvt.400\win_x86\ptk\include\xvtapp.h \
f:\xvt.400\win_x86\ptk\include\xvtcb.h \
f:\xvt.400\win_x86\ptk\include\xvtctl.h \
f:\xvt.400\win_x86\ptk\include\xvtdebug.h \
f:\xvt.400\win_x86\ptk\include\xvtdlg.h \
f:\xvt.400\win_x86\ptk\include\xvtdm.h \
f:\xvt.400\win_x86\ptk\include\xvtdwin.h \
f:\xvt.400\win_x86\ptk\include\xvtevent.h \
f:\xvt.400\win_x86\ptk\include\xvtfont.h \
f:\xvt.400\win_x86\ptk\include\xvtfsys.h \
f:\xvt.400\win_x86\ptk\include\xvtgmem.h \
f:\xvt.400\win_x86\ptk\include\xvtiostr.h \
f:\xvt.400\win_x86\ptk\include\xvtimage.h \
f:\xvt.400\win_x86\ptk\include\xvtlist.h \
f:\xvt.400\win_x86\ptk\include\xvtmenu.h \
f:\xvt.400\win_x86\ptk\include\xvtmem.h \
f:\xvt.400\win_x86\ptk\include\xvtpalet.h \
f:\xvt.400\win_x86\ptk\include\xvtpict.h \
f:\xvt.400\win_x86\ptk\include\xvtpmap.h \
f:\xvt.400\win_x86\ptk\include\xvtprint.h \
f:\xvt.400\win_x86\ptk\include\xvtrect.h \
f:\xvt.400\win_x86\ptk\include\xvtres.h \
f:\xvt.400\win_x86\ptk\include\xvtsbar.h \
f:\xvt.400\win_x86\ptk\include\xvtscr.h \
f:\xvt.400\win_x86\ptk\include\xvtslist.h \
f:\xvt.400\win_x86\ptk\include\xvtstr.h \
f:\xvt.400\win_x86\ptk\include\xvttimer.h \
f:\xvt.400\win_x86\ptk\include\xvttx.h \
f:\xvt.400\win_x86\ptk\include\xvtvobj.h \
f:\xvt.400\win_x86\ptk\include\xvtwin.h \
f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \
f:\p.due\include\strings.h \
f:\p.due\include\array.h \
f:\p.due\include\object.h \
f:\p.due\include\classes.h \
f:\p.due\include\stdtypes.h \
f:\p.due\include\checks.h \
f:\p.due\include\assoc.h \
f:\p.due\include\relation.h \
f:\p.due\include\isam.h \
f:\p.due\include\sysfld.h \
f:\p.due\include\real.h \
f:\mathlib\gmsys1.h \
f:\mathlib\gfd.h \
f:\p.due\include\date.h \
f:\p.due\include\files.h \
f:\p.due\include\extctype.h \
f:\p.due\include\rectypes.h \
f:\p.due\include\lffiles.h \
f:\p.due\include\progind.h \
f:\p.due\include\window.h \
f:\p.due\include\xvtility.h \
f:\p.due\include\keys.h \
f:\p.due\include\urldefid.h \
f:\p.due\include\defmask.h \
f:\p.due\include\sheet.h \
f:\p.due\include\mask.h \
f:\p.due\include\maskfld.h \
f:\p.due\include\scanner.h \
f:\p.due\77\770200a.h
770_RCDEP =
all: $(PROJ).EXE $(PROJ).BSC
770.OBJ: 770.CPP $(770_DEP)
$(CPP) $(CFLAGS) $(CPPCREATEPCHFLAG) /c 770.CPP
770100.OBJ: 770100.CPP $(770100_DEP)
$(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c 770100.CPP
770101.OBJ: 770101.CPP $(770101_DEP)
$(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c 770101.CPP
770102.OBJ: 770102.CPP $(770102_DEP)
$(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c 770102.CPP
770200.OBJ: 770200.CPP $(770200_DEP)
$(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c 770200.CPP
770.RES: C:\PRASSI\770.RC $(770_RCDEP)
$(RC) $(RCFLAGS) $(RCDEFINES) -r -FoF:\NIK\P.DUE\77\770.RES C:\PRASSI\770.RC
$(PROJ).EXE:: 770.RES
$(PROJ).EXE:: 770.OBJ 770100.OBJ 770101.OBJ 770102.OBJ 770200.OBJ $(OBJS_EXT) $(DEFFILE)
echo >NUL @<<$(PROJ).CRF
770.OBJ +
770100.OBJ +
770101.OBJ +
770102.OBJ +
770200.OBJ +
$(OBJS_EXT)
$(PROJ).EXE
$(MAPFILE)
c:\vc\lib\+
f:\p.due\win\lib\+
f:\xvt.403\win_x86\ptk\lib\+
f:\xvt.403\win_x86\xpo\lib\+
..\WIN\LIB\WINDUED.LIB+
..\WIN\LIB\WINGFM.LIB+
..\WIN\LIB\WINUNO.LIB+
..\WIN\LIB\XVT400.LIB+
..\WIN\LIB\HLAPI_CW.LIB+
$(LIBS)
$(DEFFILE);
<<
link $(LFLAGS) @$(PROJ).CRF
$(RC) $(RESFLAGS) 770.RES $@
@copy $(PROJ).CRF MSVC.BND
$(PROJ).EXE:: 770.RES
if not exist MSVC.BND $(RC) $(RESFLAGS) 770.RES $@
run: $(PROJ).EXE
$(PROJ) $(RUNFLAGS)
$(PROJ).BSC: $(SBRS)
bscmake @<<
/o$@ $(SBRS)
<<

1560
m770/770.rc Executable file

File diff suppressed because it is too large Load Diff

12
m770/770.url Executable file
View File

@ -0,0 +1,12 @@
#include <default.url>
MENU TASK_MENUBAR
SUBMENU MENU_FILE "~File"
MENUBAR MENU_BAR(1)
MENU MENU_BAR(1)
SUBMENU MENU_FILE "~File"

954
m770/770100.cpp Executable file
View File

@ -0,0 +1,954 @@
// 770100.cpp - Scheda percipienti
#include <relapp.h>
#include <msksheet.h>
#include <tabutil.h>
#include <mailbox.h>
#include "scperc.h"
#include "rver.h"
#include "rpag.h"
#include "perc.h"
#include "770101.h"
#include "770102.h"
#include "770100a.h"
#include "770.h"
#include "77lib.h"
HIDDEN TString80 __tmp;
HIDDEN const int NUM_COL_VERS = 8; // Contano da 0
HIDDEN const int NUM_COL_PAG = 9; // " " " " "
TSchedaPercipienti::TSchedaPercipienti(): _rel(NULL), _flag_cg(FALSE)
{
_from_modify = FALSE;
memset(_msk, 0, sizeof(_msk));
}
void TSchedaPercipienti::update_lasts(TMask& m)
{
if (m.mode() == MODE_MOD)
{
const long codditta = m.get_long(F_CODDITTA);
const char tipoa = m.get(F_TIPOA)[0];
const long codanagr = m.get_long(F_CODANAGR);
const int nprog = m.get_int(F_NPROG);
// Determino ultimo numero di riga usato nei PAGAMENTI
_rpag->zero();
_rpag->put("CODDITTA", (long) codditta);
_rpag->put("TIPOA", tipoa);
_rpag->put("CODANAGR", (long) codanagr);
_rpag->put("NPROG", nprog);
TRectype dep(_rpag->curr());
long nriga = 0L;
for (_rpag->read(); !_rpag->eof(); _rpag->next())
{
if (_rpag->curr() > dep) break;
nriga = _rpag->get_long("NRIGA");
}
_lastpag = nriga;
// Determino ultimo numero di riga usato nei VERSAMENTI
_rver->zero();
_rver->put("CODDITTA", (long) codditta);
_rver->put("TIPOA", tipoa);
_rver->put("CODANAGR", (long) codanagr);
_rver->put("NPROG", nprog);
TRectype dep2(_rver->curr());
long nrigav = 0L;
for (_rver->read(); !_rver->eof(); _rver->next())
{
if (_rver->curr() > dep2) break;
nrigav = _rver->get_long("NRIGA");
}
_lastvers = nrigav;
}
else
_lastpag = _lastvers = 0L;
}
bool TSchedaPercipienti::changing_mask(int mode)
{
if (mode == MODE_QUERY)
return _mode != MODE_QUERY;
else
return TRUE;
}
TMask* TSchedaPercipienti::get_mask(int mode)
{
const int m = (mode == MODE_QUERY) ? 0 : 1;
_mode = mode;
return load_mask(m);
}
TMask* TSchedaPercipienti::load_mask(int n)
{
if (_msk[n] != NULL)
return _msk[n];
TFilename name("770100"); name << char(n == 0 ? 'a' : 'b');
TMask* m = new TMask(name);
switch (n)
{
case 0:
m->set_handler(F_NPROG, nprog_handler);
m->set_handler(F_CODDITTA, codditta_handler);
m->set_handler(F_CODANAGRCOM, codanagr_handler);
m->set_handler(F_CODANAGRPERC, codanagr_handler);
break;
case 1:
{
m->set_handler(F_DATADOC, check_handler);
m->set_handler(F_CODCAUS, check_causale);
m->set_handler(F_SPESE, check_spese);
m->set_handler(F_COMPENS, check_compensi);
////////////////////////////////////////////////////////////////////////
// Handler versamenti
////////////////////////////////////////////////////////////////////////
TSheet_field& vers = (TSheet_field&) m->field(F_VERSAMENTI);
vers.set_notify(vers_notify);
vers.sheet_mask().set_handler(F_VERS_1015, vers1015_handler);
vers.sheet_mask().set_handler(DLG_SELPAG, pag_select);
vers.sheet_mask().set_handler(DLG_AZZERA, ver_azzera);
vers.sheet_mask().set_handler(F_TIPOVERS, tipo_hndl);
vers.sheet_mask().set_handler(F_LUOVERS, luo_hndl);
vers.sheet_mask().set_handler(F_ABI, abicab_hndl);
vers.sheet_mask().set_handler(F_CAB, abicab_hndl);
////////////////////////////////////////////////////////////////////////
// Handler pagamenti
////////////////////////////////////////////////////////////////////////
TSheet_field& pags = (TSheet_field&) m->field(F_PAGAMENTI);
pags.set_notify(pags_notify);
pags.sheet_mask().set_handler(MPAG_COMPENSO, compenso_handler);
pags.sheet_mask().set_handler(MPAG_IMPONIBILE, imponibile_handler);
pags.sheet_mask().set_handler(MPAG_PERCRA, percra_handler);
pags.sheet_mask().set_handler(MPAG_NETTO, netto_handler);
pags.sheet_mask().set_handler(MPAG_SPESA, spesa_handler);
pags.sheet_mask().set_handler(MPAG_RITPAG, check_ritenuta);
pags.sheet_mask().set_handler(DLG_AZZERAPAG, pag_azzera);
}
break;
default:
CHECKD(0, "Che strano genere di maschera e' la ", n);
break;
}
return _msk[n] = m;
}
// Ricerca e output dell'ultimo nprog del percipiente scelto
bool TSchedaPercipienti::setta_nprog(TMask& m, const bool variazione, const char* codanag)
{
long nprog = 0L;
TString16 numdoc;
const char tipoa = m.get(F_TIPOA)[0];
TString16 codanagr(codanag ? codanag : m.get(F_CODANAGR));
const long codditta = app().tipo_coll()==nessuno ? get_firm_770() : app().get_firm();
// Scrivi nprog solo se il percipiente ESISTE sull'arkivio, non SEMPRE
if (!app().esiste_perc(m, codanagr))
return TRUE;
TLocalisamfile scperc(LF_SCPERC, FALSE);
scperc.zero();
scperc.put("CODDITTA", codditta);
scperc.put("TIPOA", tipoa);
scperc.put("CODANAGR", codanagr);
if (variazione)
{
scperc.put("CODANAGR", codanagr);
scperc.put("DATADOC", app()._coll._datadoc);
scperc.setkey(2);
}
TRectype rec(scperc.curr());
bool trovato = FALSE;
bool one_rec = FALSE;
scperc.read();
if (scperc.eof())
{
one_rec = TRUE;
nprog = scperc.get_long("NPROG");
numdoc = scperc.get("NUMDOC");
trovato = scperc.curr() == rec;
/* if (variazione)
trovato = scperc.curr() == rec; // (numdoc == app()._coll._numdoc);
else
trovato = scperc.curr() == rec; */
}
else
for ( ; !scperc.eof(); scperc.next())
{
if (trovato || scperc.curr() > rec) break;
numdoc = scperc.get("NUMDOC");
numdoc.trim();
nprog = scperc.get_long("NPROG");
// trovato = scperc.curr() == rec;
if (variazione)
trovato = (numdoc == app()._coll._numdoc);
}
// Azzero nprog se la scheda non e' quella giusta
if (variazione || one_rec)
if (!trovato) nprog = 0L;
app()._last_scheda = nprog;
m.set(F_NPROG, variazione ? nprog : nprog+1);
return TRUE;
}
bool TSchedaPercipienti::codditta_handler(TMask_field& f, KEY k)
{
if (k == K_TAB && !(f.mask().is_running()) )
{
TString16 codditta;
// Se chiamata dalla contabilita' prendo ditta con get_firm
if (app().tipo_coll() == nessuno)
codditta << get_firm_770();
else
codditta << app().get_firm();
if (codditta != "0")
{
f.set(codditta);
f.check();
}
}
return TRUE;
}
bool TSchedaPercipienti::codanagr_handler(TMask_field& f, KEY k)
{
// if (k == K_TAB && f.focusdirty())
// Faccio sempre l'output di codesto numeretto
if (k == K_TAB)
{
TMask& m = f.mask();
const bool variazione = app().coll_variazione();
char tipo = f.mask().get(F_TIPOA)[0];
TString16 codanagr(f.get());
if (codanagr.not_empty())
setta_nprog(m, variazione, codanagr);
}
return TRUE;
}
bool TSchedaPercipienti::esiste_perc(TMask& m, const char* codanag)
{
const char tipoa = m.get(F_TIPOA)[0];
TString16 codanagr(codanag ? codanag : m.get(F_CODANAGR));
// Controllo che l'anagrafica esista
TLocalisamfile anag(LF_ANAG);
anag.zero();
anag.put("TIPOA", tipoa);
anag.put("CODANAGR", codanagr);
const bool esiste_anagr = anag.read() == NOERR;
return esiste_anagr;
}
// Passa al modo inserimento/modifica.
bool TSchedaPercipienti::nprog_handler(TMask_field& f, KEY key)
{
if (!f.mask().is_running())
return TRUE;
const int nprog = atoi(f.get());
if (key == K_ENTER)
if (app()._flag_cg)
{
app()._flag_cg = FALSE; // avoid recursion
if (nprog==0 || !app().esiste_perc(f.mask()))
return FALSE;
f.mask().stop_run(K_AUTO_ENTER);
}
if (key == K_TAB)
{
if (nprog==0 || !app().esiste_perc(f.mask()))
return FALSE;
f.mask().stop_run(K_AUTO_ENTER); // entra in modo modifica/inserimento
}
return TRUE;
}
bool TSchedaPercipienti::user_create()
{
_per = new TLocalisamfile(LF_PERC);
_rel = new TSchedaPE;
_rver = new TLocalisamfile(LF_RVER);
_rpag = new TLocalisamfile(LF_RPAG);
_pags = new TNikArray_sheet(-1, -1, 0, 0, "Selezione Pagamenti",
"@1|Data@11|Compenso@16|Spese@16|Ritenuta@16|",
0,NULL_WIN,5);
set_search_field(F_CODANAGRPERC);
// Collegamento da contabilita'
TMailbox m;
TMessage* msg = m.next_s("LINK770");
if (msg != NULL)
{
if ( !_coll.read(msg->body()) )
#ifdef DBG
return warning_box("Errore nei parametri passati");
#endif
;
const long ditta_cg = get_firm();
if (!exist_dichiar_770(ditta_cg))
if (yesno_box("Creo la dichiarazione per la ditta %ld", ditta_cg))
if (!enter_dichiar_770(ditta_cg))
#ifdef DBG
return warning_box("Creazione dichiarazione fallita!");
#endif
;
}
load_mask(0);
return TRUE;
}
bool TSchedaPercipienti::user_destroy()
{
if (_msk[1] != NULL) delete _msk[1];
if (_msk[0] != NULL) delete _msk[0];
delete _rel; delete _per; delete _rver;
delete _rpag; delete _pags;
return TRUE;
}
//
// COMPILA_TESTATA
//
// Usata nel collegamento da cg
//
void TSchedaPercipienti::compila_testata(TMask& m)
{
m.set(F_DATADOC, _coll._datadoc);
m.set(F_NUMDOC, _coll._numdoc);
m.set(F_IVA, _coll._imposte.string());
m.set(F_SPESE, _coll._spese.string());
m.set(F_COMPENS, _coll._compenso.string());
switch (tipo_coll())
{
case ritenuta:
m.set(F_COMPENS, _coll._compenso.string());
m.set(F_TOTDOC, _coll._compenso.string());
break;
case fattura:
m.set(F_TOTDOC, _coll._totdoc.string());
m.set(F_TOTRIT, _coll._ritenute.string());
break;
default:
break;
}
}
bool TSchedaPercipienti::coll_variazione() const
{
return _coll._immissione == 'M' || tipo_coll() == pagamento ||
tipo_coll() == pagamento_piu_perc;
}
void TSchedaPercipienti::init_mask(TMask& m)
{
update_lasts(m);
if (tipo_coll() != nessuno)
{
const bool variazione = coll_variazione();
if (!variazione) compila_testata(m);
switch (tipo_coll())
{
case pagamento:
case ritenuta:
// Compilo riga di pagamento SOLO SE NON ce ne sono gia'..
if ( (tipo_coll() == pagamento && _rel->pag_items() == 0)
||
tipo_coll() == ritenuta )
{
const real totrit(m.get(F_TOTRIT));
const real totdoc(m.get(F_TOTDOC));
const real compenso(m.get(F_COMPENS));
const real spese(m.get(F_SPESE));
if ( (tipo_coll() == pagamento && ( _coll._compenso + totrit == totdoc) )
||
(tipo_coll() == ritenuta) )
{
TSheet_field& pags = (TSheet_field&)m.field(F_PAGAMENTI);
TRectype rpag(_rel->pag(0));
rpag.zero();
real& imponibile = _coll._compenso;
rpag.put("DATAPAG", _coll._datadoc);
rpag.put("COMPENSO", compenso);
const real impo_calc = calcola_imponibile(compenso);
rpag.put("IMPONIBILE", impo_calc);
rpag.put("SPESA", spese);
const real rite_calc = calcola_ritenuta(impo_calc);
rpag.put("RITENUTA", rite_calc);
real perc = (rite_calc * 100) / impo_calc;
perc.round(2);
rpag.put("PERC", perc);
rpag.put("NUMVERS", (long)-1);
const real netto = compenso - rite_calc + spese;
rpag.put("NETTO", netto);
// Update spreadsheet
rec2row(pags.row(0), rpag, 0);
pags.force_update();
}
}
break;
default:
break;
}
}
fill_sheet(m);
}
void TSchedaPercipienti::get_ragsoc(const char* tipoa, const long codanagr)
{
TLocalisamfile anag(LF_ANAG);
anag.zero();
anag.setkey(1);
anag.put("TIPOA", tipoa);
anag.put("CODANAGR", codanagr);
const int rc = anag.read();
if (rc != NOERR)
anag.zero();
_ragsoc = anag.get("RAGSOC");
}
void TSchedaPercipienti::init_modify_mode(TMask& m)
{
_from_modify = TRUE;
_codanagr = m.get_long(F_CODANAGR);
_tipoa = m.get(F_TIPOA);
get_ragsoc(_tipoa, _codanagr);
init_mask(m);
}
void TSchedaPercipienti::init_insert_mode(TMask& m)
{
init_mask(m);
}
void TSchedaPercipienti::on_config_change()
{
TConfig conf(CONFIG_STUDIO);
_anno_dic = (int)conf.get_long(ANNO_SEL, NULL);
}
void TSchedaPercipienti::init_query_mode(TMask& m)
{
m.set(F_ANNODIC, _anno_dic);
// Controllo se chiamata dalla contabilita'
if (tipo_coll() != nessuno)
{
const bool variazione = coll_variazione();
_flag_cg = TRUE;
TString16 tipo("");
tipo << _coll._tipo;
m.set(F_TIPOA, tipo);
if (_coll._codanagr != 0L)
{
m.set(F_CODANAGR, _coll._codanagr);
m.set(F_CODANAGRPERC, _coll._codanagr, TRUE);
m.set(F_CODANAGRCOM, _coll._codanagr);
}
switch (tipo_coll())
{
case fattura:
setta_nprog(m, variazione);
m.send_key(K_AUTO_ENTER,0);
return;
break;
case pagamento:
if (coll_datanum())
{
setta_nprog(m, variazione);
m.send_key(K_AUTO_ENTER, 0);
}
return;
break;
case ritenuta:
/*
setta_nprog(m,FALSE); // Sempre in aggiunta
m.send_key(K_AUTO_ENTER, 0); */
return;
break;
default:
break;
}
}
if (_from_modify)
{
m.set(F_TIPOA, _tipoa);
m.set(F_CODANAGR, _codanagr);
m.set(F_CODANAGRPERC, _codanagr);
m.set(F_CODANAGRCOM, _codanagr);
m.set(F_RAGSOCPER, _ragsoc);
m.set(F_RAGSOCCOM, _ragsoc);
}
else
{
m.send_key(K_SHIFT+K_CTRL+'h', -1); // group 1 Scelta ANAGR
m.send_key(K_SHIFT+K_CTRL+'s', -2); // group 3 Ricerca su DATI PER
}
_from_modify = FALSE;
// forza il ricalcolo dell'ultimo numero disponibile
TString16 dummy(m.get(F_NPROG));
if (dummy.not_empty())
setta_nprog(m);
}
void TSchedaPercipienti::init_query_insert_mode(TMask& m)
{
m.set(F_ANNODIC, _anno_dic);
// Se vengo da modifica mantieni la selezione precedente
if (_from_modify)
{
m.set(F_TIPOA, _tipoa);
m.set(F_CODANAGR, _codanagr);
m.set(F_CODANAGRPERC, _codanagr);
m.set(F_CODANAGRCOM, _codanagr);
m.set(F_RAGSOCPER, _ragsoc);
m.set(F_RAGSOCCOM, _ragsoc);
}
else
{
m.send_key(K_SHIFT+K_CTRL+'h', -2); // group 3 Nasconde ricerca su PERC
m.send_key(K_SHIFT+K_CTRL+'s', -1); // group 1 Ricerca su ANAGR
}
}
void TSchedaPercipienti::rec2row(TToken_string& r, TRectype& rec, int row)
{
TString16 dver, dpag, serie, numero, rite;
TString16 comp, impo, perc, spesa, netto;
TString16 nrigavers, numpag, progrbanca;
TString SsnPerc, SsnCompl;
r = "";
if (rec.num() == LF_RVER)
{
char v1015 = rec.get_bool("VERS1015") ? 'X' : ' ';
dver = rec.get("DATAVERS");
char tv = rec.get_char("TIPOVERS");
char lv = rec.get_char("LUOVERS");
serie = rec.get("SERIE");
numero = rec.get("NUMERO");
rite = rec.get("RITENUTA");
progrbanca = rec.get("PROGBANC");
nrigavers = rec.get("NRIGA");
if (rite.empty()) rite = " ";
if (progrbanca.empty()) progrbanca = " ";
if (nrigavers.empty()) nrigavers = " ";
if (serie.empty()) serie = " ";
if (numero.empty()) numero = " ";
r.add(v1015, 0);
r.add(dver,1);
r.add(lv == '\0' ? ' ' : lv);
r.add(tv == '\0' ? ' ' : tv);
r.add(serie);
r.add(numero);
r.add(progrbanca);
r.add(rite);
r.add(nrigavers);
if (v1015 == 'X')
disable_vers_cells(row);
else
enable_vers_cells(row);
}
if (rec.num() == LF_RPAG)
{
dpag = rec.get("DATAPAG");
comp = rec.get("COMPENSO");
impo = rec.get("IMPONIBILE");
perc = rec.get("PERC");
rite = rec.get("RITENUTA");
spesa = rec.get("SPESA");
netto = rec.get("NETTO");
SsnPerc = rec.get("CTSSNPERC");
SsnCompl = rec.get("CTSSNCOMP");
nrigavers = rec.get("NUMVERS");
r.add(dpag); r.add(comp);
r.add(spesa); r.add(impo);
r.add(perc); r.add(rite);
r.add(SsnPerc); r.add(SsnCompl);
r.add(netto);
r.add(nrigavers);
}
}
int TSchedaPercipienti::read(TMask& m)
{
m.autoload(_rel);
TSheet_field& pags = (TSheet_field&)m.field(F_PAGAMENTI);
pags.destroy();
for (int r = 0; r < _rel->pag_items(); r++)
rec2row(pags.row(r), _rel->pag(r), r);
TSheet_field& vers = (TSheet_field&)m.field(F_VERSAMENTI);
vers.destroy();
for (r = 0; r < _rel->ver_items(); r++)
rec2row(vers.row(r), _rel->ver(r), r);
return 0;
}
void TSchedaPercipienti::enable_vers_cells(int r, bool enable)
{
TSheet_field& ver = vers();
for (int i=1; i<NUM_COL_VERS; i++)
enable ? ver.enable_cell(r,i) : ver.disable_cell(r,i);
}
void TSchedaPercipienti::new_row(TSheet_field& ver_pag, int r, bool vers)
{
TToken_string& riga = ver_pag.row(r);
if (vers)
riga.add(++_lastvers, NUM_COL_VERS);
else
riga.add(-1, NUM_COL_PAG);
}
//
// FILL_SHEET
//
// Determino QUI un progressivo unico per i pagamenti e i versamenti
// (NUMVERS e NUMPAG: vedi new_row())
//
void TSchedaPercipienti::fill_sheet(TMask& m)
{
TSheet_field& pags = (TSheet_field&)m.field(F_PAGAMENTI);
for (int r = pags.items(); r < 16; r++)
new_row(pags, r, FALSE);
TSheet_field& vers = (TSheet_field&)m.field(F_VERSAMENTI);
for (r = vers.items(); r < 16; r++)
new_row(vers, r, TRUE);
}
bool TSchedaPercipienti::scrivi_dati_per(TRectype& rec)
{
TLocalisamfile dati_per(LF_PERC);
const long codditta = rec.get_long("CODDITTA");
char tipoa = rec.get_char("TIPOA");
const long codanagr = rec.get_long("CODANAGR");
dati_per.zero();
dati_per.put("CODDITTA", codditta);
dati_per.put("TIPOA", tipoa);
dati_per.put("CODANAGR", codanagr);
const bool preesistente = (dati_per.read() == NOERR);
if (!preesistente)
{
dati_per.zero();
dati_per.put("CODDITTA", codditta);
dati_per.put("TIPOA", tipoa);
dati_per.put("CODANAGR", codanagr);
dati_per.write();
}
return preesistente;
}
int TSchedaPercipienti::rewrite(const TMask& m)
{
mask2rel(m);
const int err = _rel->rewrite();
scrivi_dati_per(_rel->curr());
// update_lasts(); // aggiorna lastvers e lastpag
return err;
}
int TSchedaPercipienti::write(const TMask& m)
{
mask2rel(m);
const int err = _rel->write();
scrivi_dati_per(_rel->curr());
// update_lasts(); // aggiorna lastvers e lastpag
return err;
}
bool TSchedaPercipienti::check_compensi(TMask_field& f, KEY k)
{
if (k == K_ENTER)
{
const bool forzatura = f.mask().get_bool(F_FORCED);
real doc_compenso(f.get());
if (app()._tot_compenso > doc_compenso)
{
warning_box ("Il totale dei compensi non puo' superare\n"
"il compenso indicato nel documento");
return forzatura;
}
}
return TRUE;
}
bool TSchedaPercipienti::check_spese(TMask_field& f, KEY k)
{
if (k == K_ENTER)
{
const bool forzatura = f.mask().get_bool(F_FORCED);
real doc_spese(f.get());
if (app()._tot_spese > doc_spese)
{
warning_box ("Il totale delle spese non puo' superare\n"
"la spesa indicata nel documento");
return forzatura;
}
}
return TRUE;
}
//
// Calcola:
//
// totale compenzi
// totale spese
// totale netti pagati
//
// - NB -
// FUNZIONA SOLO SE PASSA PRIMA DI QUA!
//
bool TSchedaPercipienti::check_handler(TMask_field& f, KEY k)
{
if (k == K_ENTER)
{
const bool forzatura = f.mask().get_bool(F_FORCED);
int i;
TArray& rpag = app().pags().rows_array();
app()._tot_compenso = ZERO;
app()._tot_spese = ZERO;
app()._tot_netto = ZERO;
app()._tot_rit = ZERO;
// Calcolo totale compensi e totale spese e totale netti
for (i = 0; i < rpag.items(); i++)
{
TToken_string& row = (TToken_string&)rpag[i];
if (app().my_empty_items(row, FALSE)) continue;
real compenso (row.get(1));
real spese (row.get(2));
real ritenuta (row.get(5));
real netto (row.get(8));
app()._tot_compenso += compenso;
app()._tot_spese += spese;
app()._tot_netto += netto;
app()._tot_rit += ritenuta;
}
/**const real somma = doc_compenso + doc_spese;
if (tot_netto > somma)
{
warning_box ("Il totale dei netti pagati non puo' superare\n"
"la somma del compenso e della spesa indicate nel documento");
return forzatura;
}**/
TArray& rver = app().vers().rows_array();
app()._tot_vers = ZERO;
// Calcola totale versato
for (i = 0; i < rver.items(); i++)
{
TToken_string& row = (TToken_string&)rver[i];
if (app().my_empty_items(row, TRUE)) continue;
real versato (row.get(7));
app()._tot_vers += versato;
}
app()._tot_rit.round(0);
app()._tot_vers.round(0);
const real THRESOLD = 500.00;
const real diff = app()._tot_vers - app()._tot_rit;
if (diff > ZERO)
if (diff > THRESOLD)
{
warning_box ("La differenza tra il totale dei versamenti "
"e il totale delle ritenute non puo' superare "
"le %s lire", THRESOLD.string());
return forzatura;
}
}
return TRUE;
}
// Trasferisce i dati dalla maschera alla relazione
void TSchedaPercipienti::mask2rel(const TMask& m)
{
_rel->lfile().zero();
m.autosave(_rel);
const long codditta = m.get_long(F_CODDITTA);
const char tipoa = m.get(F_TIPOA)[0];
const long codanagr = m.get_long(F_CODANAGR);
const int nprogr = m.get_int(F_NPROG);
_rel->destroy_rows(); // Destroy all records
pag_pack(); // Destroy all null rows
TArray& rows = pags().rows_array();
for (int i = 0; i < rows.items(); i++)
{
TToken_string& row = (TToken_string&)rows[i];
TRectype &r = _rel->pag(i);
long nriga = i + 1;
r.zero();
r.put("CODDITTA", codditta);
r.put("TIPOA", tipoa);
r.put("CODANAGR", codanagr);
r.put("NPROG", nprogr);
r.put("NRIGA", nriga);
// LEGGO SPREADSHEET PAGAMENTI
TString16 datap = row.get(0);
const TDate datapag(datap);
real compenso (row.get(1));
real spese (row.get(2));
real imponibile(row.get(3));
const real aliquota(row.get(4));
real ritenuta (row.get(5));
real SsnPerc (row.get(6));
real SsnCompl (row.get(7));
real compnetto (row.get(8));
const int numvers (row.get_int(9));
// const int numpag (row.get_int(8));
r.put("DATAPAG", datapag);
r.put("COMPENSO", compenso);
r.put("IMPONIBILE", imponibile);
r.put("PERC", aliquota);
r.put("RITENUTA", ritenuta);
r.put("SPESA", spese);
r.put("NETTO", compnetto);
r.put("NUMVERS", (long)numvers);
r.put("CTSSNPERC", SsnPerc);
r.put("CTSSNCOMP", SsnCompl);
// r.put("NUMPAG", (long)nriga);
// r.put("NUMPAG", (long)numpag);
}
// ver_pack(); // Destroy all null rows
rows = vers().rows_array();
for (i = 0; i < rows.items(); i++)
{
TToken_string& row = (TToken_string&)rows[i];
TRectype &r = _rel->ver(i);
if (my_empty_items(row, TRUE))
continue; // non salvare righe vuote
long nriga = i+1;
r.zero();
r.put("CODDITTA", codditta);
r.put("TIPOA", tipoa);
r.put("CODANAGR", codanagr);
r.put("NPROG", nprogr);
r.put("NRIGA", nriga);
// LEGGO SPREADSHEET VERSAMENTI
const bool vers1015 = (row.get_char(0) == 'X');
TString16 datav = row.get(1);
const TDate dataver(datav);
const char luogo = row.get_char(2);
const char tipo = row.get_char(3);
TString16 serie(row.get(4));
TString numero(row.get(5));
const long ProgBanca = row.get_long(6);
real ritenuta (row.get(7));
const int numvers (row.get_int(8));
r.put("VERS1015", vers1015);
r.put("DATAVERS", dataver);
r.put("LUOVERS", luogo);
r.put("TIPOVERS", tipo);
r.put("SERIE", serie);
r.put("NUMERO", numero);
r.put("PROGBANC", (long)ProgBanca);
r.put("RITENUTA", ritenuta);
// r.put("NUMVERS", (long)nriga);
// r.put("NUMVERS", (long)numvers);
}
}
int SchedaPerc (int argc, char* argv[])
{
TSchedaPercipienti a;
a.run(argc, argv, "Scheda Percipienti");
return 0;
}

74
m770/770100a.h Executable file
View File

@ -0,0 +1,74 @@
#ifndef __770100a_H
#define __770100a_H
// m70100a
#define F_CODDITTA 101
#define F_RAGDITTA 102
#define F_TIPOA 103
#define F_CODANAGR 104
#define F_TIPOAPER 105
//#define F_CODANAGRPER 106
#define F_TIPOACOM 107
#define F_CODANAGRCOM 108
#define F_ANNODIC 109
#define F_RICERCA 110
#define F_RAGSOC 111
#define F_CODANAGRPERC 112
#define F_NPROGA 113
#define F_IC 114
#define F_CT 115
#define F_RIT 116
#define F_ARTBIL 117
#define F_CODDITTA2 118
#define F_TIPOA2 119
#define F_NPROG2 120
// m70100b
#define F_NPROG 121
#define F_CODCAUS 122
#define F_DESCRCAUS 123
#define F_CODTRIB 124
#define F_DATADOC 125
#define F_NUMDOC 126
#define F_COMPENS 127
#define F_SPESE 128
#define F_IVA 129
#define F_TOTDOC 130
#define F_PAGAMENTI 131
#define F_VERSAMENTI 132
#define F_MESECOMP 133
#define F_ANNOCOMP 134
#define F_QUOTAIMP 136
#define F_PERRIT 137
#define F_RAGSOCCOM 138
#define F_RAGSOCPER 139
#define F_CODQUA 140
#define DLG_SELPAG 100 // Bottone di selezione
#define DLG_AZZERA 150
#define DLG_AZZERAPAG 151
#define F_FORCED 142
#define F_CODANAGR_G 144
#define F_RAGSOC2 145
#define F_TOTRIT 146
#define F_GESTPERC 147
#define SPF_CAUSD 148
#define SPF_CAUSD1 149
#define PAGF_NUMVERS 110 // nascosto, usato in load_pags
#define VERF_NUMVERS 109
#define F_PERC_ASS_INPS 150
#define F_PERC_COMMIT_INPS 151
#define F_FLAG_INPS 152
#define F_PERC_INPS 153
#define F_CASSA_PREV 154
#endif

167
m770/770100a.uml Executable file
View File

@ -0,0 +1,167 @@
#include "770100a.h"
TOOLBAR "" 0 18 0 4
BUTTON F_GESTPERC 21 2
BEGIN
PROMPT -13 -3 "~Percipienti"
MESSAGE RUN,775,-0,#F_CODDITTA,#F_TIPOA,#F_CODANAGR
END
#include <toolbar.h>
ENDPAGE
PAGE "MODULO 770 - SCHEDA PERCIPIENTI" -1 -1 78 21
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 1 0 ""
END
NUMBER F_CODDITTA 5
BEGIN
PROMPT 3 1 "Ditta "
FLAGS "RDG"
KEY 1
CHECKTYPE REQUIRED
USE LF_NDITTE KEY 1
INPUT CODDITTA F_CODDITTA
DISPLAY "Codice" CODDITTA
DISPLAY "Ragione sociale @50" RAGSOC
OUTPUT F_RAGDITTA RAGSOC
FIELD LF_SCPERC->CODDITTA
END
STRING F_RAGDITTA 50
BEGIN
PROMPT 17 1 "Ragione "
FLAGS "D"
END
NUMBER F_ANNODIC 4
BEGIN
PROMPT 52 4 "Anno dichiarazione "
FLAGS "DR"
END
TEXT DLG_NULL
BEGIN
PROMPT 1 7 "@bDati percipiente"
END
LIST F_TIPOA 1 12
BEGIN
PROMPT 1 8 ""
ITEM "F|Fisica"
ITEM "G|Giuridica"
CHECKTYPE REQUIRED
KEY 1
FIELD LF_SCPERC->TIPOA
END
NUMBER F_CODANAGR 5
BEGIN
PROMPT 80 80 ""
FLAGS "D"
FIELD LF_SCPERC->CODANAGR
CHECKTYPE REQUIRED
KEY 1
END
NUMBER F_CODANAGRPERC 5
BEGIN
PROMPT 15 8 ""
USE LF_PERC KEY 1 SELECT ((CODDITTA=#F_CODDITTA) && (TIPOA=#F_TIPOA))
JOIN LF_ANAG TO LF_PERC KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR
INPUT CODDITTA F_CODDITTA
INPUT TIPOA F_TIPOA
INPUT CODANAGR F_CODANAGRPERC
DISPLAY "Tipo " TIPOA
DISPLAY "Codice " CODANAGR
DISPLAY "Cognome - Nome o Ragione sociale@50" LF_ANAG->RAGSOC
OUTPUT F_TIPOA TIPOA
OUTPUT F_CODANAGRPERC CODANAGR
OUTPUT F_RAGSOCPER LF_ANAG->RAGSOC
MESSAGE COPY, F_CODANAGR
ADD RUN 775 -0
GROUP 2
END
NUMBER F_CODANAGRCOM 5
BEGIN
PROMPT 15 8 ""
USE LF_ANAG KEY 1 SELECT (TIPOA=#F_TIPOA)
INPUT TIPOA F_TIPOA
INPUT CODANAGR F_CODANAGRCOM
DISPLAY "Tipo " TIPOA
DISPLAY "Codice " CODANAGR
DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC
OUTPUT F_TIPOA TIPOA
OUTPUT F_CODANAGRCOM CODANAGR
OUTPUT F_RAGSOCCOM RAGSOC
MESSAGE COPY, F_CODANAGR
MESSAGE COPY, F_CODANAGRPERC
ADD RUN BA4 -1
FLAGS "H"
GROUP 1
END
STRING F_RAGSOC 50
BEGIN
PROMPT 25 8 ""
FLAGS "H"
END
STRING F_RAGSOCCOM 50
BEGIN
PROMPT 25 8 ""
USE LF_ANAG KEY 2
INPUT RAGSOC F_RAGSOCCOM
DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC
DISPLAY "Tipo" TIPOA
DISPLAY "Codice" CODANAGR
OUTPUT F_RAGSOCCOM RAGSOC
OUTPUT F_CODANAGRCOM CODANAGR
OUTPUT F_TIPOA TIPOA
ADD RUN BA4 -1
MESSAGE COPY, F_RAGSOC
MESSAGE COPY, F_RAGSOCPER
GROUP 1
END
STRING F_RAGSOCPER 50
BEGIN
PROMPT 25 8 ""
FLAGS "D"
GROUP 2
MESSAGE COPY, F_RAGSOC
END
NUMBER F_NPROG 6
BEGIN
PROMPT 1 10 "@bScheda numero "
CHECKTYPE REQUIRED
KEY 1
FIELD LF_SCPERC->NPROG
USE LF_SCPERC
INPUT CODDITTA F_CODDITTA SELECT
INPUT TIPOA F_TIPOA SELECT
INPUT CODANAGR F_CODANAGR SELECT
INPUT NPROG F_NPROG
DISPLAY "N°" NPROG
DISPLAY "Data doc.@10" DATADOC
DISPLAY "Num.@8" NUMDOC
DISPLAY "Cau." CODCAUS
DISPLAY "Tot. doc.@15" TOTALE
DISPLAY "Compenso@15" COMPENSO
DISPLAY "Spese@15" SPESE
DISPLAY "Iva@15" IVA
OUTPUT F_TIPOA TIPOA
OUTPUT F_CODANAGR CODANAGR
OUTPUT F_NPROG NPROG
END
ENDPAGE
ENDMASK

331
m770/770100b.uml Executable file
View File

@ -0,0 +1,331 @@
#include "770100a.h"
TOOLBAR "" 0 20 0 2
#include <toolbar.h>
ENDPAGE
PAGE "Scheda percipienti" -1 -1 78 20
NUMBER F_CODDITTA 5
BEGIN
FLAGS "AH"
FIELD LF_SCPERC->CODDITTA
KEY 1
END
LIST F_TIPOA 1 12
BEGIN
PROMPT 0 0 ""
FIELD LF_SCPERC->TIPOA
ITEM "F|Fisica"
ITEM "G|Giuridica"
KEY 1
FLAGS "D"
END
NUMBER F_CODANAGR 5
BEGIN
PROMPT 14 0 ""
FIELD LF_SCPERC->CODANAGR
MESSAGE COPY, F_CODANAGR_G
KEY 1
FLAGS "D"
END
NUMBER F_CODANAGR_G 5
BEGIN
PROMPT 17 0 ""
USE LF_ANAG KEY 1
INPUT TIPOA F_TIPOA
INPUT CODANAGR F_CODANAGR
DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC
OUTPUT F_RAGSOC2 RAGSOC
CHECKTYPE REQUIRED
FLAGS "HG"
END
STRING F_RAGSOC2 45
BEGIN
PROMPT 24 0 ""
FLAGS "D"
END
NUMBER F_NPROG 4
BEGIN
PROMPT 72 0 ""
FIELD LF_SCPERC->NPROG
FLAGS "D"
KEY 1
END
STRING F_CODCAUS 2
BEGIN
FIELD LF_SCPERC->CODCAUS
PROMPT 0 1 ""
USE %CA7 SELECT ((I0!="1015") && ((S1="C")||(S1="D")||(S1="D1")||(S1="E")||(S1="E1")||(S1="E2"))
CHECKTYPE REQUIRED
INPUT CODTAB F_CODCAUS
DISPLAY "Codice " CODTAB
DISPLAY "Descrizione @60" S0
DISPLAY "Codice tributo" I0
DISPLAY "Articolo di bilancio" I3
DISPLAY "C.T." B2
DISPLAY "T.S." B3
DISPLAY "R.A." B0
DISPLAY "Causale D" S2
DISPLAY "Causale D1" S3
OUTPUT F_CODCAUS CODTAB
OUTPUT F_CODTRIB I0
OUTPUT F_DESCRCAUS S0
OUTPUT F_CODQUA S1
OUTPUT F_ARTBIL I3
OUTPUT F_IC B3
OUTPUT F_CT B2
OUTPUT F_RIT B0
OUTPUT F_QUOTAIMP R4
OUTPUT F_PERRIT R0
OUTPUT F_FLAG_INPS B4
OUTPUT F_PERC_INPS R1
OUTPUT F_PERC_ASS_INPS R2
OUTPUT F_PERC_COMMIT_INPS R3
OUTPUT F_CASSA_PREV R5
OUTPUT SPF_CAUSD S2
OUTPUT SPF_CAUSD1 S3
FLAGS "Z"
WARNING "Manca la causale"
ADD RUN 773 -3 %CA7
END
NUMBER F_PERC_INPS 6
BEGIN
PROMPT 1 10 ""
PICTURE ".2"
FLAGS "H"
END
NUMBER F_PERC_ASS_INPS 6
BEGIN
PROMPT 1 11 ""
PICTURE ".2"
FLAGS "H"
END
NUMBER F_PERC_COMMIT_INPS 6
BEGIN
PROMPT 1 12 ""
PICTURE ".2"
FLAGS "H"
END
BOOLEAN F_FLAG_INPS
BEGIN
PROMPT 1 13 ""
FLAGS "H"
END
NUMBER F_CASSA_PREV 6
BEGIN
PROMPT 1 14 ""
PICTURE ".2"
FLAGS "H"
END
STRING F_CODQUA 2
BEGIN
PROMPT 12 1 ""
FLAGS "D"
END
NUMBER F_CODTRIB 4
BEGIN
PROMPT 6 1 ""
FLAGS "D"
END
STRING F_DESCRCAUS 60
BEGIN
PROMPT 16 1 ""
FLAGS "D"
END
NUMBER F_ARTBIL 2
BEGIN
PROMPT 0 2 "Art.bil."
FLAGS "D"
END
BOOLEAN F_IC
BEGIN
PROMPT 13 2 "T.S."
FLAGS "D"
END
BOOLEAN F_CT
BEGIN
PROMPT 22 2 "C.T."
FLAGS "D"
END
BOOLEAN F_RIT
BEGIN
PROMPT 29 2 "Rit."
FLAGS "D"
END
NUMBER F_QUOTAIMP 6
BEGIN
PROMPT 1 1 ""
FLAGS "H"
END
NUMBER F_PERRIT 5
BEGIN
PROMPT 1 1 ""
PICTURE ".2"
FLAGS "H"
END
DATE F_DATADOC
BEGIN
PROMPT 0 3 "Data "
FIELD LF_SCPERC->DATADOC
WARNING "Manca la data del documento"
CHECKTYPE REQUIRED
END
STRING F_NUMDOC 7
BEGIN
PROMPT 17 3 "Numero"
FIELD LF_SCPERC->NUMDOC
END
NUMBER F_COMPENS 15
BEGIN
PROMPT 32 3 "Compenso "
FIELD LF_SCPERC->COMPENSO
PICTURE "."
FLAGS "R"
MESSAGE K_TAB, F_TOTDOC
END
NUMBER F_IVA 15
BEGIN
PROMPT 58 3 "Iva "
FIELD LF_SCPERC->IVA
PICTURE "."
FLAGS "R"
MESSAGE K_TAB, F_TOTDOC
END
NUMBER F_SPESE 15
BEGIN
PROMPT 0 4 "Spese "
FIELD LF_SCPERC->SPESE
PICTURE "."
FLAGS "R"
MESSAGE K_TAB, F_TOTDOC
END
NUMBER F_TOTDOC 15
BEGIN
PROMPT 23 4 "Totale "
FIELD LF_SCPERC->TOTALE
PICTURE "."
FLAGS "R"
NUM_CALC {#F_COMPENS + #F_SPESE + #F_IVA}
END
TEXT DLG_NULL
BEGIN
PROMPT 48 4 "Competenza:"
END
NUMBER F_MESECOMP 2
BEGIN
PROMPT 59 4 "Mese "
FIELD LF_SCPERC->MESEC
NUM_EXPR {(#THIS>=0) && (#THIS<13)}
WARNING "Mese non valido"
HELP "Inserire il mese di competenza"
FLAGS "Z"
END
NUMBER F_ANNOCOMP 4
BEGIN
PROMPT 68 4 "Anno "
FIELD LF_SCPERC->ANNOC
NUM_EXPR {(#THIS==0)||((#THIS>1900)&&(#THIS<2100))}
WARNING "Anno non valido"
HELP "Inserire l'anno di competenza"
END
NUMBER F_TOTRIT 15
BEGIN
PROMPT 53 5 ""
FIELD LF_SCPERC->TOTRIT
FLAGS "H"
END
STRING SPF_CAUSD 1
BEGIN
PROMPT 38 2 "Causale D "
FLAGS "D"
END
STRING SPF_CAUSD1 1
BEGIN
PROMPT 52 2 "Causale D1 "
FLAGS "D"
END
TEXT DLG_NULL
BEGIN
PROMPT 1 5 "@bPagamenti"
END
SPREADSHEET F_PAGAMENTI 0 6
BEGIN
PROMPT 0 6 ""
ITEM "Data@10"
ITEM "Compenso@15"
ITEM "Spese@15"
ITEM "Imponibile@15"
ITEM "% R.a.@7"
ITEM "Ritenuta effettuata"
ITEM "Cont.SSN/INPS perc."
ITEM "Cont.SSN/INPS complessivi"
ITEM "Netto corrisposto"
END
TEXT DLG_NULL
BEGIN
PROMPT 1 12 "@bVersamenti"
END
SPREADSHEET F_VERSAMENTI 79 5
BEGIN
PROMPT 0 13 ""
ITEM "1015"
ITEM "Data@10"
ITEM "Luogo"
ITEM "Tipo"
ITEM "Serie-ABI@5"
ITEM "Numero-CAB@11"
ITEM "Progressivo banca"
ITEM "Ritenuta@15"
WARNING "Versamento inconsistente"
END
BOOLEAN F_FORCED
BEGIN
FIELD LF_SCPERC->FORZATURA
PROMPT 1 18 "Forzatura"
HELP "Attivare questo flag per forzare la registrazione anche di dati incongruenti"
END
ENDPAGE
ENDMASK
#include "770100c.uml"
#include "770100d.uml"

109
m770/770100c.uml Executable file
View File

@ -0,0 +1,109 @@
// m70100c.uml - masksheet riga pagamento
PAGE "Pagamento " -1 -1 66 13
DATE 101
BEGIN
PROMPT 1 1 "Data pagamento "
FIELD LF_RPAG->DATAPAG
GROUP 1
END
GROUPBOX DLG_NULL 65 7
BEGIN
PROMPT 1 2 ""
END
NUMBER 102 15
BEGIN
PROMPT 2 3 "Compenso "
PICTURE "."
FLAGS "R"
FIELD LF_RPAG->COMPENSO
GROUP 1
END
NUMBER 103 15
BEGIN
PROMPT 38 3 "Spese "
PICTURE "."
FLAGS "R"
FIELD LF_RPAG->SPESA
GROUP 1
END
NUMBER 104 15
BEGIN
PROMPT 2 4 "Imponibile "
PICTURE "."
FLAGS "R"
FIELD LF_RPAG->IMPONIBILE
GROUP 1
END
NUMBER 105 6
BEGIN
PROMPT 2 5 "% Ritenuta "
FLAGS "R"
NUM_EXPR {(#THIS>=0) && (#THIS<=100)}
FIELD LF_RPAG->PERC
PICTURE ".2"
GROUP 1
END
NUMBER 106 15
BEGIN
PROMPT 38 5 "Ritenuta "
PICTURE "."
FLAGS "R"
FIELD LF_RPAG->RITENUTA
GROUP 1
END
NUMBER 107 15
BEGIN
PROMPT 2 6 "Contributi SSN/INPS a carico del percipiente "
PICTURE "."
GROUP 1
END
NUMBER 108 15
BEGIN
PROMPT 2 7 "Contributi SSN/INPS complessivi "
PICTURE "."
GROUP 1
END
NUMBER 109 15
BEGIN
PROMPT 2 9 "Netto corrisposto "
PICTURE "."
FLAGS "RD"
FIELD LF_RPAG->NETTO
GROUP 1
END
NUMBER PAGF_NUMVERS 6
BEGIN
PROMPT 38 21 "VER "
FLAGS "D"
END
BUTTON DLG_OK 9 2
BEGIN
PROMPT -13 -1 ""
END
BUTTON DLG_CANCEL 9 2
BEGIN
PROMPT -23 -1 ""
END
BUTTON DLG_AZZERAPAG 9 2
BEGIN
PROMPT -33 -1 "Azzera"
MESSAGE RESET,1@
END
ENDPAGE
ENDMASK

185
m770/770100d.uml Executable file
View File

@ -0,0 +1,185 @@
// m70100d.uml - VERSAMENTI
PAGE "Versamento " -1 -1 68 11
BOOLEAN 101
BEGIN
PROMPT 1 1 "Codice tributo 1015 "
FIELD LF_RVER->VERS1015
END
GROUPBOX DLG_NULL 68 3
BEGIN
PROMPT 1 2 "@bDati versamento"
END
DATE 102
BEGIN
PROMPT 2 3 "Data "
FIELD LF_RVER->DATAVERS
VALIDATE REQIF_FUNC 4 103 104 105 106 107
WARNING "Inserire la data del versamento"
GROUP 1
END
STRING 103 1
BEGIN
PROMPT 19 3 "Luogo "
HELP "Indicare il luogo del versamento"
SHEET "Cod.|Descrizione@30"
INPUT 103
ITEM " |Nessuno"
ITEM "T|Tesoreria"
ITEM "C|Concessione"
OUTPUT 103
OUTPUT 71
FLAGS "U"
FIELD LF_RVER->LUOVERS
CHECKTYPE REQUIRED
GROUP 1
END
STRING 71 12
BEGIN
PROMPT 29 3 ""
FLAGS "D"
END
TEXT 209
BEGIN
PROMPT 2 5 "Serie "
GROUP 2 4
END
TEXT 210
BEGIN
PROMPT 2 5 "Codice ABI "
GROUP 2 6
END
TEXT 212
BEGIN
PROMPT 25 5 "Codice CAB "
GROUP 2 6
END
TEXT 213
BEGIN
PROMPT 25 5 "Quietanza "
GROUP 2 3
END
TEXT 211
BEGIN
PROMPT 25 5 "Numero "
GROUP 2 4 5
END
STRING 104 1
BEGIN
PROMPT 42 3 "Tipo "
FIELD LF_RVER->TIPOVERS
SHEET "Cod.|Descrizione@30"
INPUT 104
ITEM " |Nessuno"
ITEM "C|C/C Postale"
ITEM "D|Distinta"
ITEM "B|Delega bancaria"
OUTPUT 104
OUTPUT 70
GROUP 1
CHECKTYPE REQUIRED
FLAGS "U"
END
STRING 70 16
BEGIN
PROMPT 51 3 ""
FLAGS "D"
END
STRING 105 5
BEGIN
PROMPT 16 5 ""
FIELD LF_RVER->SERIE
FLAGS "G"
WARNING "Inserire la serie"
HELP "Inserire la serie"
GROUP 1 2 4 6
END
STRING 106 11
BEGIN
PROMPT 39 5 ""
FIELD LF_RVER->NUMERO
VALIDATE REQIF_FUNC 2 103 104
WARNING "Inserire il numero"
HELP "Inserire il numero"
MESSAGE COPY,72
FLAGS "G"
GROUP 1 2 3 4 5
END
STRING 72 5
BEGIN
PROMPT 39 5 ""
FIELD LF_RVER->NUMERO
VALIDATE REQIF_FUNC 2 103 104
WARNING "Inserire il codice CAB"
HELP "CODICE CAB LUNGO 5"
MESSAGE COPY,106
FLAGS "HG"
GROUP 2 6
END
NUMBER 107 6
BEGIN
PROMPT 2 6 "Progressivo per versamento banca "
FLAGS "DZ"
GROUP 2 6
END
// "Se indico la data aloora devo indicare anche l'importo"
NUMBER 108 15
BEGIN
PROMPT 2 7 "Importo versato "
PICTURE "."
FLAGS "R"
FIELD LF_RVER->RITENUTA
VALIDATE REQIF_FUNC 1 102
WARNING "Inserire la ritenuta"
HELP "Inserire la ritenuta"
GROUP 3
END
NUMBER VERF_NUMVERS 6
BEGIN
PROMPT 1 8 "NUMVERS "
FLAGS "H"
END
BUTTON DLG_OK 9 2
BEGIN
PROMPT -14 -1 ""
END
BUTTON DLG_CANCEL 9 2
BEGIN
PROMPT -24 -1 ""
MESSAGE CLEAR,103|CLEAR,104|CLEAR,105|CLEAR,106|CLEAR,107|CLEAR,108
END
BUTTON DLG_AZZERA 9 2
BEGIN
PROMPT -34 -1 "Azzera"
MESSAGE RESET,1@|RESET,2@|RESET,3@|RESET,101
END
BUTTON DLG_SELPAG 9 2
BEGIN
PROMPT -44 -1 "~Pagamenti"
HELP "Seleziona i pagamenti collegati"
END
ENDPAGE
ENDMASK

236
m770/770101.cpp Executable file
View File

@ -0,0 +1,236 @@
#include <stdlib.h>
#include <tabutil.h>
#include "770101.h"
#include "perc.h"
#include "scperc.h"
#include "rver.h"
#include "rpag.h"
#include "../cg/cg2103.h"
// Calcola l'anno di esercizio di una data
// Certified 99%
int date2esc(const TDate& d, int* prevesc)
{
if (prevesc) *prevesc = 0;
TTable esc("ESC");
for (int err = esc.first(); err == NOERR; err = esc.next())
{
const TDate ia(esc.get("D0")); // Data inizio esercizio
const TDate fa(esc.get("D1")); // Data fine esercizio
TString16 sanno(esc.get("CODTAB")); sanno.cut(4);
const int anno = atoi(sanno);
if (d >= ia && d <= fa)
return anno;
if (prevesc) *prevesc = anno;
}
return 0;
}
///////////////////////////////////////////////////////////
// Scheda Percipiente
///////////////////////////////////////////////////////////
TSchedaPE::TSchedaPE()
: TRelation(LF_SCPERC), _old_ver(0), _old_pag(0)
{
add(LF_RVER, "CODDITTA==CODDITTA|TIPOA==TIPOA|CODANAGR==CODANAGR|NPROG==NPROG");
add(LF_RPAG, "CODDITTA==CODDITTA|TIPOA==TIPOA|CODANAGR==CODANAGR|NPROG==NPROG");
}
void TSchedaPE::destroy_rows()
{
_pag.destroy();
_ver.destroy();
}
TRectype& TSchedaPE::pag(int i)
{
TRectype* r = (TRectype*)_pag.objptr(i);
if (r == NULL)
{
r = new TRectype(LF_RPAG);
_pag.add(r, i);
}
return *r;
}
TRectype& TSchedaPE::ver(int i)
{
TRectype* r = (TRectype*)_ver.objptr(i);
if (r == NULL)
{
r = new TRectype(LF_RVER);
_ver.add(r, i);
}
return *r;
}
int TSchedaPE::read_scperc_rows()
{
const TLocalisamfile& rver = lfile(LF_RVER);
const TLocalisamfile& rpag = lfile(LF_RPAG);
position_rels();
destroy_rows();
int i = 0;
// "Se ho delle righe vuote devo raggruppare"
for(bool ok = is_first_match(LF_RVER); ok; ok = next_match(LF_RVER))
ver(i++) = rver.curr();
_old_ver = ver_items();
i = 0;
for(ok = is_first_match(LF_RPAG); ok; ok = next_match(LF_RPAG))
pag(i++) = rpag.curr();
_old_pag = pag_items();
return NOERR;
}
int TSchedaPE::read(TIsamop op, TReclock lockop, TDate& atdate)
{
int err = file().read(op, lockop, atdate);
if (err == NOERR) err = read_scperc_rows();
return err;
}
int TSchedaPE::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 TSchedaPE::cancella(TLocalisamfile& f, int da, int a)
{
const long codditta = lfile().get_long(SPR_CODDITTA);
const char tipoa = lfile().get_char(SPR_TIPOA);
const long codanagr = lfile().get_long(SPR_CODANAGR);
const int nprog = lfile().get_int (SPR_NPROG);
for (int i = da; i <= a; i++)
{
f.zero();
f.put(VER_CODDITTA, codditta);
f.put(VER_TIPOA , tipoa);
f.put(VER_CODANAGR, codanagr);
f.put(VER_NPROG , nprog);
f.put(VER_NRIGA , i);
if (f.read(_isequal, _lock) == NOERR)
f.remove();
}
return f.status();
}
bool TSchedaPE::empty_vers(TRectype& ver)
{
TString16 datv(ver.get("DATAVERS"));
TString16 v15(ver.get("VERS1015"));
datv.trim();
v15.trim();
return (datv.empty() && v15.empty());
}
int TSchedaPE::registra(bool re, bool force)
{
TLocalisamfile& sc = lfile();
const int err = write_rec(re, sc.curr(), sc);
if (err != NOERR) return err;
TLocalisamfile& rver = lfile(LF_RVER);
const long codditta = sc.get_long("CODDITTA");
const char tipoa = sc.get_char("TIPOA");
const long codanagr = sc.get_long("CODANAGR");
const int nprog = sc.get_int ("NPROG");
for (int i = 0 ; i < ver_items(); i++)
{
const bool vers_vuoto = empty_vers(ver(i));
if (!re)
{
ver(i).put("CODDITTA", codditta);
ver(i).put("TIPOA" , tipoa);
ver(i).put("CODANAGR", codanagr);
ver(i).put("NPROG" , nprog);
}
ver(i).put("NRIGA" , i+1);
if (vers_vuoto)
{
if (i < _old_ver)
cancella(rver, i+1, i+1);
}
else
{
const int err = write_rec(re, ver(i), rver);
if (!force && err != NOERR) return err;
}
}
if (i < _old_ver)
cancella(rver, i+1, _old_ver);
_old_ver = ver_items();
TLocalisamfile& rpag = lfile(LF_RPAG);
for (i = 0 ; i < pag_items(); i++)
{
if (!re)
{
pag(i).put("CODDITTA", codditta);
pag(i).put("TIPOA" , tipoa);
pag(i).put("CODANAGR", codanagr);
pag(i).put("NPROG" , nprog);
}
pag(i).put("NRIGA" , i+1);
const int err = write_rec(re, pag(i), rpag);
if (!force && err != NOERR) return err;
}
if (i < _old_pag)
cancella(rpag, i+1, _old_pag);
_old_pag = pag_items();
return err;
}
int TSchedaPE::write(bool force, TDate&)
{
return registra(FALSE, force);
}
int TSchedaPE::rewrite(bool force, TDate&)
{
return registra(TRUE, force);
}
int TSchedaPE::remove(TDate&)
{
TLocalisamfile& scheda = lfile();
TLocalisamfile& rver = lfile(LF_RVER);
TLocalisamfile& rpag = lfile(LF_RPAG);
cancella(rver, 1, _old_ver);
cancella(rpag, 1, _old_pag);
scheda.remove();
_old_ver = _old_pag = 0;
return scheda.status();
}

48
m770/770101.h Executable file
View File

@ -0,0 +1,48 @@
// TSchedaPE : ovvero scheda percipienti
#ifndef __M70101_H
#define __M70101_H
#ifndef __RELATION_H
#include <relation.h>
#endif
class TSchedaPE : public TRelation
{
TArray _pag,_ver;
int _old_pag, _old_ver;
// long _lastvers, _lastpag;
protected:
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_scperc_rows();
public:
virtual int next (TReclock lockop = _nolock) {return (file().next(lockop) || read_scperc_rows());}
virtual int prev (TReclock lockop = _nolock) {return (file().prev(lockop) || read_scperc_rows());}
virtual int first(TReclock lockop = _nolock) {return (file().first(lockop) || read_scperc_rows());}
virtual int last (TReclock lockop = _nolock) {return (file().last(lockop) || read_scperc_rows());}
virtual int skip (TRecnotype nrec,TReclock lockop = _nolock) {return (file().skip(nrec,lockop) || read_scperc_rows());}
virtual int read (TIsamop op = _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& pag(int i);
TRectype& ver(int i);
int pag_items() const { return _pag.items(); }
int ver_items() const { return _ver.items(); }
bool empty_vers(TRectype& ver);
void destroy_rows();
TSchedaPE();
virtual ~TSchedaPE() {}
};
#endif

1170
m770/770102.cpp Executable file

File diff suppressed because it is too large Load Diff

203
m770/770102.h Executable file
View File

@ -0,0 +1,203 @@
#ifndef __M70102_H
#define __M70102_H
#ifndef __MSKSHEET_H
#include <msksheet.h>
#endif
#ifndef __CONFIG_H
#include <config.h>
#endif
#ifndef __RELAPP_H
#include <relapp.h>
#endif
#ifndef __77LIB_H
#include "77lib.h"
#endif
#ifndef __770100a_H
#include "770100a.h"
#endif
// Id della maschera di edit dello sheet pagamenti
#define MPAG_DATAPAG 101
#define MPAG_COMPENSO 102
#define MPAG_SPESA 103
#define MPAG_IMPONIBILE 104
#define MPAG_PERCRA 105
#define MPAG_RITPAG 106
#define MPAG_INPSPERC 107
#define MPAG_INPSCOMP 108
#define MPAG_NETTO 109
// Id della maschera di edit dello sheet versamenti
#define F_VERS_1015 101
#define F_DATAVERS 102
#define F_LUOVERS 103
#define F_TIPOVERS 104
#define F_RITVERS 108
#define F_ABI 105 // abi e cab
#define F_CAB 72
#define SM_PROGRBANCA 107
// Posizioni nella riga
const int SS_POS_NUMVERS = 8;
const int SS_POS_RITPAG = 5;
const int SS_POS_NRIGA = 5;
const int SS_POS_NVER = 6;
const int SS_POS_RITVERS = 7;
// Posizioni nell'array-sheet dei pagamenti
const int AS_POS_NRIGA = 5;
const int AS_POS_NVER = 6;
const int AS_POS_RITPAG = 4;
#define COLONNE_SIGNIFICATIVE_SPREADSHEET_VERSAMENTI 7
#define COLONNE_SIGNIFICATIVE_SPREADSHEET_PAGAMENTI 7
class TSchedaPercipienti : public TRelation_application
{
private:
bool _from_modify;
bool _azzerato_pag;
TLink770 _coll;
TSchedaPE* _rel;
TMask* _msk[2];
long _codanagr;
TString16 _tipoa;
TString80 _ragsoc;
int _nproga;
int _mode;
TLocalisamfile* _per, *_scper, *_rver, *_rpag;
long _rigavers;
long _lastvers, _lastpag, _last_scheda;
long _numreg; // NUMREG inviato dalla 1. nota
int _anno_dic; // anno dichiarazione
// Collegamento versamento->pagamenti
TBit_array _selected;
TNikArray_sheet* _pags;
real _tot_compenso, _tot_spese, _tot_netto;
real _tot_vers, _tot_rit;
private:
void get_ragsoc(const char* tipoa, const long codanagr);
static void work_tipoluogo(TMask_field& f);
static bool check_pagamenti (TMask_field& f, KEY key);
static real calcola_imponibile (TMask_field& f,const real& compenso,const bool force=FALSE);
static bool calcola_ritenuta (TMask_field& f,const real& compenso,const bool forza=FALSE,const real perc=ZERO);
static real calcola_netto (TMask_field& f);
real calcola_imponibile(const real& compenso);
real calcola_ritenuta (const real& imponibile);
static long get_numvers (TMask_field& f);
static void setta_ritvers(TMask_field& f, const real& ritenuta);
static bool nprog_handler (TMask_field& f, KEY key);
static bool codanagr_handler (TMask_field& f, KEY key);
static bool codditta_handler (TMask_field& f, KEY key);
static bool check_compensi (TMask_field& f, KEY k);
static bool check_spese (TMask_field& f, KEY k);
// Handler del versamento
static bool vers_notify (TSheet_field& s, int r, KEY key);
static bool pags_notify (TSheet_field& s, int r, KEY key);
static bool vers1015_handler (TMask_field& f, KEY key);
static bool compilato_vers(TMask_field& f);
// static bool pag_handler (TMask_field& f, KEY key);
static bool compenso_handler (TMask_field& f, KEY key);
static bool imponibile_handler (TMask_field& f, KEY key);
static bool percra_handler (TMask_field& f, KEY key);
static bool spesa_handler (TMask_field& f, KEY key);
static bool netto_handler (TMask_field& f, KEY k);
static bool tipo_hndl (TMask_field& f, KEY key);
static bool luo_hndl (TMask_field& f, KEY key);
static bool abicab_hndl (TMask_field& f, KEY key);
static bool check_handler (TMask_field& f, KEY key);
static bool check_ritenuta (TMask_field& f, KEY k);
static bool check_causale (TMask_field& f, KEY k);
static bool forced_handler (TMask& m, KEY key);
static bool ver_notify (int r, KEY key);
static bool pag_select (TMask_field& f, KEY key);
static bool ver_azzera (TMask_field& f, KEY key);
static bool pag_azzera (TMask_field& f, KEY key);
void enable_vers_cells (int r, bool enable=TRUE);
void disable_vers_cells (int r) { enable_vers_cells(r,FALSE); }
bool vers_attached(const long numvers);
void pag_pack();
void ver_pack();
static bool setta_nprog (TMask& m, const bool variazione=FALSE,
const char* codanagr=NULL);
protected:
virtual bool user_create();
virtual bool user_destroy();
virtual TRelation* get_relation() const { return _rel; }
virtual TMask* get_mask(int mode);
virtual bool changing_mask(int mode);
virtual void init_query_mode (TMask&);
virtual void init_query_insert_mode (TMask&);
virtual void init_insert_mode(TMask&);
virtual void init_modify_mode(TMask&);
virtual int rewrite(const TMask& m);
virtual int write(const TMask& m);
virtual int read(TMask& m);
virtual void on_config_change();
void init_mask(TMask&);
TMask* load_mask(int n);
void fill_sheet(TMask&);
bool scrivi_dati_per(TRectype& rec);
void mask2rel(const TMask& m);
void rec2row(TToken_string& r, TRectype& rec, int row);
// void update_lasts();
void update_lasts(TMask& m);
void attach_pag_vers (int pag, long numvers);
void detach_pag_vers (int pag);
bool my_empty_items(TToken_string& r, bool versamenti);
void new_row(TSheet_field& ver_pag, int r, bool vers);
int anno_dic() const { return _anno_dic; }
public:
bool _flag_cg;
public:
void load_pag_sheet(const long numvers);
TTipo_coll tipo_coll() const { return _coll._tipo_coll; }
void compila_testata(TMask& m);
bool coll_variazione() const;
bool coll_datanum() const { return _coll._datadoc.not_empty() && _coll._numdoc.not_empty(); }
bool esiste_perc(TMask& m, const char* coda=NULL);
TSheet_field& pags() const;
TSheet_field& vers() const;
public:
TSchedaPercipienti ();
~TSchedaPercipienti() {};
};
inline TSchedaPercipienti& app() { return (TSchedaPercipienti&) main_app();}
#endif

731
m770/770200.cpp Executable file
View File

@ -0,0 +1,731 @@
// 770200 - collegamento 1a nota (versamento) - ritenuta percipienti
#include <applicat.h>
#include <assoc.h>
#include <relation.h>
#include <progind.h>
#include <urldefid.h>
#include <sheet.h>
#include <mask.h>
#include <maskfld.h>
#include <mailbox.h>
#include "77lib.h"
#include "770200a.h"
class TVersa_rit : public TApplication
{
private:
TLink770 _coll;
real _versato;
TRelation* _rel;
TCursor* _cur;
TBrowse_sheet* _sheet_perc;
TArray_sheet* _schede;
TArray_sheet* _pagam;
TMask* _msk;
TLocalisamfile* _perc, *_scperc, *_rpag, *_rver;
TAssoc_array _apags;
// Estremi versamento
TString16 _data, _serie, _numero;
char _luogo, _tipo;
void add(const long codditta, char tipoa, const long codanagr,
const int nprog, TToken_string& rriga);
TToken_string* find(const long codditta, char tipoa, const long codanagr,
const int nprog);
void remove(const long codditta, char tipoa, const long codanagr,
const int nprog);
static void work_tipoluogo(TMask_field& f);
static bool luo_hndl (TMask_field& f, KEY k);
static bool tipo_hndl(TMask_field& f, KEY k);
static bool abicab_hndl(TMask_field& f, KEY k);
protected:
virtual bool create();
virtual bool destroy();
virtual bool menu(MENU_TAG m);
int split_rpag(const long codditta,char tipoa,
const long codanagr, const int nprog,
const int nriga, real& versato, real& da_versare,
const long newvers);
int attach_rpag(const long codditta, char tipoa,
const long codanagr, const int nprog,
const int nriga, const long new_vers);
long add_new_vers(const long codditta, char tipoa,
const long codanagr, const int nprog,
real& versato);
void attach_pag_vers(TToken_string& r, real& versato, const bool last=FALSE);
real ritenuta_versata(const long codditta,const long numvers);
bool ha_pagamenti_non_versati(const long codditta,
char tipoa,const long codanagr,const int nprog);
TCursor* meik_curs(TRelation* rel);
bool do_all();
void build_schede_sheet(const long codditta);
void build_pagam_sheet(const long codditta);
public:
TVersa_rit() {}
~TVersa_rit() {}
};
TCursor* TVersa_rit::meik_curs(TRelation* rel)
{
TString16 filt;
TCursor* cur;
const long codditta = get_firm();
filt.format("CODDITTA=%ld", codditta);
cur = new TCursor(rel, filt);
return cur;
}
bool TVersa_rit::create()
{
TApplication::create();
// Collegamento da contabilita'
TMailbox m;
TMessage* msg = m.next_s("LINK770");
// Questo programma si richiama solo dalla contabilita'
if (!msg) return FALSE;
if ( !_coll.read(msg->body()) )
return warning_box("Errore nei parametri passati");
_perc = new TLocalisamfile(LF_PERC);
_scperc = new TLocalisamfile(LF_SCPERC);
_rpag = new TLocalisamfile(LF_RPAG);
_rver = new TLocalisamfile(LF_RVER);
_rel = new TRelation(LF_PERC);
_rel->add(LF_ANAG, "TIPOA=TIPOA|CODANAGR=CODANAGR");
_cur = meik_curs(_rel);
_msk = new TMask("770200a");
_msk->set_handler(F_LUOGO, luo_hndl);
_msk->set_handler(F_TIPO, tipo_hndl);
_msk->set_handler(F_SERIE, abicab_hndl);
_msk->set_handler(F_NUMERO, abicab_hndl);
_msk->set(F_DATA, _coll._datadoc);
_msk->set(F_VERSATO, _coll._ritenute.string());
KEY kp = _msk->run();
if (kp != K_ENTER)
return FALSE;
else
{
_data = _msk->get(F_DATA);
_luogo = _msk->get(F_LUOGO)[0];
_tipo = _msk->get(F_TIPO)[0];
_versato = real(_msk->get(F_VERSATO));
_serie = _msk->get(F_SERIE);
_numero = _msk->get(F_NUMERO);
}
TEdit_field& dummy = (TEdit_field&)_msk->field(F_CODANAGRPERC);
_sheet_perc = new TBrowse_sheet(_cur," |TIPOA|CODANAGR|6->RAGSOC", "Selezione percipienti",
"@1|Tipo|Codice|Ragione sociale@50", 8, &dummy);
_sheet_perc->maximize();
_schede = new TArray_sheet(-1, -1, 0, 0, "Selezione Schede","@1|T|Codice|Ragione@50|N.|Data@10");
_schede->maximize();
_pagam = new TArray_sheet(-1, -1, 0, 0, "Selezione Ritenute da versare",
"@1|T|Codice|Scheda n.|Riga n.|Ritenuta@15");
_pagam->maximize();
_apags.destroy();
dispatch_e_menu (BAR_ITEM(1));
return TRUE;
}
bool TVersa_rit::destroy()
{
delete _rel;
delete _cur;
delete _msk;
delete _schede;
delete _pagam;
delete _sheet_perc;
delete _rver; delete _rpag; delete _scperc; delete _perc;
return TApplication::destroy();
}
void TVersa_rit::work_tipoluogo(TMask_field& f)
{
TMask& m = f.mask();
char tipo = m.get(F_TIPO)[0];
char luogo = m.get(F_LUOGO)[0];
m.hide (-2); // nasconde tutto
if (tipo == 'D')
{
if (luogo == 'T')
m.show(-3); // SOLO quietanza
else
m.show(-4); // serie e numero
}
else
if (tipo == 'B')
m.show (-6); // ABI e CAB
else
if (tipo == 'C')
m.show (-5); // SOLO numero versamento
}
bool TVersa_rit::luo_hndl(TMask_field& f, KEY k)
{
if (k == K_TAB)
work_tipoluogo(f);
if (k == K_ENTER)
{
TMask& m = f.mask();
char tipo = m.get(F_TIPO)[0];
char luogo = m.get(F_LUOGO)[0];
// Se ho indicato il luogo => devo indicare anche il TIPO
if (isalpha(luogo))
return tipo == ' ' || tipo == '\0' ?
f.warning_box("Indicare il tipo del versamento") : TRUE;
}
return TRUE;
}
bool TVersa_rit::tipo_hndl(TMask_field& f, KEY k)
{
if (k == K_TAB)
work_tipoluogo(f);
if (k == K_ENTER || k == K_TAB)
{
TMask& m = f.mask();
char tipo = m.get(F_TIPO)[0];
char luogo = m.get(F_LUOGO)[0];
// Se ho indicato il tipo => devo indicare anche il LUOGO
if (isalpha(tipo))
return luogo == ' ' || luogo == '\0' ?
f.warning_box("Indicare il luogo del versamento") : TRUE;
}
return TRUE;
}
bool TVersa_rit::abicab_hndl(TMask_field& f, KEY k)
{
if (f.to_check(k))
{
TString16 park(f.get());
TMask& m = f.mask();
char tipo = m.get(F_TIPO)[0];
// ABI/CAB solo se tipo e' B
if (tipo != 'B')
return TRUE;
for (int i=0; i<park.len(); i++)
if (!isdigit(park[i]))
return f.warning_box("Il codice ABI/CAB deve essere numerico");
}
return TRUE;
}
real TVersa_rit::ritenuta_versata(const long codditta,const long numvers)
{
TLocalisamfile rver(LF_RVER);
real versato = ZERO;
rver.zero();
rver.setkey(2);
rver.put("CODDITTA", (long)codditta);
// rver.put("NUMVERS", (long)numvers);
if (rver.read() == NOERR)
versato = rver.get_real("RITENUTA");
return versato;
}
void TVersa_rit::add(const long codditta, char tipoa, const long codanagr,
const int nprog, TToken_string& rrr)
{
TString80 key;
key.format("%5ld%c%5ld%d", codditta,tipoa,codanagr,nprog);
_apags.add(key, rrr);
}
TToken_string* TVersa_rit::find(const long codditta, char tipoa,
const long codanagr, const int nprog)
{
TString80 key;
key.format("%5ld%c%5ld%d", codditta,tipoa,codanagr,nprog);
TToken_string* rr = (TToken_string*)_apags.objptr(key);
return rr;
}
void TVersa_rit::remove(const long codditta, char tipoa, const long codanagr,
const int nprog)
{
TString80 key;
key.format("%5ld%c%5ld%d", codditta,tipoa,codanagr,nprog);
_apags.remove(key);
}
bool TVersa_rit::ha_pagamenti_non_versati(const long codditta,char tipoa,const long codanagr,const int nprog)
{
TLocalisamfile rpag(LF_RPAG);
bool found = FALSE;
long numvers = 0L;
real ritvers = ZERO, ritpag = ZERO;
int nriga = 0;
rpag.zero();
rpag.put("CODDITTA", (long)codditta);
rpag.put("TIPOA", tipoa);
rpag.put("CODANAGR", (long)codanagr);
rpag.put("NPROG", nprog);
TRectype dep(rpag.curr());
TToken_string rriga(80);
rpag.read(_isgteq);
while (rpag.curr() == dep && !rpag.eof())
{
// numvers = rpag.get_long("NUMVERS");
numvers = rpag.get_long("NRIGA");
nriga = rpag.get_int("NRIGA");
ritpag = rpag.get_real("RITENUTA");
if (numvers <= 0)
{
found = TRUE;
rriga.add(nriga);
rriga.add(ritpag.string());
}
/* 4.7.95 Considero solo i pagamenti NON collegati
else
{
ritvers = ritenuta_versata(codditta,numvers);
real resto = ritpag - ritvers;
if (resto > ZERO)
{
found = TRUE;
rriga.add(nriga);
rriga.add(resto.string());
}
}
***************************************************************/
rpag.next();
}
if (found) add(codditta,tipoa,codanagr,nprog,rriga);
return found;
}
void TVersa_rit::build_pagam_sheet(const long codditta)
{
_pagam->destroy();
// build array_sheet dei pagamenti non collegati o non del tutto versati
int nriga = 0;
for (int i=0; i < _schede->items(); i++)
if (_schede->checked(i))
{
TToken_string& r = _schede->row(i);
char tipoa = r.get_char(1);
long codanagr = r.get_long(2);
const int nprog = r.get_int(4);
TToken_string* tpag = find(codditta,tipoa,codanagr,nprog);
if (!tpag) continue;
while ( (nriga = tpag->get_int()) != 0 ) // le righe partono da 1
{
real da_versare(tpag->get()); // leggo importo rimasto da versare
TToken_string rr(100);
rr.add(" "); // Spazio per selezionare
rr.add(tipoa);
rr.add(codanagr);
// rr.add(ragsoc);
rr.add(nprog);
rr.add(nriga);
rr.add(da_versare.string());
_pagam->add(rr);
}
}
}
void TVersa_rit::build_schede_sheet(const long codditta)
{
// Costruisco lista schede
_schede->destroy();
TLocalisamfile sch(LF_SCPERC);
sch.setkey(1);
for (int i=0; i<_sheet_perc->items(); i++)
if (_sheet_perc->checked(i))
{
// Leggo tipo e codice del percipiente selezionato
TToken_string& r = _sheet_perc->row(i);
char tipoa = r.get_char(1);
long codanagr = r.get_long(2);
TString80 ragsoc(r.get(3));
sch.zero();
sch.put("CODDITTA", (long)codditta);
sch.put("TIPOA", tipoa);
sch.put("CODANAGR", codanagr);
TRectype dep(sch.curr());
// Leggo tutte le schede del percipiente scelto
sch.read(_isgteq);
while (sch.curr() == dep && !sch.eof())
{
const int nprog = sch.get_int("NPROG");
TString16 datadoc(sch.get("DATADOC"));
// Considero solo le schede con pagamenti non ancora versati
if (ha_pagamenti_non_versati(codditta,tipoa,codanagr,nprog))
{
TToken_string rr(100);
rr.add(" "); // Spazio per selezionare
rr.add(tipoa);
rr.add(codanagr);
rr.add(ragsoc);
rr.add(nprog);
rr.add(datadoc);
_schede->add(rr);
}
sch.next();
}
} // if checked
}
bool TVersa_rit::do_all()
{
KEY kp;
long items = 0L;
while (TRUE)
{
items = _sheet_perc->items();
if (items == 0L)
{
warning_box("Nessun percipiente registrato");
return FALSE;
}
kp = _sheet_perc->run();
if (kp == K_ENTER)
if (!_sheet_perc->one_checked())
{
warning_box("Nessun percipiente selezionato");
continue;
}
if (kp == K_ESC)
return FALSE;
const long selected = _sheet_perc->selected();
const long codditta = get_firm();
build_schede_sheet(codditta);
items = _schede->items();
if (items == 0L)
{
warning_box("Non esistono pagamenti non versati per i percipienti selezionati");
continue;
}
kp = _schede->run();
if (kp == K_ENTER)
if (!_schede->one_checked())
{
warning_box("Nessuna scheda selezionata");
continue;
}
if (kp == K_ESC)
continue;
build_pagam_sheet(codditta);
kp = _pagam->run();
if (kp == K_ENTER)
if (!_pagam->one_checked())
{
warning_box("Nessun pagamento selezionato");
continue;
}
if (kp == K_ESC)
continue;
// Leggo importo arrivato dalla contabilita'
// _versato = _coll._totdoc;
// Distribuisce _versato sui pagamenti selezionati creando la riga di
// versamento se occorre
long chk = 0L;
for (int i=0; i < _pagam->items(); i++)
if (_pagam->checked(i))
{
chk++;
if (_versato == ZERO) break;
// Sull'ultimo pagamento metto tutto il versamento rimasto
const bool last_checked = chk == _pagam->checked();
TToken_string& r = _pagam->row(i);
real da_versare(r.get(5));
attach_pag_vers(r, _versato, last_checked);
if (da_versare > _versato)
_versato = ZERO;
else
_versato -= da_versare;
}
return warning_box("Creazione versamenti terminata");
} // while (TRUE)
return TRUE;
}
void TVersa_rit::attach_pag_vers(TToken_string& r, real& versato, const bool last)
{
char tipoa = r.get_char(1);
const long codanagr = r.get_long(2);
const int nprog = r.get_int(3);
const int nriga = r.get_int(4);
const long codditta = get_firm();
real da_versare(r.get(5)); // importo ancora "scoperto" in questo pag.
/*************************************************************************
TLocalisamfile rpag(LF_RPAG);
rpag.setkey(1);
rpag.zero();
rpag.put("CODDITTA", (long)codditta);
rpag.put("TIPOA", tipoa);
rpag.put("CODANAGR", (long)codanagr);
rpag.put("NPROG", nprog);
rpag.put("NRIGA", nriga);
if (rpag.read() != NOERR) return; // Non dovrebbe succedere mai
// Decido l'importo da attribuire al nuovo versamento
real ritenuta = rpag.get_real("RITENUTA");
*************************************************************************/
real vers_corr = ZERO;
// Se e' l'ultimo pagamento metto tutto l'importo del versamento
if (last)
vers_corr = versato;
else
vers_corr = versato > da_versare ? da_versare : versato;
// const long numvers = rpag.get_long("NUMVERS");
const long new_vers = add_new_vers(codditta,tipoa,codanagr,nprog,vers_corr);
// Se il pagamento era gia' collegato ad un versamento lo divido in due
// pagamenti: uno lo lascio collegato al precedente versamento, l'altro
// collegato al nuovo.
// Ogni pagamento puo' essere collegato A UNO E UNO SOLO versamento
/******
if (numvers > 0)
split_rpag(codditta,tipoa,codanagr,nprog,nriga,versato,da_versare,new_vers);
else
*****/
attach_rpag(codditta,tipoa,codanagr,nprog,nriga,new_vers);
}
int TVersa_rit::split_rpag(const long codditta,char tipoa,
const long codanagr, const int nprog,
const int nriga, real& versato, real& da_versare,
const long new_vers)
{
TLocalisamfile rpag(LF_RPAG);
long numpag = 0L;
long pag = 0L;
int new_riga = 0;
int ret_code = 0;
// Determino un nuovo NUMPAG
for (rpag.first(); !rpag.eof(); rpag.next())
{
pag = rpag.get_long("NUMPAG");
if (pag > numpag) numpag = pag;
}
numpag++;
// Determino un nuovo NRIGA
rpag.zero();
rpag.put("CODDITTA", (long)codditta);
rpag.put("TIPOA", tipoa);
rpag.put("CODANAGR", (long)codanagr);
rpag.put("NPROG", nprog);
TRectype dep(rpag.curr());
rpag.read(_isgteq);
while (rpag.curr() == dep && !rpag.eof())
{
new_riga = rpag.get_int("NRIGA");
rpag.next();
}
new_riga++;
// Sposto il pagamento preesistente
rpag.zero();
rpag.put("CODDITTA", (long)codditta);
rpag.put("TIPOA", tipoa);
rpag.put("CODANAGR", (long)codanagr);
rpag.put("NPROG", nprog);
rpag.put("NRIGA", nriga);
if ((ret_code = rpag.read()) != NOERR)
return ret_code;
// Leggo ritenuta del vecchio record e il suo versamento eventuale
// La parte che era stata gia' versata resta con il vecchio record
// La parte versata ora viene registrata nel nuovo.
real ritenuta = rpag.get_real("RITENUTA");
real parte_versata = ritenuta - da_versare;
TRectype salvo(rpag.curr());
rpag.zero();
rpag.curr() = salvo;
// Cambio solo: NUMPAG, NRIGA, e aggiorno la ritenuta. NUMVERS resta uguale
rpag.put("NUMPAG", (long)numpag);
rpag.put("NRIGA", new_riga);
rpag.put("RITENUTA", parte_versata);
// Registro il vecchio pagamento nella nuova posizione
if ((ret_code = rpag.write()) != NOERR)
warning_box("Pagamento non inserito. Codice %d", ret_code);
// Modifico l'originale per puntare al nuovo versamento
rpag.zero();
rpag.curr() = salvo;
rpag.put("NUMVERS", (long) new_vers);
rpag.put("RITENUTA", da_versare);
// Salvo le modifiche al vecchio pagamento
if ((ret_code = rpag.rewrite()) != NOERR)
warning_box("Pagamento non modificato. Codice %d", ret_code);
return ret_code;
}
int TVersa_rit::attach_rpag(const long codditta, char tipoa,
const long codanagr, const int nprog,
const int nriga, const long new_vers)
{
TLocalisamfile rpag(LF_RPAG);
int ret_code = 0;
rpag.zero();
rpag.put("CODDITTA", (long)codditta);
rpag.put("TIPOA", tipoa);
rpag.put("CODANAGR", (long)codanagr);
rpag.put("NPROG", nprog);
rpag.put("NRIGA", nriga);
if ((ret_code = rpag.read()) != NOERR)
{
warning_box("Pagamento non trovato. Codice %d", ret_code);
return ret_code;
}
rpag.put("NUMVERS", (long)new_vers);
if ((ret_code = rpag.rewrite()) != NOERR)
{
warning_box("Pagamento non modificato. Codice %d", ret_code);
return ret_code;
}
return ret_code;
}
long TVersa_rit::add_new_vers(const long codditta, char tipoa,
const long codanagr, const int nprog,
real& versata)
{
TLocalisamfile rver(LF_RVER);
int nriga = 0;
// Determino un numero di riga nuovo
rver.zero();
rver.put("CODDITTA", (long)codditta);
rver.put("TIPOA", tipoa);
rver.put("CODANAGR", (long)codanagr);
rver.put("NPROG", nprog);
TRectype dep(rver.curr());
rver.read(_isgteq);
while (rver.curr() == dep && !rver.eof())
{
nriga = rver.get_int("NRIGA");
rver.next();
}
nriga++;
// Scrivo il nuovo record
rver.zero();
rver.put("CODDITTA", (long)codditta);
rver.put("TIPOA", tipoa);
rver.put("CODANAGR", (long)codanagr);
rver.put("NPROG", nprog);
rver.put("NRIGA", nriga);
// rver.put("NUMVERS", (long)nriga);
rver.put("DATAVERS", _data);
rver.put("LUOVERS", _luogo);
rver.put("TIPOVERS", _tipo);
rver.put("SERIE", _serie);
rver.put("NUMERO", _numero);
rver.put("RITENUTA", versata);
if (rver.write() != NOERR)
{
warning_box("Fallita creazione versamento. Codice %d", rver.status());
return 0L;
}
return nriga;
}
bool TVersa_rit::menu(MENU_TAG m)
{
if (m == BAR_ITEM(1))
return do_all();
return FALSE;
}
int collega_vers_rit(int argc, char* argv[])
{
TVersa_rit a;
a.run(argc, argv, "Versamento ritenute");
return 0;
}

18
m770/770200a.h Executable file
View File

@ -0,0 +1,18 @@
#ifndef __770200a_H
#define __770200a_H
#define F_CODDITTA 101
#define F_LUOGO 103
#define F_TIPO 104
#define F_SERIE 105
#define F_NUMERO 106
#define F_DATA 102
#define F_VERSATO 107
#define F_RAGDITTA 108
#define F_CODANAGRPERC 112
#define F_TIPOA 113
#endif

218
m770/770200a.uml Executable file
View File

@ -0,0 +1,218 @@
#include "770200a.h"
PAGE "MODULO 770 - Collegamento versamento ritenute" -1 -1 75 15
GROUPBOX DLG_NULL 74 3
BEGIN
PROMPT 1 0 ""
END
NUMBER F_CODDITTA 5
BEGIN
PROMPT 2 1 "Ditta "
FLAGS "FRD"
KEY 1
CHECKTYPE REQUIRED
USE LF_NDITTE KEY 1
INPUT CODDITTA F_CODDITTA
DISPLAY "Codice" CODDITTA
DISPLAY "Ragione sociale @50" RAGSOC
OUTPUT F_RAGDITTA RAGSOC
END
STRING F_RAGDITTA 50
BEGIN
PROMPT 15 1 "Ragione "
FLAGS "D"
END
/**
NUMBER F_ANNODIC 4
BEGIN
PROMPT 52 4 "Anno dichiarazione "
FLAGS "DR"
END
**/
LIST F_TIPOA 1 12
BEGIN
PROMPT 1 8 ""
ITEM "F|Fisica"
ITEM "G|Giuridica"
FLAGS "H"
END
// Questo campo serve solo per poter istanziare un browse_sheet nel programma
NUMBER F_CODANAGRPERC 5
BEGIN
PROMPT 15 8 ""
USE LF_PERC KEY 1 SELECT (CODDITTA=#F_CODDITTA)
JOIN LF_ANAG TO LF_PERC KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR
INPUT CODDITTA F_CODDITTA
INPUT TIPOA F_TIPOA
INPUT CODANAGR F_CODANAGRPERC
DISPLAY "Tipo " TIPOA
DISPLAY "Codice " CODANAGR
DISPLAY "Cognome - Nome o Ragione sociale@50" LF_ANAG->RAGSOC
OUTPUT F_TIPOA TIPOA
OUTPUT F_CODANAGRPERC CODANAGR
// OUTPUT F_RAGSOCPER LF_ANAG->RAGSOC
FLAGS "HG"
END
GROUPBOX DLG_NULL 74 5
BEGIN
PROMPT 1 4 "@bDati versamento"
END
DATE F_DATA
BEGIN
PROMPT 2 5 "Data "
CHECKTYPE REQUIRED
WARNING "Inserire la data del versamento"
HELP "Inserire la data del versamento"
GROUP 1
END
STRING F_LUOGO 1
BEGIN
PROMPT 21 5 "Luogo "
HELP "Indicare il luogo del versamento"
SHEET "Cod.|Descrizione@30"
INPUT F_LUOGO
ITEM " |Nessuno"
ITEM "T|Tesoreria"
ITEM "C|Concessione"
OUTPUT F_LUOGO
OUTPUT 71
FLAGS "U"
CHECKTYPE REQUIRED
WARNING "Manca il luogo del versamento"
HELP "Inserire il luogo del versamento"
VALIDATE NOT_EMPTY_FUNC
GROUP 1
END
STRING 71 12
BEGIN
PROMPT 31 5 ""
FLAGS "D"
END
TEXT 209
BEGIN
PROMPT 2 7 "Serie "
GROUP 2 4
END
TEXT 210
BEGIN
PROMPT 2 7 "Codice ABI "
GROUP 2 6
END
TEXT 212
BEGIN
PROMPT 25 7 "Codice CAB "
GROUP 2 6
END
TEXT 213
BEGIN
PROMPT 25 7 "Quietanza "
GROUP 2 3
END
TEXT 211
BEGIN
PROMPT 25 7 "Numero "
GROUP 2 4 5
END
STRING F_TIPO 1
BEGIN
PROMPT 46 5 "Tipo "
SHEET "Cod.|Descrizione@30"
INPUT F_TIPO
ITEM " |Nessuno"
ITEM "C|C/C Postale"
ITEM "D|Distinta"
ITEM "B|Delega bancaria"
OUTPUT F_TIPO
OUTPUT 70
GROUP 1
CHECKTYPE REQUIRED
HELP "Inserire il tipo di versamento"
WARNING "Manca il tipo di versamento"
FLAGS "U"
VALIDATE NOT_EMPTY_FUNC
END
STRING 70 16
BEGIN
PROMPT 55 5 ""
FLAGS "D"
END
/*
LIST 104 16
BEGIN
PROMPT 42 3 "Tipo "
ITEM " |Nessuno"
MESSAGE SHOW,210|SHOW,212|HIDE,209|HIDE,211|SHOW,105
ITEM "C|C/C Postale"
MESSAGE HIDE,209|SHOW,211|HIDE,210|HIDE,212|HIDE,105
ITEM "D|Distinta"
MESSAGE SHOW,209|SHOW,211|HIDE,210|HIDE,212|SHOW,105
ITEM "B|Delega bancaria"
MESSAGE SHOW,210|SHOW,212|HIDE,209|HIDE,211|SHOW,105
GROUP 1
END
*/
STRING F_SERIE 5
BEGIN
PROMPT 16 7 ""
// VALIDATE REQIF_FUNC 2 103 104
CHECKTYPE REQUIRED
FLAGS "G"
WARNING "Inserire il numero di serie/codice CAB"
HELP "Inserire la serie"
GROUP 1 2 4 6
END
STRING F_NUMERO 11
BEGIN
PROMPT 39 7 ""
VALIDATE REQIF_FUNC 2 103 104
WARNING "Inserire il numero/codice ABI/quietanza"
HELP "Inserire il numero"
FLAGS "G"
GROUP 1 2 3 4 5 6
END
NUMBER F_VERSATO 15
BEGIN
PROMPT 2 10 "Importo versato "
PICTURE "."
HELP "Inserire l'importo versato"
WARNING "Manca l'importo versato"
CHECKTYPE REQUIRED
END
BUTTON DLG_OK 9 2
BEGIN
PROMPT -12 -1 ""
END
BUTTON DLG_CANCEL 9 2
BEGIN
PROMPT -22 -1 ""
// MESSAGE CLEAR,103|CLEAR,104|CLEAR,105|CLEAR,106|CLEAR,107
END
ENDPAGE
ENDMASK

67
m770/770300.cpp Executable file
View File

@ -0,0 +1,67 @@
/*****************************************************************
TDate d(TODAY);
TString16 dat, v15;
bool sposta_pag = FALSE;
if (d == TDate("14-09-1995") || d == TDate("15-09-1995"))
{
for (_rver->first(); !_rver->eof(); _rver->next())
{
dat = _rver->get("DATAVERS");
v15 = _rver->get("VERS1015");
dat.trim();
v15.trim();
if (dat.empty() && v15.empty())
{
sposta_pag = TRUE;
_rver->remove();
}
}
if (sposta_pag)
{
for (_rpag->first(); !_rpag->eof(); _rpag->next())
{
const long nvers = _rpag->get_long("NUMVERS");
if (nvers <= 0L) continue;
TSchedaP sch(_rpag->curr());
_rver->zero();
_rver->put(VER_CODDITTA, sch.codditta());
_rver->put(VER_TIPOA, sch.tipoa());
_rver->put(VER_CODANAGR, sch.codanagr());
_rver->put(VER_NPROG, sch.nprog());
_rver->put(VER_NRIGA, (long)nvers);
const int rt = _rver->read();
if (rt == NOERR)
continue; // vuol dire che c'e' il versamento
else
{
_rver->zero();
_rver->put(VER_CODDITTA, sch.codditta());
_rver->put(VER_TIPOA, sch.tipoa());
_rver->put(VER_CODANAGR, sch.codanagr());
_rver->put(VER_NPROG, sch.nprog());
_rver->read();
TSchedaP sch2 (_rver->curr());
if (sch2 == sch) // Se sono ancora nella stessa scheda
{
int nriga = _rver->get_int("NRIGA");
if (nriga == nvers)
continue; // e' il versamento giusto
if (nriga > 10) // sicuramente errata
{
nriga = 1;
_rver->remove();
_rver->put("NRIGA", (long)nriga);
_rver->put("NUMVERS", (long)nriga);
const int rc1 = _rver->write();
_rpag->put("NUMVERS", (long)nriga);
const int rc2 = _rpag->rewrite();
}
}
}
}
}
}
***************************************************************/

63
m770/771.cpp Executable file
View File

@ -0,0 +1,63 @@
#include <xvt.h>
#include <checks.h>
#include "771.h"
#define usage "Error - usage : %s -{0|1|2|3|4|5|6}"
int main(int argc,char** argv)
{
int n = (argc > 1) ? atoi(argv[1]+1) : -1;
switch (n)
{
// Manutenzione dati anagrafici
case 0:
m71100(argc,argv);
break;
// Quadro H
case 1:
m71290(argc,argv);
break;
// Quadro I e Prospetto dati generali
case 2:
m71300(argc,argv);
break;
// Quadro L
case 3:
m71310(argc,argv);
break;
// Dettaglio H
case 4:
m71295(argc,argv);
break;
//////////////////////////////////////
// 1: Quadro D1
// C: Quadro C
// 771mod -5 E: Quadro E
// 2: Quadro E1
// 3: Quadro E2
//////////////////////////////////////
case 5:
quadriC_E2 (argc,argv);
break;
//////////////////////////////////////
// 0 = F,
// 1 = F1,
// 771mod -6 2 = F2,
// 3 = G
// 4 = distinta G
// 5 = G-1
//////////////////////////////////////
case 6:
quadroF (argc,argv);
break;
// Quadro A
case 7:
quadriA_A3(argc,argv);
break;
default:
error_box(usage, argv[0]) ;
}
return 0;
}

15
m770/771.h Executable file
View File

@ -0,0 +1,15 @@
// 771.h
#ifndef __771_H
#define __771_H
extern int m71100 (int argc, char* argv[]);
extern int m71290 (int argc, char* argv[]);
extern int m71300 (int argc, char* argv[]);
extern int m71310 (int argc, char* argv[]);
extern int m71295 (int argc, char* argv[]);
extern int quadriC_E2(int argc, char* argv[]);
extern int quadroF(int argc, char* argv[]);
extern int quadriA_A3(int argc, char* argv[]);
#endif

775
m770/771.mak Executable file
View File

@ -0,0 +1,775 @@
# Microsoft Visual C++ generated build script - Do not modify
PROJ = 771
DEBUG = 1
PROGTYPE = 0
CALLER =
ARGS = -3
DLLS =
D_RCDEFINES = /d_DEBUG
R_RCDEFINES = /dNDEBUG
ORIGIN = MSVC
ORIGIN_VER = 1.00
PROJPATH = C:\PRASSI\
USEMFC = 0
CC = cl
CPP = cl
CXX = cl
CCREATEPCHFLAG =
CPPCREATEPCHFLAG =
CUSEPCHFLAG =
CPPUSEPCHFLAG =
FIRSTC =
FIRSTCPP = 771.CPP
RC = rc
CFLAGS_D_WEXE = /nologo /Gs /G2 /Gy /W3 /Gf /Zi /AL /Gt65000 /Od /D "XVT_OS"="400" /D "DBG" /FR /GA /Fd"771.PDB" /GEs
CFLAGS_R_WEXE = /nologo /Gs /Gy /W3 /Gf /AL /O1 /D "XVT_OS"="400" /FR /GA
LFLAGS_D_WEXE = /NOLOGO /NOD /NOE /PACKC:65000 /PACKD:65000 /SEG:512 /ALIGN:16 /ONERROR:NOEXE /CO
LFLAGS_R_WEXE = /NOLOGO /NOD /NOE /PACKC:65000 /PACKD:65000 /SEG:512 /ALIGN:16 /ONERROR:NOEXE
LIBS_D_WEXE = oldnames libw llibcew toolhelp.lib
LIBS_R_WEXE = oldnames libw llibcew toolhelp.lib
RCFLAGS = /nologo
RESFLAGS = /nologo /k /k
RUNFLAGS =
DEFFILE = F:\P.DUE\WIN\LIB\UNIVERSL.DEF
OBJS_EXT =
LIBS_EXT = F:\P.DUE\WIN\LIB\HLAPI_CW.LIB F:\P.DUE\WIN\LIB\WINDUED.LIB F:\P.DUE\WIN\LIB\WINGFM.LIB \
F:\P.DUE\WIN\LIB\WINUNO.LIB F:\P.DUE\WIN\LIB\XVT400.LIB
!if "$(DEBUG)" == "1"
CFLAGS = $(CFLAGS_D_WEXE)
LFLAGS = $(LFLAGS_D_WEXE)
LIBS = $(LIBS_D_WEXE)
MAPFILE = nul
RCDEFINES = $(D_RCDEFINES)
!else
CFLAGS = $(CFLAGS_R_WEXE)
LFLAGS = $(LFLAGS_R_WEXE)
LIBS = $(LIBS_R_WEXE)
MAPFILE = nul
RCDEFINES = $(R_RCDEFINES)
!endif
!if [if exist MSVC.BND del MSVC.BND]
!endif
SBRS = 771.SBR \
771310.SBR \
774100.SBR \
771100.SBR \
771290.SBR \
771295.SBR \
771300.SBR \
77LIB01.SBR
771_RCDEP =
771_DEP = f:\xvt.400\win_x86\ptk\include\xvt.h \
f:\xvt.400\win_x86\ptk\include\xvt_env.h \
f:\xvt.400\win_x86\ptk\include\xvt_plat.h \
f:\xvt.400\win_x86\ptk\include\xvt_varg.h \
f:\xvt.400\win_x86\ptk\include\xvt_styp.h \
f:\xvt.400\win_x86\ptk\include\xvt_defs.h \
f:\xvt.400\win_x86\ptk\include\xvt_menu.h \
f:\xvt.400\win_x86\ptk\include\xvt_type.h \
f:\xvt.400\win_x86\ptk\include\xvt_sel.h \
f:\xvt.400\win_x86\ptk\include\xvt_perr.h \
f:\xvt.400\win_x86\ptk\include\xvt_help.h \
f:\xvt.400\win_x86\ptk\include\xvt_r3.h \
f:\xvt.400\win_x86\ptk\include\xvterr.h \
f:\xvt.400\win_x86\ptk\include\xvtapp.h \
f:\xvt.400\win_x86\ptk\include\xvtcb.h \
f:\xvt.400\win_x86\ptk\include\xvtctl.h \
f:\xvt.400\win_x86\ptk\include\xvtdebug.h \
f:\xvt.400\win_x86\ptk\include\xvtdlg.h \
f:\xvt.400\win_x86\ptk\include\xvtdm.h \
f:\xvt.400\win_x86\ptk\include\xvtdwin.h \
f:\xvt.400\win_x86\ptk\include\xvtevent.h \
f:\xvt.400\win_x86\ptk\include\xvtfont.h \
f:\xvt.400\win_x86\ptk\include\xvtfsys.h \
f:\xvt.400\win_x86\ptk\include\xvtgmem.h \
f:\xvt.400\win_x86\ptk\include\xvtiostr.h \
f:\xvt.400\win_x86\ptk\include\xvtimage.h \
f:\xvt.400\win_x86\ptk\include\xvtlist.h \
f:\xvt.400\win_x86\ptk\include\xvtmenu.h \
f:\xvt.400\win_x86\ptk\include\xvtmem.h \
f:\xvt.400\win_x86\ptk\include\xvtpalet.h \
f:\xvt.400\win_x86\ptk\include\xvtpict.h \
f:\xvt.400\win_x86\ptk\include\xvtpmap.h \
f:\xvt.400\win_x86\ptk\include\xvtprint.h \
f:\xvt.400\win_x86\ptk\include\xvtrect.h \
f:\xvt.400\win_x86\ptk\include\xvtres.h \
f:\xvt.400\win_x86\ptk\include\xvtsbar.h \
f:\xvt.400\win_x86\ptk\include\xvtscr.h \
f:\xvt.400\win_x86\ptk\include\xvtslist.h \
f:\xvt.400\win_x86\ptk\include\xvtstr.h \
f:\xvt.400\win_x86\ptk\include\xvttimer.h \
f:\xvt.400\win_x86\ptk\include\xvttx.h \
f:\xvt.400\win_x86\ptk\include\xvtvobj.h \
f:\xvt.400\win_x86\ptk\include\xvtwin.h \
f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \
f:\p.due\include\checks.h \
f:\p.due\77\771.h
771310_DEP = f:\p.due\include\applicat.h \
f:\xvt.400\win_x86\ptk\include\xvt.h \
f:\xvt.400\win_x86\ptk\include\xvt_env.h \
f:\xvt.400\win_x86\ptk\include\xvt_plat.h \
f:\xvt.400\win_x86\ptk\include\xvt_varg.h \
f:\xvt.400\win_x86\ptk\include\xvt_styp.h \
f:\xvt.400\win_x86\ptk\include\xvt_defs.h \
f:\xvt.400\win_x86\ptk\include\xvt_menu.h \
f:\xvt.400\win_x86\ptk\include\xvt_type.h \
f:\xvt.400\win_x86\ptk\include\xvt_sel.h \
f:\xvt.400\win_x86\ptk\include\xvt_perr.h \
f:\xvt.400\win_x86\ptk\include\xvt_help.h \
f:\xvt.400\win_x86\ptk\include\xvt_r3.h \
f:\xvt.400\win_x86\ptk\include\xvterr.h \
f:\xvt.400\win_x86\ptk\include\xvtapp.h \
f:\xvt.400\win_x86\ptk\include\xvtcb.h \
f:\xvt.400\win_x86\ptk\include\xvtctl.h \
f:\xvt.400\win_x86\ptk\include\xvtdebug.h \
f:\xvt.400\win_x86\ptk\include\xvtdlg.h \
f:\xvt.400\win_x86\ptk\include\xvtdm.h \
f:\xvt.400\win_x86\ptk\include\xvtdwin.h \
f:\xvt.400\win_x86\ptk\include\xvtevent.h \
f:\xvt.400\win_x86\ptk\include\xvtfont.h \
f:\xvt.400\win_x86\ptk\include\xvtfsys.h \
f:\xvt.400\win_x86\ptk\include\xvtgmem.h \
f:\xvt.400\win_x86\ptk\include\xvtiostr.h \
f:\xvt.400\win_x86\ptk\include\xvtimage.h \
f:\xvt.400\win_x86\ptk\include\xvtlist.h \
f:\xvt.400\win_x86\ptk\include\xvtmenu.h \
f:\xvt.400\win_x86\ptk\include\xvtmem.h \
f:\xvt.400\win_x86\ptk\include\xvtpalet.h \
f:\xvt.400\win_x86\ptk\include\xvtpict.h \
f:\xvt.400\win_x86\ptk\include\xvtpmap.h \
f:\xvt.400\win_x86\ptk\include\xvtprint.h \
f:\xvt.400\win_x86\ptk\include\xvtrect.h \
f:\xvt.400\win_x86\ptk\include\xvtres.h \
f:\xvt.400\win_x86\ptk\include\xvtsbar.h \
f:\xvt.400\win_x86\ptk\include\xvtscr.h \
f:\xvt.400\win_x86\ptk\include\xvtslist.h \
f:\xvt.400\win_x86\ptk\include\xvtstr.h \
f:\xvt.400\win_x86\ptk\include\xvttimer.h \
f:\xvt.400\win_x86\ptk\include\xvttx.h \
f:\xvt.400\win_x86\ptk\include\xvtvobj.h \
f:\xvt.400\win_x86\ptk\include\xvtwin.h \
f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \
f:\p.due\include\printer.h \
f:\p.due\include\date.h \
f:\p.due\include\object.h \
f:\p.due\include\classes.h \
f:\p.due\include\stdtypes.h \
f:\p.due\include\checks.h \
f:\p.due\include\text.h \
f:\p.due\include\strings.h \
f:\p.due\include\array.h \
f:\p.due\include\window.h \
f:\p.due\include\xvtility.h \
f:\p.due\include\keys.h \
f:\p.due\include\mask.h \
f:\p.due\include\maskfld.h \
f:\p.due\include\real.h \
f:\mathlib\gmsys1.h \
f:\mathlib\gfd.h \
f:\p.due\include\scanner.h \
f:\p.due\include\msksheet.h \
f:\p.due\include\relapp.h \
f:\p.due\include\relation.h \
f:\p.due\include\isam.h \
f:\p.due\include\sysfld.h \
f:\p.due\include\files.h \
f:\p.due\include\extctype.h \
f:\p.due\include\rectypes.h \
f:\p.due\include\lffiles.h \
f:\p.due\include\tabutil.h \
f:\p.due\include\urldefid.h \
f:\p.due\include\defmask.h \
f:\p.due\include\config.h \
f:\p.due\include\assoc.h \
f:\p.due\include\utility.h \
f:\p.due\77\771310.h \
f:\p.due\77\774100.h \
f:\p.due\77\77lib.h \
f:\p.due\include\scperc.h \
f:\p.due\include\rver.h \
f:\p.due\include\rpag.h \
f:\p.due\include\quadrol.h
774100_DEP = f:\p.due\include\applicat.h \
f:\xvt.400\win_x86\ptk\include\xvt.h \
f:\xvt.400\win_x86\ptk\include\xvt_env.h \
f:\xvt.400\win_x86\ptk\include\xvt_plat.h \
f:\xvt.400\win_x86\ptk\include\xvt_varg.h \
f:\xvt.400\win_x86\ptk\include\xvt_styp.h \
f:\xvt.400\win_x86\ptk\include\xvt_defs.h \
f:\xvt.400\win_x86\ptk\include\xvt_menu.h \
f:\xvt.400\win_x86\ptk\include\xvt_type.h \
f:\xvt.400\win_x86\ptk\include\xvt_sel.h \
f:\xvt.400\win_x86\ptk\include\xvt_perr.h \
f:\xvt.400\win_x86\ptk\include\xvt_help.h \
f:\xvt.400\win_x86\ptk\include\xvt_r3.h \
f:\xvt.400\win_x86\ptk\include\xvterr.h \
f:\xvt.400\win_x86\ptk\include\xvtapp.h \
f:\xvt.400\win_x86\ptk\include\xvtcb.h \
f:\xvt.400\win_x86\ptk\include\xvtctl.h \
f:\xvt.400\win_x86\ptk\include\xvtdebug.h \
f:\xvt.400\win_x86\ptk\include\xvtdlg.h \
f:\xvt.400\win_x86\ptk\include\xvtdm.h \
f:\xvt.400\win_x86\ptk\include\xvtdwin.h \
f:\xvt.400\win_x86\ptk\include\xvtevent.h \
f:\xvt.400\win_x86\ptk\include\xvtfont.h \
f:\xvt.400\win_x86\ptk\include\xvtfsys.h \
f:\xvt.400\win_x86\ptk\include\xvtgmem.h \
f:\xvt.400\win_x86\ptk\include\xvtiostr.h \
f:\xvt.400\win_x86\ptk\include\xvtimage.h \
f:\xvt.400\win_x86\ptk\include\xvtlist.h \
f:\xvt.400\win_x86\ptk\include\xvtmenu.h \
f:\xvt.400\win_x86\ptk\include\xvtmem.h \
f:\xvt.400\win_x86\ptk\include\xvtpalet.h \
f:\xvt.400\win_x86\ptk\include\xvtpict.h \
f:\xvt.400\win_x86\ptk\include\xvtpmap.h \
f:\xvt.400\win_x86\ptk\include\xvtprint.h \
f:\xvt.400\win_x86\ptk\include\xvtrect.h \
f:\xvt.400\win_x86\ptk\include\xvtres.h \
f:\xvt.400\win_x86\ptk\include\xvtsbar.h \
f:\xvt.400\win_x86\ptk\include\xvtscr.h \
f:\xvt.400\win_x86\ptk\include\xvtslist.h \
f:\xvt.400\win_x86\ptk\include\xvtstr.h \
f:\xvt.400\win_x86\ptk\include\xvttimer.h \
f:\xvt.400\win_x86\ptk\include\xvttx.h \
f:\xvt.400\win_x86\ptk\include\xvtvobj.h \
f:\xvt.400\win_x86\ptk\include\xvtwin.h \
f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \
f:\p.due\include\printer.h \
f:\p.due\include\date.h \
f:\p.due\include\object.h \
f:\p.due\include\classes.h \
f:\p.due\include\stdtypes.h \
f:\p.due\include\checks.h \
f:\p.due\include\text.h \
f:\p.due\include\strings.h \
f:\p.due\include\array.h \
f:\p.due\include\window.h \
f:\p.due\include\xvtility.h \
f:\p.due\include\keys.h \
f:\p.due\include\mask.h \
f:\p.due\include\maskfld.h \
f:\p.due\include\real.h \
f:\mathlib\gmsys1.h \
f:\mathlib\gfd.h \
f:\p.due\include\scanner.h \
f:\p.due\include\printapp.h \
f:\p.due\include\relation.h \
f:\p.due\include\isam.h \
f:\p.due\include\sysfld.h \
f:\p.due\include\files.h \
f:\p.due\include\extctype.h \
f:\p.due\include\rectypes.h \
f:\p.due\include\lffiles.h \
f:\p.due\include\progind.h \
f:\p.due\include\tabutil.h \
f:\p.due\include\utility.h \
f:\p.due\include\config.h \
f:\p.due\include\assoc.h \
f:\p.due\include\urldefid.h \
f:\p.due\include\defmask.h \
f:\p.due\include\execp.h \
f:\p.due\77\774100.h \
f:\p.due\include\rpag.h \
f:\p.due\include\rver.h \
f:\p.due\include\scperc.h \
f:\p.due\include\quadrol.h \
f:\p.due\77\77lib.h
771100_DEP = f:\p.due\include\mask.h \
f:\p.due\include\window.h \
f:\p.due\include\maskfld.h \
f:\p.due\include\real.h \
f:\mathlib\gmsys1.h \
f:\mathlib\gfd.h \
f:\p.due\include\stdtypes.h \
f:\p.due\include\array.h \
f:\p.due\include\scanner.h \
f:\p.due\include\strings.h \
f:\xvt.400\win_x86\ptk\include\xvt.h \
f:\xvt.400\win_x86\ptk\include\xvt_env.h \
f:\xvt.400\win_x86\ptk\include\xvt_plat.h \
f:\xvt.400\win_x86\ptk\include\xvt_varg.h \
f:\xvt.400\win_x86\ptk\include\xvt_styp.h \
f:\xvt.400\win_x86\ptk\include\xvt_defs.h \
f:\xvt.400\win_x86\ptk\include\xvt_menu.h \
f:\xvt.400\win_x86\ptk\include\xvt_type.h \
f:\xvt.400\win_x86\ptk\include\xvt_sel.h \
f:\xvt.400\win_x86\ptk\include\xvt_perr.h \
f:\xvt.400\win_x86\ptk\include\xvt_help.h \
f:\xvt.400\win_x86\ptk\include\xvt_r3.h \
f:\xvt.400\win_x86\ptk\include\xvterr.h \
f:\xvt.400\win_x86\ptk\include\xvtapp.h \
f:\xvt.400\win_x86\ptk\include\xvtcb.h \
f:\xvt.400\win_x86\ptk\include\xvtctl.h \
f:\xvt.400\win_x86\ptk\include\xvtdebug.h \
f:\xvt.400\win_x86\ptk\include\xvtdlg.h \
f:\xvt.400\win_x86\ptk\include\xvtdm.h \
f:\xvt.400\win_x86\ptk\include\xvtdwin.h \
f:\xvt.400\win_x86\ptk\include\xvtevent.h \
f:\xvt.400\win_x86\ptk\include\xvtfont.h \
f:\xvt.400\win_x86\ptk\include\xvtfsys.h \
f:\xvt.400\win_x86\ptk\include\xvtgmem.h \
f:\xvt.400\win_x86\ptk\include\xvtiostr.h \
f:\xvt.400\win_x86\ptk\include\xvtimage.h \
f:\xvt.400\win_x86\ptk\include\xvtlist.h \
f:\xvt.400\win_x86\ptk\include\xvtmenu.h \
f:\xvt.400\win_x86\ptk\include\xvtmem.h \
f:\xvt.400\win_x86\ptk\include\xvtpalet.h \
f:\xvt.400\win_x86\ptk\include\xvtpict.h \
f:\xvt.400\win_x86\ptk\include\xvtpmap.h \
f:\xvt.400\win_x86\ptk\include\xvtprint.h \
f:\xvt.400\win_x86\ptk\include\xvtrect.h \
f:\xvt.400\win_x86\ptk\include\xvtres.h \
f:\xvt.400\win_x86\ptk\include\xvtsbar.h \
f:\xvt.400\win_x86\ptk\include\xvtscr.h \
f:\xvt.400\win_x86\ptk\include\xvtslist.h \
f:\xvt.400\win_x86\ptk\include\xvtstr.h \
f:\xvt.400\win_x86\ptk\include\xvttimer.h \
f:\xvt.400\win_x86\ptk\include\xvttx.h \
f:\xvt.400\win_x86\ptk\include\xvtvobj.h \
f:\xvt.400\win_x86\ptk\include\xvtwin.h \
f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \
f:\p.due\include\printapp.h \
f:\p.due\include\applicat.h \
f:\p.due\include\printer.h \
f:\p.due\include\date.h \
f:\p.due\include\object.h \
f:\p.due\include\classes.h \
f:\p.due\include\checks.h \
f:\p.due\include\text.h \
f:\p.due\include\xvtility.h \
f:\p.due\include\keys.h \
f:\p.due\include\relation.h \
f:\p.due\include\isam.h \
f:\p.due\include\sysfld.h \
f:\p.due\include\files.h \
f:\p.due\include\extctype.h \
f:\p.due\include\rectypes.h \
f:\p.due\include\lffiles.h \
f:\p.due\include\tabutil.h \
f:\p.due\include\utility.h \
f:\p.due\include\config.h \
f:\p.due\include\assoc.h \
f:\p.due\include\urldefid.h \
f:\p.due\include\defmask.h \
f:\p.due\include\mailbox.h \
f:\p.due\include\execp.h \
f:\p.due\77\771.h \
f:\p.due\77\771100.h \
f:\p.due\ba/ba4200.h \
f:\p.due\include\comuni.h \
f:\p.due\include\anagr.h \
f:\p.due\include\nditte.h \
f:\p.due\77\77lib.h \
f:\p.due\ba/ba4500.h
771290_DEP = f:\p.due\include\applicat.h \
f:\xvt.400\win_x86\ptk\include\xvt.h \
f:\xvt.400\win_x86\ptk\include\xvt_env.h \
f:\xvt.400\win_x86\ptk\include\xvt_plat.h \
f:\xvt.400\win_x86\ptk\include\xvt_varg.h \
f:\xvt.400\win_x86\ptk\include\xvt_styp.h \
f:\xvt.400\win_x86\ptk\include\xvt_defs.h \
f:\xvt.400\win_x86\ptk\include\xvt_menu.h \
f:\xvt.400\win_x86\ptk\include\xvt_type.h \
f:\xvt.400\win_x86\ptk\include\xvt_sel.h \
f:\xvt.400\win_x86\ptk\include\xvt_perr.h \
f:\xvt.400\win_x86\ptk\include\xvt_help.h \
f:\xvt.400\win_x86\ptk\include\xvt_r3.h \
f:\xvt.400\win_x86\ptk\include\xvterr.h \
f:\xvt.400\win_x86\ptk\include\xvtapp.h \
f:\xvt.400\win_x86\ptk\include\xvtcb.h \
f:\xvt.400\win_x86\ptk\include\xvtctl.h \
f:\xvt.400\win_x86\ptk\include\xvtdebug.h \
f:\xvt.400\win_x86\ptk\include\xvtdlg.h \
f:\xvt.400\win_x86\ptk\include\xvtdm.h \
f:\xvt.400\win_x86\ptk\include\xvtdwin.h \
f:\xvt.400\win_x86\ptk\include\xvtevent.h \
f:\xvt.400\win_x86\ptk\include\xvtfont.h \
f:\xvt.400\win_x86\ptk\include\xvtfsys.h \
f:\xvt.400\win_x86\ptk\include\xvtgmem.h \
f:\xvt.400\win_x86\ptk\include\xvtiostr.h \
f:\xvt.400\win_x86\ptk\include\xvtimage.h \
f:\xvt.400\win_x86\ptk\include\xvtlist.h \
f:\xvt.400\win_x86\ptk\include\xvtmenu.h \
f:\xvt.400\win_x86\ptk\include\xvtmem.h \
f:\xvt.400\win_x86\ptk\include\xvtpalet.h \
f:\xvt.400\win_x86\ptk\include\xvtpict.h \
f:\xvt.400\win_x86\ptk\include\xvtpmap.h \
f:\xvt.400\win_x86\ptk\include\xvtprint.h \
f:\xvt.400\win_x86\ptk\include\xvtrect.h \
f:\xvt.400\win_x86\ptk\include\xvtres.h \
f:\xvt.400\win_x86\ptk\include\xvtsbar.h \
f:\xvt.400\win_x86\ptk\include\xvtscr.h \
f:\xvt.400\win_x86\ptk\include\xvtslist.h \
f:\xvt.400\win_x86\ptk\include\xvtstr.h \
f:\xvt.400\win_x86\ptk\include\xvttimer.h \
f:\xvt.400\win_x86\ptk\include\xvttx.h \
f:\xvt.400\win_x86\ptk\include\xvtvobj.h \
f:\xvt.400\win_x86\ptk\include\xvtwin.h \
f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \
f:\p.due\include\printer.h \
f:\p.due\include\date.h \
f:\p.due\include\object.h \
f:\p.due\include\classes.h \
f:\p.due\include\stdtypes.h \
f:\p.due\include\checks.h \
f:\p.due\include\text.h \
f:\p.due\include\strings.h \
f:\p.due\include\array.h \
f:\p.due\include\window.h \
f:\p.due\include\xvtility.h \
f:\p.due\include\keys.h \
f:\p.due\include\mask.h \
f:\p.due\include\maskfld.h \
f:\p.due\include\real.h \
f:\mathlib\gmsys1.h \
f:\mathlib\gfd.h \
f:\p.due\include\scanner.h \
f:\p.due\include\msksheet.h \
f:\p.due\include\relapp.h \
f:\p.due\include\relation.h \
f:\p.due\include\isam.h \
f:\p.due\include\sysfld.h \
f:\p.due\include\files.h \
f:\p.due\include\extctype.h \
f:\p.due\include\rectypes.h \
f:\p.due\include\lffiles.h \
f:\p.due\include\tabutil.h \
f:\p.due\include\urldefid.h \
f:\p.due\include\defmask.h \
f:\p.due\include\config.h \
f:\p.due\include\assoc.h \
f:\p.due\include\utility.h \
f:\p.due\include\mailbox.h \
f:\p.due\include\execp.h \
f:\p.due\77\771290.h \
f:\p.due\77\771295.h \
f:\p.due\77\77lib.h \
f:\p.due\include\nditte.h
771295_DEP = f:\p.due\include\applicat.h \
f:\xvt.400\win_x86\ptk\include\xvt.h \
f:\xvt.400\win_x86\ptk\include\xvt_env.h \
f:\xvt.400\win_x86\ptk\include\xvt_plat.h \
f:\xvt.400\win_x86\ptk\include\xvt_varg.h \
f:\xvt.400\win_x86\ptk\include\xvt_styp.h \
f:\xvt.400\win_x86\ptk\include\xvt_defs.h \
f:\xvt.400\win_x86\ptk\include\xvt_menu.h \
f:\xvt.400\win_x86\ptk\include\xvt_type.h \
f:\xvt.400\win_x86\ptk\include\xvt_sel.h \
f:\xvt.400\win_x86\ptk\include\xvt_perr.h \
f:\xvt.400\win_x86\ptk\include\xvt_help.h \
f:\xvt.400\win_x86\ptk\include\xvt_r3.h \
f:\xvt.400\win_x86\ptk\include\xvterr.h \
f:\xvt.400\win_x86\ptk\include\xvtapp.h \
f:\xvt.400\win_x86\ptk\include\xvtcb.h \
f:\xvt.400\win_x86\ptk\include\xvtctl.h \
f:\xvt.400\win_x86\ptk\include\xvtdebug.h \
f:\xvt.400\win_x86\ptk\include\xvtdlg.h \
f:\xvt.400\win_x86\ptk\include\xvtdm.h \
f:\xvt.400\win_x86\ptk\include\xvtdwin.h \
f:\xvt.400\win_x86\ptk\include\xvtevent.h \
f:\xvt.400\win_x86\ptk\include\xvtfont.h \
f:\xvt.400\win_x86\ptk\include\xvtfsys.h \
f:\xvt.400\win_x86\ptk\include\xvtgmem.h \
f:\xvt.400\win_x86\ptk\include\xvtiostr.h \
f:\xvt.400\win_x86\ptk\include\xvtimage.h \
f:\xvt.400\win_x86\ptk\include\xvtlist.h \
f:\xvt.400\win_x86\ptk\include\xvtmenu.h \
f:\xvt.400\win_x86\ptk\include\xvtmem.h \
f:\xvt.400\win_x86\ptk\include\xvtpalet.h \
f:\xvt.400\win_x86\ptk\include\xvtpict.h \
f:\xvt.400\win_x86\ptk\include\xvtpmap.h \
f:\xvt.400\win_x86\ptk\include\xvtprint.h \
f:\xvt.400\win_x86\ptk\include\xvtrect.h \
f:\xvt.400\win_x86\ptk\include\xvtres.h \
f:\xvt.400\win_x86\ptk\include\xvtsbar.h \
f:\xvt.400\win_x86\ptk\include\xvtscr.h \
f:\xvt.400\win_x86\ptk\include\xvtslist.h \
f:\xvt.400\win_x86\ptk\include\xvtstr.h \
f:\xvt.400\win_x86\ptk\include\xvttimer.h \
f:\xvt.400\win_x86\ptk\include\xvttx.h \
f:\xvt.400\win_x86\ptk\include\xvtvobj.h \
f:\xvt.400\win_x86\ptk\include\xvtwin.h \
f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \
f:\p.due\include\printer.h \
f:\p.due\include\date.h \
f:\p.due\include\object.h \
f:\p.due\include\classes.h \
f:\p.due\include\stdtypes.h \
f:\p.due\include\checks.h \
f:\p.due\include\text.h \
f:\p.due\include\strings.h \
f:\p.due\include\array.h \
f:\p.due\include\window.h \
f:\p.due\include\xvtility.h \
f:\p.due\include\keys.h \
f:\p.due\include\mask.h \
f:\p.due\include\maskfld.h \
f:\p.due\include\real.h \
f:\mathlib\gmsys1.h \
f:\mathlib\gfd.h \
f:\p.due\include\scanner.h \
f:\p.due\include\msksheet.h \
f:\p.due\include\relapp.h \
f:\p.due\include\relation.h \
f:\p.due\include\isam.h \
f:\p.due\include\sysfld.h \
f:\p.due\include\files.h \
f:\p.due\include\extctype.h \
f:\p.due\include\rectypes.h \
f:\p.due\include\lffiles.h \
f:\p.due\include\tabutil.h \
f:\p.due\include\urldefid.h \
f:\p.due\include\defmask.h \
f:\p.due\include\config.h \
f:\p.due\include\assoc.h \
f:\p.due\include\utility.h \
f:\p.due\include\mailbox.h \
f:\p.due\include\execp.h \
f:\p.due\77\771295.h \
f:\p.due\include\nditte.h
771300_DEP = f:\p.due\include\applicat.h \
f:\xvt.400\win_x86\ptk\include\xvt.h \
f:\xvt.400\win_x86\ptk\include\xvt_env.h \
f:\xvt.400\win_x86\ptk\include\xvt_plat.h \
f:\xvt.400\win_x86\ptk\include\xvt_varg.h \
f:\xvt.400\win_x86\ptk\include\xvt_styp.h \
f:\xvt.400\win_x86\ptk\include\xvt_defs.h \
f:\xvt.400\win_x86\ptk\include\xvt_menu.h \
f:\xvt.400\win_x86\ptk\include\xvt_type.h \
f:\xvt.400\win_x86\ptk\include\xvt_sel.h \
f:\xvt.400\win_x86\ptk\include\xvt_perr.h \
f:\xvt.400\win_x86\ptk\include\xvt_help.h \
f:\xvt.400\win_x86\ptk\include\xvt_r3.h \
f:\xvt.400\win_x86\ptk\include\xvterr.h \
f:\xvt.400\win_x86\ptk\include\xvtapp.h \
f:\xvt.400\win_x86\ptk\include\xvtcb.h \
f:\xvt.400\win_x86\ptk\include\xvtctl.h \
f:\xvt.400\win_x86\ptk\include\xvtdebug.h \
f:\xvt.400\win_x86\ptk\include\xvtdlg.h \
f:\xvt.400\win_x86\ptk\include\xvtdm.h \
f:\xvt.400\win_x86\ptk\include\xvtdwin.h \
f:\xvt.400\win_x86\ptk\include\xvtevent.h \
f:\xvt.400\win_x86\ptk\include\xvtfont.h \
f:\xvt.400\win_x86\ptk\include\xvtfsys.h \
f:\xvt.400\win_x86\ptk\include\xvtgmem.h \
f:\xvt.400\win_x86\ptk\include\xvtiostr.h \
f:\xvt.400\win_x86\ptk\include\xvtimage.h \
f:\xvt.400\win_x86\ptk\include\xvtlist.h \
f:\xvt.400\win_x86\ptk\include\xvtmenu.h \
f:\xvt.400\win_x86\ptk\include\xvtmem.h \
f:\xvt.400\win_x86\ptk\include\xvtpalet.h \
f:\xvt.400\win_x86\ptk\include\xvtpict.h \
f:\xvt.400\win_x86\ptk\include\xvtpmap.h \
f:\xvt.400\win_x86\ptk\include\xvtprint.h \
f:\xvt.400\win_x86\ptk\include\xvtrect.h \
f:\xvt.400\win_x86\ptk\include\xvtres.h \
f:\xvt.400\win_x86\ptk\include\xvtsbar.h \
f:\xvt.400\win_x86\ptk\include\xvtscr.h \
f:\xvt.400\win_x86\ptk\include\xvtslist.h \
f:\xvt.400\win_x86\ptk\include\xvtstr.h \
f:\xvt.400\win_x86\ptk\include\xvttimer.h \
f:\xvt.400\win_x86\ptk\include\xvttx.h \
f:\xvt.400\win_x86\ptk\include\xvtvobj.h \
f:\xvt.400\win_x86\ptk\include\xvtwin.h \
f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \
f:\p.due\include\printer.h \
f:\p.due\include\date.h \
f:\p.due\include\object.h \
f:\p.due\include\classes.h \
f:\p.due\include\stdtypes.h \
f:\p.due\include\checks.h \
f:\p.due\include\text.h \
f:\p.due\include\strings.h \
f:\p.due\include\array.h \
f:\p.due\include\window.h \
f:\p.due\include\xvtility.h \
f:\p.due\include\keys.h \
f:\p.due\include\mask.h \
f:\p.due\include\maskfld.h \
f:\p.due\include\real.h \
f:\mathlib\gmsys1.h \
f:\mathlib\gfd.h \
f:\p.due\include\scanner.h \
f:\p.due\include\msksheet.h \
f:\p.due\include\relapp.h \
f:\p.due\include\relation.h \
f:\p.due\include\isam.h \
f:\p.due\include\sysfld.h \
f:\p.due\include\files.h \
f:\p.due\include\extctype.h \
f:\p.due\include\rectypes.h \
f:\p.due\include\lffiles.h \
f:\p.due\include\tabutil.h \
f:\p.due\include\urldefid.h \
f:\p.due\include\defmask.h \
f:\p.due\include\config.h \
f:\p.due\include\assoc.h \
f:\p.due\include\utility.h \
f:\p.due\77\771300.h
77LIB01_DEP = f:\p.due\include\applicat.h \
f:\xvt.400\win_x86\ptk\include\xvt.h \
f:\xvt.400\win_x86\ptk\include\xvt_env.h \
f:\xvt.400\win_x86\ptk\include\xvt_plat.h \
f:\xvt.400\win_x86\ptk\include\xvt_varg.h \
f:\xvt.400\win_x86\ptk\include\xvt_styp.h \
f:\xvt.400\win_x86\ptk\include\xvt_defs.h \
f:\xvt.400\win_x86\ptk\include\xvt_menu.h \
f:\xvt.400\win_x86\ptk\include\xvt_type.h \
f:\xvt.400\win_x86\ptk\include\xvt_sel.h \
f:\xvt.400\win_x86\ptk\include\xvt_perr.h \
f:\xvt.400\win_x86\ptk\include\xvt_help.h \
f:\xvt.400\win_x86\ptk\include\xvt_r3.h \
f:\xvt.400\win_x86\ptk\include\xvterr.h \
f:\xvt.400\win_x86\ptk\include\xvtapp.h \
f:\xvt.400\win_x86\ptk\include\xvtcb.h \
f:\xvt.400\win_x86\ptk\include\xvtctl.h \
f:\xvt.400\win_x86\ptk\include\xvtdebug.h \
f:\xvt.400\win_x86\ptk\include\xvtdlg.h \
f:\xvt.400\win_x86\ptk\include\xvtdm.h \
f:\xvt.400\win_x86\ptk\include\xvtdwin.h \
f:\xvt.400\win_x86\ptk\include\xvtevent.h \
f:\xvt.400\win_x86\ptk\include\xvtfont.h \
f:\xvt.400\win_x86\ptk\include\xvtfsys.h \
f:\xvt.400\win_x86\ptk\include\xvtgmem.h \
f:\xvt.400\win_x86\ptk\include\xvtiostr.h \
f:\xvt.400\win_x86\ptk\include\xvtimage.h \
f:\xvt.400\win_x86\ptk\include\xvtlist.h \
f:\xvt.400\win_x86\ptk\include\xvtmenu.h \
f:\xvt.400\win_x86\ptk\include\xvtmem.h \
f:\xvt.400\win_x86\ptk\include\xvtpalet.h \
f:\xvt.400\win_x86\ptk\include\xvtpict.h \
f:\xvt.400\win_x86\ptk\include\xvtpmap.h \
f:\xvt.400\win_x86\ptk\include\xvtprint.h \
f:\xvt.400\win_x86\ptk\include\xvtrect.h \
f:\xvt.400\win_x86\ptk\include\xvtres.h \
f:\xvt.400\win_x86\ptk\include\xvtsbar.h \
f:\xvt.400\win_x86\ptk\include\xvtscr.h \
f:\xvt.400\win_x86\ptk\include\xvtslist.h \
f:\xvt.400\win_x86\ptk\include\xvtstr.h \
f:\xvt.400\win_x86\ptk\include\xvttimer.h \
f:\xvt.400\win_x86\ptk\include\xvttx.h \
f:\xvt.400\win_x86\ptk\include\xvtvobj.h \
f:\xvt.400\win_x86\ptk\include\xvtwin.h \
f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \
f:\p.due\include\printer.h \
f:\p.due\include\date.h \
f:\p.due\include\object.h \
f:\p.due\include\classes.h \
f:\p.due\include\stdtypes.h \
f:\p.due\include\checks.h \
f:\p.due\include\text.h \
f:\p.due\include\strings.h \
f:\p.due\include\array.h \
f:\p.due\include\window.h \
f:\p.due\include\xvtility.h \
f:\p.due\include\keys.h \
f:\p.due\include\isam.h \
f:\p.due\include\sysfld.h \
f:\p.due\include\real.h \
f:\p.due\include\files.h \
f:\p.due\include\extctype.h \
f:\p.due\include\rectypes.h \
f:\p.due\include\lffiles.h \
f:\p.due\77\77lib.h
HLAPI_CW_DEP =
WINDUED_DEP =
WINGFM_DEP =
WINUNO_DEP =
XVT400_DEP =
all: $(PROJ).EXE $(PROJ).BSC
771.RES: 771.RC $(771_RCDEP)
$(RC) $(RCFLAGS) $(RCDEFINES) -r 771.RC
771.OBJ: F:\P.DUE\77\771.CPP $(771_DEP)
$(CPP) $(CFLAGS) $(CPPCREATEPCHFLAG) /c F:\P.DUE\77\771.CPP
771310.OBJ: F:\P.DUE\77\771310.CPP $(771310_DEP)
$(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c F:\P.DUE\77\771310.CPP
774100.OBJ: F:\P.DUE\77\774100.CPP $(774100_DEP)
$(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c F:\P.DUE\77\774100.CPP
771100.OBJ: F:\P.DUE\77\771100.CPP $(771100_DEP)
$(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c F:\P.DUE\77\771100.CPP
771290.OBJ: F:\P.DUE\77\771290.CPP $(771290_DEP)
$(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c F:\P.DUE\77\771290.CPP
771295.OBJ: F:\P.DUE\77\771295.CPP $(771295_DEP)
$(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c F:\P.DUE\77\771295.CPP
771300.OBJ: F:\P.DUE\77\771300.CPP $(771300_DEP)
$(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c F:\P.DUE\77\771300.CPP
77LIB01.OBJ: F:\P.DUE\77\77LIB01.CPP $(77LIB01_DEP)
$(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c F:\P.DUE\77\77LIB01.CPP
$(PROJ).EXE:: 771.RES
$(PROJ).EXE:: 771.OBJ 771310.OBJ 774100.OBJ 771100.OBJ 771290.OBJ 771295.OBJ 771300.OBJ \
77LIB01.OBJ $(OBJS_EXT) $(DEFFILE)
echo >NUL @<<$(PROJ).CRF
771.OBJ +
771310.OBJ +
774100.OBJ +
771100.OBJ +
771290.OBJ +
771295.OBJ +
771300.OBJ +
77LIB01.OBJ +
$(OBJS_EXT)
$(PROJ).EXE
$(MAPFILE)
f:\msvc\lib\+
f:\p.due\win\lib\+
f:\P.DUE\WIN\OBJD\+
F:\P.DUE\WIN\LIB\HLAPI_CW.LIB+
F:\P.DUE\WIN\LIB\WINDUED.LIB+
F:\P.DUE\WIN\LIB\WINGFM.LIB+
F:\P.DUE\WIN\LIB\WINUNO.LIB+
F:\P.DUE\WIN\LIB\XVT400.LIB+
$(LIBS)
$(DEFFILE);
<<
link $(LFLAGS) @$(PROJ).CRF
$(RC) $(RESFLAGS) 771.RES $@
@copy $(PROJ).CRF MSVC.BND
$(PROJ).EXE:: 771.RES
if not exist MSVC.BND $(RC) $(RESFLAGS) 771.RES $@
run: $(PROJ).EXE
$(PROJ) $(RUNFLAGS)
$(PROJ).BSC: $(SBRS)
bscmake @<<
/o$@ $(SBRS)
<<

730
m770/771100.cpp Executable file
View File

@ -0,0 +1,730 @@
// 771100.cpp - Manutenzione dati anagrafici
//
// 771mod -0 A : "Dichiarante"
// 771mod -0 C : "Rappresentante"
// 771mod -0 D : "Scritture contabili"
// 771mod -0 E : "Dati C.A.A.F."
// 771mod -0 F : "Direttore / Professionista"
// 771mod -0 G : "Concessione / UIDD"
//
// Lista modifiche:
//
// 1.4.96 Rappresentante: codice e carica rappr. non vengono piu' registrati
// su NDITTE ma bensi' su BASE
//
#include <mask.h>
#include <printapp.h>
#include <relation.h>
#include <tabutil.h>
#include <utility.h>
#include <config.h>
#include <urldefid.h>
#include <mailbox.h>
#include <execp.h>
#include "771.h"
#include "771100.h"
#include "../ba/ba4200.h"
#include <comuni.h>
#include <anagr.h>
#include <nditte.h>
#include "77lib.h"
#include "../ba/ba4500.h"
class TDati_anagrafici : public TApplication
{
private:
static bool indirizzo (TMask_field&, KEY);
static bool cod_conc (TMask_field&, KEY);
static bool niscraa (TMask_field&, KEY);
static bool ditta_caaf(TMask_field&, KEY);
static bool attivita_handler(TMask_field&, KEY);
static bool fisica_handler(TMask_field&, KEY);
static bool giuridica_handler(TMask_field&, KEY);
static bool anagrafica_handler(TMask_field&, KEY);
TMask* _msk;
TRelation* _rel;
char _ana;
bool Dichiarante() const { return _ana == 'A'; }
bool Rappresentante() const { return _ana == 'C'; }
bool ScrittureContabili() const { return _ana == 'D'; }
bool DatiCAAF() const { return _ana == 'E'; }
bool DirProf() const { return _ana == 'F'; }
bool ConcUIDD() const { return _ana == 'G'; }
public:
TString _titolo;
virtual bool create();
virtual bool destroy();
virtual bool menu(MENU_TAG m);
bool main_loop();
void registra();
void registra_fis_giu();
void registra_rappr();
void registra_caaf();
void registra_dirprof();
void registra_dativari();
static bool codditta_hnd(TMask_field& f, KEY k);
TDati_anagrafici(char anagrafica);
};
TDati_anagrafici::TDati_anagrafici(char anagrafica) : _titolo(50), _ana(toupper(anagrafica))
{
if (Dichiarante())
_titolo = "Dichiarante";
if (Rappresentante())
_titolo = "Rappresentante";
if (ScrittureContabili())
_titolo = "Scritture contabili";
if (DatiCAAF())
_titolo = "Dati C.A.A.F.";
if (DirProf())
_titolo = "Direttore / Professionista";
if (ConcUIDD())
_titolo = "Concessione / UIDD";
}
HIDDEN TDati_anagrafici& app() { return (TDati_anagrafici &) main_app(); }
bool TDati_anagrafici::codditta_hnd(TMask_field& f, KEY k)
{
if (k == K_TAB && !(f.mask().is_running()) )
{
TString16 codditta; codditta << get_firm_770();
if (codditta != "0")
{
f.set(codditta);
f.check();
}
}
return TRUE;
}
bool TDati_anagrafici::attivita_handler(TMask_field& m, KEY k)
{
if (k != K_SPACE)
return TRUE;
app().registra();
m.mask().stop_run(K_ESC);
TString appname;
appname = "ba4 -4";
TString body(16);
body << "1" << "|";
body << m.mask().get(F_CODDITTA) << "|";
body << m.mask().get(F_ATTIV) << "|";
body << m.mask().get(F_ATTIV);
TMessage msg(cmd2name(appname), MSG_LN, (const char*) body);
TMailbox mb;
mb.send(msg);
TExternal_app a(appname);
a.run();
m.set_focus();
return TRUE;
}
bool TDati_anagrafici::fisica_handler(TMask_field& m, KEY k)
{
if (k != K_SPACE)
return TRUE;
app().registra();
m.mask().stop_run(K_ESC);
TToken_string body(16);
body << "1" << "|";
body << m.mask().get(F_ANAGR);
TString16 cmd ("ba4 -1 F");
TMessage msg(cmd, MSG_LN, (const char*) body);
TMailbox mb;
mb.send(msg);
TExternal_app a(cmd);
a.run();
m.set_focus();
return FALSE;
}
bool TDati_anagrafici::giuridica_handler(TMask_field& m, KEY k)
{
if (k != K_SPACE)
return TRUE;
app().registra();
m.mask().stop_run(K_ESC);
TToken_string body(16);
body << "1" << "|";
body << m.mask().get(F_ANAGR);
TString16 cmd ("ba4 -1 G");
TMessage msg(cmd, MSG_LN, (const char*) body);
TMailbox mb;
mb.send(msg);
TExternal_app a(cmd);
a.run();
m.set_focus();
return FALSE;
}
bool TDati_anagrafici::anagrafica_handler(TMask_field& m, KEY k)
{
TString16 cmd;
if (k != K_SPACE)
return TRUE;
app().registra();
m.mask().stop_run(K_ESC);
TToken_string body(16);
body << "1" << "|";
body << m.mask().get(F_ANAGR);
char tipoa = m.mask().get(ASCF_TIPOA)[0];
if (tipoa == 'F')
cmd = "ba4 -1 F";
else
if (tipoa == 'G')
cmd = "ba4 -1 G";
TMessage msg(cmd, MSG_LN, (const char*) body);
TMailbox mb;
mb.send(msg);
TExternal_app a(cmd);
a.run();
m.set_focus();
return FALSE;
}
bool TDati_anagrafici::indirizzo (TMask_field& f, KEY k)
{
TLocalisamfile anag (LF_ANAG, FALSE);
TLocalisamfile comuni (LF_COMUNI, FALSE);
long codanagr;
char tipoa;
TString ragione,nome,cognome,ind,civ,cap,com,prov,codcom;
if ( k == K_TAB )// && f.mask().is_running() )
{
tipoa = f.mask().get (ASCF_TIPOA)[0];
codanagr = f.mask().get_long(F_ANAGR);
// Ricerca sull'archivio anagrafiche dei dati relativi al depositario
anag.setkey(1);
anag.zero();
anag.put("TIPOA", tipoa);
anag.put("CODANAGR", codanagr);
if (anag.read() == NOERR)
{
ragione = anag.get("RAGSOC");
codcom = anag.get("COMRF");
if (codcom != "")
{
ind = anag.get("INDRF");
civ = anag.get("CIVRF");
cap = anag.get("CAPRF");
}
else
{
ind = anag.get("INDRES");
civ = anag.get("CIVRES");
cap = anag.get("CAPRES");
codcom = anag.get("COMRES");
}
}
if (tipoa == 'F')
{
cognome = ragione.mid(0,30);
nome = ragione.mid(30,20);
f.mask().hide(F_RAGIONE);
f.mask().show(F_COGNOME);
f.mask().show(F_NOME);
f.mask().set(F_COGNOME, cognome);
f.mask().set(F_NOME, nome);
}
else
if (tipoa == 'G')
{
f.mask().hide(F_COGNOME);
f.mask().hide(F_NOME);
f.mask().show(F_RAGIONE);
f.mask().set(F_RAGIONE, ragione);
}
// Ricerca dati relativi al comune del depositario
comuni.setkey(1);
comuni.zero();
comuni.put("STATO", "");
comuni.put("COM", codcom);
if (comuni.read() == NOERR)
{
com = comuni.get("DENCOM");
prov = comuni.get("PROVCOM");
}
f.mask().set(F_IND, ind);
f.mask().set(F_CIV, civ);
f.mask().set(F_CAP, cap);
f.mask().set(F_COM, com);
f.mask().set(F_PROV, prov);
}
return TRUE;
}
bool TDati_anagrafici::cod_conc (TMask_field& f, KEY k)
{
TLocalisamfile anag (LF_ANAG);
TLocalisamfile comuni (LF_COMUNI);
long codanagr;
char tipoa;
int codconc,uffiidd,codcs;
TString codcom;
if ( k == K_TAB || k == K_SPACE )// && f.mask().is_running() )
{
tipoa = f.mask().get (F_TIPOA)[0];
codanagr = f.mask().get_long(F_ANAGR);
// Ricerca sull'archivio anagrafiche dei dati
anag.setkey(1);
anag.zero();
anag.put("TIPOA", tipoa);
anag.put("CODANAGR", codanagr);
if (anag.read() == NOERR)
{
codcom = anag.get("COMRF");
if (codcom == "")
codcom = anag.get("COMRES");
}
// Ricerca dati relativi al comune
comuni.setkey(1);
comuni.zero();
comuni.put("STATO", "");
comuni.put("COM", codcom);
if (comuni.read() == NOERR)
{
codconc = comuni.get_int("UFFCONC");
uffiidd = comuni.get_int("UFFIIDD1");
if (uffiidd == 0)
uffiidd = comuni.get_int("UFFIIDD2");
if (uffiidd == 0)
uffiidd = comuni.get_int("UFFIIDD3");
codcs = comuni.get_int("UFFCSERV");
if (codconc != 0)
f.mask().set(F_CODCONC1, codconc);
if (uffiidd != 0)
f.mask().set(F_CODUI, uffiidd);
if (codcs != 0)
f.mask().set(F_CODCS, codcs);
f.mask().send_key(K_TAB, F_CODUI);
f.mask().send_key(K_TAB, F_CODCS);
}
}
return TRUE;
}
bool TDati_anagrafici::niscraa(TMask_field& f, KEY k)
{
if (k == K_TAB && !f.mask().is_running())
{
TLocalisamfile base (LF_BASE);
TLocalisamfile ditte(LF_NDITTE);
TString16 niscraa = "";
long dittacaaf = 0;
long codditta = f.mask().get_long(F_CODDITTA);
base.setkey(1);
base.zero();
base.put("CODDITTA", codditta);
if (base.read() == NOERR)
{
dittacaaf = base.get_long("DITTACAAF");
ditte.setkey(1);
ditte.zero();
ditte.put(NDT_CODDITTA, dittacaaf);
if (ditte.read() == NOERR)
niscraa = ditte.get(NDT_NISCRAA);
}
f.mask().set(F_NISCRAA, niscraa);
if (dittacaaf != 0)
f.mask().set(F_DITTACAAF, dittacaaf);
}
return TRUE;
}
bool TDati_anagrafici::ditta_caaf(TMask_field& f, KEY k)
{
if (k == K_TAB || k == K_ENTER)
{
long caaf = f.mask().get_long(F_ANAGR);
long ditta = atol(f.get());
if (caaf == 0 && ditta != 0)
return f.warning_box("Se non indicato il codice del CAAF la ditta non deve essere indicata");
if (caaf != 0 && ditta == 0)
return f.warning_box("Se indicato il codice del CAAF deve essere indicata anche la ditta a cui e' collegato");
}
return TRUE;
}
bool TDati_anagrafici::create()
{
TApplication::create();
_rel = new TRelation (LF_NDITTE);
_rel->add(LF_BASE, "CODDITTA=CODDITTA");
_rel->add(LF_BASEBIS, "CODDITTA=CODDITTA");
if (Dichiarante())
{
char tipo_pers = tipo_persona(get_firm_770());
if (tipo_pers == ' ' || tipo_pers == '\0')
{
message_box("Il titolare della ditta non e' stato compilato correttamente.");
return TRUE;
}
if (tipo_pers == 'G')
{
_msk = new TMask ("771100b");
_msk->set_handler(F_GIURIDICA, giuridica_handler);
}
else
if (tipo_pers == 'F')
{
_msk = new TMask ("771100a");
_msk->set_handler(F_FISICA, fisica_handler);
}
_msk->set_handler(F_ATTIVITA, attivita_handler);
}
if (Rappresentante())
{
_msk = new TMask ("771100c");
_msk->set_handler(F_FISICA, fisica_handler);
}
if (ScrittureContabili())
{
_msk = new TMask ("771100d");
_msk->set_handler(F_ANAGR, indirizzo);
_msk->set_handler(F_ATTIVITA, attivita_handler);
_msk->set_handler(F_ANAGRAFICA, anagrafica_handler);
}
if (DatiCAAF())
{
_msk = new TMask ("771100e");
_msk->set_handler(F_ANAGR, niscraa);
_msk->set_handler(F_GIURIDICA, giuridica_handler);
_msk->set_handler(F_DITTACAAF, ditta_caaf);
_msk->set_mode(NO_MODE);
}
if (DirProf())
{
_msk = new TMask ("771100f");
_msk->set_handler(F_FISICA, fisica_handler);
}
if (ConcUIDD())
{
_msk = new TMask ("771100g");
_msk->field(F_CODCONC2).set_dirty();
_msk->set_handler(F_CODCONC2, cod_conc);
_msk->set_handler(F_ANAGRAFICA, anagrafica_handler);
}
TString16 codditta; codditta << get_firm_770();
if (codditta != "0")
_msk->set(F_CODDITTA,codditta);
dispatch_e_menu (BAR_ITEM(1));
return TRUE;
}
bool TDati_anagrafici::destroy()
{
delete _msk;
delete _rel;
return TApplication::destroy();
}
bool TDati_anagrafici::main_loop()
{
KEY tasto;
do
{
_rel->lfile().put("CODDITTA", get_firm_770());
_rel->read();
_msk->autoload(_rel);
tasto = _msk->run();
switch (tasto)
{
case K_ESC :
break;
case K_QUIT :
break;
case K_SAVE :
{
registra();
}
break;
default:
break;
}
}
while (tasto != K_QUIT); //K_ENTER
return FALSE;
}
void TDati_anagrafici::registra()
{
if (_ana == 'A' || _ana == 'B')
registra_fis_giu();
if (_ana == 'C')
registra_rappr();
if (_ana == 'E')
registra_caaf();
if (_ana == 'F')
registra_dirprof();
if (_ana == 'G')
registra_dativari();
}
void TDati_anagrafici::registra_fis_giu()
{
TLocalisamfile base(LF_BASE);
long codditta;
codditta = _msk->get_long(F_CODDITTA);
base.setkey(1);
base.zero();
base.put("CODDITTA", codditta);
if (base.read() == NOERR)
{
int rss = _msk->get_int(F_RSS);
base.put("RSS", rss);
base.rewrite();
}
else
{
int rss = _msk->get_int(F_RSS);
base.zero();
base.put("CODDITTA", codditta);
base.put("RSS", rss);
base.write();
}
}
void TDati_anagrafici::registra_rappr()
{
TLocalisamfile base(LF_BASE);
const long codditta = _msk->get_long(F_CODDITTA);
const long CodiceRappr = _msk->get_long(F_ANAGR);
const int CaricaRappr = _msk->get_int(F_CARRAP);
base.setkey(1);
base.zero();
base.put("CODDITTA", codditta);
if (base.read() == NOERR)
{
base.put("RAPPR", CodiceRappr);
base.put("CARRAPP", CaricaRappr);
base.rewrite();
}
else
{
base.zero();
base.put("RAPPR", CodiceRappr);
base.put("CARRAPP", CaricaRappr);
base.write();
}
}
void TDati_anagrafici::registra_caaf()
{
TLocalisamfile ditte(LF_NDITTE);
TLocalisamfile base (LF_BASE);
long codditta;
char tipoa = 'G';
// Registro il codice caaf sull'archivio base
codditta = _msk->get_long(F_CODDITTA);
base.setkey(1);
base.zero();
base.put("CODDITTA", codditta);
if (base.read() == NOERR)
{
long codice = _msk->get_long(F_ANAGR);
long dittacaaf = _msk->get_long(F_DITTACAAF);
base.put("CODCAAF", codice);
base.put("DITTACAAF", dittacaaf);
base.rewrite();
}
else
{
long codice = _msk->get_long(F_ANAGR);
long dittacaaf = _msk->get_long(F_DITTACAAF);
base.zero();
base.put("CODDITTA", codditta);
base.put("CODCAAF", codice);
base.put("DITTACAAF", dittacaaf);
base.write();
}
}
void TDati_anagrafici::registra_dirprof()
{
TLocalisamfile base (LF_BASE);
long codditta;
codditta = _msk->get_long(F_CODDITTA);
base.setkey(1);
base.zero();
base.put("CODDITTA", codditta);
if (base.read() == NOERR)
{
long codpro = _msk->get_long(F_ANAGR);
bool flart4 = _msk->get_bool(F_CONTROLLI);
base.put("CODPRO", codpro);
base.put("FLART4", flart4);
base.rewrite();
}
else
{
long codpro = _msk->get_long(F_ANAGR);
bool flart4 = _msk->get_bool(F_CONTROLLI);
base.zero();
base.put("CODDITTA", codditta);
base.put("CODPRO", codpro);
base.put("FLART4", flart4);
base.write();
}
}
void TDati_anagrafici::registra_dativari()
{
TLocalisamfile base(LF_BASEBIS);
long codditta;
codditta = _msk->get_long(F_CODDITTA);
base.setkey(1);
base.zero();
base.put("CODDITTA", codditta);
if (base.read() == NOERR)
{
TString16 codconc1(_msk->get(F_CODCONC1));
TString16 codconc2(_msk->get(F_CODCONC2));
TString16 codconc3(_msk->get(F_CODCONC3));
int codtes1 = _msk->get_int(F_CODTES1);
int codtes2 = _msk->get_int(F_CODTES2);
int codtes3 = _msk->get_int(F_CODTES3);
base.put("L0CCONC1", codconc1);
base.put("L0CCONC2", codconc2);
base.put("L0CCONC3", codconc3);
base.put("L0CTES1", codtes1);
base.put("L0CTES2", codtes2);
base.put("L0CTES3", codtes3);
base.rewrite();
}
else
{
TString16 codconc1(_msk->get(F_CODCONC1));
TString16 codconc2(_msk->get(F_CODCONC2));
TString16 codconc3(_msk->get_int(F_CODCONC3));
int codtes1 = _msk->get_int(F_CODTES1);
int codtes2 = _msk->get_int(F_CODTES2);
int codtes3 = _msk->get_int(F_CODTES3);
base.zero();
base.put("CODDITTA", codditta);
base.put("L0CCONC1", codconc1);
base.put("L0CCONC2", codconc2);
base.put("L0CCONC3", codconc3);
base.put("L0CTES1", codtes1);
base.put("L0CTES2", codtes2);
base.put("L0CTES3", codtes3);
base.write();
}
}
bool TDati_anagrafici::menu(MENU_TAG m)
{
if (m == BAR_ITEM(1))
return main_loop();
return FALSE;
}
int m71100 (int argc, char* argv[])
{
TDati_anagrafici main_app(*argv[2]);
main_app.run(argc, argv, main_app._titolo);
return TRUE;
}

118
m770/771100.h Executable file
View File

@ -0,0 +1,118 @@
// Campi maschera persone fisiche 771100a.uml
#ifndef _771100_H
#define _771100_H
#define F_CODDITTA 500
#define F_RAGSOC 501
#define APF_CODDITTA 101
#define APF_RAGSOC 102
#define F_COFI 103
#define F_COGNOME 104
#define F_NOME 105
#define F_SESSO 106
#define F_DATANASC 107
#define F_COMNASC 108
#define F_PROVNASC 109
#define F_ATTIV 110
#define F_DESCRATT 111
#define F_RSS 112
#define F_INDRES 113
#define F_CIVRES 114
#define F_CAPRES 115
#define F_COMRES 116
#define F_PROVRES 117
#define F_INDRF 118
#define F_CIVRF 119
#define F_CAPRF 120
#define F_COMRF 121
#define F_PROVRF 122
#define F_DOMFISC 123
#define F_EVECC 124
#define F_GIURIDICA 125
#define F_ANAGR 126
// Campi maschera persone giuridiche 771100b.uml
#define F_RAGIONE 150
#define F_SEDELEG 151
#define F_PTELRF 152
#define F_TELRF 153
#define F_DATAAPPBIL 154
#define F_DATATAPPBI 155
#define F_STATOSOC 156
#define F_SITSOC 157
#define F_NATGIU 158
#define F_FISICA 159
// Campi maschera rappresentanti 771100c.uml
#define F_CARRAP 201
// Campi maschera Luogo di conservazione delle scritture contabili 771100d.uml
#define ASCF_TIPOA 250
#define F_CODDEP 251
#define F_IND 252
#define F_CIV 253
#define F_CAP 254
#define F_COM 255
#define F_PROV 256
#define F_INDCS 257
#define F_CIVCS 258
#define F_CAPCS 259
#define F_COMCS 260
#define F_PROVCS 261
#define F_PTELCS 262
#define F_TELCS 263
#define F_ATTIVITA 264
// Campi maschera dati CAAF 771100e.uml
#define F_NISCRAA 301
#define F_DITTACAAF 302
// Campi maschera direttore/professionista 771100f.uml
#define F_CONTROLLI 325
// Campi maschera Dati Vari 771100g.uml
#define F_TIPOA 503
#define F_CODCONC1 350
#define F_CODCONC2 351
#define F_CODCONC3 352
#define F_CODTES1 353
#define F_CODTES2 354
#define F_CODTES3 355
#define F_INDUI 356
#define F_CIVUI 357
#define F_CAPUI 358
#define F_COMUI 359
#define F_PROVUI 360
//#define GF_ANAGR 361
#define F_CODUI 362
#define F_CODCS 363
#define F_DESCRUI 364
#define F_DESCRCS 375
#define F_ANAGRAFICA 376
// Campi maschera Societa' trasformate 771100h.uml
#define MDSTF_CODDITTA 181
#define MDSTF_RAGSOC 415
#define F_SOC_COFI 400
#define F_SOC_COGNOME 401
#define F_SOC_NOME 402
#define F_SOC_SESSO 403
#define F_SOC_DATANAS 404
#define F_SOC_COMUNE 405
#define F_SOC_PROVNAS 406
#define F_SOC_DENOMIN 407
#define F_SOC_COMRES 408
#define F_SOC_PROVRES 409
#define F_SOC_INDRES 410
#define F_SOC_CONSBOCC 411
#define F_SOC_LAVDIPCIN 412
#define F_SOC_DATAINPI 413
#define F_SOC_DATAFINPI 414
#endif

262
m770/771100a.uml Executable file
View File

@ -0,0 +1,262 @@
#include "771100.h"
//
// Lista modifiche
//
// 1.4.96 Aggiunti campi prefisso/telefono
//
TOOLBAR "" 0 20 0 2
BUTTON F_FISICA 10 2
BEGIN
PROMPT -15 -1 "~Fisiche"
END
BUTTON F_ATTIVITA 10 2
BEGIN
PROMPT -25 -1 "~Attivita'"
END
BUTTON DLG_SAVEREC 10 2
BEGIN
PROMPT -35 -1 "~Registra"
MESSAGE EXIT,K_SAVE
END
BUTTON DLG_CANCEL 10 2
BEGIN
PROMPT -45 -1 ""
MESSAGE EXIT,K_ESC
END
BUTTON DLG_QUIT 10 2
BEGIN
PROMPT -55 -1 ""
MESSAGE EXIT,K_QUIT
END
ENDPAGE
PAGE "Dati relativi alle persone fisiche" -1 -1 78 18
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 0 0 ""
FLAGS "R"
END
NUMBER F_CODDITTA 5
BEGIN
PROMPT 1 1 "Ditta "
FLAGS "RDG"
USE LF_NDITTE KEY 1
CHECKTYPE REQUIRED
INPUT CODDITTA F_CODDITTA
JOIN LF_ANAG TO LF_NDITTE INTO TIPOA=TIPOA CODANAGR=CODANAGR
JOIN LF_ANAGFIS TO LF_ANAG INTO CODANAGR=CODANAGR
JOIN LF_COMUNI TO LF_ANAGFIS INTO COM==COMNASC
JOIN LF_COMUNI TO LF_ANAG ALIAS 1 INTO COM==COMRES
JOIN LF_COMUNI TO LF_ANAG ALIAS 2 INTO COM==COMRF
OUTPUT APF_RAGSOC LF_NDITTE->RAGSOC
OUTPUT F_ATTIV LF_NDITTE->CODATTPREV
OUTPUT F_ANAGR LF_ANAG->CODANAGR
OUTPUT F_COFI LF_ANAG->COFI
OUTPUT F_COGNOME LF_ANAG->RAGSOC[1,30]
OUTPUT F_NOME LF_ANAG->RAGSOC[31,50]
OUTPUT F_INDRES LF_ANAG->INDRES
OUTPUT F_CIVRES LF_ANAG->CIVRES
OUTPUT F_CAPRES LF_ANAG->CAPRES
OUTPUT F_INDRF LF_ANAG->INDRF
OUTPUT F_CIVRF LF_ANAG->CIVRF
OUTPUT F_CAPRF LF_ANAG->CAPRF
OUTPUT F_EVECC LF_ANAG->EVECC
OUTPUT F_SESSO LF_ANAGFIS->SESSO
OUTPUT F_DATANASC LF_ANAGFIS->DATANASC
OUTPUT F_COMNASC LF_COMUNI->DENCOM
OUTPUT F_PROVNASC LF_COMUNI->PROVCOM
OUTPUT F_COMRES 1@->DENCOM
OUTPUT F_PROVRES 1@->PROVCOM
OUTPUT F_COMRF 2@->DENCOM
OUTPUT F_PROVRF 2@->PROVCOM
OUTPUT F_PTELRF LF_ANAG->PTELRF
OUTPUT F_TELRF LF_ANAG->TELRF
OUTPUT F_DOMFISC LF_ANAG->VARSLORES
KEY 1
END
STRING APF_RAGSOC 50
BEGIN
PROMPT 1 2 "Ragione sociale "
FLAGS "D"
END
NUMBER F_ANAGR 5
BEGIN
PROMPT -1 -1 ""
FLAGS "H"
END
STRING F_COFI 16
BEGIN
PROMPT 1 4 "Codice fiscale "
FLAGS "D"
END
NUMBER F_EVECC 1
BEGIN
PROMPT 46 4 "Eventi naturali eccezionali "
FLAGS "D"
END
STRING F_COGNOME 30
BEGIN
PROMPT 1 5 "Cognome "
FLAGS "D"
END
LIST F_RSS 7
BEGIN
PROMPT 58 5 "R.S.S. "
ITEM " |Nessuna"
ITEM "1|VA"
ITEM "2|SA"
ITEM "3|SI"
FIELD LF_BASE->RSS
END
STRING F_NOME 20
BEGIN
PROMPT 1 6 "Nome "
FLAGS "D"
END
STRING F_SESSO 1
BEGIN
PROMPT 39 6 "Sesso "
FLAGS "D"
END
DATE F_DATANASC
BEGIN
PROMPT 49 6 "Data di nascita "
FLAGS "D"
END
STRING F_COMNASC 50
BEGIN
PROMPT 1 7 "Comune nascita "
FLAGS "D"
END
STRING F_PROVNASC 5
BEGIN
PROMPT 70 7 ""
FLAGS "D"
END
STRING F_ATTIV 5
BEGIN
PROMPT 1 8 "Attivita' "
USE %AIS
INPUT CODTAB F_ATTIV
OUTPUT F_DESCRATT S0
CHECKTYPE REQUIRED
FLAGS "D"
END
STRING F_DESCRATT 50
BEGIN
PROMPT 25 8 ""
FLAGS "D"
END
BOOLEAN F_DOMFISC
BEGIN
PROMPT 1 9 "Dom.fiscale o residenza variati rispetto all'anno precedente "
FLAGS "D"
END
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 0 10 "Residenza"
END
STRING F_INDRES 35
BEGIN
PROMPT 1 11 "Indirizzo "
FLAGS "D"
END
STRING F_CIVRES 10
BEGIN
PROMPT 47 11 ""
FLAGS "D"
END
STRING F_CAPRES 5
BEGIN
PROMPT 63 11 "C.A.P. "
FLAGS "D"
END
STRING F_COMRES 50
BEGIN
PROMPT 1 12 "Comune "
FLAGS "D"
END
STRING F_PROVRES 5
BEGIN
PROMPT 63 12 "Prov. "
FLAGS "D"
END
GROUPBOX DLG_NULL 78 5
BEGIN
PROMPT 0 14 "Domicilio fiscale "
END
STRING F_PTELRF 10
BEGIN
PROMPT 1 15 "Telefono "
FLAGS "D"
END
STRING F_TELRF 30
BEGIN
PROMPT 20 15 ""
FLAGS "D"
END
STRING F_INDRF 35
BEGIN
PROMPT 1 16 "Indirizzo "
FLAGS "D"
END
STRING F_CIVRF 10
BEGIN
PROMPT 47 16 ""
FLAGS "D"
END
STRING F_CAPRF 5
BEGIN
PROMPT 63 16 "C.A.P. "
FLAGS "D"
END
STRING F_COMRF 50
BEGIN
PROMPT 1 17 "Comune "
FLAGS "D"
END
STRING F_PROVRF 5
BEGIN
PROMPT 63 17 "Prov. "
FLAGS "D"
END
ENDPAGE
ENDMASK

308
m770/771100b.uml Executable file
View File

@ -0,0 +1,308 @@
#include "771100.h"
TOOLBAR "" 0 20 0 2
BUTTON F_GIURIDICA 10 2
BEGIN
PROMPT -15 -1 "~Giuridiche"
END
BUTTON F_ATTIVITA 10 2
BEGIN
PROMPT -25 -1 "~Attivita'"
END
BUTTON DLG_SAVEREC 10 2
BEGIN
PROMPT -35 -1 "~Registra"
MESSAGE EXIT,K_SAVE
END
BUTTON DLG_CANCEL 10 2
BEGIN
PROMPT -45 -1 ""
MESSAGE EXIT,K_ESC
END
BUTTON DLG_QUIT 10 2
BEGIN
PROMPT -55 -1 ""
MESSAGE EXIT,K_QUIT
END
ENDPAGE
PAGE "Altri soggetti" -1 -1 78 18
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 0 0 ""
FLAGS "R"
END
NUMBER F_CODDITTA 5
BEGIN
PROMPT 1 1 "Ditta "
FLAGS "GRD"
USE LF_NDITTE KEY 1
CHECKTYPE REQUIRED
INPUT CODDITTA F_CODDITTA
JOIN LF_ANAG TO LF_NDITTE INTO TIPOA=TIPOA CODANAGR=CODANAGR
JOIN LF_ANAGGIU TO LF_ANAG INTO CODANAGR=CODANAGR
JOIN LF_COMUNI TO LF_ANAG ALIAS 1 INTO COM==COMRES
JOIN LF_COMUNI TO LF_ANAG ALIAS 2 INTO COM==COMRF
OUTPUT F_RAGSOC LF_NDITTE->RAGSOC
OUTPUT F_ATTIV LF_NDITTE->CODATTPREV
OUTPUT F_ANAGR LF_ANAG->CODANAGR
OUTPUT F_COFI LF_ANAG->COFI
OUTPUT F_RAGIONE LF_ANAG->RAGSOC
OUTPUT F_COMRES 1@->DENCOM
OUTPUT F_PROVRES 1@->PROVCOM
OUTPUT F_INDRES LF_ANAG->INDRES
OUTPUT F_CIVRES LF_ANAG->CIVRES
OUTPUT F_CAPRES LF_ANAG->CAPRES
OUTPUT F_EVECC LF_ANAG->EVECC
OUTPUT F_COMRF 2@->DENCOM
OUTPUT F_PROVRF 2@->PROVCOM
OUTPUT F_INDRF LF_ANAG->INDRF
OUTPUT F_CIVRF LF_ANAG->CIVRF
OUTPUT F_CAPRF LF_ANAG->CAPRF
OUTPUT F_PTELRF LF_ANAG->PTELRF
OUTPUT F_TELRF LF_ANAG->TELRF
OUTPUT F_DATAAPPBIL LF_ANAGGIU->DATAAPPBIL
OUTPUT F_DATATAPPBI LF_ANAGGIU->DATATAPPBI
OUTPUT F_STATOSOC LF_ANAGGIU->STATOSOC
OUTPUT F_NATGIU LF_ANAGGIU->NATGIU
OUTPUT F_SITSOC LF_ANAGGIU->SITSOC
OUTPUT F_SEDELEG LF_ANAG->VARSLORES
OUTPUT F_DOMFISC LF_ANAG->VARDF
MESSAGE COPY,1@
MESSAGE DISABLE,F_SEDELEG|DISABLE,F_DOMFISC
KEY 1
END
STRING F_RAGSOC 50
BEGIN
PROMPT 1 2 "Ragione sociale "
FLAGS "D"
MESSAGE COPY,2@
END
NUMBER F_ANAGR 5
BEGIN
PROMPT -1 -1 ""
FLAGS "H"
END
STRING F_ATTIV 5
BEGIN
PROMPT 1 4 "Attivita' "
USE %AIS
INPUT CODTAB F_ATTIV
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_DESCRATT S0
CHECKTYPE REQUIRED
FLAGS "D"
END
STRING F_DESCRATT 50
BEGIN
PROMPT 26 4 ""
FLAGS "D"
END
STRING F_COFI 16
BEGIN
PROMPT 1 6 "Codice fiscale "
FLAGS "D"
END
STRING F_RAGIONE 50
BEGIN
PROMPT 1 7 "Denominazione "
FLAGS "D"
END
GROUPBOX DLG_NULL 78 5
BEGIN
PROMPT 0 8 ""
END
BOOLEAN F_SEDELEG
BEGIN
PROMPT 1 9 "Sede legale"
//FLAGS "D"
END
STRING F_COMRES 50
BEGIN
PROMPT 1 10 "Comune "
FLAGS "D"
END
STRING F_PROVRES 5
BEGIN
PROMPT 63 10 "Prov. "
FLAGS "D"
END
STRING F_INDRES 35
BEGIN
PROMPT 1 11 "Indirizzo "
FLAGS "D"
END
STRING F_CIVRES 10
BEGIN
PROMPT 47 11 ""
FLAGS "D"
END
STRING F_CAPRES 5
BEGIN
PROMPT 63 11 "C.A.P. "
FLAGS "D"
END
GROUPBOX DLG_NULL 78 5
BEGIN
PROMPT 0 13 ""
END
BOOLEAN F_DOMFISC
BEGIN
PROMPT 1 14 "Domicilio fiscale"
//FLAGS "D"
END
STRING F_PTELRF 10
BEGIN
PROMPT 25 14 "Telefono "
FLAGS "D"
END
STRING F_TELRF 30
BEGIN
PROMPT 45 14 ""
FLAGS "D"
END
STRING F_COMRF 50
BEGIN
PROMPT 1 15 "Comune "
FLAGS "D"
END
STRING F_PROVRF 5
BEGIN
PROMPT 63 15 "Prov. "
FLAGS "D"
END
STRING F_INDRF 35
BEGIN
PROMPT 1 16 "Indirizzo "
FLAGS "D"
END
STRING F_CIVRF 10
BEGIN
PROMPT 47 16 ""
FLAGS "D"
END
STRING F_CAPRF 5
BEGIN
PROMPT 63 16 "C.A.P. "
FLAGS "D"
END
ENDPAGE
PAGE "Altri soggetti" -1 -1 78 18
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 0 0 ""
FLAGS "R"
END
NUMBER DLG_NULL 5
BEGIN
PROMPT 1 1 "Ditta "
FLAGS "FRD"
GROUP 1
END
STRING DLG_NULL 50
BEGIN
PROMPT 1 2 "Ragione sociale "
FLAGS "D"
GROUP 2
END
DATE F_DATAAPPBIL
BEGIN
PROMPT 1 5 "Data approvazione del bilancio "
FLAGS "D"
END
DATE F_DATATAPPBI
BEGIN
PROMPT 1 6 "Data termine del bilancio "
FLAGS "D"
END
NUMBER F_STATOSOC 1
BEGIN
PROMPT 1 8 "Stato "
FLAGS "D"
END
TEXT DLG_NULL
BEGIN
PROMPT 15 8 "(Tab.A)"
END
NUMBER F_NATGIU 2
BEGIN
PROMPT 48 8 "Natura giuridica "
FLAGS "RD"
END
TEXT DLG_NULL
BEGIN
PROMPT 69 8 "(Tab.B)"
END
NUMBER F_SITSOC 1
BEGIN
PROMPT 1 9 "Situazione "
FLAGS "D"
END
TEXT DLG_NULL
BEGIN
PROMPT 15 9 "(Tab.E)"
END
LIST F_RSS 7
BEGIN
PROMPT 48 9 "R.S.S. "
ITEM " |Nessuna"
ITEM "1|VA"
ITEM "2|SA"
ITEM "3|SI"
FIELD LF_BASE->RSS
END
NUMBER F_EVECC 1
BEGIN
PROMPT 1 11 "Eventi naturali eccezionali "
FLAGS "D"
END
ENDPAGE
ENDMASK

245
m770/771100c.uml Executable file
View File

@ -0,0 +1,245 @@
// 771100c.uml - Dati rappresentante
#include "771100.h"
//
// Lista modifiche
//
// 2.4.96 Aggiunto numero di telefono
//
TOOLBAR "" 0 20 0 2
BUTTON F_FISICA 10 2
BEGIN
PROMPT -14 -1 "~Fisiche"
END
BUTTON DLG_SAVEREC 10 2
BEGIN
PROMPT -24 -1 "~Registra"
MESSAGE EXIT,K_SAVE
END
BUTTON DLG_CANCEL 10 2
BEGIN
PROMPT -34 -1 ""
MESSAGE EXIT,K_ESC
END
BUTTON DLG_QUIT 10 2
BEGIN
PROMPT -44 -1 ""
MESSAGE EXIT,K_QUIT
END
ENDPAGE
PAGE "Dati relativi al rappresentante" -1 -1 78 18
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 0 0 ""
FLAGS "R"
END
NUMBER F_CODDITTA 5
BEGIN
PROMPT 1 1 "Ditta "
FLAGS "GRD"
USE LF_NDITTE KEY 1
CHECKTYPE REQUIRED
INPUT CODDITTA F_CODDITTA
OUTPUT F_RAGSOC LF_NDITTE->RAGSOC
KEY 1
END
STRING F_RAGSOC 50
BEGIN
PROMPT 1 2 "Ragione sociale "
FLAGS "D"
END
NUMBER F_ANAGR 5
BEGIN
PROMPT 1 4 "Codice rappresentante "
USE LF_ANAGFIS KEY 1
INPUT CODANAGR F_ANAGR
JOIN LF_ANAG TO LF_ANAGFIS INTO CODANAGR=CODANAGR TIPOA="F"
JOIN LF_COMUNI TO LF_ANAGFIS INTO COM==COMNASC
JOIN LF_COMUNI TO LF_ANAG ALIAS 1 INTO COM==COMRES
JOIN LF_COMUNI TO LF_ANAG ALIAS 2 INTO COM==COMRF
DISPLAY "Codice" CODANAGR
DISPLAY "Ragione Sociale@50" LF_ANAG->RAGSOC
OUTPUT F_COFI LF_ANAG->COFI
OUTPUT F_COGNOME LF_ANAG->RAGSOC[1,30]
OUTPUT F_NOME LF_ANAG->RAGSOC[31,50]
OUTPUT F_SESSO SESSO
OUTPUT F_DATANASC DATANASC
OUTPUT F_COMNASC LF_COMUNI->DENCOM
OUTPUT F_PROVNASC LF_COMUNI->PROVCOM
OUTPUT F_INDRES LF_ANAG->INDRES
OUTPUT F_CIVRES LF_ANAG->CIVRES
OUTPUT F_CAPRES LF_ANAG->CAPRES
OUTPUT F_INDRF LF_ANAG->INDRF
OUTPUT F_CIVRF LF_ANAG->CIVRF
OUTPUT F_CAPRF LF_ANAG->CAPRF
OUTPUT F_COMRES 1@->DENCOM
OUTPUT F_PROVRES 1@->PROVCOM
OUTPUT F_COMRF 2@->DENCOM
OUTPUT F_PROVRF 2@->PROVCOM
OUTPUT F_DOMFISC LF_ANAG->VARSLORES
OUTPUT F_ANAGR LF_ANAGFIS->CODANAGR
OUTPUT F_PTELRF LF_ANAG->PTELRF
OUTPUT F_TELRF LF_ANAG->TELRF
FIELD LF_BASE->RAPPR
CHECKTYPE NORMAL
FLAGS "R"
END
STRING F_COFI 16
BEGIN
PROMPT 1 5 "Codice fiscale "
FLAGS "D"
END
STRING F_COGNOME 30
BEGIN
PROMPT 1 6 "Cognome "
FLAGS "D"
END
STRING F_NOME 20
BEGIN
PROMPT 1 7 "Nome "
FLAGS "D"
END
STRING F_SESSO 1
BEGIN
PROMPT 39 7 "Sesso "
FLAGS "D"
END
DATE F_DATANASC
BEGIN
PROMPT 49 7 "Data di nascita "
FLAGS "D"
END
STRING F_COMNASC 50
BEGIN
PROMPT 1 8 "Comune nascita "
FLAGS "D"
END
STRING F_PROVNASC 5
BEGIN
PROMPT 70 8 ""
FLAGS "D"
END
LIST F_CARRAP 51
BEGIN
PROMPT 1 9 "Carica "
HELP "Codice della carica del rappresentante legale"
ITEM " |Nessun rappresentante"
ITEM "1|Rappresentante legale o di fatto"
ITEM "2|Curatore fallimentare"
ITEM "3|Liquidatore"
ITEM "4|Nominato in Italia per società con sede all'estero"
ITEM "5|Erede"
ITEM "6|Curatore di eredità giacente"
FIELD LF_BASE->CARRAPP
END
BOOLEAN F_DOMFISC
BEGIN
PROMPT 15 10 "Dom.fiscale o residenza variati rispetto all'anno precedente "
FLAGS "D"
END
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 0 10 "Residenza"
END
STRING F_INDRES 35
BEGIN
PROMPT 1 11 "Indirizzo "
FLAGS "D"
END
STRING F_CIVRES 10
BEGIN
PROMPT 47 11 ""
FLAGS "D"
END
STRING F_CAPRES 5
BEGIN
PROMPT 63 11 "C.A.P. "
FLAGS "D"
END
STRING F_COMRES 50
BEGIN
PROMPT 1 12 "Comune "
FLAGS "D"
END
STRING F_PROVRES 5
BEGIN
PROMPT 63 12 "Prov. "
FLAGS "D"
END
GROUPBOX DLG_NULL 78 5
BEGIN
PROMPT 0 14 "Domicilio fiscale "
END
STRING F_PTELRF 10
BEGIN
PROMPT 1 15 "Telefono "
FLAGS "D"
END
STRING F_TELRF 30
BEGIN
PROMPT 20 15 ""
FLAGS "D"
END
STRING F_INDRF 35
BEGIN
PROMPT 1 16 "Indirizzo "
FLAGS "D"
END
STRING F_CIVRF 10
BEGIN
PROMPT 47 16 ""
FLAGS "D"
END
STRING F_CAPRF 5
BEGIN
PROMPT 63 16 "C.A.P. "
FLAGS "D"
END
STRING F_COMRF 50
BEGIN
PROMPT 1 17 "Comune "
FLAGS "D"
END
STRING F_PROVRF 5
BEGIN
PROMPT 63 17 "Prov. "
FLAGS "D"
END
ENDPAGE
ENDMASK

189
m770/771100d.uml Executable file
View File

@ -0,0 +1,189 @@
#include "771100.h"
TOOLBAR "" 0 20 0 2
BUTTON F_ANAGRAFICA 10 2
BEGIN
PROMPT -15 -1 "~Anagrafica"
END
BUTTON F_ATTIVITA 10 2
BEGIN
PROMPT -25 -1 "~Attività"
END
BUTTON DLG_SAVEREC 10 2
BEGIN
PROMPT -35 -1 "~Registra"
MESSAGE EXIT,K_SAVE
END
BUTTON DLG_CANCEL 10 2
BEGIN
PROMPT -45 -1 ""
MESSAGE EXIT,K_ESC
END
BUTTON DLG_QUIT 10 2
BEGIN
PROMPT -55 -1 ""
MESSAGE EXIT,K_QUIT
END
ENDPAGE
PAGE "Luogo di conservazione delle scritture contabili" -1 -1 78 18
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 0 0 ""
FLAGS "R"
END
NUMBER F_CODDITTA 5
BEGIN
PROMPT 1 1 "Ditta "
FLAGS "GRD"
USE LF_NDITTE KEY 1
CHECKTYPE REQUIRED
INPUT CODDITTA F_CODDITTA
JOIN LF_ATTIV TO LF_NDITTE INTO CODDITTA=CODDITTA CODATT=CODATTPREV
JOIN LF_COMUNI TO LF_ATTIV INTO COM==COMCS
OUTPUT F_RAGSOC LF_NDITTE->RAGSOC
OUTPUT F_ATTIV LF_ATTIV->CODATT
OUTPUT ASCF_TIPOA LF_ATTIV->TIPOADS
OUTPUT F_ANAGR LF_ATTIV->CODANGRDS
OUTPUT F_INDCS LF_ATTIV->INDCS
OUTPUT F_CIVCS LF_ATTIV->CIVCS
OUTPUT F_CAPCS LF_ATTIV->CAPCS
OUTPUT F_COMCS LF_COMUNI->DENCOM
OUTPUT F_PROVCS LF_COMUNI->PROVCOM
OUTPUT F_PTELCS LF_ATTIV->PTELCS
OUTPUT F_TELCS LF_ATTIV->TELCS
KEY 1
END
STRING F_RAGSOC 50
BEGIN
PROMPT 1 2 "Ragione sociale "
FLAGS "D"
END
STRING F_ATTIV 5
BEGIN
PROMPT -1 -1 ""
FLAGS "H"
END
LIST ASCF_TIPOA 9
BEGIN
PROMPT 1 5 "Tipo persona "
ITEMS "G|Societa'"
ITEMS "F|Fisica"
FLAGS "D"
END
NUMBER F_ANAGR 5
BEGIN
PROMPT 52 5 "Codice depositario "
FLAGS "RD"
END
STRING F_COGNOME 30
BEGIN
PROMPT 1 7 "Cognome/Nome "
FLAGS "D"
END
STRING F_NOME 20
BEGIN
PROMPT 45 7 ""
FLAGS "D"
END
STRING F_RAGIONE 50
BEGIN
PROMPT 1 7 "Ragione soc. "
FLAGS "D"
END
STRING F_IND 35
BEGIN
PROMPT 1 8 "Indirizzo "
FLAGS "D"
END
STRING F_CIV 10
BEGIN
PROMPT 50 8 ""
FLAGS "D"
END
STRING F_CAP 5
BEGIN
PROMPT 64 8 "C.A.P. "
FLAGS "D"
END
STRING F_COM 50
BEGIN
PROMPT 1 9 "Comune "
FLAGS "D"
END
STRING F_PROV 5
BEGIN
PROMPT 66 9 "Prov."
FLAGS "D"
END
GROUPBOX DLG_NULL 78 5
BEGIN
PROMPT 0 11 "Luogo di conservazione delle scritture contabili (solo se diverso)"
END
STRING F_INDCS 35
BEGIN
PROMPT 1 12 "Indirizzo "
FLAGS "D"
END
STRING F_CIVCS 10
BEGIN
PROMPT 47 12 ""
FLAGS "D"
END
STRING F_CAPCS 5
BEGIN
PROMPT 63 12 "C.A.P. "
FLAGS "D"
END
STRING F_COMCS 50
BEGIN
PROMPT 1 13 "Comune "
FLAGS "D"
END
STRING F_PROVCS 5
BEGIN
PROMPT 63 13 "Prov. "
FLAGS "D"
END
STRING F_PTELCS 10
BEGIN
PROMPT 1 14 "Telefono "
FLAGS "D"
END
STRING F_TELCS 30
BEGIN
PROMPT 22 14 ""
FLAGS "D"
END
ENDPAGE
ENDMASK

198
m770/771100e.uml Executable file
View File

@ -0,0 +1,198 @@
#include "771100.h"
TOOLBAR "" 0 20 0 2
BUTTON F_GIURIDICA 10 2
BEGIN
PROMPT -14 -1 "~Giuridiche"
END
BUTTON DLG_SAVEREC 10 2
BEGIN
PROMPT -24 -1 "~Registra"
MESSAGE EXIT,K_SAVE
END
BUTTON DLG_CANCEL 10 2
BEGIN
PROMPT -34 -1 ""
MESSAGE EXIT,K_ESC
END
BUTTON DLG_QUIT 10 2
BEGIN
PROMPT -44 -1 ""
MESSAGE EXIT,K_QUIT
END
ENDPAGE
PAGE "Dati C.A.A.F." -1 -1 78 18
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 0 0 ""
FLAGS "R"
END
NUMBER F_CODDITTA 5
BEGIN
PROMPT 1 1 "Ditta "
FLAGS "GRD"
USE LF_NDITTE KEY 1
INPUT CODDITTA F_CODDITTA
JOIN LF_BASE TO LF_NDITTE INTO CODDITTA=CODDITTA
OUTPUT F_RAGSOC LF_NDITTE->RAGSOC
OUTPUT F_ANAGR LF_BASE->CODCAAF
CHECKTYPE REQUIRED
KEY 1
END
STRING F_RAGSOC 50
BEGIN
PROMPT 1 2 "Ragione sociale "
FLAGS "D"
END
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 0 4 "Dati anagrafici"
END
NUMBER F_ANAGR 5
BEGIN
PROMPT 1 5 "Codice "
USE LF_ANAGGIU KEY 1
INPUT CODANAGR F_ANAGR
JOIN LF_ANAG TO LF_ANAGGIU INTO CODANAGR=CODANAGR TIPOA="G"
JOIN LF_COMUNI TO LF_ANAG ALIAS 1 INTO COM==COMRES
JOIN LF_COMUNI TO LF_ANAG ALIAS 2 INTO COM==COMRF
DISPLAY "Codice" CODANAGR
DISPLAY "Ragione Sociale@50" LF_ANAG->RAGSOC
OUTPUT F_COFI LF_ANAG->COFI
OUTPUT F_RAGIONE LF_ANAG->RAGSOC
OUTPUT F_INDRES LF_ANAG->INDRES
OUTPUT F_CIVRES LF_ANAG->CIVRES
OUTPUT F_CAPRES LF_ANAG->CAPRES
OUTPUT F_INDRF LF_ANAG->INDRF
OUTPUT F_CIVRF LF_ANAG->CIVRF
OUTPUT F_CAPRF LF_ANAG->CAPRF
OUTPUT F_COMRES 1@->DENCOM
OUTPUT F_PROVRES 1@->PROVCOM
OUTPUT F_COMRF 2@->DENCOM
OUTPUT F_PROVRF 2@->PROVCOM
OUTPUT F_ANAGR CODANAGR
CHECKTYPE NORMAL
FLAGS "R"
END
STRING F_COFI 16
BEGIN
PROMPT 43 5 "Codice fiscale "
FLAGS "D"
END
STRING F_RAGIONE 50
BEGIN
PROMPT 1 6 "Ragione sociale "
FLAGS "D"
END
NUMBER F_DITTACAAF 5
BEGIN
PROMPT 1 9 "Ditta CAAF "
FLAGS "RZ"
USE LF_NDITTE KEY 3 SELECT CODANAGR=#F_ANAGR
INPUT TIPOA "G"
INPUT CODANAGR F_ANAGR
INPUT CODDITTA F_DITTACAAF
DISPLAY "Ditta" CODDITTA
DISPLAY "Tipo" TIPOA
DISPLAY "Cod.Anagrafico" CODANAGR
DISPLAY "Num.Iscr.Albo" NISCRAA
DISPLAY "Ragione sociale@50" RAGSOC
OUTPUT F_NISCRAA NISCRAA
OUTPUT F_DITTACAAF CODDITTA
CHECKTYPE NORMAL
FIELD LF_BASE->DITTACAAF
END
STRING F_NISCRAA 10
BEGIN
PROMPT 30 9 "Numero di iscrizione all'albo "
FLAGS "D"
END
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 0 11 "Sede legale"
END
STRING F_INDRES 35
BEGIN
PROMPT 1 12 "Indirizzo "
FLAGS "D"
END
STRING F_CIVRES 10
BEGIN
PROMPT 47 12 ""
FLAGS "D"
END
STRING F_CAPRES 5
BEGIN
PROMPT 63 12 "C.A.P. "
FLAGS "D"
END
STRING F_COMRES 50
BEGIN
PROMPT 1 13 "Comune "
FLAGS "D"
END
STRING F_PROVRES 5
BEGIN
PROMPT 63 13 "Prov. "
FLAGS "D"
END
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 0 15 "Domicilio fiscale "
END
STRING F_INDRF 35
BEGIN
PROMPT 1 16 "Indirizzo "
FLAGS "D"
END
STRING F_CIVRF 10
BEGIN
PROMPT 47 16 ""
FLAGS "D"
END
STRING F_CAPRF 5
BEGIN
PROMPT 63 16 "C.A.P. "
FLAGS "D"
END
STRING F_COMRF 50
BEGIN
PROMPT 1 17 "Comune "
FLAGS "D"
END
STRING F_PROVRF 5
BEGIN
PROMPT 63 17 "Prov. "
FLAGS "D"
END
ENDPAGE
ENDMASK

133
m770/771100f.uml Executable file
View File

@ -0,0 +1,133 @@
#include "771100.h"
TOOLBAR "" 0 20 0 2
BUTTON F_FISICA 10 2
BEGIN
PROMPT -14 -1 "~Fisiche"
END
BUTTON DLG_SAVEREC 10 2
BEGIN
PROMPT -24 -1 "~Registra"
MESSAGE EXIT,K_SAVE
END
BUTTON DLG_CANCEL 10 2
BEGIN
PROMPT -34 -1 ""
MESSAGE EXIT,K_ESC
END
BUTTON DLG_QUIT 10 2
BEGIN
PROMPT -44 -1 ""
MESSAGE EXIT,K_QUIT
END
ENDPAGE
PAGE "Dati relativi alle persone fisiche" -1 -1 78 18
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 0 0 ""
FLAGS "R"
END
NUMBER F_CODDITTA 5
BEGIN
PROMPT 1 1 "Ditta "
FLAGS "GRD"
USE LF_NDITTE KEY 1
CHECKTYPE REQUIRED
INPUT CODDITTA F_CODDITTA
OUTPUT F_RAGSOC RAGSOC
KEY 1
END
STRING F_RAGSOC 50
BEGIN
PROMPT 1 2 "Ragione sociale "
FLAGS "D"
END
GROUPBOX DLG_NULL 78 7
BEGIN
PROMPT 0 5 "Dati anagrafici"
END
NUMBER F_ANAGR 5
BEGIN
PROMPT 1 6 "Codice "
USE LF_ANAGFIS KEY 1
CHECKTYPE NORMAL
INPUT CODANAGR F_ANAGR
JOIN LF_ANAG TO LF_ANAGFIS INTO TIPOA="F" CODANAGR=CODANAGR
JOIN LF_COMUNI TO LF_ANAGFIS INTO COM==COMNASC
DISPLAY "Codice" CODANAGR
DISPLAY "Ragione Sociale@50" LF_ANAG->RAGSOC
OUTPUT F_COFI LF_ANAG->COFI
OUTPUT F_COGNOME LF_ANAG->RAGSOC[1,30]
OUTPUT F_NOME LF_ANAG->RAGSOC[31,50]
OUTPUT F_SESSO SESSO
OUTPUT F_DATANASC DATANASC
OUTPUT F_COMNASC LF_COMUNI->DENCOM
OUTPUT F_PROVNASC LF_COMUNI->PROVCOM
OUTPUT F_ANAGR CODANAGR
FIELD LF_BASE->CODPRO
FLAGS "R"
KEY 1
END
STRING F_COFI 16
BEGIN
PROMPT 1 7 "Codice fiscale "
FLAGS "D"
END
STRING F_COGNOME 30
BEGIN
PROMPT 1 8 "Cognome "
FLAGS "D"
END
STRING F_NOME 20
BEGIN
PROMPT 1 9 "Nome "
FLAGS "D"
END
STRING F_SESSO 1
BEGIN
PROMPT 39 9 "Sesso "
FLAGS "D"
END
DATE F_DATANASC
BEGIN
PROMPT 49 9 "Data di nascita "
FLAGS "D"
END
STRING F_COMNASC 50
BEGIN
PROMPT 1 10 "Comune nascita "
FLAGS "D"
END
STRING F_PROVNASC 5
BEGIN
PROMPT 70 10 ""
FLAGS "D"
END
BOOLEAN F_CONTROLLI
BEGIN
PROMPT 1 13 "Si attesta che sono stati eseguiti i controlli di cui art.4"
FIELD LF_BASE->FLART4
END
ENDPAGE
ENDMASK

241
m770/771100g.uml Executable file
View File

@ -0,0 +1,241 @@
#include "771100.h"
TOOLBAR "" 0 20 0 2
BUTTON F_ANAGRAFICA 10 2
BEGIN
PROMPT -14 -1 "~Anagrafica"
END
BUTTON DLG_SAVEREC 10 2
BEGIN
PROMPT -24 -1 "~Registra"
MESSAGE EXIT,K_SAVE
END
BUTTON DLG_CANCEL 10 2
BEGIN
PROMPT -34 -1 ""
MESSAGE EXIT,K_ESC
END
BUTTON DLG_QUIT 10 2
BEGIN
PROMPT -44 -1 ""
MESSAGE EXIT,K_QUIT
END
ENDPAGE
PAGE "Dati vari" -1 -1 78 18
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 0 0 ""
FLAGS "R"
END
NUMBER F_CODDITTA 5
BEGIN
PROMPT 1 1 "Ditta "
FLAGS "GRD"
USE LF_NDITTE KEY 1
CHECKTYPE REQUIRED
INPUT CODDITTA F_CODDITTA
OUTPUT F_RAGSOC LF_NDITTE->RAGSOC
OUTPUT F_TIPOA TIPOA
OUTPUT F_ANAGR CODANAGR
KEY 1
END
STRING F_RAGSOC 50
BEGIN
PROMPT 1 2 "Ragione sociale "
FLAGS "D"
END
STRING F_TIPOA 1
BEGIN
PROMPT -1 -1 ""
FLAGS "H"
END
NUMBER F_ANAGR 5
BEGIN
PROMPT -1 -1 ""
FLAGS "H"
END
NUMBER F_CODCONC1 3
BEGIN
PROMPT 1 5 "Cod.Concessione "
FLAGS "DRZ"
FIELD LF_BASEBIS->L0CCONC1
END
NUMBER F_CODCONC2 3
BEGIN
PROMPT 23 5 "Cod.Concessione "
FLAGS "RZ"
USE %UCC
INPUT CODTAB F_CODCONC2
DISPLAY "Codice" CODTAB
DISPLAY "Ufficio@30" S0
OUTPUT F_CODCONC2 CODTAB
HELP "Codice dell'ufficio concessioni"
CHECKTYPE NORMAL
FIELD LF_BASEBIS->L0CCONC2
END
NUMBER F_CODCONC3 3
BEGIN
PROMPT 47 5 "Cod.Concessione "
FLAGS "RZ"
COPY USE F_CODCONC2
INPUT CODTAB F_CODCONC3
COPY DISPLAY F_CODCONC2
OUTPUT F_CODCONC3 CODTAB
HELP "Codice dell'ufficio concessioni"
CHECKTYPE NORMAL
FIELD LF_BASEBIS->L0CCONC3
END
NUMBER F_CODTES1 3
BEGIN
PROMPT 1 6 "Cod.Tesoreria "
FLAGS "RZ"
FIELD LF_BASEBIS->L0CTES1
END
NUMBER F_CODTES2 3
BEGIN
PROMPT 23 6 "Cod.Tesoreria "
FLAGS "RZ"
FIELD LF_BASEBIS->L0CTES2
END
NUMBER F_CODTES3 3
BEGIN
PROMPT 47 6 "Cod.Tesoreria "
FLAGS "RZ"
FIELD LF_BASEBIS->L0CTES3
END
GROUPBOX DLG_NULL 78 5
BEGIN
PROMPT 0 8 ""
END
NUMBER F_CODUI 3
BEGIN
PROMPT 1 9 "Ufficio imposte "
FLAGS "RZD"
USE %UID
JOIN LF_COMUNI TO %UID INTO COM==S6
INPUT CODTAB F_CODUI
OUTPUT F_DESCRUI S0
OUTPUT F_INDUI S1
OUTPUT F_CIVUI S3
OUTPUT F_CAPUI S7
OUTPUT F_COMUI LF_COMUNI->DENCOM
OUTPUT F_PROVUI LF_COMUNI->PROVCOM
CHECKTYPE NORMAL
END
STRING F_DESCRUI 50
BEGIN
PROMPT 25 9 ""
FLAGS "D"
END
STRING F_INDUI 35
BEGIN
PROMPT 1 10 "Indirizzo "
FLAGS "D"
END
STRING F_CIVUI 10
BEGIN
PROMPT 47 10 ""
FLAGS "D"
END
STRING F_CAPUI 5
BEGIN
PROMPT 63 10 "C.A.P. "
FLAGS "D"
END
STRING F_COMUI 50
BEGIN
PROMPT 1 11 "Comune "
FLAGS "D"
END
STRING F_PROVUI 5
BEGIN
PROMPT 63 11 "Prov. "
FLAGS "D"
END
GROUPBOX DLG_NULL 78 5
BEGIN
PROMPT 0 14 ""
END
NUMBER F_CODCS 3
BEGIN
PROMPT 1 15 "Centro servizi "
FLAGS "RZD"
USE %UCS
JOIN LF_COMUNI TO %UCS INTO COM==S6
INPUT CODTAB F_CODCS
OUTPUT F_DESCRCS S0
OUTPUT F_INDCS S1
OUTPUT F_CIVCS S3
OUTPUT F_CAPCS S7
OUTPUT F_COMCS LF_COMUNI->DENCOM
OUTPUT F_PROVCS LF_COMUNI->PROVCOM
CHECKTYPE NORMAL
END
STRING F_DESCRCS 50
BEGIN
PROMPT 25 15 ""
FLAGS "D"
END
STRING F_INDCS 35
BEGIN
PROMPT 1 16 "Indirizzo "
FLAGS "D"
END
STRING F_CIVCS 10
BEGIN
PROMPT 47 16 ""
FLAGS "D"
END
STRING F_CAPCS 5
BEGIN
PROMPT 63 16 "C.A.P. "
FLAGS "D"
END
STRING F_COMCS 50
BEGIN
PROMPT 1 17 "Comune "
FLAGS "D"
END
STRING F_PROVCS 5
BEGIN
PROMPT 63 17 "Prov. "
FLAGS "D"
END
ENDPAGE
ENDMASK

172
m770/771100h.uml Executable file
View File

@ -0,0 +1,172 @@
#include "771100.h"
TOOLBAR "" 0 20 0 2
#include <toolbar.h>
ENDPAGE
PAGE "Manutenzione dati societa' trasformate" -1 -1 78 18
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 0 0 ""
FLAGS "R"
END
NUMBER MDSTF_CODDITTA 5
BEGIN
PROMPT 1 1 "Ditta "
FLAGS "GR"
KEY 1
CHECKTYPE REQUIRED
USE LF_NDITTE KEY 1
INPUT CODDITTA MDSTF_CODDITTA
OUTPUT MDSTF_RAGSOC RAGSOC
FIELD LF_SOCTRASF->CODDITTA
END
STRING MDSTF_RAGSOC 50
BEGIN
PROMPT 1 2 "Ragione sociale "
FLAGS "D"
END
GROUPBOX DLG_NULL 78 6
BEGIN
PROMPT 0 4 "Persone fisiche: imprese individuali e soggetti esercenti arti e professioni"
GROUP 1
END
STRING F_SOC_COFI 16
BEGIN
PROMPT 1 5 "Codice fiscale "
CHECKTYPE REQUIRED
FIELD LF_SOCTRASF->CODFISC
GROUP 1
END
STRING F_SOC_COGNOME 30
BEGIN
PROMPT 1 6 "Cognome "
CHECKTYPE REQUIRED
FIELD LF_SOCTRASF->DENOMIN[1,30]
GROUP 1
END
TEXT DLG_NULL
BEGIN
PROMPT 48 6 "(Per donne quello da nubile)"
GROUP 1
END
STRING F_SOC_NOME 20
BEGIN
PROMPT 1 7 "Nome "
CHECKTYPE REQUIRED
FIELD LF_SOCTRASF->NOME
GROUP 1
END
STRING F_SOC_SESSO 1
BEGIN
PROMPT 39 7 "Sesso "
FIELD LF_SOCTRASF->SESSO
GROUP 1
END
DATE F_SOC_DATANAS
BEGIN
PROMPT 48 7 "Data di nascita "
FIELD LF_SOCTRASF->DATANAS
GROUP 1
END
STRING F_SOC_COMUNE 20
BEGIN
PROMPT 1 8 "Comune "
FIELD LF_SOCTRASF->COMNAS
GROUP 1
END
STRING F_SOC_PROVNAS 2
BEGIN
PROMPT 48 8 "Provincia "
FIELD LF_SOCTRASF->PROVNAS
GROUP 1
FLAGS "U"
END
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 0 5 "Altri soggetti: art.5 e 87 del T.U. imposte sui redditi DPR 22/12/1986 n.917"
GROUP 2
END
STRING F_SOC_COFI 16
BEGIN
PROMPT 1 6 "Codice fiscale "
CHECKTYPE REQUIRED
FIELD LF_SOCTRASF->CODFISC
GROUP 2
END
STRING F_SOC_DENOMIN 40
BEGIN
PROMPT 1 7 "Denominazione "
CHECKTYPE REQUIRED
FIELD LF_SOCTRASF->DENOMIN
GROUP 2
END
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 0 10 "Domicilio"
END
STRING F_SOC_COMRES 20
BEGIN
PROMPT 1 11 "Comune "
FIELD LF_SOCTRASF->COMDOM
END
STRING F_SOC_PROVRES 2
BEGIN
PROMPT 48 11 "Provincia "
FIELD LF_SOCTRASF->PROVDOM
FLAGS "U"
END
STRING F_SOC_INDRES 35
BEGIN
PROMPT 1 12 "Indirizzo "
FIELD LF_SOCTRASF->INDDOM
END
NUMBER F_SOC_CONSBOCC 5
BEGIN
PROMPT 1 14 "Consistenza base occupazionale al 12/06/94 "
FIELD LF_SOCTRASF->CONSBOCC
END
NUMBER F_SOC_LAVDIPCIN 5
BEGIN
PROMPT 1 15 "Lavoratori dipendenti in mobilita' o cassa integrazione al 12/06/94 "
FIELD LF_SOCTRASF->LAVDIPCIN
END
DATE F_SOC_DATAINPI
BEGIN
PROMPT 1 16 "Periodo d'imposta dal "
FIELD LF_SOCTRASF->DATAINPI
END
DATE F_SOC_DATAFINPI
BEGIN
PROMPT 34 16 " al "
FIELD LF_SOCTRASF->DATAFINPI
END
ENDPAGE
ENDMASK

56
m770/771150.h Executable file
View File

@ -0,0 +1,56 @@
#ifndef _771150_H
#define _771150_H
// Campi maschera manutenzione anagrafica dipendenti
#define ADF_CODDITTA 181
#define F_RAGSOCIALE 102
#define F_DIP_CODDIP 103
#define F_DIP_CODFI 104
#define F_DIP_COGNOME 105
#define F_DIP_NOME 106
#define F_DIP_SESSO 107
#define F_DIP_DATANA 108
#define F_DIP_COMUNENA 109
#define F_DIP_PROVNA 110
#define F_DIP_COMUNERE 111
#define F_DIP_PROVRE 112
#define F_DIP_INDRE 113
#define F_DIP_QUALIFICA 114
#define F_DIP_STATOCIV 115
#define F_DIP_EREDE 116
#define F_DIP_CODEREDE0 117
#define F_DIP_CODEREDE1 118
#define F_DIP_CODEREDE2 119
#define F_DIP_CODEREDE3 120
#define F_DIP_CODEREDE4 121
#define F_DIP_CODEREDE5 122
#define F_DIP_CODEREDE6 123
#define F_DIP_CODEREDE7 124
#define F_DIP_CODEREDE8 125
#define F_DIP_CODEREDE9 126
#define F_DIP_COGNEREDE0 127
#define F_DIP_COGNEREDE1 128
#define F_DIP_COGNEREDE2 129
#define F_DIP_COGNEREDE3 130
#define F_DIP_COGNEREDE4 131
#define F_DIP_COGNEREDE5 132
#define F_DIP_COGNEREDE6 133
#define F_DIP_COGNEREDE7 134
#define F_DIP_COGNEREDE8 135
#define F_DIP_COGNEREDE9 136
#define F_DIP_NOMEREDE0 137
#define F_DIP_NOMEREDE1 138
#define F_DIP_NOMEREDE2 139
#define F_DIP_NOMEREDE3 140
#define F_DIP_NOMEREDE4 141
#define F_DIP_NOMEREDE5 142
#define F_DIP_NOMEREDE6 143
#define F_DIP_NOMEREDE7 144
#define F_DIP_NOMEREDE8 145
#define F_DIP_NOMEREDE9 146
// Aggiunte 96
#define ADF_CODDIPDEC 147
#define ADF_ASSFIS 148
#endif

488
m770/771150a.uml Executable file
View File

@ -0,0 +1,488 @@
#include "anadip.h"
TOOLBAR "" 0 20 0 2
#include <toolbar.h>
ENDPAGE
PAGE "MODULO 770 - Anagrafica Dipendenti" -1 -1 78 21
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 0 0 ""
END
NUMBER ADF_CODDITTA 5
BEGIN
PROMPT 1 1 "Ditta "
FLAGS "RDG"
USE LF_NDITTE KEY 1
FIELD LF_DIPEND->CODDITTA
CHECKTYPE REQUIRED
INPUT CODDITTA ADF_CODDITTA
DISPLAY "Codice" CODDITTA
DISPLAY "Ragione sociale @50" RAGSOC
OUTPUT F_RAGSOCIALE RAGSOC
KEY 1
END
STRING F_RAGSOCIALE 50
BEGIN
PROMPT 19 1 ""
FLAGS "D"
END
NUMBER ADF_DIP_CODDIP 6
BEGIN
PROMPT 1 3 "Codice dipendente "
USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#ADF_CODDITTA))
FIELD LF_DIPEND->CODIP
INPUT CODDITTA ADF_CODDITTA
INPUT CODIP ADF_DIP_CODDIP
DISPLAY "Codice dipendente" CODIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT ADF_DIP_CODDIP CODIP
OUTPUT F_DIP_COGNOME COGNOME
OUTPUT F_DIP_NOME NOME
FLAGS "R"
CHECKTYPE REQUIRED
KEY 1
END
GROUPBOX DLG_NULL 78 7
BEGIN
PROMPT 0 4 ""
END
STRING F_DIP_CODFI 16
BEGIN
PROMPT 1 5 "Codice fiscale "
FLAGS "U"
FIELD LF_DIPEND->CODFI
VALIDATE CF_FUNC F_DIP_CODFI
END
STRING F_DIP_COGNOME 24
BEGIN
PROMPT 1 6 "Cognome "
FIELD LF_DIPEND->COGNOME
END
STRING F_DIP_NOME 20
BEGIN
PROMPT 50 6 "Nome "
FIELD LF_DIPEND->NOME
END
LIST F_DIP_SESSO 1
BEGIN
PROMPT 1 7 "Sesso "
ITEM "M|M"
ITEM "F|F"
FIELD LF_DIPEND->SESSO
END
DATA F_DIP_DATANA
BEGIN
PROMPT 1 8 "Data di nascita "
FIELD LF_DIPEND->DATANA
END
STRING F_DIP_COMUNENA 20
BEGIN
PROMPT 37 8 "Comune di nascita "
FIELD LF_DIPEND->COMUNENA
END
STRING F_DIP_PROVNA 2
BEGIN
PROMPT 1 9 "Provincia di nasc."
FIELD LF_DIPEND->PROVNA
FLAGS "U"
END
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 0 11 "Residenza"
END
STRING F_DIP_INDRE 24
BEGIN
PROMPT 1 12 "Indirizzo "
FIELD LF_DIPEND->INDRES
END
STRING F_DIP_COMUNERE 20
BEGIN
PROMPT 1 13 "Comune "
FIELD LF_DIPEND->COMRES
END
STRING F_DIP_PROVRE 2
BEGIN
PROMPT 61 13 "Provincia "
FIELD LF_DIPEND->PROVRES
FLAGS "U"
END
NUMBER F_DIP_QUALIFICA 2
BEGIN
PROMPT 1 15 "Qualifica "
FIELD LF_DIPEND->QUALIFICA
SHEET "Codice|Descrizione@85"
INPUT F_DIP_QUALIFICA
ITEM "01|Pensionati"
ITEM "02|Operai generici"
ITEM "03|Operai specializzati"
ITEM "04|Impiegati"
ITEM "05|Quadri"
ITEM "06|Dirigenti"
ITEM "07|Insegnanti universitari compresi docenti,incaricati,ricercatori,e assimilati"
ITEM "08|Insegnanti e presidi di scuola media"
ITEM "09|Insegnanti e direttori di scuola elementare e materna"
ITEM "10|Ministri di culto"
ITEM "11|Eredi"
FLAG "Z"
WARNING "Manca la qualifica"
OUTPUT F_DIP_QUALIFICA
END
LIST F_DIP_STATOCIV 23
BEGIN
PROMPT 37 15 "Stato civile "
FIELD LF_DIPEND->STATOCIV
ITEM "|"
ITEM "1|Celibe/Nubile"
ITEM "2|Coniugato/a"
ITEM "3|Vedovo/a"
ITEM "4|Separato/a legalmente"
ITEM "5|Divorziato/a"
ITEM "6|Deceduto/a"
ITEM "7|Tutelato/a"
ITEM "8|Figlio/a minore"
END
NUMBER ADF_CODDIPDEC 6
BEGIN
PROMPT 1 16 "Codice dipendente deceduto "
USE LF_DIPEND KEY 1 SELECT ((CODIP!=#ADF_DIP_CODDIP) && (CODDITTA=#ADF_CODDITTA))
FIELD LF_DIPEND->CODDIPDEC
INPUT CODDITTA ADF_CODDITTA
INPUT CODIP ADF_CODDIPDEC
DISPLAY "Codice dipendente" CODIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT ADF_CODDIPDEC CODIP
FLAGS "R"
END
LISTBOX ADF_ASSFIS 1 40
BEGIN
PROMPT 1 17 "Si è avvalso dell'assist. fiscale "
ITEM "0|Non si è avvalso dell'assistenza fiscale"
ITEM "1|Del datore di lavoro"
ITEM "2|Del CAAF"
FIELD LF_DIPEND->ASSFIS
END
ENDPAGE
PAGE "MODULO 770 - Anagrafica Dipendenti" -1 -1 78 21
GROUPBOX DLG_NULL 76 12
BEGIN
PROMPT 1 1 "Eredi"
END
NUMBER F_DIP_CODEREDE0 5
BEGIN
PROMPT 3 2 "Codice "
FIELD LF_DIPEND->CODEREDE0
USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#ADF_CODDITTA))
INPUT CODDITTA ADF_CODDITTA
INPUT CODIP F_DIP_CODEREDE0
DISPLAY "Codice" CODIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT F_DIP_CODEREDE0 CODIP
OUTPUT F_DIP_COGNEREDE0 COGNOME
OUTPUT F_DIP_NOMEREDE0 NOME
FLAG "DGR"
CHECKTYPE NORMAL
END
STRING F_DIP_COGNEREDE0 24
BEGIN
PROMPT 22 2 ""
FLAG "D"
END
STRING F_DIP_NOMEREDE0 20
BEGIN
PROMPT 50 2 ""
FLAG "D"
END
NUMBER F_DIP_CODEREDE1 5
BEGIN
PROMPT 11 3 ""
FIELD LF_DIPEND->CODEREDE1
USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#ADF_CODDITTA))
INPUT CODDITTA ADF_CODDITTA
INPUT CODIP F_DIP_CODEREDE1
DISPLAY "Codice" CODIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT F_DIP_CODEREDE1 CODIP
OUTPUT F_DIP_COGNEREDE1 COGNOME
OUTPUT F_DIP_NOMEREDE1 NOME
CHECKTYPE NORMAL
FLAG "DR"
END
STRING F_DIP_COGNEREDE1 24
BEGIN
PROMPT 22 3 ""
FLAG "D"
END
STRING F_DIP_NOMEREDE1 20
BEGIN
PROMPT 50 3 ""
FLAG "D"
END
NUMBER F_DIP_CODEREDE2 5
BEGIN
PROMPT 11 4 ""
FIELD LF_DIPEND->CODEREDE2
USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#ADF_CODDITTA))
INPUT CODDITTA ADF_CODDITTA
INPUT CODIP F_DIP_CODEREDE2
DISPLAY "Codice" CODIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT F_DIP_CODEREDE2 CODIP
OUTPUT F_DIP_COGNEREDE2 COGNOME
OUTPUT F_DIP_NOMEREDE2 NOME
CHECKTYPE NORMAL
FLAG "DR"
END
STRING F_DIP_COGNEREDE2 24
BEGIN
PROMPT 22 4 ""
FLAG "D"
END
STRING F_DIP_NOMEREDE2 20
BEGIN
PROMPT 50 4 ""
FLAG "D"
END
NUMBER F_DIP_CODEREDE3 5
BEGIN
PROMPT 11 5 ""
FIELD LF_DIPEND->CODEREDE3
USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#ADF_CODDITTA))
INPUT CODDITTA ADF_CODDITTA
INPUT CODIP F_DIP_CODEREDE3
DISPLAY "Codice" CODIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT F_DIP_CODEREDE3 CODIP
OUTPUT F_DIP_COGNEREDE3 COGNOME
OUTPUT F_DIP_NOMEREDE3 NOME
CHECKTYPE NORMAL
FLAG "DR"
END
STRING F_DIP_COGNEREDE3 24
BEGIN
PROMPT 22 5 ""
FLAG "D"
END
STRING F_DIP_NOMEREDE3 20
BEGIN
PROMPT 50 5 ""
FLAG "D"
END
NUMBER F_DIP_CODEREDE4 5
BEGIN
PROMPT 11 6 ""
FIELD LF_DIPEND->CODEREDE4
USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#ADF_CODDITTA))
INPUT CODDITTA ADF_CODDITTA
INPUT CODIP F_DIP_CODEREDE4
DISPLAY "Codice" CODIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT F_DIP_CODEREDE4 CODIP
OUTPUT F_DIP_COGNEREDE4 COGNOME
OUTPUT F_DIP_NOMEREDE4 NOME
FLAG "DR"
CHECKTYPE NORMAL
END
STRING F_DIP_COGNEREDE4 24
BEGIN
PROMPT 22 6 ""
FLAG "D"
END
STRING F_DIP_NOMEREDE4 20
BEGIN
PROMPT 50 6 ""
FLAG "D"
END
NUMBER F_DIP_CODEREDE5 5
BEGIN
PROMPT 11 7 ""
FIELD LF_DIPEND->CODEREDE5
USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#ADF_CODDITTA))
INPUT CODDITTA ADF_CODDITTA
INPUT CODIP F_DIP_CODEREDE5
DISPLAY "Codice" CODIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT F_DIP_CODEREDE5 CODIP
OUTPUT F_DIP_COGNEREDE5 COGNOME
OUTPUT F_DIP_NOMEREDE5 NOME
FLAG "DR"
CHECKTYPE NORMAL
END
STRING F_DIP_COGNEREDE5 24
BEGIN
PROMPT 22 7 ""
FLAG "D"
END
STRING F_DIP_NOMEREDE5 20
BEGIN
PROMPT 50 7 ""
FLAG "D"
END
NUMBER F_DIP_CODEREDE6 5
BEGIN
PROMPT 11 8 ""
FIELD LF_DIPEND->CODEREDE6
USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#ADF_CODDITTA))
INPUT CODDITTA ADF_CODDITTA
INPUT CODIP F_DIP_CODEREDE6
DISPLAY "Codice" CODIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT F_DIP_CODEREDE6 CODIP
OUTPUT F_DIP_COGNEREDE6 COGNOME
OUTPUT F_DIP_NOMEREDE6 NOME
FLAG "DR"
CHECKTYPE NORMAL
END
STRING F_DIP_COGNEREDE6 24
BEGIN
PROMPT 22 8 ""
FLAG "D"
END
STRING F_DIP_NOMEREDE6 20
BEGIN
PROMPT 50 8 ""
FLAG "D"
END
NUMBER F_DIP_CODEREDE7 5
BEGIN
PROMPT 11 9 ""
FIELD LF_DIPEND->CODEREDE7
USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#ADF_CODDITTA))
INPUT CODDITTA ADF_CODDITTA
INPUT CODIP F_DIP_CODEREDE7
DISPLAY "Codice" CODIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT F_DIP_CODEREDE7 CODIP
OUTPUT F_DIP_COGNEREDE7 COGNOME
OUTPUT F_DIP_NOMEREDE7 NOME
FLAG "DR"
CHECKTYPE NORMAL
END
STRING F_DIP_COGNEREDE7 24
BEGIN
PROMPT 22 9 ""
FLAG "D"
END
STRING F_DIP_NOMEREDE7 20
BEGIN
PROMPT 50 9 ""
FLAG "D"
END
NUMBER F_DIP_CODEREDE8 5
BEGIN
PROMPT 11 10 ""
FIELD LF_DIPEND->CODEREDE8
USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#ADF_CODDITTA))
INPUT CODDITTA ADF_CODDITTA
INPUT CODIP F_DIP_CODEREDE8
DISPLAY "Codice" CODIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT F_DIP_CODEREDE8 CODIP
OUTPUT F_DIP_COGNEREDE8 COGNOME
OUTPUT F_DIP_NOMEREDE8 NOME
FLAG "DR"
CHECKTYPE NORMAL
END
STRING F_DIP_COGNEREDE8 24
BEGIN
PROMPT 22 10 ""
FLAG "D"
END
STRING F_DIP_NOMEREDE8 20
BEGIN
PROMPT 50 10 ""
FLAG "D"
END
NUMBER F_DIP_CODEREDE9 5
BEGIN
PROMPT 11 11 ""
FIELD LF_DIPEND->CODEREDE9
USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#ADF_CODDITTA))
INPUT CODDITTA ADF_CODDITTA
INPUT CODIP F_DIP_CODEREDE9
DISPLAY "Codice" CODIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT F_DIP_CODEREDE9 CODIP
OUTPUT F_DIP_COGNEREDE9 COGNOME
OUTPUT F_DIP_NOMEREDE9 NOME
FLAG "DR"
CHECKTYPE NORMAL
END
STRING F_DIP_COGNEREDE9 24
BEGIN
PROMPT 22 11 ""
FLAG "D"
END
STRING F_DIP_NOMEREDE9 20
BEGIN
PROMPT 50 11 ""
FLAG "D"
END
ENDPAGE
ENDMASK

878
m770/771200.cpp Executable file
View File

@ -0,0 +1,878 @@
//////////////////////////////////////////
// 771200.cpp - Quadro A 771mod -7 A //
// - Quadro A1 771mod -7 1 //
// - Quadro A2 771mod -7 2 //
// - Quadro A3 771mod -7 3 //
//////////////////////////////////////////
#include <relapp.h>
#include <config.h>
#include <msksheet.h>
#include <sort.h>
#include <tabutil.h>
#include <progind.h>
#include <execp.h>
#include <nditte.h>
#include <defmask.h>
#include "77lib.h"
#include "dipend.h"
#include "quadroa.h"
#include "quadroa3.h"
#include "soctrasf.h"
#include "771200.h"
#include "774200.h"
bool QA_cerca_codA(const long codditta, const long coddip, TString& quadro);
bool QA_cerca_codA(const long codditta, const long coddip, TString& quadro)
{
TString16 c58("");
bool Result = FALSE;
TLocalisamfile qq(quadro == "A" ? LF_QUAA : LF_QUAA2);
qq.zero();
qq.put(QUA_CODDITTA, codditta);
qq.put(QUA_CODIP, coddip);
TRectype dep(qq.curr());
for (qq.read(); !qq.eof(); qq.next())
{
if (qq.curr() > dep) break;
c58 = qq.get(QUA_RETCON);
if (c58 == "A")
{
Result = TRUE;
break;
}
}
return Result;
}
class TQuadroA : public TRelation_application
{
private:
TString _quadro; // Codice del quadro in gestione
bool _registra; // Se TRUE fa i riporti
TRelation* _rel;
TMask* _msk[2];
long _coddip;
char _tipoq;
int _nproga;
int _mode;
int _anno_dic; // anno dichiarazione
TLocalisamfile* _qd;
TRiporti _rip;
int _file;
bool _soc_trasf;
TString _cognome,_nome;
long _codditta,_codip;
private:
// Handler relativi ai quadri A - A1 - A2 - A3
static bool nprog_handler (TMask_field& f, KEY key);
static bool codanagr_handler (TMask_field& f, KEY key);
static bool codditta_hnd (TMask_field& f, KEY key);
static bool setta_nprog (TMask_field& f);
// Handler relativi alla manutenzione quadro A
static bool QA_comp_netti_hnd (TMask_field& f, KEY key);
static bool QA_tot_impon_hnd (TMask_field& f, KEY key);
static bool QA_tot_detraz_hnd (TMask_field& f, KEY key);
static bool QA_cfdlprec_hnd (TMask_field& f, KEY key);
static bool QA_chech_ritdatlav (TMask_field& f, KEY key);
static bool QA_check_ritdovute (TMask_field& f, KEY key);
static bool QA_check_2527 (TMask_field& f, KEY key);
static bool QA_A2_check_58 (TMask_field& f, KEY key);
// Handler relativi alla manutenzione quadro A3
static bool QA3_codip_handler (TMask_field& f, KEY key);
static bool QA3_base_occupazionale(TMask_field& f, KEY key);
static bool QA3_nprog (TMask_field& f, KEY key);
protected:
virtual bool user_create();
virtual bool user_destroy();
virtual int rewrite(const TMask& m);
virtual int write (const TMask& m);
virtual bool remove();
virtual TRelation* get_relation() const { return _rel; }
virtual TMask* get_mask(int mode);
virtual bool changing_mask(int mode);
virtual void init_query_mode (TMask&);
virtual void init_query_insert_mode (TMask&);
virtual void init_modify_mode (TMask&);
virtual void init_insert_mode(TMask& m);
virtual void on_config_change();
TMask* load_mask(int n);
int anno_dic() const { return _anno_dic; }
bool QuadroA() const { return _quadro == "A"; }
bool QuadroA1() const { return _quadro == "A1"; }
bool QuadroA2() const { return _quadro == "A2"; }
bool QuadroA3() const { return _quadro == "A3"; }
public:
bool is_societa_trasformata(TMask& m);
void carica_record2_A3(TMask& m);
char tipo_trasformata(long codditta);
void registra_record2_A3(const TMask& m);
void cancella_record2_A3();
TQuadroA(char tipo);
virtual ~TQuadroA() {};
};
inline TQuadroA& app() { return (TQuadroA&) main_app(); }
TQuadroA::TQuadroA(char tipo): _rel(NULL), _mode(0), _tipoq(tipo)
{
memset(_msk, 0, sizeof(_msk));
}
bool TQuadroA::changing_mask(int mode)
{
if (mode == MODE_QUERY)
return _mode != MODE_QUERY;
else
return TRUE;
}
TMask* TQuadroA::get_mask(int mode)
{
const int m = (mode == MODE_QUERY) ? 0 : 1;
_mode = mode;
return load_mask(m);
}
TMask* TQuadroA::load_mask(int n)
{
if (_msk[n] != NULL)
return _msk[n];
TFilename name("771200");
if (n == 0)
{
switch (_tipoq)
{
case 'A': // Manutenzione quadro A
name << 'a';
break;
case '1': // Manutenzione quadro A1
name << 'c';
break;
case '2': // Manutenzione quadro A2
name << 'e';
break;
case '3': // Manutenzione quadro A3
name << 'g';
break;
default:
break;
}
}
else
{
switch (_tipoq)
{
case 'A': // Manutenzione quadro A
name << 'b';
break;
case '1': // Manutenzione quadro A1
name << 'd';
break;
case '2': // Manutenzione quadro A2
name << 'f';
break;
case '3': // Manutenzione quadro A3
name << 'h';
break;
default:
break;
}
}
TMask* m = new TMask(name);
switch (n)
{
case 0:
if (m)
{
m->set_handler(QAF_CODDITTA, codditta_hnd);
if (!QuadroA3())
{
m->set_handler(QAF_NPROG, nprog_handler);
m->set_handler(F_CODIP, codanagr_handler);
}
else
{
m->set_handler(QAF_NPROG, QA3_nprog);
m->set_handler(F_CODIP, QA3_codip_handler);
m->set_handler(F_BASEOCCUPA, QA3_base_occupazionale);
}
}
break;
case 1:
if (m)
{
if (QuadroA2())
m->set_handler(QA2F_RETCON, QA_A2_check_58);
if (QuadroA())
{
// Calcola i compensi netti (c.23) e controllo c25-27
m->set_handler(F_CODFISDL, QA_cfdlprec_hnd);
m->set_handler(F_DENARO, QA_comp_netti_hnd);
m->set_handler(F_NATURA, QA_comp_netti_hnd);
m->set_handler(F_COBBDIP21, QA_comp_netti_hnd);
// Se immette un B controlla che ci sia almeno un rec con A
m->set_handler(F_RETCON56, QA_A2_check_58);
// Se 27=0 => 25 deve = 0
m->set_handler(F_IACOBBCD25, QA_check_2527);
// Calcola il totale imponibile (c.27)
m->set_handler(F_AMMLORDO24, QA_tot_impon_hnd);
m->set_handler(QAF_SVNSOGRIT, QA_tot_impon_hnd);
m->set_handler(F_DETCC, QA_tot_detraz_hnd);
m->set_handler(F_DETFC, QA_tot_detraz_hnd);
m->set_handler(F_DETAF, QA_tot_detraz_hnd);
m->set_handler(F_DETLD, QA_tot_detraz_hnd);
m->set_handler(F_DETO, QA_tot_detraz_hnd);
// Controlla che 40 sia <= 30
m->set_handler(F_AMRIODL38, QA_chech_ritdatlav);
// Controlla che 42 = 39 + 40 - 41
m->set_handler(F_AMMRITDOV, QA_check_ritdovute);
}
}
break;
default:
break;
}
m->disable(DLG_FINDREC);
return _msk[n] = m;
}
bool TQuadroA::is_societa_trasformata(TMask& m)
{
TLocalisamfile soc (LF_SOCTRASF);
soc.setkey(1);
soc.zero();
soc.put(SOC_CODDITTA, m.get_long(QAF_CODDITTA));
if (soc.read() == NOERR)
{
_cognome = soc.get(SOC_DENOMIN);
_nome = soc.get(SOC_NOME);
return TRUE;
}
return FALSE;
}
// Ricerca e output dell'ultimo nprog del percipiente scelto
bool TQuadroA::setta_nprog(TMask_field& f)
{
long nprog = 0L;
const long coddip = atol(f.get());
const long codditta = get_firm_770();
TLocalisamfile quadro(app()._file);
quadro.zero();
quadro.put("CODDITTA", codditta);
quadro.put("CODIP", coddip);
TRectype rec(quadro.curr());
quadro.read();
if (quadro.curr() > rec)
{
f.mask().set(QAF_NPROG, nprog+1);
return TRUE;
}
for ( ; !quadro.eof(); quadro.next())
{
if (quadro.curr() > rec) break;
nprog = quadro.get_long("NPROG");
}
if ( (is_erede(codditta,coddip)) && (nprog + 1) > 1)
return error_box("Il dipendente selezionato e' un erede: non e'\n possibile indicare piu' di un rigo sul quadro A");
f.mask().set(QAF_NPROG, nprog+1);
return TRUE;
}
bool TQuadroA::codditta_hnd(TMask_field& f, KEY k)
{
if (k == K_TAB && !f.mask().is_running())
{
TString16 codditta; codditta << get_firm_770();
if (codditta != "0")
{
f.set(codditta);
f.check();
}
}
return TRUE;
}
bool TQuadroA::codanagr_handler(TMask_field& f, KEY k)
{
if (k == K_TAB && f.focusdirty())
{
TString16 dummy(f.get());
if (dummy.not_empty())
setta_nprog(f);
}
return TRUE;
}
// Passa al modo inserimento/modifica.
bool TQuadroA::nprog_handler(TMask_field& f, KEY key)
{
if (!f.mask().is_running()) return TRUE;
if (key == K_TAB)
{
const int nprog = atoi(f.get());
if (nprog==0) return TRUE;
const long coddip = f.mask().get_long(F_CODIP);
const long codditta = get_firm_770();
if ( (is_erede(codditta,coddip)) && nprog > 1)
return error_box("Il dipendente selezionato e' un erede: non e'\n possibile indicare piu' di un rigo sul quadro A");
f.mask().stop_run(K_AUTO_ENTER); // entra in modo modifica (se il record che ha chiave specificata esiste gia') oppure
// inserimento (se trova che non esiste)
}
return TRUE;
}
bool TQuadroA::QA3_nprog(TMask_field& f, KEY key)
{
if (key == K_TAB)
{
const int nprog = atoi(f.get());
if (nprog==0)
f.mask().set(QAF_NPROG, 1);
}
return TRUE;
}
bool TQuadroA::QA3_codip_handler(TMask_field& f, KEY key)
{
if (!f.mask().is_running()) return TRUE;
if (key == K_TAB)
{
const long coddip = atol(f.get());
if (coddip==0) return TRUE;
f.mask().stop_run(K_AUTO_ENTER); // entra in modo modifica (se il record che ha chiave specificata esiste gia') oppure
// inserimento (se trova che non esiste)
}
return TRUE;
}
// Se CF dat.lav.prec. e' vuoto => mette a ZERO il 19 e lo disabilita
bool TQuadroA::QA_cfdlprec_hnd(TMask_field& f, KEY k)
{
if (k == K_TAB)
{
TString tmp(f.get());
if (tmp.empty())
{
f.mask().set(F_CAUSA, 0L);
f.mask().disable(F_CAUSA);
}
else
f.mask().enable(F_CAUSA);
}
return TRUE;
}
// Controlla che 40 NON sia > 30
bool TQuadroA::QA_chech_ritdatlav(TMask_field& f, KEY k)
{
if (k == K_ENTER)
{
real RitDatLavoro(f.get()); // c40
real TotImp(f.mask().get_real(F_TOTIMP29)); // c30
if (RitDatLavoro > TotImp)
return f.warning_box("Le ritenute del datore di lavoro non possono superare il totale imponibile");
}
return TRUE;
}
// Controlla che 42 = 39 + 40 - 41
bool TQuadroA::QA_check_ritdovute(TMask_field& f, KEY k)
{
if (k == K_ENTER)
{
real ritterzi = f.mask().get_real(F_AMRIOT37);
real ritdatlav = f.mask().get_real(F_AMRIODL38);
real eccrit = f.mask().get_real(F_ECCRITRIMB);
real c42(f.get());
real ritdovute = ritterzi + ritdatlav - eccrit;
if (c42 != ritdovute)
f.warning_box("Correggere l'importo delle ritenute dovute");
}
return TRUE;
}
bool TQuadroA::QA_check_2527 (TMask_field& f, KEY k)
{
// Se 27 == 0 => 25 = 0
if (k == K_ENTER)
{
real c27 = f.mask().get_real(F_TOTIMP26);
real c25(f.get());
if (c27 == ZERO && c25 != ZERO)
return f.warning_box("Valore non corretto: il totale imponibile è nullo");
}
return TRUE;
}
// Funziona sia col quadro A che con A2
bool TQuadroA::QA_A2_check_58(TMask_field& f, KEY k)
{
if (k == K_TAB || k == K_ENTER)
{
TMask& m = f.mask();
TString16 cod(f.get());
const long codditta = f.mask().get_long(QAF_CODDITTA);
const long coddip = f.mask().get_long(F_CODIP);
if (cod == "B")
{
if (!QA_cerca_codA(codditta, coddip, app()._quadro))
return error_box("Non esiste nessun record con 58=A per questo dipendente");
// Nasconde prompt 770 mostra prompt 730
m.hide(-6);
m.show(-7);
}
// Nasconde prompt 730 mostra prompt 770
else
{
m.hide(-7);
m.show(-6);
}
}
return TRUE;
}
bool TQuadroA::QA_comp_netti_hnd (TMask_field& f, KEY k)
{
if (k == K_TAB)
{
real denaro = f.mask().get_real(F_DENARO);
real natura = f.mask().get_real(F_NATURA);
real cobbdip = f.mask().get_real(F_COBBDIP21);
real compnetti = denaro + natura - cobbdip;
f.mask().set(F_COMPNETTI, compnetti);
f.send_key(K_TAB,F_COMPNETTI);
}
return TRUE;
}
// 27 = 24 - 26
bool TQuadroA::QA_tot_impon_hnd (TMask_field& f, KEY k)
{
if (k == K_TAB || k == K_SPACE)
{
bool ForzaRicalcolo = f.focusdirty();
real ammlordo = f.mask().get_real(F_AMMLORDO24);
real svnsrit = f.mask().get_real(QAF_SVNSOGRIT);
real tot_corr = f.mask().get_real(F_TOTIMP26);
if (tot_corr == ZERO || ForzaRicalcolo)
{
real totimp29 = ammlordo - svnsrit;
f.mask().set(F_TOTIMP26, totimp29);
}
}
return TRUE;
}
bool TQuadroA::QA_tot_detraz_hnd (TMask_field& f, KEY k)
{
if (k == K_TAB)
{
bool ForzaRicalcolo = FALSE;
real totdet36 = f.mask().get_real(F_TOTDET36);
ForzaRicalcolo = f.focusdirty();
if (ForzaRicalcolo)
{
real detcc = f.mask().get_real(F_DETCC);
real detfc = f.mask().get_real(F_DETFC);
real detaf = f.mask().get_real(F_DETAF);
real detld = f.mask().get_real(F_DETLD);
real deto = f.mask().get_real(F_DETO);
totdet36 = detcc + detfc + detaf + detld + deto;
f.mask().set(F_TOTDET36, totdet36);
}
}
return TRUE;
}
bool TQuadroA::QA3_base_occupazionale(TMask_field& f , KEY k)
{
if (k == K_SPACE)
{
TString appname(30);
appname.format("773 -1 771200i 37 \"%s\" 0", "Base occupati");
TExternal_app a(appname);
a.run();
}
return TRUE;
}
void TQuadroA::registra_record2_A3(const TMask& m)
{
TLocalisamfile quaa3 (LF_QUAA3);
TDate di;
long ng1,ng2;
real rd1,rd2;
di = m.get_date(F_DIRAPTI_2);
ng1 = m.get_long(F_NGINC15_2);
ng2 = m.get_long(F_NGINC17_2);
rd1 = m.get_real(F_REDCOR16_2);
rd2 = m.get_real(F_REDCOR18_2);
long codditta = m.get_long(QAF_CODDITTA);
long codip = m.get_long(F_CODIP);
quaa3.setkey(1);
quaa3.zero();
quaa3.put(QA3_CODDITTA, codditta);
quaa3.put(QA3_NPROG, 2);
quaa3.put(QA3_CODIP, codip);
if (quaa3.read() == NOERR)
{
quaa3.put(QA3_CODDITTA, codditta);
quaa3.put(QA3_NPROG, 2);
quaa3.put(QA3_CODIP, codip);
quaa3.put(QA3_DIRAPTI, di);
quaa3.put(QA3_NGINC15, ng1);
quaa3.put(QA3_REDCOR16, rd1);
quaa3.put(QA3_NGINC17, ng2);
quaa3.put(QA3_REDCOR18, rd2);
quaa3.rewrite();
}
else
{
quaa3.put(QA3_CODDITTA, codditta);
quaa3.put(QA3_NPROG, 2);
quaa3.put(QA3_CODIP, codip);
quaa3.put(QA3_DIRAPTI, di);
quaa3.put(QA3_NGINC15, ng1);
quaa3.put(QA3_REDCOR16, rd1);
quaa3.put(QA3_NGINC17, ng2);
quaa3.put(QA3_REDCOR18, rd2);
quaa3.write();
}
}
int TQuadroA::rewrite(const TMask& m)
{
if (_tipoq == '3' && _soc_trasf)
registra_record2_A3(m);
m.autosave(_rel);
const int err = _rel->rewrite();
_registra = TRUE;
return err;
}
int TQuadroA::write(const TMask& m)
{
if (_tipoq == '3' && _soc_trasf)
registra_record2_A3(m);
m.autosave(_rel);
const int err = _rel->write();
_registra = TRUE;
return err;
}
void TQuadroA::cancella_record2_A3()
{
TLocalisamfile quaa3 (LF_QUAA3);
quaa3.setkey(1);
quaa3.zero();
quaa3.put(QA3_CODDITTA, _codditta);
quaa3.put(QA3_NPROG, 2);
quaa3.put(QA3_CODIP, _codip);
if (quaa3.read() == NOERR)
quaa3.remove();
}
bool TQuadroA::remove()
{
if (_tipoq == '3' && _soc_trasf)
cancella_record2_A3();
_registra = TRUE;
return TRelation_application::remove();
}
bool TQuadroA::user_create()
{
switch (_tipoq)
{
case 'A':
_file = LF_QUAA;
_quadro = "A";
break;
case '1':
_file = LF_QUAA1;
_quadro = "A1";
break;
case '2':
_file = LF_QUAA2;
_quadro = "A2";
break;
case '3':
_file = LF_QUAA3;
_quadro = "A3";
break;
default:
break;
}
_qd = new TLocalisamfile(_file);
_rel = new TRelation(_file);
set_search_field(F_CODANAGDIP);
_registra = FALSE;
load_mask(0);
_soc_trasf = FALSE;
return TRUE;
}
bool TQuadroA::user_destroy()
{
if (_msk[1] != NULL) delete _msk[1];
if (_msk[0] != NULL) delete _msk[0];
TString16 quadro = "";
switch (_tipoq)
{
case 'A':
quadro << "A";
break;
case '1':
quadro << "A1";
break;
case '2':
quadro << "A2";
break;
case '3':
quadro << "A3";
break;
default:
break;
}
if (_registra)
_rip.set(quadro);
delete _rel;
delete _qd;
return TRUE;
}
void TQuadroA::on_config_change()
{
TConfig conf(CONFIG_STUDIO);
_anno_dic = (int)conf.get_long(ANNO_SEL, NULL);
}
char TQuadroA::tipo_trasformata(long codditta)
{
TLocalisamfile ditta (LF_NDITTE);
char tipo;
ditta.setkey(1);
ditta.zero();
ditta.put(NDT_CODDITTA, codditta);
if (ditta.read() == NOERR)
tipo = ditta.get_char(NDT_TIPOA);
return tipo;
}
void TQuadroA::carica_record2_A3(TMask& m)
{
TLocalisamfile quaa3 (LF_QUAA3);
TDate di;
char tipo;
long ng1,ng2;
real rd1,rd2;
ng1 = 0;
ng2 = 0;
rd1 = ZERO;
rd2 = ZERO;
long codditta = m.get_long(QAF_CODDITTA);
long codip = m.get_long(F_CODIP);
quaa3.setkey(1);
quaa3.zero();
quaa3.put(QA3_CODDITTA, codditta);
quaa3.put(QA3_NPROG, 2);
quaa3.put(QA3_CODIP, codip);
if (quaa3.read() == NOERR)
{
di = quaa3.get_date(QA3_DIRAPTI);
ng1 = quaa3.get_long(QA3_NGINC15);
rd1 = quaa3.get_real(QA3_REDCOR16);
ng2 = quaa3.get_long(QA3_NGINC17);
rd2 = quaa3.get_real(QA3_REDCOR18);
}
tipo = tipo_trasformata(codditta);
if (tipo == 'F')
{
m.hide(F_DENTRASF);
m.show(F_COGNTRASF);
m.show(F_NOMETRASF);
m.set(F_COGNTRASF, _cognome);
m.set(F_NOMETRASF, _nome);
}
else
if (tipo == 'G')
{
m.show(F_DENTRASF);
m.hide(F_COGNTRASF);
m.hide(F_NOMETRASF);
m.set(F_DENTRASF, _cognome);
}
m.set(F_NPROG_2, 2);
m.set(F_DIRAPTI_2, di);
m.set(F_NGINC15_2, ng1);
m.set(F_REDCOR16_2, rd1);
m.set(F_NGINC17_2, ng2);
m.set(F_REDCOR18_2, rd2);
}
void TQuadroA::init_query_mode(TMask& m)
{
m.set(QAF_ANNODIC, _anno_dic);
if (_tipoq == '3')
{
_soc_trasf = is_societa_trasformata(m);
if (_soc_trasf)
carica_record2_A3(m);
}
if (_tipoq != '3')
{
// forza il ricalcolo dell'ultimo numero disponibile
TString16 dummy(m.get(QAF_NPROG));
if (dummy.not_empty())
setta_nprog(m.field(QAF_NPROG));
}
m.send_key(K_SHIFT+K_CTRL+'h', -1); // nasconde (hide) group 1 - Scelta ANAGR
m.send_key(K_SHIFT+K_CTRL+'s', -2); // abilita (show) group 2 - Ricerca su DATI PERC
}
void TQuadroA::init_query_insert_mode(TMask& m)
{
m.set(QAF_ANNODIC, _anno_dic);
m.send_key(K_SHIFT+K_CTRL+'h', -2); // group 3 Nasconde ricerca su PERC
m.send_key(K_SHIFT+K_CTRL+'s', -1); // group 1 Ricerca su ANAGR
}
void TQuadroA::init_modify_mode(TMask& m)
{
if (_tipoq == '3')
{
_codditta = m.get_long(QAF_CODDITTA);
_codip = m.get_long(F_CODIP);
_soc_trasf = is_societa_trasformata(m);
if (_soc_trasf)
{
carica_record2_A3(m);
m.enable_page(1);
}
else
m.disable_page(1);
}
}
void TQuadroA::init_insert_mode(TMask& m)
{
if (_tipoq == '3')
{
_codditta = m.get_long(QAF_CODDITTA);
_codip = m.get_long(F_CODIP);
_soc_trasf = is_societa_trasformata(m);
if (_soc_trasf)
{
carica_record2_A3(m);
m.enable_page(1);
}
else
m.disable_page(1);
}
}
int quadriA_A3(int argc, char* argv[])
{
const char tipo = toupper(*argv[2]);
const char* title = "";
TQuadroA a(tipo);
switch (tipo)
{
case 'A':
title = "Quadro A";
break;
case '1':
title = "Quadro A1";
break;
case '2':
title = "Quadro A2";
break;
case '3':
title = "Quadro A3";
break;
default:
break;
}
a.run(argc, argv, title);
return TRUE;
}

179
m770/771200.h Executable file
View File

@ -0,0 +1,179 @@
// Campi maschere manutenzione quadro A
// 771200a.uml
#define QAF_CODDITTA 181
#define QAF_RAGDITTA 102
#define QAF_ANNODIC 103
#define F_CODIP 104
#define F_CODANAGDIP 105
#define QAF_COGNOME 106
#define QAF_NOME 107
#define F_COGNOMEDIP 182
#define F_NOMEDIP 183
#define QAF_NPROG 108
// 771200b.uml
//#define F_BASEOCC 109
#define F_DATAIR 110
#define F_DATAFR 111
#define F_CAUSA 112
#define F_DENARO 113
#define F_NATURA 114
#define F_COBBDIP21 116
#define F_COMPNETTI 117
#define F_AIEREP23 118
#define F_AMMLORDO24 119
#define F_IACOBBCD25 120
#define F_TOTIMP26 121
#define F_CCTAMMCONT 122
#define F_CCTAMNACON 123
#define F_TOTIMP29 124
#define F_ICTOTIMP30 125
#define F_DETCC 126
#define F_DETFC 127
#define F_DETAF 128
#define F_DETLD 129
#define F_DETO 130
#define F_TOTDET36 131
#define F_AMRIOT37 132
#define F_AMRIODL38 133
#define F_ECCRITRIMB 134
#define F_AMMRITDOV 135
#define F_ERSPSAN41 136
#define F_PRASSVI42 137
#define F_CONPRECO43 138
#define F_COBBDIP44 139
#define F_AMMIMP45 140
#define F_DETIMPOS46 141
#define F_RITESEG47 142
#define F_SVNASSRI48 143
#define F_AIFCSSN49 144
#define F_CFCONINPS 145
#define F_SASS95 146
#define F_CONEFF50 147
#define F_IMPVERS51 148
#define F_ISOPTAS52 149
#define F_CONTRVER53 150
#define F_ISOPTAS54 151
#define F_CNEFF55 152
#define F_RETCON56 153
#define F_IMPRIMB57 154
#define F_IMPVER58 155
#define F_INTIRPEF59 156
#define F_IMPVER60 157
#define F_INTER61 158
#define F_STSIRPEF62 159
#define F_CONRIMB63 160
#define F_CONVER64 161
#define F_INTER65 162
#define F_CONVER66 163
#define F_INTER67 164
#define F_STSCSSN68 165
#define F_SEGDICNL69 166
#define F_CIIAT 167
#define F_CIPA 168
#define F_CODCAAF 169
#define F_NUMGIORNI 170
#define F_CODFISDL 171
#define F_DENCAAF 173
#define F_CODFISCAAF 174
#define F_NISCRA 175
#define F_CODIP2 190
#define QA_RAGSOC2 191
// 771200d.uml
#define F_MESEANNO 200
#define F_IMPRIMB9 201
#define F_IMPVERS10 202
#define F_INTER11 203
#define F_IMPVERS12 204
#define F_INTER13 205
#define F_STASSA14 206
#define F_CONTRIMB15 207
#define F_CONTVERS16 208
#define F_INTER17 209
#define F_CONTVER18 210
#define F_INTER19 211
#define F_STASSA20 212
#define F_CONNEFF21 213
#define F_TIPOCONG22 214
#define F_DATARIC29 215
// 771200f.uml
#define F_IIRPEFVER8 250
#define F_IIRPEFRI9 251
#define F_PRIRPEF10 252
#define F_STASSA12 254
#define F_CONTR13 255
#define F_CONTR14 256
#define F_PRCSSN15 257
#define F_INTER16 258
#define F_STASSA17 259
#define F_VEFFCON18 260
#define F_SDNLIQ19 261
#define F_RETCON20 262
// Campi maschera 771200g.uml
#define F_CODIPQUADRO 300
#define F_BASEOCCUPA 301
// Campi maschera 771200h.uml
#define F_DIRAPTI 350
#define F_NGINC15 351
#define F_REDCOR16 352
#define F_NGINC17 353
#define F_REDCOR18 354
#define F_DIRAPTI_2 355
#define F_NGINC15_2 356
#define F_REDCOR16_2 357
#define F_NGINC17_2 358
#define F_REDCOR18_2 359
#define F_CODDITTA_2 360
#define F_CODIP_2 361
#define F_CODIP2_2 362
#define F_COGNOME_2 363
#define F_NOME_2 364
#define F_NPROG_2 365
#define F_DENTRASF 366
#define F_COGNTRASF 367
#define F_NOMETRASF 368
// Campi maschera 771200i.uml
#define F_BSE_CONSBASOCC 400
#define F_BSE_LAVDIPCIN 401
#define F_BSE_DATAINPI 402
#define F_BSE_DATAFINPI 403
//
// Modifiche 95->96
//
// Quadro A
#define QAF_AREAATT 405
#define QAF_TIPOATT 406
#define QAF_SVNSOGRIT 407
#define QAF_INCDETFC 408
#define QAF_GIODET 409
// Quadro A1
#define QA1F_ANNORIF 410
// Quadro A2
#define QA2F_CNEFF 411
#define QA2F_RETCON 412
#define QA2F_CSSNCRIMB 413
#define QA2F_CSSNCVER 414
#define QA2F_CSSNINT 415
#define QA2F_CSSNAIV 416
#define QA2F_CSSNAINT 417
#define QA2F_STCSSN 418
#define QA2F_730NLIQ 419

101
m770/771200a.uml Executable file
View File

@ -0,0 +1,101 @@
#include "771200.h"
TOOLBAR "" 0 20 0 2
#include <toolbar.h>
ENDPAGE
PAGE "MODULO 770 - Manutenzione Quadro A" -1 -1 78 21
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 1 0 ""
END
NUMBER QAF_CODDITTA 5
BEGIN
PROMPT 3 1 "Ditta "
FLAGS "GRD"
KEY 1
CHECKTYPE REQUIRED
USE LF_NDITTE KEY 1
INPUT CODDITTA QAF_CODDITTA
OUTPUT QAF_RAGDITTA RAGSOC
FIELD LF_QUAA->CODDITTA
END
STRING QAF_RAGDITTA 50
BEGIN
PROMPT 17 1 "Ragione "
FLAGS "D"
END
NUMBER QAF_ANNODIC 4
BEGIN
PROMPT 52 4 "Anno dichiarazione "
FLAGS "DR"
END
TEXT DLG_NULL
BEGIN
PROMPT 1 7 "@bDati dipendente"
END
NUMBER F_CODIP 6
BEGIN
PROMPT 80 80 ""
FLAGS "D"
FIELD LF_QUAA->CODIP
CHECKTYPE REQUIRED
KEY 1
END
NUMBER F_CODANAGDIP 6
BEGIN
PROMPT 1 8 "@bCodice "
USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#QAF_CODDITTA))
INPUT CODDITTA QAF_CODDITTA
INPUT CODIP F_CODIP
DISPLAY "Codice " CODIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT F_CODANAGDIP CODIP
OUTPUT QAF_COGNOME COGNOME
OUTPUT QAF_NOME NOME
ADD RUN 773 -1 771150a 45 "Anagrafica dipendenti"
MESSAGE COPY, F_CODIP
END
STRING QAF_COGNOME 24
BEGIN
PROMPT 25 8 ""
FLAGS "D"
END
STRING QAF_NOME 20
BEGIN
PROMPT 49 8 ""
FLAGS "D"
END
NUMBER QAF_NPROG 4
BEGIN
PROMPT 1 10 "@bNumero "
CHECKTYPE REQUIRED
USE LF_QUAA KEY 1 SELECT ((CODDITTA=#QAF_CODDITTA))
JOIN LF_DIPEND KEY 1 INTO CODIP=CODIP
INPUT CODDITTA QAF_CODDITTA
INPUT CODIP F_CODIP
INPUT NPROG QAF_NPROG
DISPLAY "Codice@10" CODIP
DISPLAY "Cognome@24" LF_DIPEND->COGNOME
DISPLAY "Nome@20" LF_DIPEND->NOME
DISPLAY "N°@4" NPROG
OUTPUT F_CODANAGDIP CODIP
OUTPUT QAF_NPROG NPROG
FIELD LF_QUAA->NPROG
KEY 1
END
ENDPAGE
ENDMASK

900
m770/771200b.uml Executable file
View File

@ -0,0 +1,900 @@
#include "771200.h"
TOOLBAR "" 0 20 0 2
#include <toolbar.h>
ENDPAGE
PAGE "MODULO 770 - Manutenzione Quadro A" -1 -1 78 21
TEXT DLG_NULL
BEGIN
PROMPT 1 1 "@bDipendente"
END
NUMBER QAF_CODDITTA 5
BEGIN
FLAGS "H"
FIELD LF_QUAA->CODDITTA
KEY 1
MESSAGE COPY,1@
END
NUMBER F_CODIP 5
BEGIN
PROMPT 17 1 ""
USE LF_DIPEND KEY 1
FIELD LF_QUAA->CODIP
INPUT CODDITTA QAF_CODDITTA
INPUT CODIP F_CODIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT QAF_COGNOME COGNOME
OUTPUT QAF_NOME NOME
CHECKTYPE REQUIRED
FLAGS "DG"
MESSAGE COPY,2@
KEY 1
END
STRING QAF_COGNOME 24
BEGIN
PROMPT 25 1 ""
FLAGS "DG"
MESSAGE COPY,3@
END
STRING QAF_NOME 20
BEGIN
PROMPT 49 1 ""
FLAGS "DG"
MESSAGE COPY,4@
END
NUMBER QAF_NPROG 4
BEGIN
PROMPT 72 1 ""
FIELD LF_QUAA->NPROG
FLAGS "DG"
KEY 1
MESSAGE COPY,5@
END
GROUPBOX DLG_NULL 78 5
BEGIN
PROMPT 1 3 "@bDati relativi al rapporto di lavoro"
END
LISTBOX QAF_AREAATT 1 22
BEGIN
PROMPT 2 4 "13 area attività "
ITEM " |"
ITEM "A|Area amministrativa"
ITEM "B|Area vendita"
ITEM "C|Area produzione"
ITEM "D|Aree non definite"
FIELD LF_QUAA->AREAATT
END
STRING QAF_TIPOATT 1
BEGIN
PROMPT 42 4 "14 tipo "
SHEET "Codice|Descrizione@70"
INPUT QAF_TIPOATT
ITEM " |"
ITEM "A|Tempo parziale"
ITEM "B|Apprendistato"
ITEM "C|Formazione lavoro"
OUTPUT QAF_TIPOATT
FIELD LF_QUAA->TIPO
END
NUMBER F_NUMGIORNI 3
BEGIN
PROMPT 55 4 "15 numero giorni "
FIELD LF_QUAA->NUMGIO
END
DATE F_DATAFR
BEGIN
PROMPT 2 5 "16 data fine rapporto "
FIELD LF_QUAA->DATAFR
END
NUMBER QAF_GIODET 3
BEGIN
PROMPT 40 5 "17 num.gio.det.lav.dip "
FIELD LF_QUAA->NUMGIODET
NUM_EXPR {(#THIS>=0)&&(#THIS<=366)}
WARNING "I giorni detrazione per lav.dip. devono essere compresi tra 0 e 366"
END
STRING F_CODFISDL 16
BEGIN
PROMPT 2 6 "18 cod.fis.prec.dat.lav. "
FIELD LF_QUAA->CFDLPREC
FLAGS "U"
VALIDATE CF_FUNC F_CODFISDL
END
NUMBER F_CAUSA 1
BEGIN
PROMPT 60 6 "19 causa "
FIELD LF_QUAA->CAUSA
SHEET "Codice|Descrizione@70"
INPUT F_CAUSA
ITEM " |Niente"
ITEM "1|Fusione (anche per incorporazione)"
ITEM "2|Scissione"
ITEM "3|Conferimento o cessione a titolo oneroso"
ITEM "4|Esercizio della facolta' prevista da art.23, comma 7, D.P.R. 600/73"
ITEM "5|Altro"
OUTPUT F_CAUSA
END
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 1 8 "@bCompensi lordi, stipendi, pensioni ecc."
END
NUMBER F_DENARO 15
BEGIN
PROMPT 2 9 "20 in denaro "
FIELD LF_QUAA->DENARO
PICTURE "."
END
NUMBER F_NATURA 15
BEGIN
PROMPT 45 9 "21 in natura "
FIELD LF_QUAA->NATURA
PICTURE "."
END
NUMBER F_COBBDIP21 15
BEGIN
PROMPT 2 11 "22 contr.obb.car. dip. "
HELP "Contributi obbligatori a carico del dipendente"
FIELD LF_QUAA->COBBDIP
PICTURE "."
END
NUMBER F_COMPNETTI 15
BEGIN
PROMPT 45 11 "23 compensi netti"
FIELD LF_QUAA->COMPNETTI
PICTURE "."
END
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 1 13 "@bIndennita' e assegni ex Art.48, C.4 e 5, T.U.I.R."
END
NUMBER F_AMMLORDO24 15
BEGIN
PROMPT 2 14 "24 ammontare lordo "
FIELD LF_QUAA->AMMLORDO
PICTURE "."
END
NUMBER F_IACOBBCD25 15
BEGIN
PROMPT 39 14 "25 contr.obb.car. dip. "
FIELD LF_QUAA->IACOBBCD
PICTURE "."
HELP "Contributi obbligatori a carico del dipendente"
END
NUMBER QAF_SVNSOGRIT 15
BEGIN
PROMPT 2 15 "26 som.v.non sog.rit."
FIELD LF_QUAA->NORIT
PICTURE "."
END
NUMBER F_TOTIMP26 15
BEGIN
PROMPT 39 15 "27 totale imponibile "
FIELD LF_QUAA->TOTIMP
PICTURE "."
END
ENDPAGE
PAGE "MODULO 770 - Manutenzione Quadro A" -1 -1 78 21
TEXT DLG_NULL
BEGIN
PROMPT 1 1 "@bDipendente"
END
NUMBER QAF_CODDITTA 5
BEGIN
FLAGS "H"
GROUP 1
END
NUMBER F_CODIP 5
BEGIN
PROMPT 17 1 ""
FLAGS "DG"
GROUP 2
END
STRING QAF_COGNOME 24
BEGIN
PROMPT 25 1 ""
FLAGS "DG"
GROUP 3
END
STRING QAF_NOME 20
BEGIN
PROMPT 49 1 ""
FLAGS "DG"
GROUP 4
END
NUMBER QAF_NPROG 4
BEGIN
PROMPT 72 1 ""
FLAGS "DG"
GROUP 5
END
NUMBER F_AIEREP23 15
BEGIN
PROMPT 2 3 "28 assegni indennita' erogati da enti previdenziali "
FIELD LF_QUAA->AIENTIPREV
PICTURE "."
HELP "Assegni e indennita' erogati da enti previdenziali"
END
NUMBER F_CCTAMMCONT 15
BEGIN
PROMPT 2 4 "29 ammontare compensi corrisposti da terzi "
FIELD LF_QUAA->CCTAMMCONT
PICTURE "."
END
NUMBER F_TOTIMP29 15
BEGIN
PROMPT 2 5 "30 totale imponibile "
FIELD LF_QUAA->TOTIMP2
PICTURE "."
END
NUMBER F_ICTOTIMP30 15
BEGIN
PROMPT 2 6 "31 imposta corrispondente totale imponibile "
FIELD LF_QUAA->ICTOTIMP
PICTURE "."
HELP "Imposta corrispondente al totale imponibile"
END
NUMBER F_DETCC 15
BEGIN
PROMPT 2 7 "32 detr.coniuge carico "
FIELD LF_QUAA->DETCC
PICTURE "."
HELP "Detrazione per coniuge a carico"
END
NUMBER F_DETFC 15
BEGIN
PROMPT 41 7 "33 detr.figli carico "
FIELD LF_QUAA->DETFC
PICTURE "."
HELP "Detrazione per figli a carico"
END
NUMBER F_DETAF 15
BEGIN
PROMPT 2 8 "34 det.altri fam.carico"
FIELD LF_QUAA->DETAF
PICTURE "."
HELP "Detrazione per altri famigliari a carico"
END
NUMBER F_DETLD 15
BEGIN
PROMPT 41 8 "35 detr.lav. dipend. "
FIELD LF_QUAA->DETLD
PICTURE "."
HELP "Detrazione per lavoro dipendente"
END
NUMBER F_DETO 15
BEGIN
PROMPT 2 9 "36 detr. per oneri "
FIELD LF_QUAA->DETO
PICTURE "."
HELP "Detrazione per oneri"
END
NUMBER F_TOTDET36 15
BEGIN
PROMPT 41 9 "37 totale detrazione "
FIELD LF_QUAA->TOTDET
PICTURE "."
END
NUMBER QAF_INCDETFC 15
BEGIN
PROMPT 2 10 "38 inc.detr.figli a ca."
FIELD LF_QUAA->INCDETFC
PICTURE "."
END
NUMBER F_AMRIOT37 15
BEGIN
PROMPT 2 11 "39 ammontare delle ritenute operate da terzi"
FIELD LF_QUAA->AMRIOT
PICTURE "."
HELP "Ammontare delle ritenute operate da terzi"
END
NUMBER F_AMRIODL38 15
BEGIN
PROMPT 2 12 "40 ammontare ritenute operate datore lavoro "
FIELD LF_QUAA->AMRIODL
PICTURE "."
HELP "Ammontare delle ritenute operate dal datore di lavoro"
END
NUMBER F_ECCRITRIMB 15
BEGIN
PROMPT 2 13 "41 eccedenza delle ritenute da rimborsare "
FIELD LF_QUAA->ECCRITRIMB
PICTURE "."
HELP "Eccedenza delle ritenute da rimborsare"
END
NUMBER F_AMMRITDOV 15
BEGIN
PROMPT 2 14 "42 ammont.riten. dovute"
FIELD LF_QUAA->AMMRITDOV
PICTURE "."
HELP "Ammontare delle ritenute dovute"
END
NUMBER F_ERSPSAN41 15
BEGIN
PROMPT 41 14 "43 er.spese sanitarie"
FIELD LF_QUAA->ERSPSAN
PICTURE "."
HELP "Erogazioni per spese sanitarie, anche in forma assicurativa"
END
NUMBER F_PRASSVI42 15
BEGIN
PROMPT 2 15 "44 premi di assicurazione vita e infortuni "
FIELD LF_QUAA->PRASSVI
PICTURE "."
HELP "Premi di assicurazione vita e infortuni"
END
NUMBER F_CONPRECO43 15
BEGIN
PROMPT 2 16 "45 contributi per previdenza complementare "
FIELD LF_QUAA->CONPRECO
PICTURE "."
HELP "Contributi per previdenza complementare"
END
ENDPAGE
PAGE "MODULO 770 - Manutenzione Quadro A" -1 -1 78 21
TEXT DLG_NULL
BEGIN
PROMPT 1 1 "@bDipendente"
END
NUMBER QAF_CODDITTA 5
BEGIN
FLAGS "H"
GROUP 1
END
NUMBER F_CODIP 5
BEGIN
PROMPT 17 1 ""
FLAGS "DG"
GROUP 2
END
STRING QAF_COGNOME 24
BEGIN
PROMPT 25 1 ""
FLAGS "DG"
GROUP 3
END
STRING QAF_NOME 20
BEGIN
PROMPT 49 1 ""
FLAGS "DG"
GROUP 4
END
NUMBER QAF_NPROG 4
BEGIN
PROMPT 72 1 ""
FLAGS "DG"
GROUP 5
END
GROUPBOX DLG_NULL 78 6
BEGIN
PROMPT 1 3 "@bArretrati relativi ad anni precedenti"
END
NUMBER F_COBBDIP44 15
BEGIN
PROMPT 2 4 "46 cont.obb.carico dip."
FIELD LF_QUAA->COBBDIP2
PICTURE "."
HELP "Contributi obbligatori a carico del dipendente"
END
NUMBER F_AMMIMP45 15
BEGIN
PROMPT 41 4 "47 ammontare imponib."
FIELD LF_QUAA->AMMIMP
PICTURE "."
HELP "Ammontare imponibile"
END
NUMBER F_DETIMPOS46 15
BEGIN
PROMPT 2 5 "48 detrazioni d'imposta"
FIELD LF_QUAA->DETIMPOS
PICTURE "."
END
NUMBER F_RITESEG47 15
BEGIN
PROMPT 41 5 "49 ritenuta eseguita "
FIELD LF_QUAA->RITESEG
PICTURE "."
END
NUMBER F_SVNASSRI48 15
BEGIN
PROMPT 2 6 "50 altre somme e valori non ass.a ritenuta "
FIELD LF_QUAA->SVNASSRI
PICTURE "."
END
NUMBER F_AIFCSSN49 15
BEGIN
PROMPT 2 7 "51 ammontare imponibile ai fini del C.S.S.N."
FIELD LF_QUAA->AIFCSSN
PICTURE "."
HELP "Ammontare imponibile ai fini del C.S.S.N."
END
TEXT DLG_NULL
BEGIN
PROMPT 1 9 "@bVERSAMENTI E RIMBORSI CONSEGUENTI ALL'ASSISTENZA FISCALE "
END
GROUPBOX DLG_NULL 0 3
BEGIN
PROMPT 1 10 "@bAssistenza 1995"
END
STRING F_CONEFF50 1
BEGIN
PROMPT 2 11 "52 conguagli non effettuati nel 95 "
FIELD LF_QUAA->CONEFF
SHEET "Codice|Descrizione@85"
INPUT F_CONEFF50
ITEM " |Niente"
ITEM "A|Cessazione del rapporto di lavoro"
ITEM "B|Aspettativa senza retribuzione"
ITEM "C|Decesso"
ITEM "D|Richiesta di minore secondo acconto"
ITEM "E|Retribuzione insufficiente"
ITEM "F|Nel caso di situazioni per le quali dovrebbero essere indicati piu' codici"
OUTPUT F_CONEFF50
END
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 1 13 "@bSeconda rata acconto IRPEF 1995"
END
NUMBER F_IMPVERS51 15
BEGIN
PROMPT 2 14 "53 imposta vers. "
FIELD LF_QUAA->IMPVERS
PICTURE "."
END
NUMBER F_ISOPTAS52 15
BEGIN
PROMPT 37 14 "54 interessi "
FIELD LF_QUAA->INTERE
PICTURE "."
END
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 1 16 "@bSeconda rata acconto C.S.S.N. 1995"
END
NUMBER F_CONTRVER53 15
BEGIN
PROMPT 2 17 "55 contr. versato"
FIELD LF_QUAA->CSSN95CV
PICTURE "."
END
NUMBER F_ISOPTAS54 15
BEGIN
PROMPT 37 17 "56 interessi "
FIELD LF_QUAA->INTERE2
PICTURE "."
END
ENDPAGE
PAGE "MODULO 770 - Manutenzione Quadro A" -1 -1 78 21
TEXT DLG_NULL
BEGIN
PROMPT 1 1 "@bDipendente"
END
NUMBER QAF_CODDITTA 5
BEGIN
FLAGS "H"
GROUP 1
END
NUMBER F_CODIP 5
BEGIN
PROMPT 17 1 ""
FLAGS "DG"
GROUP 2
END
STRING QAF_COGNOME 24
BEGIN
PROMPT 25 1 ""
FLAGS "DG"
GROUP 3
END
STRING QAF_NOME 20
BEGIN
PROMPT 49 1 ""
FLAGS "DG"
GROUP 4
END
NUMBER QAF_NPROG 4
BEGIN
PROMPT 72 1 ""
FLAGS "DG"
GROUP 5
END
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 1 3 "@bAssistenza 1996"
END
STRING F_CNEFF55 1
BEGIN
PROMPT 2 4 "57 conguagli n/eff.assist.95 "
FIELD LF_QUAA->CNEFF
HELP "Conguagli non effettuati relativi all'assistenza 1995"
SHEET "Codice|Descrizione@85"
INPUT F_CNEFF55
ITEM " |Niente"
ITEM "A|Cessazione del rapporto di lavoro"
ITEM "B|Aspettativa senza retribuzione"
ITEM "C|Decesso"
ITEM "D|Richiesta di minore secondo acconto"
ITEM "E|Retribuzione insufficiente"
ITEM "F|Nel caso di situazioni per le quali dovrebbero essere indicati piu' codici"
ITEM "G|Rimborso non effettuato o rimborso effettuato parzialmente"
OUTPUT F_CNEFF55
END
STRING F_RETCON56 1
BEGIN
PROMPT 37 4 "58 rettifica conguaglio "
FIELD LF_QUAA->RETCON
SHEET "Codice|Descrizione@65"
INPUT F_RETCON56
ITEM " | "
ITEM "A|Rettifica da parte dei sostituti o dei CAAF degli importi da conguagliare indicati nei mod.730-3,4 e già consegnati entro il 15.5.96 (per il primo numero d'ordine)"
ITEM "B|Rettifica da parte dei sostituti o dei CAAF degli importi da conguagliare indicati nei mod.730-3,4 e già consegnati entro il 15.5.96 (per il primo numero d'ordine)"
ITEM "C|Conguaglio a seguito di rettifica di una precedente comunicazione tardivamente pervenuta al sostituto"
ITEM "D|Conguaglio a seguito di rettifica di una precedente comunicazione tempestivamente perventuta al sostituto ma per la quale non è stato effettuato il conguaglio nel mese di giugno"
ITEM "E|Conguaglio tardivo per mod.730-4 pervenuto tardivamente"
ITEM "F|Conguaglio tardivo per causa dipendente dal sostituto d'imposta"
OUTPUT F_RETCON56
FLAGS "U"
END
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 1 6 "@bSaldo IRPEF per il 1995"
END
NUMBER F_IMPRIMB57 15
BEGIN
PROMPT 2 7 "59 impo. rimborsata "
FIELD LF_QUAA->IMPRIMB
PICTURE "."
END
NUMBER F_IMPVER58 15
BEGIN
PROMPT 44 7 "60 imposta versata"
FIELD LF_QUAA->IMPVER
PICTURE "."
END
NUMBER F_INTIRPEF59 15
BEGIN
PROMPT 2 8 "61 interessi "
FIELD LF_QUAA->INTIRPEF
PICTURE "."
HELP "Interessi IRPEF"
END
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 1 10 "@bPrima rata acconto IRPEF per il 1996"
END
TEXT DLG_NULL
BEGIN
PROMPT 2 11 "62 impo. versata "
GROUP 6
END
TEXT DLG_NULL
BEGIN
PROMPT 44 11 "63 interessi "
GROUP 7
END
NUMBER F_IMPVER60 15
BEGIN
//PROMPT 2 11 "Imposta versata "
PROMPT 23 11 ""
FIELD LF_QUAA->IMPVER2
PICTURE "."
END
NUMBER F_INTER61 15
BEGIN
// PROMPT 44 11 "Interessi "
PROMPT 61 11 ""
FIELD LF_QUAA->INTER
PICTURE "."
END
TEXT DLG_NULL
BEGIN
PROMPT 2 12 "64 soprattasse saldo IRPEF per 95 e prima rata acconto del 96 "
GROUP 6
END
NUMBER F_STSIRPEF62 15
BEGIN
// PROMPT 2 12 "Soprattasse saldo IRPEF per 94 e prima rata acconto del 95 "
PROMPT 61 12 ""
FIELD LF_QUAA->STSIRPEF
PICTURE "."
HELP "Interessi IRPEF"
END
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 1 14 "@bSaldo C.S.S.N. per il 1995"
END
TEXT DLG_NULL
BEGIN
PROMPT 2 15 "65 Contr. rimborso "
GROUP 6
END
TEXT DLG_NULL
BEGIN
PROMPT 44 15 "66 Contr. versato "
GROUP 7
END
NUMBER F_CONRIMB63 15
BEGIN
PROMPT 21 15 ""
FIELD LF_QUAA->CONRIMB
PICTURE "."
END
TEXT DLG_NULL
BEGIN
PROMPT 2 16 "67 interessi "
GROUP 7
END
NUMBER F_CONVER64 15
BEGIN
PROMPT 61 15 ""
FIELD LF_QUAA->CONVER
PICTURE "."
END
TEXT DLG_NULL
BEGIN
PROMPT 2 16 "Imp. rimb. CSSN "
GROUP 7
END
NUMBER F_INTER65 15
BEGIN
// PROMPT 2 16 "Interessi "
PROMPT 21 16 ""
FIELD LF_QUAA->INTER2
PICTURE "."
END
ENDPAGE
PAGE "MODULO 770 - Manutenzione Quadro A" -1 -1 78 21
TEXT DLG_NULL
BEGIN
PROMPT 1 1 "@bDipendente"
END
NUMBER QAF_CODDITTA 5
BEGIN
FLAGS "H"
GROUP 1
END
NUMBER F_CODIP 5
BEGIN
PROMPT 17 1 ""
FLAGS "DG"
GROUP 2
END
STRING QAF_COGNOME 24
BEGIN
PROMPT 25 1 ""
FLAGS "DG"
GROUP 3
END
STRING QAF_NOME 20
BEGIN
PROMPT 49 1 ""
FLAGS "DG"
GROUP 4
END
NUMBER QAF_NPROG 4
BEGIN
PROMPT 72 1 ""
FLAGS "DG"
GROUP 5
END
GROUPBOX DLG_NULL 78 7
BEGIN
PROMPT 1 3 "@bPrima rata acconto C.S.S.N. per il 1996"
END
TEXT DLG_NULL
BEGIN
PROMPT 2 4 "68 contr. versato "
GROUP 6
END
NUMBER F_CONVER66 15
BEGIN
// PROMPT 2 4 "Contributo versato "
PROMPT 21 4 ""
FIELD LF_QUAA->CONVER2
PICTURE "."
END
TEXT DLG_NULL
BEGIN
PROMPT 44 4 "69 interessi "
GROUP 6
END
NUMBER F_INTER67 15
BEGIN
// PROMPT 44 4 "Interessi "
PROMPT 61 4 ""
FIELD LF_QUAA->INTER3
PICTURE "."
END
NUMBER F_STSCSSN68 15
BEGIN
PROMPT 2 5 "70 Soprattasse saldo C.S.S.N. 94 e prima rata acconto 95 "
FIELD LF_QUAA->STSCSSN70
PICTURE "."
END
NUMBER F_SEGDICNL69 2
BEGIN
PROMPT 2 6 "71 Mod.730/95 non liquidabile "
FIELD LF_QUAA->M730NLIQ
SHEET "Codice|Descrizione@65"
INPUT F_SEGDICNL69
ITEM " |Niente"
ITEM "01|Errata o incompleta compilazione dei dati anagrafici e di residenza del dichiarante"
ITEM "02|Errata o incompleta compilazione dei dati del coniuge e familiari a carico"
ITEM "03|Errata o incompleta compilazione dei dati anagrafici e di residenza del coniuge"
ITEM "04|Errata o incompleta dichiarazione del quadro A Mod.730/96 del dichiarante"
ITEM "05|Errata o incompleta dichiarazione del quadro A Mod.730/96 del coniuge"
ITEM "06|Errata o incompleta dichiarazione del quadro B Mod.730/96 del dichiarante"
ITEM "07|Errata o incompleta dichiarazione del quadro B Mod.730/96 del coniuge"
ITEM "08|Errata o incompleta dichiarazione del quadro C Mod.730/96 del dichiarante"
ITEM "09|Errata o incompleta dichiarazione del quadro D Mod.730/96 del dichiarante"
ITEM "10|Errata o incompleta dichiarazione del quadro E Mod.730/96 del dichiarante"
ITEM "11|Errata o incompleta dichiarazione del quadro E Mod.730/96 del coniuge"
ITEM "12|Errata o incompleta dichiarazione del quadro F Mod.730/96 del dichiarante"
ITEM "13|Errata o incompleta dichiarazione del quadro F Mod.730/96 del coniuge"
OUTPUT F_SEGDICNL69
END
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 1 10 "@bDati identificativi del C.A.A.F che ha prestato assistenza "
END
NUMBER F_CODCAAF 5
BEGIN
PROMPT 2 11 "Codice "
FIELD LF_QUAA->CODCAAF
USE %CAF
CHECKTYPE NORMAL
INPUT CODTAB F_CODCAAF
DISPLAY "Codice" CODTAB
DISPLAY "Denominazione@50" S0
DISPLAY "N.ro iscrizione" I1
DISPLAY "Codice fiscale@16" S1
OUTPUT F_CODCAAF CODTAB
OUTPUT F_DENCAAF S0
OUTPUT F_NISCRA I1
OUTPUT F_CODFISCAAF S1
END
STRING F_DENCAAF 50
BEGIN
PROMPT 26 11 ""
FLAGS "DU"
END
STRING F_CODFISCAAF 16
BEGIN
PROMPT 2 12 "72 Cod.fiscale "
FLAGS "D"
END
NUMBER F_NISCRA 5
BEGIN
PROMPT 50 12 "74 N.iscrizione albo "
FLAGS "D"
END
ENDPAGE
ENDMASK

103
m770/771200c.uml Executable file
View File

@ -0,0 +1,103 @@
#include "771200.h"
TOOLBAR "" 0 20 0 2
#include <toolbar.h>
ENDPAGE
PAGE "MODULO 770 - Manutenzione Quadro A1" -1 -1 78 21
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 1 0 ""
END
NUMBER QAF_CODDITTA 5
BEGIN
PROMPT 3 1 "Ditta "
FLAGS "GRD"
KEY 1
CHECKTYPE REQUIRED
USE LF_NDITTE KEY 1
INPUT CODDITTA QAF_CODDITTA
OUTPUT QAF_RAGDITTA RAGSOC
FIELD LF_QUAA1->CODDITTA
END
STRING QAF_RAGDITTA 50
BEGIN
PROMPT 17 1 "Ragione "
FLAGS "D"
END
NUMBER QAF_ANNODIC 4
BEGIN
PROMPT 52 4 "Anno dichiarazione "
FLAGS "DR"
END
TEXT DLG_NULL
BEGIN
PROMPT 1 7 "@bDati dipendente"
END
NUMBER F_CODIP 6
BEGIN
PROMPT 80 80 ""
FLAGS "D"
FIELD LF_QUAA1->CODIP
CHECKTYPE REQUIRED
KEY 1
END
NUMBER F_CODANAGDIP 6
BEGIN
PROMPT 1 8 "@bCodice "
USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#QAF_CODDITTA))
INPUT CODDITTA QAF_CODDITTA
INPUT CODIP F_CODIP
DISPLAY "Codice " CODIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT F_CODANAGDIP CODIP
OUTPUT QAF_COGNOME COGNOME
OUTPUT QAF_NOME NOME
// CHECKTYPE REQUIRED
ADD RUN 773 -1 771150a 45 "Anagrafica dipendenti"
MESSAGE COPY, F_CODIP
// FIELD LF_QUAA1->CODIP
// KEY 1
END
STRING QAF_COGNOME 24
BEGIN
PROMPT 25 8 ""
FLAGS "D"
END
STRING QAF_NOME 20
BEGIN
PROMPT 49 8 ""
FLAGS "D"
END
NUMBER QAF_NPROG 4
BEGIN
PROMPT 1 10 "@bNumero "
CHECKTYPE REQUIRED
USE LF_QUAA1 KEY 1 SELECT ((CODDITTA=#QAF_CODDITTA))
JOIN LF_DIPEND KEY 1 INTO CODIP=CODIP
INPUT CODDITTA QAF_CODDITTA
INPUT CODIP F_CODIP
INPUT NPROG QAF_NPROG
DISPLAY "Codice@10" CODIP
DISPLAY "Cognome@24" LF_DIPEND->COGNOME
DISPLAY "Nome@20" LF_DIPEND->NOME
DISPLAY "N°@4" NPROG
OUTPUT F_CODANAGDIP CODIP
OUTPUT QAF_NPROG NPROG
FIELD LF_QUAA1->NPROG
KEY 1
END
ENDPAGE
ENDMASK

306
m770/771200d.uml Executable file
View File

@ -0,0 +1,306 @@
#include "771200.h"
TOOLBAR "" 0 20 0 2
#include <toolbar.h>
ENDPAGE
PAGE "MODULO 770 - Manutenzione Quadro A1" -1 -1 78 21
TEXT DLG_NULL
BEGIN
PROMPT 1 1 "@bDipendente"
END
NUMBER QAF_CODDITTA 5
BEGIN
FLAGS "H"
FIELD LF_QUAA1->CODDITTA
KEY 1
MESSAGE COPY,1@
END
NUMBER F_CODIP 5
BEGIN
PROMPT 17 1 ""
USE LF_DIPEND KEY 1
FIELD LF_QUAA1->CODIP
INPUT CODDITTA QAF_CODDITTA
INPUT CODIP F_CODIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT QAF_COGNOME COGNOME
OUTPUT QAF_NOME NOME
CHECKTYPE REQUIRED
FLAGS "DG"
MESSAGE COPY,2@
KEY 1
END
STRING QAF_COGNOME 24
BEGIN
PROMPT 25 1 ""
FLAGS "DG"
MESSAGE COPY,3@
END
STRING QAF_NOME 20
BEGIN
PROMPT 49 1 ""
FLAGS "DG"
MESSAGE COPY,4@
END
NUMBER QAF_NPROG 4
BEGIN
PROMPT 72 1 ""
FIELD LF_QUAA1->NPROG
FLAGS "DG"
KEY 1
MESSAGE COPY,5@
END
LISTBOX F_MESEANNO 9
BEGIN
PROMPT 2 3 "8 Periodo di riferimento "
FLAGS "M"
FIELD LF_QUAA1->MESERIF
END
TEXT QA1F_ANNORIF
BEGIN
PROMPT 44 3 "1995"
FLAGS "D"
FIELD LF_QUAA1->ANNORIF
END
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 1 4 "@bSaldo IRPEF per il 1994"
END
NUMBER F_IMPRIMB9 15
BEGIN
PROMPT 2 5 "9 Imposta rimbors. "
FIELD LF_QUAA1->IMPRIMB9
PICTURE "."
END
NUMBER F_IMPVERS10 15
BEGIN
PROMPT 45 5 "10 Imposta ver. "
FIELD LF_QUAA1->IMPVERS10
PICTURE "."
END
NUMBER F_INTER11 15
BEGIN
PROMPT 2 6 "11 Interessi "
FIELD LF_QUAA1->INTER11
PICTURE "."
END
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 1 8 "@bPrima rata acconto IRPEF per il 1995"
END
NUMBER F_IMPVERS12 15
BEGIN
PROMPT 2 9 "12 Imposta versata "
FIELD LF_QUAA1->IMPVERS12
PICTURE "."
END
NUMBER F_INTER13 15
BEGIN
PROMPT 45 9 "13 Interessi "
FIELD LF_QUAA1->INTER13
PICTURE "."
END
NUMBER F_STASSA14 15
BEGIN
PROMPT 2 10 "14 Soprattassa su IRPEF saldo 94 e prima rata acconto 95 "
FIELD LF_QUAA1->STASSA14
PICTURE "."
END
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 1 12 "@bSaldo C.S.S.N. per il 1994"
END
NUMBER F_CONTRIMB15 15
BEGIN
PROMPT 2 13 "15 Cont. a rimborso"
FIELD LF_QUAA1->CONTRIMB15
PICTURE "."
HELP "Contributo a rimborso"
END
NUMBER F_CONTVERS16 15
BEGIN
PROMPT 45 13 "16 Cont.versato "
FIELD LF_QUAA1->CONTVERS16
PICTURE "."
HELP "Contributo versato"
END
NUMBER F_INTER17 15
BEGIN
PROMPT 2 14 "17 Interessi "
FIELD LF_QUAA1->INTER17
PICTURE "."
END
ENDPAGE
PAGE "MODULO 770 - Manutenzione Quadro A" -1 -1 78 21
TEXT DLG_NULL
BEGIN
PROMPT 1 1 "@bDipendente"
END
NUMBER QAF_CODDITTA 5
BEGIN
FLAGS "H"
GROUP 1
END
NUMBER F_CODIP 5
BEGIN
PROMPT 17 1 ""
FLAGS "DG"
GROUP 2
END
STRING QAF_COGNOME 24
BEGIN
PROMPT 25 1 ""
FLAGS "DG"
GROUP 3
END
STRING QAF_NOME 20
BEGIN
PROMPT 49 1 ""
FLAGS "DG"
GROUP 4
END
NUMBER QAF_NPROG 4
BEGIN
PROMPT 72 1 ""
FLAGS "DG"
GROUP 5
END
GROUPBOX DLG_NULL 78 6
BEGIN
PROMPT 1 3 "@bPrima rata acconto C.S.S.N. per il 1995"
END
NUMBER F_CONTVER18 15
BEGIN
PROMPT 2 4 "18 Contributo vers."
FIELD LF_QUAA1->CONTVER18
PICTURE "."
END
NUMBER F_INTER19 15
BEGIN
PROMPT 45 4 "19 Interessi "
FIELD LF_QUAA1->INTER19
PICTURE "."
END
NUMBER F_STASSA20 15
BEGIN
PROMPT 2 5 "20 Soprattassa su C.S.S.N. saldo 94 e prima rata acconto 95"
FIELD LF_QUAA1->STASSA20
PICTURE "."
END
STRING F_CONNEFF21 1
BEGIN
PROMPT 2 6 "21 Cong. n/effet. "
FIELD LF_QUAA1->CONNEFF21
HELP "Conguagli non effettuati"
SHEET "Codice|Descrizione@85"
INPUT F_CONNEFF21
ITEM " |Niente"
ITEM "A|Cessazione del rapporto di lavoro"
ITEM "B|Aspettativa senza retribuzione"
ITEM "C|Decesso"
ITEM "D|Richiesta di minore secondo acconto"
ITEM "E|Retribuzione insufficiente"
ITEM "F|Nel caso di situazioni per le quali dovrebbero essere indicati piu' codici"
ITEM "G|Rimborso non effettuato o rimborso effettuato parzialmente"
OUTPUT F_CONNEFF21
FLAGS "U"
END
STRING F_TIPOCONG22 1
BEGIN
PROMPT 45 6 "22 Tipo cong. "
FIELD LF_QUAA1->TIPOCONG22
SHEET "Codice|Descrizione@155"
INPUT F_TIPOCONG22
ITEM " |Niente"
ITEM "R|conguaglio tardivo derivante da Mod.730/93 rettificativo ovvero conguaglio conseguente a comunicazione tardiva di Mod.730/94 rettificativo"
ITEM "S|Conguaglio tardivo derivante da comunicazione Mod.730/94 pervenuta entro i termini"
ITEM "T|Conguaglio tardivo derivante da Mod.730/93 ovvero conguaglio conseguente a comunicazione tardiva di Mod.730/94"
ITEM "U|Conguaglio conseguente ad incapienza della retribuzione corrisposta nei periodi di paga precedenti ovvero insufficienza del monte ritenute e/o contributi"
OUTPUT F_TIPOCONG22
FLAGS "U"
END
DATE F_DATARIC29
BEGIN
PROMPT 2 7 "Data ricezione Modello 730-5 "
FIELD LF_QUAA1->DATARIC26
END
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 1 9 "@bDati identificativi del C.A.A.F che ha prestato assistenza "
END
NUMBER F_CODCAAF 5
BEGIN
PROMPT 2 10 "Codice "
FIELD LF_QUAA1->CODCAAF
USE %CAF
CHECKTYPE NORMAL
INPUT CODTAB F_CODCAAF
DISPLAY "Codice" CODTAB
DISPLAY "Denominazione@50" S0
DISPLAY "N.ro iscrizione" I1
DISPLAY "Codice fiscale@16" S1
OUTPUT F_CODCAAF CODTAB
OUTPUT F_DENCAAF S0
OUTPUT F_NISCRA I1
OUTPUT F_CODFISCAAF S1
END
STRING F_DENCAAF 50
BEGIN
PROMPT 26 10 ""
FLAGS "DU"
END
STRING F_CODFISCAAF 16
BEGIN
PROMPT 2 11 "23 Cod.fiscale "
FLAGS "D"
END
NUMBER F_NISCRA 5
BEGIN
PROMPT 50 11 "25 N.iscrizione albo "
FLAGS "D"
END
ENDPAGE
ENDMASK

100
m770/771200e.uml Executable file
View File

@ -0,0 +1,100 @@
#include "771200.h"
TOOLBAR "" 0 20 0 2
#include <toolbar.h>
ENDPAGE
PAGE "MODULO 770 - Manutenzione Quadro A2" -1 -1 78 21
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 1 0 ""
END
NUMBER QAF_CODDITTA 5
BEGIN
PROMPT 3 1 "Ditta "
FLAGS "GRD"
KEY 1
CHECKTYPE REQUIRED
USE LF_NDITTE KEY 1
INPUT CODDITTA QAF_CODDITTA
OUTPUT QAF_RAGDITTA RAGSOC
FIELD LF_QUAA2->CODDITTA
END
STRING QAF_RAGDITTA 50
BEGIN
PROMPT 17 1 "Ragione "
FLAGS "D"
END
NUMBER QAF_ANNODIC 4
BEGIN
PROMPT 52 4 "Anno dichiarazione "
FLAGS "DR"
END
TEXT DLG_NULL
BEGIN
PROMPT 1 7 "@bDati dipendente"
END
NUMBER F_CODIP 6
BEGIN
PROMPT 80 80 ""
FLAGS "D"
FIELD LF_QUAA2->CODIP
CHECKTYPE REQUIRED
KEY 1
END
NUMBER F_CODANAGDIP 6
BEGIN
PROMPT 1 8 "@bCodice "
USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#QAF_CODDITTA))
INPUT CODDITTA QAF_CODDITTA
INPUT CODIP F_CODIP
DISPLAY "Codice " CODIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT F_CODANAGDIP CODIP
OUTPUT QAF_COGNOME COGNOME
OUTPUT QAF_NOME NOME
ADD RUN 773 -1 771150a 45 "Anagrafica dipendenti"
MESSAGE COPY, F_CODIP
END
STRING QAF_COGNOME 24
BEGIN
PROMPT 25 8 ""
FLAGS "D"
END
STRING QAF_NOME 20
BEGIN
PROMPT 49 8 ""
FLAGS "D"
END
NUMBER QAF_NPROG 4
BEGIN
PROMPT 1 10 "@bNumero "
CHECKTYPE REQUIRED
USE LF_QUAA2 KEY 1 SELECT ((CODDITTA=#QAF_CODDITTA))
JOIN LF_DIPEND KEY 1 INTO CODIP=CODIP
INPUT CODDITTA QAF_CODDITTA
INPUT CODIP F_CODIP
INPUT NPROG QAF_NPROG
DISPLAY "Codice@10" CODIP
DISPLAY "Cognome@24" LF_DIPEND->COGNOME
DISPLAY "Nome@20" LF_DIPEND->NOME
DISPLAY "N°@4" NPROG
OUTPUT F_CODANAGDIP CODIP
OUTPUT QAF_NPROG NPROG
FIELD LF_QUAA2->NPROG
KEY 1
END
ENDPAGE
ENDMASK

411
m770/771200f.uml Executable file
View File

@ -0,0 +1,411 @@
#include "771200.h"
TOOLBAR "" 0 20 0 2
#include <toolbar.h>
ENDPAGE
PAGE "MODULO 770 - Manutenzione Quadro A2" -1 -1 78 21
TEXT DLG_NULL
BEGIN
PROMPT 1 1 "@bDipendente"
END
NUMBER QAF_CODDITTA 5
BEGIN
FLAGS "H"
FIELD LF_QUAA2->CODDITTA
KEY 1
MESSAGE COPY,1@
END
NUMBER F_CODIP 5
BEGIN
PROMPT 17 1 ""
USE LF_DIPEND KEY 1
FIELD LF_QUAA2->CODIP
INPUT CODDITTA QAF_CODDITTA
INPUT CODIP F_CODIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT QAF_COGNOME COGNOME
OUTPUT QAF_NOME NOME
CHECKTYPE REQUIRED
FLAGS "DG"
MESSAGE COPY,2@
KEY 1
END
STRING QAF_COGNOME 24
BEGIN
PROMPT 25 1 ""
FLAGS "DG"
MESSAGE COPY,3@
END
STRING QAF_NOME 20
BEGIN
PROMPT 49 1 ""
FLAGS "DG"
MESSAGE COPY,4@
END
NUMBER QAF_NPROG 4
BEGIN
PROMPT 72 1 ""
FIELD LF_QUAA2->NPROG
FLAGS "DG"
KEY 1
MESSAGE COPY,5@
END
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 1 3 "@bASSISTENZA 1995 "
END
STRING QA2F_CNEFF 1
BEGIN
PROMPT 2 4 "8 Conguagli non effettuati "
FIELD LF_QUAA2->CONEFF
HELP "Conguagli non effettuati relativi all'assistenza 1995"
SHEET "Codice|Descrizione@85"
INPUT QA2F_CNEFF
ITEM " |Niente"
ITEM "A|Cessazione del rapporto di lavoro"
ITEM "B|Decesso"
ITEM "C|Richiesta di minore secondo acconto"
ITEM "D|Retribuzione insufficiente"
ITEM "E|Nel caso di situazioni per le quali dovrebbero essere indicati piu' codici"
ITEM "F|Rimborso non effettuato o rimborso effettuato parzialmente"
OUTPUT QA2F_CNEFF
END
STRING QA2F_RETCON 1
BEGIN
PROMPT 38 4 "9 Rettifica conguaglio "
FIELD LF_QUAA2->RETCON
SHEET "Codice|Descrizione@65"
INPUT QA2F_RETCON
ITEM " | "
ITEM "A|Rettifica da parte dei sostituti o dei CAAF degli importi da conguagliare indicati nei mod.730-3,4 e già consegnati entro il 15.5.95 (per il primo numero d'ordine)"
ITEM "B|Rettifica da parte dei sostituti o dei CAAF degli importi da conguagliare indicati nei mod.730-3,4 e già consegnati entro il 15.5.95 (per il primo numero d'ordine)"
ITEM "C|Conguaglio tardivamente effettuato nel mese di luglio"
OUTPUT QA2F_RETCON
FLAGS "U"
END
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 1 6 "@bSALDO IRPEF PER IL 1994 "
END
TEXT DLG_NULL
BEGIN
PROMPT 2 7 "10 Imposta rimborsata "
GROUP 6
END
TEXT DLG_NULL
BEGIN
PROMPT 2 7 "11 Imposta versata "
GROUP 7
END
NUMBER F_IIRPEFVER8 15
BEGIN
PROMPT 21 7 ""
FIELD LF_QUAA2->SIRPEFRIMB
PICTURE "."
END
TEXT DLG_NULL
BEGIN
PROMPT 41 7 "12 Interessi "
GROUP 6
END
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 1 10 "@bPRIMA RATA ACCONTO IRPEF PER IL 1995 "
END
TEXT DLG_NULL
BEGIN
PROMPT 41 7 "13 Imposta versata "
GROUP 7
END
NUMBER F_IIRPEFRI9 15
BEGIN
PROMPT 61 7 ""
FIELD LF_QUAA2->VIRPEF
PICTURE "."
END
TEXT DLG_NULL
BEGIN
PROMPT 2 8 "14 Interessi "
GROUP 6
END
/*
TEXT DLG_NULL
BEGIN
PROMPT 2 8 "1a rata acc.IRPEF96 "
GROUP 7
END
*/
NUMBER F_INTER11 15
BEGIN
PROMPT 21 8 ""
FIELD LF_QUAA2->INTIRPEF
PICTURE "."
END
TEXT DLG_NULL
BEGIN
PROMPT 2 11 "13 Imposta versata "
GROUP 6
END
TEXT DLG_NULL
BEGIN
PROMPT 2 11 "14 Interessi "
GROUP 7
END
NUMBER F_PRIRPEF10 15
BEGIN
// PROMPT 2 11 "Imposta versata "
PROMPT 21 11 ""
FIELD LF_QUAA2->AIRPEFIV
PICTURE "."
END
TEXT DLG_NULL
BEGIN
PROMPT 41 11 "Interessi "
GROUP 6
END
TEXT DLG_NULL
BEGIN
PROMPT 41 11 "Imp.vers/tratt CSSN"
GROUP 7
END
NUMBER F_INTER11 15
BEGIN
// PROMPT 41 11 "Interessi "
PROMPT 61 11 ""
FIELD LF_QUAA2->AIRPEFINT
PICTURE "."
END
TEXT DLG_NULL
BEGIN
PROMPT 2 13 "15 Soprattasse IRPEF saldo 94 e prima rata acc.95 "
GROUP 6
END
NUMBER F_STASSA12 15
BEGIN
PROMPT 61 13 ""
FIELD LF_QUAA2->STASSA15
PICTURE "."
END
TEXT DLG_NULL
BEGIN
PROMPT 2 13 "Imp. rimb. CSSN "
GROUP 7
END
ENDPAGE
PAGE "MODULO 770 - Manutenzione Quadro A2" -1 -1 78 21
TEXT DLG_NULL
BEGIN
PROMPT 1 1 "@bDipendente"
END
NUMBER QAF_CODDITTA 5
BEGIN
FLAGS "H"
GROUP 1
END
NUMBER F_CODIP 5
BEGIN
PROMPT 17 1 ""
FLAGS "DG"
GROUP 2
END
STRING QAF_COGNOME 24
BEGIN
PROMPT 25 1 ""
FLAGS "DG"
GROUP 3
END
STRING QAF_NOME 20
BEGIN
PROMPT 49 1 ""
FLAGS "DG"
GROUP 4
END
NUMBER QAF_NPROG 4
BEGIN
PROMPT 72 1 ""
FLAGS "DG"
GROUP 5
END
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 1 4 "@bSALDO C.S.S.N. PER IL 1994 "
END
TEXT DLG_NULL
BEGIN
PROMPT 2 5 "16 Cont.a rimborso "
GROUP 6
END
TEXT DLG_NULL
BEGIN
PROMPT 2 5 "17 Cont. versato "
GROUP 7
END
NUMBER QA2F_CSSNCRIMB 15
BEGIN
PROMPT 21 5 ""
FIELD LF_QUAA2->CONTR16
PICTURE "."
END
TEXT DLG_NULL
BEGIN
PROMPT 41 5 "18 Interessi "
GROUP 6
END
TEXT DLG_NULL
BEGIN
PROMPT 41 5 "2a rata acc.CSSN 96"
GROUP 7
END
NUMBER QA2F_CSSNCVER 15
BEGIN
// PROMPT 41 5 "Contr. versato "
PROMPT 61 5 ""
FIELD LF_QUAA2->CONTRVER
PICTURE "."
END
NUMBER QA2F_CSSNINT 15
BEGIN
PROMPT 2 6 "Interessi "
FIELD LF_QUAA2->INTER18
PICTURE "."
END
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 1 8 "@bPRIMA RATA ACCONTO C.S.S.N. PER IL 1995 "
END
NUMBER QA2F_CSSNAIV 15
BEGIN
PROMPT 2 9 "Imposta versata "
FIELD LF_QUAA2->CONTV19
PICTURE "."
END
NUMBER QA2F_CSSNAINT 15
BEGIN
PROMPT 41 9 "Interessi "
FIELD LF_QUAA2->INTE20
PICTURE "."
END
NUMBER QA2F_STCSSN 15
BEGIN
PROMPT 2 11 "Soprattasse su C.S.S.N. saldo 94 e prima rata acc.95 "
FIELD LF_QUAA2->SOPRAT21
PICTURE "."
END
STRING QA2F_730NLIQ 2
BEGIN
PROMPT 2 12 "22 Mod.730/95 non liquidabile "
SHEET "Codice|Descrizione@80"
INPUT QA2F_730NLIQ
ITEM "|"
ITEM "01|Errata o incompleta compilazione dei dati anagrafici e di residenza del dichiarante"
ITEM "02|Errata o incompleta compilazione dei dati del coniuge e familiari a carico"
ITEM "03|Errata o incompleta compilazione dei dati anagrafici e di residenza del coniuge"
ITEM "04|Errata o incompleta dichiarazione del quadro A Mod.730/95 del dichiarante"
ITEM "05|Errata o incompleta dichiarazione del quadro A Mod.730/95 del coniuge"
ITEM "06|Errata o incompleta dichiarazione del quadro B Mod.730/95 del dichiarante"
ITEM "07|Errata o incompleta dichiarazione del quadro B Mod.730/95 del coniuge"
ITEM "08|Errata o incompleta dichiarazione del quadro C Mod.730/95 del dichiarante"
ITEM "09|Errata o incompleta dichiarazione del quadro D Mod.730/95 del dichiarante"
ITEM "10|Errata o incompleta dichiarazione del quadro E Mod.730/95 del dichiarante"
ITEM "11|Errata o incompleta dichiarazione del quadro E Mod.730/95 del coniuge"
ITEM "12|Errata o incompleta dichiarazione del quadro F Mod.730/95 del dichiarante"
ITEM "13|Errata o incompleta dichiarazione del quadro F Mod.730/95 del coniuge"
FIELD LF_QUAA2->M730NLIQ
FLAGS "Z"
OUTPUT QA2F_730NLIQ
END
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 1 14 "@bDati identificativi del C.A.A.F che ha prestato assistenza "
END
NUMBER F_CODCAAF 5
BEGIN
PROMPT 2 15 "Codice "
FIELD LF_QUAA2->CODCAAF
USE %CAF
CHECKTYPE NORMAL
INPUT CODTAB F_CODCAAF
DISPLAY "Codice" CODTAB
DISPLAY "Denominazione@50" S0
DISPLAY "N.ro iscrizione" I1
DISPLAY "Codice fiscale@16" S1
OUTPUT F_CODCAAF CODTAB
OUTPUT F_DENCAAF S0
OUTPUT F_NISCRA I1
OUTPUT F_CODFISCAAF S1
END
STRING F_DENCAAF 50
BEGIN
PROMPT 26 15 ""
FLAGS "DU"
END
STRING F_CODFISCAAF 16
BEGIN
PROMPT 2 16 "23 Cod.fiscale "
FLAGS "D"
END
NUMBER F_NISCRA 5
BEGIN
PROMPT 50 16 "25 N.iscrizione albo "
FLAGS "D"
END
ENDPAGE
ENDMASK

118
m770/771200g.uml Executable file
View File

@ -0,0 +1,118 @@
#include "771200.h"
TOOLBAR "" 0 18 0 4
BUTTON F_BASEOCCUPA 24 2
BEGIN
PROMPT -13 -3 "~Dati Base occupazionale"
END
#include <toolbar.h>
ENDPAGE
PAGE "Manutenzione dati base occupazionale" -1 -1 78 18
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 1 0 ""
END
NUMBER QAF_CODDITTA 5
BEGIN
PROMPT 3 1 "Ditta "
FLAGS "GRD"
KEY 1
CHECKTYPE REQUIRED
USE LF_NDITTE KEY 1
INPUT CODDITTA QAF_CODDITTA
OUTPUT QAF_RAGDITTA RAGSOC
FIELD LF_QUAA3->CODDITTA
END
STRING QAF_RAGDITTA 50
BEGIN
PROMPT 17 1 "Ragione "
FLAGS "D"
END
NUMBER QAF_ANNODIC 4
BEGIN
PROMPT 52 4 "Anno dichiarazione "
FLAGS "DR"
END
TEXT DLG_NULL
BEGIN
PROMPT 1 7 "@bCodice "
END
NUMBER QAF_NPROG 1
BEGIN
PROMPT 80 80 ""
FLAGS "DG"
FIELD LF_QUAA3->NPROG
CHECKTYPE REQUIRED
KEY 1
END
NUMBER F_CODIP 5
BEGIN
PROMPT 80 80 ""
FLAGS "D"
FIELD LF_QUAA3->CODIP
CHECKTYPE REQUIRED
KEY 1
END
NUMBER F_CODANAGDIP 5
BEGIN
PROMPT 10 7 ""
USE LF_DIPEND KEY 1 SELECT (CODDITTA=#QAF_CODDITTA)
INPUT CODDITTA QAF_CODDITTA
INPUT CODIP F_CODANAGDIP
DISPLAY "Codice " CODIP
DISPLAY "Cognome@24" COGNOME
DISPLAY "Nome@20" NOME
OUTPUT F_CODANAGDIP CODIP
OUTPUT QAF_COGNOME COGNOME
OUTPUT QAF_NOME NOME
MESSAGE COPY, F_CODIP
ADD RUN 775 -0
GROUP 2
END
NUMBER F_CODIPQUADRO 5
BEGIN
PROMPT 10 7 ""
USE LF_QUAA3 KEY 1 SELECT ((CODDITTA=#QAF_CODDITTA) && (NPROG="1"))
INPUT CODDITTA QAF_CODDITTA
INPUT CODIP F_CODIPQUADRO
DISPLAY "Codice" CODIP
DISPLAY "N.ro" NPROG
DISPLAY "Inizio rapporto" DIRAPTI
DISPLAY "gg.incremento" NGINC15
DISPLAY "Reddito corrisposto" REDCOR16
DISPLAY "gg.incremento" NGINC17
DISPLAY "Reddito corrisposto" REDCOR18
OUTPUT F_CODIPQUADRO CODIP
MESSAGE COPY, F_CODIP
ADD RUN BA4 -1
//FLAGS "HP"
FLAGS "H"
GROUP 1
END
STRING QAF_COGNOME 24
BEGIN
PROMPT 21 7 ""
FLAGS "D"
END
STRING QAF_NOME 20
BEGIN
PROMPT 45 7 ""
FLAGS "D"
END
ENDPAGE
ENDMASK

223
m770/771200h.uml Executable file
View File

@ -0,0 +1,223 @@
#include "771200.h"
TOOLBAR "" 0 19 0 3
#include <toolbar.h>
ENDPAGE
PAGE "Quadro A3" -1 -1 78 18
TEXT DLG_NULL
BEGIN
PROMPT 1 1 "@bDipendente"
END
NUMBER QAF_CODDITTA 5
BEGIN
FLAGS "HG"
FIELD LF_QUAA3->CODDITTA
KEY 1
END
NUMBER F_CODIP 5
BEGIN
PROMPT 17 1 ""
FIELD LF_QUAA3->CODIP
MESSAGE COPY,F_CODIP2
FLAGS "DG"
KEY 1
MESSAGE COPY,1@
END
NUMBER F_CODIP2 5
BEGIN
USE LF_DIPEND KEY 1
INPUT CODDITTA QAF_CODDITTA
INPUT CODIP F_CODIP
DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC
OUTPUT QAF_COGNOME COGNOME
OUTPUT QAF_NOME NOME
CHECKTYPE REQUIRED
FLAGS "HG"
END
STRING QAF_COGNOME 24
BEGIN
PROMPT 25 1 ""
FLAGS "DG"
MESSAGE COPY,2@
END
STRING QAF_NOME 20
BEGIN
PROMPT 49 1 ""
FLAGS "DG"
MESSAGE COPY,3@
END
NUMBER QAF_NPROG 1
BEGIN
PROMPT 80 80 ""
FLAGS "DG"
FIELD LF_QUAA3->NPROG
END
DATE F_DIRAPTI
BEGIN
PROMPT 1 4 "8 Data inizio rapporto a tempo indeterminato "
FIELD LF_QUAA3->DIRAPTI
END
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 0 6 "@bDATI DAL 1/1/95 A FINE PERIODO D'IMPOSTA"
END
NUMBER F_NGINC15 3
BEGIN
PROMPT 1 7 "9 Num. giorni in incremento "
FIELD LF_QUAA3->NGINC15
END
NUMBER F_REDCOR16 15
BEGIN
PROMPT 1 8 "10 Reddito corrisposto "
FIELD LF_QUAA3->REDCOR16
PICTURE "."
END
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 0 10 "@bDATI DA INIZIO SUCCESSIVO PERIODO D'IMPOSTA FINO AL 31/12/95"
END
NUMBER F_NGINC17 3
BEGIN
PROMPT 1 11 "11 Num. giorni in incremento"
FIELD LF_QUAA3->NGINC17
END
NUMBER F_REDCOR18 15
BEGIN
PROMPT 1 12 "12 Reddito corrisposto "
FIELD LF_QUAA3->REDCOR18
PICTURE "."
END
ENDPAGE
PAGE "MODULO 770 - Manutenzione Quadro A" -1 -1 78 21
TEXT DLG_NULL
BEGIN
PROMPT 1 1 "@bDipendente"
END
NUMBER F_CODDITTA_2 5
BEGIN
FLAGS "HG"
KEY 1
END
NUMBER F_CODIP_2 5
BEGIN
PROMPT 17 1 ""
MESSAGE COPY,F_CODIP2
FLAGS "DG"
KEY 1
GROUP 1
END
NUMBER F_CODIP2_2 5
BEGIN
USE LF_DIPEND KEY 1
INPUT CODDITTA QAF_CODDITTA
INPUT CODIP F_CODIP
DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC
OUTPUT QAF_COGNOME COGNOME
OUTPUT QAF_NOME NOME
CHECKTYPE REQUIRED
FLAGS "HG"
END
STRING F_COGNOME_2 24
BEGIN
PROMPT 25 1 ""
FLAGS "DG"
GROUP 2
END
STRING F_NOME_2 20
BEGIN
PROMPT 49 1 ""
FLAGS "DG"
GROUP 3
END
NUMBER F_NPROG_2 1
BEGIN
PROMPT 80 80 ""
FLAGS "DG"
END
TEXT DLG_NULL
BEGIN
PROMPT 1 3 "@bSocieta' trasformata "
END
STRING F_DENTRASF 40
BEGIN
PROMPT 25 3 ""
FLAGS "D"
END
STRING F_COGNTRASF 30
BEGIN
PROMPT 25 3 ""
FLAGS "D"
END
STRING F_NOMETRASF 20
BEGIN
PROMPT 56 3 ""
FLAGS "D"
END
DATE F_DIRAPTI_2
BEGIN
PROMPT 1 5 "8 Data inizio rapporto a tempo indeterminato "
END
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 0 7 "@bDATI DAL 1/1/95 A FINE PERIODO D'IMPOSTA"
END
NUMBER F_NGINC15_2 3
BEGIN
PROMPT 1 8 "9 Num. giorni in incremento "
END
NUMBER F_REDCOR16_2 15
BEGIN
PROMPT 1 9 "10 Reddito corrisposto "
PICTURE "."
END
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 0 11 "@bDATI DA INIZIO SUCCESSIVO PERIODO D'IMPOSTA FINO AL 31/12/95"
END
NUMBER F_NGINC17_2 3
BEGIN
PROMPT 1 12 "11 Num. giorni in incremento"
END
NUMBER F_REDCOR18_2 15
BEGIN
PROMPT 1 13 "12 Reddito corrisposto "
PICTURE "."
END
ENDPAGE
ENDMASK

63
m770/771200i.uml Executable file
View File

@ -0,0 +1,63 @@
#include "771200.h"
TOOLBAR "" 0 20 0 2
#include <toolbar.h>
ENDPAGE
PAGE "MODULO 770 - Manutenzione Quadro A" -1 -1 78 21
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 1 0 ""
END
NUMBER QAF_CODDITTA 5
BEGIN
PROMPT 3 1 "Ditta "
FLAGS "GR"
KEY 1
CHECKTYPE REQUIRED
USE LF_NDITTE KEY 1
INPUT CODDITTA QAF_CODDITTA
OUTPUT QAF_RAGDITTA RAGSOC
FIELD LF_BASEBIS->CODDITTA
END
STRING QAF_RAGDITTA 50
BEGIN
PROMPT 20 1 ""
FLAGS "D"
END
GROUPBOX DLG_NULL 78 5
BEGIN
PROMPT 1 4 ""
END
NUMBER F_BSE_CONSBASOCC 5
BEGIN
PROMPT 2 5 "Consistenza base occupazionale "
FIELD LF_BASEBIS->CONSBASOCC
FLAGS "R"
END
NUMBER F_BSE_LAVDIPCIN 5
BEGIN
PROMPT 2 6 "Lavoratori dipendenti in mobilita' o cassa integrazione al 12/06/94 "
FIELD LF_BASEBIS->LAVDIPCIN
END
DATE F_BSE_DATAINPI
BEGIN
PROMPT 2 7 "Periodo d'imposta dal "
FIELD LF_BASEBIS->PIMPINI
END
DATE F_BSE_DATAFINPI
BEGIN
PROMPT 36 7 " al "
FIELD LF_BASEBIS->PIMPFINE
END
ENDPAGE
ENDMASK

935
m770/771230.cpp Executable file
View File

@ -0,0 +1,935 @@
// 771230.cpp - Quadri C, D, D1, E, E1, E2
#include <relapp.h>
#include <config.h>
#include <msksheet.h>
#include <sort.h>
#include <tabutil.h>
#include <progind.h>
#include "77lib.h"
#include "scperc.h"
#include "rpag.h"
#include "perc.h"
#include "prospe1.h"
#include "defmask.h"
#include "771230a.h"
#include "774200.h"
class TQuadroC_E2 : public TRelation_application
{
private:
TString _quadro; // Codice del quadro in gestione
bool _registra; // Se TRUE fa i riporti
struct righe_pag
{
char tipoa;
char codan[6];
char codcau[3];
char perc[7]; //3 + 2decimali + la virgola
real somme;
real impo;
real rite;
real comp;
bool acim;
real inps;
};
righe_pag* _rig;
TRelation* _rel;
TMask* _msk[2];
TSort* _sort;
long _codanagr;
char _tipoa, _tipoq;
int _nproga;
int _mode;
int _anno_dic; // anno dichiarazione
TLocalisamfile* _per, *_scper, *_rpag, *_qd;
TTable* _ca7;
TRiporti _rip;
int _file;
private:
static bool nprog_handler (TMask_field& f, KEY key);
static bool codanagr_handler(TMask_field& f, KEY key);
static bool genera_handler (TMask_field& f, KEY key);
static bool codditta_hnd (TMask_field& f, KEY key);
static bool setta_nprog (TMask_field& f);
static bool imponibile_hnd (TMask_field& f, KEY key);
bool QuadroC() const { return _tipoq == 'C'; }
bool QuadroD() const { return _tipoq == 'D'; }
bool QuadroD1() const { return _tipoq == '1'; }
bool QuadroE() const { return _tipoq == 'E'; }
bool QuadroE1() const { return _tipoq == '2'; }
bool QuadroE2() const { return _tipoq == '3'; }
protected:
virtual bool user_create();
virtual bool user_destroy();
virtual int rewrite(const TMask& m);
virtual int write (const TMask& m);
virtual bool remove();
virtual TRelation* get_relation() const { return _rel; }
virtual TMask* get_mask(int mode);
virtual bool changing_mask(int mode);
virtual void init_query_mode (TMask&);
virtual void init_query_insert_mode (TMask&);
virtual void on_config_change();
TMask* load_mask(int n);
bool generazione();
bool azzera_quadro();
void riempi_record(char,long,int,const real&,const real&,
const real&,const real&,const real&,bool,
const real& inps_perc);
void init_sort();
void leggi_sort(TProgind&);
TRectype& look_causali(int c);
int anno_dic() const { return _anno_dic; }
bool scrivi_dati_per(TRectype& rec);
void genera_prospetto(int,real&,real&,real&);
public:
TQuadroC_E2(char tipo);
virtual ~TQuadroC_E2() {};
};
inline TQuadroC_E2& app() { return (TQuadroC_E2&) main_app(); }
TQuadroC_E2::TQuadroC_E2(char tipo): _rel(NULL), _mode(0), _tipoq(tipo)
{
memset(_msk, 0, sizeof(_msk));
}
bool TQuadroC_E2::changing_mask(int mode)
{
if (mode == MODE_QUERY)
return _mode != MODE_QUERY;
else
return TRUE;
}
TMask* TQuadroC_E2::get_mask(int mode)
{
const int m = (mode == MODE_QUERY) ? 0 : 1;
_mode = mode;
return load_mask(m);
}
TMask* TQuadroC_E2::load_mask(int n)
{
if (_msk[n] != NULL)
return _msk[n];
TFilename name("771230");
if (n == 0)
{
switch (_tipoq)
{
case 'C':
name << 'd';
break;
case 'D':
name << 'a';
break;
case '1':
name << 'e';
break;
case 'E' :
name << 'g';
break;
case '2' :
name << 'i';
break;
case '3':
name = "77qe2a";
break;
default:
break;
}
}
else
{
switch (_tipoq)
{
case 'C':
name << 'f';
break;
case 'D':
name << 'b';
break;
case '1':
name << 'c';
break;
case 'E':
name << 'h';
break;
case '2' :
name << 'l';
break;
case '3':
name = "77qe2b";
break;
default:
break;
}
}
TMask* m = new TMask(name);
switch (n)
{
case 0:
if (m)
{
m->set_handler(F_CODDITTA, codditta_hnd);
m->set_handler(F_NPROG, nprog_handler);
m->set_handler(F_CODANAGRCOM, codanagr_handler);
m->set_handler(F_CODANAGRPERC, codanagr_handler);
if (_quadro != "E2")
m->set_handler(F_GENERA, genera_handler);
}
break;
case 1:
if (m)
{
m->set_handler(F_IMPONIBILE, imponibile_hnd);
m->set_handler(F_PERC, imponibile_hnd);
}
break;
default:
break;
}
m->disable(DLG_FINDREC);
return _msk[n] = m;
}
// Ricerca e output dell'ultimo nprog del percipiente scelto
bool TQuadroC_E2::setta_nprog(TMask_field& f)
{
long nprog = 0L;
const char tipoa = f.mask().get(F_TIPOA)[0];
const long codanagr = atol(f.get());
const long codditta = get_firm_770();
TLocalisamfile quad(app()._file);
quad.zero();
quad.put("CODDITTA", codditta);
quad.put("TIPOA", tipoa);
quad.put("CODANAGR", codanagr);
TRectype rec(quad.curr());
quad.read();
if (quad.curr() > rec)
{
f.mask().set(F_NPROG, nprog+1);
return TRUE;
}
for ( ; !quad.eof(); quad.next())
{
if (quad.curr() > rec) break;
nprog = quad.get_long("NPROG");
}
//app()._last_scheda = nprog;
f.mask().set(F_NPROG, nprog+1);
return TRUE;
}
bool TQuadroC_E2::codditta_hnd(TMask_field& f, KEY k)
{
if (k == K_TAB && !f.mask().is_running())
{
TString16 codditta; codditta << get_firm_770();
if (codditta != "0")
{
f.set(codditta);
f.check();
}
}
return TRUE;
}
bool TQuadroC_E2::imponibile_hnd(TMask_field& f, KEY k)
{
if (k == K_TAB)
{
if (f.dlg() == F_PERC)
{
real perc (f.get());
if (perc == ZERO)
{
int causale = f.mask().get_int(F_CODCAUS);
TRectype& cau = app().look_causali(causale);
real aliquota = cau.get_real("R0");
f.mask().set(F_PERC, aliquota.string());
}
}
real imponibile (f.mask().get(F_IMPONIBILE));
real aliquota (f.mask().get(F_PERC));
real importo = ZERO;
importo = imponibile * (aliquota/100);
f.mask().set(app()._tipoq == 'C' ? F_RITENUTE : F_IMPORTO, importo.string());
}
return TRUE;
}
void TQuadroC_E2::init_sort()
{
_rig = new righe_pag;
_sort = new TSort(sizeof(righe_pag));
_sort->addsortkey ((char*)&(_rig->tipoa) - (char*)&(_rig->tipoa), 1);
_sort->addsortkey ((char*)&(_rig->codan) - (char*)&(_rig->tipoa), 5);
_sort->addsortkey ((char*)&(_rig->codcau) - (char*)&(_rig->tipoa), 2);
_sort->addsortkey ((char*)&(_rig->perc) - (char*)&(_rig->tipoa), 6);
_sort->init();
}
void TQuadroC_E2::riempi_record(char t,long ca,int cc,const real& p,
const real& so,const real& im,
const real& ri,const real& co,bool acim,
const real& inps)
{
_rig->tipoa = t;
sprintf(_rig->codan, "%5ld", ca);
sprintf(_rig->codcau, "%02d", cc);
// 22.5.96 Cambiato il formato @@@,@@ con @.@@@,@@
// Ci vuole anche il punto delle migliaia se real::string() sbaglia
// a calcolare il numero di decimali.
// TString16 pp(p.string("@.@@@,@@"));
double ppd = atof(p.string());
sprintf(_rig->perc, "%.2f", ppd);
_rig->somme = so;
_rig->impo = im;
_rig->rite = ri;
_rig->comp = co;
_rig->acim = acim;
_rig->inps = inps;
_sort->sort((const char*)_rig);
}
bool TQuadroC_E2::genera_handler(TMask_field& f , KEY k)
{
if (k == K_SPACE)
{
app().generazione();
app()._registra = TRUE; // Genera i riporti alla fine
}
return TRUE;
}
TRectype& TQuadroC_E2::look_causali(int codc)
{
TString16 dep;
_ca7->zero();
dep.format("%02d", codc);
_ca7->put("CODTAB", dep);
_ca7->read();
if (_ca7->bad())
_ca7->zero();
return _ca7->curr();
}
bool TQuadroC_E2::generazione()
{
if (!yesno_box("Conferma la generazione ?"))
return FALSE;
init_sort();
TToken_string exp;
exp.add("CODDITTA=CODDITTA");
exp.add("TIPOA=TIPOA");
exp.add("CODANAGR=CODANAGR");
exp.add("NPROG=NPROG");
TRelation rel (LF_SCPERC);
rel.add(LF_RPAG, exp, 1);
TString16 filt; filt.format("CODDITTA=%ld", get_firm_770());
TCursor cur (&rel,filt,1);
azzera_quadro();
TLocalisamfile& scperc = rel.lfile();
TLocalisamfile& rpag = rel.lfile(LF_RPAG);
cur = 0L;
const long nitems = cur.items();
TProgind p(nitems ? nitems : 1, "Generazione in corso...", FALSE, TRUE, 70);
long codan, codditta;
char tipoa;
int codcaus, nprog;
TString16 qua;
TDate datapag;
real perc=ZERO,somme=ZERO,impo=ZERO,rite=ZERO,comp=ZERO,inps=ZERO;
for (; cur.pos() < nitems; ++cur)
{
p.addstatus(1);
codditta = scperc.get_long(SPR_CODDITTA);
tipoa = scperc.get(SPR_TIPOA)[0];
codan = scperc.get_long(SPR_CODANAGR);
codcaus = scperc.get_int(SPR_CODCAUS);
nprog = scperc.get_int(SPR_NPROG);
TRectype cau = look_causali(codcaus);
TString16 qua = cau.get("S1");
bool acc_imp = cau.get_bool("B0");
if (_tipoq == 'D' && qua != "D") continue;
if (_tipoq == 'C' && qua != "C") continue;
if (_tipoq == '1' && qua != "D1") continue;
if (_tipoq == 'E' && qua != "E") continue;
if (_tipoq == '2' && qua != "E1") continue;
if (cur.is_first_match(LF_RPAG))
{
TRecnotype nrec = rpag.recno();
rpag.zero();
rpag.setkey(1);
rpag.put(PAG_CODDITTA, (long)codditta);
rpag.put(PAG_TIPOA, tipoa);
rpag.put(PAG_CODANAGR, (long)codan);
rpag.put(PAG_NPROG, nprog);
TRectype recc (rpag.curr());
for (rpag.read(_isgteq); !rpag.eof() ;rpag.next())
{
TRectype rec (rpag.curr());
if (rec > recc) break;
datapag = rpag.get(PAG_DATAPAG);
if (datapag.year() != _anno_dic)
continue;
//codtrib = cau.get_int("I0");
perc = rpag.get_real(PAG_PERC);
somme = rpag.get_real(PAG_SPESA);
rite = rpag.get_real(PAG_RITENUTA);
impo = rpag.get_real(PAG_IMPONIBILE);
comp = rpag.get_real(PAG_COMPENSO);
inps = rpag.get_real(PAG_INPSPERC);
if (perc==ZERO && comp==ZERO && rite==ZERO && impo==ZERO
&& somme==ZERO)
continue;
riempi_record(tipoa,codan,codcaus,perc,somme,impo,rite,comp,acc_imp,inps);
}
rpag.readat(nrec);
}
}
_sort->endsort();
leggi_sort(p);
delete _rig;
delete _sort;
return TRUE;
}
bool TQuadroC_E2::azzera_quadro()
{
const char* title;
if (_tipoq == 'C')
title = "Azzeramento quadro C";
else
if (_tipoq == 'D')
title = "Azzeramento quadro D";
else
if (_tipoq == '1')
title = "Azzeramento quadro D1";
else
if (_tipoq == 'E')
title = "Azzeramento quadro E";
else
title = "Azzeramento quadro E1";
// Tutto cio' solo per contare gli items e far andare correttamente
// il "termometro" (sic..)
TRelation rel (_file);
TString16 filt; filt.format("CODDITTA=%ld", get_firm_770());
TCursor cur (&rel,filt,1);
// TLocalisamfile& quadro = rel.lfile();
TLocalisamfile quadro(_file);
cur = 0L;
const long nitems = cur.items();
TProgind prog(nitems, title, FALSE, TRUE);
quadro.zero();
quadro.put("CODDITTA", (long)get_firm_770());
TRectype dep(quadro.curr());
for (quadro.read(); !quadro.eof(); quadro.next())
{
prog.addstatus(1);
if (quadro.curr() > dep) break;
quadro.read(_isequal, _lock);
quadro.remove();
}
if (_tipoq == '2')
{
TLocalisamfile quadro(LF_PROSPE1);
TProgind prog(quadro.items(), "Azzeramento prospetto del quadro E1", FALSE, TRUE);
quadro.zero();
quadro.put("CODDITTA", (long)get_firm_770());
TRectype dep(quadro.curr());
for (quadro.read(); !quadro.eof(); quadro.next())
{
prog.addstatus(1);
if (quadro.curr() > dep) break;
quadro.read(_isequal, _lock);
quadro.remove();
}
}
return TRUE;
}
void TQuadroC_E2::genera_prospetto(int cau, real& comp, real& impo, real& rite)
{
TLocalisamfile pr (LF_PROSPE1);
pr.setkey(1);
pr.zero();
pr.put(PRE_CODDITTA, (long)get_firm_770());
pr.put(PRE_CODCAUS, cau);
if (pr.read() == NOERR)
{
comp += pr.get_real(PRE_COMPENSO);
impo += pr.get_real(PRE_IMPONIBILE);
rite += pr.get_real(PRE_RITENUTA);
pr.put(PRE_COMPENSO, comp);
pr.put(PRE_IMPONIBILE, impo);
pr.put(PRE_RITENUTA, rite);
pr.rewrite();
}
else
{
pr.put(PRE_CODDITTA, (long)get_firm_770());
pr.put(PRE_CODCAUS, cau);
pr.put(PRE_COMPENSO, comp);
pr.put(PRE_IMPONIBILE, impo);
pr.put(PRE_RITENUTA, rite);
pr.write();
}
}
void TQuadroC_E2::leggi_sort(TProgind& p)
{
TLocalisamfile qd(_file);
const char* buf;
TString16 keyp, key, perc, perc_p;
char tipoa, tipoa_p;
long codanag, codanag_p;
int codcaus_p, codcaus, nprog;
real tot_somme=ZERO,tot_impo=ZERO,tot_rite=ZERO,tot_comp=ZERO, rQCInps=ZERO;
real rTotQCInps = ZERO;
bool esiste_record = FALSE;
bool acc_imp = FALSE;
struct righe_pag* rp;
keyp = key = "";
nprog = 1;
tot_somme = tot_impo = tot_rite = tot_comp = ZERO;
while ((buf = _sort->retrieve()) != NULL)
{
p.addstatus(1);
esiste_record = TRUE;
rp = (struct righe_pag*)buf;
tipoa = rp->tipoa;
codanag = atol(rp->codan);
codcaus = atoi(rp->codcau);
perc = rp->perc;
acc_imp = rp->acim;
rQCInps = rp->inps;
if (QuadroE1() && !acc_imp)
{
genera_prospetto(codcaus,rp->comp,rp->impo,rp->rite);
esiste_record = FALSE;
}
else
{
key.format("%c%5ld%2d%s", tipoa, codanag, codcaus, (const char*)perc);
if (key != keyp && keyp != "")
{
qd.zero();
qd.put("CODDITTA", (long)get_firm_770());
qd.put("TIPOA", tipoa_p);
qd.put("CODANAGR", (long)codanag_p);
qd.put("CODCAUS", codcaus_p);
qd.put("NPROG", nprog++);
// 12.6.96 aggiunto contributo inps
if (QuadroC())
qd.put("CONTSSN", rQCInps);
if (QuadroD() || QuadroC())
qd.put("SOMME", tot_somme + tot_comp - tot_impo);
else
if (QuadroD1())
{
qd.put("QUOTAPRO", tot_comp - tot_impo);
qd.put("SPESEANT", tot_somme);
}
else
if (QuadroE())
qd.put("SOMME", tot_somme);
else
if (QuadroE1())
qd.put("SOMME", tot_comp);
if (QuadroE1())
qd.put("AMMONTARE", tot_impo);
else
qd.put("IMPONIBILE", tot_impo);
if (QuadroC())
qd.put("RITENUTE", tot_rite);
else
qd.put("IMPORTO", tot_rite);
qd.put("PERC", perc_p);
// if (_tipoq != 'E' && _tipoq != '2')
if (!QuadroE() && !QuadroE1())
qd.put("TOTALE", tot_comp + tot_somme);
// if (_tipoq == '2')
if (QuadroE1())
qd.put("NETTO", tot_comp - tot_rite);
else
qd.put("NETTO", tot_impo - tot_rite);
qd.write();
tot_impo = tot_somme = tot_rite = tot_comp = ZERO;
}
tot_somme += rp->somme;
tot_rite += rp->rite;
tot_impo += rp->impo;
tot_comp += rp->comp;
rTotQCInps += rQCInps;
if (tipoa_p != tipoa || codanag != codanag_p)
nprog = 1;
tipoa_p = tipoa;
codanag_p = codanag;
codcaus_p = codcaus;
perc_p = perc;
keyp.format("%c%5ld%2d%s", tipoa_p, codanag_p, codcaus_p, (const char*)perc_p);
}
} // while (retrieve() != NULL)
if (esiste_record)
{
qd.zero();
qd.put("CODDITTA", (long)get_firm_770());
qd.put("TIPOA", tipoa_p);
qd.put("CODANAGR", (long)codanag_p);
qd.put("CODCAUS", codcaus_p);
qd.put("NPROG", nprog++);
// if (_tipoq == 'D' || _tipoq == 'C')
if (QuadroD() || QuadroC())
qd.put("SOMME", tot_somme + tot_comp - tot_impo);
else
// if (_tipoq == '1')
if (QuadroD1())
{
qd.put("QUOTAPRO", tot_comp - tot_impo);
qd.put("SPESEANT", tot_somme);
}
else
// if (_tipoq == 'E')
if (QuadroE())
qd.put("SOMME", tot_somme);
else
// if (_tipoq == '2')
if (QuadroE1())
qd.put("SOMME", tot_comp);
// if (_tipoq == '2')
if (QuadroE1())
qd.put("AMMONTARE", tot_impo);
else
qd.put("IMPONIBILE", tot_impo);
// if (_tipoq == 'C')
if (QuadroC())
qd.put("RITENUTE", tot_rite);
else
qd.put("IMPORTO", tot_rite);
qd.put("PERC", perc_p);
// 12.6.96 aggiunto contributo inps
if (QuadroC())
qd.put("CONTSSN", rTotQCInps);
// if (_tipoq != 'E' && _tipoq != '2')
if (!QuadroE() && !QuadroE1())
qd.put("TOTALE", tot_comp + tot_somme);
// if (_tipoq == '2')
if (QuadroE1())
qd.put("NETTO", tot_comp - tot_rite);
else
qd.put("NETTO", tot_impo - tot_rite);
qd.write();
}
}
bool TQuadroC_E2::codanagr_handler(TMask_field& f, KEY k)
{
if (k == K_TAB && f.focusdirty())
{
TMask& m = f.mask();
const long codanagr = atol(f.get());
const char tipoa = m.get(F_TIPOA)[0];
// 12.6.96 Non lascia andare avanti se il perc. non esiste
if (!esiste_perc(tipoa, codanagr))
return f.warning_box("Percipiente inesistente");
if (app()._quadro != "E2")
f.mask().disable(F_GENERA);
TString16 dummy(f.get());
if (dummy.not_empty())
setta_nprog(f);
}
return TRUE;
}
// Passa al modo inserimento/modifica.
bool TQuadroC_E2::nprog_handler(TMask_field& f, KEY key)
{
if (!f.mask().is_running()) return TRUE;
if (key == K_TAB)
{
const int nprog = atoi(f.get());
if (nprog==0) return TRUE;
f.mask().stop_run(K_AUTO_ENTER); // entra in modo modifica (se il record che ha chiave specificata esiste gia') oppure
// inserimento (se trova che non esiste)
}
return TRUE;
}
bool TQuadroC_E2::scrivi_dati_per(TRectype& rec)
{
TLocalisamfile dati_per(LF_PERC);
const long codditta = rec.get_long("CODDITTA");
char tipoa = rec.get_char("TIPOA");
const long codanagr = rec.get_long("CODANAGR");
dati_per.zero();
dati_per.put("CODDITTA", codditta);
dati_per.put("TIPOA", tipoa);
dati_per.put("CODANAGR", codanagr);
const bool preesistente = (dati_per.read() == NOERR);
if (!preesistente)
{
dati_per.zero();
dati_per.put("CODDITTA", codditta);
dati_per.put("TIPOA", tipoa);
dati_per.put("CODANAGR", codanagr);
dati_per.write();
}
return preesistente;
}
int TQuadroC_E2::rewrite(const TMask& m)
{
m.autosave(_rel);
const int err = _rel->rewrite();
scrivi_dati_per(_rel->curr());
_registra = TRUE;
return err;
}
int TQuadroC_E2::write(const TMask& m)
{
m.autosave(_rel);
const int err = _rel->write();
scrivi_dati_per(_rel->curr());
_registra = TRUE;
return err;
}
bool TQuadroC_E2::remove()
{
_registra = TRUE;
return TRelation_application::remove();
}
bool TQuadroC_E2::user_create()
{
switch (_tipoq)
{
case 'C':
_file = LF_QUAC;
_quadro = "C";
break;
case 'D':
_file = LF_QUAD;
_quadro = "D";
break;
case '1':
_file = LF_QUAD1;
_quadro = "D1";
break;
case 'E':
_file = LF_QUAE;
_quadro = "E";
break;
case '2':
_file = LF_QUAE1;
_quadro = "E1";
break;
case '3':
_file = LF_QUAE2;
_quadro = "E2";
break;
default:
break;
}
_qd = new TLocalisamfile(_file);
_rel = new TRelation(_file);
_rpag = new TLocalisamfile(LF_RPAG);
_ca7 = new TTable ("%CA7");
set_search_field(F_CODANAGRPERC);
_registra = FALSE;
load_mask(0);
return TRUE;
}
bool TQuadroC_E2::user_destroy()
{
if (_msk[1] != NULL) delete _msk[1];
if (_msk[0] != NULL) delete _msk[0];
TString16 quadro = "";
switch (_tipoq)
{
case 'C':
quadro << "C";
break;
case 'D':
quadro << "D";
break;
case '1':
quadro << "D1";
break;
case 'E':
quadro << "E";
break;
case '2':
quadro << "E1";
break;
case '3':
quadro << "E2";
break;
default:
break;
}
if (_registra)
_rip.set(quadro);
delete _rel;
delete _qd;
delete _rpag;
delete _ca7;
return TRUE;
}
void TQuadroC_E2::on_config_change()
{
TConfig conf(CONFIG_STUDIO);
_anno_dic = (int)conf.get_long(ANNO_SEL, NULL);
}
void TQuadroC_E2::init_query_mode(TMask& m)
{
m.set(F_ANNODIC, _anno_dic);
if (_quadro != "E2")
m.enable(F_GENERA);
// forza il ricalcolo dell'ultimo numero disponibile
TString16 dummy(m.get(F_NPROG));
if (dummy.not_empty())
setta_nprog(m.field(F_NPROG));
m.send_key(K_SHIFT+K_CTRL+'h', -1); // nasconde (hide) group 1 - Scelta ANAGR
m.send_key(K_SHIFT+K_CTRL+'s', -2); // abilita (show) group 2 - Ricerca su DATI PERC
}
void TQuadroC_E2::init_query_insert_mode(TMask& m)
{
m.set(F_ANNODIC, _anno_dic);
m.send_key(K_SHIFT+K_CTRL+'h', -2); // group 3 Nasconde ricerca su PERC
m.send_key(K_SHIFT+K_CTRL+'s', -1); // group 1 Ricerca su ANAGR
}
int quadriC_E2(int argc, char* argv[])
{
const char tipo = toupper(*argv[2]);
const char* title = "Quadro D";
TQuadroC_E2 a(tipo);
switch (tipo)
{
case '1':
title = "Quadro D1";
break;
case 'C':
title = "Quadro C";
break;
case 'E':
title = "Quadro E";
break;
case '2':
title = "Quadro E1";
break;
case '3':
title = "Quadro E2";
break;
default:
break;
}
a.run(argc, argv, title);
return TRUE;
}

63
m770/771230a.h Executable file
View File

@ -0,0 +1,63 @@
#ifndef _771230A_H
#define _771230A_H
// 71230a
#define F_CODDITTA 101
#define F_RAGDITTA 102
#define F_TIPOA 103
#define F_CODANAGR 104
#define F_CODANAGRCOM 105
#define F_ANNODIC 106
#define F_RAGSOC 107
#define F_CODANAGRPERC 108
#define F_GENERA 109
#define F_RAGSOCCOM 110
#define F_RAGSOCPER 111
#define F_NPROG 112
// 71230b
#define F_CODCAUS 113
#define F_DESCRCAUS 114
#define F_CODTRIB 115
#define F_IC 116
#define F_TOTALE 117
#define F_SOMME 118
#define F_IMPONIBILE 119
#define F_PERC 120
#define F_IMPORTO 121
#define F_NETTO 122
#define F_RI 123
#define F_RA 124
#define F_QUOTAPRO 125
#define F_SPESEANT 126
#define F_TIPOAF 127
//771230f
#define F_CT 150
#define F_RITENUTE 151
//771230i.uml
#define F_PROSPETTO 155
//771230m.uml (prospetto E1)
#define F_RITENUTA 160
#define F_COMPENSO 161
#define F_CODCAUS2 162
#define F_CODANAGR2 170
#define F_RAGSOC2 171
#define F_HPERC 172
#define PE1F_CODDITTA 181
// quadro e2
#define F_ROPE 173
#define F_SOGGRIT 174
// 22.5.96 - Aggiunte per 1996
// Quadro C
#define QCF_TS 175
#define QCF_CONTSSN 176
#define QDF_CODCAUSD 178
#define QD1F_CODCAUSD1 179
#endif

181
m770/771230a.uml Executable file
View File

@ -0,0 +1,181 @@
#include "771230a.h"
TOOLBAR "" 0 18 0 4
BUTTON F_GENERA 21 2
BEGIN
PROMPT -13 -3 "~Generazione"
END
#include <toolbar.h>
ENDPAGE
PAGE "MODULO 770 - QUADRO D" -1 -1 78 18
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 1 0 ""
END
NUMBER F_CODDITTA 5
BEGIN
PROMPT 3 1 "Ditta "
FLAGS "GRD"
KEY 1
CHECKTYPE REQUIRED
USE LF_NDITTE KEY 1
INPUT CODDITTA F_CODDITTA
OUTPUT F_RAGDITTA RAGSOC
FIELD LF_QUAD->CODDITTA
END
STRING F_RAGDITTA 50
BEGIN
PROMPT 17 1 "Ragione "
FLAGS "D"
END
NUMBER F_ANNODIC 4
BEGIN
PROMPT 52 4 "Anno dichiarazione "
FLAGS "DR"
END
TEXT DLG_NULL
BEGIN
PROMPT 1 7 "@bDati percipiente"
END
LIST F_TIPOA 1 12
BEGIN
PROMPT 1 8 ""
ITEM "F|Fisica"
MESSAGE COPY,F_TIPOAF
ITEM "G|Giuridica"
MESSAGE COPY,F_TIPOAF
FIELD LF_QUAD->TIPOA
CHECKTYPE REQUIRED
KEY 1
END
LIST F_TIPOAF 1 12
BEGIN
PROMPT 1 9 ""
ITEM "F|Fisica"
ITEM "G|Giuridica"
FLAGS "H"
END
NUMBER F_CODANAGR 5
BEGIN
PROMPT 80 80 ""
FLAGS "D"
FIELD LF_QUAD->CODANAGR
CHECKTYPE REQUIRED
KEY 1
END
NUMBER F_CODANAGRPERC 5
BEGIN
PROMPT 15 8 ""
USE LF_PERC KEY 1 SELECT ((CODDITTA=#F_CODDITTA)&&(TIPOA=#F_TIPOA))
JOIN LF_ANAG TO LF_PERC KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR
INPUT CODDITTA F_CODDITTA
INPUT TIPOA F_TIPOA
INPUT CODANAGR F_CODANAGRPERC
DISPLAY "Tipo " TIPOA
DISPLAY "Codice " CODANAGR
DISPLAY "Cognome - Nome o Ragione sociale@50" LF_ANAG->RAGSOC
OUTPUT F_TIPOA TIPOA
OUTPUT F_CODANAGRPERC CODANAGR
OUTPUT F_RAGSOCPER LF_ANAG->RAGSOC
MESSAGE COPY, F_CODANAGR
//FLAGS "P"
ADD RUN 775 -0
GROUP 2
END
NUMBER F_CODANAGRCOM 5
BEGIN
PROMPT 15 8 ""
USE LF_ANAG KEY 1 SELECT (TIPOA=#F_TIPOA)
INPUT TIPOA F_TIPOA
INPUT CODANAGR F_CODANAGRCOM
DISPLAY "Tipo " TIPOA
DISPLAY "Codice " CODANAGR
DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC
OUTPUT F_TIPOA TIPOA
OUTPUT F_CODANAGRCOM CODANAGR
OUTPUT F_RAGSOCCOM RAGSOC
MESSAGE COPY, F_CODANAGR
ADD RUN BA4 -1
//FLAGS "HP"
FLAGS "H"
GROUP 1
END
STRING F_RAGSOC 50
BEGIN
PROMPT 25 8 ""
FLAGS "H"
END
STRING F_RAGSOCCOM 50
BEGIN
PROMPT 25 8 ""
USE LF_ANAG KEY 2
INPUT RAGSOC F_RAGSOCCOM
DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC
DISPLAY "Tipo" TIPOA
DISPLAY "Codice" CODANAGR
OUTPUT F_RAGSOCCOM RAGSOC
OUTPUT F_CODANAGRCOM CODANAGR
OUTPUT F_TIPOA TIPOA
//FLAGS "P"
ADD RUN BA4 -1
MESSAGE COPY, F_RAGSOC
GROUP 1
END
STRING F_RAGSOCPER 50
BEGIN
PROMPT 25 8 ""
//FLAGS "DP"
FLAGS "D"
GROUP 2
MESSAGE COPY, F_RAGSOC
END
NUMBER F_NPROG 4
BEGIN
PROMPT 1 10 "@bNumero "
CHECKTYPE REQUIRED
KEY 1
FIELD LF_QUAD->NPROG
USE LF_QUAD
JOIN LF_ANAG TO LF_QUAD KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR
INPUT CODDITTA F_CODDITTA SELECT
INPUT TIPOA F_TIPOA SELECT
INPUT CODANAGR F_CODANAGR SELECT
INPUT NPROG F_NPROG
DISPLAY "N°" NPROG
DISPLAY "Tipo" TIPOA
DISPLAY "Codice@10" CODANAGR
//DISPLAY "Ragione@50" LF_ANAG->RAGSOC
DISPLAY "Causale" CODCAUS
DISPLAY "Totale@15" TOTALE
DISPLAY "Somme n/sogg rit" SOMME
DISPLAY "Imponibile@15" IMPONIBILE
DISPLAY "Aliquota" PERC
DISPLAY "Importo@15" IMPORTO
DISPLAY "Netto corrisposto" NETTO
OUTPUT F_TIPOA TIPOA
OUTPUT F_CODANAGR CODANAGR
OUTPUT F_NPROG NPROG
END
ENDPAGE
ENDMASK

233
m770/771230b.uml Executable file
View File

@ -0,0 +1,233 @@
#include "771230a.h"
TOOLBAR "" 0 19 0 3
#include <toolbar.h>
ENDPAGE
// Lista modifiche:
// 22.5.96 Output di S2 (causale D) invece di S0 (descrizione)
PAGE "Quadro D" -1 -1 78 18
NUMBER F_CODDITTA 5
BEGIN
FLAGS "H"
FIELD LF_QUAD->CODDITTA
KEY 1
END
LIST F_TIPOA 1 12
BEGIN
PROMPT 3 0 ""
FIELD LF_QUAD->TIPOA
ITEM "F|Fisica"
ITEM "G|Giuridica"
FLAGS "D"
KEY 1
END
LIST F_TIPOAF 1 12
BEGIN
PROMPT 3 1 ""
ITEM "F|Fisica"
MESSAGE SHOW,F_IC
ITEM "G|Giuridica"
MESSAGE HIDE,F_IC|RESET,F_IC
FLAGS "HG"
END
NUMBER F_CODANAGR 5
BEGIN
PROMPT 17 0 ""
FIELD LF_QUAD->CODANAGR
MESSAGE COPY,F_CODANAGR2
FLAGS "D"
KEY 1
END
NUMBER F_CODANAGR2 5
BEGIN
USE LF_ANAG KEY 1
INPUT TIPOA F_TIPOA
INPUT CODANAGR F_CODANAGR
DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC
OUTPUT F_RAGSOC2 RAGSOC
CHECKTYPE REQUIRED
FLAGS "HG"
END
STRING F_RAGSOC2 45
BEGIN
PROMPT 24 0 ""
FLAGS "D"
END
NUMBER F_NPROG 4
BEGIN
PROMPT 71 0 ""
FIELD LF_QUAD->NPROG
FLAGS "D"
KEY 1
END
STRING F_CODCAUS 2
BEGIN
PROMPT 3 3 "Causale "
USE %CA7 SELECT ((I0!="1015")&&(S1="D"))
INPUT CODTAB F_CODCAUS
DISPLAY "Codice " CODTAB
DISPLAY "Descrizione @60" S0
DISPLAY "Causale D" S2
DISPLAY "Codice tributo" I0
DISPLAY "I.C." B1
OUTPUT F_CODCAUS CODTAB
OUTPUT F_CODTRIB I0
OUTPUT F_DESCRCAUS S2
OUTPUT QDF_CODCAUSD S2
OUTPUT F_PERC R0
CHECKTYPE REQUIRED
FLAGS "Z"
WARNING "Manca la causale"
FIELD LF_QUAD->CODCAUS
ADD RUN 773 -3 %CA7
END
STRING QDF_CODCAUSD 1
BEGIN
PROMPT 17 3 ""
FLAGS "D"
END
LISTBOX F_DESCRCAUS 55
BEGIN
PROMPT 20 3 ""
ITEM "|"
ITEM "A|Prestazione di lavoro autonomo rientranti nell'esercizio di arte o professione abituale"
ITEM "B|Per prestazioni rese da amministratori, sindaci e revisori di società, associazione ed altri enti con o senza personalità giuridica"
ITEM "C|Per prestazioni rese da collaboratori a giornali, riviste, enciclopedie e simili"
ITEM "D|Per prestazioni rese da partecipanti a collegi e commissioni"
ITEM "E|Per prestazioni rese dagli sportivi con contratto di lavoro autonomo"
ITEM "F|Per prestazioni rese nell'ambito di rapporti di collaborazione coordinata e continuativa diversi da quelli sopra elencati"
ITEM "G|Per l'utilizzazione economica da parte dell'autore o dell'inventore, di opere dell'ingegno, di brevetti industriali e di processi, formule o informazioni relativi ad esperienze acquisite in campo industriale.."
ITEM "H|A titolo di utili derivanti da contratti di associazione in partecipazione e da contratti di cointeresenza quando l'apporto è costituito esclusivamente dalla prestazione di lavoro"
ITEM "I|A titolo di utili spettanti ai soci promotori ed ai soci fondatori delle società di capitali"
ITEM "L|Per la levata di protesti cambiari da parte dei segretari comunali"
ITEM "M|Per l'utilizzazione economica da parte di soggetto diverso dall'autore o dall'inventore di opere dell'ingegno, brevetti, formule .."
ITEM "N|A titolo di indennità corrisposte per la cessazione di rapporti di collaborazione coordinata e continuativa, se il diritto all'indennità risulta da atto di data certa anteriore .."
ITEM "P|A titolo di indennità corrisposte per la cessazione da funzioni notarili"
ITEM "R|A titolo di indennità corrisposte per la cessazione di attività sportiva professionale"
ITEM "S|A titolo di indennità di trasferta o di rimborso forfetario di spese spettanti a soggetti che svolgono attività sportiva dilettantistica di cui L.25.3.86 n.80"
FLAGS "D"
END
NUMBER F_CODTRIB 4
BEGIN
PROMPT 11 4 ""
FLAGS "D"
END
GROUPBOX DLG_NULL 58 5
BEGIN
PROMPT 3 6 "@bAmmontare corrisposto"
END
TEXT DLG_NULL
BEGIN
PROMPT 5 8 "Totale"
END
NUMBER F_TOTALE 15
BEGIN
PROMPT 5 9 ""
FIELD LF_QUAD->TOTALE
PICTURE "."
FLAGS "R"
MESSAGE K_TAB,F_IMPONIBILE|K_TAB,F_IMPORTO|K_TAB,F_NETTO
END
TEXT DLG_NULL
BEGIN
PROMPT 24 7 "Somme non soggette"
END
TEXT DLG_NULL
BEGIN
PROMPT 24 8 "a ritenuta"
END
NUMBER F_SOMME 15
BEGIN
PROMPT 24 9 ""
FIELD LF_QUAD->SOMME
PICTURE "."
FLAGS "R"
MESSAGE K_TAB,F_IMPONIBILE|K_TAB,F_IMPORTO|K_TAB,F_NETTO
END
TEXT DLG_NULL
BEGIN
PROMPT 43 8 "Imponibile"
END
NUMBER F_IMPONIBILE 15
BEGIN
PROMPT 43 9 ""
FIELD LF_QUAD->IMPONIBILE
PICTURE "."
FLAGS "DR"
NUM_CALC {#F_TOTALE-#F_SOMME}
END
GROUPBOX DLG_NULL 39 5
BEGIN
PROMPT 3 11 "@bRitenute operate"
END
TEXT DLG_NULL
BEGIN
PROMPT 5 13 "Aliquota"
END
NUMBER F_PERC 6 2
BEGIN
PROMPT 5 14 ""
FIELD LF_QUAD->PERC
MESSAGE K_TAB,F_IMPORTO
PICTURE ".2"
MESSAGE K_TAB,F_IMPORTO|K_TAB,F_NETTO
END
TEXT DLG_NULL
BEGIN
PROMPT 24 13 "Importo"
END
NUMBER F_IMPORTO 15
BEGIN
PROMPT 24 14 ""
FIELD LF_QUAD->IMPORTO
PICTURE "."
FLAGS "R"
//NUM_CALC {#F_IMPONIBILE*#F_PERC/100}
MESSAGE K_TAB,F_NETTO
END
TEXT DLG_NULL
BEGIN
PROMPT 43 13 "Netto corrisposto"
END
NUMBER F_NETTO 15
BEGIN
PROMPT 43 14 ""
FIELD LF_QUAD->NETTO
PICTURE "."
FLAGS "DR"
NUM_CALC {#F_IMPONIBILE-#F_IMPORTO}
END
ENDPAGE
ENDMASK

182
m770/771230e.uml Executable file
View File

@ -0,0 +1,182 @@
#include "771230a.h"
TOOLBAR "" 0 18 0 4
BUTTON F_GENERA 21 2
BEGIN
PROMPT -13 -3 "~Generazione"
END
#include <toolbar.h>
ENDPAGE
PAGE "MODULO 770 - QUADRO D1" -1 -1 78 18
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 1 0 ""
END
NUMBER F_CODDITTA 5
BEGIN
PROMPT 3 1 "Ditta "
FLAGS "GRD"
KEY 1
CHECKTYPE REQUIRED
USE LF_NDITTE KEY 1
INPUT CODDITTA F_CODDITTA
OUTPUT F_RAGDITTA RAGSOC
FIELD LF_QUAD1->CODDITTA
END
STRING F_RAGDITTA 50
BEGIN
PROMPT 17 1 "Ragione "
FLAGS "D"
END
NUMBER F_ANNODIC 4
BEGIN
PROMPT 52 4 "Anno dichiarazione "
FLAGS "DR"
END
TEXT DLG_NULL
BEGIN
PROMPT 1 7 "@bDati percipiente"
END
LIST F_TIPOA 1 12
BEGIN
PROMPT 1 8 ""
ITEM "F|Fisica"
MESSAGE COPY,F_TIPOAF
ITEM "G|Giuridica"
MESSAGE COPY,F_TIPOAF
FIELD LF_QUAD1->TIPOA
CHECKTYPE REQUIRED
KEY 1
END
LIST F_TIPOAF 1 12
BEGIN
PROMPT 1 9 ""
ITEM "F|Fisica"
ITEM "G|Giuridica"
FLAGS "H"
END
NUMBER F_CODANAGR 5
BEGIN
PROMPT 80 80 ""
FLAGS "D"
FIELD LF_QUAD1->CODANAGR
CHECKTYPE REQUIRED
KEY 1
END
NUMBER F_CODANAGRPERC 5
BEGIN
PROMPT 15 8 ""
USE LF_PERC KEY 1 SELECT ((CODDITTA=#F_CODDITTA)&&(TIPOA=#F_TIPOA))
JOIN LF_ANAG TO LF_PERC KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR
INPUT CODDITTA F_CODDITTA
INPUT TIPOA F_TIPOA
INPUT CODANAGR F_CODANAGRPERC
DISPLAY "Tipo " TIPOA
DISPLAY "Codice " CODANAGR
DISPLAY "Cognome - Nome o Ragione sociale@50" LF_ANAG->RAGSOC
OUTPUT F_TIPOA TIPOA
OUTPUT F_CODANAGRPERC CODANAGR
OUTPUT F_RAGSOCPER LF_ANAG->RAGSOC
MESSAGE COPY, F_CODANAGR
//FLAGS "P"
ADD RUN 775 -0
GROUP 2
END
NUMBER F_CODANAGRCOM 5
BEGIN
PROMPT 15 8 ""
USE LF_ANAG KEY 1
INPUT TIPOA F_TIPOA SELECT (TIPOA=#F_TIPOA)
INPUT CODANAGR F_CODANAGRCOM
DISPLAY "Tipo " TIPOA
DISPLAY "Codice " CODANAGR
DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC
OUTPUT F_TIPOA TIPOA
OUTPUT F_CODANAGRCOM CODANAGR
OUTPUT F_RAGSOCCOM RAGSOC
MESSAGE COPY, F_CODANAGR
ADD RUN BA4 -1
//FLAGS "HP"
FLAGS "H"
GROUP 1
END
STRING F_RAGSOC 50
BEGIN
PROMPT 25 8 ""
FLAGS "H"
END
STRING F_RAGSOCCOM 50
BEGIN
PROMPT 25 8 ""
USE LF_ANAG KEY 2
INPUT RAGSOC F_RAGSOCCOM
DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC
DISPLAY "Tipo" TIPOA
DISPLAY "Codice" CODANAGR
OUTPUT F_RAGSOCCOM RAGSOC
OUTPUT F_CODANAGRCOM CODANAGR
OUTPUT F_TIPOA TIPOA
//FLAGS "P"
ADD RUN BA4 -1
MESSAGE COPY, F_RAGSOC
GROUP 1
END
STRING F_RAGSOCPER 50
BEGIN
PROMPT 25 8 ""
//FLAGS "DP"
FLAGS "D"
GROUP 2
MESSAGE COPY, F_RAGSOC
END
NUMBER F_NPROG 4
BEGIN
PROMPT 1 10 "@bNumero "
CHECKTYPE REQUIRED
KEY 1
FIELD LF_QUAD1->NPROG
USE LF_QUAD1
JOIN LF_ANAG TO LF_QUAD1 KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR
INPUT CODDITTA F_CODDITTA SELECT
INPUT TIPOA F_TIPOA SELECT
INPUT CODANAGR F_CODANAGR SELECT
INPUT NPROG F_NPROG
DISPLAY "N°" NPROG
DISPLAY "Tipo" TIPOA
DISPLAY "Codice@10" CODANAGR
//DISPLAY "Ragione@50" LF_ANAG->RAGSOC
DISPLAY "Causale" CODCAUS
DISPLAY "Totale@15" TOTALE
DISPLAY "Quota provvigioni" QUOTAPRO
DISPLAY "Spese anticipate" SPESEANT
DISPLAY "Imponibile@15" IMPONIBILE
DISPLAY "Aliquota" PERC
DISPLAY "Importo@15" IMPORTO
DISPLAY "Netto corrisposto" NETTO
OUTPUT F_TIPOA TIPOA
OUTPUT F_CODANAGR CODANAGR
OUTPUT F_NPROG NPROG
END
ENDPAGE
ENDMASK

228
m770/771230f.uml Executable file
View File

@ -0,0 +1,228 @@
#include "771230a.h"
TOOLBAR "" 0 19 0 3
#include <toolbar.h>
ENDPAGE
PAGE "Quadro C" -1 -1 78 18
NUMBER F_CODDITTA 5
BEGIN
FLAGS "H"
FIELD LF_QUAC->CODDITTA
KEY 1
END
LIST F_TIPOA 1 12
BEGIN
PROMPT 3 0 ""
FIELD LF_QUAC->TIPOA
ITEM "F|Fisica"
ITEM "G|Giuridica"
FLAGS "D"
KEY 1
END
LIST F_TIPOAF 1 12
BEGIN
PROMPT 3 1 ""
ITEM "F|Fisica"
MESSAGE SHOW,F_CT
ITEM "G|Giuridica"
MESSAGE HIDE,F_CT|RESET,F_CT
FLAGS "HG"
END
NUMBER F_CODANAGR 5
BEGIN
PROMPT 17 0 ""
FIELD LF_QUAC->CODANAGR
MESSAGE COPY,F_CODANAGR2
FLAGS "D"
KEY 1
END
NUMBER F_CODANAGR2 5
BEGIN
USE LF_ANAG KEY 1
INPUT TIPOA F_TIPOA
INPUT CODANAGR F_CODANAGR
DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC
OUTPUT F_RAGSOC2 RAGSOC
CHECKTYPE REQUIRED
FLAGS "HG"
END
STRING F_RAGSOC2 45
BEGIN
PROMPT 24 0 ""
FLAGS "D"
END
NUMBER F_NPROG 4
BEGIN
PROMPT 71 0 ""
FIELD LF_QUAC->NPROG
FLAGS "D"
KEY 1
END
STRING F_CODCAUS 2
BEGIN
PROMPT 3 3 "Causale "
USE %CA7 SELECT ((I0!="1015")&&(S1="C"))
INPUT CODTAB F_CODCAUS
DISPLAY "Codice " CODTAB
DISPLAY "Descrizione @60" S0
DISPLAY "Codice tributo" I0
DISPLAY "C.T." B2
DISPLAY "T.S." B3
OUTPUT F_CODCAUS CODTAB
OUTPUT F_CODTRIB I0
OUTPUT F_DESCRCAUS S0
OUTPUT F_CT B2
OUTPUT F_PERC R0
OUTPUT QCF_TS B3
CHECKTYPE REQUIRED
FLAGS "Z"
WARNING "Manca la causale"
FIELD LF_QUAC->CODCAUS
ADD RUN 773 -3 %CA7
END
STRING F_DESCRCAUS 58
BEGIN
PROMPT 17 3 ""
FLAGS "D"
END
NUMBER F_CODTRIB 4
BEGIN
PROMPT 11 4 ""
FLAGS "D"
END
BOOLEAN F_CT
BEGIN
PROMPT 17 4 "C.T."
FLAGS "D"
END
BOOLEAN QCF_TS
BEGIN
PROMPT 25 4 "T.S."
FLAGS "D"
END
TEXT DLG_NULL
BEGIN
PROMPT 5 7 "Ammontare"
END
TEXT DLG_NULL
BEGIN
PROMPT 5 8 "corrisposto"
END
NUMBER F_TOTALE 15
BEGIN
PROMPT 5 9 ""
FIELD LF_QUAC->TOTALE
PICTURE "."
FLAGS "R"
MESSAGE K_TAB,F_IMPONIBILE|K_TAB,F_RITENUTE|K_TAB,F_NETTO
END
TEXT DLG_NULL
BEGIN
PROMPT 24 8 "Contributi S.S.N."
END
NUMBER QCF_CONTSSN 15
BEGIN
PROMPT 24 9 ""
FIELD LF_QUAC->CONTSSN
PICTURE "."
FLAGS "R"
// MESSAGE K_TAB,F_IMPONIBILE|K_TAB,F_RITENUTE|K_TAB,F_NETTO
END
TEXT DLG_NULL
BEGIN
PROMPT 43 7 "Somme non soggette"
END
TEXT DLG_NULL
BEGIN
PROMPT 43 8 "a ritenuta"
END
NUMBER F_SOMME 15
BEGIN
PROMPT 43 9 ""
FIELD LF_QUAC->SOMME
PICTURE "."
FLAGS "R"
MESSAGE K_TAB,F_IMPONIBILE|K_TAB,F_RITENUTE|K_TAB,F_NETTO
END
TEXT DLG_NULL
BEGIN
PROMPT 61 8 "Imponibile"
END
NUMBER F_IMPONIBILE 15
BEGIN
PROMPT 61 9 ""
FIELD LF_QUAC->IMPONIBILE
PICTURE "."
FLAGS "DR"
NUM_CALC {#F_TOTALE-#F_SOMME}
END
TEXT DLG_NULL
BEGIN
PROMPT 5 12 "Aliquota"
END
NUMBER F_PERC 6 2
BEGIN
PROMPT 5 13 ""
FIELD LF_QUAC->PERC
MESSAGE K_TAB,F_RITENUTE
PICTURE ".2"
MESSAGE K_TAB,F_RITENUTE|K_TAB,F_NETTO
END
TEXT DLG_NULL
BEGIN
PROMPT 24 12 "Importo"
END
NUMBER F_RITENUTE 15
BEGIN
PROMPT 24 13 ""
FIELD LF_QUAC->RITENUTE
PICTURE "."
FLAGS "R"
MESSAGE K_TAB,F_NETTO
END
TEXT DLG_NULL
BEGIN
PROMPT 43 12 "Netto corrisposto"
END
NUMBER F_NETTO 15
BEGIN
PROMPT 43 13 ""
FIELD LF_QUAC->NETTO
PICTURE "."
FLAGS "DR"
NUM_CALC {#F_IMPONIBILE-#F_RITENUTE}
END
ENDPAGE
ENDMASK

180
m770/771230g.uml Executable file
View File

@ -0,0 +1,180 @@
#include "771230a.h"
TOOLBAR "" 0 18 0 4
BUTTON F_GENERA 21 2
BEGIN
PROMPT -13 -3 "~Generazione"
END
#include <toolbar.h>
ENDPAGE
PAGE "MODULO 770 - QUADRO E" -1 -1 78 18
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 1 0 ""
END
NUMBER F_CODDITTA 5
BEGIN
PROMPT 3 1 "Ditta "
FLAGS "GRD"
KEY 1
CHECKTYPE REQUIRED
USE LF_NDITTE KEY 1
INPUT CODDITTA F_CODDITTA
OUTPUT F_RAGDITTA RAGSOC
FIELD LF_QUAE->CODDITTA
END
STRING F_RAGDITTA 50
BEGIN
PROMPT 17 1 "Ragione "
FLAGS "D"
END
NUMBER F_ANNODIC 4
BEGIN
PROMPT 52 4 "Anno dichiarazione "
FLAGS "DR"
END
TEXT DLG_NULL
BEGIN
PROMPT 1 7 "@bDati percipiente"
END
LIST F_TIPOA 1 12
BEGIN
PROMPT 1 8 ""
ITEM "F|Fisica"
MESSAGE COPY,F_TIPOAF
ITEM "G|Giuridica"
MESSAGE COPY,F_TIPOAF
FIELD LF_QUAE->TIPOA
CHECKTYPE REQUIRED
KEY 1
END
LIST F_TIPOAF 1 12
BEGIN
PROMPT 1 9 ""
ITEM "F|Fisica"
ITEM "G|Giuridica"
FLAGS "H"
END
NUMBER F_CODANAGR 5
BEGIN
PROMPT 80 80 ""
FLAGS "D"
FIELD LF_QUAE->CODANAGR
CHECKTYPE REQUIRED
KEY 1
END
NUMBER F_CODANAGRPERC 5
BEGIN
PROMPT 15 8 ""
USE LF_PERC KEY 1 SELECT ((CODDITTA=#F_CODDITTA)&&(TIPOA=#F_TIPOA))
JOIN LF_ANAG TO LF_PERC KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR
INPUT CODDITTA F_CODDITTA
INPUT TIPOA F_TIPOA
INPUT CODANAGR F_CODANAGRPERC
DISPLAY "Tipo " TIPOA
DISPLAY "Codice " CODANAGR
DISPLAY "Cognome - Nome o Ragione sociale@50" LF_ANAG->RAGSOC
OUTPUT F_TIPOA TIPOA
OUTPUT F_CODANAGRPERC CODANAGR
OUTPUT F_RAGSOCPER LF_ANAG->RAGSOC
MESSAGE COPY, F_CODANAGR
//FLAGS "P"
ADD RUN 775 -0
GROUP 2
END
NUMBER F_CODANAGRCOM 5
BEGIN
PROMPT 15 8 ""
USE LF_ANAG KEY 1 SELECT (TIPOA=#F_TIPOA)
INPUT TIPOA F_TIPOA
INPUT CODANAGR F_CODANAGRCOM
DISPLAY "Tipo " TIPOA
DISPLAY "Codice " CODANAGR
DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC
OUTPUT F_TIPOA TIPOA
OUTPUT F_CODANAGRCOM CODANAGR
OUTPUT F_RAGSOCCOM RAGSOC
MESSAGE COPY, F_CODANAGR
ADD RUN BA4 -1
//FLAGS "HP"
FLAGS "H"
GROUP 1
END
STRING F_RAGSOC 50
BEGIN
PROMPT 25 8 ""
FLAGS "H"
END
STRING F_RAGSOCCOM 50
BEGIN
PROMPT 25 8 ""
USE LF_ANAG KEY 2
INPUT RAGSOC F_RAGSOCCOM
DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC
DISPLAY "Tipo" TIPOA
DISPLAY "Codice" CODANAGR
OUTPUT F_RAGSOCCOM RAGSOC
OUTPUT F_CODANAGRCOM CODANAGR
OUTPUT F_TIPOA TIPOA
//FLAGS "P"
ADD RUN BA4 -1
MESSAGE COPY, F_RAGSOC
GROUP 1
END
STRING F_RAGSOCPER 50
BEGIN
PROMPT 25 8 ""
//FLAGS "DP"
FLAGS "D"
GROUP 2
MESSAGE COPY, F_RAGSOC
END
NUMBER F_NPROG 4
BEGIN
PROMPT 1 10 "@bNumero "
CHECKTYPE REQUIRED
KEY 1
FIELD LF_QUAE->NPROG
USE LF_QUAE
JOIN LF_ANAG TO LF_QUAE KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR
INPUT CODDITTA F_CODDITTA SELECT
INPUT TIPOA F_TIPOA SELECT
INPUT CODANAGR F_CODANAGR SELECT
INPUT NPROG F_NPROG
DISPLAY "N°" NPROG
DISPLAY "Tipo" TIPOA
DISPLAY "Codice@10" CODANAGR
//DISPLAY "Ragione@50" LF_ANAG->RAGSOC
DISPLAY "Causale" CODCAUS
DISPLAY "Imponibile@15" IMPONIBILE
DISPLAY "Aliquota" PERC
DISPLAY "Importo@15" IMPORTO
DISPLAY "Netto corrisposto" NETTO
DISPLAY "Somme n/sogg rit" SOMME
OUTPUT F_TIPOA TIPOA
OUTPUT F_CODANAGR CODANAGR
OUTPUT F_NPROG NPROG
END
ENDPAGE
ENDMASK

185
m770/771230h.uml Executable file
View File

@ -0,0 +1,185 @@
#include "771230a.h"
TOOLBAR "" 0 19 0 3
#include <toolbar.h>
ENDPAGE
PAGE "Quadro E" -1 -1 78 18
NUMBER F_CODDITTA 5
BEGIN
FLAGS "H"
FIELD LF_QUAE->CODDITTA
KEY 1
END
LIST F_TIPOA 1 12
BEGIN
PROMPT 3 0 ""
FIELD LF_QUAE->TIPOA
ITEM "F|Fisica"
ITEM "G|Giuridica"
FLAGS "D"
KEY 1
END
LIST F_TIPOAF 1 12
BEGIN
PROMPT 3 1 ""
ITEM "F|Fisica"
ITEM "G|Giuridica"
FLAGS "HG"
END
NUMBER F_CODANAGR 5
BEGIN
PROMPT 17 0 ""
FIELD LF_QUAE->CODANAGR
MESSAGE COPY,F_CODANAGR2
FLAGS "D"
KEY 1
END
NUMBER F_CODANAGR2 5
BEGIN
USE LF_ANAG KEY 1
INPUT TIPOA F_TIPOA
INPUT CODANAGR F_CODANAGR
DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC
OUTPUT F_RAGSOC2 RAGSOC
CHECKTYPE REQUIRED
FLAGS "HG"
END
STRING F_RAGSOC2 45
BEGIN
PROMPT 24 0 ""
FLAGS "D"
END
NUMBER F_NPROG 4
BEGIN
PROMPT 71 0 ""
FIELD LF_QUAE->NPROG
FLAGS "D"
KEY 1
END
STRING F_CODCAUS 2
BEGIN
PROMPT 3 3 "Causale "
USE %CA7 SELECT ((I0!="1015")&&(S1="E"))
INPUT CODTAB F_CODCAUS
DISPLAY "Codice " CODTAB
DISPLAY "Descrizione @60" S0
DISPLAY "Codice tributo" I0
OUTPUT F_CODCAUS CODTAB
OUTPUT F_CODTRIB I0
OUTPUT F_DESCRCAUS S0
OUTPUT F_PERC R0
CHECKTYPE REQUIRED
FLAGS "Z"
WARNING "Manca la causale"
FIELD LF_QUAE->CODCAUS
ADD RUN 773 -3 %CA7
END
STRING F_DESCRCAUS 58
BEGIN
PROMPT 17 3 ""
FLAGS "D"
END
NUMBER F_CODTRIB 4
BEGIN
PROMPT 11 4 ""
FLAGS "D"
END
TEXT DLG_NULL
BEGIN
PROMPT 3 8 "Imponibile"
END
NUMBER F_IMPONIBILE 15
BEGIN
PROMPT 3 9 ""
FIELD LF_QUAE->IMPONIBILE
PICTURE "."
FLAGS "R"
MESSAGE K_TAB,F_IMPORTO|K_TAB,F_NETTO
END
GROUPBOX DLG_NULL 32 5
BEGIN
PROMPT 25 6 "@bRitenute operate"
END
TEXT DLG_NULL
BEGIN
PROMPT 27 8 "Aliquota"
END
NUMBER F_PERC 6 2
BEGIN
PROMPT 27 9 ""
FIELD LF_QUAE->PERC
MESSAGE K_TAB,F_IMPORTO
PICTURE ".2"
MESSAGE K_TAB,F_IMPORTO|K_TAB,F_NETTO
END
TEXT DLG_NULL
BEGIN
PROMPT 38 8 "Importo"
END
NUMBER F_IMPORTO 15
BEGIN
PROMPT 38 9 ""
FIELD LF_QUAE->IMPORTO
PICTURE "."
FLAGS "R"
MESSAGE K_TAB,F_NETTO
END
TEXT DLG_NULL
BEGIN
PROMPT 3 13 "Netto corrisposto"
END
NUMBER F_NETTO 15
BEGIN
PROMPT 3 14 ""
FIELD LF_QUAE->NETTO
PICTURE "."
FLAGS "DR"
NUM_CALC {#F_IMPONIBILE-#F_IMPORTO}
END
TEXT DLG_NULL
BEGIN
PROMPT 27 12 "Somme non soggette"
END
TEXT DLG_NULL
BEGIN
PROMPT 27 13 "a ritenuta"
END
NUMBER F_SOMME 15
BEGIN
PROMPT 27 14 ""
FIELD LF_QUAE->SOMME
PICTURE "."
FLAGS "R"
// MESSAGE K_TAB,F_IMPONIBILE|K_TAB,F_IMPORTO|K_TAB,F_NETTO
END
ENDPAGE
ENDMASK

188
m770/771230i.uml Executable file
View File

@ -0,0 +1,188 @@
#include "771230a.h"
TOOLBAR "" 0 18 0 4
BUTTON F_GENERA 21 2
BEGIN
PROMPT -13 -3 "~Generazione"
END
BUTTON F_PROSPETTO 21 2
BEGIN
PROMPT -23 -3 "~Prospetto"
// MESSAGE RUN,7783,771230m,89,"Prospetto del Quadro E1","E1"
MESSAGE RUN,773,-1,771230m,89,"Prospetto del Quadro E1","E1"
END
#include <toolbar.h>
ENDPAGE
PAGE "MODULO 770 - QUADRO E1" -1 -1 78 18
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 1 0 ""
END
NUMBER F_CODDITTA 5
BEGIN
PROMPT 3 1 "Ditta "
FLAGS "GRD"
KEY 1
CHECKTYPE REQUIRED
USE LF_NDITTE KEY 1
INPUT CODDITTA F_CODDITTA
OUTPUT F_RAGDITTA RAGSOC
FIELD LF_QUAE1->CODDITTA
END
STRING F_RAGDITTA 50
BEGIN
PROMPT 17 1 "Ragione "
FLAGS "D"
END
NUMBER F_ANNODIC 4
BEGIN
PROMPT 52 4 "Anno dichiarazione "
FLAGS "DR"
END
TEXT DLG_NULL
BEGIN
PROMPT 1 7 "@bDati percipiente"
END
LIST F_TIPOA 1 12
BEGIN
PROMPT 1 8 ""
ITEM "F|Fisica"
MESSAGE COPY,F_TIPOAF
ITEM "G|Giuridica"
MESSAGE COPY,F_TIPOAF
FIELD LF_QUAE1->TIPOA
CHECKTYPE REQUIRED
FLAGS "D"
KEY 1
END
LIST F_TIPOAF 1 12
BEGIN
PROMPT 1 9 ""
ITEM "F|Fisica"
ITEM "G|Giuridica"
FLAGS "H"
END
NUMBER F_CODANAGR 5
BEGIN
PROMPT 80 80 ""
FLAGS "D"
FIELD LF_QUAE1->CODANAGR
CHECKTYPE REQUIRED
KEY 1
END
NUMBER F_CODANAGRPERC 5
BEGIN
PROMPT 15 8 ""
USE LF_PERC KEY 1 SELECT ((CODDITTA=#F_CODDITTA)&&(TIPOA="F"))
JOIN LF_ANAG TO LF_PERC KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR
INPUT CODDITTA F_CODDITTA
INPUT TIPOA F_TIPOA
INPUT CODANAGR F_CODANAGRPERC
DISPLAY "Tipo " TIPOA
DISPLAY "Codice " CODANAGR
DISPLAY "Cognome - Nome o Ragione sociale@50" LF_ANAG->RAGSOC
OUTPUT F_TIPOA TIPOA
OUTPUT F_CODANAGRPERC CODANAGR
OUTPUT F_RAGSOCPER LF_ANAG->RAGSOC
MESSAGE COPY, F_CODANAGR
//FLAGS "P"
ADD RUN 775 -0
GROUP 2
END
NUMBER F_CODANAGRCOM 5
BEGIN
PROMPT 15 8 ""
USE LF_ANAG KEY 1 SELECT (TIPOA="F")
INPUT TIPOA F_TIPOA
INPUT CODANAGR F_CODANAGRCOM
DISPLAY "Tipo " TIPOA
DISPLAY "Codice " CODANAGR
DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC
OUTPUT F_TIPOA TIPOA
OUTPUT F_CODANAGRCOM CODANAGR
OUTPUT F_RAGSOCCOM RAGSOC
MESSAGE COPY, F_CODANAGR
ADD RUN BA4 -1
//FLAGS "HP"
FLAGS "H"
GROUP 1
END
STRING F_RAGSOC 50
BEGIN
PROMPT 25 8 ""
FLAGS "H"
END
STRING F_RAGSOCCOM 50
BEGIN
PROMPT 25 8 ""
USE LF_ANAG KEY 2 SELECT (TIPOA="F")
INPUT RAGSOC F_RAGSOCCOM
DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC
DISPLAY "Tipo" TIPOA
DISPLAY "Codice" CODANAGR
OUTPUT F_RAGSOCCOM RAGSOC
OUTPUT F_CODANAGRCOM CODANAGR
OUTPUT F_TIPOA TIPOA
//FLAGS "P"
ADD RUN BA4 -1
MESSAGE COPY, F_RAGSOC
GROUP 1
END
STRING F_RAGSOCPER 50
BEGIN
PROMPT 25 8 ""
//FLAGS "DP"
FLAGS "D"
GROUP 2
MESSAGE COPY, F_RAGSOC
END
NUMBER F_NPROG 4
BEGIN
PROMPT 1 10 "@bNumero "
CHECKTYPE REQUIRED
KEY 1
FIELD LF_QUAE1->NPROG
USE LF_QUAE1
JOIN LF_ANAG TO LF_QUAE1 KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR
INPUT CODDITTA F_CODDITTA SELECT
INPUT TIPOA F_TIPOA SELECT
INPUT CODANAGR F_CODANAGR SELECT
INPUT NPROG F_NPROG
DISPLAY "N°" NPROG
DISPLAY "Tipo" TIPOA
DISPLAY "Codice@10" CODANAGR
//DISPLAY "Ragione@50" LF_ANAG->RAGSOC
DISPLAY "Causale" CODCAUS
DISPLAY "Ammontare complessivo" AMMONTARE
DISPLAY "Aliquota" PERC
DISPLAY "Importo@15" IMPORTO
DISPLAY "Netto corrisposto" NETTO
DISPLAY "Somme corrisposte" SOMME
OUTPUT F_TIPOA TIPOA
OUTPUT F_CODANAGR CODANAGR
OUTPUT F_NPROG NPROG
END
ENDPAGE
ENDMASK

190
m770/771230l.uml Executable file
View File

@ -0,0 +1,190 @@
#include "771230a.h"
TOOLBAR "" 0 19 0 3
#include <toolbar.h>
ENDPAGE
PAGE "Quadro E1" -1 -1 78 18
NUMBER F_CODDITTA 5
BEGIN
FLAGS "H"
FIELD LF_QUAE1->CODDITTA
KEY 1
END
LIST F_TIPOA 1 12
BEGIN
PROMPT 3 0 ""
FIELD LF_QUAE1->TIPOA
ITEM "F|Fisica"
ITEM "G|Giuridica"
FLAGS "D"
KEY 1
END
LIST F_TIPOAF 1 12
BEGIN
PROMPT 3 1 ""
ITEM "F|Fisica"
ITEM "G|Giuridica"
FLAGS "HG"
END
NUMBER F_CODANAGR 5
BEGIN
PROMPT 17 0 ""
FIELD LF_QUAE1->CODANAGR
MESSAGE COPY,F_CODANAGR2
FLAGS "D"
KEY 1
END
NUMBER F_CODANAGR2 5
BEGIN
USE LF_ANAG KEY 1
INPUT TIPOA F_TIPOA
INPUT CODANAGR F_CODANAGR
DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC
OUTPUT F_RAGSOC2 RAGSOC
CHECKTYPE REQUIRED
FLAGS "HG"
END
STRING F_RAGSOC2 45
BEGIN
PROMPT 24 0 ""
FLAGS "D"
END
NUMBER F_NPROG 4
BEGIN
PROMPT 71 0 ""
FIELD LF_QUAE1->NPROG
FLAGS "D"
KEY 1
END
STRING F_CODCAUS 2
BEGIN
PROMPT 3 3 "Causale "
USE %CA7 SELECT ((I0!="1015")&&(S1="E1")&&(B0="X")
INPUT CODTAB F_CODCAUS
DISPLAY "Codice " CODTAB
DISPLAY "Descrizione @60" S0
DISPLAY "Codice tributo" I0
OUTPUT F_CODCAUS CODTAB
OUTPUT F_CODTRIB I0
OUTPUT F_DESCRCAUS S0
OUTPUT F_PERC R0
CHECKTYPE REQUIRED
FLAGS "Z"
WARNING "Manca la causale"
FIELD LF_QUAE1->CODCAUS
ADD RUN 773 -3 %CA7
END
STRING F_DESCRCAUS 58
BEGIN
PROMPT 17 3 ""
FLAGS "D"
END
NUMBER F_CODTRIB 4
BEGIN
PROMPT 11 4 ""
FLAGS "D"
END
TEXT DLG_NULL
BEGIN
PROMPT 5 8 "Somme corrisposte"
END
NUMBER F_SOMME 15
BEGIN
PROMPT 5 9 ""
FIELD LF_QUAE1->SOMME
PICTURE "."
FLAGS "R"
MESSAGE K_TAB,F_IMPORTO|K_TAB,F_NETTO|K_TAB,F_PERC
END
TEXT DLG_NULL
BEGIN
PROMPT 38 6 "Amm. compl. premi riscossi"
END
TEXT DLG_NULL
BEGIN
PROMPT 38 7 "sui quali le ritenute sono"
END
TEXT DLG_NULL
BEGIN
PROMPT 38 8 "state commisurate"
END
NUMBER F_IMPONIBILE 15
BEGIN
PROMPT 38 9 ""
FIELD LF_QUAE1->AMMONTARE
PICTURE "."
FLAGS "R"
MESSAGE K_TAB,F_IMPORTO|K_TAB,F_NETTO
END
GROUPBOX DLG_NULL 32 5
BEGIN
PROMPT 3 11 "@bRitenute operate"
END
TEXT DLG_NULL
BEGIN
PROMPT 5 13 "Aliquota"
END
NUMBER F_PERC 6 2
BEGIN
PROMPT 5 14 ""
FIELD LF_QUAE1->PERC
MESSAGE K_TAB,F_IMPORTO
PICTURE ".2"
MESSAGE K_TAB,F_IMPORTO|K_TAB,F_NETTO
END
TEXT DLG_NULL
BEGIN
PROMPT 16 13 "Importo"
END
NUMBER F_IMPORTO 15
BEGIN
PROMPT 16 14 ""
FIELD LF_QUAE1->IMPORTO
PICTURE "."
FLAGS "R"
MESSAGE K_TAB,F_NETTO
END
TEXT DLG_NULL
BEGIN
PROMPT 38 13 "Netto corrisposto"
END
NUMBER F_NETTO 15
BEGIN
PROMPT 38 14 ""
FIELD LF_QUAE1->NETTO
PICTURE "."
FLAGS "DR"
NUM_CALC {#F_SOMME-#F_IMPORTO}
END
ENDPAGE
ENDMASK

119
m770/771230m.uml Executable file
View File

@ -0,0 +1,119 @@
#include "pe1.h"
TOOLBAR "" 0 19 0 3
#include <toolbar.h>
ENDPAGE
PAGE "Prospetto del Quadro E1" -1 -1 78 18
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 1 0 ""
END
NUMBER PE1F_CODDITTA 5
BEGIN
PROMPT 3 1 "Ditta "
FLAGS "GRD"
KEY 1
CHECKTYPE REQUIRED
USE LF_NDITTE KEY 1
INPUT CODDITTA PE1F_CODDITTA
OUTPUT PE1F_RAGDITTA RAGSOC
FIELD LF_PROSPE1->CODDITTA
END
STRING PE1F_RAGDITTA 50
BEGIN
PROMPT 17 1 "Ragione "
FLAGS "D"
END
STRING PE1F_CODCAUS 2
BEGIN
PROMPT 3 4 "Causale "
USE LF_PROSPE1 SELECT (CODDITTA=#PE1F_CODDITTA)
JOIN %CA7 TO LF_PROSPE1 INTO CODTAB=CODCAUS
INPUT CODDITTA PE1F_CODDITTA
INPUT CODCAUS PE1F_CODCAUS
DISPLAY "Codcaus" CODCAUS
DISPLAY "Compenso@15" COMPENSO
DISPLAY "Imponibile@15" IMPONIBILE
DISPLAY "Ritenuta@15" RITENUTA
OUTPUT PE1F_CODCAUS CODCAUS
OUTPUT PE1F_DESCRCAUS %CA7->S0
OUTPUT PE1F_HPERC %CA7->R0
CHECKTYPE REQUIRED
FLAGS "Z"
FIELD LF_PROSPE1->CODCAUS
KEY 1
GROUP 8
MESSAGE COPY,PE1F_CODCAUS2
END
STRING PE1F_CODCAUS2 2
BEGIN
PROMPT 3 4 "Causale "
USE %CA7 SELECT ((I0!="1015")&&(S1="E1")&&(B0=" ")
INPUT CODTAB PE1F_CODCAUS
DISPLAY "Codice " CODTAB
DISPLAY "Descrizione @60" S0
OUTPUT PE1F_CODCAUS CODTAB
OUTPUT PE1F_DESCRCAUS S0
OUTPUT PE1F_HPERC R0
CHECKTYPE REQUIRED
FLAGS "Z"
WARNING "Manca la causale"
FIELD LF_PROSPE1->CODCAUS
ADD RUN 773 -3 %CA7
KEY 1
GROUP 9
MESSAGE COPY,PE1F_CODCAUS
END
NUMBER PE1F_HPERC 6
BEGIN
PROMPT 3 4 "Usata nel programma per calcolo ritenuta"
PICTURE ".2"
FLAGS "H"
END
STRING PE1F_DESCRCAUS 58
BEGIN
PROMPT 17 4 ""
FLAGS "D"
END
NUMBER PE1F_COMPENSO 15
BEGIN
PROMPT 3 7 "Ammontare complessivo "
FIELD LF_PROSPE1->COMPENSO
PICTURE "."
FLAGS "R"
END
TEXT DLG_NULL
BEGIN
PROMPT 3 9 "Ammontare delle somme sulle quali"
END
NUMBER PE1F_IMPONIBILE 15
BEGIN
PROMPT 3 10 "le ritenute sono state commisurate "
FIELD LF_PROSPE1->IMPONIBILE
PICTURE "."
FLAGS "R"
END
NUMBER PE1F_RITENUTA 15
BEGIN
PROMPT 3 12 "Ritenuta operata "
FIELD LF_PROSPE1->RITENUTA
PICTURE "."
FLAGS "R"
END
ENDPAGE
ENDMASK

994
m770/771231.cpp Executable file
View File

@ -0,0 +1,994 @@
// 771231.cpp - Quadri F
//
// Lista modifiche
// 12. 1.96 Controlla codcaus anche dopo che e' stato immesso (nf)
//
#include <relapp.h>
#include <config.h>
#include <msksheet.h>
#include <sort.h>
#include <tabutil.h>
#include <progind.h>
#include <defmask.h>
#include "77lib.h"
#include "scperc.h"
#include "rpag.h"
#include "perc.h"
#include "prospe1.h"
#include "774200.h"
#include "771231a.h" // F, F-1
#include "771232.h" // quadro G
#include "quadrif.h"
#include "ca7.h"
#define S_CODC 101
#define S_DESC 102
#define S_ALIQ 103
#define S_SOGG 104
#define S_ROPE 105
// Solo nel prospetto A
#define S_TACC 106
#define S_SALD 107
#define S_VECC 108
const int RIGHE_PA = 6;
HIDDEN TString80 __dep;
void ss_pack(TSheet_field& ss);
void do_output(TString& quadro, TMask& m, const bool bOutputAliq);
bool check_caus(const char* codcau);
class TQuadroF : public TRelation_application
{
private:
TRelation* _rel;
TMask* _msk;
int _anno_dic; // anno dichiarazione
long _codditta;
TLocalisamfile* _qf, *_rf;
TTable* _ca7;
TRecord_array* _prosp_a, *_prosp_b, *_prosp_c, *_prosp_d;
TRiporti _rip;
bool _registra;
char _tipo_prosp;
TString _sAliqPrec; // in set_notify per det.se cambiata aliq.
static real calcola_rope(TMask_field& f, const real& sogg, const bool force);
static bool codc_handler(TMask_field& f, KEY k);
static bool aliq_handler(TMask_field& f, KEY k);
static bool sogg_handler(TMask_field& f, KEY k);
static bool sald_handler(TMask_field& f, KEY k);
static bool vecc_handler(TMask_field& f, KEY k);
static bool tacc_handler(TMask_field& f, KEY k);
static bool eprov_handler(TMask_field& f, KEY k);
static bool ealiq_handler(TMask_field& f, KEY k);
static bool fsogg_handler(TMask_field& f, KEY k);
static bool faliq_handler(TMask_field& f, KEY k);
static bool a_notify(TSheet_field& s, int r, KEY k);
static bool b_notify(TSheet_field& s, int r, KEY k);
static bool c_notify(TSheet_field& s, int r, KEY k);
static bool d_notify(TSheet_field& s, int r, KEY k);
int salva_prosp_a(const TMask& m, bool re);
int salva_prosp_b(const TMask& m, bool re);
int salva_prosp_c(const TMask& m, bool re);
int salva_prosp_d(const TMask& m, bool re);
// const char* get_desc_cau(const char* codcau);
protected:
virtual bool user_create();
virtual bool user_destroy();
virtual int read(TMask& m);
virtual int rewrite(const TMask& m);
virtual int write (const TMask& m);
virtual bool remove();
virtual TRelation* get_relation() const { return _rel; }
virtual TMask* get_mask(int mode) { return _msk; }
virtual bool changing_mask(int mode) { return FALSE; }
virtual void init_query_mode (TMask&);
virtual void init_modify_mode (TMask&);
void init_mask (TMask&);
void fill_ss(TMask& m);
void riempi_prospetto(TMask& m, const char prosp);
int re_write(const TMask& m, bool re);
public:
TString16 _quadro, _aliq_caus;
TString80 _title, _desc_caus;
TSheet_field& sfProspA() const;
TSheet_field& sfProspB() const;
TSheet_field& sfProspC() const;
TSheet_field& sfProspD() const;
const char* taitol() { return (const char*)_title; }
TQuadroF(const char quadro='0');
virtual ~TQuadroF() {};
};
TSheet_field& TQuadroF::sfProspA() const
{
TSheet_field& s = (TSheet_field&)curr_mask().field(F_A);
return s;
}
TSheet_field& TQuadroF::sfProspB() const
{
TSheet_field& s = (TSheet_field&)curr_mask().field(F_B);
return s;
}
TSheet_field& TQuadroF::sfProspC() const
{
TSheet_field& s = (TSheet_field&)curr_mask().field(F_C);
return s;
}
TSheet_field& TQuadroF::sfProspD() const
{
TSheet_field& s = (TSheet_field&)curr_mask().field(F_D);
return s;
}
TQuadroF::TQuadroF(const char quadro)
{
_registra = FALSE;
_tipo_prosp = 'A';
switch (quadro)
{
case '0':
_quadro = "F";
_title = "Quadro F";
break;
case '1':
_quadro = "F1";
_title = "Quadro F-1";
_tipo_prosp = 'B';
break;
case '2':
_quadro = "F2";
_title = "Quadro F-2";
_tipo_prosp = 'B';
break;
default:
break;
}
}
inline TQuadroF& app() { return (TQuadroF&) main_app(); }
void TQuadroF::init_modify_mode (TMask& m)
{
init_mask(m);
m.disable(DLG_DELREC);
}
void TQuadroF::init_query_mode (TMask& m)
{
TString16 codditta; codditta << _codditta;
if (codditta != "0")
{
m.field(F_CODDITTA).set(codditta);
m.field(F_CODDITTA).check();
}
m.send_key(K_AUTO_ENTER,0);
init_mask(m);
}
void TQuadroF::init_mask (TMask& m)
{
fill_ss(m);
}
bool TQuadroF::user_create()
{
if (_quadro == "F")
{
_msk = new TMask("771231a");
_msk->disable(DLG_CANCEL); // disabilito Annulla nella toolbar
_msk->set_handler(E_PROVENTI, eprov_handler);
_msk->set_handler(E_ALI, ealiq_handler);
_msk->set_handler(F_SOGG, fsogg_handler);
_msk->set_handler(F_ALI, faliq_handler);
TSheet_field& p_a = (TSheet_field&) _msk->field(F_A);
p_a.set_notify(a_notify);
p_a.sheet_mask().set_handler(S_CODC, codc_handler);
p_a.sheet_mask().set_handler(S_ALIQ, aliq_handler);
p_a.sheet_mask().set_handler(S_SOGG, sogg_handler);
p_a.sheet_mask().set_handler(S_SALD, sald_handler);
p_a.sheet_mask().set_handler(S_VECC, vecc_handler);
p_a.sheet_mask().set_handler(S_TACC, tacc_handler);
TSheet_field& p_b = (TSheet_field&) _msk->field(F_B);
p_b.set_notify(b_notify);
p_b.sheet_mask().set_handler(S_CODC, codc_handler);
p_b.sheet_mask().set_handler(S_ALIQ, aliq_handler);
p_b.sheet_mask().set_handler(S_SOGG, sogg_handler);
TSheet_field& p_c = (TSheet_field&) _msk->field(F_C);
p_c.set_notify(c_notify);
p_c.sheet_mask().set_handler(S_CODC, codc_handler);
p_c.sheet_mask().set_handler(S_ALIQ, aliq_handler);
p_c.sheet_mask().set_handler(S_SOGG, sogg_handler);
TSheet_field& p_d = (TSheet_field&) _msk->field(F_D);
p_d.set_notify(d_notify);
p_d.sheet_mask().set_handler(S_CODC, codc_handler);
p_d.sheet_mask().set_handler(S_ALIQ, aliq_handler);
p_d.sheet_mask().set_handler(S_SOGG, sogg_handler);
_rel = new TRelation(LF_QUAF);
_rf = new TLocalisamfile(LF_RIGHEF);
_codditta = get_firm_770();
TRectype dep(_rf->curr());
dep.zero();
dep.put("CODDITTA", _codditta);
dep.put("TIPOPRO", "A");
_prosp_a = new TRecord_array(dep, "NPROG");
dep.put("TIPOPRO", "B");
_prosp_b = new TRecord_array(dep, "NPROG");
dep.put("TIPOPRO", "C");
_prosp_c = new TRecord_array(dep, "NPROG");
dep.put("TIPOPRO", "D");
_prosp_d = new TRecord_array(dep, "NPROG");
}
if (_quadro == "F1")
{
_msk = new TMask("771232a");
_msk->disable(DLG_CANCEL); // disabilito Annulla nella toolbar
TSheet_field& p_b = (TSheet_field&) _msk->field(F_B);
p_b.sheet_mask().set_handler(S_CODC, codc_handler);
p_b.sheet_mask().set_handler(S_ALIQ, aliq_handler);
p_b.sheet_mask().set_handler(S_SOGG, sogg_handler);
_rel = new TRelation(LF_QUAF1);
_rf = new TLocalisamfile(LF_RIGHEF1);
_codditta = get_firm_770();
TRectype dep(_rf->curr());
dep.zero();
dep.put("CODDITTA", _codditta);
dep.put("TIPOPRO", "B");
_prosp_b = new TRecord_array(dep, "NPROG");
}
if (_quadro == "F2")
{
_msk = new TMask("771233a");
_msk->disable(DLG_CANCEL); // disabilito Annulla nella toolbar
TSheet_field& p_b = (TSheet_field&) _msk->field(F_B);
p_b.sheet_mask().set_handler(S_CODC, codc_handler);
p_b.sheet_mask().set_handler(S_ALIQ, aliq_handler);
p_b.sheet_mask().set_handler(S_SOGG, sogg_handler);
_rel = new TRelation(LF_QUAF2);
_rf = new TLocalisamfile(LF_RIGHEF2);
_codditta = get_firm_770();
TRectype dep(_rf->curr());
dep.zero();
dep.put("CODDITTA", _codditta);
dep.put("TIPOPRO", "B");
_prosp_b = new TRecord_array(dep, "NPROG");
}
return TRUE;
}
bool TQuadroF::user_destroy()
{
delete _msk;
delete _rel;
delete _rf;
delete _prosp_b;
if (_quadro == "F")
{
delete _prosp_a;
delete _prosp_c;
delete _prosp_d;
}
if (_registra) _rip.set(_quadro);
return TRUE;
}
HIDDEN const int PROSP_RIGHE = 10;
/***********************************
const char* TQuadroF::get_desc_cau(const char* codcau)
{
TTable ca7("%ca7");
__dep = "";
ca7.zero();
ca7.put("CODTAB", codcau);
const int rc = ca7.read();
if (rc == NOERR)
__dep = ca7.get("S0");
return __dep;
}
**************************/
void TQuadroF::riempi_prospetto(TMask& m, const char prosp)
{
switch (prosp)
{
case 'A':
{
TSheet_field& ss = (TSheet_field&)m.field(F_A);
const int last_a = _prosp_a->last_row();
for (int i = 1; i <= last_a; i++)
{
TRectype& r = _prosp_a->row(i, TRUE);
TToken_string& row = ss.row(i-1);
TString16 codcau(r.get(QUF_CODCAUS));
TString descr_cau(get_desc_cau(codcau));
TString16 aliq (r.get(QUF_ALIQUOTA));
TString sogg (r.get(QUF_SOGRIT));
TString rope (r.get(QUF_ROPE));
row.add(codcau);
row.add(descr_cau);
row.add(aliq);
row.add(sogg);
row.add(rope);
// Solo se (prosp == 'A')
TString acc(r.get(QUF_ACCONTI));
TString ecc(r.get(QUF_VERSECC));
TString sal(r.get(QUF_VERSALDO));
row.add(acc);
row.add(sal);
row.add(ecc);
}
for (i = last_a; i < PROSP_RIGHE; i++)
ss.row(i);
ss.force_update();
break;
}
case 'B': {
TSheet_field& ss = (TSheet_field&)m.field(F_B);
const int last_b = _prosp_b->last_row();
for (int i = 1; i <= last_b; i++)
{
TRectype& r = _prosp_b->row(i, TRUE);
TToken_string& row = ss.row(i-1);
TString dep(50);
// if (_quadro != "F2")
dep = r.get(QUF_CODCAUS);
TString descr_cau(get_desc_cau(dep));
// else dep = r.get("DENFONDO");
TString16 aliq (r.get(QUF_ALIQUOTA));
TString sogg (r.get(QUF_SOGRIT));
TString rope (r.get(QUF_ROPE));
row.add(dep);
row.add(descr_cau);
row.add(aliq);
row.add(sogg);
row.add(rope);
}
for (i = last_b+1; i < PROSP_RIGHE; i++)
ss.row(i);
if (_quadro != "F")
ss.force_update();
break; }
case 'C': {
TSheet_field& ss = (TSheet_field&)m.field(F_C);
const int last_c = _prosp_c->last_row();
for (int i = 1; i <= last_c; i++)
{
TRectype& r = _prosp_c->row(i, TRUE);
TToken_string& row = ss.row(i-1);
TString16 codcau(r.get(QUF_CODCAUS));
TString descr_cau(get_desc_cau(codcau));
TString16 aliq (r.get(QUF_ALIQUOTA));
TString sogg (r.get(QUF_SOGRIT));
TString rope (r.get(QUF_ROPE));
row.add(codcau);
row.add(descr_cau);
row.add(aliq);
row.add(sogg);
row.add(rope);
}
for (i = last_c+1; i < PROSP_RIGHE; i++)
ss.row(i);
break; }
case 'D': {
TSheet_field& ss = (TSheet_field&)m.field(F_D);
const int last_d = _prosp_d->last_row();
for (int i = 1; i <= last_d; i++)
{
TRectype& r = _prosp_d->row(i, TRUE);
TToken_string& row = ss.row(i-1);
TString16 codcau(r.get(QUF_CODCAUS));
TString descr_cau(get_desc_cau(codcau));
TString16 aliq (r.get(QUF_ALIQUOTA));
TString sogg (r.get(QUF_SOGRIT));
TString rope (r.get(QUF_ROPE));
row.add(codcau);
row.add(descr_cau);
row.add(aliq);
row.add(sogg);
row.add(rope);
}
for (i = last_d+1; i < PROSP_RIGHE; i++)
ss.row(i);
break; }
default:
break;
}
}
void TQuadroF::fill_ss(TMask& m)
{
riempi_prospetto(m, 'B');
if (_quadro == "F")
{
riempi_prospetto(m, 'A');
riempi_prospetto(m, 'C');
riempi_prospetto(m, 'D');
}
}
int TQuadroF::read(TMask& m)
{
int err = TRelation_application::read(m);
if (err == NOERR)
{
TRectype r = _rf->curr();
r.zero();
r.put("CODDITTA", m.get(F_CODDITTA));
r.put("TIPOPRO", "B");
_prosp_b->read(r);
if (_quadro == "F")
{
r.put("TIPOPRO", "A");
_prosp_a->read(r);
r.put("TIPOPRO", "C");
_prosp_c->read(r);
r.put("TIPOPRO", "D");
_prosp_d->read(r);
}
}
fill_ss(m);
return err;
}
int TQuadroF::write(const TMask& m)
{
int err = TRelation_application::write(m);
if (err == NOERR)
err = re_write(m, FALSE);
_registra = err == NOERR;
return err;
}
int TQuadroF::rewrite(const TMask& m)
{
int err = re_write(m, TRUE);
int err1 = TRelation_application::rewrite(m);
// _registra = err == NOERR;
// 12.6.96 se compilo solo prosp.A del F-1 non fa i riporti
_registra = err == NOERR || err1 == NOERR;
return err == NOERR ? err1 : err;
}
void ss_pack(TSheet_field& ss)
{
TString_array& rows = ss.rows_array();
const int max = rows.items();
for (int i = 0; i < max; i++)
{
TToken_string& r = (TToken_string&)rows[i];
TString16 codcaus(r.get(0));
codcaus.trim();
if (codcaus.empty())
rows.destroy(i, FALSE);
}
rows.pack();
}
int TQuadroF::salva_prosp_a(const TMask& m, bool re)
{
_prosp_a->destroy_rows();
if (m.insert_mode())
_prosp_a->renum_key("CODDITTA", m.get(F_CODDITTA));
TSheet_field& p_a = (TSheet_field&)m.field(F_A);
TString_array& rows = p_a.rows_array();
ss_pack(p_a);
for (int i = 0; i < p_a.items(); i++)
{
TToken_string& riga = p_a.row(i);
TString16 codcaus(riga.get(0));
if (codcaus.empty()) continue;
TString16 aliq (riga.get(2)); // salta descr. caus.
// const float aliq = atof(riga.get());
TString sogg (riga.get());
TString rope (riga.get());
TString totacc (riga.get());
TString vers_a_saldo (riga.get());
TString somm_versata (riga.get());
const int row = i + 1 ;
TRectype& r = _prosp_a->row(row, TRUE);
r.zero();
r.put (QUF_CODDITTA, (long)_codditta);
r.put (QUF_TIPOPRO, "A");
r.put (QUF_NPROG, i+1);
r.put (QUF_CODCAUS, codcaus);
r.put (QUF_ALIQUOTA , (const char*)aliq);
r.put (QUF_SOGRIT , sogg);
r.put (QUF_ROPE, rope);
r.put (QUF_ACCONTI, totacc);
r.put (QUF_VERSALDO, vers_a_saldo);
r.put (QUF_VERSECC, somm_versata);
}
return _prosp_a->write(re);
}
int TQuadroF::salva_prosp_b(const TMask& m, bool re)
{
_prosp_b->destroy_rows();
TSheet_field& p_b = (TSheet_field&)m.field(F_B);
TString_array& rowsb = p_b.rows_array();
ss_pack(p_b);
if (m.insert_mode())
_prosp_b->renum_key("CODDITTA", m.get(F_CODDITTA));
for (int i = 0; i < p_b.items(); i++)
{
TToken_string &riga = p_b.row(i);
TString dep(40);
dep = riga.get(0); dep.trim();
// if (_quadro != "F2" && dep.empty()) continue;
if (dep.empty()) continue;
TString aliq (riga.get(2));
TString sogg (riga.get());
TString rope (riga.get());
const int row = i + 1 ;
TRectype& r = _prosp_b->row(row, TRUE);
r.zero();
r.put (QUF_CODDITTA, (long)_codditta);
r.put (QUF_TIPOPRO, "B");
r.put (QUF_NPROG, i+1);
r.put (QUF_ALIQUOTA, (const char*)aliq);
// r.put (_quadro == "F2" ? "DENFONDO" : "CODCAUS" , dep);
r.put (QUF_CODCAUS , dep);
r.put (QUF_SOGRIT , sogg);
r.put (QUF_ROPE, rope);
}
return _prosp_b->write(re);
}
int TQuadroF::salva_prosp_c(const TMask& m, bool re)
{
_prosp_c->destroy_rows();
TSheet_field& p_c = (TSheet_field&)m.field(F_C);
TString_array& rowsc = p_c.rows_array();
ss_pack(p_c);
if (m.insert_mode())
_prosp_c->renum_key("CODDITTA", m.get(F_CODDITTA));
for (int i = 0; i < p_c.items(); i++)
{
TToken_string &riga = p_c.row(i);
TString16 codcaus(riga.get(0));
if (codcaus.empty()) continue;
TString16 aliq (riga.get(2));
TString sogg (riga.get());
TString rope (riga.get());
const int row = i + 1 ;
TRectype& r = _prosp_c->row(row, TRUE);
r.zero();
r.put (QUF_CODDITTA, (long)_codditta);
r.put (QUF_TIPOPRO, "C");
r.put (QUF_NPROG, i+1);
r.put (QUF_CODCAUS, codcaus);
r.put (QUF_ALIQUOTA , (const char*)aliq);
r.put (QUF_SOGRIT , sogg);
r.put (QUF_ROPE, rope);
}
return _prosp_c->write(re);
}
int TQuadroF::salva_prosp_d(const TMask& m, bool re)
{
_prosp_d->destroy_rows();
TSheet_field& p_d = (TSheet_field&)m.field(F_D);
TString_array& rowsd = p_d.rows_array();
ss_pack(p_d);
if (m.insert_mode())
_prosp_d->renum_key("CODDITTA", m.get(F_CODDITTA));
for (int i = 0; i < p_d.items(); i++)
{
TToken_string &riga = p_d.row(i);
TString16 codcaus(riga.get(0));
if (codcaus.empty()) continue;
TString16 aliq (riga.get(2));
TString sogg (riga.get());
TString rope (riga.get());
const int row = i + 1 ;
TRectype& r = _prosp_d->row(row, TRUE);
r.zero();
r.put (QUF_CODDITTA, (long)_codditta);
r.put (QUF_TIPOPRO, "D");
r.put (QUF_NPROG, i+1);
r.put (QUF_CODCAUS, codcaus);
r.put (QUF_ALIQUOTA , (const char*)aliq);
r.put (QUF_SOGRIT , sogg);
r.put (QUF_ROPE, rope);
}
return _prosp_d->write(re);
}
int TQuadroF::re_write(const TMask& m, bool re)
{
int err_a, err_b, err_c, err_d;
err_b = salva_prosp_b(m, re);
if (_quadro == "F")
{
err_a = salva_prosp_a(m, re);
err_c = salva_prosp_c(m, re);
err_d = salva_prosp_d(m, re);
return err_a | err_b | err_c | err_d;
}
else
return err_b;
}
bool TQuadroF::remove()
{
bool ok, ok_a, ok_b, ok_c, ok_d;
ok = TRelation_application::remove();
ok_b = _prosp_b->remove();
if (_quadro == "F")
{
ok_a = _prosp_a->remove();
ok_c = _prosp_c->remove();
ok_d = _prosp_d->remove();
return ok && ok_a && ok_b && ok_c && ok_d;
}
else
return ok && ok_b;
}
bool TQuadroF::a_notify(TSheet_field& s, int r, KEY k)
{
switch(k)
{
case K_SPACE:
{
TSheet_field& sfProspA = app().sfProspA();
TToken_string& row = sfProspA.row(r);
app()._sAliqPrec = row.get(2);
app()._sAliqPrec.trim();
}
case K_TAB:
app()._tipo_prosp = 'A';
break;
case K_INS:
break;
default:
break;
}
return TRUE;
}
bool TQuadroF::b_notify(TSheet_field& s, int r, KEY k)
{
switch(k)
{
case K_SPACE:
{
TSheet_field& sfProspB = app().sfProspB();
TToken_string& row = sfProspB.row(r);
app()._sAliqPrec = row.get(2);
app()._sAliqPrec.trim();
}
case K_TAB:
app()._tipo_prosp = 'B';
break;
case K_INS:
break;
default:
break;
}
return TRUE;
}
bool TQuadroF::c_notify(TSheet_field& s, int r, KEY k)
{
switch(k)
{
case K_SPACE:
{
TSheet_field& sfProspC = app().sfProspC();
TToken_string& row = sfProspC.row(r);
app()._sAliqPrec = row.get(2);
app()._sAliqPrec.trim();
}
case K_TAB:
app()._tipo_prosp = 'C';
break;
case K_INS:
break;
default:
break;
}
return TRUE;
}
bool TQuadroF::d_notify(TSheet_field& s, int r, KEY k)
{
switch(k)
{
case K_SPACE:
{
TSheet_field& sfProspD = app().sfProspD();
TToken_string& row = sfProspD.row(r);
app()._sAliqPrec = row.get(2);
app()._sAliqPrec.trim();
}
case K_TAB:
app()._tipo_prosp = 'D';
break;
case K_INS:
break;
default:
break;
}
return TRUE;
}
bool TQuadroF::eprov_handler(TMask_field& f, KEY k)
{
if (k == K_TAB && f.focusdirty())
{
app()._tipo_prosp = 'E';
const real sogg(f.mask().get(E_PROVENTI));
calcola_rope(f, sogg, f.focusdirty());
}
return TRUE;
}
bool TQuadroF::ealiq_handler(TMask_field& f, KEY k)
{
if (k == K_TAB && f.focusdirty())
{
app()._tipo_prosp = 'E';
const real sogg(f.mask().get(E_PROVENTI));
calcola_rope(f, sogg, f.focusdirty());
}
return TRUE;
}
bool TQuadroF::fsogg_handler(TMask_field& f, KEY k)
{
if (k == K_TAB && f.focusdirty())
{
app()._tipo_prosp = 'F';
const real sogg(f.mask().get(F_SOGG));
calcola_rope(f, sogg, f.focusdirty());
}
return TRUE;
}
bool TQuadroF::faliq_handler(TMask_field& f, KEY k)
{
if (k == K_TAB && f.focusdirty())
{
app()._tipo_prosp = 'F';
const real sogg(f.mask().get(F_SOGG));
calcola_rope(f, sogg, f.focusdirty());
}
return TRUE;
}
// Se scrivo S_SALD devo pulire S_VECC e viceversa
bool TQuadroF::sald_handler(TMask_field& f, KEY k)
{
if (k == K_TAB && f.focusdirty())
{
TString16 dep(f.get());
if (dep.not_empty())
f.mask().reset(S_VECC);
}
return TRUE;
}
bool TQuadroF::vecc_handler(TMask_field& f, KEY k)
{
if (k == K_TAB && f.focusdirty())
{
TString16 dep(f.get());
if (dep.not_empty())
f.mask().reset(S_SALD);
}
return TRUE;
}
bool TQuadroF::tacc_handler(TMask_field& f, KEY k)
{
if (k == K_TAB)
{
const real sogg(f.mask().get(S_SOGG));
calcola_rope(f, sogg, f.focusdirty());
}
return TRUE;
}
bool TQuadroF::aliq_handler(TMask_field& f, KEY k)
{
if (k == K_TAB)
{
const real sogg(f.mask().get(S_SOGG));
calcola_rope(f, sogg, f.focusdirty());
}
return TRUE;
}
bool TQuadroF::sogg_handler(TMask_field& f, KEY k)
{
if (k == K_TAB)
{
const real sogg(f.mask().get(S_SOGG));
calcola_rope(f, sogg, f.focusdirty());
}
return TRUE;
}
void do_output(TString& quadro, TMask& m, const bool bOutputAliq)
{
m.set(S_DESC, app()._desc_caus);
if (bOutputAliq)
m.set(S_ALIQ, app()._aliq_caus);
}
bool check_caus(const char* codcau)
{
TTable ca7("%ca7");
bool ok = FALSE;
TString& quadro = app()._quadro;
ca7.zero();
ca7.put(CA7_CODTAB, codcau);
ok = ca7.read();
if (ok != NOERR)
__dep = "";
else
__dep = ca7.get(CA7_CODQUA);
if (__dep != quadro)
return FALSE;
else
{
app()._aliq_caus = ca7.get(CA7_ALIQ);
app()._desc_caus = ca7.get(CA7_DESCR);
return TRUE;
}
}
bool TQuadroF::codc_handler(TMask_field& f, KEY k)
{
// Controlla codice quadro
if (k == K_TAB)
{
TString16 codcau(f.get());
if (codcau.empty())
return TRUE;
TMask& m = f.mask();
TString& quadro = app()._quadro;
const bool ok = check_caus(codcau);
TString sAliqCorr(m.get(S_ALIQ));
sAliqCorr.trim();
// Se sono diverse vuol dire che e' stata cambiata l'aliq.e non va scritta
bool bAliqCorrVuota = sAliqCorr.empty();
bool bOutputAliq = app()._sAliqPrec == sAliqCorr || bAliqCorrVuota;
if (ok)
do_output(quadro, f.mask(), bOutputAliq);
else
return warning_box("Causale con codice quadro diverso da %s", (const char*)quadro);
}
return TRUE;
}
real TQuadroF::calcola_rope(TMask_field& f, const real& sogg, const bool force)
{
real pa_col4 = ZERO;
int id_rope, id_ali;
TMask& m = f.mask();
if (app()._tipo_prosp == 'E')
{
id_rope = E_ROP;
id_ali = E_ALI;
}
else
if (app()._tipo_prosp == 'F')
{
id_rope = F_ROP;
id_ali = F_ALI;
}
else // prospetti A,B,C,D
{
id_rope = S_ROPE;
id_ali = S_ALIQ;
}
real ali = m.get_real(id_ali);
const real pa_col4_prec(m.get(id_rope)); // rit.operata
if (pa_col4_prec != ZERO && !force)
return pa_col4_prec;
pa_col4 = (sogg * ali) / 100.00;
pa_col4.round(0);
TString ropest(20);
if (pa_col4 != ZERO) // Evita di scrivere "0" nel campo (v. reqif_func nella msk)
{
ropest = pa_col4.string();
m.set(id_rope, ropest);
}
else
m.reset(id_rope);
// Nel prospetto A oltre alla ritenuta operata setto anche S_SALD
if (app()._tipo_prosp == 'A')
{
const real pa_col5(m.get(S_TACC));
real pa_col6 = pa_col4 - pa_col5;
if (pa_col6 > ZERO)
{
TString col6_st(pa_col6.string());
m.set(S_SALD, col6_st);
m.reset(S_VECC);
}
else
{
// Sempre positiva, la somma versata in ecc.
pa_col6 *= -1.00;
TString col7_st(pa_col6.string());
m.set(S_VECC, col7_st);
m.reset(S_SALD);
}
}
return pa_col4;
}
int quadroF(int argc, char* argv[])
{
const char quadro = *argv[2]; // 0 = F, 1 = F-1, 2 = F-2, 3 = G
// 4 = distinta G, 5 = G-1
if (quadro <= '2')
{
TQuadroF a(quadro);
a.run(argc, argv, a.taitol());
}
if (quadro == '3')
{
TQuadroG a(quadro);
a.run(argc, argv, a.taitol());
}
if (quadro == '4')
{
TDistintaQuadroG a;
a.run(argc, argv, a.taitol());
}
if (quadro == '5')
{
TQuadroG1 a;
a.run(argc, argv, a.taitol());
}
return 0;
}

25
m770/771231a.h Executable file
View File

@ -0,0 +1,25 @@
// 771231a.h - quadro F
#define F_CODDITTA 101
#define F_RAGDITTA 102
#define F_A 103
#define F_B 104
#define F_C 105
#define F_D 106
#define F_A1 107
#define F_A2 108
#define F_A3 109
#define F_A4 110
#define E_CAMBIAL 111
#define E_PROVENTI 112
#define E_ALI 113
#define E_ROP 114
#define F_DESCRCAUS 115
#define F_ALI 116
#define F_SOGG 117
#define F_ROP 118
#define F_CODCAU 119

261
m770/771231a.uml Executable file
View File

@ -0,0 +1,261 @@
#include "771231a.h"
TOOLBAR "" 0 20 0 2
#include "toolb_77.h"
ENDPAGE
PAGE "Modello 770 - Quadro F" -1 -1 78 18
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 1 0 ""
END
NUMBER F_CODDITTA 5
BEGIN
PROMPT 3 1 "Ditta "
USE LF_NDITTE KEY 1
INPUT CODDITTA F_CODDITTA
OUTPUT F_RAGDITTA RAGSOC
FIELD LF_QUAF->CODDITTA
KEY 1
CHECKTYPE REQUIRED
FLAGS "GR"
END
STRING F_RAGDITTA 50
BEGIN
PROMPT 17 1 "Ragione "
FLAGS "D"
END
TEXT DLG_NULL
BEGIN
PROMPT 1 3 "@bProspetto A"
END
SPREADSHEET F_A 0 8
BEGIN
PROMPT 0 4 ""
ITEM "Causale"
ITEM "Descrizione@50"
ITEM "Aliquota"
ITEM "Sogg. a rit.@15"
ITEM "Ritenuta@15"
ITEM "Totale acconti@15"
ITEM "Vers. a saldo@15"
ITEM "Somma versata@15"
END
GROUPBOX DLG_NULL 78 6
BEGIN
PROMPT 1 12 ""
END
TEXT DLG_NULL
BEGIN
PROMPT 3 13 "A1 Importo di col.7 ..."
END
NUMBER F_A1 15
BEGIN
PROMPT 60 13 ""
PICTURE "."
FIELD LF_QUAF->A1
END
TEXT DLG_NULL
BEGIN
PROMPT 3 14 "A2 Importo di col.7 di cui si chiede il rimborso"
END
NUMBER F_A2 15
BEGIN
PROMPT 60 14 ""
PICTURE "."
FIELD LF_QUAF->A2
END
TEXT DLG_NULL
BEGIN
PROMPT 3 15 "A3 Somme soggette a ritenuta ..."
END
NUMBER F_A3 15
BEGIN
PROMPT 60 15 ""
PICTURE "."
FIELD LF_QUAF->A3
END
TEXT DLG_NULL
BEGIN
PROMPT 3 16 "A4 Ritenute operate ..."
END
NUMBER F_A4 15
BEGIN
PROMPT 60 16 ""
PICTURE "."
FIELD LF_QUAF->A4
END
ENDPAGE
PAGE "Modello 770 - Quadro F" -1 -1 78 18
TEXT DLG_NULL
BEGIN
PROMPT 1 0 "@bProspetto B"
END
SPREADSHEET F_B 78 6
BEGIN
PROMPT 0 1 ""
ITEM "Causale"
ITEM "Descrizione@50"
ITEM "Aliquota"
ITEM "Somme sogg.a rit.@15"
ITEM "Ritenuta@15"
END
TEXT DLG_NULL
BEGIN
PROMPT 1 8 "@bProspetto C"
END
SPREADSHEET F_C 78 6
BEGIN
PROMPT 0 9 ""
ITEM "Causale"
ITEM "Descrizione@50"
ITEM "Aliquota"
ITEM "Somme sogg.a rit.@15"
ITEM "Ritenuta@15"
END
ENDPAGE
PAGE "Modello 770 - Quadro F" -1 -1 78 18
TEXT DLG_NULL
BEGIN
PROMPT 1 0 "@bProspetto D"
END
SPREADSHEET F_D 78 6
BEGIN
PROMPT 0 1 ""
ITEM "Causale"
ITEM "Descrizione@50"
ITEM "Aliquota"
ITEM "Somme sogg.a rit.@15"
ITEM "Ritenuta@15"
END
GROUPBOX DLG_NULL 0 5
BEGIN
PROMPT 1 8 "@bProspetto E"
END
TEXT DLG_NULL
BEGIN
PROMPT 2 9 "Importo complessivo delle cambiali "
END
NUMBER E_CAMBIAL 15
BEGIN
PROMPT 60 9 ""
PICTURE "."
FIELD LF_QUAF->E_CAMBIALI
END
TEXT DLG_NULL
BEGIN
PROMPT 2 10 "Proventi soggetti a ritenuta "
END
NUMBER E_PROVENTI 15
BEGIN
PROMPT 60 10 ""
PICTURE "."
FIELD LF_QUAF->E_SOGRIT
END
NUMBER E_ALI 5
BEGINE
PROMPT 2 11 "Aliquota "
FIELD LF_QUAF->E_ALIQUOTA
PICTURE ".2"
NUM_EXPR {(#THIS>=0) && (#THIS<=100)}
END
NUMBER E_ROP 15
BEGIN
PROMPT 43 11 "Ritenuta operata "
PICTURE "."
FIELD LF_QUAF->E_ROPE
END
GROUPBOX DLG_NULL 0 5
BEGIN
PROMPT 1 13 "@bProspetto F"
END
STRING F_CODCAU 2
BEGIN
PROMPT 2 14 "Causale "
USE %CA7 SELECT (S1="F")
VALIDATE REQIF_FUNC 3 F_SOGG F_ALI F_ROP
INPUT CODTAB F_CODCAU
DISPLAY "Codice " CODTAB
DISPLAY "Descrizione @60" S0
DISPLAY "Codice tributo" I0
DISPLAY "Articolo di bilancio" I3
DISPLAY "C.T." B2
DISPLAY "I.C." B1
DISPLAY "R.A." B0
OUTPUT F_CODCAU CODTAB
OUTPUT F_DESCRCAUS S0
FLAGS "Z"
WARNING "Manca la causale"
CHECKTYPE NORMAL
ADD RUN 773 -3 %CA7
FIELD LF_QUAF->F_CODCAUS
END
STRING F_DESCRCAUS 60
BEGIN
PROMPT 16 14 ""
FLAGS "D"
END
NUMBER F_SOGG 15
BEGIN
PROMPT 2 15 "Somme soggette a ritenuta "
PICTURE "."
FIELD LF_QUAF->F_SOGRIT
END
NUMBER F_ALI 5
BEGIN
PROMPT 51 15 "Aliquota "
PICTURE ".2"
NUM_EXPR {(#THIS>=0) && (#THIS<=100)}
FIELD LF_QUAF->F_ALIQUOTA
END
NUMBER F_ROP 15
BEGIN
PROMPT 2 16 "Ritenuta operata "
PICTURE "."
FIELD LF_QUAF->F_ROPE
END
ENDPAGE
ENDMASK
#include "771231b.uml" // mask prospetto A
#include "771231c.uml" // prospetto B
#include "771231c.uml" // prospetto C
#include "771231c.uml" // prospetto D

92
m770/771231b.uml Executable file
View File

@ -0,0 +1,92 @@
// 771231b.uml - quadro F prospetto A
PAGE "Prospetto A" -1 -1 76 12
NUMBER 101 2
BEGIN
PROMPT 1 1 "Causale "
USE %CA7 SELECT (S1="F")
VALIDATE REQIF_FUNC 6 102 103 104 105 106 107
INPUT CODTAB 101
DISPLAY "Codice " CODTAB
DISPLAY "Descrizione @60" S0
DISPLAY "Codice tributo" I0
DISPLAY "Articolo di bilancio" I3
OUTPUT 101 CODTAB
OUTPUT 102 S0
OUTPUT 103 R0
FLAGS "Z"
WARNING "Manca la causale"
ADD RUN 773 -3 %CA7
GROUP 1
END
STRING 102 60
BEGIN
PROMPT 15 1 ""
FLAGS "D"
GROUP 1
END
NUMBER 103 6
BEGIN
PROMPT 1 3 "Aliquota applicata "
PICTURE ".2"
NUM_EXPR {(#THIS>=0) && (#THIS<=100)}
GROUP 1
END
NUMBER 104 15
BEGIN
PROMPT 1 4 "Somme soggette a ritenuta "
PICTURE "."
GROUP 1
END
NUMBER 105 15
BEGIN
PROMPT 1 5 "Ritenuta operata "
PICTURE "."
GROUP 1
END
NUMBER 106 15
BEGIN
PROMPT 1 6 "Totale acconti "
PICTURE "."
GROUP 1
END
NUMBER 107 15
BEGIN
PROMPT 1 7 "Versamento a saldo "
PICTURE "."
GROUP 1
END
NUMBER 108 15
BEGIN
PROMPT 1 8 "Somma versata in eccedenza "
PICTURE "."
GROUP 1
END
BUTTON DLG_OK 9 2
BEGIN
PROMPT -13 -1 ""
END
BUTTON DLG_CANCEL 9 2
BEGIN
PROMPT -23 -1 ""
END
BUTTON DLG_NULL 9 2
BEGIN
PROMPT -33 -1 "Azzera"
MESSAGE RESET,1@
END
ENDPAGE
ENDMASK

71
m770/771231c.uml Executable file
View File

@ -0,0 +1,71 @@
// 771231c.uml - quadro F prospetto B-C-D
PAGE "Prospetto B-C-D" -1 -1 76 9
NUMBER 101 2
BEGIN
PROMPT 1 1 "Causale "
USE %CA7 SELECT (S1="F")
VALIDATE REQIF_FUNC 3 102 103 104
INPUT CODTAB 101
DISPLAY "Codice " CODTAB
DISPLAY "Descrizione @60" S0
DISPLAY "Codice tributo" I0
DISPLAY "Articolo di bilancio" I3
OUTPUT 101 CODTAB
OUTPUT 102 S0
OUTPUT 103 R0
FLAGS "Z"
WARNING "Manca la causale"
ADD RUN 773 -3 %CA7
GROUP 1
END
STRING 102 60
BEGIN
PROMPT 15 1 ""
FLAGS "D"
GROUP 1
END
NUMBER 103 6
BEGIN
PROMPT 1 3 "Aliquota applicata "
PICTURE ".2"
NUM_EXPR {(#THIS>=0) && (#THIS<=100)}
GROUP 1
END
NUMBER 104 15
BEGIN
PROMPT 1 4 "Somme soggette a ritenuta "
PICTURE "."
GROUP 1
END
NUMBER 105 15
BEGIN
PROMPT 1 5 "Ritenuta operata "
PICTURE "."
GROUP 1
END
BUTTON DLG_OK 9 2
BEGIN
PROMPT -13 -1 ""
END
BUTTON DLG_CANCEL 9 2
BEGIN
PROMPT -23 -1 ""
END
BUTTON DLG_NULL 9 2
BEGIN
PROMPT -33 -1 "Azzera"
MESSAGE RESET,1@
END
ENDPAGE
ENDMASK

770
m770/771232.cpp Executable file
View File

@ -0,0 +1,770 @@
// 771232.cpp - Quadri G
#include <relapp.h>
#include <config.h>
#include <msksheet.h>
#include <sort.h>
#include <tabutil.h>
#include <execp.h>
#include <progind.h>
#include <defmask.h>
#include "quadrog.h"
#include "77lib.h"
#include "774200.h"
#include "771234a.h" // G
#include "771232.h"
/////////////////////////////////////////////////////////////////////////////////////////////
//
// Lista modifiche:
//
// 17.4.96 Corretto scambio di colonne nel prospetto 3 in scrittura
//
//
/////////////////////////////////////////////////////////////////////////////////////////////
// Descrizioni prospetto 3
HIDDEN const char* p3_date_delib[20] =
{
"1-1-1976/31-12-1995",
"1-1-1976/31-12-1995",
"1-1-1976/31-12-1995",
"1-1-1976/31-12-1995",
"1-1-1976/31-12-1995",
"1-1-1976/31-12-1995",
"1-1-1976/31-12-1995",
"9-4-1974/31-12-1975",
"9-4-1974/31-12-1975",
"9-4-1974/31-12-1975",
"9-4-1974/31-12-1975",
"1-1-1974/8-4-1974" ,
"1-1-1974/8-4-1974" ,
"1-1-1974/8-4-1974" ,
"24-2-1964/31-12-1973",
"24-2-1964/31-12-1973",
"24-2-1964/31-12-1973",
"1-1-1963/23-2-1964",
"1-1-1963/23-2-1964",
"1-1-1963/23-2-1964"
};
// Aliquote prospetto 3
HIDDEN const char* aliq[15] =
{
"10",
"12.5",
"15",
"30",
"32.4",
"50",
"10",
"15",
"30",
"10",
"30",
"5",
"30",
"8",
"15"
};
// Date prospetto 2
HIDDEN const char* p2_date_delib[5] =
{
"1-1-1976/31-12-1995",
"9-4-1974/31-12-1975",
"1-1-1974/8-4-1974" ,
"24-2-1964/31-12-1973",
"1-1-1963/23-2-1964"
};
HIDDEN const int RIGHE_P1 = 4;
HIDDEN const int RIGHE_P2 = 5;
HIDDEN const int RIGHE_PII = 3;
HIDDEN const int RIGHE_PIII = 20;
HIDDEN const char* DISTINTA_APP = "771mod -6 4";
#define NUM_AZ 105
#define AMM_AZ 104
#define AMM_COMP 106
HIDDEN real __amm_az = ZERO;
HIDDEN real __num_az = ZERO;
TQuadroG::TQuadroG(const char quadro)
{
_registra = FALSE;
switch (quadro)
{
case '3':
_quadro = "G";
_title = "Quadro G";
break;
default:
break;
}
}
inline TQuadroG& app() { return (TQuadroG&) main_app(); }
int TQuadroG::read(TMask& m)
{
int err = TRelation_application::read(m);
if (err == NOERR)
{
fill_ss(m);
fill_arr(m);
}
return err;
}
void TQuadroG::init_modify_mode (TMask& m)
{
init_mask(m);
m.disable(DLG_DELREC);
}
void TQuadroG::init_query_mode (TMask& m)
{
TString16 codditta; codditta << _codditta;
if (codditta != "0")
{
m.field(F_CODDITTA).set(codditta);
m.field(F_CODDITTA).check();
}
m.send_key(K_AUTO_ENTER,0);
init_mask(m);
}
void TQuadroG::init_mask (TMask& m)
{}
void TQuadroG::update_totals(TSheet_field& f, int ss)
{
int i = 0;
switch (ss)
{
case 1:
{
real tot_numq, tot_amm;
tot_numq = tot_amm = ZERO;
TSheet_field& p1 = f;
// Calcolo il totale
for (i = 0; i < RIGHE_P1; i++)
{
TToken_string& r = p1.row(i);
real numq(r.get(4));
real amm (r.get(5));
tot_numq += numq;
tot_amm += amm;
}
// Setto le celle di totale
TToken_string& row = p1.row(i);
row.add(tot_numq.string(), 4);
row.add(tot_amm.string(), 5);
p1.force_update(i);
}
break;
case 2:
{
TSheet_field& p2 = f;
real tot_c2, tot_c3, tot_c4, tot_c5, tot_c6;
tot_c2 = tot_c3 = tot_c4 = tot_c5 = tot_c6 = ZERO;
for (i = 0; i < RIGHE_P2; i++)
{
TToken_string& r2 = p2.row(i);
real c2 (r2.get(1));
real c3 (r2.get());
real c4 (r2.get());
real c5 (r2.get());
real c6 (r2.get());
tot_c2 += c2;
tot_c3 += c3;
tot_c4 += c4;
tot_c5 += c5;
tot_c6 += c6;
}
// Setto le celle di totale
TToken_string& row2 = p2.row(i);
row2.add(tot_c2.string(), 1);
row2.add(tot_c3.string(), 2);
row2.add(tot_c4.string(), 3);
row2.add(tot_c5.string(), 4);
row2.add(tot_c6.string(), 5);
p2.force_update(i);
}
break;
case 3:
{
real tot_valult;
tot_valult = ZERO;
TSheet_field& pII = f;
// Calcolo il totale
for (i = 0; i < RIGHE_PII; i++)
{
TToken_string& r = pII.row(i);
real val(r.get(2));
tot_valult += val;
}
// Setto le celle di totale
TToken_string& row = pII.row(i);
row.add(tot_valult.string(), 2);
pII.force_update(i);
}
break;
case 4:
{
real tcol2, tcol3, tcol5, tcol6, tcol7;
tcol2 = tcol3 = tcol5 = tcol6 = tcol7 = ZERO;
TSheet_field& pIII = f;
// Calcolo il totale
for (i = 0; i < RIGHE_PIII; i++)
{
TToken_string& r = pIII.row(i);
real c2(r.get(1));
real c3(r.get(2));
real c5(r.get(4));
real c6(r.get(5));
real c7(r.get(6));
tcol2 += c2;
tcol3 += c3;
tcol5 += c5;
tcol6 += c6;
tcol7 += c7;
}
// Setto le celle di totale
TToken_string& row = pIII.row(i);
row.add(tcol2.string(), 1);
row.add(tcol3.string(), 2);
row.add(tcol5.string(), 4);
row.add(tcol6.string(), 5);
row.add(tcol7.string(), 6);
pIII.force_update(i);
}
break;
default:
break;
}
}
// Quadro G prospetto 1 - I
// Calcola amm_complessivo = num_quote * amm_azione
bool TQuadroG::calc_amm(TMask_field& f, KEY k)
{
if (k == K_TAB)
{
TMask& m = f.mask();
real amm_az(m.get(AMM_AZ));
// const int num_az = m.get_int(NUM_AZ);
// 12.6.96 num_az adesso e' un real!
real rNumAz = m.get_real(NUM_AZ);
bool ricalcola = FALSE;
real amm_comp(m.get(AMM_COMP));
// Determina se uno dei valori e' stato modificato
ricalcola = ( (__amm_az != amm_az) || (__num_az != rNumAz) );
// Se non e' stato cambiato non toccare il totale gia' impostato
if (!ricalcola && amm_comp != ZERO)
return TRUE;
// Calcola e setta il valore
real amm = ZERO;
amm = amm_az * rNumAz;
amm.trunc();
m.set(AMM_COMP, amm.string());
// Setta i flag usati per il confronto successivo
__amm_az = amm_az;
__num_az = rNumAz;
}
return TRUE;
}
bool TQuadroG::exec_distinta(TMask_field& f, KEY k)
{
if (k == K_SPACE)
{
TExternal_app zzz(DISTINTA_APP);
zzz.run();
}
return TRUE;
}
bool TQuadroG::user_create()
{
_msk = new TMask("771234a");
_rel = new TRelation(LF_QUAG);
_codditta = get_firm_770();
_msk->set_handler(DLG_DISTINTA, exec_distinta);
TSheet_field& p1 = (TSheet_field&) _msk->field(F_P1);
p1.set_notify(p1_notify);
p1.sheet_mask().set_handler(NUM_AZ, calc_amm);
p1.sheet_mask().set_handler(AMM_AZ, calc_amm);
TSheet_field& p2 = (TSheet_field&) _msk->field(F_P2);
p2.set_notify(p2_notify);
TSheet_field& pII = (TSheet_field&) _msk->field(F_PII);
pII.set_notify(pII_notify);
TSheet_field& pIII = (TSheet_field&) _msk->field(F_PIII);
pIII.set_notify(pIII_notify);
return TRUE;
}
bool TQuadroG::user_destroy()
{
delete _rel; delete _msk;
if (_registra)
_rip.set(_quadro);
return TRUE;
}
void TQuadroG::arr2rel(const TMask& m)
{
TToken_string p3a;
TToken_string p3b;
TToken_string p3c;
TToken_string p3d;
TToken_string p3e;
TToken_string p3f;
TRectype& r = _rel->curr();
int dlg; dlg = 0;
// Prospetto 3 - Prospetto delle ritenute
TSheet_field& pIII = (TSheet_field&)m.field(F_PIII);
for (int i = 0; i < RIGHE_PIII; i++)
{
TToken_string& r = pIII.row(i);
TString ut94 (r.get(1)); // Salto data delibera che e' fisso
TString imp (r.get());
TString ali (r.get());
TString racc (r.get());
TString rimp (r.get());
TString utnsogg (r.get());
p3a.add(ut94);
p3b.add(imp);
p3c.add(ali);
p3d.add(racc);
p3e.add(rimp);
p3f.add(utnsogg);
}
r.put(QG_P33A, p3a);
r.put(QG_P33B, p3b);
r.put(QG_P35A, p3c);
r.put(QG_P35B, p3d);
r.put(QG_P36A, p3e);
r.put(QG_P36B, p3f);
// Salvo i totali che servono poi per i riporti e le stampe (774200.cpp)
TToken_string& r_tot = pIII.row(i);
real tot_col3(r_tot.get(2));
real tot_col5(r_tot.get(4));
real tot_col6(r_tot.get(5));
real tot_col7(r_tot.get(6));
r.put(QG_P33TOT, tot_col3);
r.put(QG_P35TOT, tot_col5);
r.put(QG_P36TOT, tot_col6);
r.put(QG_P37TOT, tot_col7);
}
void TQuadroG::ss2rel(const TMask& m)
{
TSheet_field& p1 = (TSheet_field&)m.field(F_P1);
TRectype& rec = _rel->curr();
for (int i = 0; i < RIGHE_P1; i++)
{
TToken_string& r = p1.row(i);
TString datad (r.get(0));
TString titol (r.get());
TString datap (r.get());
TString ammq (r.get());
TString numq (r.get());
TString amm (r.get());
// Costruisco i nomi dei campi (sono numerati)
TString16 n_datad ("P1DATAD");
n_datad << i+1;
TString16 n_titol ("P1TITOLO");
n_titol << i+1;
TString16 n_datap ("P1DATAP");
n_datap << i+1;
TString16 n_ammq ("P1AMMQ");
n_ammq << i+1;
TString16 n_numq ("P1NUMQ");
n_numq << i+1;
TString16 n_amm ("P1AMM");
n_amm << i+1;
// Scrivo i suddetti campi nella relazione
rec.put(n_datad, datad);
rec.put(n_titol, titol);
rec.put(n_datap, datap);
rec.put(n_ammq, ammq);
rec.put(n_numq, numq);
rec.put(n_amm, amm);
}
// Salvo i totali
TToken_string& r = p1.row(i);
TString tot_numq (r.get(4));
TString tot_amm (r.get(5));
rec.put("P1NUMQT", tot_numq);
rec.put("P1AMMT", tot_amm);
// costruisco le token_string leggendole dallo spreadsheet
TToken_string p22(200);
TToken_string p23(200);
TToken_string p24(200);
TToken_string p25(200);
TToken_string p26(200);
TSheet_field& p2 = (TSheet_field&)m.field(F_P2);
for (i = 0; i < RIGHE_P2; i++)
{
TToken_string& r = p2.row(i);
TString c2 (r.get(1));
TString c3 (r.get());
TString c4 (r.get());
TString c5 (r.get());
TString c6 (r.get());
p22.add(c2);
p23.add(c3);
p24.add(c4);
p25.add(c5);
p26.add(c6);
}
// scrivo finalmente nel file le tokens. di cui sopra
rec.put("P22", p22);
rec.put("P23", p23);
rec.put("P24", p24);
rec.put("P25", p25);
rec.put("P26", p26);
// scrivo i totali
TToken_string& r2 = p2.row(i);
TString tc2 (r2.get(1));
TString tc3 (r2.get());
TString tc4 (r2.get());
TString tc5 (r2.get());
TString tc6 (r2.get());
rec.put("P22TOT", tc2);
rec.put("P23TOT", tc3);
rec.put("P24TOT", tc4);
rec.put("P25TOT", tc5);
rec.put("P26TOT", tc6);
// Prospetto 1 - II Utili in natura
TSheet_field& pII = (TSheet_field&)m.field(F_PII);
// TRectype& rec = _rel->curr();
for (i = 0; i < RIGHE_PII; i++)
{
TToken_string& r = pII.row(i);
TString descr (r.get(0));
TString datad (r.get());
TString val (r.get());
// Costruisco i nomi dei campi (sono numerati)
TString16 n_descr ("P2DESC");
n_descr << i+1;
TString16 n_data ("P2DATA");
n_data << i+1;
TString16 n_val ("P2VAL");
n_val << i+1;
// Scrivo i suddetti campi nella relazione
rec.put(n_descr, descr);
rec.put(n_data, datad);
rec.put(n_val, val);
}
// Salvo i totali
TToken_string& rII = pII.row(i);
TString tot_val (rII.get(2));
rec.put(QG_P2VALT, tot_val);
}
void TQuadroG::fill_arr(TMask& m)
{
TRectype& r = _rel->curr();
TToken_string p3a(r.get("P33A"));
TToken_string p3b(r.get("P33B"));
TToken_string p3c(r.get("P35A"));
TToken_string p3d(r.get("P35B"));
TToken_string p3e(r.get("P36A"));
TToken_string p3f(r.get("P36B"));
int dlg, j; dlg = j = 0;
TSheet_field& pIII = (TSheet_field&)m.field(F_PIII);
const int COL_ALIQ = 3;
int ind_aliq = 0;
for (int i = 1; i <= RIGHE_PIII; i++)
{
TRectype& r = _rel->curr();
TToken_string& row = pIII.row(i-1);
row.add(p3_date_delib[i-1]);
row.add(p3a.get(i-1));
row.add(p3b.get(i-1));
row.add(p3c.get(i-1));
row.add(p3d.get(i-1));
row.add(p3e.get(i-1));
row.add(p3f.get(i-1));
if (i != 7 && i != 11 && i != 14 && i != 17 && i != 20)
{
row.add(aliq[ind_aliq++], 3);
pIII.disable_cell(i-1, COL_ALIQ);
}
}
if (m.mode() == MODE_MOD)
update_totals(pIII,4);
else
{
// Aggiungo la riga per i totali
TToken_string& row = pIII.row(i-1);
row.add("Totali", 0);
pIII.disable_cell(i-1, -1);
pIII.force_update();
}
}
void TQuadroG::fill_ss(TMask& m)
{
TSheet_field& p1 = (TSheet_field&)m.field(F_P1);
for (int i = 1; i <= RIGHE_P1; i++)
{
TRectype& r = _rel->curr();
TToken_string& row = p1.row(i-1);
// Costruisco i nomi dei campi (sono numerati)
TString16 n_datad ("P1DATAD");
n_datad << i;
TString16 n_titol ("P1TITOLO");
n_titol << i;
TString16 n_datap ("P1DATAP");
n_datap << i;
TString16 n_ammq ("P1AMMQ");
n_ammq << i;
TString16 n_numq ("P1NUMQ");
n_numq << i;
TString16 n_amm ("P1AMM");
n_amm << i;
// Leggo i campi
TString datad (r.get(n_datad));
TString titol (r.get(n_titol));
TString datap (r.get(n_datap));
TString ammq (r.get(n_ammq));
TString numq (r.get(n_numq));
TString amm (r.get(n_amm));
row.add(datad);
row.add(titol);
row.add(datap);
row.add(ammq);
row.add(numq);
row.add(amm);
}
if (m.mode() == MODE_MOD)
update_totals(p1,1);
else
{
// Aggiungo la riga per i totali
TToken_string& row = p1.row(i-1);
row.add("Totali", 1);
p1.disable_cell(i-1, -1);
p1.force_update();
}
TRectype& r = _rel->curr();
TToken_string p22(r.get("P22"));
TToken_string p23(r.get("P23"));
TToken_string p24(r.get("P24"));
TToken_string p25(r.get("P25"));
TToken_string p26(r.get("P26"));
TSheet_field& p2 = (TSheet_field&)m.field(F_P2);
for (i = 1; i <= RIGHE_P2; i++)
{
TToken_string& row2 = p2.row(i-1);
row2.add(p2_date_delib[i-1]);
row2.add(p22.get(i-1));
row2.add(p23.get(i-1));
row2.add(p24.get(i-1));
row2.add(p25.get(i-1));
row2.add(p26.get(i-1));
}
if (m.mode() == MODE_MOD)
update_totals(p2,2);
else
{
// Aggiungo la riga per i totali
TToken_string& row2 = p2.row(i-1);
row2.add("Totali", 0);
p2.disable_cell(i-1, -1);
p2.force_update();
}
TSheet_field& pII = (TSheet_field&)m.field(F_PII);
for (i = 1; i <= RIGHE_PII; i++)
{
TRectype& r = _rel->curr();
TToken_string& row = pII.row(i-1);
// Costruisco i nomi dei campi (sono numerati)
TString16 pII_desc ("P2DESC");
pII_desc << i;
TString16 pII_data ("P2DATA");
pII_data << i;
TString16 pII_val ("P2VAL");
pII_val << i;
// Leggo i campi
TString descr (r.get(pII_desc));
TString datap (r.get(pII_data));
TString valul (r.get(pII_val));
row.add(descr);
row.add(datap);
row.add(valul);
}
if (m.mode() == MODE_MOD)
update_totals(pII,3);
else
{
// Aggiungo la riga per i totali
TToken_string& row = pII.row(i-1);
row.add("Totale utili in natura", 0);
pII.disable_cell(i-1, -1);
pII.force_update();
}
}
int TQuadroG::write(const TMask& m)
{
ss2rel(m);
arr2rel(m);
int err = TRelation_application::write(m);
_registra = err == NOERR;
return err;
}
int TQuadroG::rewrite(const TMask& m)
{
ss2rel(m);
arr2rel(m);
int err = TRelation_application::rewrite(m);
_registra = err == NOERR;
return err;
}
bool TQuadroG::remove()
{
const bool ok = TRelation_application::remove();
return ok;
}
bool TQuadroG::p1_notify(TSheet_field& s, int r, KEY k)
{
switch(k)
{
case K_ENTER:
__amm_az = ZERO;
__num_az = ZERO;
update_totals(s, 1);
break;
case K_SPACE:
{
TToken_string& row = s.row(r);
__num_az = row.get(3);
__amm_az = row.get(4);
}
break;
// Rifiuta di entrare sull'ultima riga
case K_TAB:
return r < RIGHE_P1;
break;
case K_INS:
if (s.mask().is_running())
return FALSE; // rifiuta inserimento di nuove righe
break;
default:
break;
}
return TRUE;
}
bool TQuadroG::p2_notify(TSheet_field& s, int r, KEY k)
{
switch(k)
{
case K_SPACE:
break;
case K_ENTER:
update_totals(s, 2);
break;
// Rifiuta di entrare sull'ultima riga
case K_TAB:
return r < RIGHE_P2;
break;
case K_INS:
if (s.mask().is_running())
return FALSE; // rifiuta inserimento di nuove righe
break;
default:
break;
}
return TRUE;
}
bool TQuadroG::pII_notify(TSheet_field& s, int r, KEY k)
{
switch(k)
{
case K_SPACE:
break;
case K_ENTER:
update_totals(s, 3);
break;
// Rifiuta di entrare sull'ultima riga
case K_TAB:
return r < RIGHE_PII;
break;
case K_INS:
if (s.mask().is_running())
return FALSE; // rifiuta inserimento di nuove righe
break;
default:
break;
}
return TRUE;
}
bool TQuadroG::pIII_notify(TSheet_field& s, int r, KEY k)
{
switch(k)
{
case K_SPACE:
break;
case K_ENTER:
update_totals(s, 4);
break;
// Rifiuta di entrare sull'ultima riga
case K_TAB:
return r < RIGHE_PIII;
break;
case K_INS:
if (s.mask().is_running())
return FALSE; // rifiuta inserimento di nuove righe
break;
default:
break;
}
return TRUE;
}

141
m770/771232.h Executable file
View File

@ -0,0 +1,141 @@
// 771232.h - Quadro G, G1 e distinta
#include <relapp.h>
#include <config.h>
#include <msksheet.h>
#include <sort.h>
#include <tabutil.h>
#include <progind.h>
#include "77lib.h"
#include <defmask.h>
#include "774200.h"
// void ss_pack(TSheet_field& ss);
class TQuadroG : public TRelation_application
{
private:
TRelation* _rel;
TMask* _msk;
int _anno_dic; // anno dichiarazione
long _codditta;
TLocalisamfile* _qg;
TTable* _ca7;
TRiporti _rip;
TString16 _quadro;
TString80 _title;
bool _registra;
static bool p1_notify(TSheet_field& s, int r, KEY k);
static bool p2_notify(TSheet_field& s, int r, KEY k);
static bool pII_notify(TSheet_field& s, int r, KEY k);
static bool pIII_notify(TSheet_field& s, int r, KEY k);
static bool calc_amm(TMask_field& f, KEY k);
static bool exec_distinta(TMask_field& f, KEY k);
static void update_totals(TSheet_field& f, int ss);
protected:
virtual bool user_create();
virtual bool user_destroy();
virtual int read(TMask& m);
virtual int rewrite(const TMask& m);
virtual int write (const TMask& m);
virtual bool remove();
virtual TRelation* get_relation() const { return _rel; }
virtual TMask* get_mask(int mode) { return _msk; }
virtual bool changing_mask(int mode) { return FALSE; }
virtual void init_query_mode (TMask&);
virtual void init_modify_mode (TMask&);
void init_mask (TMask&);
void fill_ss(TMask& m);
void fill_arr(TMask& m);
void ss2rel(const TMask& m);
void arr2rel(const TMask& m);
public:
const char* taitol() { return (const char*)_title; }
TMask& main_mask() const { return (TMask&) *_msk; }
TQuadroG(const char quadro='0');
virtual ~TQuadroG() {};
};
class TDistintaQuadroG : public TRelation_application
{
TRelation* _rel;
TMask* _msk;
long _codanagr;
char _tipoa;
int _nproga;
int _mode;
int _anno_dic; // anno dichiarazione
TString80 _title;
TRiporti _rip;
bool _registra;
int _file;
TString16 _quadro;
private:
static bool nprog_handler (TMask_field& f, KEY key);
static bool codanagr_handler(TMask_field& f, KEY key);
static bool codditta_hnd (TMask_field& f, KEY key);
static bool setta_nprog (TMask_field& f);
protected:
virtual bool user_create();
virtual bool user_destroy();
virtual int rewrite(const TMask& m);
virtual int write (const TMask& m);
virtual bool remove();
virtual TRelation* get_relation() const { return _rel; }
virtual TMask* get_mask(int mode) { return _msk; }
virtual bool changing_mask(int mode) { return FALSE; }
virtual void init_query_mode (TMask&);
virtual void init_query_insert_mode (TMask&);
virtual void on_config_change();
bool scrivi_dati_per(TRectype& rec);
public:
const char* taitol() { return (const char*)_title; }
public:
TDistintaQuadroG();
virtual ~TDistintaQuadroG() {};
};
class TQuadroG1 : public TRelation_application
{
private:
TRelation* _rel;
TMask* _msk;
int _anno_dic;
long _codditta;
TLocalisamfile* _qg1;
TTable* _ca7;
TRiporti _rip;
TString16 _quadro;
TString80 _title;
bool _registra;
static bool p1_notify(TSheet_field& s, int r, KEY k);
static void update_totals(TSheet_field& f);
protected:
virtual bool user_create();
virtual bool user_destroy();
virtual int rewrite(const TMask& m);
virtual int write (const TMask& m);
virtual bool remove();
virtual TRelation* get_relation() const { return _rel; }
virtual TMask* get_mask(int mode) { return _msk; }
virtual bool changing_mask(int mode) { return FALSE; }
virtual void init_query_mode (TMask&);
virtual void init_modify_mode (TMask&);
void init_mask (TMask&);
// void fill_ss(TMask& m);
void fill_arr(TMask& m);
// void ss2rel(const TMask& m);
void arr2rel(const TMask& m);
public:
const char* taitol() { return (const char*)_title; }
TMask& main_mask() const { return (TMask&) *_msk; }
TQuadroG1();
virtual ~TQuadroG1() {};
};

69
m770/771232a.uml Executable file
View File

@ -0,0 +1,69 @@
#include "771231a.h"
TOOLBAR "" 0 20 0 2
#include "toolb_77.h"
ENDPAGE
PAGE "Modello 770 - Quadro F-1" -1 -1 78 18
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 1 0 ""
END
NUMBER F_CODDITTA 5
BEGIN
PROMPT 3 1 "Ditta "
USE LF_NDITTE KEY 1
INPUT CODDITTA F_CODDITTA
OUTPUT F_RAGDITTA RAGSOC
FIELD LF_QUAF1->CODDITTA
KEY 1
CHECKTYPE REQUIRED
FLAGS "GR"
END
STRING F_RAGDITTA 50
BEGIN
PROMPT 17 1 "Ragione "
FLAGS "D"
END
GROUPBOX DLG_NULL 0 4
BEGIN
PROMPT 1 3 "@bProspetto A"
END
NUMBER F_A1 15
BEGIN
PROMPT 2 4 "Ammontare complessivo delle plusvalenze imponibili "
PICTURE "."
FIELD LF_QUAF1->F1_A1
END
NUMBER F_A2 15
BEGIN
PROMPT 2 5 "Ritenuta operata "
PICTURE "."
FIELD LF_QUAF1->F1_A2
END
TEXT DLG_NULL
BEGIN
PROMPT 1 7 "@bProspetto B"
END
SPREADSHEET F_B 78 8
BEGIN
PROMPT 0 8 ""
ITEM "Causale"
ITEM "Descrizione@50"
ITEM "Aliquota"
ITEM "Sogg. a rit.@15"
ITEM "Ritenuta@15"
END
ENDPAGE
ENDMASK
#include "771232b.uml" // mask prospetto B

71
m770/771232b.uml Executable file
View File

@ -0,0 +1,71 @@
// 771232b.uml - quadro F1 prospetto B
PAGE "Prospetto B" -1 -1 76 9
NUMBER 101 2
BEGIN
PROMPT 1 1 "Causale "
USE %CA7 SELECT (S1="F1")
VALIDATE REQIF_FUNC 3 102 103 104
INPUT CODTAB 101
DISPLAY "Codice " CODTAB
DISPLAY "Descrizione @60" S0
DISPLAY "Codice tributo" I0
DISPLAY "Articolo di bilancio" I3
OUTPUT 101 CODTAB
OUTPUT 102 S0
OUTPUT 103 R0
FLAGS "Z"
WARNING "Manca la causale"
ADD RUN 773 -3 %CA7
GROUP 1
END
STRING 102 60
BEGIN
PROMPT 15 1 ""
FLAGS "D"
GROUP 1
END
NUMBER 103 6
BEGIN
PROMPT 1 3 "Aliquota applicata "
PICTURE ".2"
NUM_EXPR {(#THIS>=0) && (#THIS<=100)}
GROUP 1
END
NUMBER 104 15
BEGIN
PROMPT 1 4 "Somme soggette a ritenuta "
PICTURE "."
GROUP 1
END
NUMBER 105 15
BEGIN
PROMPT 1 5 "Ritenuta operata "
PICTURE "."
GROUP 1
END
BUTTON DLG_OK 9 2
BEGIN
PROMPT -13 -1 ""
END
BUTTON DLG_CANCEL 9 2
BEGIN
PROMPT -23 -1 ""
END
BUTTON DLG_NULL 9 2
BEGIN
PROMPT -33 -1 "Azzera"
MESSAGE RESET,1@
END
ENDPAGE
ENDMASK

194
m770/771233.cpp Executable file
View File

@ -0,0 +1,194 @@
// 771233.cpp - distinta quadro G
#include "771232.h"
#include "quadrogd.h"
#include "77qgd.h"
#define LF_QUAGD 101 // lffiles.h
inline TDistintaQuadroG& app() { return (TDistintaQuadroG&) main_app(); }
TDistintaQuadroG::TDistintaQuadroG(): _rel(NULL), _mode(0)
{
_title = "Distinta quadro G";
_quadro = "GD";
_file = LF_QUAGD;
}
// Ricerca e output dell'ultimo nprog del percipiente scelto
bool TDistintaQuadroG::setta_nprog(TMask_field& f)
{
long nprog = 0L;
const char tipoa = f.mask().get(F_TIPOA)[0];
const long codanagr = atol(f.get());
const long codditta = get_firm_770();
TLocalisamfile quagd(app()._file);
quagd.zero();
quagd.put(QGD_CODDITTA, codditta);
quagd.put(QGD_TIPOA, tipoa);
quagd.put(QGD_CODANAGR, codanagr);
TRectype rec(quagd.curr());
quagd.read();
if (quagd.curr() > rec)
{
f.mask().set(F_NPROG, nprog+1);
return TRUE;
}
for ( ; !quagd.eof(); quagd.next())
{
if (quagd.curr() > rec) break;
nprog = quagd.get_long("NPROG");
}
f.mask().set(F_NPROG, nprog+1);
return TRUE;
}
bool TDistintaQuadroG::codditta_hnd(TMask_field& f, KEY k)
{
if (k == K_TAB && !f.mask().is_running())
{
TString16 codditta; codditta << get_firm_770();
if (codditta != "0")
{
f.set(codditta);
f.check();
}
}
return TRUE;
}
bool TDistintaQuadroG::codanagr_handler(TMask_field& f, KEY k)
{
if (k == K_TAB && f.focusdirty())
{
TString16 dummy(f.get());
if (dummy.not_empty())
setta_nprog(f);
}
return TRUE;
}
// Passa al modo inserimento/modifica.
bool TDistintaQuadroG::nprog_handler(TMask_field& f, KEY key)
{
if (!f.mask().is_running()) return TRUE;
if (key == K_TAB)
{
const int nprog = atoi(f.get());
if (nprog==0) return TRUE;
// entra in modo modifica (se il record che ha chiave specificata esiste gia') oppure
// inserimento (se trova che non esiste)
f.mask().stop_run(K_AUTO_ENTER);
}
return TRUE;
}
bool TDistintaQuadroG::scrivi_dati_per(TRectype& rec)
{
TLocalisamfile dati_per(LF_PERC);
const long codditta = rec.get_long("CODDITTA");
char tipoa = rec.get_char("TIPOA");
const long codanagr = rec.get_long("CODANAGR");
dati_per.zero();
dati_per.put("CODDITTA", codditta);
dati_per.put("TIPOA", tipoa);
dati_per.put("CODANAGR", codanagr);
const bool preesistente = (dati_per.read() == NOERR);
if (!preesistente)
{
dati_per.zero();
dati_per.put("CODDITTA", codditta);
dati_per.put("TIPOA", tipoa);
dati_per.put("CODANAGR", codanagr);
dati_per.write();
}
return preesistente;
}
int TDistintaQuadroG::rewrite(const TMask& m)
{
m.autosave(_rel);
const int err = _rel->rewrite();
scrivi_dati_per(_rel->curr());
_registra = TRUE;
return err;
}
int TDistintaQuadroG::write(const TMask& m)
{
m.autosave(_rel);
const int err = _rel->write();
scrivi_dati_per(_rel->curr());
_registra = TRUE;
return err;
}
bool TDistintaQuadroG::remove()
{
_registra = TRUE;
return TRelation_application::remove();
}
bool TDistintaQuadroG::user_create()
{
_msk = new TMask("77qgda");
_msk->set_handler(F_CODDITTA, codditta_hnd);
_msk->set_handler(F_NPROG, nprog_handler);
_msk->set_handler(F_CODANAGRCOM, codanagr_handler);
_msk->set_handler(F_CODANAGRPERC, codanagr_handler);
_rel = new TRelation(LF_QUAGD);
set_search_field(F_CODANAGRPERC);
_registra = FALSE;
return TRUE;
}
bool TDistintaQuadroG::user_destroy()
{
delete _msk;
delete _rel;
if (_registra)
_rip.set(_quadro);
return TRUE;
}
void TDistintaQuadroG::on_config_change()
{
TConfig conf(CONFIG_STUDIO);
_anno_dic = (int)conf.get_long(ANNO_SEL, NULL);
}
void TDistintaQuadroG::init_query_mode(TMask& m)
{
m.set(F_ANNODIC, _anno_dic);
// forza il ricalcolo dell'ultimo numero disponibile
TString16 dummy(m.get(F_NPROG));
if (dummy.not_empty())
setta_nprog(m.field(F_NPROG));
m.send_key(K_SHIFT+K_CTRL+'h', -1); // nasconde (hide) group 1 - Scelta ANAGR
m.send_key(K_SHIFT+K_CTRL+'s', -2); // abilita (show) group 2 - Ricerca su DATI PERC
}
void TDistintaQuadroG::init_query_insert_mode(TMask& m)
{
m.set(F_ANNODIC, _anno_dic);
m.send_key(K_SHIFT+K_CTRL+'h', -2); // group 2 Nasconde ricerca su PERC
m.send_key(K_SHIFT+K_CTRL+'s', -1); // group 1 Ricerca su ANAGR
}

93
m770/771233.h Executable file
View File

@ -0,0 +1,93 @@
// OBSOLETO
// 771233.h - Distinta quadro G
#include <relapp.h>
#include <config.h>
#include <msksheet.h>
#include <sort.h>
#include <tabutil.h>
#include <progind.h>
#include "77lib.h"
#include <scperc.h>
#include <rpag.h>
#include <perc.h>
#include <prospe1.h>
#include <defmask.h>
// #include "771235a.h"
#include "774200.h"
class TDistintaQuadroG : public TRelation_application
{
/**********************************
private:
struct righe_pag
{
char tipoa;
char codan[6];
char codcau[3];
char perc[7]; //3 + 2decimali + la virgola
real somme;
real impo;
real rite;
real comp;
bool acim;
};
righe_pag* _rig;
*******************************************/
TRelation* _rel;
TMask* _msk[2];
TSort* _sort;
long _codanagr;
char _tipoa, _tipoq;
int _nproga;
int _mode;
int _anno_dic; // anno dichiarazione
TLocalisamfile* _per, *_scper, *_rpag, *_qd;
TTable* _ca7;
TString80 _title;
TRiporti _rip;
bool _registra;
int _file;
private:
static bool nprog_handler (TMask_field& f, KEY key);
static bool codanagr_handler(TMask_field& f, KEY key);
static bool genera_handler (TMask_field& f, KEY key);
static bool codditta_hnd (TMask_field& f, KEY key);
static bool setta_nprog (TMask_field& f);
static bool imponibile_hnd (TMask_field& f, KEY key);
protected:
virtual bool user_create() { return TRUE; }
virtual bool user_destroy() { return TRUE; }
// virtual int rewrite(const TMask& m);
// virtual int write (const TMask& m);
// virtual bool remove();
virtual TRelation* get_relation() const { return _rel; }
virtual TMask* get_mask(int mode) { return _msk[0]; }
virtual bool changing_mask(int mode) { return TRUE; }
// virtual void init_query_mode (TMask&);
// virtual void init_query_insert_mode (TMask&);
// virtual void on_config_change();
/****************************************************
TMask* load_mask(int n);
bool generazione();
bool azzera_quadro();
void riempi_record(char,long,int,const real&,const real&,const real&,const real&,const real&,bool);
void init_sort();
void leggi_sort(TProgind&);
TRectype& look_causali(int c);
int anno_dic() const { return _anno_dic; }
bool scrivi_dati_per(TRectype& rec);
void genera_prospetto(int,real&,real&,real&);
***********************************/
public:
const char* taitol() { return (const char*)_title; }
public:
TDistintaQuadroG();
virtual ~TDistintaQuadroG() {};
};

50
m770/771233a.uml Executable file
View File

@ -0,0 +1,50 @@
#include "771231a.h"
TOOLBAR "" 0 20 0 2
#include "toolb_77.h"
ENDPAGE
PAGE "Modello 770 - Quadro F-2" -1 -1 78 18
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 1 0 ""
END
NUMBER F_CODDITTA 5
BEGIN
PROMPT 3 1 "Ditta "
USE LF_NDITTE KEY 1
INPUT CODDITTA F_CODDITTA
OUTPUT F_RAGDITTA RAGSOC
FIELD LF_QUAF2->CODDITTA
KEY 1
CHECKTYPE REQUIRED
FLAGS "GR"
END
STRING F_RAGDITTA 50
BEGIN
PROMPT 17 1 "Ragione "
FLAGS "D"
END
TEXT DLG_NULL
BEGIN
PROMPT 1 3 "@bProspetto delle somme soggette a ritenuta e delle ritenute operate "
END
SPREADSHEET F_B 0 8
BEGIN
PROMPT 0 4 ""
ITEM "Causale"
ITEM "Denominazione del fondo@60"
ITEM "Aliquota"
ITEM "Sogg. a rit.@15"
ITEM "Ritenuta@15"
END
ENDPAGE
ENDMASK
#include "771233b.uml"

71
m770/771233b.uml Executable file
View File

@ -0,0 +1,71 @@
// 771233b.uml - quadro F2 prospetto delle ...
PAGE "Prospetto B" -1 -1 76 9
NUMBER 101 2
BEGIN
PROMPT 1 1 "Causale "
USE %CA7 SELECT (S1="F2")
INPUT CODTAB 101
DISPLAY "Codice " CODTAB
DISPLAY "Descrizione @60" S0
DISPLAY "Codice tributo" I0
DISPLAY "Articolo di bilancio" I3
OUTPUT 101 CODTAB
OUTPUT 102 S0
OUTPUT 103 R0
FLAGS "Z"
WARNING "Manca la causale"
VALIDATE REQIF_FUNC 6 102 103 104 105
ADD RUN 773 -3 %CA7
GROUP 1
END
STRING 102 60
BEGIN
PROMPT 15 1 ""
FLAGS "D"
GROUP 1
END
NUMBER 103 6
BEGIN
PROMPT 1 3 "Aliquota applicata "
PICTURE ".2"
NUM_EXPR {(#THIS>=0) && (#THIS<=100)}
GROUP 1
END
NUMBER 104 15
BEGIN
PROMPT 1 4 "Somme soggette a ritenuta "
PICTURE "."
GROUP 1
END
NUMBER 105 15
BEGIN
PROMPT 1 5 "Ritenuta operata "
PICTURE "."
GROUP 1
END
BUTTON DLG_OK 9 2
BEGIN
PROMPT -13 -1 ""
END
BUTTON DLG_CANCEL 9 2
BEGIN
PROMPT -23 -1 ""
END
BUTTON DLG_NULL 9 2
BEGIN
PROMPT -33 -1 "Azzera"
MESSAGE RESET,1@
END
ENDPAGE
ENDMASK

191
m770/771234a.h Executable file
View File

@ -0,0 +1,191 @@
// 771234a.h
#define F_CODDITTA 101
#define F_RAGDITTA 102
#define F_P1 127
#define F_P1II_00 128
#define F_P1II_01 129
#define F_P1II_11 130
#define F_P1II_12 131
#define F_P1II_13 132
#define F_P1II_21 133
#define F_P1II_22 134
#define F_P1II_23 135
#define F_P1II_31 136
#define F_P1II_32 137
#define F_P1II_33 138
#define F_P1II_34 139
#define F_P1II_35 140
#define F_P11_1 103
#define F_P11_2 104
#define F_P11_3 105
#define F_P11_4 106
#define F_P12_1 107
#define F_P12_2 108
#define F_P12_3 109
#define F_P12_4 110
#define F_P13_1 111
#define F_P13_2 112
#define F_P13_3 113
#define F_P13_4 114
#define F_P14_1 115
#define F_P14_2 116
#define F_P14_3 117
#define F_P14_4 118
#define F_P15_1 119
#define F_P15_2 120
#define F_P15_3 121
#define F_P15_4 122
#define F_P16_1 123
#define F_P16_2 124
#define F_P16_3 125
#define F_P16_4 126
// Prospetto 2
#define F_P211 141
#define F_P212 142
#define F_P213 143
#define F_P214 144
#define F_P215 145
#define F_P221 146
#define F_P222 147
#define F_P223 148
#define F_P224 149
#define F_P225 150
#define F_P231 151
#define F_P232 152
#define F_P233 153
#define F_P234 154
#define F_P235 155
#define F_P241 156
#define F_P242 157
#define F_P243 158
#define F_P244 159
#define F_P245 160
#define F_P251 161
#define F_P252 162
#define F_P253 163
#define F_P254 164
#define F_P255 165
#define F_P21TOT 166
#define F_P22TOT 167
#define F_P23TOT 168
#define F_P24TOT 169
#define F_P25TOT 170
// Prospetto 3
#define F_P331 171
#define F_P332 172
#define F_P333 173
#define F_P334 174
#define F_P335 175
#define F_P336 176
#define F_P337 177
#define F_P338 178
#define F_P339 179
#define F_P3310 180
#define F_P3311 181
#define F_P3312 182
#define F_P3313 183
#define F_P3314 184
#define F_P3315 185
#define F_P3316 186
#define F_P3317 187
#define F_P3318 188
#define F_P3319 189
#define F_P3320 190
#define F_P321 191
#define F_P322 192
#define F_P323 193
#define F_P324 194
#define F_P325 195
#define F_P371 196
#define F_P372 197
#define F_P373 198
#define F_P374 199
#define F_P375 200
#define F_P351 201
#define F_P352 202
#define F_P353 203
#define F_P354 204
#define F_P355 205
#define F_P356 206
#define F_P357 207
#define F_P358 208
#define F_P359 209
#define F_P3510 210
#define F_P3511 211
#define F_P3512 212
#define F_P3513 213
#define F_P3514 214
#define F_P3515 215
#define F_P3516 216
#define F_P3517 217
#define F_P3518 218
#define F_P3519 219
#define F_P3520 220
#define F_P361 221
#define F_P362 222
#define F_P363 223
#define F_P364 224
#define F_P365 225
#define F_P366 226
#define F_P367 227
#define F_P368 228
#define F_P369 229
#define F_P3610 230
#define F_P3611 231
#define F_P3612 232
#define F_P3613 233
#define F_P3614 234
#define F_P3615 235
#define F_P3616 236
#define F_P3617 237
#define F_P3618 238
#define F_P3619 239
#define F_P3620 240
#define F_P32TOT 241
#define F_P33TOT 242
#define F_P35TOT 243
#define F_P36TOT 244
#define F_P37TOT 245
#define F_P347 246
#define F_P3411 247
#define F_P3414 248
#define F_P3417 249
#define F_P3420 250
// Prospetto 4
#define F_P411 265
#define F_P412 266
#define F_P413 267
#define F_P414 268
#define F_P415 269
#define F_P416 270
#define F_P417 271
#define F_P418 272
#define F_P419 273
#define F_P41TOT 275
#define F_P2 280
#define DLG_DISTINTA 290
#define F_PII 291
#define F_PIII 292
#define F_DATADELIB 293
#define F_DATADISTR 294

360
m770/771234a.uml Executable file
View File

@ -0,0 +1,360 @@
#include "771234a.h"
TOOLBAR "" 0 20 0 2
BUTTON DLG_SAVEREC 8 2
BEGIN
PROMPT -16 -1 "~Registra"
MESSAGE EXIT,K_SAVE
END
BUTTON DLG_DISTINTA 8 2
BEGIN
PROMPT -26 -1 "~Distinta"
// MESSAGE EXIT,K_SAVE
END
BUTTON DLG_DELREC 8 2
BEGIN
PROMPT -36 -1 "~Elimina"
MESSAGE EXIT,K_DEL
FLAGS "D"
END
BUTTON DLG_FINDREC 8 2
BEGIN
PROMPT -46 -1 "Ri~cerca"
MESSAGE EXIT,K_F9
FLAGS "D"
END
BUTTON DLG_CANCEL 8 2
BEGIN
PROMPT -56 -1 ""
MESSAGE EXIT,K_ESC
FLAGS "D"
END
BUTTON DLG_QUIT 8 2
BEGIN
PROMPT -66 -1 ""
MESSAGE EXIT,K_QUIT
END
ENDPAGE
PAGE "Modello 770 - Quadro G" -1 -1 78 18
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 1 0 ""
END
NUMBER F_CODDITTA 5
BEGIN
PROMPT 3 1 "Ditta "
USE LF_NDITTE KEY 1
INPUT CODDITTA F_CODDITTA
OUTPUT F_RAGDITTA RAGSOC
FIELD LF_QUAG->CODDITTA
KEY 1
CHECKTYPE REQUIRED
FLAGS "GR"
MESSAGE COPY,1@
END
STRING F_RAGDITTA 50
BEGIN
PROMPT 17 1 "Ragione "
FLAGS "D"
MESSAGE COPY,2@
END
TEXT DLG_NULL
BEGIN
PROMPT 1 3 "@bPROSPETTO N. 1 DETERMINAZIONE DELL'AMMONTARE DEGLI UTILI "
END
TEXT DLG_NULL
BEGIN
PROMPT 1 4 "I - UTILI IN DENARO"
END
SPREADSHEET F_P1 0 6
BEGIN
PROMPT 0 5 ""
ITEM "Data delib."
ITEM "Titolo distribuzione"
ITEM "Data pagam."
ITEM "Ammontare azione"
ITEM "Numero azioni"
ITEM "Ammontare comp."
END
TEXT DLG_NULL
BEGIN
PROMPT 1 11 "II - UTILI IN NATURA"
END
DATE F_DATADELIB
BEGIN
PROMPT 1 12 "Data delibera "
FIELD LF_QUAG->P2DATADE
END
DATE F_DATADISTR
BEGIN
PROMPT 30 12 "Data distribuzione "
FIELD LF_QUAG->P2DATADI
END
//SPREADSHEET F_PII 0 6
SPREADSHEET F_PII 78 5
BEGIN
PROMPT 0 13 ""
ITEM "Descrizione dei beni distribuiti@35"
ITEM "Data@10"
ITEM "Valore ultimo bilancio@15"
END
NUMBER F_P1II_35 15
BEGIN
PROMPT 12 18 "IMPORTO IMPUTABILE A CIASCUNA AZIONE O QUOTA "
PICTURE "."
FIELD LF_QUAG->P2IMPQ
END
ENDPAGE
PAGE "Modello 770 - Quadro G" -1 -1 78 18
#define COL1 0
#define COL2 16
#define COL3 32
#define COL4 48
#define COL5 63
TEXT DLG_NULL
BEGIN
PROMPT COL1 1 "@bPROSPETTO N. 2 PROSPETTO UTILI PAGATI "
END
SPREADSHEET F_P2 0 8
BEGIN
PROMPT 0 3 ""
ITEM "Delibera@20"
ITEM "Importo@15"
ITEM "Utili corrisp. 31-12-94"
ITEM "Utili da corr. 31-12-94"
ITEM "Utili corrisp. 31-12-95"
ITEM "Utili da corr. 31-12-95"
END
ENDPAGE
PAGE "Modello 770 - Quadro G" -1 -1 78 18
TEXT DLG_NULL
BEGIN
PROMPT 1 1 "@bPROSPETTO N. 3 PROSPETTO DELLE RITENUTE "
END
SPREADSHEET F_PIII 0 15
BEGIN
PROMPT 0 3 ""
ITEM "Delibera@21"
ITEM "Utili corr. nel 1995"
ITEM "Importo"
ITEM "Aliquota"
ITEM "Rit.acconto"
ITEM "Rit.imposta"
ITEM "Utili non assog.a ritenuta"
END
ENDPAGE
#define CP31 1
#define CP32 12
#define CP33 29
#define CP34 36
#define CP35 53
PAGE "Modello 770 - Quadro G" -1 -1 78 18
TEXT DLG_NULL
BEGIN
PROMPT 1 1 "@bPROSPETTO N. 4 PROSPETTO DEI VERSAMENTI DELLE RITENUTE "
END
TEXT DLG_NULL
BEGIN
PROMPT CP31 2 "Causale dei versamenti Importo versato "
END
NUMBER F_P411 15
BEGIN
PROMPT CP35 4 ""
PICTURE "."
FIELD LF_QUAG->P421
MESSAGE K_TAB,F_P41TOT
END
NUMBER F_P412 15
BEGIN
PROMPT CP35 7 ""
PICTURE "."
FIELD LF_QUAG->P422
MESSAGE K_TAB,F_P41TOT
END
NUMBER F_P413 15
BEGIN
PROMPT CP35 8 ""
PICTURE "."
FIELD LF_QUAG->P423
MESSAGE K_TAB,F_P41TOT
END
NUMBER F_P414 15
BEGIN
PROMPT CP35 10 ""
PICTURE "."
FIELD LF_QUAG->P424
MESSAGE K_TAB,F_P41TOT
END
NUMBER F_P415 15
BEGIN
PROMPT CP35 11 ""
PICTURE "."
FIELD LF_QUAG->P425
MESSAGE K_TAB,F_P41TOT
END
NUMBER F_P416 15
BEGIN
PROMPT CP35 12 ""
PICTURE "."
FIELD LF_QUAG->P426
MESSAGE K_TAB,F_P41TOT
END
NUMBER F_P417 15
BEGIN
PROMPT CP35 13 ""
PICTURE "."
FIELD LF_QUAG->P427
MESSAGE K_TAB,F_P41TOT
END
NUMBER F_P418 15
BEGIN
PROMPT CP35 16 ""
PICTURE "."
FIELD LF_QUAG->P428
MESSAGE K_TAB,F_P41TOT
END
NUMBER F_P419 15
BEGIN
PROMPT CP35 17 ""
PICTURE "."
FIELD LF_QUAG->P429
MESSAGE K_TAB,F_P41TOT
END
NUMBER F_P41TOT 15
BEGIN
PROMPT CP35 18 ""
PICTURE "."
FLAGS "D"
FIELD LF_QUAG->P42TOT
NUM_CALC {#F_P411+#F_P412+#F_P413+#F_P414-#F_P415+#F_P416-#F_P417+#F_P418+#F_P419}
END
TEXT DLG_NULL
BEGIN
PROMPT CP31 3 "1) Ritenute 10% sugli utili di cui e' stata "
END
TEXT DLG_NULL
BEGIN
PROMPT CP31 4 " deliberata la distribuzione nel 1995"
END
TEXT DLG_NULL
BEGIN
PROMPT CP31 5 "2) Ritenute 10%,12,50,15%,30%,32,4% o 50% sugli utili in denaro "
END
TEXT DLG_NULL
BEGIN
PROMPT CP31 6 " o in natura, su azioni di risparmio ..."
END
TEXT DLG_NULL
BEGIN
PROMPT CP31 7 " a) effettuate nel primo semestre 1995 "
END
TEXT DLG_NULL
BEGIN
PROMPT CP31 8 " b) effettuate nel secondo semestre 1995 "
END
TEXT DLG_NULL
BEGIN
PROMPT CP31 9 "3) Versamento di conguaglio su utili in denaro "
END
TEXT DLG_NULL
BEGIN
PROMPT CP31 10 " a) effettuate nel primo semestre 1995 "
END
TEXT DLG_NULL
BEGIN
PROMPT CP31 11 " meno recuperi "
END
TEXT DLG_NULL
BEGIN
PROMPT CP31 12 " b) effettuate nel secondo semestre 1995 "
END
TEXT DLG_NULL
BEGIN
PROMPT CP31 13 " meno recuperi "
END
TEXT DLG_NULL
BEGIN
PROMPT CP31 14 "4) Ritenuta 10% sugli utili corrisposti da società"
END
TEXT DLG_NULL
BEGIN
PROMPT CP31 15 " cooperative ai soci persone fisiche "
END
TEXT DLG_NULL
BEGIN
PROMPT CP31 16 " a) effettuate nel primo semestre 1995 "
END
TEXT DLG_NULL
BEGIN
PROMPT CP31 17 " b) effettuate nel secondo semestre 1995 "
END
TEXT DLG_NULL
BEGIN
PROMPT CP34 18 "@bTOTALE "
END
ENDPAGE
ENDMASK
#include "771234b.uml"
#include "77_g_p2.uml"
#include "771234c.uml"
#include "77_g_p3.uml"

62
m770/771234b.uml Executable file
View File

@ -0,0 +1,62 @@
// 771234b.uml - Quadro G prospetto 1-I
PAGE "" -1 -1 76 11
DATE 101
BEGIN
PROMPT 1 1 "Data delibera "
GROUP 1
END
STRING 102 18
BEGIN
PROMPT 1 2 "Titolo distribuzione "
GROUP 1
END
DATE 103
BEGIN
PROMPT 1 3 "Data pagamento utili "
GROUP 1
END
NUMBER 104 15
BEGIN
PROMPT 1 4 "Ammontare azione o quota "
PICTURE "."
GROUP 1
END
NUMBER 105 9
BEGIN
PROMPT 1 5 "Numero azioni e quote "
GROUP 1
END
NUMBER 106 15
BEGIN
PROMPT 1 6 "Ammontare complessivo "
PICTURE "."
GROUP 1
END
BUTTON DLG_OK 9 2
BEGIN
PROMPT -13 -1 ""
END
BUTTON DLG_CANCEL 9 2
BEGIN
PROMPT -23 -1 ""
END
BUTTON DLG_NULL 9 2
BEGIN
PROMPT -33 -1 "Azzera"
MESSAGE RESET,1@
END
ENDPAGE
ENDMASK

65
m770/771234c.uml Executable file
View File

@ -0,0 +1,65 @@
// 771234c.uml - Quadro G prospetto 2
PAGE "" -1 -1 76 12
STRING 101 35
BEGIN
PROMPT 1 1 "Delibera "
FLAGS "D"
END
NUMBER 102 15
BEGIN
PROMPT 1 3 "Importo "
PICTURE "."
GROUP 1
END
NUMBER 103 15
BEGIN
PROMPT 1 4 "Utili corrisposti fino al 31-12-94 "
PICTURE "."
GROUP 1
END
NUMBER 104 15
BEGIN
PROMPT 1 5 "Utili da corrispondere al 31-12-94 "
PICTURE "."
GROUP 1
END
NUMBER 105 15
BEGIN
PROMPT 1 6 "Utili corrisposti nel 1995 "
PICTURE "."
GROUP 1
END
NUMBER 106 15
BEGIN
PROMPT 1 7 "Utili da corrispondere al 31-12-95 "
PICTURE "."
GROUP 1
END
BUTTON DLG_OK 9 2
BEGIN
PROMPT -13 -1 ""
END
BUTTON DLG_CANCEL 9 2
BEGIN
PROMPT -23 -1 ""
END
BUTTON DLG_NULL 9 2
BEGIN
PROMPT -33 -1 "Azzera"
MESSAGE RESET,1@
END
ENDPAGE
ENDMASK

31
m770/771235a.h Executable file
View File

@ -0,0 +1,31 @@
// OBSOLETO
// 771235a.h - distinta quadro G
#define F_CODDITTA 101
#define F_RAGDITTA 102
#define F_TIPOA 103
#define F_CODANAGR 104
#define F_CODANAGRCOM 105
#define F_ANNODIC 106
#define F_RAGSOC 107
#define F_CODANAGRPERC 108
#define F_GENERA 109
#define F_RAGSOCCOM 110
#define F_RAGSOCPER 111
#define F_NPROG 112
#define F_CODCAUS 113
#define F_DESCRCAUS 114
#define F_CODTRIB 115
#define F_IC 116
#define F_TOTALE 117
#define F_SOMME 118
#define F_IMPONIBILE 119
#define F_PERC 120
#define F_IMPORTO 121
#define F_NETTO 122
#define F_RI 123
#define F_RA 124
#define F_QUOTAPRO 125
#define F_SPESEANT 126
#define F_TIPOAF 127
#define F_RITENUTE 128

335
m770/771290.cpp Executable file
View File

@ -0,0 +1,335 @@
// 771290.cpp - Quadro H
#include <applicat.h>
#include <mask.h>
#include <msksheet.h>
#include <relapp.h>
#include <relation.h>
#include <tabutil.h>
#include <urldefid.h>
#include <config.h>
#include <utility.h>
#include <mailbox.h>
#include <execp.h>
#include "771290.h"
#include "771295.h"
#include "77lib.h"
#include "774200.h"
#include <nditte.h>
class TQuadro_H_app : public TRelation_application
{
TRelation * _rel;
TMask * _msk;
TRiporti _rip;
int _mode; // Modo maschera corrente
long _codditta;
int _anno;
TString _ente;
bool _registra;
protected:
virtual bool user_create();
virtual bool user_destroy();
virtual int rewrite(const TMask& m);
virtual int write (const TMask& m);
virtual bool remove();
virtual TRelation* get_relation() const { return _rel; }
virtual TMask* get_mask(int mode);
virtual bool changing_mask(int mode) {return FALSE; }
// void init_mask(TMask&);
virtual void init_query_mode(TMask&);
virtual void init_modify_mode(TMask&);
virtual void init_insert_mode(TMask&);
virtual void init_query_insert_mode(TMask&);
virtual void on_config_change();
public:
bool almeno_un_dettaglio(TMask&);
void refresh(TMask& m);
static bool generazione (TMask_field& f , KEY k);
static bool dettaglio (TMask_field& f , KEY k);
static bool desc_ente (TMask_field& f , KEY k);
static bool codditta_hnd(TMask_field& f , KEY k);
TQuadro_H_app() {}
};
HIDDEN TQuadro_H_app& app() { return (TQuadro_H_app&) main_app(); }
bool TQuadro_H_app::codditta_hnd(TMask_field& f, KEY k)
{
if (k == K_TAB && !(f.mask().is_running()) )
{
TString16 codditta; codditta << get_firm_770();
if (codditta != "0")
{
f.set(codditta);
f.check();
}
}
return TRUE;
}
void TQuadro_H_app::refresh(TMask& m)
{
TEdit_field& datore = _msk->efield(F_DAT);
TEdit_field& lavora = _msk->efield(F_LAV);
//datore.check();
//lavora.check();
datore.autoload(_rel);
lavora.autoload(_rel);
if (almeno_un_dettaglio(m))
m.enable (F_BTG_GENERA);
else
m.disable(F_BTG_GENERA);
m.enable (F_BTG_DETTAGLIO);
}
bool TQuadro_H_app::generazione(TMask_field& f , KEY k)
{
if (k == K_SPACE)
{
TString appname = "775 -1";
TToken_string body;
body.add(app()._codditta);
body.add(app()._anno);
body.add(app()._ente);
TMessage msg (appname,"",(const char*) body);
TMailbox mb;
mb.send(msg);
TLocalisamfile& quaH = app().get_relation()->lfile();
quaH.setkey(1);
quaH.zero();
quaH.put("CODDITTA", app()._codditta);
quaH.put("H1ANNO", app()._anno);
quaH.put("H1ENTE", app()._ente);
quaH.read(_isequal,_unlock);
TExternal_app a(appname);
a.run();
quaH.read(_iscurr,_lock);
f.mask().set_focus();
app().refresh(f.mask());
}
return TRUE;
}
bool TQuadro_H_app::dettaglio(TMask_field& f , KEY k)
{
if (k == K_SPACE)
{
TString appname = "771mod -4";
TToken_string body;
body << F_ANNO << "|";
body << F_ANNO << "=" << f.mask().get(F_H1ANNO) << "|";
body << F_CODDITTA << "=" << f.mask().get(F_CODDITTA) << "|";
body << F_ENTE << "=" << f.mask().get(F_ENTE);
TMessage msg (appname,MSG_FS,(const char*) body);
TMailbox mb;
mb.send(msg);
TLocalisamfile& quaH = app().get_relation()->lfile();
quaH.setkey(1);
quaH.zero();
quaH.put("CODDITTA", app()._codditta);
quaH.put("H1ANNO", app()._anno);
quaH.put("H1ENTE", app()._ente);
quaH.read(_isequal,_unlock);
TExternal_app a(appname);
a.run();
quaH.read(_iscurr,_lock);
f.mask().set_focus();
app().refresh(f.mask());
}
return TRUE;
}
bool TQuadro_H_app::desc_ente(TMask_field& f, KEY k)
{
if (k == K_TAB && f.to_check(k) && f.mask().is_running())
{
TTable ente ("%ENT");
TString descrizione;
TString codice = f.get();
ente.zero();
ente.put("CODTAB", codice);
if (ente.read() == NOERR)
{
descrizione = ente.get("S0");
f.mask().set(F_DESCENTE, descrizione);
}
else
{
descrizione = "";
f.mask().set(F_DESCENTE, descrizione);
return f.warning_box("Valore non presente in tabella Enti previdenziali");
}
}
return TRUE;
}
void TQuadro_H_app::on_config_change()
{
TConfig conf(CONFIG_STUDIO);
_anno = (int) conf.get_long(ANNO_SEL);
}
TMask* TQuadro_H_app::get_mask(int mode)
{
return _msk;
}
bool TQuadro_H_app::almeno_un_dettaglio(TMask& m)
{
TLocalisamfile dett (LF_DETH);
dett.setkey(1);
dett.zero();
dett.put("CODDITTA", _codditta);
dett.put("ANNO", _anno);
dett.put("ENTE", _ente);
for (dett.read();!dett.eof();dett.next())
{
long codditta = dett.get_long("CODDITTA");
int anno = dett.get_int ("ANNO");
TString ente = dett.get ("ENTE");
if (_codditta == codditta && _anno == anno && _ente == ente)
return TRUE;
}
return FALSE;
}
void TQuadro_H_app::init_insert_mode(TMask& m)
{
m.show(F_ENTE);
m.hide(F_ENTEBIS);
m.disable(F_BTG_GENERA);
m.disable(F_BTG_DETTAGLIO);
}
void TQuadro_H_app::init_query_mode(TMask& m)
{
on_config_change();
m.set(F_H1ANNO, _anno);
m.disable(F_BTG_GENERA);
m.disable(F_BTG_DETTAGLIO);
m.show(F_ENTE);
m.hide(F_ENTEBIS);
}
void TQuadro_H_app::init_query_insert_mode(TMask& m)
{
m.set(F_H1ANNO, _anno);
m.hide(F_ENTE);
m.show(F_ENTEBIS);
m.disable(F_BTG_GENERA);
m.disable(F_BTG_DETTAGLIO);
}
void TQuadro_H_app::init_modify_mode(TMask& m)
{
_codditta = m.get_long(F_CODDITTA);
_anno = m.get_int (F_H1ANNO);
_ente = m.get (F_ENTE);
if (almeno_un_dettaglio(m))
m.enable (F_BTG_GENERA);
else
m.disable(F_BTG_GENERA);
m.enable (F_BTG_DETTAGLIO);
m.show(F_ENTE);
m.hide(F_ENTEBIS);
}
int TQuadro_H_app::rewrite(const TMask& m)
{
m.autosave(_rel);
_registra = TRUE;
return _rel->rewrite();
}
int TQuadro_H_app::write(const TMask& m)
{
m.autosave(_rel);
_registra = TRUE;
return _rel->write();
}
bool TQuadro_H_app::remove()
{
_registra = TRUE;
return TRelation_application::remove();
}
bool TQuadro_H_app::user_create()
{
_rel = new TRelation (LF_QUAH);
_msk = new TMask("771290a");
set_search_field(F_H1ANNO);
_msk->set_handler (F_CODDITTA, codditta_hnd);
_msk->set_handler (F_BTG_GENERA, generazione);
_msk->set_handler (F_BTG_DETTAGLIO, dettaglio);
_msk->set_handler (F_ENTE, desc_ente);
_msk->set_handler (F_ENTEBIS, desc_ente);
_registra = FALSE;
return TRUE;
}
bool TQuadro_H_app::user_destroy()
{
if (_registra)
// 20.12.95 l'anno deve essere quello dei parametri
// _rip.set("H",_anno);
_rip.set("H");
delete _msk;
delete _rel;
return TRUE;
}
int m71290(int argc, char* argv[])
{
TQuadro_H_app a;
a.run(argc, argv, "Quadro H");
return 0;
}

13
m770/771290.h Executable file
View File

@ -0,0 +1,13 @@
// Campi maschera manutenzione quadro H 771290a.uml
#define F_CODDITTA 101
#define F_RAGSOC 102
#define F_H1ANNO 103
#define F_ENTE 104
#define F_DAT 105
#define F_LAV 106
#define F_BTG_GENERA 107
#define F_BTG_DETTAGLIO 108
#define F_ENTEBIS 109
#define F_DESCENTE 110

140
m770/771290a.uml Executable file
View File

@ -0,0 +1,140 @@
#include "771290.h"
TOOLBAR "" 0 18 0 4
BUTTON F_BTG_GENERA 21 2
BEGIN
PROMPT -13 -3 "~Generazione"
END
BUTTON F_BTG_DETTAGLIO 21 2
BEGIN
PROMPT -23 -3 "~Dettaglio"
END
#include <toolbar.h>
ENDPAGE
PAGE "Gestione quadro H" -1 -1 78 18
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 0 0 ""
FLAGS "R"
END
NUMBER F_CODDITTA 5
BEGIN
PROMPT 2 1 "Ditta "
FLAGS "GRD"
USE LF_NDITTE KEY 1
FIELD LF_QUAH->CODDITTA
CHECKTYPE REQUIRED
INPUT CODDITTA F_CODDITTA
DISPLAY "Codice" CODDITTA
DISPLAY "Ragione sociale @50" RAGSOC
OUTPUT F_RAGSOC RAGSOC
KEY 1
END
STRING F_RAGSOC 50
BEGIN
PROMPT 2 2 "Ragione sociale "
FLAGS "D"
END
NUMBER F_H1ANNO 4
BEGIN
PROMPT 2 5 "Anno dichiarazione "
FIELD LF_QUAH->H1ANNO
KEY 1
USE LF_QUAH KEY 1 SELECT ((CODDITTA=#F_CODDITTA) && (H1ANNO=#F_H1ANNO))
CHECKTYPE REQUIRED
INPUT CODDITTA F_CODDITTA
INPUT H1ANNO F_H1ANNO
DISPLAY "Ditta" CODDITTA
DISPLAY "Anno" H1ANNO
DISPLAY "Ente" H1ENTE
DISPLAY "Contr.Datore@15" H1DAT
DISPLAY "Contr.Lavoratore" H1LAV
OUTPUT F_H1ANNO H1ANNO
OUTPUT F_ENTE H1ENTE
OUTPUT F_DAT H1DAT
OUTPUT F_LAV H1LAV
FLAGS "R"
END
TEXT DLG_NULL
BEGIN
PROMPT 2 7 "Ente previdenziale"
END
NUMBER F_ENTE 2
BEGIN
PROMPT 2 8 "e assistenza percettore "
COPY USE F_H1ANNO
CHECKTYPE REQUIRED
INPUT CODDITTA F_CODDITTA
INPUT H1ANNO F_H1ANNO
INPUT H1ENTE F_ENTE
COPY DISPLAY F_H1ANNO
COPY OUTPUT F_H1ANNO
FIELD LF_QUAH->H1ENTE
MESSAGE COPY,F_ENTEBIS
KEY 1
END
NUMBER F_ENTEBIS 2
BEGIN
PROMPT 2 8 "e assistenza percettore tabella "
FLAGS "G"
USE %ENT KEY 1
CHECKTYPE FORCED
INPUT CODTAB F_ENTEBIS
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@60" S0
OUTPUT F_ENTEBIS CODTAB
FIELD LF_QUAH->H1ENTE
MESSAGE COPY,F_ENTE
VALIDATE NOT_EMPTY_FUNC
WARNING "Valore non presente in tabella Enti previdenziali"
KEY 1
END
STRING F_DESCENTE 60
BEGIN
PROMPT 2 9 "Descrizione "
FLAGS "D"
END
TEXT DLG_NULL
BEGIN
PROMPT 2 11 "Contributi obbligatori"
END
NUMBER F_DAT 15
BEGIN
PROMPT 2 12 "a carico del datore di lavoro "
FIELD LF_QUAH->H1DAT
PICTURE "."
FLAGS "R"
END
TEXT DLG_NULL
BEGIN
PROMPT 2 14 "Contributi obbligatori a "
END
NUMBER F_LAV 15
BEGIN
PROMPT 2 15 "carico del lavoratore dipendente "
FIELD LF_QUAH->H1LAV
PICTURE "."
FLAGS "R"
END
ENDPAGE
ENDMASK

106
m770/771295.cpp Executable file
View File

@ -0,0 +1,106 @@
#include <applicat.h>
#include <mask.h>
#include <msksheet.h>
#include <relapp.h>
#include <relation.h>
#include <tabutil.h>
#include <urldefid.h>
#include <config.h>
#include <utility.h>
#include <mailbox.h>
#include <execp.h>
#include "771295.h"
#include <nditte.h>
class TDettaglio_H_app : public TRelation_application
{
TRelation * _rel;
TMask * _msk;
int _mode; // Modo maschera corrente
long _codditta;
int _anno;
TString _ente;
protected:
virtual bool user_create();
virtual bool user_destroy();
virtual TRelation* get_relation() const { return _rel; }
virtual TMask* get_mask(int mode);
virtual bool changing_mask(int mode) {return FALSE; }
// void init_mask(TMask&);
//virtual void init_query_mode(TMask&);
//virtual void init_modify_mode(TMask&);
//virtual void init_insert_mode(TMask&);
//virtual void init_query_insert_mode(TMask&);
public:
bool almeno_un_dettaglio(TMask&);
static bool generazione(TMask_field& f , KEY k);
static bool dettaglio (TMask_field& f , KEY k);
static bool descr_ente (TMask_field& f , KEY k);
TDettaglio_H_app() {}
};
bool TDettaglio_H_app::descr_ente (TMask_field& f , KEY k)
{
if (k == K_TAB || k == K_SPACE)
{
TTable ent ("%ENT");
TString16 dep;
TString descr;
int ente = atoi(f.get());
dep.format("%d", ente);
ent.zero();
ent.put("CODTAB", dep);
if (ent.read() == NOERR)
descr = ent.get("S0");
else
descr = "";
f.mask().set(F_DESCRENTE, descr);
}
return TRUE;
}
TMask* TDettaglio_H_app::get_mask(int mode)
{
return _msk;
}
bool TDettaglio_H_app::user_create()
{
_rel = new TRelation (LF_DETH);
_msk = new TMask("771295a");
_msk->set_handler(F_ENTE, descr_ente);
set_search_field(F_ANNO);
return TRUE;
}
bool TDettaglio_H_app::user_destroy()
{
delete _msk;
delete _rel;
return TRUE;
}
int m71295(int argc, char* argv[])
{
TDettaglio_H_app a;
a.run(argc, argv, "Dettaglio Quadro H");
return 0;
}

13
m770/771295.h Executable file
View File

@ -0,0 +1,13 @@
// Campi maschera manutenzione dettaglio quadro H 771295a.uml
#define F_CODDITTA 101
#define F_RAGSOC 102
#define F_ANNO 103
#define F_ENTE 104
#define F_DATAVERS 105
#define F_NUMVERS 106
#define F_NREGINOTA 107
#define F_IMPVERS 108
#define F_CONTRDAT 109
#define F_CONTRLAV 110
#define F_DESCRENTE 111

156
m770/771295a.uml Executable file
View File

@ -0,0 +1,156 @@
#include "771295.h"
TOOLBAR "" 0 20 0 2
#include <toolbar.h>
ENDPAGE
PAGE "Gestione dettaglio quadro H" -1 -1 78 18
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 0 0 ""
FLAGS "R"
END
NUMBER F_CODDITTA 5
BEGIN
PROMPT 2 1 "Ditta "
FLAGS "FRD"
USE LF_NDITTE KEY 1
FIELD LF_DETH->CODDITTA
CHECKTYPE REQUIRED
INPUT CODDITTA F_CODDITTA
DISPLAY "Codice" CODDITTA
DISPLAY "Ragione sociale @50" RAGSOC
OUTPUT F_RAGSOC RAGSOC
KEY 1
END
STRING F_RAGSOC 50
BEGIN
PROMPT 2 2 "Ragione sociale "
FLAGS "D"
END
NUMBER F_ANNO 4
BEGIN
PROMPT 2 4 "Anno dichiarazione "
FIELD LF_DETH->ANNO
KEY 1
USE LF_DETH KEY 1 SELECT ((CODDITTA=#F_CODDITTA) && (ANNO=#F_ANNO) && (ENTE=#F_ENTE))
CHECKTYPE REQUIRED
INPUT CODDITTA F_CODDITTA
INPUT ANNO F_ANNO
DISPLAY "Ditta" CODDITTA
DISPLAY "Anno" ANNO
DISPLAY "Ente@33" ENTE
DISPLAY "Data versamento" DATAVERS
DISPLAY "Numero versamento" NUMVERS
OUTPUT F_ANNO ANNO
OUTPUT F_ENTE ENTE
OUTPUT F_DATAVERS DATAVERS
OUTPUT F_NUMVERS NUMVERS
FLAGS "R"
END
NUMBER F_ENTE 2
BEGIN
PROMPT 2 5 "Ente "
COPY USE F_ANNO
CHECKTYPE REQUIRED
INPUT CODDITTA F_CODDITTA
INPUT ANNO F_ANNO
INPUT ENTE F_ENTE
COPY DISPLAY F_ANNO
COPY OUTPUT F_ANNO
FIELD LF_DETH->ENTE
VALIDATE NOT_EMPTY_FUNC
FLAGS "G"
KEY 1
END
STRING F_DESCRENTE 60
BEGIN
PROMPT 2 6 "Descrizione "
FLAGS "D"
END
DATE F_DATAVERS
BEGIN
PROMPT 2 7 "Data versamento "
COPY USE F_ANNO
CHECKTYPE REQUIRED
INPUT CODDITTA F_CODDITTA
INPUT ANNO F_ANNO
INPUT ENTE F_ENTE
INPUT DATAVERS F_DATAVERS
COPY DISPLAY F_ANNO
COPY OUTPUT F_ANNO
FIELD LF_DETH->DATAVERS
KEY 1
END
NUMBER F_NUMVERS 5
BEGIN
PROMPT 2 8 "Numero versamento "
COPY USE F_ANNO
CHECKTYPE REQUIRED
INPUT CODDITTA F_CODDITTA
INPUT ANNO F_ANNO
INPUT ENTE F_ENTE
INPUT DATAVERS F_DATAVERS
INPUT NUMVERS F_NUMVERS
COPY DISPLAY F_ANNO
COPY OUTPUT F_ANNO
FIELD LF_DETH->NUMVERS
FLAGS "R"
KEY 1
END
NUMBER F_NREGINOTA 7
BEGIN
PROMPT 2 10 "N.ro registr. I nota "
FLAGS "R"
FIELD LF_DETH->NREGINOTA
END
NUMBER F_IMPVERS 15
BEGIN
PROMPT 2 11 "Importo versato "
PICTURE "."
FLAGS "R"
FIELD LF_DETH->IMPVERS
END
TEXT DLG_NULL
BEGIN
PROMPT 2 12 "Contributi obbligatori"
END
NUMBER F_CONTRDAT 15
BEGIN
PROMPT 2 13 "a carico del datore di lavoro "
FIELD LF_DETH->CONTRDAT
PICTURE "."
FLAGS "R"
END
TEXT DLG_NULL
BEGIN
PROMPT 2 14 "Contributi obbligatori a"
END
NUMBER F_CONTRLAV 15
BEGIN
PROMPT 2 15 "carico del lavoratore dipendente "
FIELD LF_DETH->CONTRLAV
PICTURE "."
FLAGS "R"
END
ENDPAGE
ENDMASK

297
m770/771300.cpp Executable file
View File

@ -0,0 +1,297 @@
// 771300.cpp - Gestione quadro I e Prospetto dati generali
//
// 771mod -2 I - quadro I
// 771mod -2 W - prospetto dati generali
// 771mod -2 1 - quadro I dichiarante
// 771mod -2 2 - prospetto dati generali dichiarante
//
// 18.3.96 Aggiunto metodo per registrare flag in QCOMP
// NB se cambia numero quadri, modificare set_rel_field_quadri
//
#include <applicat.h>
#include <mask.h>
#include <msksheet.h>
#include <relapp.h>
#include <relation.h>
#include <tabutil.h>
#include <urldefid.h>
#include <config.h>
#include <utility.h>
#include <checks.h>
#include "771300.h"
#include "77lib.h"
HIDDEN const int QUADRI = 25;
// Corrispondenza tra posizione nel record (campo:QCOMP) e id della maschera
HIDDEN int _dlg_comp_array[QUADRI] = {
F_QCOMPA,
F_QCOMPA1,
F_QCOMPA2,
F_QCOMPA3,
F_QCOMPB,
F_QCOMPB1,
F_QCOMPC,
F_QCOMPD,
F_QCOMPD1,
F_QCOMPE,
F_QCOMPE1,
F_QCOMPE2,
F_QCOMPF,
F_QCOMPF1,
F_QCOMPF2,
F_QCOMPG,
F_QCOMPG1,
F_QCOMPH,
F_QCOMPI,
F_QCOMPN,
F_QCOMPP,
F_QCOMPQ,
F_QCOMPR,
F_QCOMPS,
F_QCOMPT
};
// Da id della maschera ritorna la corrispondente posizione in QCOMP
// Ritorna -1 se viene passato un id che non esiste in _dlg_array
HIDDEN int dlg2pos(const int dlg)
{
for (int i=0; i < QUADRI; i++)
if (_dlg_comp_array[i] == dlg)
return i;
return -1;
}
class TQuadroI : public TRelation_application
{
TRelation * _rel;
TMask * _msk;
char _quadro;
protected:
virtual bool user_create();
virtual bool user_destroy();
virtual TRelation* get_relation() const { return _rel; }
virtual TMask* get_mask(int mode);
virtual bool changing_mask(int mode) {return FALSE; }
virtual int read(TMask& m);
virtual void init_query_mode(TMask&);
virtual void init_modify_mode(TMask&);
virtual int write(const TMask& m);
virtual int rewrite(const TMask& m);
public:
void set_field_quadri(TMask& m);
void set_rel_field_quadri(const TMask& m);
void setta_ditta(TMask& m);
TQuadroI(char q) : _quadro(q) {}
};
HIDDEN TQuadroI& app() { return (TQuadroI&) main_app(); }
void TQuadroI::setta_ditta(TMask& m)
{
TString16 codditta; codditta << get_firm_770();
if (codditta != "0")
{
m.set(F_CODDITTA, codditta);
m.field(F_CODDITTA).check();
}
}
void TQuadroI::init_query_mode(TMask& m)
{
setta_ditta(m);
m.send_key(K_AUTO_ENTER,0);
}
void TQuadroI::init_modify_mode(TMask& m)
{
setta_ditta(m);
if (_quadro == 'W' || _quadro == '2')
{
TConfig conf(CONFIG_STUDIO);
int anno = (int) conf.get_long(ANNO_SEL);
m.set(F_ANNODIC, anno);
}
}
// Scrive i flag di q.comp. nella relazione
void TQuadroI::set_rel_field_quadri(const TMask& m)
{
int dlg, pos;
// NB Cambiare qui se cambia numero quadri
TString qcomp(QUADRI);
qcomp.spaces(QUADRI);
for (dlg=F_QCOMPA; dlg<=F_QCOMPT; dlg++)
{
pos = dlg2pos(dlg);
if (pos >= 0)
qcomp[pos] = m.get(dlg) == "X" ? 'X' : ' ';
}
_rel->curr().put("QCOMP", qcomp);
// Stessa cosa con flag quadri inviati
TString qsuppinv (QUADRI+1);
qsuppinv.spaces(QUADRI+1);
for (pos=0, dlg=F_QSUPPA; dlg<=F_QSUPPT; dlg++, pos++)
{
qsuppinv[pos] = m.get(dlg) == "X" ? 'X' : ' ';
}
_rel->curr().put("QSUPPINV", qsuppinv);
}
void TQuadroI::set_field_quadri(TMask& m)
{
int start_dlg = F_QCOMPA;
int dlg;
// La sequenza e' A A3 B B1..H I poi sotto A1 A2 N..T
TString qcomp (_rel->lfile().get("QCOMP"));
if (qcomp != "")
{
int lenght = qcomp.len();
for (int i = 0; i < lenght; i++)
{
if (qcomp[i] == 'X')
{
dlg = _dlg_comp_array[i];
m.set(dlg, "X");
}
}
}
TString suppinv (_rel->lfile().get("QSUPPINV"));
start_dlg = F_QSUPPA;
if (suppinv != "")
{
int lenght = suppinv.len();
for (int i = 0; i < lenght; i++)
if (suppinv[i] == 'X')
{
dlg = start_dlg + i;
m.set(dlg, "X");
}
}
}
TMask* TQuadroI::get_mask(int mode)
{
return _msk;
}
int TQuadroI::read(TMask& m)
{
m.autoload(_rel);
// Si posiziona sul record del dichiarante, e se non esiste lo crea
if (_quadro == '1' || _quadro == '2')
{
TString16 dep; dep << COD_QUA_I_DIC;
m.set(F_TIPOQUA1, dep);
if (_quadro == '1')
m.set(F_TIPOQUA2, dep);
_rel->curr().put("TIPOQUA", COD_QUA_I_DIC);
const int err = _rel->read();
if (err != NOERR)
enter_dichiar_770(get_firm_770(), anno_770(), TRUE);
m.autoload(_rel);
}
// Setta i flag di quadro compilato nel prospetto dai generali
if (_quadro == 'W' || _quadro == '2')
set_field_quadri(m);
return NOERR;
}
bool TQuadroI::user_create()
{
switch (_quadro)
{
case '1':
_rel = new TRelation (LF_BASE);
_rel->add(LF_BASEBIS,"TIPOQUA=\"D\"&&CODDITTA=CODDITTA",1);
_msk = new TMask("771300a");
break;
case 'I':
_rel = new TRelation (LF_BASE);
_rel->add(LF_BASEBIS,"CODDITTA=CODDITTA",1);
_msk = new TMask("771300a");
break;
case 'W':
_msk = new TMask("771400a");
_rel = new TRelation (LF_BASEBIS);
break;
case '2':
_msk = new TMask("771400b");
_rel = new TRelation (LF_BASEBIS);
break;
default:
break;
}
return TRUE;
}
bool TQuadroI::user_destroy()
{
delete _msk;
delete _rel;
return TRUE;
}
int TQuadroI::write(const TMask& m)
{
TRelation *r = get_relation();
m.autosave(r);
// Setta i flag di quadro compilato nel prospetto dai generali nella relazione
if (_quadro == 'W' || _quadro == '2')
set_rel_field_quadri(m);
r->write();
return r->status();
}
int TQuadroI::rewrite(const TMask& m)
{
TRelation *r = get_relation();
m.autosave(r);
// Setta i flag di quadro compilato nel prospetto dai generali nella relazione
if (_quadro == 'W' || _quadro == '2')
set_rel_field_quadri(m);
r->rewrite();
return r->status();
}
int m71300(int argc, char* argv[])
{
if (argc < 3)
return -1;
char* title = NULL;
char quadro = toupper(*argv[2]);
TQuadroI a (quadro);
switch (quadro)
{
case 'I':
case '1':
title = "Gestione quadro I";
break;
case 'W':
case '2':
title = "Prospetto dati generali";
break;
default:
break;
}
a.run(argc, argv, title);
return 0;
}

217
m770/771300.h Executable file
View File

@ -0,0 +1,217 @@
// 771300.h
// Campi della maschera del QUADRO I
//
// Lista modifiche
//
// 7.5.96 Aggiunti campi per dichiarazione 96
//
#define F_A0NFCOM 101
#define F_A0NLDIP 102
#define F_A0COBB 103
#define F_A0CNET 104
#define F_A0EPREV 105
#define F_A0IITRA 106
#define F_A0CTER 107
#define F_A0TIMP 108
#define F_A0ILOR 109
#define F_A0TDET 110
#define F_A0RTER 111
#define F_A0RDAT 112
#define F_A0ERIT 113
#define F_A0CARR 114
#define F_A0AARR 115
#define F_A0DARR 116
#define F_A0RARR 117
#define F_A0RITSI 118
#define F_A0CINPS 119
#define F_A0RITOPEVA 120
#define F_A0RITOPESA 121
#define F_A0CIIAUT 122
#define F_A0NADLAV 123
#define F_A0NACAAF 124
#define F_B0NFCOM 125
#define F_B0NLDIP 126
#define F_B0TFR93 127
#define F_B0AI 128
#define F_B0COLAV 129
#define F_B0TFR7492 130
#define F_B0AI7492 131
#define F_B0RITSI 132
#define F_B0IMP 133
#define F_B0TIMP 134
#define F_B0ROP 135
#define F_B0AIINPS 136
#define F_B0ROPESA 137
#define F_B0CIIAUT 138
#define F_B1NFCOM 139
#define F_B1NPER 140
#define F_B1TIND 141
#define F_B1TIRM 142
#define F_B1TICOM 143
#define F_C0NFCOM 144
#define F_C0NLASS 145
#define F_C0ACTOT 146
#define F_C0SNSRIT 147
#define F_C0ROPE 148
#define F_C0CIIAUT 149
#define F_D0NFCOM 150
#define F_D0NLAUT 151
#define F_D0ACTOT 152
#define F_D0SNSRIT 153
#define F_D0ROPE 154
#define F_D0CIIAUT 155
#define F_D1NFCOM 156
#define F_D1NPER 157
#define F_D1TACOR 158
#define F_D1SNSRIT 159
#define F_D1ROPE 160
#define F_E0NFCOM 161
#define F_E0NPER 162
#define F_E0AIMP 163
#define F_E0ROPE 164
#define F_E0SNSRIT 165
#define F_E1NFCOM 166
#define F_E1NPER 167
#define F_E1SCOR 168
#define F_E1BCOM 169
#define F_E1ROPE 170
#define F_E1ACOM 171
#define F_E1BCOM2 172
#define F_E1ROPE2 173
#define F_E2NFCOM 174
#define F_E2NPER 175
#define F_E2ROPE 176
#define F_E2SSRIT 177
#define F_F0SRITA 178
#define F_F0ROPEA 179
#define F_F0TACCA 180
#define F_F0EDACCA 181
#define F_F0ERIMA 182
#define F_F0SSRITBF 183
#define F_F0ROPEBF 184
#define F_F0SSVA 185
#define F_F0ROPEVA 186
#define F_F1SSRIT 187
#define F_F1ROPE 188
#define F_F2SSRIT 189
#define F_F2ROPE 190
#define F_G0NFCOM 191
#define F_G0NAZI1 192
#define F_G0UDEN1 193
#define F_G0UNAT1 194
#define F_G0IUTI2 195
#define F_G0ROPE 196
#define F_G0USRIT3 197
#define F_G0RACC3 198
#define F_G0RIMP3 199
#define F_G0UNSRIT3 200
#define F_G0USPE 201
#define F_G0NPER 202
#define F_G0UPAG 212
#define F_G1UCOR 203
#define F_G1USRIT 204
#define F_G1RACC 206
#define F_G1RIMP 207
#define F_G1UNSRIT 208
#define F_H0CODLAV 209
#define F_H0COLDIP 210
#define F_CODDITTA 211
#define F_RAGSOC 212
#define F_CODDITTAG 213
#define F_A0CRIMPRAS 214
#define F_B0CRIMPRAS 215
#define F_C0CRIMPRAS 216
#define F_D0CRIMPRAS 217
#define F_D1CRIMPRAS 218
#define F_E0CRIMPRAS 219
#define F_E1CRIMPRAS 220
#define F_E2CRIMPRAS 221
#define F_F0CRIMPRAS 222
#define F_F1CRIMPRAS 223
#define F_F2CRIMPRAS 224
#define F_G0CRIMPRAS 225
#define F_G1CRIMPRAS 226
// Quadro A-3
#define F_A3NFCOM 218
#define F_A3NUMPER 219
#define F_A3REPT10 220
#define F_A3REPT12 221
// Campi maschera prospetto dati generali
#define F_DATLAV 250
#define F_ER92C93 251
#define F_ER93C94 252
#define F_ANNODIC 253
#define F_H0NQLAGG 254
#define F_NSUPPM 255
// Flag quadri compilati. Attenzione a NON modificare l'ordine!
// (v. 771300.cpp e 771400a.uml e 776100.cpp)
#define F_QCOMPA 256
#define F_QCOMPA3 257
#define F_QCOMPB 258
#define F_QCOMPB1 259
#define F_QCOMPC 260
#define F_QCOMPD 261
#define F_QCOMPD1 262
#define F_QCOMPE 263
#define F_QCOMPE1 264
#define F_QCOMPE2 265
#define F_QCOMPF 266
#define F_QCOMPF1 267
#define F_QCOMPF2 268
#define F_QCOMPG 269
#define F_QCOMPG1 270
#define F_QCOMPH 271
#define F_QCOMPI 272
#define F_QCOMPA1 273
#define F_QCOMPA2 274
#define F_QCOMPN 275
#define F_QCOMPP 276
#define F_QCOMPQ 277
#define F_QCOMPR 278
#define F_QCOMPS 279
#define F_QCOMPT 280
#define F_QSUPPA 400
#define F_QSUPPA1 401
#define F_QSUPPA2 402
#define F_QSUPPA3 403
#define F_QSUPPB 404
#define F_QSUPPB1 405
#define F_QSUPPC 406
#define F_QSUPPD 407
#define F_QSUPPD1 408
#define F_QSUPPE 409
#define F_QSUPPE1 410
#define F_QSUPPE2 411
#define F_QSUPPF 412
#define F_QSUPPF1 413
#define F_QSUPPF2 414
#define F_QSUPPG 415
#define F_QSUPPG1 416
#define F_QSUPPH 417
#define F_QSUPPI 418
#define F_QSUPPL 419
#define F_QSUPPN 420
#define F_QSUPPP 421
#define F_QSUPPQ 422
#define F_QSUPPR 423
#define F_QSUPPS 424
#define F_QSUPPT 425
#define F_CRIMPDL357 307
#define F_TIPOQUA1 430
#define F_TIPOQUA2 431
#define F_TIPOQUA 432
// Aggiunte 96
#define F_A0CRIMPL85 433
#define F_A0INCDET 434
#define F_B0CRIMPL85 435
#define F_C0CONTSSN 436
#define F_D0CRIMPL85 437
#define F_G0ROPESPET 438

1391
m770/771300a.uml Executable file

File diff suppressed because it is too large Load Diff

503
m770/771310.cpp Executable file
View File

@ -0,0 +1,503 @@
// 771310.cpp - Modello 770 - Gestione quadro L
#include <applicat.h>
#include <mask.h>
#include <msksheet.h>
#include <relapp.h>
#include <relation.h>
#include <tabutil.h>
#include <urldefid.h>
#include <config.h>
#include <utility.h>
#include <mailbox.h>
#include <execp.h>
#include "771310.h"
#include "774100.h"
#include "774200.h"
#include "77lib.h"
#include "scperc.h"
#include "rver.h"
#include "rpag.h"
#include "quadrol.h"
class M71310_application : public TRelation_application
{
TRelation* _rel;
TMask* _msk;
TGenera _app;
TConfig* _cnf;
int _anno;
protected:
virtual bool user_create();
virtual bool user_destroy();
virtual TRelation* get_relation() const { return _rel; }
virtual TMask* get_mask(int mode) { return _msk; }
virtual bool changing_mask(int mode) {return FALSE; }
virtual void init_query_mode(TMask&);
virtual void init_modify_mode(TMask&);
virtual void init_insert_mode(TMask&);
virtual void on_config_change();
virtual int rewrite(const TMask& m);
virtual int write(const TMask& m);
void build_note(const TMask& m);
void set_field_note(TMask& m);
bool changed_anno_dic(TMask& m);
real arrotonda(const TMask& m);
static bool generazione (TMask_field& f, KEY k);
static bool genera_para (TMask_field& f, KEY k);
static bool tipo (TMask_field& f, KEY k);
static bool luogo (TMask_field& f, KEY k);
static bool auto_premi (TMask_field& f, KEY k);
static bool mese (TMask_field& f, KEY k);
static bool anno (TMask_field& f, KEY k);
static bool cod_tributo (TMask_field& f, KEY k);
static bool codditta_hnd(TMask_field& f, KEY k);
static bool artbil_hnd(TMask_field& f, KEY k);
public:
M71310_application() {}
};
M71310_application& app() { return (M71310_application&) main_app(); }
bool M71310_application::generazione(TMask_field& f , KEY k)
{
if (k == K_SPACE)
app()._app.set(get_firm_770(), app()._cnf);
return TRUE;
}
bool M71310_application::genera_para(TMask_field& f , KEY k)
{
if (k == K_SPACE)
{
TString appname("776mod -4 d");
TExternal_app a(appname);
a.run();
f.mask().set_focus();
}
return TRUE;
}
bool M71310_application::codditta_hnd(TMask_field& f, KEY k)
{
if (k == K_TAB && !(f.mask().is_running()) )
{
TString16 codditta; codditta << get_firm_770();
if (codditta != "0")
{
f.set(codditta);
f.check();
}
}
return TRUE;
}
bool M71310_application::mese(TMask_field& f , KEY k)
{
// is_running() serve per fare il controllo solo quando la maschera sta andando
// In questo modo tutti i K_TAB che ricevono i campi durante la costruzione della maschera
// vengono ignorati.
// Il K_TAB mi fa scattare il controllo quando lascio il campo
// Il K_ENTER mi serve per fare i controlli quando uso uno dei tasti della bottoniera
if (k == K_TAB || k == K_ENTER)
{
int mese = f.mask().get_int(F_QLMESEPAG);
if (mese == 0)
{
f.error_box("Il mese di pagamento deve essere indicato obbligatoriamente");
return FALSE;
}
}
return TRUE;
}
bool M71310_application::anno(TMask_field& f , KEY k)
{
// is_running() serve per fare il controllo solo quando la maschera sta andando
// In questo modo tutti i K_TAB che ricevono i campi durante la costruzione della maschera
// vengono ignorati.
// Il K_TAB mi fa scattare il controllo quando lascio il campo
// Il K_ENTER mi serve per fare i controlli quando uso uno dei tasti della bottoniera
if ((k == K_TAB && f.mask().is_running()) || k == K_ENTER)
{
int anno = f.mask().get_int(F_QLANNOPAG);
if (anno == 0)
return f.error_box("L'anno di pagamento deve essere indicato obbligatoriamente");
}
return TRUE;
}
bool M71310_application::cod_tributo(TMask_field& f , KEY k)
{
// is_running() serve per fare il controllo solo quando la maschera sta andando
// In questo modo tutti i K_TAB che ricevono i campi durante la costruzione della maschera
// vengono ignorati.
// Il K_TAB mi fa scattare il controllo quando lascio il campo
// Il K_ENTER mi serve per fare i controlli quando uso uno dei tasti della bottoniera
if ((k == K_TAB && f.mask().is_running()) || k == K_ENTER)
{
int tributo = f.mask().get_int(F_QLCODTRIB);
if (tributo == 0)
{
f.error_box("Il codice tributo deve essere indicato obbligatoriamente");
return FALSE;
}
}
return TRUE;
}
// "auto-premimento"
// Sia da F_ABI che da F_NUMERO
bool M71310_application::auto_premi(TMask_field& f, KEY k)
{
if (k == K_TAB && f.mask().is_running())
{
TLocalisamfile qual (LF_QUAL,FALSE);
TMask& m = f.mask();
long codditta = m.get_long(F_CODDITTA);
TDate datavers (m.get(F_QLDATAVERS));
TString data = datavers.string();
int mesepag = m.get_int(F_QLMESEPAG);
int annopag = m.get_int(F_QLANNOPAG);
char luovers = m.get (F_QLLUOVERS)[0];
char tipovers = m.get (F_QLTIPOVERS)[0];
long codtrib = m.get_long(F_QLCODTRIB);
int artbil = m.get_int(F_ARTBIL);
TString serie(m.get(FH_ABISERIE));
TString numero(m.get(FH_NUMERO));
// TString cab(m.get(FH_CAB));
// TString nprog(m.get(FH_NPROG));
// Se abi/cab devo attaccare al cab il progressivo vers.banca
// if (tipovers == DELEGA_BANCARIA)
// numero << nprog;
qual.setkey(1);
qual.zero();
qual.put(QUL_CODDITTA, codditta);
qual.put(QUL_QLDV, datavers);
qual.put(QUL_QLMP, mesepag);
qual.put(QUL_QLAP, annopag);
qual.put(QUL_QLLV, luovers);
qual.put(QUL_QLTV, tipovers);
qual.put(QUL_QLCT, (long)codtrib);
qual.put(QUL_QLAB, (long)artbil);
qual.put(QUL_QLSERIE, serie);
qual.put(QUL_QLNUMERO, numero);
if (qual.read() == NOERR)
f.mask().stop_run(K_AUTO_ENTER);
else
f.mask().stop_run(K_INS);
}
return TRUE;
}
bool M71310_application::tipo(TMask_field& f , KEY k)
{
if (k == K_SPACE)
{
char tipo = f.mask().get(F_QLTIPOVERS)[0];
char luogo = f.mask().get(F_QLLUOVERS)[0];
if (tipo == 'D' && luogo == 'T')
f.mask().hide(F_QLSERIE);
else
f.mask().show(F_QLSERIE);
}
return TRUE;
}
bool M71310_application::luogo(TMask_field& f , KEY k)
{
if (k == K_SPACE)
{
char tipo = f.mask().get(F_QLTIPOVERS)[0];
char luogo = f.mask().get(F_QLLUOVERS)[0];
if (tipo == 'D' && luogo == 'T')
f.mask().hide(F_QLSERIE);
else
f.mask().show(F_QLSERIE);
}
return TRUE;
}
// Tenta di mandare il focus al campo visibile invece che a quello
// nascosto
bool M71310_application::artbil_hnd(TMask_field& f , KEY k)
{
if (k == K_TAB)
{
TMask& m = f.mask();
const char tipo = m.get(F_QLTIPOVERS)[0];
const char luogo = m.get(F_QLLUOVERS)[0];
// Determina chi ha il focus in questo momento
TMask_field& fld = m.focus_field();
// Se il focus e' sull'ultimo campo prima di F_ABI
if (fld.dlg() == F_ARTBIL)
{
// WINDOW win;
// Determina chi ce lo dovrebbe avere dopo..
if (tipo == 'B')
{
TMask_field& fabi = m.field(F_ABI);
fabi.set_focus();
// win = m.field(F_ABI).win();
// m.set_focus_win(win, TRUE);
}
}
}
return TRUE;
}
void M71310_application::on_config_change()
{
TConfig conf(CONFIG_STUDIO);
_anno = (int) conf.get_long(ANNO_SEL);
}
// Determina se l'utente ha cambiato l'anno di dichiarazione
// impostato. Se si' non bisogna toccarlo
bool M71310_application::changed_anno_dic(TMask& m)
{
const int anno_corr = m.get_int(F_ANNODIC);
return anno_corr ? anno_corr != _anno : FALSE;
}
void M71310_application::init_insert_mode(TMask& m)
{
if (!changed_anno_dic(m))
m.set(F_ANNODIC, _anno);
m.disable(F_ANNODIC);
m.disable(F_GENERA);
m.enable (F_QLRITEFF);
m.enable (F_QLRITVER);
m.enable (F_QLRSS);
//m.enable (F_QLNOTE);
m.enable (F_NOTEA);
m.enable (F_NOTEB);
m.enable (F_NOTEC);
m.enable (F_NOTED);
m.enable (F_NOTEE);
m.enable (F_NOTEF);
m.enable (F_NOTEG);
}
void M71310_application::init_query_mode(TMask& m)
{
if (!changed_anno_dic(m))
m.set(F_ANNODIC, _anno);
m.enable(F_ANNODIC);
m.enable (F_GENERA);
m.disable(F_QLRITEFF);
m.disable(F_QLRITVER);
m.disable(F_QLRSS);
//m.disable(F_QLNOTE);
m.disable(F_NOTEA);
m.disable(F_NOTEB);
m.disable(F_NOTEC);
m.disable(F_NOTED);
m.disable(F_NOTEE);
m.disable(F_NOTEF);
m.disable(F_NOTEG);
}
void M71310_application::init_modify_mode(TMask& m)
{
if (!changed_anno_dic(m))
m.set(F_ANNODIC, _anno);
m.disable(F_ANNODIC);
set_field_note(m);
m.disable(F_GENERA);
m.enable (F_QLRITEFF);
m.enable (F_QLRITVER);
m.enable (F_QLRSS);
//m.enable (F_QLNOTE);
m.enable (F_NOTEA);
m.enable (F_NOTEB);
m.enable (F_NOTEC);
m.enable (F_NOTED);
m.enable (F_NOTEE);
m.enable (F_NOTEF);
m.enable (F_NOTEG);
}
void M71310_application::set_field_note(TMask& m)
{
TString note = _rel->lfile().get(QUL_QLNOTE);
if (note != "")
{
char A,B,C,D,E,F,G;
int p = note.len() - 1;
A = note[0];
if (p >= 1)
B = note[1];
if (p >= 2)
C = note[2];
if (p >= 3)
D = note[3];
if (p >= 4)
E = note[4];
if (p >= 5)
F = note[5];
if (p >= 6)
G = note[6];
if (A == 'A')
m.set(F_NOTEA, "X");
if (B == 'B')
m.set(F_NOTEB, "X");
if (C == 'C')
m.set(F_NOTEC, "X");
if (D == 'D')
m.set(F_NOTED, "X");
if (E == 'E')
m.set(F_NOTEE, "X");
if (F == 'F')
m.set(F_NOTEF, "X");
if (G == 'G')
m.set(F_NOTEG, "X");
}
}
void M71310_application::build_note(const TMask& m)
{
char A = m.get(F_NOTEA)[0];
char B = m.get(F_NOTEB)[0];
char C = m.get(F_NOTEC)[0];
char D = m.get(F_NOTED)[0];
char E = m.get(F_NOTEE)[0];
char F = m.get(F_NOTEF)[0];
char G = m.get(F_NOTEG)[0];
TString16 note;
if (A == 'X')
note[0] = 'A';
else
note[0] = ' ';
if (B == 'X')
note[1] = 'B';
else
note[1] = ' ';
if (C == 'X')
note[2] = 'C';
else
note[2] = ' ';
if (D == 'X')
note[3] = 'D';
else
note[3] = ' ';
if (E == 'X')
note[4] = 'E';
else
note[4] = ' ';
if (F == 'X')
note[5] = 'F';
else
note[5] = ' ';
if (G == 'X')
note[6] = 'G';
else
note[6] = ' ';
note [7] = '\0';
_rel->lfile().put(QUL_QLNOTE, note);
}
// Arrotonda l'importo versato
real M71310_application::arrotonda(const TMask& m)
{
real rImpVers = m.get_real(F_QLRITVER);
real rImpArr = round_770(rImpVers);
return rImpArr;
}
int M71310_application::rewrite(const TMask& m)
{
real rImpVersArr;
build_note(m);
m.autosave(_rel);
rImpVersArr = arrotonda(m);
_rel->lfile().put(QUL_QLRITVER, rImpVersArr);
return _rel->rewrite();
}
int M71310_application::write(const TMask& m)
{
real rImpVersArr;
build_note(m);
m.autosave(_rel);
rImpVersArr = arrotonda(m);
_rel->lfile().put(QUL_QLRITVER, rImpVersArr);
return _rel->write();
}
bool M71310_application::user_create()
{
_cnf = new TConfig(CONFIG_STUDIO);
_rel = new TRelation (LF_QUAL);
_msk = new TMask("771310a");
set_search_field(F_QLANNOPAG);
_msk->set_handler (F_GENERA, generazione);
_msk->set_handler (F_PARAMETRI, genera_para);
_msk->set_handler (F_CODDITTA, codditta_hnd);
_msk->set_handler (F_QLTIPOVERS, tipo);
_msk->set_handler (F_QLLUOVERS, luogo);
_msk->set_handler (F_QLMESEPAG, mese);
_msk->set_handler (F_QLANNOPAG, anno);
_msk->set_handler (F_QLCODTRIB, cod_tributo);
_msk->set_handler (F_QLNUMERO, auto_premi);
_msk->set_handler (F_CAB, auto_premi);
_msk->set_handler (F_ARTBIL, artbil_hnd);
return TRUE;
}
bool M71310_application::user_destroy()
{
delete _msk;
delete _rel;
delete _cnf;
return TRUE;
}
int m71310(int argc, char* argv[])
{
M71310_application a;
a.run(argc, argv, "Gestione quadro L");
return 0;
}

39
m770/771310.h Executable file
View File

@ -0,0 +1,39 @@
// Campi maschera quadro L
#define F_CODDITTA 101
#define F_RAGSOC 102
#define F_QLDATAVERS 103
#define F_QLLUOVERS 104
#define F_QLTIPOVERS 105
#define F_QLCODTRIB 106
#define F_QLANNOPAG 107
#define F_QLMESEPAG 108
#define F_ARTBIL 109
#define F_QLSERIE 110
#define F_QLNUMERO 111
#define F_QLCODQUA 112
#define F_QLRITEFF 113
#define F_QLRITVER 114
#define F_QLRSS 115
#define F_QLNOTE 116
#define F_GENERA 117
#define F_ANNODIC 118
#define F_NOTEA 119
#define F_NOTEB 120
#define F_NOTEC 121
#define F_NOTED 122
#define F_NOTEE 123
#define F_NOTEF 124
#define F_NOTEG 125
#define F_PARAMETRI 126
#define F_QUADRO 130
#define F_ABI 131
#define F_CAB 132
#define F_CAB1 133
#define F_CAB2 134
#define FH_ABISERIE 135
#define FH_CAB 136
#define FH_NUMERO 137
#define FH_NPROG 138

354
m770/771310a.uml Executable file
View File

@ -0,0 +1,354 @@
// 771310a.uml - Quadro L
#include "771310.h"
TOOLBAR "" 0 18 0 4
BUTTON F_GENERA 21 2
BEGIN
PROMPT -13 -3 "~Generazione"
END
BUTTON F_PARAMETRI 21 2
BEGIN
PROMPT -23 -3 "~Parametri Generazione"
END
#include <toolbar.h>
ENDPAGE
PAGE "QUADRO L" -1 -1 78 18
#define ABI_CAB 7
#define NUM_SERIE 8
#define TEXT_NUM_SERIE 9
#define TEXT_ABI_CAB 6
#define GH 10
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 0 0 ""
FLAGS "R"
END
NUMBER F_CODDITTA 5
BEGIN
PROMPT 2 1 "Ditta "
FLAGS "RDG"
USE LF_NDITTE KEY 1
FIELD LF_QUAL->CODDITTA
CHECKTYPE REQUIRED
INPUT CODDITTA F_CODDITTA
DISPLAY "Codice" CODDITTA
DISPLAY "Ragione sociale @50" RAGSOC
OUTPUT F_RAGSOC RAGSOC
KEY 1
END
STRING F_RAGSOC 50
BEGIN
PROMPT 2 2 "Ragione sociale "
FLAGS "D"
END
TEXT 96
BEGIN
PROMPT 2 10 "Numero serie "
GROUP TEXT_NUM_SERIE
END
TEXT 97
BEGIN
PROMPT 2 10 "Codice ABI "
GROUP ABI_CAB
END
TEXT 98
BEGIN
PROMPT 46 10 "Numero quietanza "
GROUP TEXT_NUM_SERIE
END
TEXT 99
BEGIN
PROMPT 46 10 "Codice CAB "
GROUP ABI_CAB
END
GROUPBOX DLG_NULL 78 7
BEGIN
PROMPT 0 5 ""
END
NUMBER F_ANNODIC 4
BEGIN
PROMPT 2 4 "Anno dichiarazione "
END
NUMBER F_QLANNOPAG 4
BEGIN
PROMPT 2 6 "Anno pagamento "
USE LF_QUAL KEY 1 SELECT ((CODDITTA=#F_CODDITTA) && (QLAP=#F_ANNODIC))
INPUT CODDITTA F_CODDITTA
INPUT QLAP F_QLANNOPAG
DISPLAY "A.P." QLAP
DISPLAY "M.P." QLMP
DISPLAY "Ritenute@15" QLRITEFF
DISPLAY "Importo versato" QLRITVER
DISPLAY "L.V." QLLV
DISPLAY "T.V." QLTV
DISPLAY "C.T." QLCT
DISPLAY "Art.Bil." QLAB
DISPLAY "Data Vers." QLDV
DISPLAY "Serie/ABI" QLSERIE
DISPLAY "Numero/CAB@11" QLNUMERO
DISPLAY "Rss" QLRSS
DISPLAY "Note@7" QLNOTE
OUTPUT F_QLDATAVERS QLDV
OUTPUT F_QLMESEPAG QLMP
OUTPUT F_QLANNOPAG QLAP
OUTPUT F_QLLUOVERS QLLV
OUTPUT F_QLTIPOVERS QLTV
OUTPUT F_QLCODTRIB QLCT
OUTPUT F_ARTBIL QLAB
OUTPUT F_QLSERIE QLSERIE
OUTPUT F_ABI QLSERIE
OUTPUT FH_NUMERO QLNUMERO
OUTPUT FH_ABISERIE QLSERIE
OUTPUT F_CAB1 QLNUMERO[1,5]
OUTPUT F_CAB QLNUMERO[6,11]
FIELD LF_QUAL->QLAP
FLAGS "R"
VALIDATE FIXLEN_FUNC 4
WARNING "L' anno deve essere indicato per esteso"
KEY 1
END
LIST F_QLMESEPAG 2 13
BEGIN
PROMPT 46 6 "Mese pagamento "
FIELD LF_QUAL->QLMP
ITEM " |Indefinito"
FLAGS "M"
KEY 1
END
DATE F_QLDATAVERS
BEGIN
PROMPT 2 7 "Data versamento "
FIELD LF_QUAL->QLDV
KEY 1
END
LIST F_QLLUOVERS 11
BEGIN
PROMPT 46 7 "Luogo versamento "
ITEM " |Nessuno"
ITEM "C|Concessione"
ITEM "T|Tesoreria"
FIELD LF_QUAL->QLLV
KEY 1
END
LIST F_QLTIPOVERS 15
BEGIN
PROMPT 2 8 "Tipo versamento "
ITEM " |Nessuno"
MESSAGE SHOW,97|SHOW,99|HIDE,96|HIDE,98|RESET,GH@
MESSAGE ENABLE,F_QLSERIE
ITEM "B|Delega bancaria"
MESSAGE RESET,GH@|HIDE,TEXT_NUM_SERIE@|SHOW,ABI_CAB@
MESSAGE ENABLE,ABI_CAB@|DISABLE,NUM_SERIE@
ITEM "D|Distinta"
MESSAGE RESET,GH@|SHOW,TEXT_NUM_SERIE@|HIDE,ABI_CAB@
MESSAGE ENABLE,NUM_SERIE@|DISABLE,ABI_CAB@
ITEM "C|C/C Postale"
MESSAGE RESET,GH@|SHOW,TEXT_NUM_SERIE@|CLEAR,F_ABI|CLEAR,F_QLSERIE|HIDE,ABI_CAB@
MESSAGE DISABLE,F_QLSERIE|DISABLE,ABI_CAB@
FIELD LF_QUAL->QLTV
KEY 1
END
NUMBER F_QLCODTRIB 4
BEGIN
PROMPT 46 8 "Codice tributo "
FIELD LF_QUAL->QLCT
KEY 1
END
NUMBER F_ARTBIL 2
BEGIN
PROMPT 2 9 "Articolo di bilancio "
FIELD LF_QUAL->QLAB
KEY 1
END
STRING FH_ABISERIE 5
BEGIN
PROMPT 0 1 "HABISERIE"
FIELD LF_QUAL->QLSERIE
FLAGS "D"
KEY 1
GROUP GH
END
STRING FH_NUMERO 11
BEGIN
PROMPT 0 2 "HNUMERO"
FIELD LF_QUAL->QLNUMERO
KEY 1
FLAGS "D"
GROUP GH
END
STRING F_QLSERIE 5
BEGIN
PROMPT 23 10 ""
FIELD LF_QUAL->QLSERIE
MESSAGE COPY,FH_ABISERIE
GROUP NUM_SERIE
// KEY 1
END
STRING F_QLNUMERO 11
BEGIN
PROMPT 63 10 ""
FIELD LF_QUAL->QLNUMERO
// MESSAGE COPY,FH_NUMERO
GROUP NUM_SERIE
// KEY 1
END
NUMBER F_ABI 5
BEGIN
PROMPT 23 10 ""
FIELD LF_QUAL->QLSERIE
MESSAGE COPY,FH_ABISERIE
GROUP ABI_CAB
// KEY 1
END
NUMBER F_CAB1 5
BEGIN
PROMPT 63 10 ""
FIELD LF_QUAL->QLNUMERO[1,5]
// MESSAGE COPY,FH_NUMERO
GROUP ABI_CAB
// KEY 1
END
NUMBER F_CAB 6
BEGIN
PROMPT 69 10 ""
FIELD LF_QUAL->QLNUMERO[6,11]
FLAGS "Z"
// MESSAGE ADD,FH_NUMERO
GROUP ABI_CAB
// KEY 1
END
LIST F_QUADRO 2
BEGIN
PROMPT 0 12 "Codice quadro "
HELP "Inserire il codice quadro"
ITEM "| "
ITEM "A|A"
ITEM "B|B"
ITEM "B1|B1"
ITEM "C|C"
ITEM "D|D"
ITEM "D1|D1"
ITEM "E|E"
ITEM "E1|E1"
ITEM "G|G"
ITEM "G1|G1"
FIELD LF_QUAL->QLCODQUA
END
TEXT DLG_NULL
BEGIN
PROMPT 0 13 "Somme assoggettate a ritenuta:"
END
TEXT DLG_NULL
BEGIN
PROMPT 0 14 "Rit. Effettuate"
END
NUMBER F_QLRITEFF 15
BEGIN
PROMPT 0 15 ""
FIELD LF_QUAL->QLRITEFF
PICTURE "."
FLAGS "R"
END
TEXT DLG_NULL
BEGIN
PROMPT 17 14 "Importo versato"
END
NUMBER F_QLRITVER 15
BEGIN
PROMPT 17 15 ""
FIELD LF_QUAL->QLRITVER
PICTURE "."
FLAGS "R"
END
TEXT DLG_NULL
BEGIN
PROMPT 37 14 "RSS"
END
LIST F_QLRSS 7
BEGIN
PROMPT 34 15 ""
ITEM " |Nessuna"
ITEM "1|VA"
ITEM "2|SA"
ITEM "3|SI"
FIELD LF_QUAL->QLRSS
END
TEXT DLG_NULL
BEGIN
PROMPT 58 14 "Note"
END
BOOLEAN F_NOTEA
BEGIN
PROMPT 45 15 "A"
END
BOOLEAN F_NOTEB
BEGIN
PROMPT 50 15 "B"
END
BOOLEAN F_NOTEC
BEGIN
PROMPT 55 15 "C"
END
BOOLEAN F_NOTED
BEGIN
PROMPT 60 15 "D"
END
BOOLEAN F_NOTEE
BEGIN
PROMPT 65 15 "E"
END
BOOLEAN F_NOTEF
BEGIN
PROMPT 70 15 "F"
END
BOOLEAN F_NOTEG
BEGIN
PROMPT 75 15 "G"
END
ENDPAGE
ENDMASK

16
m770/771310b.uml Executable file
View File

@ -0,0 +1,16 @@
PAGE "Generazione quadro L" -1 -1 40 4
BUTTON DLG_PRINT 10 2
BEGIN
PROMPT -12 -1 "~Stampa"
MESSAGE EXIT,K_ENTER
END
BUTTON DLG_QUIT 10 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK

55
m770/771400.h Executable file
View File

@ -0,0 +1,55 @@
// Campi maschera prospetto dati generali
#define F_DATLAV 250
#define F_ER92C93 251
#define F_ER93C94 252
#define F_ANNODIC 253
#define F_H0NQLAGG 254
#define F_NSUPPM 255
#define F_QCOMPA 256
#define F_QCOMPB 257
#define F_QCOMPB1 258
#define F_QCOMPC 259
#define F_QCOMPD 260
#define F_QCOMPD1 261
#define F_QCOMPE 262
#define F_QCOMPE1 263
#define F_QCOMPE2 264
#define F_QCOMPF 265
#define F_QCOMPF1 266
#define F_QCOMPF2 267
#define F_QCOMPG 268
#define F_QCOMPG1 269
#define F_QCOMPH 270
#define F_QCOMPI 271
#define F_QCOMPN 272
#define F_QCOMPP 273
#define F_QCOMPQ 274
#define F_QCOMPR 275
#define F_QCOMPS 276
#define F_QCOMPT 277
#define F_QSUPPA 278
#define F_QSUPPB 279
#define F_QSUPPB1 280
#define F_QSUPPC 281
#define F_QSUPPD 282
#define F_QSUPPD1 283
#define F_QSUPPE 284
#define F_QSUPPE1 285
#define F_QSUPPE2 286
#define F_QSUPPF 287
#define F_QSUPPF1 288
#define F_QSUPPF2 289
#define F_QSUPPG 290
#define F_QSUPPG1 291
#define F_QSUPPH 292
#define F_QSUPPI 293
#define F_QSUPPL 294
#define F_QSUPPN 295
#define F_QSUPPP 296
#define F_QSUPPQ 297
#define F_QSUPPR 298
#define F_QSUPPS 299
#define F_QSUPPT 300

523
m770/771400a.uml Executable file
View File

@ -0,0 +1,523 @@
// Versione senza FIELD
#include "771300.h"
TOOLBAR "" 0 20 0 2
BUTTON DLG_SAVEREC 10 2
BEGIN
PROMPT -15 -1 "~Registra"
MESSAGE EXIT,K_SAVE
END
BUTTON DLG_CANCEL 10 2
BEGIN
PROMPT -45 -1 ""
MESSAGE EXIT,K_ESC
END
BUTTON DLG_QUIT 10 2
BEGIN
PROMPT -55 -1 ""
MESSAGE EXIT,K_QUIT
END
ENDPAGE
PAGE "Prospetto dati generali" -1 -1 78 18
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 0 0 ""
FLAGS "R"
END
NUMBER F_CODDITTA 5
BEGIN
PROMPT 2 1 "Ditta "
FLAGS "DGR"
USE LF_NDITTE KEY 1
INPUT CODDITTA F_CODDITTA
DISPLAY "Codice" CODDITTA
DISPLAY "Ragione sociale @50" RAGSOC
OUTPUT F_RAGSOC RAGSOC
MESSAGE COPY,1@
FIELD LF_BASEBIS->CODDITTA
CHECKTYPE REQUIRED
KEY 1
END
STRING F_RAGSOC 50
BEGIN
PROMPT 2 2 "Ragione sociale "
FLAGS "D"
MESSAGE COPY,2@
END
LISTBOX F_TIPOQUA 2
BEGIN
PROMPT 90 90 ""
ITEM " |Normale"
ITEM "D|Dichiarante"
FLAGS "D"
KEY 1
FIELD LF_BASEBIS->TIPOQUA
// CHECKTYPE REQUIRED
END
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 0 4 "Dati relativi al conguaglio di fine anno effettuato dai datori di lavoro"
END
NUMBER F_ER92C93 15
BEGIN
PROMPT 1 5 "Eccedenza di ritenute di fine 1994 compensata nel 1995 "
FIELD LF_BASEBIS->ECCRIT12
PICTURE "."
FLAGS "R"
END
NUMBER F_ER93C94 15
BEGIN
PROMPT 1 6 "Eccedenza di ritenute di fine 1995 da compensare nel 1996 "
FIELD LF_BASEBIS->ECCRIT23
PICTURE "."
FLAGS "R"
END
GROUPBOX DLG_NULL 78 6
BEGIN
PROMPT 0 8 "Prospetto riservato ai sostituti non tenuti a presentare la dichiarazione"
END
NUMBER F_CRIMPDL357 15
BEGIN
PROMPT 1 9 "Credito di imposta ex D.L.357/94 spettante "
FIELD LF_BASEBIS->CRIMPDL
PICTURE "."
FLAGS "R"
END
NUMBER F_CRIMPDL357 15
BEGIN
PROMPT 1 10 "Credito di imposta utilizzato ai fini IVA "
FIELD LF_BASEBIS->CRIMPIVA
PICTURE "."
FLAGS "R"
END
NUMBER F_CRIMPDL357 15
BEGIN
PROMPT 1 11 "Credito di imposta utilizzato per versamento ritenute "
FIELD LF_BASEBIS->CRIMPRIT
PICTURE "."
FLAGS "R"
END
NUMBER F_CRIMPDL357 15
BEGIN
PROMPT 1 12 "Credito di imposta residuo "
FIELD LF_BASEBIS->CRIMPRES
PICTURE "."
FLAGS "R"
END
ENDPAGE
PAGE "Prospetto dati generali" -1 -1 78 18
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 0 0 ""
FLAGS "R"
END
NUMBER DLG_NULL 5
BEGIN
PROMPT 2 1 "Ditta "
FLAGS "RDG"
GROUP 1
END
STRING DLG_NULL 50
BEGIN
PROMPT 2 2 "Ragione sociale "
FLAGS "D"
GROUP 2
END
GROUPBOX DLG_NULL 78 15
BEGIN
PROMPT 0 3 ""
END
TEXT DLG_NULL
BEGIN
PROMPT 1 4 "Il sottoscritto dichiara di aver corrisposto a dipendenti e terzi nell'anno"
END
NUMBER F_ANNODIC 4
BEGIN
PROMPT 1 5 ""
FLAGS "RD"
END
TEXT DLG_NULL
BEGIN
PROMPT 7 5 "le somme e i valori e di aver effettuato le ritenute indicate"
END
TEXT DLG_NULL
BEGIN
PROMPT 7 6 "nei quadri:"
END
#define RA 8
#define RB 9
#define RC0 11
#define RC1 12
#define RD 13
BOOLEAN F_QCOMPA
BEGIN
PROMPT 2 RA "A"
END
BOOLEAN F_QCOMPA3
BEGIN
PROMPT 8 RA "A3"
END
BOOLEAN F_QCOMPB
BEGIN
PROMPT 14 RA "B"
END
BOOLEAN F_QCOMPB1
BEGIN
PROMPT 20 RA "B1"
END
BOOLEAN F_QCOMPC
BEGIN
PROMPT 26 RA "C"
END
BOOLEAN F_QCOMPD
BEGIN
PROMPT 32 RA "D"
END
BOOLEAN F_QCOMPD1
BEGIN
PROMPT 38 RA "D1"
END
BOOLEAN F_QCOMPE
BEGIN
PROMPT 44 RA "E"
END
BOOLEAN F_QCOMPE1
BEGIN
PROMPT 50 RA "E1"
END
BOOLEAN F_QCOMPE2
BEGIN
PROMPT 56 RA "E2"
END
BOOLEAN F_QCOMPF
BEGIN
PROMPT 62 RA "F"
END
BOOLEAN F_QCOMPF1
BEGIN
PROMPT 68 RA "F1"
END
BOOLEAN F_QCOMPF2
BEGIN
PROMPT 2 RB "F2"
END
BOOLEAN F_QCOMPG
BEGIN
PROMPT 8 RB "G"
END
BOOLEAN F_QCOMPG1
BEGIN
PROMPT 14 RB "G1"
END
BOOLEAN F_QCOMPH
BEGIN
PROMPT 20 RB "H"
END
BOOLEAN F_QCOMPI
BEGIN
PROMPT 26 RB "I"
END
TEXT DLG_NULL
BEGIN
PROMPT 1 RC0 "Inoltre dichiara di aver effettuato i conguagli conseguenti all'assistenza"
END
TEXT DLG_NULL
BEGIN
PROMPT 1 RC1 "fiscale indicati nel quadro A e nei quadri"
END
BOOLEAN F_QCOMPA1
BEGIN
PROMPT 2 RD "A1"
END
BOOLEAN F_QCOMPA2
BEGIN
PROMPT 8 RD "A2"
END
BOOLEAN F_QCOMPN
BEGIN
PROMPT 14 RD "N"
END
BOOLEAN F_QCOMPP
BEGIN
PROMPT 20 RD "P"
END
BOOLEAN F_QCOMPQ
BEGIN
PROMPT 26 RD "Q"
END
BOOLEAN F_QCOMPR
BEGIN
PROMPT 32 RD "R"
END
BOOLEAN F_QCOMPS
BEGIN
PROMPT 38 RD "S"
END
BOOLEAN F_QCOMPT
BEGIN
PROMPT 44 RD "T"
END
TEXT DLG_NULL
BEGIN
PROMPT 1 15 "Dichiara altresì di aver eseguito i versamenti risultanti dai quadri L,P,Q,"
END
TEXT DLG_NULL
BEGIN
PROMPT 1 16 "S,T e da n. "
END
NUMBER F_H0NQLAGG 4
BEGIN
PROMPT 13 16 ""
FIELD LF_BASEBIS->H0NQLAGG
FLAGS "R"
//FLAGS "D"
END
TEXT DLG_NULL
BEGIN
PROMPT 19 16 "quadri aggiuntivi."
END
ENDPAGE
PAGE "Prospetto dati generali" -1 -1 78 18
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 0 0 ""
FLAGS "R"
END
NUMBER DLG_NULL 5
BEGIN
PROMPT 2 1 "Ditta "
FLAGS "RDG"
GROUP 1
END
STRING DLG_NULL 50
BEGIN
PROMPT 2 2 "Ragione sociale "
FLAGS "D"
GROUP 2
END
GROUPBOX DLG_NULL 78 10
BEGIN
PROMPT 0 3 ""
END
TEXT DLG_NULL
BEGIN
PROMPT 1 4 "Il sottoscritto dichiara di aver presentato i quadri"
END
BOOLEAN F_QSUPPA
BEGIN
PROMPT 2 6 "A"
END
BOOLEAN F_QSUPPA1
BEGIN
PROMPT 8 6 "A1"
END
BOOLEAN F_QSUPPA2
BEGIN
PROMPT 14 6 "A2"
END
BOOLEAN F_QSUPPA3
BEGIN
PROMPT 20 6 "A3"
END
BOOLEAN F_QSUPPB
BEGIN
PROMPT 26 6 "B"
END
BOOLEAN F_QSUPPB1
BEGIN
PROMPT 32 6 "B1"
END
BOOLEAN F_QSUPPC
BEGIN
PROMPT 38 6 "C"
END
BOOLEAN F_QSUPPD
BEGIN
PROMPT 44 6 "D"
END
BOOLEAN F_QSUPPD1
BEGIN
PROMPT 50 6 "D1"
END
BOOLEAN F_QSUPPE
BEGIN
PROMPT 56 6 "E"
END
BOOLEAN F_QSUPPE1
BEGIN
PROMPT 62 6 "E1"
END
BOOLEAN F_QSUPPE2
BEGIN
PROMPT 68 6 "E2"
END
BOOLEAN F_QSUPPF
BEGIN
PROMPT 2 7 "F"
END
BOOLEAN F_QSUPPF1
BEGIN
PROMPT 8 7 "F1"
END
BOOLEAN F_QSUPPF2
BEGIN
PROMPT 14 7 "F2"
END
BOOLEAN F_QSUPPG
BEGIN
PROMPT 20 7 "G"
END
BOOLEAN F_QSUPPG1
BEGIN
PROMPT 26 7 "G1"
END
BOOLEAN F_QSUPPH
BEGIN
PROMPT 32 7 "H"
END
BOOLEAN F_QSUPPI
BEGIN
PROMPT 38 7 "I"
END
BOOLEAN F_QSUPPL
BEGIN
PROMPT 44 7 "L"
END
BOOLEAN F_QSUPPN
BEGIN
PROMPT 50 7 "N"
END
BOOLEAN F_QSUPPP
BEGIN
PROMPT 56 7 "P"
END
BOOLEAN F_QSUPPQ
BEGIN
PROMPT 62 7 "Q"
END
BOOLEAN F_QSUPPR
BEGIN
PROMPT 68 7 "R"
END
BOOLEAN F_QSUPPS
BEGIN
PROMPT 2 8 "S"
END
BOOLEAN F_QSUPPT
BEGIN
PROMPT 8 8 "T"
END
TEXT DLG_NULL
BEGIN
PROMPT 1 10 "mediante n. "
END
NUMBER F_NSUPPM 4
BEGIN
PROMPT 13 10 ""
FIELD LF_BASEBIS->NSUPPM
END
TEXT DLG_NULL
BEGIN
PROMPT 19 10 "supporti magnetici."
END
ENDPAGE
ENDMASK

490
m770/771400b.uml Executable file
View File

@ -0,0 +1,490 @@
// Prospetto dati generali - soggetto dichiarante
#include "771300.h"
TOOLBAR "" 0 20 0 2
BUTTON DLG_SAVEREC 10 2
BEGIN
PROMPT -15 -1 "~Registra"
MESSAGE EXIT,K_SAVE
END
BUTTON DLG_CANCEL 10 2
BEGIN
PROMPT -45 -1 ""
MESSAGE EXIT,K_ESC
END
BUTTON DLG_QUIT 10 2
BEGIN
PROMPT -55 -1 ""
MESSAGE EXIT,K_QUIT
END
ENDPAGE
PAGE "Prospetto dati generali" -1 -1 78 18
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 0 0 ""
FLAGS "R"
END
NUMBER F_CODDITTA 5
BEGIN
PROMPT 2 1 "Ditta "
FLAGS "DGR"
USE LF_NDITTE KEY 1
INPUT CODDITTA F_CODDITTA
DISPLAY "Codice" CODDITTA
DISPLAY "Ragione sociale @50" RAGSOC
OUTPUT F_RAGSOC RAGSOC
MESSAGE COPY,1@
FIELD LF_BASEBIS->CODDITTA
CHECKTYPE REQUIRED
KEY 1
END
STRING F_RAGSOC 50
BEGIN
PROMPT 2 2 "Ragione sociale "
FLAGS "D"
MESSAGE COPY,2@
END
LISTBOX F_TIPOQUA1 2
BEGIN
PROMPT 90 90 ""
ITEM "D|Dichiarante"
FLAGS "D"
KEY 1
FIELD LF_BASEBIS->TIPOQUA
// CHECKTYPE REQUIRED
END
GROUPBOX DLG_NULL 78 15
BEGIN
PROMPT 0 3 ""
END
TEXT DLG_NULL
BEGIN
PROMPT 1 4 "Il sottoscritto dichiara di aver corrisposto a dipendenti e terzi nell'anno"
END
NUMBER F_ANNODIC 4
BEGIN
PROMPT 1 5 ""
FLAGS "RD"
END
TEXT DLG_NULL
BEGIN
PROMPT 7 5 "le somme e i valori e di aver effettuato le ritenute indicate"
END
TEXT DLG_NULL
BEGIN
PROMPT 7 6 "nei quadri:"
END
#define RA 8
#define RB 9
#define RC0 11
#define RC1 12
#define RD 13
BOOLEAN F_QCOMPA
BEGIN
PROMPT 2 RA "A"
FIELD LF_BASEBIS->QCOMP[1,1]
END
BOOLEAN F_QCOMPA3
BEGIN
PROMPT 8 RA "A3"
FIELD LF_BASEBIS->QCOMP[25,1]
END
BOOLEAN F_QCOMPB
BEGIN
PROMPT 14 RA "B"
FIELD LF_BASEBIS->QCOMP[2,1]
END
BOOLEAN F_QCOMPB1
BEGIN
PROMPT 20 RA "B1"
FIELD LF_BASEBIS->QCOMP[3,1]
END
BOOLEAN F_QCOMPC
BEGIN
PROMPT 26 RA "C"
FIELD LF_BASEBIS->QCOMP[4,1]
END
BOOLEAN F_QCOMPD
BEGIN
PROMPT 32 RA "D"
FIELD LF_BASEBIS->QCOMP[5,1]
END
BOOLEAN F_QCOMPD1
BEGIN
PROMPT 38 RA "D1"
FIELD LF_BASEBIS->QCOMP[6,1]
END
BOOLEAN F_QCOMPE
BEGIN
PROMPT 44 RA "E"
FIELD LF_BASEBIS->QCOMP[7,1]
END
BOOLEAN F_QCOMPE1
BEGIN
PROMPT 50 RA "E1"
FIELD LF_BASEBIS->QCOMP[8,1]
END
BOOLEAN F_QCOMPE2
BEGIN
PROMPT 56 RA "E2"
FIELD LF_BASEBIS->QCOMP[9,1]
END
BOOLEAN F_QCOMPF
BEGIN
PROMPT 62 RA "F"
FIELD LF_BASEBIS->QCOMP[10,1]
END
BOOLEAN F_QCOMPF1
BEGIN
PROMPT 68 RA "F1"
FIELD LF_BASEBIS->QCOMP[11,1]
END
BOOLEAN F_QCOMPF2
BEGIN
PROMPT 2 RB "F2"
FIELD LF_BASEBIS->QCOMP[12,1]
END
BOOLEAN F_QCOMPG
BEGIN
PROMPT 8 RB "G"
FIELD LF_BASEBIS->QCOMP[13,1]
END
BOOLEAN F_QCOMPG1
BEGIN
PROMPT 14 RB "G1"
FIELD LF_BASEBIS->QCOMP[14,1]
END
BOOLEAN F_QCOMPH
BEGIN
PROMPT 20 RB "H"
FIELD LF_BASEBIS->QCOMP[15,1]
END
BOOLEAN F_QCOMPI
BEGIN
PROMPT 26 RB "I"
FIELD LF_BASEBIS->QCOMP[16,1]
END
TEXT DLG_NULL
BEGIN
PROMPT 1 RC0 "Inoltre dichiara di aver effettuato i conguagli conseguenti all'assistenza"
END
TEXT DLG_NULL
BEGIN
PROMPT 1 RC1 "fiscale indicati nel quadro A e nei quadri"
END
BOOLEAN F_QCOMPA1
BEGIN
PROMPT 2 RD "A1"
FIELD LF_BASEBIS->QCOMP[23,1]
END
BOOLEAN F_QCOMPA2
BEGIN
PROMPT 8 RD "A2"
FIELD LF_BASEBIS->QCOMP[24,1]
END
BOOLEAN F_QCOMPN
BEGIN
PROMPT 14 RD "N"
FIELD LF_BASEBIS->QCOMP[17,1]
END
BOOLEAN F_QCOMPP
BEGIN
PROMPT 20 RD "P"
FIELD LF_BASEBIS->QCOMP[18,1]
END
BOOLEAN F_QCOMPQ
BEGIN
PROMPT 26 RD "Q"
FIELD LF_BASEBIS->QCOMP[19,1]
END
BOOLEAN F_QCOMPR
BEGIN
PROMPT 32 RD "R"
FIELD LF_BASEBIS->QCOMP[20,1]
END
BOOLEAN F_QCOMPS
BEGIN
PROMPT 38 RD "S"
FIELD LF_BASEBIS->QCOMP[21,1]
END
BOOLEAN F_QCOMPT
BEGIN
PROMPT 44 RD "T"
FIELD LF_BASEBIS->QCOMP[22,1]
END
TEXT DLG_NULL
BEGIN
PROMPT 1 15 "Dichiara altresì di aver eseguito i versamenti risultanti dai quadri L,P,Q,"
END
TEXT DLG_NULL
BEGIN
PROMPT 1 16 "S,T e da n. "
END
NUMBER F_H0NQLAGG 4
BEGIN
PROMPT 13 16 ""
FIELD LF_BASEBIS->H0NQLAGG
FLAGS "R"
//FLAGS "D"
END
TEXT DLG_NULL
BEGIN
PROMPT 19 16 "quadri aggiuntivi."
END
ENDPAGE
PAGE "Prospetto dati generali" -1 -1 78 18
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 0 0 ""
FLAGS "R"
END
NUMBER DLG_NULL 5
BEGIN
PROMPT 2 1 "Ditta "
FLAGS "RDG"
GROUP 1
END
STRING DLG_NULL 50
BEGIN
PROMPT 2 2 "Ragione sociale "
FLAGS "D"
GROUP 2
END
GROUPBOX DLG_NULL 78 10
BEGIN
PROMPT 0 3 ""
END
TEXT DLG_NULL
BEGIN
PROMPT 1 4 "Il sottoscritto dichiara di aver presentato i quadri"
END
BOOLEAN F_QSUPPA
BEGIN
PROMPT 2 6 "A"
FIELD LF_BASEBIS->QSUPPINV[1,1]
END
BOOLEAN F_QSUPPA1
BEGIN
PROMPT 8 6 "A1"
FIELD LF_BASEBIS->QSUPPINV[2,1]
END
BOOLEAN F_QSUPPA2
BEGIN
PROMPT 14 6 "A2"
FIELD LF_BASEBIS->QSUPPINV[3,1]
END
BOOLEAN F_QSUPPA3
BEGIN
PROMPT 20 6 "A3"
FIELD LF_BASEBIS->QSUPPINV[4,1]
END
BOOLEAN F_QSUPPB
BEGIN
PROMPT 26 6 "B"
FIELD LF_BASEBIS->QSUPPINV[5,1]
END
BOOLEAN F_QSUPPB1
BEGIN
PROMPT 32 6 "B1"
FIELD LF_BASEBIS->QSUPPINV[6,1]
END
BOOLEAN F_QSUPPC
BEGIN
PROMPT 38 6 "C"
FIELD LF_BASEBIS->QSUPPINV[7,1]
END
BOOLEAN F_QSUPPD
BEGIN
PROMPT 44 6 "D"
FIELD LF_BASEBIS->QSUPPINV[8,1]
END
BOOLEAN F_QSUPPD1
BEGIN
PROMPT 50 6 "D1"
FIELD LF_BASEBIS->QSUPPINV[9,1]
END
BOOLEAN F_QSUPPE
BEGIN
PROMPT 56 6 "E"
FIELD LF_BASEBIS->QSUPPINV[10,1]
END
BOOLEAN F_QSUPPE1
BEGIN
PROMPT 62 6 "E1"
FIELD LF_BASEBIS->QSUPPINV[11,1]
END
BOOLEAN F_QSUPPE2
BEGIN
PROMPT 68 6 "E2"
FIELD LF_BASEBIS->QSUPPINV[12,1]
END
BOOLEAN F_QSUPPF
BEGIN
PROMPT 2 7 "F"
FIELD LF_BASEBIS->QSUPPINV[13,1]
END
BOOLEAN F_QSUPPF1
BEGIN
PROMPT 8 7 "F1"
FIELD LF_BASEBIS->QSUPPINV[14,1]
END
BOOLEAN F_QSUPPF2
BEGIN
PROMPT 14 7 "F2"
FIELD LF_BASEBIS->QSUPPINV[15,1]
END
BOOLEAN F_QSUPPG
BEGIN
PROMPT 20 7 "G"
FIELD LF_BASEBIS->QSUPPINV[16,1]
END
BOOLEAN F_QSUPPG1
BEGIN
PROMPT 26 7 "G1"
FIELD LF_BASEBIS->QSUPPINV[17,1]
END
BOOLEAN F_QSUPPH
BEGIN
PROMPT 32 7 "H"
FIELD LF_BASEBIS->QSUPPINV[18,1]
END
BOOLEAN F_QSUPPI
BEGIN
PROMPT 38 7 "I"
FIELD LF_BASEBIS->QSUPPINV[19,1]
END
BOOLEAN F_QSUPPL
BEGIN
PROMPT 44 7 "L"
FIELD LF_BASEBIS->QSUPPINV[20,1]
END
BOOLEAN F_QSUPPN
BEGIN
PROMPT 50 7 "N"
FIELD LF_BASEBIS->QSUPPINV[21,1]
END
BOOLEAN F_QSUPPP
BEGIN
PROMPT 56 7 "P"
FIELD LF_BASEBIS->QSUPPINV[22,1]
END
BOOLEAN F_QSUPPQ
BEGIN
PROMPT 62 7 "Q"
FIELD LF_BASEBIS->QSUPPINV[23,1]
END
BOOLEAN F_QSUPPR
BEGIN
PROMPT 68 7 "R"
FIELD LF_BASEBIS->QSUPPINV[24,1]
END
BOOLEAN F_QSUPPS
BEGIN
PROMPT 2 8 "S"
FIELD LF_BASEBIS->QSUPPINV[25,1]
END
BOOLEAN F_QSUPPT
BEGIN
PROMPT 8 8 "T"
FIELD LF_BASEBIS->QSUPPINV[26,1]
END
TEXT DLG_NULL
BEGIN
PROMPT 1 10 "mediante n. "
END
NUMBER F_NSUPPM 4
BEGIN
PROMPT 13 10 ""
FIELD LF_BASEBIS->NSUPPM
END
TEXT DLG_NULL
BEGIN
PROMPT 19 10 "supporti magnetici."
END
ENDPAGE
ENDMASK

170
m770/771mod.mak Executable file
View File

@ -0,0 +1,170 @@
# Microsoft Visual C++ generated build script - Do not modify
PROJ = 771MOD
DEBUG = 1
PROGTYPE = 0
CALLER =
ARGS = -5
DLLS =
D_RCDEFINES = /d_DEBUG
R_RCDEFINES = /dNDEBUG
ORIGIN = MSVC
ORIGIN_VER = 1.00
PROJPATH = F:\NIK\P.DUE\77\
USEMFC = 0
CC = cl
CPP = cl
CXX = cl
CCREATEPCHFLAG =
CPPCREATEPCHFLAG =
CUSEPCHFLAG =
CPPUSEPCHFLAG =
FIRSTC =
FIRSTCPP = 771.CPP
RC = rc
CFLAGS_D_WEXE = /nologo /Gs /G2 /Gy /W3 /Gf /Zi /AL /Gt65000 /Od /D "XVT_OS"="400" /D "DBG" /FR /GA /Fd"771.PDB" /GEs
CFLAGS_R_WEXE = /nologo /Gs /Gy /W3 /Gf /AL /O1 /D "XVT_OS"="400" /FR /GA
LFLAGS_D_WEXE = /NOLOGO /NOD /NOE /PACKC:65000 /PACKD:65000 /SEG:512 /ALIGN:16 /ONERROR:NOEXE /CO
LFLAGS_R_WEXE = /NOLOGO /NOD /NOE /PACKC:65000 /PACKD:65000 /SEG:512 /ALIGN:16 /ONERROR:NOEXE
LIBS_D_WEXE = oldnames libw llibcew toolhelp.lib
LIBS_R_WEXE = oldnames libw llibcew toolhelp.lib
RCFLAGS = /nologo
RESFLAGS = /nologo /k /k
RUNFLAGS =
DEFFILE = ..\..\..\P.DUE\WIN\LIB\UNIVERSL.DEF
OBJS_EXT =
LIBS_EXT = ..\..\..\P.DUE\WIN\LIB\HLAPI_CW.LIB ..\..\..\P.DUE\WIN\LIB\WINDUED.LIB \
..\..\..\P.DUE\WIN\LIB\WINGFM.LIB ..\..\..\P.DUE\WIN\LIB\WINUNO.LIB ..\..\..\P.DUE\WIN\LIB\XVT400.LIB
!if "$(DEBUG)" == "1"
CFLAGS = $(CFLAGS_D_WEXE)
LFLAGS = $(LFLAGS_D_WEXE)
LIBS = $(LIBS_D_WEXE)
MAPFILE = nul
RCDEFINES = $(D_RCDEFINES)
!else
CFLAGS = $(CFLAGS_R_WEXE)
LFLAGS = $(LFLAGS_R_WEXE)
LIBS = $(LIBS_R_WEXE)
MAPFILE = nul
RCDEFINES = $(R_RCDEFINES)
!endif
!if [if exist MSVC.BND del MSVC.BND]
!endif
SBRS = 771.SBR \
771310.SBR \
774100.SBR \
771100.SBR \
771290.SBR \
771295.SBR \
771300.SBR \
77LIB01.SBR \
771230.SBR
HLAPI_CW_DEP =
WINDUED_DEP =
WINGFM_DEP =
WINUNO_DEP =
XVT400_DEP =
771_RCDEP =
771_DEP =
771310_DEP =
774100_DEP =
771100_DEP =
771290_DEP =
771295_DEP =
771300_DEP =
77LIB01_DEP =
771230_DEP =
all: $(PROJ).EXE $(PROJ).BSC
771.RES: 771.RC $(771_RCDEP)
$(RC) $(RCFLAGS) $(RCDEFINES) -r 771.RC
771.OBJ: ..\..\..\P.DUE\77\771.CPP $(771_DEP)
$(CPP) $(CFLAGS) $(CPPCREATEPCHFLAG) /c ..\..\..\P.DUE\77\771.CPP
771310.OBJ: ..\..\..\P.DUE\77\771310.CPP $(771310_DEP)
$(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c ..\..\..\P.DUE\77\771310.CPP
774100.OBJ: ..\..\..\P.DUE\77\774100.CPP $(774100_DEP)
$(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c ..\..\..\P.DUE\77\774100.CPP
771100.OBJ: ..\..\..\P.DUE\77\771100.CPP $(771100_DEP)
$(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c ..\..\..\P.DUE\77\771100.CPP
771290.OBJ: ..\..\..\P.DUE\77\771290.CPP $(771290_DEP)
$(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c ..\..\..\P.DUE\77\771290.CPP
771295.OBJ: ..\..\..\P.DUE\77\771295.CPP $(771295_DEP)
$(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c ..\..\..\P.DUE\77\771295.CPP
771300.OBJ: ..\..\..\P.DUE\77\771300.CPP $(771300_DEP)
$(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c ..\..\..\P.DUE\77\771300.CPP
77LIB01.OBJ: ..\..\..\P.DUE\77\77LIB01.CPP $(77LIB01_DEP)
$(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c ..\..\..\P.DUE\77\77LIB01.CPP
771230.OBJ: ..\..\..\P.DUE\77\771230.CPP $(771230_DEP)
$(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c ..\..\..\P.DUE\77\771230.CPP
$(PROJ).EXE:: 771.RES
$(PROJ).EXE:: 771.OBJ 771310.OBJ 774100.OBJ 771100.OBJ 771290.OBJ 771295.OBJ 771300.OBJ \
77LIB01.OBJ 771230.OBJ $(OBJS_EXT) $(DEFFILE)
echo >NUL @<<$(PROJ).CRF
771.OBJ +
771310.OBJ +
774100.OBJ +
771100.OBJ +
771290.OBJ +
771295.OBJ +
771300.OBJ +
77LIB01.OBJ +
771230.OBJ +
$(OBJS_EXT)
$(PROJ).EXE
$(MAPFILE)
c:\msvc\lib\+
f:\p.due\win\lib\+
f:\xvt.403\win_x86\ptk\lib\+
f:\xvt.403\win_x86\xpo\lib\+
..\..\..\P.DUE\WIN\LIB\HLAPI_CW.LIB+
..\..\..\P.DUE\WIN\LIB\WINDUED.LIB+
..\..\..\P.DUE\WIN\LIB\WINGFM.LIB+
..\..\..\P.DUE\WIN\LIB\WINUNO.LIB+
..\..\..\P.DUE\WIN\LIB\XVT400.LIB+
$(LIBS)
$(DEFFILE);
<<
link $(LFLAGS) @$(PROJ).CRF
$(RC) $(RESFLAGS) 771.RES $@
@copy $(PROJ).CRF MSVC.BND
$(PROJ).EXE:: 771.RES
if not exist MSVC.BND $(RC) $(RESFLAGS) 771.RES $@
run: $(PROJ).EXE
$(PROJ) $(RUNFLAGS)
$(PROJ).BSC: $(SBRS)
bscmake @<<
/o$@ $(SBRS)
<<

41
m770/771mod.url Executable file
View File

@ -0,0 +1,41 @@
#include <default.url>
MENU TASK_MENUBAR
SUBMENU MENU_FILE "~File"
MENUBAR MENU_BAR(1)
MENU MENU_BAR(1)
SUBMENU MENU_FILE "~File"
MENUBAR MENU_BAR(2)
MENU MENU_BAR(2)
SUBMENU MENU_FILE "~File"
MENUBAR MENU_BAR(3)
MENU MENU_BAR(3)
SUBMENU MENU_FILE "~File"
MENUBAR MENU_BAR(4)
MENU MENU_BAR(4)
SUBMENU MENU_FILE "~File"
MENUBAR MENU_BAR(5)
MENU MENU_BAR(5)
SUBMENU MENU_FILE "~File"
MENUBAR MENU_BAR(6)
MENU MENU_BAR(6)
SUBMENU MENU_FILE "~File"
MENUBAR MENU_BAR(7)
MENU MENU_BAR(7)
SUBMENU MENU_FILE "~File"

29
m770/772.cpp Executable file
View File

@ -0,0 +1,29 @@
#include <xvt.h>
#include <checks.h>
#include "770.h"
#include "772.h"
#define usage "Error - usage : %s -{0|1|2|3}"
int main(int argc,char** argv)
{
int n = (argc > 1) ? atoi(argv[1]+1) : -1;
switch (n)
{
case 0:
m72100(argc,argv); break;
case 1:
m72200(argc,argv); break;
case 2:
m72300(argc,argv); break;
case 3:
m72400(argc,argv); break;
case 4:
stampa_quadro(argc,argv); break;
default:
error_box(usage, argv[0]) ;
}
return 0;
}

19
m770/772.h Executable file
View File

@ -0,0 +1,19 @@
#ifndef __772_H
#define __772_H
#ifdef MAIN
#define extern
#endif
#ifdef MAIN
#undef extern
#endif
int m72100 (int argc, char* argv[]); // Stampa schede percipienti
int m72200 (int argc, char* argv[]); // Stampa delle certificazioni
int m72300 (int argc, char* argv[]); // Stampa movimenti per percipiente
int m72400 (int argc, char* argv[]); // Stampa versamenti ritenute
int stampa_quadro(int argc, char* argv[]); // Stampa quadro dichiarazione
#endif

543
m770/772.mak Executable file
View File

@ -0,0 +1,543 @@
# Microsoft Visual C++ generated build script - Do not modify
PROJ = 772
DEBUG = 1
PROGTYPE = 0
CALLER =
ARGS =
DLLS =
D_RCDEFINES = /d_DEBUG
R_RCDEFINES = /dNDEBUG
ORIGIN = MSVC
ORIGIN_VER = 1.00
PROJPATH = F:\P.DUE\77\
USEMFC = 0
CC = cl
CPP = cl
CXX = cl
CCREATEPCHFLAG =
CPPCREATEPCHFLAG =
CUSEPCHFLAG =
CPPUSEPCHFLAG =
FIRSTC =
FIRSTCPP = 772.CPP
RC = rc
CFLAGS_D_WEXE = /nologo /Gs /G2 /Gy /W3 /Gf /Zi /AL /Gt65000 /Od /D "XVT_OS"="400" /D "DBG" /FR /GA /Fd"772.PDB" /GEs
CFLAGS_R_WEXE = /nologo /W3 /AM /O1 /D "NDEBUG" /FR /GA
LFLAGS_D_WEXE = /NOLOGO /NOD /NOE /PACKC:65000 /PACKD:65000 /SEG:512 /ALIGN:16 /ONERROR:NOEXE
LFLAGS_R_WEXE = /NOLOGO /NOD /PACKC:61440 /STACK:10240 /ALIGN:16 /ONERROR:NOEXE
LIBS_D_WEXE = oldnames libw llibcew toolhelp.lib
LIBS_R_WEXE = oldnames libw mlibcew commdlg.lib olecli.lib olesvr.lib shell.lib
RCFLAGS = /nologo
RESFLAGS = /nologo /k /k
RUNFLAGS =
DEFFILE = ..\WIN\LIB\UNIVERSL.DEF
OBJS_EXT =
LIBS_EXT = ..\WIN\LIB\HLAPI_CW.LIB ..\WIN\LIB\WINDUED.LIB ..\WIN\LIB\WINGFM.LIB ..\WIN\LIB\WINUNO.LIB \
..\WIN\LIB\XVT400.LIB
!if "$(DEBUG)" == "1"
CFLAGS = $(CFLAGS_D_WEXE)
LFLAGS = $(LFLAGS_D_WEXE)
LIBS = $(LIBS_D_WEXE)
MAPFILE = nul
RCDEFINES = $(D_RCDEFINES)
!else
CFLAGS = $(CFLAGS_R_WEXE)
LFLAGS = $(LFLAGS_R_WEXE)
LIBS = $(LIBS_R_WEXE)
MAPFILE = nul
RCDEFINES = $(R_RCDEFINES)
!endif
!if [if exist MSVC.BND del MSVC.BND]
!endif
SBRS = 772.SBR \
772100.SBR \
772200.SBR \
772300.SBR \
772400.SBR
HLAPI_CW_DEP =
WINDUED_DEP =
WINGFM_DEP =
WINUNO_DEP =
XVT400_DEP =
772_DEP = f:\xvt.400\win_x86\ptk\include\xvt.h \
f:\xvt.400\win_x86\ptk\include\xvt_env.h \
f:\xvt.400\win_x86\ptk\include\xvt_plat.h \
f:\xvt.400\win_x86\ptk\include\xvt_varg.h \
f:\xvt.400\win_x86\ptk\include\xvt_styp.h \
f:\xvt.400\win_x86\ptk\include\xvt_defs.h \
f:\xvt.400\win_x86\ptk\include\xvt_menu.h \
f:\xvt.400\win_x86\ptk\include\xvt_type.h \
f:\xvt.400\win_x86\ptk\include\xvt_sel.h \
f:\xvt.400\win_x86\ptk\include\xvt_perr.h \
f:\xvt.400\win_x86\ptk\include\xvt_help.h \
f:\xvt.400\win_x86\ptk\include\xvt_r3.h \
f:\xvt.400\win_x86\ptk\include\xvterr.h \
f:\xvt.400\win_x86\ptk\include\xvtapp.h \
f:\xvt.400\win_x86\ptk\include\xvtcb.h \
f:\xvt.400\win_x86\ptk\include\xvtctl.h \
f:\xvt.400\win_x86\ptk\include\xvtdebug.h \
f:\xvt.400\win_x86\ptk\include\xvtdlg.h \
f:\xvt.400\win_x86\ptk\include\xvtdm.h \
f:\xvt.400\win_x86\ptk\include\xvtdwin.h \
f:\xvt.400\win_x86\ptk\include\xvtevent.h \
f:\xvt.400\win_x86\ptk\include\xvtfont.h \
f:\xvt.400\win_x86\ptk\include\xvtfsys.h \
f:\xvt.400\win_x86\ptk\include\xvtgmem.h \
f:\xvt.400\win_x86\ptk\include\xvtiostr.h \
f:\xvt.400\win_x86\ptk\include\xvtimage.h \
f:\xvt.400\win_x86\ptk\include\xvtlist.h \
f:\xvt.400\win_x86\ptk\include\xvtmenu.h \
f:\xvt.400\win_x86\ptk\include\xvtmem.h \
f:\xvt.400\win_x86\ptk\include\xvtpalet.h \
f:\xvt.400\win_x86\ptk\include\xvtpict.h \
f:\xvt.400\win_x86\ptk\include\xvtpmap.h \
f:\xvt.400\win_x86\ptk\include\xvtprint.h \
f:\xvt.400\win_x86\ptk\include\xvtrect.h \
f:\xvt.400\win_x86\ptk\include\xvtres.h \
f:\xvt.400\win_x86\ptk\include\xvtsbar.h \
f:\xvt.400\win_x86\ptk\include\xvtscr.h \
f:\xvt.400\win_x86\ptk\include\xvtslist.h \
f:\xvt.400\win_x86\ptk\include\xvtstr.h \
f:\xvt.400\win_x86\ptk\include\xvttimer.h \
f:\xvt.400\win_x86\ptk\include\xvttx.h \
f:\xvt.400\win_x86\ptk\include\xvtvobj.h \
f:\xvt.400\win_x86\ptk\include\xvtwin.h \
f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \
f:\p.due\include\checks.h \
f:\p.due\77\770.h \
f:\p.due\include\strings.h \
f:\p.due\include\array.h \
f:\p.due\include\object.h \
f:\p.due\include\classes.h \
f:\p.due\include\stdtypes.h \
f:\p.due\77\772.h
772100_DEP = f:\p.due\include\mask.h \
f:\p.due\include\window.h \
f:\p.due\include\object.h \
f:\p.due\include\classes.h \
f:\p.due\include\stdtypes.h \
f:\xvt.400\win_x86\ptk\include\xvt_env.h \
f:\p.due\include\checks.h \
f:\p.due\include\xvtility.h \
f:\xvt.400\win_x86\ptk\include\xvt.h \
f:\xvt.400\win_x86\ptk\include\xvt_plat.h \
f:\xvt.400\win_x86\ptk\include\xvt_varg.h \
f:\xvt.400\win_x86\ptk\include\xvt_styp.h \
f:\xvt.400\win_x86\ptk\include\xvt_defs.h \
f:\xvt.400\win_x86\ptk\include\xvt_menu.h \
f:\xvt.400\win_x86\ptk\include\xvt_type.h \
f:\xvt.400\win_x86\ptk\include\xvt_sel.h \
f:\xvt.400\win_x86\ptk\include\xvt_perr.h \
f:\xvt.400\win_x86\ptk\include\xvt_help.h \
f:\xvt.400\win_x86\ptk\include\xvt_r3.h \
f:\xvt.400\win_x86\ptk\include\xvterr.h \
f:\xvt.400\win_x86\ptk\include\xvtapp.h \
f:\xvt.400\win_x86\ptk\include\xvtcb.h \
f:\xvt.400\win_x86\ptk\include\xvtctl.h \
f:\xvt.400\win_x86\ptk\include\xvtdebug.h \
f:\xvt.400\win_x86\ptk\include\xvtdlg.h \
f:\xvt.400\win_x86\ptk\include\xvtdm.h \
f:\xvt.400\win_x86\ptk\include\xvtdwin.h \
f:\xvt.400\win_x86\ptk\include\xvtevent.h \
f:\xvt.400\win_x86\ptk\include\xvtfont.h \
f:\xvt.400\win_x86\ptk\include\xvtfsys.h \
f:\xvt.400\win_x86\ptk\include\xvtgmem.h \
f:\xvt.400\win_x86\ptk\include\xvtiostr.h \
f:\xvt.400\win_x86\ptk\include\xvtimage.h \
f:\xvt.400\win_x86\ptk\include\xvtlist.h \
f:\xvt.400\win_x86\ptk\include\xvtmenu.h \
f:\xvt.400\win_x86\ptk\include\xvtmem.h \
f:\xvt.400\win_x86\ptk\include\xvtpalet.h \
f:\xvt.400\win_x86\ptk\include\xvtpict.h \
f:\xvt.400\win_x86\ptk\include\xvtpmap.h \
f:\xvt.400\win_x86\ptk\include\xvtprint.h \
f:\xvt.400\win_x86\ptk\include\xvtrect.h \
f:\xvt.400\win_x86\ptk\include\xvtres.h \
f:\xvt.400\win_x86\ptk\include\xvtsbar.h \
f:\xvt.400\win_x86\ptk\include\xvtscr.h \
f:\xvt.400\win_x86\ptk\include\xvtslist.h \
f:\xvt.400\win_x86\ptk\include\xvtstr.h \
f:\xvt.400\win_x86\ptk\include\xvttimer.h \
f:\xvt.400\win_x86\ptk\include\xvttx.h \
f:\xvt.400\win_x86\ptk\include\xvtvobj.h \
f:\xvt.400\win_x86\ptk\include\xvtwin.h \
f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \
f:\p.due\include\keys.h \
f:\p.due\include\maskfld.h \
f:\p.due\include\real.h \
f:\mathlib\gmsys1.h \
f:\mathlib\gfd.h \
f:\p.due\include\strings.h \
f:\p.due\include\array.h \
f:\p.due\include\scanner.h \
f:\p.due\include\printapp.h \
f:\p.due\include\applicat.h \
f:\p.due\include\printer.h \
f:\p.due\include\date.h \
f:\p.due\include\text.h \
f:\p.due\include\relation.h \
f:\p.due\include\isam.h \
f:\p.due\include\sysfld.h \
f:\p.due\include\files.h \
f:\p.due\include\extctype.h \
f:\p.due\include\rectypes.h \
f:\p.due\include\lffiles.h \
f:\p.due\include\config.h \
f:\p.due\include\assoc.h \
f:\p.due\include\tabutil.h \
f:\p.due\include\utility.h \
f:\p.due\include\sort.h \
f:\p.due\include\scperc.h \
f:\p.due\include\rpag.h \
f:\p.due\include\rver.h \
f:\p.due\include\comuni.h \
f:\p.due\include\nditte.h \
f:\p.due\include\anagr.h \
f:\p.due\include\anafis.h \
f:\p.due\include\perc.h \
f:\p.due\include\mailbox.h \
f:\p.due\include\execp.h \
f:\p.due\77\772.h \
f:\p.due\77\772100.h \
f:\p.due\77\77lib.h
772200_DEP = f:\p.due\include\mask.h \
f:\p.due\include\window.h \
f:\p.due\include\object.h \
f:\p.due\include\classes.h \
f:\p.due\include\stdtypes.h \
f:\xvt.400\win_x86\ptk\include\xvt_env.h \
f:\p.due\include\checks.h \
f:\p.due\include\xvtility.h \
f:\xvt.400\win_x86\ptk\include\xvt.h \
f:\xvt.400\win_x86\ptk\include\xvt_plat.h \
f:\xvt.400\win_x86\ptk\include\xvt_varg.h \
f:\xvt.400\win_x86\ptk\include\xvt_styp.h \
f:\xvt.400\win_x86\ptk\include\xvt_defs.h \
f:\xvt.400\win_x86\ptk\include\xvt_menu.h \
f:\xvt.400\win_x86\ptk\include\xvt_type.h \
f:\xvt.400\win_x86\ptk\include\xvt_sel.h \
f:\xvt.400\win_x86\ptk\include\xvt_perr.h \
f:\xvt.400\win_x86\ptk\include\xvt_help.h \
f:\xvt.400\win_x86\ptk\include\xvt_r3.h \
f:\xvt.400\win_x86\ptk\include\xvterr.h \
f:\xvt.400\win_x86\ptk\include\xvtapp.h \
f:\xvt.400\win_x86\ptk\include\xvtcb.h \
f:\xvt.400\win_x86\ptk\include\xvtctl.h \
f:\xvt.400\win_x86\ptk\include\xvtdebug.h \
f:\xvt.400\win_x86\ptk\include\xvtdlg.h \
f:\xvt.400\win_x86\ptk\include\xvtdm.h \
f:\xvt.400\win_x86\ptk\include\xvtdwin.h \
f:\xvt.400\win_x86\ptk\include\xvtevent.h \
f:\xvt.400\win_x86\ptk\include\xvtfont.h \
f:\xvt.400\win_x86\ptk\include\xvtfsys.h \
f:\xvt.400\win_x86\ptk\include\xvtgmem.h \
f:\xvt.400\win_x86\ptk\include\xvtiostr.h \
f:\xvt.400\win_x86\ptk\include\xvtimage.h \
f:\xvt.400\win_x86\ptk\include\xvtlist.h \
f:\xvt.400\win_x86\ptk\include\xvtmenu.h \
f:\xvt.400\win_x86\ptk\include\xvtmem.h \
f:\xvt.400\win_x86\ptk\include\xvtpalet.h \
f:\xvt.400\win_x86\ptk\include\xvtpict.h \
f:\xvt.400\win_x86\ptk\include\xvtpmap.h \
f:\xvt.400\win_x86\ptk\include\xvtprint.h \
f:\xvt.400\win_x86\ptk\include\xvtrect.h \
f:\xvt.400\win_x86\ptk\include\xvtres.h \
f:\xvt.400\win_x86\ptk\include\xvtsbar.h \
f:\xvt.400\win_x86\ptk\include\xvtscr.h \
f:\xvt.400\win_x86\ptk\include\xvtslist.h \
f:\xvt.400\win_x86\ptk\include\xvtstr.h \
f:\xvt.400\win_x86\ptk\include\xvttimer.h \
f:\xvt.400\win_x86\ptk\include\xvttx.h \
f:\xvt.400\win_x86\ptk\include\xvtvobj.h \
f:\xvt.400\win_x86\ptk\include\xvtwin.h \
f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \
f:\p.due\include\keys.h \
f:\p.due\include\maskfld.h \
f:\p.due\include\real.h \
f:\mathlib\gmsys1.h \
f:\mathlib\gfd.h \
f:\p.due\include\strings.h \
f:\p.due\include\array.h \
f:\p.due\include\scanner.h \
f:\p.due\include\printapp.h \
f:\p.due\include\applicat.h \
f:\p.due\include\printer.h \
f:\p.due\include\date.h \
f:\p.due\include\text.h \
f:\p.due\include\relation.h \
f:\p.due\include\isam.h \
f:\p.due\include\sysfld.h \
f:\p.due\include\files.h \
f:\p.due\include\extctype.h \
f:\p.due\include\rectypes.h \
f:\p.due\include\lffiles.h \
f:\p.due\include\tabutil.h \
f:\p.due\include\utility.h \
f:\p.due\include\sort.h \
f:\p.due\include\progind.h \
f:\p.due\include\scperc.h \
f:\p.due\include\rpag.h \
f:\p.due\include\comuni.h \
f:\p.due\include\nditte.h \
f:\p.due\include\anagr.h \
f:\p.due\include\anafis.h \
f:\p.due\include\perc.h \
f:\p.due\include\config.h \
f:\p.due\include\assoc.h \
f:\p.due\77\772.h \
f:\p.due\77\772200.h \
f:\p.due\77\77lib.h
772300_DEP = f:\p.due\include\mask.h \
f:\p.due\include\window.h \
f:\p.due\include\object.h \
f:\p.due\include\classes.h \
f:\p.due\include\stdtypes.h \
f:\xvt.400\win_x86\ptk\include\xvt_env.h \
f:\p.due\include\checks.h \
f:\p.due\include\xvtility.h \
f:\xvt.400\win_x86\ptk\include\xvt.h \
f:\xvt.400\win_x86\ptk\include\xvt_plat.h \
f:\xvt.400\win_x86\ptk\include\xvt_varg.h \
f:\xvt.400\win_x86\ptk\include\xvt_styp.h \
f:\xvt.400\win_x86\ptk\include\xvt_defs.h \
f:\xvt.400\win_x86\ptk\include\xvt_menu.h \
f:\xvt.400\win_x86\ptk\include\xvt_type.h \
f:\xvt.400\win_x86\ptk\include\xvt_sel.h \
f:\xvt.400\win_x86\ptk\include\xvt_perr.h \
f:\xvt.400\win_x86\ptk\include\xvt_help.h \
f:\xvt.400\win_x86\ptk\include\xvt_r3.h \
f:\xvt.400\win_x86\ptk\include\xvterr.h \
f:\xvt.400\win_x86\ptk\include\xvtapp.h \
f:\xvt.400\win_x86\ptk\include\xvtcb.h \
f:\xvt.400\win_x86\ptk\include\xvtctl.h \
f:\xvt.400\win_x86\ptk\include\xvtdebug.h \
f:\xvt.400\win_x86\ptk\include\xvtdlg.h \
f:\xvt.400\win_x86\ptk\include\xvtdm.h \
f:\xvt.400\win_x86\ptk\include\xvtdwin.h \
f:\xvt.400\win_x86\ptk\include\xvtevent.h \
f:\xvt.400\win_x86\ptk\include\xvtfont.h \
f:\xvt.400\win_x86\ptk\include\xvtfsys.h \
f:\xvt.400\win_x86\ptk\include\xvtgmem.h \
f:\xvt.400\win_x86\ptk\include\xvtiostr.h \
f:\xvt.400\win_x86\ptk\include\xvtimage.h \
f:\xvt.400\win_x86\ptk\include\xvtlist.h \
f:\xvt.400\win_x86\ptk\include\xvtmenu.h \
f:\xvt.400\win_x86\ptk\include\xvtmem.h \
f:\xvt.400\win_x86\ptk\include\xvtpalet.h \
f:\xvt.400\win_x86\ptk\include\xvtpict.h \
f:\xvt.400\win_x86\ptk\include\xvtpmap.h \
f:\xvt.400\win_x86\ptk\include\xvtprint.h \
f:\xvt.400\win_x86\ptk\include\xvtrect.h \
f:\xvt.400\win_x86\ptk\include\xvtres.h \
f:\xvt.400\win_x86\ptk\include\xvtsbar.h \
f:\xvt.400\win_x86\ptk\include\xvtscr.h \
f:\xvt.400\win_x86\ptk\include\xvtslist.h \
f:\xvt.400\win_x86\ptk\include\xvtstr.h \
f:\xvt.400\win_x86\ptk\include\xvttimer.h \
f:\xvt.400\win_x86\ptk\include\xvttx.h \
f:\xvt.400\win_x86\ptk\include\xvtvobj.h \
f:\xvt.400\win_x86\ptk\include\xvtwin.h \
f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \
f:\p.due\include\keys.h \
f:\p.due\include\maskfld.h \
f:\p.due\include\real.h \
f:\mathlib\gmsys1.h \
f:\mathlib\gfd.h \
f:\p.due\include\strings.h \
f:\p.due\include\array.h \
f:\p.due\include\scanner.h \
f:\p.due\include\printapp.h \
f:\p.due\include\applicat.h \
f:\p.due\include\printer.h \
f:\p.due\include\date.h \
f:\p.due\include\text.h \
f:\p.due\include\relation.h \
f:\p.due\include\isam.h \
f:\p.due\include\sysfld.h \
f:\p.due\include\files.h \
f:\p.due\include\extctype.h \
f:\p.due\include\rectypes.h \
f:\p.due\include\lffiles.h \
f:\p.due\include\tabutil.h \
f:\p.due\include\utility.h \
f:\p.due\include\sort.h \
f:\p.due\include\assoc.h \
f:\p.due\include\config.h \
f:\p.due\include\scperc.h \
f:\p.due\include\rpag.h \
f:\p.due\include\rver.h \
f:\p.due\include\comuni.h \
f:\p.due\include\nditte.h \
f:\p.due\include\anagr.h \
f:\p.due\include\anafis.h \
f:\p.due\include\perc.h \
f:\p.due\include\mailbox.h \
f:\p.due\include\execp.h \
f:\p.due\77\772.h \
f:\p.due\77\772300.h \
f:\p.due\77\77lib.h
772400_DEP = f:\p.due\include\mask.h \
f:\p.due\include\window.h \
f:\p.due\include\object.h \
f:\p.due\include\classes.h \
f:\p.due\include\stdtypes.h \
f:\xvt.400\win_x86\ptk\include\xvt_env.h \
f:\p.due\include\checks.h \
f:\p.due\include\xvtility.h \
f:\xvt.400\win_x86\ptk\include\xvt.h \
f:\xvt.400\win_x86\ptk\include\xvt_plat.h \
f:\xvt.400\win_x86\ptk\include\xvt_varg.h \
f:\xvt.400\win_x86\ptk\include\xvt_styp.h \
f:\xvt.400\win_x86\ptk\include\xvt_defs.h \
f:\xvt.400\win_x86\ptk\include\xvt_menu.h \
f:\xvt.400\win_x86\ptk\include\xvt_type.h \
f:\xvt.400\win_x86\ptk\include\xvt_sel.h \
f:\xvt.400\win_x86\ptk\include\xvt_perr.h \
f:\xvt.400\win_x86\ptk\include\xvt_help.h \
f:\xvt.400\win_x86\ptk\include\xvt_r3.h \
f:\xvt.400\win_x86\ptk\include\xvterr.h \
f:\xvt.400\win_x86\ptk\include\xvtapp.h \
f:\xvt.400\win_x86\ptk\include\xvtcb.h \
f:\xvt.400\win_x86\ptk\include\xvtctl.h \
f:\xvt.400\win_x86\ptk\include\xvtdebug.h \
f:\xvt.400\win_x86\ptk\include\xvtdlg.h \
f:\xvt.400\win_x86\ptk\include\xvtdm.h \
f:\xvt.400\win_x86\ptk\include\xvtdwin.h \
f:\xvt.400\win_x86\ptk\include\xvtevent.h \
f:\xvt.400\win_x86\ptk\include\xvtfont.h \
f:\xvt.400\win_x86\ptk\include\xvtfsys.h \
f:\xvt.400\win_x86\ptk\include\xvtgmem.h \
f:\xvt.400\win_x86\ptk\include\xvtiostr.h \
f:\xvt.400\win_x86\ptk\include\xvtimage.h \
f:\xvt.400\win_x86\ptk\include\xvtlist.h \
f:\xvt.400\win_x86\ptk\include\xvtmenu.h \
f:\xvt.400\win_x86\ptk\include\xvtmem.h \
f:\xvt.400\win_x86\ptk\include\xvtpalet.h \
f:\xvt.400\win_x86\ptk\include\xvtpict.h \
f:\xvt.400\win_x86\ptk\include\xvtpmap.h \
f:\xvt.400\win_x86\ptk\include\xvtprint.h \
f:\xvt.400\win_x86\ptk\include\xvtrect.h \
f:\xvt.400\win_x86\ptk\include\xvtres.h \
f:\xvt.400\win_x86\ptk\include\xvtsbar.h \
f:\xvt.400\win_x86\ptk\include\xvtscr.h \
f:\xvt.400\win_x86\ptk\include\xvtslist.h \
f:\xvt.400\win_x86\ptk\include\xvtstr.h \
f:\xvt.400\win_x86\ptk\include\xvttimer.h \
f:\xvt.400\win_x86\ptk\include\xvttx.h \
f:\xvt.400\win_x86\ptk\include\xvtvobj.h \
f:\xvt.400\win_x86\ptk\include\xvtwin.h \
f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \
f:\p.due\include\keys.h \
f:\p.due\include\maskfld.h \
f:\p.due\include\real.h \
f:\mathlib\gmsys1.h \
f:\mathlib\gfd.h \
f:\p.due\include\strings.h \
f:\p.due\include\array.h \
f:\p.due\include\scanner.h \
f:\p.due\include\printapp.h \
f:\p.due\include\applicat.h \
f:\p.due\include\printer.h \
f:\p.due\include\date.h \
f:\p.due\include\text.h \
f:\p.due\include\relation.h \
f:\p.due\include\isam.h \
f:\p.due\include\sysfld.h \
f:\p.due\include\files.h \
f:\p.due\include\extctype.h \
f:\p.due\include\rectypes.h \
f:\p.due\include\lffiles.h \
f:\p.due\include\tabutil.h \
f:\p.due\include\utility.h \
f:\p.due\include\sort.h \
f:\p.due\include\progind.h \
f:\p.due\include\scperc.h \
f:\p.due\include\rpag.h \
f:\p.due\include\rver.h \
f:\p.due\include\anagr.h \
f:\p.due\include\nditte.h \
f:\p.due\include\perc.h \
f:\p.due\include\config.h \
f:\p.due\include\assoc.h \
f:\p.due\77\772.h \
f:\p.due\77\772400.h \
f:\p.due\77\77lib.h
772_RCDEP =
all: $(PROJ).EXE $(PROJ).BSC
772.OBJ: 772.CPP $(772_DEP)
$(CPP) $(CFLAGS) $(CPPCREATEPCHFLAG) /c 772.CPP
772100.OBJ: 772100.CPP $(772100_DEP)
$(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c 772100.CPP
772200.OBJ: 772200.CPP $(772200_DEP)
$(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c 772200.CPP
772300.OBJ: 772300.CPP $(772300_DEP)
$(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c 772300.CPP
772400.OBJ: 772400.CPP $(772400_DEP)
$(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c 772400.CPP
772.RES: C:\PRASSI\772.RC $(772_RCDEP)
$(RC) $(RCFLAGS) $(RCDEFINES) -r -FoF:\P.DUE\77\772.RES C:\PRASSI\772.RC
$(PROJ).EXE:: 772.RES
$(PROJ).EXE:: 772.OBJ 772100.OBJ 772200.OBJ 772300.OBJ 772400.OBJ $(OBJS_EXT) $(DEFFILE)
echo >NUL @<<$(PROJ).CRF
772.OBJ +
772100.OBJ +
772200.OBJ +
772300.OBJ +
772400.OBJ +
$(OBJS_EXT)
$(PROJ).EXE
$(MAPFILE)
c:\msvc\lib\+
c:\p.due\win\+
f:\p.due\win\lib\+
..\WIN\LIB\HLAPI_CW.LIB+
..\WIN\LIB\WINDUED.LIB+
..\WIN\LIB\WINGFM.LIB+
..\WIN\LIB\WINUNO.LIB+
..\WIN\LIB\XVT400.LIB+
$(LIBS)
$(DEFFILE);
<<
link $(LFLAGS) @$(PROJ).CRF
$(RC) $(RESFLAGS) 772.RES $@
@copy $(PROJ).CRF MSVC.BND
$(PROJ).EXE:: 772.RES
if not exist MSVC.BND $(RC) $(RESFLAGS) 772.RES $@
run: $(PROJ).EXE
$(PROJ) $(RUNFLAGS)
$(PROJ).BSC: $(SBRS)
bscmake @<<
/o$@ $(SBRS)
<<

1341
m770/772.pdb Executable file

File diff suppressed because it is too large Load Diff

24
m770/772.url Executable file
View File

@ -0,0 +1,24 @@
#include <default.url>
MENU TASK_MENUBAR
SUBMENU MENU_FILE "~File"
MENUBAR MENU_BAR(1)
MENU MENU_BAR(1)
SUBMENU MENU_FILE "~File"
MENUBAR MENU_BAR(2)
MENU MENU_BAR(2)
SUBMENU MENU_FILE "~File"
MENUBAR MENU_BAR(3)
MENU MENU_BAR(3)
SUBMENU MENU_FILE "~File"
MENUBAR MENU_BAR(4)
MENU MENU_BAR(4)
SUBMENU MENU_FILE "~File"

1342
m770/772100.cpp Executable file

File diff suppressed because it is too large Load Diff

15
m770/772100.h Executable file
View File

@ -0,0 +1,15 @@
// Campi maschera 772100a.uml
#define F_CODDITTA 101
#define F_RAGSOC 102
#define F_TIPODA 103
#define F_CODDA 104
#define F_RAGDA 105
#define F_TIPOA 106
#define F_CODA 107
#define F_RAGA 108
#define F_CARATTERE 109
#define F_RAGDITTA 110
#define F_MODULO 111

138
m770/772100a.uml Executable file
View File

@ -0,0 +1,138 @@
// 772100a.uml
// Stampa schede percipienti
#include "772100.h"
PAGE "Stampa schede percipienti" -1 -1 78 15
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 1 0 ""
END
NUMBER F_CODDITTA 5
BEGIN
PROMPT 3 1 "Ditta "
FLAGS "GRD"
KEY 1
CHECKTYPE REQUIRED
USE LF_NDITTE KEY 1
INPUT CODDITTA F_CODDITTA
DISPLAY "Codice" CODDITTA
DISPLAY "Ragione sociale @50" RAGSOC
OUTPUT F_RAGDITTA RAGSOC
FIELD LF_SCPERC->CODDITTA
END
STRING F_RAGDITTA 50
BEGIN
PROMPT 17 1 "Ragione "
FLAGS "D"
END
/*
NUMBER F_ANNO 4
BEGIN
PROMPT 3 3 "Anno dichiarazione "
END
*/
STRING F_TIPODA 1
BEGIN
PROMPT 3 4 "Da codice "
FLAGS "U"
END
TEXT DLG_NULL
BEGIN
PROMPT 23 4 "/"
END
NUMBER F_CODDA 5
BEGIN
PROMPT 25 4 ""
HELP "Codice anagrafico del percipiente"
USE LF_PERC KEY 1 SELECT (CODDITTA=#F_CODDITTA)
JOIN LF_ANAG TO LF_PERC INTO TIPOA=TIPOA CODANAGR=CODANAGR
CHECKTYPE NORMAL
INPUT CODDITTA F_CODDITTA
INPUT TIPOA F_TIPODA
INPUT CODANAGR F_CODDA
DISPLAY "Tipo" TIPOA
DISPLAY "Codice" CODANAGR
DISPLAY "Ragione Sociale@50" LF_ANAG->RAGSOC
OUTPUT F_TIPODA TIPOA
OUTPUT F_CODDA CODANAGR
OUTPUT F_RAGDA LF_ANAG->RAGSOC
WARNING "Percipiente inesistente"
END
STRING F_RAGDA 50
BEGIN
PROMPT 3 5 "Ragione sociale "
FLAGS "D"
END
STRING F_TIPOA 1
BEGIN
PROMPT 3 6 "A codice "
FLAGS "U"
END
TEXT DLG_NULL
BEGIN
PROMPT 23 6 "/"
END
NUMBER F_CODA 5
BEGIN
PROMPT 25 6 ""
HELP "Codice anagrafico del percipiente"
USE LF_PERC KEY 1 SELECT (CODDITTA=#F_CODDITTA)
JOIN LF_ANAG TO LF_PERC INTO TIPOA=TIPOA CODANAGR=CODANAGR
CHECKTYPE NORMAL
INPUT CODDITTA F_CODDITTA
INPUT TIPOA F_TIPOA
INPUT CODANAGR F_CODA
DISPLAY "Tipo" TIPOA
DISPLAY "Codice" CODANAGR
DISPLAY "Ragione Sociale@50" LF_ANAG->RAGSOC
OUTPUT F_TIPOA TIPOA
OUTPUT F_CODA CODANAGR
OUTPUT F_RAGA LF_ANAG->RAGSOC
WARNING "Percipiente inesistente"
END
STRING F_RAGA 50
BEGIN
PROMPT 3 7 "Ragione sociale "
FLAGS "D"
END
LIST F_CARATTERE 13
BEGIN
PROMPT 3 9 "Tipo stampa "
ITEMS "1|132 caratteri"
ITEMS "2|198 caratteri"
END
BOOLEAN F_MODULO
BEGIN
PROMPT 3 11 "Stampa su modulo "
HELP "Indicare se si desidera stampare su modulo"
END
BUTTON DLG_PRINT 10 2
BEGIN
PROMPT -12 -1 "~Stampa"
MESSAGE EXIT,K_ENTER
END
BUTTON DLG_QUIT 10 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK

Some files were not shown because too many files have changed in this diff Show More