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_CODNUM, TDocumento_mask::num_handler );
_msk->set_handler( F_TIPODOC, TDocumento_mask::tip_handler ); _msk->set_handler( F_TIPODOC, TDocumento_mask::tip_handler );
_msk->set_handler( F_NUMDOCRIF, TDocumento_mask::numdocrif_search_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 ); TConfig utente( CONFIG_USER );
_codnum = utente.get("CODNUM"); _codnum = utente.get("CODNUM");

View File

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

View File

@ -329,6 +329,7 @@ public:
const bool auto_num() const { return get_bool("B1"); } const bool auto_num() const { return get_bool("B1"); }
const bool dont_test_datadoc() const { return get_bool("B2"); } const bool dont_test_datadoc() const { return get_bool("B2"); }
const bool fattura_emettere_ricevere() const { return get_bool("B3"); } const bool fattura_emettere_ricevere() const { return get_bool("B3"); }
const TString & tipo_doc(int i) const; const TString & tipo_doc(int i) const;
int ntipi_doc() const; int ntipi_doc() const;
@ -806,6 +807,7 @@ public:
static bool num_handler( TMask_field& f, KEY key ); static bool num_handler( TMask_field& f, KEY key );
static bool tip_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 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); static bool datadocrif_handler(TMask_field& f, KEY key);
void highlight(COLOR high_back_color, COLOR high_color); 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()) if (!datadoc.ok())
return field.error_box("La data documento deve essere comunque indicata."); return field.error_box("La data documento deve essere comunque indicata.");
TEsercizi_contabili esc; TEsercizi_contabili esc;
if (esc.date2esc(datadoc) <= 0) if (esc.date2esc(datadoc) <= 0)
return field.error_box("La data documento non appartiene ad un esercizio valido."); return field.error_box("La data documento non appartiene ad un esercizio valido.");
if (main_app().has_module(CGAUT)) if (main_app().has_module(CGAUT))
{ {
const TTipo_documento& td = m.doc().tipo(); const TTipo_documento& td = m.doc().tipo();
TString16 codcaus = td.causale(); TString16 codcaus = td.causale();
if (codcaus.empty()) if (codcaus.empty())
{ {
const TRectype& clifo = m.doc().clifor().vendite(); const TRectype& clifo = m.doc().clifor().vendite();
codcaus = clifo.get("CODCAUS"); codcaus = clifo.get("CODCAUS");
} }
if (codcaus.not_empty()) if (codcaus.not_empty())
{ {
const int year = datadoc.year(); const int year = datadoc.year();
TCausale caus; TCausale caus;
if (!caus.read(codcaus, year)) if (!caus.read(codcaus, year))
return FALSE; // L'errore viene segnalato nella read return FALSE; // L'errore viene segnalato nella read
} }
} }
const TCodice_numerazione codnum(m.get(F_CODNUM)); const TCodice_numerazione codnum(m.get(F_CODNUM));
if (codnum.dont_test_datadoc()) if (codnum.dont_test_datadoc())
return TRUE; // Non devo fare altri test 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); TRectype filtrec(LF_DOC);
filtrec.put(DOC_TIPOCF, m.get(F_TIPOCF)); filtrec.put(DOC_TIPOCF, m.get(F_TIPOCF));
filtrec.put(DOC_CODCF, m.get(F_CODCF)); filtrec.put(DOC_CODCF, m.get(F_CODCF));
filtrec.put(DOC_PROVV, m.get(F_PROVV)); const long codcf = atol(m.get(F_CODCF));
filtrec.put(DOC_ANNO, m.get(F_ANNO)); if (codcf != 0)
filtrec.put(DOC_TIPOCF, m.get(F_TIPOCF));
TRelation rel(LF_DOC); TRelation rel(LF_DOC);
rel.add(LF_CLIFO, "TIPOCF==TIPOCF|CODCF==CODCF"); rel.add(LF_CLIFO, "TIPOCF==TIPOCF|CODCF==CODCF");
TSorted_cursor cur(&rel, "TIPOCF|CODCF|PROVV|ANNO|CODNUM|NUMDOCRIF", "", 2, &filtrec, &filtrec); 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); 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", "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); 0, 1);
if (sheet.run() == K_ENTER) if (sheet.run() == K_ENTER)
{ {
@ -1267,6 +1270,38 @@ bool TDocumento_mask::numdocrif_search_handler(TMask_field& f, KEY key)
return TRUE; 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) bool TDocumento_mask::datadocrif_handler(TMask_field& f, KEY key)
{ {

View File

@ -100,7 +100,10 @@
#define F_CODCONT1 204 #define F_CODCONT1 204
#define F_CODZON 205 #define F_CODZON 205
#define F_ORDDA 206 #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 //#define F_SELECT 101
#endif // veuml.h #endif // veuml.h