Patch level : 2.1 104

Files correlati     : ve0.exe
Ricompilazione Demo : [ ]
Commento            :
Aggiungere nella mashera di ricerca la ditta la ragione sociale del cliente con ricerca risistemare le colonne nella ricerca per cliente e riferimento (aggiungere totale documento)


git-svn-id: svn://10.65.10.50/trunk@12288 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2004-09-03 13:52:59 +00:00
parent dd1d626095
commit 024ae32be6
5 changed files with 239 additions and 169 deletions

View File

@ -320,6 +320,7 @@ bool TMotore_application::user_create( )
_msk->set_handler( F_CODNUM, TDocumento_mask::num_handler );
_msk->set_handler( F_TIPODOC, TDocumento_mask::tip_handler );
_msk->set_handler( F_NUMDOCRIF, TDocumento_mask::numdocrif_search_handler );
_msk->set_handler( F_RAGSOCSEARCH, TDocumento_mask::ragsoc_search_handler );
TConfig utente( CONFIG_USER );
_codnum = utente.get("CODNUM");

View File

@ -6,158 +6,187 @@ ENDPAGE
PAGE "Estremi del documento" 1 1 60 14
GROUPBOX DLG_NULL 78 6
BEGIN
PROMPT 1 0 "Estremi del documento"
END
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 1 1 "@bDitta"
END
LISTBOX F_PROVV 14
BEGIN
FIELD PROVV
PROMPT 46 3 "Tipo "
ITEM "D|Definitiva "
ITEM "P|Provvisoria"
KEY 1 2
FLAGS "P"
END
NUMBER F_CODDITTA 5
BEGIN
PROMPT 3 2 "Codice "
FLAGS "FD"
USE LF_NDITTE
CHECKTYPE NORMAL
INPUT CODDITTA F_CODDITTA
OUTPUT F_RAGSOCDITTA RAGSOC
END
STRING F_CODNUM 4
BEGIN
PROMPT 2 1 "Numerazione "
FIELD CODNUM
HELP "Codice numerazione"
USE %NUM
INPUT CODTAB F_CODNUM
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_CODNUM CODTAB
OUTPUT F_DESNUM S0
CHECKTYPE FORCED
FLAG "UPA"
WARNING "Numerazione assente"
KEY 1 2
END
STRING F_RAGSOCDITTA 50
BEGIN
PROMPT 17 2 "Ragione "
FLAGS "D"
END
STRING F_DESNUM 50
BEGIN
PROMPT 24 1 ""
HELP "Descrizione numerazione"
USE %NUM KEY 2
INPUT S0 F_DESNUM
DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT F_CODNUM
END
GROUPBOX DLG_NULL 78 7
BEGIN
PROMPT 1 4 "Estremi del documento"
END
STRING F_TIPODOC 4
BEGIN
PROMPT 2 2 "Tipo "
FIELD TIPODOC
HELP "Codice tipo documento"
USE %TIP
INPUT CODTAB F_TIPODOC
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_TIPODOC CODTAB
OUTPUT F_DESTIPODOC S0
CHECKTYPE FORCED
FLAG "UP"
END
LISTBOX F_PROVV 14
BEGIN
FIELD PROVV
PROMPT 46 7 "Tipo "
ITEM "D|Definitiva "
ITEM "P|Provvisoria"
KEY 1 2
FLAGS "P"
END
STRING F_DESTIPODOC 50
BEGIN
PROMPT 24 2 ""
HELP "Descrizione tipo documento"
USE %TIP KEY 2
INPUT S0 F_DESTIPODOC
DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT F_TIPODOC
END
STRING F_CODNUM 4
BEGIN
PROMPT 2 5 "Numerazione "
FIELD CODNUM
HELP "Codice numerazione"
USE %NUM
INPUT CODTAB F_CODNUM
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_CODNUM CODTAB
OUTPUT F_DESNUM S0
CHECKTYPE FORCED
FLAG "UPA"
WARNING "Numerazione assente"
KEY 1 2
END
NUMBER F_ANNO 4
BEGIN
PROMPT 2 3 "Esercizio "
FIELD ANNO
CHECKTYPE REQUIRED
NUM_EXPR #F_ANNO>0
FLAG "AP"
KEY 1 2
WARNING "Inserire un anno valido"
END
STRING F_DESNUM 50
BEGIN
PROMPT 24 5 ""
HELP "Descrizione numerazione"
USE %NUM KEY 2
INPUT S0 F_DESNUM
DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT F_CODNUM
END
NUMBER F_NDOC 6
BEGIN
PROMPT 24 3 "Numero "
FIELD NDOC
USE LF_DOC
JOIN LF_CLIFO TO LF_DOC INTO TIPOCF==TIPOCF CODCF==CODCF
INPUT PROVV F_PROVV SELECT
INPUT ANNO F_ANNO SELECT
INPUT CODNUM F_CODNUM SELECT
INPUT NDOC F_NDOC
DISPLAY "Num." CODNUM
DISPLAY "Anno" ANNO
DISPLAY "Provv" PROVV
DISPLAY "Tipo" TIPODOC
DISPLAY "N.Doc. " NDOC
DISPLAY "Stato@R" STATO
DISPLAY "Data\ndocumento" DATADOC
DISPLAY "C/F" TIPOCF
DISPLAY "Codice" CODCF
DISPLAY "Ragione Sociale@50" LF_CLIFO->RAGSOC
OUTPUT F_NDOC NDOC
OUTPUT F_STATO STATO
OUTPUT F_TIPODOC TIPODOC
CHECKTYPE REQUIRED
KEY 1 2
FLAG "R"
END
STRING F_TIPODOC 4
BEGIN
PROMPT 2 6 "Tipo "
FIELD TIPODOC
HELP "Codice tipo documento"
USE %TIP
INPUT CODTAB F_TIPODOC
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_TIPODOC CODTAB
OUTPUT F_DESTIPODOC S0
CHECKTYPE FORCED
FLAG "UP"
END
STRING F_STATO 1
BEGIN
PROMPT 69 3 "Stato "
FIELD STATO
FLAG "D"
END
STRING F_DESTIPODOC 50
BEGIN
PROMPT 24 6 ""
HELP "Descrizione tipo documento"
USE %TIP KEY 2
INPUT S0 F_DESTIPODOC
DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT F_TIPODOC
END
LIST F_TIPOCF 1 12
BEGIN
PROMPT 2 4 "Tipo "
ITEM "C|Cliente"
ITEM "F|Fornitore"
KEY 2
END
NUMBER F_ANNO 4
BEGIN
PROMPT 2 7 "Esercizio "
FIELD ANNO
CHECKTYPE REQUIRED
NUM_EXPR #F_ANNO>0
FLAG "AP"
KEY 1 2
WARNING "Inserire un anno valido"
END
NUMBER F_CODCF 6
BEGIN
PROMPT 24 4 "Codice "
USE LF_DOC KEY 2 SELECT CODNUM==#F_CODNUM
JOIN LF_CLIFO INTO TIPOCF==TIPOCF CODCF==CODCF
INPUT TIPOCF F_TIPOCF SELECT
INPUT CODCF F_CODCF
INPUT PROVV F_PROVV
INPUT ANNO F_ANNO
DISPLAY "C/F" TIPOCF
DISPLAY "Codice" CODCF
DISPLAY "Num." CODNUM
DISPLAY "Anno" ANNO
DISPLAY "Provv" PROVV
DISPLAY "Tipo" TIPODOC
DISPLAY "N.Doc. " NDOC
DISPLAY "Data\ndocumento" DATADOC
DISPLAY "Ragione Sociale@50" LF_CLIFO->RAGSOC
COPY OUTPUT F_NDOC
OUTPUT F_CODCF CODCF
CHECKTYPE NORMAL
KEY 2
END
NUMBER F_NDOC 6
BEGIN
PROMPT 24 7 "Numero "
FIELD NDOC
USE LF_DOC
JOIN LF_CLIFO TO LF_DOC INTO TIPOCF==TIPOCF CODCF==CODCF
INPUT PROVV F_PROVV SELECT
INPUT ANNO F_ANNO SELECT
INPUT CODNUM F_CODNUM SELECT
INPUT NDOC F_NDOC
DISPLAY "Num." CODNUM
DISPLAY "Anno" ANNO
DISPLAY "Provv" PROVV
DISPLAY "Tipo" TIPODOC
DISPLAY "N.Doc. " NDOC
DISPLAY "Stato@R" STATO
DISPLAY "Data\ndocumento" DATADOC
DISPLAY "C/F" TIPOCF
DISPLAY "Codice" CODCF
DISPLAY "Ragione Sociale@50" LF_CLIFO->RAGSOC
OUTPUT F_NDOC NDOC
OUTPUT F_STATO STATO
OUTPUT F_TIPODOC TIPODOC
CHECKTYPE REQUIRED
KEY 1 2
FLAG "R"
END
STRING F_STATO 1
BEGIN
PROMPT 69 7 "Stato "
FIELD STATO
FLAG "D"
END
LIST F_TIPOCF 1 12
BEGIN
PROMPT 2 8 "Tipo "
ITEM "C|Cliente"
ITEM "F|Fornitore"
KEY 2
END
NUMBER F_CODCF 6
BEGIN
PROMPT 24 8 "Codice "
USE LF_DOC KEY 2 SELECT (CODNUM==#F_CODNUM) && (PROVV==#F_PROVV) && (ANNO==#F_ANNO)
JOIN LF_CLIFO INTO TIPOCF==TIPOCF CODCF==CODCF
INPUT TIPOCF F_TIPOCF SELECT
INPUT CODCF F_CODCF
INPUT PROVV F_PROVV
INPUT ANNO F_ANNO
DISPLAY "Codice" CODCF
DISPLAY "Ragione Sociale@50" LF_CLIFO->RAGSOC
DISPLAY "Partita IVA@12" LF_CLIFO->PAIV
DISPLAY "Num." CODNUM
DISPLAY "Anno" ANNO
DISPLAY "Provv" PROVV
DISPLAY "Tipo" TIPODOC
DISPLAY "N.Doc. " NDOC
DISPLAY "Data\ndocumento" DATADOC
DISPLAY "Valuta" CODVAL
DISPLAY "Totale\ndocumento@18V" G1:TOTDOC
COPY OUTPUT F_NDOC
OUTPUT F_CODCF CODCF
CHECKTYPE NORMAL
KEY 2
END
STRING F_NUMDOCRIF 7
BEGIN
PROMPT 46 4 "Riferimento "
FLAGS "B"
END
STRING F_NUMDOCRIF 7
BEGIN
PROMPT 46 8 "Riferimento "
FLAGS "B"
END
STRING F_RAGSOCSEARCH 50
BEGIN
PROMPT 2 9 "Ragione Sociale "
FLAGS "B"
END
ENDPAGE

View File

@ -329,6 +329,7 @@ public:
const bool auto_num() const { return get_bool("B1"); }
const bool dont_test_datadoc() const { return get_bool("B2"); }
const bool fattura_emettere_ricevere() const { return get_bool("B3"); }
const TString & tipo_doc(int i) const;
int ntipi_doc() const;
@ -806,6 +807,7 @@ public:
static bool num_handler( TMask_field& f, KEY key );
static bool tip_handler( TMask_field& f, KEY key );
static bool numdocrif_search_handler( TMask_field& f, KEY key );
static bool ragsoc_search_handler( TMask_field& f, KEY key );
static bool datadocrif_handler(TMask_field& f, KEY key);
void highlight(COLOR high_back_color, COLOR high_color);

View File

@ -234,28 +234,29 @@ bool data_hndl( TMask_field& field, KEY key )
if (!datadoc.ok())
return field.error_box("La data documento deve essere comunque indicata.");
TEsercizi_contabili esc;
if (esc.date2esc(datadoc) <= 0)
return field.error_box("La data documento non appartiene ad un esercizio valido.");
if (main_app().has_module(CGAUT))
{
const TTipo_documento& td = m.doc().tipo();
TString16 codcaus = td.causale();
if (codcaus.empty())
{
const TRectype& clifo = m.doc().clifor().vendite();
codcaus = clifo.get("CODCAUS");
}
if (codcaus.not_empty())
{
const int year = datadoc.year();
TCausale caus;
if (!caus.read(codcaus, year))
return FALSE; // L'errore viene segnalato nella read
}
}
TEsercizi_contabili esc;
if (esc.date2esc(datadoc) <= 0)
return field.error_box("La data documento non appartiene ad un esercizio valido.");
if (main_app().has_module(CGAUT))
{
const TTipo_documento& td = m.doc().tipo();
TString16 codcaus = td.causale();
if (codcaus.empty())
{
const TRectype& clifo = m.doc().clifor().vendite();
codcaus = clifo.get("CODCAUS");
}
if (codcaus.not_empty())
{
const int year = datadoc.year();
TCausale caus;
if (!caus.read(codcaus, year))
return FALSE; // L'errore viene segnalato nella read
}
}
const TCodice_numerazione codnum(m.get(F_CODNUM));
if (codnum.dont_test_datadoc())
return TRUE; // Non devo fare altri test
@ -1243,18 +1244,20 @@ bool TDocumento_mask::numdocrif_search_handler(TMask_field& f, KEY key)
TRectype filtrec(LF_DOC);
filtrec.put(DOC_TIPOCF, m.get(F_TIPOCF));
filtrec.put(DOC_CODCF, m.get(F_CODCF));
filtrec.put(DOC_PROVV, m.get(F_PROVV));
filtrec.put(DOC_ANNO, m.get(F_ANNO));
const long codcf = atol(m.get(F_CODCF));
if (codcf != 0)
filtrec.put(DOC_TIPOCF, m.get(F_TIPOCF));
TRelation rel(LF_DOC);
rel.add(LF_CLIFO, "TIPOCF==TIPOCF|CODCF==CODCF");
TSorted_cursor cur(&rel, "TIPOCF|CODCF|PROVV|ANNO|CODNUM|NUMDOCRIF", "", 2, &filtrec, &filtrec);
TString80 f; f.format("CODNUM==\"%s\"", (const char *)m.get(F_CODNUM));
TString80 f; f.format("(CODNUM==\"%s\") && (PROVV==\"%s\") && (ANNO==\"%s\")",
(const char *)m.get(F_CODNUM), (const char *)m.get(F_PROVV), (const char *)m.get(F_ANNO));
cur.setfilter(f);
TCursor_sheet sheet(&cur, "TIPOCF|CODCF|ANNO|CODNUM|NUMDOCRIF|DATADOCRIF|DOC1|DOC2|DOC3|NDOC|20->RAGSOC",
TCursor_sheet sheet(&cur, "CODCF|20->RAGSOC|ANNO|CODNUM|NUMDOCRIF|DATADOCRIF|DOC1|DOC2|DOC3|NDOC|DATADOC|CODVAL|G1:TOTDOC",
"Documento di riferimento",
"Tipo|Codice|Anno|Numeraz|Docum.Rif.|Data@10|Docum.Rif. 1|Docum.Rif. 2|Docum.Rif. 3|Documento|Ragione Sociale@50",
"Codice|Ragione Sociale@50|Anno|Numeraz|Docum.Rif.|Data@10|Docum.Rif. 1|Docum.Rif. 2|Docum.Rif. 3|Documento|Data\nDocumento@10|Valuta|Totale\nDocumento@18V",
0, 1);
if (sheet.run() == K_ENTER)
{
@ -1267,6 +1270,38 @@ bool TDocumento_mask::numdocrif_search_handler(TMask_field& f, KEY key)
return TRUE;
}
bool TDocumento_mask::ragsoc_search_handler(TMask_field& f, KEY key)
{
if (key == K_F9)
{
TMask& m = f.mask();
TRectype filtrec(LF_DOC);
filtrec.put(DOC_CODNUM, m.get(F_CODNUM));
filtrec.put(DOC_PROVV, m.get(F_PROVV));
filtrec.put(DOC_ANNO, m.get(F_ANNO));
TRelation rel(LF_DOC);
rel.add(LF_CLIFO, "TIPOCF==TIPOCF|CODCF==CODCF");
TSorted_cursor cur(&rel, "TIPOCF|20->RAGSOC|PROVV|ANNO|CODNUM", "", 1, &filtrec, &filtrec);
TString80 f; f.format("CODNUM==\"%s\"", (const char *)m.get(F_CODNUM));
cur.setfilter(f, TRUE);
TCursor_sheet sheet(&cur, "20->RAGSOC|CODCF|20->PAIV|ANNO|CODNUM|NDOC|DATADOC|CODVAL|G1:TOTDOC",
"Ragione Sociale",
"Ragione Sociale@50|Codice|Partita IVA|Anno|Numeraz|Documento|Data\nDocumento@10|Valuta|Totale\nDocumento@18V",
0, 1);
if (sheet.run() == K_ENTER)
{
const TString16 ndoc = sheet.row(-1).get(5);
m.set(F_NDOC, ndoc);
m.stop_run(K_AUTO_ENTER);
}
}
return TRUE;
}
bool TDocumento_mask::datadocrif_handler(TMask_field& f, KEY key)
{

View File

@ -100,7 +100,10 @@
#define F_CODCONT1 204
#define F_CODZON 205
#define F_ORDDA 206
#define F_ORDDADES 207
#define F_ORDDADES 207
#define F_RAGSOCSEARCH 208
#define F_CODDITTA 209
#define F_RAGSOCDITTA 210
//#define F_SELECT 101
#endif // veuml.h