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:
parent
dd1d626095
commit
024ae32be6
@ -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");
|
||||
|
311
ve/ve0100a.uml
311
ve/ve0100a.uml
@ -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
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user