Aggiunto supporto per elaborzione da chiamare al passaggio da provvisorio a definitivo
git-svn-id: svn://10.65.10.50/branches/R_10_00@22730 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
ffc8c4a48d
commit
e1a988050f
103
ve/ve0100.cpp
103
ve/ve0100.cpp
@ -400,69 +400,78 @@ bool TMotore_application::menu(MENU_TAG mt)
|
|||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TMotore_application::do_elab( TDocumento& doc, bool stampa ) // C 90
|
void TMotore_application::do_elab( TDocumento& doc, int when) // C 90
|
||||||
{
|
{
|
||||||
const TString16 codelab = stampa ? doc.tipo().elaborazione_stampa() : doc.tipo().elaborazione();
|
TString16 codelab;
|
||||||
|
switch (when)
|
||||||
|
{
|
||||||
|
case 1: codelab = doc.tipo().elaborazione_stampa(); break;
|
||||||
|
case 2: codelab = doc.tipo().elaborazione_definitiva(); break;
|
||||||
|
default: codelab = doc.tipo().elaborazione(); break;
|
||||||
|
}
|
||||||
|
|
||||||
if (codelab.full())
|
if (codelab.full())
|
||||||
{
|
{
|
||||||
TRectype eld = cache().get("%ELD", codelab);
|
const TRectype& eld = cache().get("%ELD", codelab);
|
||||||
if (!eld.empty())
|
if (!eld.empty())
|
||||||
{
|
{
|
||||||
TElaborazione * el = NULL;
|
TElaborazione * el = NULL;
|
||||||
switch (eld.get_int("I0"))
|
switch (eld.get_int("I0"))
|
||||||
{
|
{
|
||||||
case _esterna :
|
case _esterna :
|
||||||
el = new TElaborazione_esterna(eld);
|
el = new TElaborazione_esterna(eld);
|
||||||
break;
|
break;
|
||||||
case _consegna_ordini:
|
case _consegna_ordini:
|
||||||
el = new TConsegna_ordini(eld);
|
el = new TConsegna_ordini(eld);
|
||||||
break;
|
break;
|
||||||
case _fatturazione_bolle :
|
case _fatturazione_bolle :
|
||||||
el = new TFatturazione_bolle(eld);
|
el = new TFatturazione_bolle(eld);
|
||||||
break;
|
break;
|
||||||
case _contabilizzazione :
|
case _contabilizzazione :
|
||||||
el = new TContabilizzazione(eld);
|
el = new TContabilizzazione(eld);
|
||||||
break;
|
break;
|
||||||
case _copia_documento :
|
case _copia_documento :
|
||||||
el = new TCopia_documento(eld);
|
el = new TCopia_documento(eld);
|
||||||
break;
|
break;
|
||||||
case _generazione_effetti :
|
case _generazione_effetti :
|
||||||
el = new TGenerazione_effetti(eld);
|
el = new TGenerazione_effetti(eld);
|
||||||
break;
|
break;
|
||||||
case _consuntivazione_produzione :
|
case _consuntivazione_produzione :
|
||||||
el = new TConsuntivazione_produzione(eld);
|
el = new TConsuntivazione_produzione(eld);
|
||||||
break;
|
break;
|
||||||
case _contabilizzazione_analitica :
|
case _contabilizzazione_analitica :
|
||||||
el = new TContabilizzazione_analitica(eld);
|
el = new TContabilizzazione_analitica(eld);
|
||||||
break;
|
break;
|
||||||
default :
|
default :
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
TToken_string tipi;
|
|
||||||
TToken_string stati;
|
TToken_string tipi, stati;
|
||||||
|
|
||||||
el->tipi_stati_iniziali(tipi, stati);
|
el->tipi_stati_iniziali(tipi, stati);
|
||||||
if (stati.find(doc.stato()) >= 0)
|
if (stati.find(doc.stato()) >= 0)
|
||||||
{
|
{
|
||||||
TDocumento newdoc(doc.get_char(DOC_PROVV), doc.get_int(DOC_ANNO), el->codice_numerazione_finale(), 0L);
|
|
||||||
|
|
||||||
TDocumento::copy_data(newdoc.head(), doc.head());
|
|
||||||
newdoc.put(DOC_TIPODOC, el->tipo_finale());
|
|
||||||
newdoc.put(DOC_STATO, el->stato_finale());
|
|
||||||
if (newdoc.tipo().mov_mag())
|
|
||||||
newdoc.put(DOC_CAUSMAG, newdoc.tipo().caus_mov());
|
|
||||||
else
|
|
||||||
newdoc.zero(DOC_CAUSMAG);
|
|
||||||
|
|
||||||
TLista_documenti in; in.add(doc);
|
TLista_documenti in; in.add(doc);
|
||||||
TLista_documenti out; out.add(newdoc);
|
TLista_documenti out;
|
||||||
|
|
||||||
|
TDocumento newdoc(doc.get_char(DOC_PROVV), doc.get_int(DOC_ANNO), el->codice_numerazione_finale(), 0L);
|
||||||
|
if (when == 0)
|
||||||
|
{
|
||||||
|
TDocumento::copy_data(newdoc.head(), doc.head());
|
||||||
|
newdoc.put(DOC_TIPODOC, el->tipo_finale());
|
||||||
|
newdoc.put(DOC_STATO, el->stato_finale());
|
||||||
|
if (newdoc.tipo().mov_mag())
|
||||||
|
newdoc.put(DOC_CAUSMAG, newdoc.tipo().caus_mov());
|
||||||
|
else
|
||||||
|
newdoc.zero(DOC_CAUSMAG);
|
||||||
|
out.add(newdoc);
|
||||||
|
}
|
||||||
|
|
||||||
if (el->elabora(in, out, TDate(TODAY), true))
|
if (el->elabora(in, out, TDate(TODAY), true))
|
||||||
{
|
{
|
||||||
if (out[0] != newdoc)
|
if (when == 0 && out.items() && out[0] != newdoc)
|
||||||
out.rewrite();
|
out.rewrite();
|
||||||
if (doc != in[0])
|
if (when < 2 && in.items() && in[0] != doc)
|
||||||
doc = in[0];
|
doc = in[0];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -49,7 +49,6 @@ protected:
|
|||||||
virtual void init_modify_mode(TMask& m);
|
virtual void init_modify_mode(TMask& m);
|
||||||
void load_auto_reopen_data();
|
void load_auto_reopen_data();
|
||||||
virtual int read(TMask& m);
|
virtual int read(TMask& m);
|
||||||
virtual void do_elab(TDocumento& doc, bool stampa = false);
|
|
||||||
virtual int write(const TMask& m);
|
virtual int write(const TMask& m);
|
||||||
virtual int rewrite(const TMask& m);
|
virtual int rewrite(const TMask& m);
|
||||||
virtual bool remove();
|
virtual bool remove();
|
||||||
@ -81,6 +80,7 @@ protected:
|
|||||||
bool save_and_print(bool savedoc, TPrtype mode);
|
bool save_and_print(bool savedoc, TPrtype mode);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
virtual void do_elab(TDocumento& doc, int w = 0); // w 0=Save; 1=Print; 2=Definitive
|
||||||
|
|
||||||
virtual void print();
|
virtual void print();
|
||||||
virtual void preview();
|
virtual void preview();
|
||||||
|
331
ve/ve5400.uml
331
ve/ve5400.uml
@ -1,165 +1,166 @@
|
|||||||
#include "ve5400.h"
|
#include "ve5400.h"
|
||||||
|
|
||||||
TOOLBAR "Bottoni" 0 0 0 2
|
TOOLBAR "Bottoni" 0 0 0 2
|
||||||
|
|
||||||
BUTTON F_ARCHIVIA 12 2
|
BUTTON F_ARCHIVIA 12 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT -13 -11 "~Invia"
|
PROMPT -13 -11 "~Invia"
|
||||||
PICTURE BMP_EXPORT
|
PICTURE BMP_EXPORT
|
||||||
MESSAGE EXIT,K_ENTER
|
MESSAGE EXIT,K_ENTER
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON F_RIPRISTINA 12 2
|
BUTTON F_RIPRISTINA 12 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT -23 -11 "~Ricevi"
|
PROMPT -23 -11 "~Ricevi"
|
||||||
MESSAGE EXIT,K_DEL
|
PICTURE BMP_IMPORT
|
||||||
END
|
MESSAGE EXIT,K_DEL
|
||||||
|
END
|
||||||
#include <helpbar.h>
|
|
||||||
|
#include <helpbar.h>
|
||||||
ENDPAGE
|
|
||||||
|
ENDPAGE
|
||||||
PAGE "Invio e Ricezione Documenti" 0 0 0 0
|
|
||||||
|
PAGE "Invio e Ricezione Documenti" 0 0 0 0
|
||||||
GROUPBOX DLG_NULL 76 9
|
|
||||||
BEGIN
|
GROUPBOX DLG_NULL 76 9
|
||||||
PROMPT 1 1 ""
|
BEGIN
|
||||||
END
|
PROMPT 1 1 ""
|
||||||
|
END
|
||||||
NUMBER F_FROM_ANNO 4
|
|
||||||
BEGIN
|
NUMBER F_FROM_ANNO 4
|
||||||
PROMPT 2 2 "Anno "
|
BEGIN
|
||||||
FLAGS "AU"
|
PROMPT 2 2 "Anno "
|
||||||
CHECKTYPE REQUIRED
|
FLAGS "AU"
|
||||||
FIELD ANNO
|
CHECKTYPE REQUIRED
|
||||||
END
|
FIELD ANNO
|
||||||
|
END
|
||||||
LIST F_FROM_PROVV 1 12
|
|
||||||
BEGIN
|
LIST F_FROM_PROVV 1 12
|
||||||
PROMPT 60 2 ""
|
BEGIN
|
||||||
ITEM "D|Definitivi"
|
PROMPT 60 2 ""
|
||||||
ITEM "P|Provvisori"
|
ITEM "D|Definitivi"
|
||||||
FIELD PROVV
|
ITEM "P|Provvisori"
|
||||||
END
|
FIELD PROVV
|
||||||
|
END
|
||||||
STRING F_FROM_NUM 4
|
|
||||||
BEGIN
|
STRING F_FROM_NUM 4
|
||||||
PROMPT 2 3 "Numerazione "
|
BEGIN
|
||||||
USE %NUM
|
PROMPT 2 3 "Numerazione "
|
||||||
FLAGS "U"
|
USE %NUM
|
||||||
INPUT CODTAB F_FROM_NUM
|
FLAGS "U"
|
||||||
DISPLAY "Codice Num." CODTAB
|
INPUT CODTAB F_FROM_NUM
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Codice Num." CODTAB
|
||||||
OUTPUT F_FROM_NUM CODTAB
|
DISPLAY "Descrizione@50" S0
|
||||||
OUTPUT F_FROM_DES S0
|
OUTPUT F_FROM_NUM CODTAB
|
||||||
CHECKTYPE REQUIRED
|
OUTPUT F_FROM_DES S0
|
||||||
ADD NONE
|
CHECKTYPE REQUIRED
|
||||||
FIELD CODNUM
|
ADD NONE
|
||||||
END
|
FIELD CODNUM
|
||||||
|
END
|
||||||
STRING F_FROM_DES 50
|
|
||||||
BEGIN
|
STRING F_FROM_DES 50
|
||||||
PROMPT 22 3 ""
|
BEGIN
|
||||||
USE %NUM KEY 2
|
PROMPT 22 3 ""
|
||||||
INPUT S0 F_FROM_DES
|
USE %NUM KEY 2
|
||||||
DISPLAY "Descrizione@50" S0
|
INPUT S0 F_FROM_DES
|
||||||
DISPLAY "Codice Num." CODTAB
|
DISPLAY "Descrizione@50" S0
|
||||||
COPY OUTPUT F_FROM_NUM
|
DISPLAY "Codice Num." CODTAB
|
||||||
CHECKTYPE REQUIRED
|
COPY OUTPUT F_FROM_NUM
|
||||||
END
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
NUMBER F_NUMFR 6
|
|
||||||
BEGIN
|
NUMBER F_NUMFR 6
|
||||||
PROMPT 2 4 "Da numero "
|
BEGIN
|
||||||
USE LF_DOC
|
PROMPT 2 4 "Da numero "
|
||||||
JOIN LF_CLIFO INTO TIPOCF==TIPOCF CODCF==CODCF
|
USE LF_DOC
|
||||||
INPUT ANNO F_FROM_ANNO SELECT
|
JOIN LF_CLIFO INTO TIPOCF==TIPOCF CODCF==CODCF
|
||||||
INPUT CODNUM F_FROM_NUM SELECT
|
INPUT ANNO F_FROM_ANNO SELECT
|
||||||
INPUT PROVV F_FROM_PROVV SELECT
|
INPUT CODNUM F_FROM_NUM SELECT
|
||||||
INPUT NDOC F_NUMFR
|
INPUT PROVV F_FROM_PROVV SELECT
|
||||||
DISPLAY "Num." CODNUM
|
INPUT NDOC F_NUMFR
|
||||||
DISPLAY "Anno" ANNO
|
DISPLAY "Num." CODNUM
|
||||||
DISPLAY "Provv" PROVV
|
DISPLAY "Anno" ANNO
|
||||||
DISPLAY "Tipo" TIPODOC
|
DISPLAY "Provv" PROVV
|
||||||
DISPLAY "Numero@7" NDOC
|
DISPLAY "Tipo" TIPODOC
|
||||||
DISPLAY "Data@10" DATADOC
|
DISPLAY "Numero@7" NDOC
|
||||||
DISPLAY "C/F" TIPOCF
|
DISPLAY "Data@10" DATADOC
|
||||||
DISPLAY "Codice" CODCF
|
DISPLAY "C/F" TIPOCF
|
||||||
DISPLAY "Ragione Sociale@50" LF_CLIFO->RAGSOC
|
DISPLAY "Codice" CODCF
|
||||||
OUTPUT F_NUMFR NDOC
|
DISPLAY "Ragione Sociale@50" LF_CLIFO->RAGSOC
|
||||||
END
|
OUTPUT F_NUMFR NDOC
|
||||||
|
END
|
||||||
NUMBER F_NUMTO 6
|
|
||||||
BEGIN
|
NUMBER F_NUMTO 6
|
||||||
PROMPT 26 4 "A numero "
|
BEGIN
|
||||||
COPY USE F_NUMFR
|
PROMPT 26 4 "A numero "
|
||||||
INPUT ANNO F_FROM_ANNO SELECT
|
COPY USE F_NUMFR
|
||||||
INPUT CODNUM F_FROM_NUM SELECT
|
INPUT ANNO F_FROM_ANNO SELECT
|
||||||
INPUT PROVV F_FROM_PROVV SELECT
|
INPUT CODNUM F_FROM_NUM SELECT
|
||||||
INPUT NDOC F_NUMTO
|
INPUT PROVV F_FROM_PROVV SELECT
|
||||||
COPY DISPLAY F_NUMFR
|
INPUT NDOC F_NUMTO
|
||||||
OUTPUT F_NUMTO NDOC
|
COPY DISPLAY F_NUMFR
|
||||||
END
|
OUTPUT F_NUMTO NDOC
|
||||||
|
END
|
||||||
LIST F_DRIVE 3
|
|
||||||
BEGIN
|
LIST F_DRIVE 3
|
||||||
PROMPT 2 5 "Drive "
|
BEGIN
|
||||||
ITEM "A|A:"
|
PROMPT 2 5 "Drive "
|
||||||
ITEM "B|B:"
|
ITEM "A|A:"
|
||||||
END
|
ITEM "B|B:"
|
||||||
|
END
|
||||||
STRING F_PATH 256 50
|
|
||||||
BEGIN
|
STRING F_PATH 256 50
|
||||||
PROMPT 19 5 ""
|
BEGIN
|
||||||
END
|
PROMPT 19 5 ""
|
||||||
|
END
|
||||||
STRING F_DESCRFILE 50
|
|
||||||
BEGIN
|
STRING F_DESCRFILE 50
|
||||||
PROMPT 2 6 "Descrizione file "
|
BEGIN
|
||||||
GROUP 1
|
PROMPT 2 6 "Descrizione file "
|
||||||
END
|
GROUP 1
|
||||||
|
END
|
||||||
BOOLEAN F_WITHCLI
|
|
||||||
BEGIN
|
BOOLEAN F_WITHCLI
|
||||||
PROMPT 2 7 "Trasferisci clienti/fornitori"
|
BEGIN
|
||||||
END
|
PROMPT 2 7 "Trasferisci clienti/fornitori"
|
||||||
|
END
|
||||||
BOOLEAN F_UPDATE
|
|
||||||
BEGIN
|
BOOLEAN F_UPDATE
|
||||||
PROMPT 2 8 "Aggiorna clienti/fornitori esistenti"
|
BEGIN
|
||||||
END
|
PROMPT 2 8 "Aggiorna clienti/fornitori esistenti"
|
||||||
|
END
|
||||||
ENDPAGE
|
|
||||||
|
ENDPAGE
|
||||||
ENDMASK
|
|
||||||
|
ENDMASK
|
||||||
PAGE "Tipi" -1 -1 60 6
|
|
||||||
|
PAGE "Tipi" -1 -1 60 6
|
||||||
STRING F_TIPO_DOC 4
|
|
||||||
BEGIN
|
STRING F_TIPO_DOC 4
|
||||||
PROMPT 1 1 "Tipo "
|
BEGIN
|
||||||
USE %TIP
|
PROMPT 1 1 "Tipo "
|
||||||
INPUT CODTAB F_TIPO_DOC
|
USE %TIP
|
||||||
DISPLAY "Codice" CODTAB
|
INPUT CODTAB F_TIPO_DOC
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Codice" CODTAB
|
||||||
OUTPUT F_TIPO_DOC CODTAB
|
DISPLAY "Descrizione@50" S0
|
||||||
OUTPUT F_TIPO_DES S0
|
OUTPUT F_TIPO_DOC CODTAB
|
||||||
CHECKTYPE REQUIRED
|
OUTPUT F_TIPO_DES S0
|
||||||
FLAGS "DG"
|
CHECKTYPE REQUIRED
|
||||||
END
|
FLAGS "DG"
|
||||||
|
END
|
||||||
BOOLEAN F_TIPO_SEL
|
|
||||||
BEGIN
|
BOOLEAN F_TIPO_SEL
|
||||||
PROMPT 40 1 "Selezionato"
|
BEGIN
|
||||||
END
|
PROMPT 40 1 "Selezionato"
|
||||||
|
END
|
||||||
STRING F_TIPO_DES 50
|
|
||||||
BEGIN
|
STRING F_TIPO_DES 50
|
||||||
PROMPT 6 3 ""
|
BEGIN
|
||||||
FLAGS "D"
|
PROMPT 6 3 ""
|
||||||
END
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
ENDPAGE
|
|
||||||
|
ENDPAGE
|
||||||
ENDMASK
|
|
||||||
|
ENDMASK
|
||||||
|
@ -300,6 +300,7 @@ public:
|
|||||||
const char stato_provvigioni() const {return get("S3")[0]; }
|
const char stato_provvigioni() const {return get("S3")[0]; }
|
||||||
const TString & elaborazione() const {return get("S3").mid(4,8); }
|
const TString & elaborazione() const {return get("S3").mid(4,8); }
|
||||||
const TString & elaborazione_stampa() const {return get("S3").mid(12,8); }
|
const TString & elaborazione_stampa() const {return get("S3").mid(12,8); }
|
||||||
|
const TString & elaborazione_definitiva() const {return get("S3").mid(20,8); }
|
||||||
const TString & caus_mov() const {return get("S9"); }
|
const TString & caus_mov() const {return get("S9"); }
|
||||||
const TString & caus_anticipo() const {return get("S10"); }
|
const TString & caus_anticipo() const {return get("S10"); }
|
||||||
const TString & tipi_iva_validi() const {return get("S11"); }
|
const TString & tipi_iva_validi() const {return get("S11"); }
|
||||||
|
@ -1460,7 +1460,7 @@ const TRectype* TRiga_documento::find_original_rdoc() const
|
|||||||
|
|
||||||
const TRectype* TRiga_documento::find_original_doc() const
|
const TRectype* TRiga_documento::find_original_doc() const
|
||||||
{
|
{
|
||||||
const long id = get_long(RDOC_DAIDRIGA);
|
const long id = get_long(RDOC_DANDOC);
|
||||||
if (id > 0L)
|
if (id > 0L)
|
||||||
{
|
{
|
||||||
TToken_string key;
|
TToken_string key;
|
||||||
|
@ -498,55 +498,56 @@ bool TElaborazione_esterna::elabora(TLista_documenti& doc_in, TLista_documenti&
|
|||||||
const TDate& data_elab, bool interattivo)
|
const TDate& data_elab, bool interattivo)
|
||||||
{
|
{
|
||||||
if (applicazione_esterna().blank())
|
if (applicazione_esterna().blank())
|
||||||
error_box("Non e' stato specificato il nome del'applicazione esterna");
|
return error_box("Non e' stato specificato il nome del'applicazione esterna");
|
||||||
CHECK(doc_in.items() == 1, "Si deve specificare uno e un solo documento in entrata");
|
CHECK(doc_in.items() == 1, "Si deve specificare uno e un solo documento in entrata");
|
||||||
CHECK(doc_out.items() == 1, "Si deve specificare uno e un solo documento in uscita");
|
CHECK(doc_out.items() <= 1, "Si deve specificare uno e un solo documento in uscita");
|
||||||
TFilename name; name.temp("ext");
|
TFilename name; name.temp("ext");
|
||||||
|
|
||||||
TDocumento& d = doc_in[0];
|
|
||||||
const int doc_fields = d.items();
|
|
||||||
TString16 par;
|
TString16 par;
|
||||||
|
|
||||||
{
|
{
|
||||||
TConfig c(name, "Transaction");
|
TConfig c(name, "Transaction");
|
||||||
c.set("Action", codice());
|
c.set("Action", codice());
|
||||||
c.set("ProvvOut", doc_out[0].get(DOC_PROVV));
|
c.set("DataElab", data_elab.string());
|
||||||
c.set("AnnoOut", doc_out[0].get(DOC_ANNO));
|
c.set("Interattivo", interattivo);
|
||||||
c.set("CodNumOut", doc_out[0].get(DOC_CODNUM));
|
|
||||||
c.set("NDocOut", doc_out[0].get(DOC_NDOC));
|
if (doc_out.items() == 1)
|
||||||
|
{
|
||||||
|
c.set("ProvvOut", doc_out[0].get(DOC_PROVV));
|
||||||
|
c.set("AnnoOut", doc_out[0].get(DOC_ANNO));
|
||||||
|
c.set("CodNumOut", doc_out[0].get(DOC_CODNUM));
|
||||||
|
c.set("NDocOut", doc_out[0].get(DOC_NDOC));
|
||||||
|
}
|
||||||
|
|
||||||
par.format("%d", LF_DOC);
|
par.format("%d", LF_DOC);
|
||||||
|
|
||||||
|
TDocumento& d = doc_in[0];
|
||||||
|
const int doc_fields = d.items();
|
||||||
for (int i = 0; i < doc_fields; i++)
|
for (int i = 0; i < doc_fields; i++)
|
||||||
{
|
{
|
||||||
const TString16 fname(d.fieldname(i));
|
const char* fname = d.fieldname(i);
|
||||||
TFieldref f(fname, LF_DOC);
|
const TFieldref f(fname, LF_DOC);
|
||||||
f.write(c, par, d.get(fname));
|
f.write(c, par, d.get(fname));
|
||||||
}
|
}
|
||||||
for (TVariable_field * v = d.first_variable_field(); v ; v = d.succ_variable_field())
|
for (TVariable_field* v = d.first_variable_field(); v ; v = d.succ_variable_field())
|
||||||
c.set(v->name(), v->get(), par);
|
c.set(v->name(), v->get(), par);
|
||||||
const int rows = d.physical_rows();
|
|
||||||
if (rows > 0)
|
FOR_EACH_PHYSICAL_RDOC(d, r, row)
|
||||||
{
|
{
|
||||||
const int row_fields = d[1].items();
|
par.format("%d,%d", LF_RIGHEDOC, r);
|
||||||
|
const int row_fields = row->items();
|
||||||
for (int r = 1; r <= rows; r++)
|
for (int i = 0; i < row_fields; i++)
|
||||||
{
|
{
|
||||||
TRiga_documento row = d[r];
|
const char* fname = row->fieldname(i);
|
||||||
|
const TFieldref f(fname, LF_RIGHEDOC);
|
||||||
par.format("%d,%d", LF_RIGHEDOC, r);
|
f.write(c, par, row->get(fname));
|
||||||
for (int i = 0; i < row_fields; i++)
|
}
|
||||||
{
|
for (TVariable_field * v = row->first_variable_field(); v ; v = row->succ_variable_field())
|
||||||
const TString16 fname(row.fieldname(i));
|
c.set(v->name(), v->get(), par);
|
||||||
TFieldref f(fname, LF_RIGHEDOC);
|
}
|
||||||
f.write(c, par, row.get(fname));
|
|
||||||
}
|
|
||||||
for (TVariable_field * v = row.first_variable_field(); v ; v = row.succ_variable_field())
|
|
||||||
c.set(v->name(), v->get(), par);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
TString command_line(applicazione_esterna()); command_line << " /i" << name;
|
|
||||||
|
TString command_line; command_line << applicazione_esterna() << " /i" << name;
|
||||||
TExternal_app app(command_line);
|
TExternal_app app(command_line);
|
||||||
if (app.run() == 0)
|
if (app.run() == 0)
|
||||||
{
|
{
|
||||||
@ -554,10 +555,13 @@ bool TElaborazione_esterna::elabora(TLista_documenti& doc_in, TLista_documenti&
|
|||||||
const TString & res = c.get("Result");
|
const TString & res = c.get("Result");
|
||||||
if (res == "SUCCESS")
|
if (res == "SUCCESS")
|
||||||
{
|
{
|
||||||
|
TDocumento& d = doc_in[0];
|
||||||
|
const int doc_fields = d.items();
|
||||||
|
|
||||||
par.format("%d", LF_DOC);
|
par.format("%d", LF_DOC);
|
||||||
for (int i = 0; i < doc_fields; i++)
|
for (int i = 0; i < doc_fields; i++)
|
||||||
{
|
{
|
||||||
const TString16 fname(d.fieldname(i));
|
const char* fname = d.fieldname(i);
|
||||||
TFieldref f(fname, LF_DOC);
|
TFieldref f(fname, LF_DOC);
|
||||||
d.put(fname, f.read(c, par));
|
d.put(fname, f.read(c, par));
|
||||||
}
|
}
|
||||||
@ -576,24 +580,29 @@ bool TElaborazione_esterna::elabora(TLista_documenti& doc_in, TLista_documenti&
|
|||||||
TRiga_documento& row = d.new_row(tiporiga);
|
TRiga_documento& row = d.new_row(tiporiga);
|
||||||
for (int i = row.items()-1; i >= 0; i--)
|
for (int i = row.items()-1; i >= 0; i--)
|
||||||
{
|
{
|
||||||
const TString16 fname(row.fieldname(i));
|
const char* fname = row.fieldname(i);
|
||||||
TFieldref f(fname, LF_RIGHEDOC);
|
const TFieldref f(fname, LF_RIGHEDOC);
|
||||||
const TString& val = f.read(c, par);
|
const TString& val = f.read(c, par);
|
||||||
if (val.not_empty())
|
if (val.not_empty())
|
||||||
row.put(fname, val);
|
row.put(fname, val);
|
||||||
}
|
}
|
||||||
r++;
|
par.format("%d,%d", LF_RIGHEDOC, ++r);
|
||||||
par.format("%d,%d", LF_RIGHEDOC, r);
|
|
||||||
}
|
}
|
||||||
d.stato(stato_finale_doc_iniziale()[0]);
|
|
||||||
|
const char final = stato_finale_doc_iniziale()[0];
|
||||||
|
if (d.stato() != final)
|
||||||
|
d.stato(final);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
} else
|
||||||
else
|
if (res == "OUTDOC")
|
||||||
if (res == "OUTDOC")
|
{
|
||||||
{
|
if (doc_out.items())
|
||||||
|
{
|
||||||
doc_out[0].read();
|
doc_out[0].read();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -4154,8 +4154,11 @@ bool TDocumento_mask::confirm_handler( TMask_field& f, KEY key )
|
|||||||
if (err == NOERR)
|
if (err == NOERR)
|
||||||
{
|
{
|
||||||
err = src.remove();
|
err = src.remove();
|
||||||
if (err != NOERR)
|
if (err == NOERR)
|
||||||
|
app().do_elab(dest, 2);
|
||||||
|
else
|
||||||
warning_box("Errore %d nell'eliminazione del documento provvisorio", err);
|
warning_box("Errore %d nell'eliminazione del documento provvisorio", err);
|
||||||
|
|
||||||
mask.stop_run(K_ESC);
|
mask.stop_run(K_ESC);
|
||||||
TMask & qmask = app().query_mask();
|
TMask & qmask = app().query_mask();
|
||||||
qmask.set(F_CODNUM, codnum);
|
qmask.set(F_CODNUM, codnum);
|
||||||
|
@ -36,6 +36,10 @@
|
|||||||
#define F_STATOCHI 153
|
#define F_STATOCHI 153
|
||||||
#define F_CODELAB 154
|
#define F_CODELAB 154
|
||||||
#define F_DESCELAB 155
|
#define F_DESCELAB 155
|
||||||
|
#define F_CODELABS 156
|
||||||
|
#define F_DESCELABS 157
|
||||||
|
#define F_CODELABD 158
|
||||||
|
#define F_DESCELABD 159
|
||||||
|
|
||||||
#define F_STATOI_MOD_1 201
|
#define F_STATOI_MOD_1 201
|
||||||
#define F_STATOI_MOD_2 202
|
#define F_STATOI_MOD_2 202
|
||||||
|
@ -1245,9 +1245,14 @@ BEGIN
|
|||||||
FIELD B11
|
FIELD B11
|
||||||
END
|
END
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 78 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 12 "@bElaborazioni automatiche"
|
||||||
|
END
|
||||||
|
|
||||||
STRING F_CODELAB 8
|
STRING F_CODELAB 8
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 12 "Codice "
|
PROMPT 2 13 "Salva "
|
||||||
FLAG "U"
|
FLAG "U"
|
||||||
FIELD S3[5,12]
|
FIELD S3[5,12]
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
@ -1262,7 +1267,7 @@ END
|
|||||||
|
|
||||||
STRING F_DESCELAB 50
|
STRING F_DESCELAB 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 20 12 ""
|
PROMPT 26 13 ""
|
||||||
CHECKTYPE SEARCH
|
CHECKTYPE SEARCH
|
||||||
WARNING "E' necessario specificare un valore"
|
WARNING "E' necessario specificare un valore"
|
||||||
USE %ELD KEY 2
|
USE %ELD KEY 2
|
||||||
@ -1272,6 +1277,53 @@ BEGIN
|
|||||||
COPY OUTPUT F_CODELAB
|
COPY OUTPUT F_CODELAB
|
||||||
END
|
END
|
||||||
|
|
||||||
|
STRING F_CODELABS 8
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 14 "Stampa "
|
||||||
|
FLAG "U"
|
||||||
|
FIELD S3[13,20]
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
COPY USE F_CODELAB
|
||||||
|
INPUT CODTAB F_CODELABS
|
||||||
|
COPY DISPLAY F_CODELAB
|
||||||
|
OUTPUT F_CODELABS CODTAB
|
||||||
|
OUTPUT F_DESCELABS S0
|
||||||
|
HELP "Codice dell'elaborazione differita da eseguire"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_DESCELABS 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 26 14 ""
|
||||||
|
COPY USE F_DESCELAB
|
||||||
|
INPUT S0 F_DESCELABS
|
||||||
|
COPY DISPLAY F_DESCELAB
|
||||||
|
COPY OUTPUT F_CODELABS
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_CODELABD 8
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 15 "Definitivo "
|
||||||
|
FLAG "U"
|
||||||
|
FIELD S3[21,28]
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
COPY USE F_CODELAB
|
||||||
|
INPUT CODTAB F_CODELABD
|
||||||
|
COPY DISPLAY F_CODELAB
|
||||||
|
OUTPUT F_CODELABD CODTAB
|
||||||
|
OUTPUT F_DESCELABD S0
|
||||||
|
HELP "Codice dell'elaborazione differita da eseguire"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_DESCELABD 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 26 15 ""
|
||||||
|
COPY USE F_DESCELAB
|
||||||
|
INPUT S0 F_DESCELABD
|
||||||
|
COPY DISPLAY F_DESCELAB
|
||||||
|
COPY OUTPUT F_CODELABD
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
Loading…
x
Reference in New Issue
Block a user