Patch level : 10.952

Files correlati     :  cg0.exe
Ricompilazione Demo : [ ]
Commento            :

Bug     	0001785: Anagrafica clienti (cg0)

Abilitare i campi data di nascita comune di nascita e stao di nascita anche per i clienti

Bug          0001790: Programma di gestione occasionali

Aggiungere questo programma con i campi del file occasionali.


git-svn-id: svn://10.65.10.50/branches/R_10_00@21774 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2011-03-11 14:44:45 +00:00
parent 049191d2b9
commit afd9c24b3e
8 changed files with 344 additions and 10 deletions

View File

@ -12,6 +12,7 @@ int main(int argc, char** argv)
case 3: cg0400(argc,argv); break; // Progressivi IVA
case 4: cg0500(argc,argv); break; // Causali contabili
case 5: cg0600(argc,argv); break; // Tabelle contabili
case 6: cg0700(argc,argv); break; // Clienti/Fornitori occasionali
default: cg0100(argc,argv); break; // Piano dei conti
}
exit(0);

View File

@ -7,6 +7,7 @@ int cg0300(int argc, char* argv[]);
int cg0400(int argc, char* argv[]);
int cg0500(int argc, char* argv[]);
int cg0600(int argc, char* argv[]);
int cg0700(int argc, char* argv[]);
#endif // __CG0_H

View File

@ -151,6 +151,8 @@
#define F_IMPMINFAT 257
#define F_RIFDOC 258
#define F_CODCAUSINC 259
#define F_STATONASC 260
#define F_DESTANASC 261
#define DLG_RIC 300
#define DLG_CST 301

View File

@ -522,7 +522,7 @@ BEGIN
CHECKTYPE REQUIRED
END
GROUPBOX DLG_NULL 76 6
GROUPBOX DLG_NULL 76 7
BEGIN
PROMPT 1 14 "Dati Percipiente/Nascita"
END
@ -580,7 +580,6 @@ DATE F_DATANASC
BEGIN
PROMPT 2 17 "Data "
FIELD DATANASC
GROUP 5
HELP "Data di nascita del cliente/fornitore"
END
@ -591,15 +590,14 @@ BEGIN
ITEM "M|Maschio"
ITEM "F|Femmina"
FIELD SESSO
GROUP 5
GROUP 5
END
STRING F_COMNASC 4
BEGIN
PROMPT 60 17 "Comune "
PROMPT 2 18 "Comune "
FIELD COMNASC
FLAGS "U"
GROUP 5
COPY USE F_COMCF
INPUT STATO ""
INPUT COM F_COMNASC
@ -614,8 +612,7 @@ END
STRING F_DENCOMNASC 50
BEGIN
PROMPT 2 18 "Denominazione "
GROUP 5
PROMPT 23 18 ""
USE LF_COMUNI KEY 2
INPUT DENCOM F_DENCOMNASC
COPY DISPLAY F_DENCOMCF
@ -624,6 +621,33 @@ BEGIN
ADD RUN ba4 -0
END
NUMBER F_STATONASC 3
BEGIN
PROMPT 2 19 "Stato "
FIELD STATONASC
FLAGS "Z"
USE %STA
INPUT CODTAB F_STATONASC
DISPLAY "Codice" CODTAB
DISPLAY "Stato@50" S0
OUTPUT F_STATONASC CODTAB
OUTPUT F_DESTANASC S0
HELP "Codice dello stato di nascita"
CHECKTYPE NORMAL
WARNING "Stato assente"
END
STRING F_DESTANASC 50
BEGIN
PROMPT 23 19 ""
USE %STA KEY 2
INPUT S0 F_DESTANASC
DISPLAY "Stato@60" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT F_STATONASC
END
ENDPAGE
PAGE "Banche" -1 -1 78 19

104
cg/cg0700.cpp Executable file
View File

@ -0,0 +1,104 @@
#include <recarray.h>
#include <relapp.h>
#include "cg0.h"
#include "cg0700a.h"
#include <pconti.h>
#include <saldi.h>
#include <automask.h>
#include <validate.h>
///////////////////////////////////////////////////////////
// TCheck_PIVA_mask
///////////////////////////////////////////////////////////
class TOccas_mask : public TAutomask
{
protected:
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
public:
TOccas_mask() : TAutomask("cg0700a") { }
};
bool TOccas_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{
switch (o.dlg())
{
case O_COFI:
if (e == fe_modify)
{
TMask& m = o.mask();
TString16 cofi = m.get(O_COFI);
if (cofi.blank())
cofi = m.get(O_CODICE);
if (cf_check(m.get(O_STATONAS), cofi))
{
int giorno = atoi(cofi.mid(9,2));
m.set(O_SESSO, giorno > 40 ? "F" : "M");
if (m.field(O_COMUNENAS).empty())
m.set(O_COMUNENAS, cofi.mid(11,4), 0x2);
if (m.field(O_DATANAS).empty())
{
const TFixed_string mesi("ABCDEHLMPRST");
const int mese = mesi.find(cofi[8])+1;
int anno = atoi(cofi.mid(6,2));
if (giorno > 0 && mese > 0 && anno > 0)
{
giorno %= 40;
anno += anno < 5 ? 2000 : 1900;
m.set(O_DATANAS, TDate(giorno, mese, anno));
}
}
}
}
break;
default: break;
}
return true;
}
class TOccasionali_app : public TRelation_application
{
TOccas_mask * _msk;
TRelation *_rel;
bool user_create();
bool user_destroy();
virtual TMask* get_mask(int mode) {return _msk;}
virtual bool changing_mask(int mode) {return FALSE;}
public:
// @cmember Disabilita la verifica del modulo : essendo una anagrafica, va sempre abilitata
virtual bool check_autorization() const { return false; }
virtual TRelation* get_relation() const {return _rel;}
};
HIDDEN inline TOccasionali_app& app() { return (TOccasionali_app&) main_app();}
bool TOccasionali_app::user_create()
{
open_files(LF_OCCAS, 0);
_rel = new TRelation(LF_OCCAS);
_msk = new TOccas_mask() ;
return TRUE;
}
bool TOccasionali_app::user_destroy()
{
delete _rel;
delete _msk;
return TRUE;
}
int cg0700(int argc, char* argv[])
{
TOccasionali_app a ;
a.run(argc, argv, TR("Clienti/Fornitori Occasionali"));
return 0;
}

17
cg/cg0700a.h Executable file
View File

@ -0,0 +1,17 @@
// Maschera clienti/fornitori occasionali
#define O_CODICE 100
#define O_RAGSOC 101
#define O_STATO 102
#define O_COMUNE 103
#define O_DENCOM 104
#define O_CAP 105
#define O_INDIRIZZO 106
#define O_NUMERO 107
#define O_COFI 108
#define O_PAIV 109
#define O_SESSO 110
#define O_DATANAS 111
#define O_STATONAS 112
#define O_COMUNENAS 113
#define O_DENCOMNAS 114

184
cg/cg0700a.uml Executable file
View File

@ -0,0 +1,184 @@
#include "cg2100.h"
TOOLBAR "topbar" 0 0 0 2
#include <relapbar.h>
ENDPAGE
PAGE "Clienti/Fornitori occasionali" 0 0 0 0
GROUPBOX DLG_NULL 70 4
BEGIN
PROMPT 1 0 ""
END
STRING O_CODICE 16
BEGIN
PROMPT 2 1 "Codice "
FLAGS "U"
USE LF_OCCAS
INPUT CFPI O_CODICE
DISPLAY "Codice@16" CFPI
DISPLAY "Ragione Sociale@50" RAGSOC
OUTPUT O_CODICE CFPI
OUTPUT O_RAGSOC RAGSOC
FIELD CFPI
VALIDATE NOT_EMPTY_FUNC
KEY 1
END
STRING O_RAGSOC 50
BEGIN
PROMPT 2 2 "Ragione sociale "
FIELD RAGSOC
USE LF_OCCAS KEY 2
INPUT RAGSOC O_RAGSOC
DISPLAY "Ragione Sociale@50" RAGSOC
DISPLAY "Codice@16" CFPI
OUTPUT O_CODICE CFPI
OUTPUT O_RAGSOC RAGSOC
VALIDATE NOT_EMPTY_FUNC
KEY 2
END
STRING O_COFI 16
BEGIN
PROMPT 2 4 "Codice fiscale "
FIELD COFI
FLAGS "U"
VALIDATE XTZCF_FUNC O_STATONAS O_SESSO O_DATANAS O_COMUNENAS
END
STRING O_PAIV 12
BEGIN
PROMPT 44 4 "Partita IVA "
FIELD PAIV
VALIDATE PI_FUNC O_STATO
END
GROUPBOX DLG_NULL 70 5
BEGIN
PROMPT 1 5 "@bDati residenza"
END
STRING O_INDIRIZZO 40
BEGIN
PROMPT 2 6 "Indirizzo "
FIELD INDIR
END
STRING O_NUMERO 6
BEGIN
PROMPT 55 6 "Numero "
FIELD CIV
END
STRING O_STATO 3
BEGIN
PROMPT 2 7 "Stato "
HELP "Stato di residenza della persona"
FIELD STATO
FLAGS "U"
USE %STA
INPUT CODTAB O_STATO
DISPLAY "Codice" CODTAB
DISPLAY "Denominazione@50" S0
OUTPUT O_STATO CODTAB
CHECKTYPE NORMAL
END
STRING O_COMUNE 4
BEGIN
PROMPT 27 7 "Comune "
FIELD COM
FLAGS "U"
USE LF_COMUNI
INPUT STATO O_STATO
INPUT COM O_COMUNE
DISPLAY "Codice" COM
DISPLAY "Denominazione@50" DENCOM
OUTPUT O_COMUNE COM
OUTPUT O_DENCOM DENCOM
OUTPUT O_CAP CAPCOM
CHECKTYPE NORMAL
END
NUMBER O_CAP 5
BEGIN
PROMPT 56 7 "C.A.P. "
HELP "CAP della residenza della persona"
FIELD CAP
END
STRING O_DENCOM 50
BEGIN
PROMPT 2 8 "Denominazione "
HELP "Nome del comune di residenza della persona"
USE LF_COMUNI KEY 2
INPUT DENCOM O_DENCOM
DISPLAY "Denominazione@50" DENCOM
DISPLAY "Codice@10" COM
COPY OUTPUT O_COMUNE
CHECKTYPE NORMAL
END
GROUPBOX DLG_NULL 70 4
BEGIN
PROMPT 1 10 "@bDati nascita"
END
LIST O_SESSO 1 7
BEGIN
PROMPT 2 11 "Sesso "
ITEM "M|Maschio"
ITEM "F|Femmina"
FLAGS "D"
END
DATE O_DATANAS
BEGIN
PROMPT 23 11 "Data "
FIELD DNASC
END
STRING O_STATONAS 3
BEGIN
PROMPT 41 11 "Stato "
FIELD STATONASC
FLAGS "U"
COPY USE O_STATO
INPUT CODTAB O_STATONAS
COPY DISPLAY O_STATO
OUTPUT O_STATONAS CODTAB
CHECKTYPE NORMAL
END
STRING O_COMUNENAS 4
BEGIN
PROMPT 55 11 "Comune "
FIELD COMNASC
FLAGS "U"
COPY USE O_COMUNE
INPUT STATO O_STATONAS
INPUT COM O_COMUNENAS
COPY DISPLAY O_COMUNE
OUTPUT O_COMUNENAS COM
OUTPUT O_DENCOMNAS DENCOM
CHECKTYPE NORMAL
END
STRING O_DENCOMNAS 50
BEGIN
PROMPT 2 12 "Denominazione "
COPY USE O_DENCOM
INPUT DENCOM O_DENCOMNAS
COPY DISPLAY O_DENCOM
COPY OUTPUT O_COMUNENAS
CHECKTYPE NORMAL
END
ENDPAGE
ENDMASK

View File

@ -65,9 +65,10 @@ Item_02 = "Registri", "ba3 -0 reg", ""
Item_03 = "Piano dei conti", "cg0 -0", "F"
Item_04 = "Causali", "cg0 -4", "F"
Item_05 = "Clienti/Fornitori", "cg0 -1", "F"
Item_06 = "Agenti", "pr0 -4", ""
Item_07 = "Cambi giornalieri", "ba3 -0 cam", ""
Item_08 = "Esercizi", "cg0 -5 esc", "F"
Item_06 = "Clienti/Fornitori occasionali", "cg0 -6", "F"
Item_07 = "Agenti", "pr0 -4", ""
Item_08 = "Cambi giornalieri", "ba3 -0 cam", ""
Item_09 = "Esercizi", "cg0 -5 esc", "F"
[CGMENU_008]
Caption = "Stampa tabelle ditta"