Corretta tabella elaborazioni differite

git-svn-id: svn://10.65.10.50/trunk@2994 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1996-06-14 15:48:34 +00:00
parent 24acb6e796
commit 08991b9696
7 changed files with 102 additions and 183 deletions

View File

@ -1,8 +1,8 @@
// campi della tabella di gestione delle elaborazioni differite
#define F_CODICE 101
#define F_DESCR 102
#define F_CODNUM 103
#define F_PROGRAMMA 104
#define F_TIPO 103
#define F_CODNUM 104
#define F_TIPODOC_I_1 111
#define F_STATO_I_DOC_I_1 121
#define F_STATO_F_DOC_I 131

View File

@ -6,7 +6,7 @@ ENDPAGE
PAGE "Tabella elaborazioni differite" -1 -1 0 0
GROUPBOX DLG_NULL 78 4
GROUPBOX DLG_NULL 78 5
BEGIN
PROMPT 1 1 "@bElaborazione"
END
@ -43,14 +43,24 @@ BEGIN
KEY 2
END
LIST F_TIPO 50
BEGIN
PROMPT 2 4 "Tipo "
ITEM " |Altro"
ITEM "CO|Consegna Ordini"
ITEM "FB|Fatturazione bolle"
ITEM "SM|Scarico magazzino"
ITEM "TC|Trasferimento a contabilita'"
END
GROUPBOX DLG_NULL 78 5
BEGIN
PROMPT 1 5 "@bDocumento originale"
PROMPT 1 6 "@bDocumento originale"
END
STRING F_TIPODOC_I_1 4
BEGIN
PROMPT 2 6 "Tipo documento "
PROMPT 2 7 "Tipo documento "
FIELD S2[1,4]
CHECKTYPE REQUIRED
WARNING "E' necessario specificare un valore"
@ -63,7 +73,7 @@ END
STRING F_STATO_I_DOC_I_1 1
BEGIN
PROMPT 2 7 "Stato iniziale "
PROMPT 2 8 "Stato iniziale "
FLAGS "U"
FIELD S7[1,1]
CHECKTYPE REQUIRED
@ -72,7 +82,7 @@ END
STRING F_STATO_F_DOC_I 1
BEGIN
PROMPT 2 8 "Stato finale "
PROMPT 2 9 "Stato finale "
FLAGS "U"
FIELD S4
CHECKTYPE REQUIRED
@ -81,7 +91,7 @@ END
STRING F_TIPODOC_I_2 4
BEGIN
PROMPT 30 6 ""
PROMPT 30 7 ""
FIELD S2[5,8]
WARNING "E' necessario specificare un valore"
COPY USE F_TIPODOC_I_1
@ -93,7 +103,7 @@ END
STRING F_STATO_I_DOC_I_2 1
BEGIN
PROMPT 30 7 ""
PROMPT 30 8 ""
FLAGS "U"
FIELD S7[2,2]
WARNING "E' necessario specificare un valore"
@ -102,7 +112,7 @@ END
STRING F_TIPODOC_I_3 4
BEGIN
PROMPT 39 6 ""
PROMPT 39 7 ""
FIELD S2[9,12]
WARNING "E' necessario specificare un valore"
COPY USE F_TIPODOC_I_1
@ -114,7 +124,7 @@ END
STRING F_STATO_I_DOC_I_3 1
BEGIN
PROMPT 39 7 ""
PROMPT 39 8 ""
FLAGS "U"
FIELD S7[3,3]
WARNING "E' necessario specificare un valore"
@ -123,7 +133,7 @@ END
STRING F_TIPODOC_I_4 4
BEGIN
PROMPT 48 6 ""
PROMPT 48 7 ""
FIELD S2[13,15]
WARNING "E' necessario specificare un valore"
COPY USE F_TIPODOC_I_1
@ -135,7 +145,7 @@ END
STRING F_STATO_I_DOC_I_4 1
BEGIN
PROMPT 48 7 ""
PROMPT 48 8 ""
FLAGS "U"
FIELD S7[4,4]
WARNING "E' necessario specificare un valore"
@ -144,7 +154,7 @@ END
STRING F_TIPODOC_I_5 4
BEGIN
PROMPT 57 6 ""
PROMPT 57 7 ""
FIELD S2[16,19]
WARNING "E' necessario specificare un valore"
COPY USE F_TIPODOC_I_1
@ -156,7 +166,7 @@ END
STRING F_STATO_I_DOC_I_5 1
BEGIN
PROMPT 57 7 ""
PROMPT 57 8 ""
FLAGS "U"
FIELD S7[5,5]
WARNING "E' necessario specificare un valore"
@ -165,12 +175,12 @@ END
GROUPBOX DLG_NULL 78 5
BEGIN
PROMPT 1 10 "@bDocumento finale"
PROMPT 1 11 "@bDocumento finale"
END
STRING F_TIPODOC_F 4
BEGIN
PROMPT 2 11 "Tipo documento "
PROMPT 2 12 "Tipo documento "
FIELD S8
CHECKTYPE REQUIRED
WARNING "E' necessario specificare un valore"
@ -182,7 +192,7 @@ END
STRING F_STATO_F_DOC_F 1
BEGIN
PROMPT 2 12 "Stato finale "
PROMPT 2 13 "Stato finale "
FLAGS "U"
FIELD S9
CHECKTYPE REQUIRED
@ -191,7 +201,7 @@ END
STRING F_CODNUM 4
BEGIN
PROMPT 2 13 "Codice numerazione "
PROMPT 2 14 "Codice numerazione "
FIELD S5
USE NUM
INPUT CODTAB F_CODNUM
@ -202,14 +212,6 @@ BEGIN
WARNING "E' necessario specificare un codice di numerazione"
END
STRING F_PROGRAMMA 50
BEGIN
PROMPT 2 15 "Metodo di elaborazione "
FLAGS "G"
FIELD S1
CHECKTYPE REQUIRED
END
ENDPAGE
ENDMASK

View File

@ -1,7 +1,8 @@
#include <checks.h>
#include <stdlib.h>
#include <xvt.h>
#include <checks.h>
#include "ve6.h" // dichiarazioni delle procedure
#define usage "Errore - Utilizzo: %s -1 -2 -3"

View File

@ -1,58 +1,7 @@
// ve6100.cpp: modulo per la gestione della tabella elaborazioni differite.
// ve6100.cpp: ex-modulo per la gestione della tabella elaborazioni differite.
#include <tabapp.h>
#include "batbeld.h"
class TGestione_ELD : public Tab_application
{
protected: // TRelation_application
virtual bool user_create() ;
virtual bool protected_record(TRectype& rec) ;
virtual void init_insert_mode(TMask& m) ;
virtual void init_modify_mode(TMask& m);
virtual int rewrite(const TMask& m);
virtual void init_query_mode (TMask& m);
public:
TGestione_ELD() {}
virtual ~TGestione_ELD() {}
};
inline bool TGestione_ELD::user_create()
{ return Tab_application::user_create(); }
inline bool TGestione_ELD::protected_record(TRectype& rec)
{ return Tab_application::protected_record(rec); }
inline void TGestione_ELD::init_insert_mode(TMask& m)
{
Tab_application::init_insert_mode(m);
m.disable (F_AVVIA); // disabilita il button quando il record non e' ancora stato registrato
return;
}
inline int TGestione_ELD::rewrite(const TMask& m)
{ return Tab_application::rewrite (m); }
void TGestione_ELD::init_modify_mode(TMask& m)
{
Tab_application::init_modify_mode(m);
m.enable (F_AVVIA); // abilita la pressione del tasto solo quando il record e' stato registrato
TString temp = m.get(F_CODICE);
if (temp == "01")
m.enable(F_PROGRAMMA, FALSE);
}
void TGestione_ELD::init_query_mode (TMask& m)
{
Tab_application::init_query_mode(m);
m.enable (F_AVVIA, FALSE); // disabilita il button anche in modalita' ricerca
return;
}
int ve6100 (int argc, char **argv)
{
TGestione_ELD a;
a.run (argc, argv, "Gestione elaborazioni differite");
return TRUE;
return 1;
}

View File

@ -1,23 +1,13 @@
// ve6200.cpp: modulo per la generazione dei documenti in modo BATCH.
#include <checks.h>
#include <config.h>
#include <applicat.h>
#include <mask.h>
#include <maskfld.h>
#include <urldefid.h>
#include <utility.h>
#include <validate.h>
#include <progind.h>
#include <extcdecl.h>
#include <execp.h>
#include <lffiles.h>
#include <rectypes.h>
#include <isam.h>
#include <tabutil.h>
#include <date.h>
#include <checks.h>
#include <relation.h>
#include <sheet.h>
#include <tabutil.h>
#include "ve6000.h"
#include "ve6retv.h" // valori di ritorno dalle varie funzioni
#include "ve6gen.h" // dichiarazione della classe base
@ -40,41 +30,33 @@
// funzione quasi uguale a quella del TSheet
void TInterattivo_sheet::page_build(long first, byte rows)
void TInterattivo_sheet::get_row(long first, TToken_string& l)
{
TToken_string l(256);
*cursor() = (TRecnotype)first;
for (int r = 0; r < rows; r++, ++(*cursor()))
const int last = fields_array().last();
for (int i = 0; i <= last; i++)
{
l.cut(0);
const int last = fields().last();
for (int i = 0; i <= last; i++)
{
const TRecfield* rf = (TRecfield*)fields().objptr(i);
const char* s = rf ? (const char*)*rf : "";
l.add(s);
}
// cambiamenti dalla routine TSheet::page_build :
// stabilisce per default che la quantità da evadere è quella non ancora evasa
const long qta = l.get_long(TOKEN_QTA);
const long qtaevasa = l.get_long(TOKEN_QTAEVASA);
// char buffer[16];
// _ltoa(qta-qtaevasa,buffer,10);
// TString daevadere(buffer);
real n(qta-qtaevasa);
l.add((const char *)n.string(11,3),TOKEN_QTA_DA_EVADERE);
set_row(l, r);
const TRecfield* rf = (TRecfield*)fields_array().objptr(i);
const char* s = rf ? (const char*)*rf : "";
l.add(s);
}
// stabilisce per default che la quantità da evadere è quella non ancora evasa
const long qta = l.get_long(TOKEN_QTA);
const long qtaevasa = l.get_long(TOKEN_QTAEVASA);
const real qtadaevadere = qta - qtaevasa;
l.add(qtadaevadere.string(11,3), TOKEN_QTA_DA_EVADERE);
}
// quando l'utente fa doppio click o preme selezione, la on_key riceve un K_ENTER
// e qui apro una mascherina in cui chiedo la qta da evadere, CONFERMA o ANNULLA
bool TInterattivo_sheet::on_key (KEY k)
{
/*
// K_ENTER e' E_MOUSE_DBL, mentre K_SPACE e' E_MOUSE_DOWN
if (k==K_ENTER)
{
{
// maschera per l'inserimento del valore
TMask m("Modifica", 1, 33, 7);
m.add_number (CAMPO_DAEVADERE, 0, "Quantità da evadere", 1, 3, 11);
@ -103,6 +85,7 @@ bool TInterattivo_sheet::on_key (KEY k)
}
return FALSE;
}
*/
return TCursor_sheet::on_key(k);
}
@ -223,9 +206,6 @@ int TBatch_crea_doc::run_mask(TRectype& first, TRectype& last)
_msk->show (F_CODICE_AGENTE_A, FALSE);
}
// nasconde il codice elaborazione: ?
_msk->show (F_CODICE_ELAB, FALSE);
if (_msk->run() == K_ESC) // runna la maschera: se premuto esc, esci
{
delete _msk;
@ -235,9 +215,8 @@ int TBatch_crea_doc::run_mask(TRectype& first, TRectype& last)
_ordinamento = _msk->get_int (F_ORDINAMENTO_EMISSIONE); // ordinamento (RadioButton)
_raggruppa = _msk->get_bool (F_RAGGRUPPA); // raggruppa più doc. originali ?
_per_articolo = _msk->get_bool (F_RAGGR_ARTICOLI); // raggruppa linee con lo stesso articolo
TDate d((const char*) _msk->get(F_DATA_ELAB)); // Data documenti finali
_datadoc = d;
_anno = d.year(); // anno è una componente della chiave
_datadoc = _msk->get(F_DATA_ELAB); // Data documenti finali
_anno = _datadoc.year(); // anno è una componente della chiave
TString temps; // temporanea per rilevare i valori dei campi della maschera
TLocalisamfile f(LF_DOC);
@ -1030,8 +1009,9 @@ void TBatch_crea_doc::raggruppa_righe (TRecord_array& doc)
processed.set(i); // la riga trovata e' processata (e' la riga pilota)
int prox; // numero della prossima riga da raggruppare
while (prox_riga (prox, doc, processed, confronto))
{
pilota.put("QTA", pilota.get_real("QTA") + doc.row(prox).get_real("QTA")); // aggiorna il contenuto della riga pilota
{
const real qta = pilota.get_real("QTA") + doc.row(prox).get_real("QTA");
pilota.put("QTA", qta); // aggiorna il contenuto della riga pilota
doc.row(current, FALSE) = pilota;
processed.set(prox); // indica che la riga e' stata processata
tocopy.reset(prox); // indica che la riga non e' da copiare, perche' inglobata nella riga pilota

View File

@ -1,18 +1,13 @@
// ve6300.cpp. Composizione interattiva dei documenti.
#include <sheet.h>
#include <config.h>
#include <application.h>
#include <stdtypes.h>
#include <mask.h>
#include <relation.h>
#include <strings.h>
#include <isam.h>
#include <real.h>
#include <maskfld.h>
#include <urldefid.h>
#include <config.h>
#include <utility.h>
#include <tabutil.h>
#include "ve6retv.h"
#include "ve6300.h"
#include "ve6gen.h"
@ -40,25 +35,27 @@ inline TInterattivo_crea_doc& app() { return (TInterattivo_crea_doc&) main_app()
bool TInterattivo_crea_doc::create()
{
_interattivo = TRUE;
// _stesso_anno_fiscale = FALSE;
int cargc = argc();
const int cargc = argc();
const char **vargv = argv();
if (cargc>=2)
{
if (cargc<5) fatal_box ("Numero di parametri insufficiente: chiave incompleta!");
if (cargc>=5)
{
if (cargc >= 2)
{
if (cargc < 5)
return error_box ("Numero di parametri insufficiente: chiave incompleta!");
if (cargc >= 5)
{
_codnum = vargv[2];
_anno = vargv[3];
_provv = vargv[4];
_ndoc = vargv[5];
}
if (cargc==7) _crea_doc = TRUE;
else _crea_doc = FALSE;
if (cargc>7) message_box ("Sono presenti piu' di 6 argomenti sulla linea di comando: possibile errore");
}
_crea_doc = (cargc == 7);
}
if (cargc > 7)
message_box ("Sono presenti piu' di 6 argomenti sulla linea di comando: possibile errore");
}
dispatch_e_menu(BAR_ITEM(1));
return TRUE;
@ -72,7 +69,8 @@ bool TInterattivo_crea_doc::destroy()
bool TInterattivo_crea_doc::menu(MENU_TAG)
{
// if (errore_fatale (set_vars())) return FALSE;
if (errore_fatale (componi_doc_finale())) return FALSE;
if (errore_fatale (componi_doc_finale()))
return FALSE;
return TRUE;
}
@ -114,29 +112,29 @@ bool TInterattivo_crea_doc::tipo_doc_handler (TMask_field& field, KEY key)
{
if (field.to_check(key))
{
TFixed_string tdd(field.get(),4); // tipo del documento destinazione selezionato
tdd.trim();
TTable t("%TIP");
t.zero();
t.put ("CODTAB", tdd); // cerca tipo del documento destinazione
t.read (_isgteq);
TFixed_string tdd(field.get(),4); // tipo del documento destinazione selezionato
tdd.trim();
TTable t("%TIP");
t.zero();
t.put ("CODTAB", tdd); // cerca tipo del documento destinazione
t.read (_isgteq);
/* if (err = t.read (_isgteq)) // si posiziona sul record relativo al documento del tipo specificato
{
error_box ("TElaborazioni::run_mask() : errore di lettura %d da tab(TIP)", err);
return READ_ERROR;
}
*/
if (t.get ("CODTAB") != tdd) // verifica che il tipo di documento trovato sia quello richiesto
{
error_box ("TElaborazioni::run_mask() : non esiste il tipo documento %s in tab(TIP)", (const char *)tdd);
return DOC_TYPE_NOT_FOUND;
}
TFilename profilo(t.get ("S4")); // nome del profilo documento (nome del .ini associato al tipo documento originale)
profilo.ext("ini");
TConfig profilo_doc(profilo); // file di configurazione (ini) del documento
TString tipocf = (profilo_doc.get("TIPOCF", "MAIN"));
tipocf.cut(1);
field.mask().set(F_TIPOCF, tipocf);
if (t.get ("CODTAB") != tdd) // verifica che il tipo di documento trovato sia quello richiesto
{
error_box ("TElaborazioni::run_mask() : non esiste il tipo documento %s in tab(TIP)", (const char *)tdd);
return DOC_TYPE_NOT_FOUND;
}
TFilename profilo(t.get ("S4")); // nome del profilo documento (nome del .ini associato al tipo documento originale)
profilo.ext("ini");
TConfig profilo_doc(profilo); // file di configurazione (ini) del documento
TString tipocf = (profilo_doc.get("TIPOCF", "MAIN"));
tipocf.cut(1);
field.mask().set(F_TIPOCF, tipocf);
}
}
@ -293,7 +291,7 @@ int TInterattivo_crea_doc::componi_doc_finale()
if (primo_pilota)
{
primo_pilota = FALSE;
f = tempr;
f.curr() = tempr;
f.put ("CODNUM", _codnum);
f.put ("ANNO", _anno);
f.put ("PROVV", _provv);

View File

@ -3,27 +3,14 @@
#ifndef _TELABORAZIONI_DECL
#define _TELABORAZIONI_DECL
#include <sheet.h>
#include <application.h>
#include <stdtypes.h>
#include <mask.h>
#include <applicat.h>
#include <relation.h>
#include <strings.h>
#include <isam.h>
#include <real.h>
#include <maskfld.h>
#include <urldefid.h>
#include <config.h>
#include <utility.h>
#include <sheet.h>
#include "ve6retv.h"
#include "ve6300.h"
#include "ve6gen.h"
#include <applicat.h>
//#include <strings.h>
#include "ve6.h"
#include <array.h>
#define _TDD_IN_FILTER
#define STATO_PPT '*'
@ -67,12 +54,14 @@ class TInterattivo_sheet : public TCursor_sheet
{
protected:
virtual bool on_key(KEY);
// modificata per fare apparire anche le qta' da evadere
virtual void get_row(long n, TToken_string& l);
public:
virtual void page_build(long first, byte rows); // modificata per fare apparire anche le qta' da evadere
TInterattivo_sheet(TCursor* cursor, const char* fields, const char* title, const char* head, byte buttons = 0)
: TCursor_sheet(cursor, fields, title, head, buttons)
{};
virtual ~TInterattivo_sheet() {};
: TCursor_sheet(cursor, fields, title, head, buttons) { }
virtual ~TInterattivo_sheet() { }
};
class TBatch_crea_doc : public TElaborazioni