Patch level :10.0
Files correlati : Ricompilazione Demo : [ ] Commento : riporto hardy da 11 git-svn-id: svn://10.65.10.50/branches/R_10_00@20919 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
dbc3934086
commit
2b49469581
@ -22,7 +22,7 @@
|
|||||||
class TDocumenti_premio_msk : public TAutomask
|
class TDocumenti_premio_msk : public TAutomask
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
bool find_prezzo_articolo(const TString& codart, real& prezzo, TString& um) const;
|
char find_prezzo_articolo(const TString& codart, real& prezzo, TString& um) const;
|
||||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||||
virtual bool on_key(KEY key);
|
virtual bool on_key(KEY key);
|
||||||
|
|
||||||
@ -46,9 +46,9 @@ bool TDocumenti_premio_msk::on_key(KEY key)
|
|||||||
return TAutomask::on_key(key);
|
return TAutomask::on_key(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TDocumenti_premio_msk::find_prezzo_articolo(const TString& codart, real& prezzo, TString& um) const
|
char TDocumenti_premio_msk::find_prezzo_articolo(const TString& codart, real& prezzo, TString& um) const
|
||||||
{
|
{
|
||||||
//1) contratto
|
//1) contratto (listino cliente)
|
||||||
const long codcf = get_long(F_CODCF);
|
const long codcf = get_long(F_CODCF);
|
||||||
const TString& codcontr = get(F_CODCONTR);
|
const TString& codcontr = get(F_CODCONTR);
|
||||||
|
|
||||||
@ -59,7 +59,9 @@ bool TDocumenti_premio_msk::find_prezzo_articolo(const TString& codart, real& pr
|
|||||||
um = rec_umart.get(UMART_UM);
|
um = rec_umart.get(UMART_UM);
|
||||||
const real umart_prezzo = rec_umart.get_real(UMART_PREZZO);
|
const real umart_prezzo = rec_umart.get_real(UMART_PREZZO);
|
||||||
|
|
||||||
|
char origine_prezzo = 'A'; //'A'nagrafica
|
||||||
prezzo = umart_prezzo; //mal che vada sarà il prezzo di umart
|
prezzo = umart_prezzo; //mal che vada sarà il prezzo di umart
|
||||||
|
|
||||||
TToken_string key;
|
TToken_string key;
|
||||||
|
|
||||||
//CONTRATTI: tipo=C|catven=|tipocf=C|codcf=codcf|cod=codcontr|tiporiga=A|codriga=codart|um=um
|
//CONTRATTI: tipo=C|catven=|tipocf=C|codcf=codcf|cod=codcontr|tiporiga=A|codriga=codart|um=um
|
||||||
@ -82,7 +84,10 @@ bool TDocumenti_premio_msk::find_prezzo_articolo(const TString& codart, real& pr
|
|||||||
|
|
||||||
//2) non c'è un prezzo sul contratto, prova con il listino standard
|
//2) non c'è un prezzo sul contratto, prova con il listino standard
|
||||||
if (!contratto_prezzo.is_zero())
|
if (!contratto_prezzo.is_zero())
|
||||||
|
{
|
||||||
prezzo = contratto_prezzo;
|
prezzo = contratto_prezzo;
|
||||||
|
origine_prezzo = 'C';
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
key.cut(0);
|
key.cut(0);
|
||||||
@ -110,10 +115,13 @@ bool TDocumenti_premio_msk::find_prezzo_articolo(const TString& codart, real& pr
|
|||||||
const TRectype& rec_listino = cache().get(LF_RCONDV, key);
|
const TRectype& rec_listino = cache().get(LF_RCONDV, key);
|
||||||
const real listino_prezzo = rec_listino.get(RCONDV_PREZZO);
|
const real listino_prezzo = rec_listino.get(RCONDV_PREZZO);
|
||||||
if (!listino_prezzo.is_zero())
|
if (!listino_prezzo.is_zero())
|
||||||
|
{
|
||||||
prezzo = listino_prezzo;
|
prezzo = listino_prezzo;
|
||||||
|
origine_prezzo = 'L';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return !prezzo.is_zero();
|
return origine_prezzo;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TDocumenti_premio_msk::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
bool TDocumenti_premio_msk::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||||
@ -155,11 +163,23 @@ bool TDocumenti_premio_msk::on_field_event(TOperable_field& o, TField_event e, l
|
|||||||
real prezzo;
|
real prezzo;
|
||||||
TString4 um;
|
TString4 um;
|
||||||
//se il prezzo l'ha trovato lo mette nel relativo campo
|
//se il prezzo l'ha trovato lo mette nel relativo campo
|
||||||
if (find_prezzo_articolo(o.get(), prezzo, um))
|
char origine = find_prezzo_articolo(o.get(), prezzo, um);
|
||||||
|
if (!prezzo.is_zero())
|
||||||
{
|
{
|
||||||
TMask& row_mask = o.mask();
|
TMask& row_mask = o.mask();
|
||||||
row_mask.set(S_PREZZO, prezzo);
|
row_mask.set(S_PREZZO, prezzo);
|
||||||
row_mask.set(S_UMQTA, um);
|
row_mask.set(S_UMQTA, um);
|
||||||
|
|
||||||
|
//per i contratti di anticipo/rifatturazione DEVE esistere il prezoo dell'articolo sul listino cliente (contratto campo)..
|
||||||
|
//..perchè non potrà andare a modificare altro che tale prezzo nel programma di aggiornamento contratti premio hardy..
|
||||||
|
//..scaduti: (ha0400)
|
||||||
|
const char tipo_contr = get(F_TIPOCONTR)[0];
|
||||||
|
if (origine != 'C' && (tipo_contr == 'A' || tipo_contr == 'R'))
|
||||||
|
{
|
||||||
|
TString msg;
|
||||||
|
msg.format("Non esiste il prezzo per l'articolo %s nel listino cliente selezionato!", (const char*)o.get());
|
||||||
|
return error_box(msg);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -27,8 +27,11 @@
|
|||||||
#define F_DATAFCOMP 226
|
#define F_DATAFCOMP 226
|
||||||
#define F_NUMREG 227
|
#define F_NUMREG 227
|
||||||
#define F_COLLEGA 228
|
#define F_COLLEGA 228
|
||||||
#define F_ANTICIPATO 229
|
#define F_DOCRIF 229
|
||||||
#define F_RESO_STORICO 230
|
#define F_DATA_DOCRIF 230
|
||||||
|
|
||||||
|
#define F_ANTICIPATO 231
|
||||||
|
#define F_RESO_STORICO 232
|
||||||
|
|
||||||
#define F_RIGHE 500 //questo va messo 500 sennò ve0 si incazza e non funziona più
|
#define F_RIGHE 500 //questo va messo 500 sennò ve0 si incazza e non funziona più
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ ENDPAGE
|
|||||||
|
|
||||||
PAGE "Gestione contratti premio" -1 -1 78 23
|
PAGE "Gestione contratti premio" -1 -1 78 23
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 78 13
|
GROUPBOX DLG_NULL 78 14
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 0 ""
|
PROMPT 1 0 ""
|
||||||
END
|
END
|
||||||
@ -16,9 +16,12 @@ END
|
|||||||
RADIOBUTTON F_TIPOCONTR 1 76
|
RADIOBUTTON F_TIPOCONTR 1 76
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 0 "@bTipo contratto"
|
PROMPT 2 0 "@bTipo contratto"
|
||||||
ITEM "A|Anticipo" MESSAGE CLEAR,F_DATAFCOMP|ENABLE,1@
|
ITEM "A|Anticipo"
|
||||||
ITEM "P|Posticipo" MESSAGE ENABLE,F_DATAFCOMP|CLEAR,1@
|
MESSAGE CLEAR,F_DATAFCOMP|ENABLE,1@|CLEAR,F_CODLIS|REQUIRED,F_CODCONTR
|
||||||
ITEM "R|Rifatturazione" MESSAGE CLEAR,F_DATAFCOMP|ENABLE,1@
|
ITEM "P|Posticipo"
|
||||||
|
MESSAGE ENABLE,F_DATAFCOMP|CLEAR,1@|ENABLE,F_CODLIS|NORMAL,F_CODCONTR
|
||||||
|
ITEM "R|Rifatturazione"
|
||||||
|
MESSAGE CLEAR,F_DATAFCOMP|ENABLE,1@|CLEAR,F_CODLIS|REQUIRED,F_CODCONTR
|
||||||
FLAGS "GZ"
|
FLAGS "GZ"
|
||||||
KEY 1
|
KEY 1
|
||||||
END
|
END
|
||||||
@ -293,27 +296,44 @@ BEGIN
|
|||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
TEXT DLG_NULL
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 10 "@bRiferimenti contratto"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_DOCRIF 12
|
||||||
|
BEGIN
|
||||||
|
PROMPT 31 10 "Codice "
|
||||||
|
FIELD DOC1
|
||||||
|
END
|
||||||
|
|
||||||
|
DATA F_DATA_DOCRIF
|
||||||
|
BEGIN
|
||||||
|
PROMPT 55 10 "Data "
|
||||||
|
FIELD DATADOCRIF
|
||||||
|
END
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 76 3
|
GROUPBOX DLG_NULL 76 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 10 "@bSomme anticipate/restituite"
|
PROMPT 2 11 "@bSomme anticipate/restituite"
|
||||||
END
|
END
|
||||||
|
|
||||||
CURRENCY F_ANTICIPATO
|
CURRENCY F_ANTICIPATO
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 3 11 "Anticipato "
|
PROMPT 3 12 "Anticipato "
|
||||||
FLAGS "U"
|
FLAGS "U"
|
||||||
GROUP 1
|
GROUP 1
|
||||||
END
|
END
|
||||||
|
|
||||||
CURRENCY F_RESO_STORICO
|
CURRENCY F_RESO_STORICO
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 38 11 "Restituito "
|
PROMPT 38 12 "Restituito "
|
||||||
GROUP 1
|
GROUP 1
|
||||||
END
|
END
|
||||||
|
|
||||||
SPREADSHEET F_RIGHE
|
SPREADSHEET F_RIGHE
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 13 ""
|
PROMPT 2 14 ""
|
||||||
ITEM "Codice Articolo@20"
|
ITEM "Codice Articolo@20"
|
||||||
ITEM "Descrizione@40"
|
ITEM "Descrizione@40"
|
||||||
ITEM "UM@2"
|
ITEM "UM@2"
|
||||||
|
136
ha/ha0400.cpp
136
ha/ha0400.cpp
@ -5,11 +5,14 @@
|
|||||||
#include <recarray.h>
|
#include <recarray.h>
|
||||||
#include <recset.h>
|
#include <recset.h>
|
||||||
#include <relapp.h>
|
#include <relapp.h>
|
||||||
|
#include <reputils.h>
|
||||||
|
|
||||||
#include <clifo.h>
|
#include <clifo.h>
|
||||||
#include <doc.h>
|
#include <doc.h>
|
||||||
#include <rdoc.h>
|
#include <rdoc.h>
|
||||||
|
|
||||||
|
#include "../ve/rcondv.h"
|
||||||
|
|
||||||
#include "halib.h"
|
#include "halib.h"
|
||||||
#include "ha0.h"
|
#include "ha0.h"
|
||||||
#include "ha0400a.h"
|
#include "ha0400a.h"
|
||||||
@ -19,6 +22,7 @@
|
|||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
class THardy_tied_mask : public TAutomask
|
class THardy_tied_mask : public TAutomask
|
||||||
{
|
{
|
||||||
|
int _pos_check, _pos_codcf, _pos_ragsoc, _pos_anno, _pos_codnum, _pos_ndoc, _pos_tipodoc, _pos_importo, _pos_condpag, _pos_codage;
|
||||||
protected:
|
protected:
|
||||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||||
|
|
||||||
@ -28,6 +32,8 @@ protected:
|
|||||||
long fill_recordset(const long codcf, TISAM_recordset& recset);
|
long fill_recordset(const long codcf, TISAM_recordset& recset);
|
||||||
void fill_sheet();
|
void fill_sheet();
|
||||||
|
|
||||||
|
int elabora_contratto(TToken_string* riga_sheet, TLog_report& log);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
THardy_tied_mask();
|
THardy_tied_mask();
|
||||||
~THardy_tied_mask();
|
~THardy_tied_mask();
|
||||||
@ -117,6 +123,8 @@ void THardy_tied_mask::fill_sheet()
|
|||||||
row.add(ragsoc);
|
row.add(ragsoc);
|
||||||
const int anno = recset.get(RDOC_ANNO).as_int();
|
const int anno = recset.get(RDOC_ANNO).as_int();
|
||||||
row.add(anno);
|
row.add(anno);
|
||||||
|
const TString& codnum = recset.get(RDOC_CODNUM).as_string();
|
||||||
|
row.add(codnum);
|
||||||
const long ndoc = recset.get(RDOC_NDOC).as_int();
|
const long ndoc = recset.get(RDOC_NDOC).as_int();
|
||||||
row.add(ndoc);
|
row.add(ndoc);
|
||||||
const TString& tipo = recset.get("DOC.TIPODOC").as_string();
|
const TString& tipo = recset.get("DOC.TIPODOC").as_string();
|
||||||
@ -161,6 +169,105 @@ void THardy_tied_mask::check_all(const bool checked)
|
|||||||
sf_righe.force_update();
|
sf_righe.force_update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//metodo base per l'elaborazione dei contratti pareggiati
|
||||||
|
int THardy_tied_mask::elabora_contratto(TToken_string* riga_sheet, TLog_report& log)
|
||||||
|
{
|
||||||
|
//si crea il contratto_premi di origine, per caricare i dati che poi dovrà modificare
|
||||||
|
const long codcf = riga_sheet->get_long(_pos_codcf);
|
||||||
|
const int anno = riga_sheet->get_int(_pos_anno);
|
||||||
|
const TString& codnum = riga_sheet->get(_pos_codnum);
|
||||||
|
const long ndoc = riga_sheet->get_long(_pos_ndoc);
|
||||||
|
const TString4 tipodoc = riga_sheet->get(_pos_tipodoc);
|
||||||
|
|
||||||
|
//crea il contratto premi...
|
||||||
|
TContratto_premi contratto_premi('D', anno, codnum, ndoc);
|
||||||
|
//..e le sue righe
|
||||||
|
TRecord_array& righe_contr_premi = contratto_premi.body();
|
||||||
|
|
||||||
|
//cerca il listino cliente corrispondente..
|
||||||
|
const TString4 listino_cliente = contratto_premi.get(DOC_CODCONT);
|
||||||
|
TLocalisamfile rcondv(LF_RCONDV);
|
||||||
|
|
||||||
|
int err = NOERR;
|
||||||
|
//e adesso scatta la ricerca dell'articolo del contratto premi dentro le righe del listino cliente...
|
||||||
|
for (int i = righe_contr_premi.last_row(); i > 0 && err == NOERR; i = righe_contr_premi.pred_row(i))
|
||||||
|
{
|
||||||
|
TRectype& riga = righe_contr_premi[i];
|
||||||
|
//solo le righe merce del contratto premi devono essere scasinate!
|
||||||
|
if (riga.get(RDOC_TIPORIGA) == HARDY_TIPORIGA_MERCE)
|
||||||
|
{
|
||||||
|
const TString80 codart = riga.get(RDOC_CODART);
|
||||||
|
const TString4 um = riga.get(RDOC_UMQTA);
|
||||||
|
//adesso gli tocca cercare lo stesso articolo (e UM) dentro le righe listino cliente per raccatare il prezzo
|
||||||
|
rcondv.put(RCONDV_TIPO, 'C');
|
||||||
|
rcondv.put(RCONDV_CATVEN, "");
|
||||||
|
rcondv.put(RCONDV_TIPOCF, 'C');
|
||||||
|
rcondv.put(RCONDV_CODCF, codcf);
|
||||||
|
rcondv.put(RCONDV_COD, listino_cliente);
|
||||||
|
rcondv.put(RCONDV_TIPORIGA, 'A');
|
||||||
|
rcondv.put(RCONDV_CODRIGA, codart);
|
||||||
|
rcondv.put(RCONDV_UM, um);
|
||||||
|
|
||||||
|
err = rcondv.read(_isequal, _lock);
|
||||||
|
if (err == NOERR)
|
||||||
|
{
|
||||||
|
//premio e ns_carico li prende dalla riga del contratto premi
|
||||||
|
const real premio = riga.get_real(RC_1_PREMIO);
|
||||||
|
const real ns_carico = riga.get_real(RC_1_NSCARICO);
|
||||||
|
//il prezzo lo prende dal listino cliente
|
||||||
|
real prezzo = rcondv.get_real(RCONDV_PREZZO);
|
||||||
|
//aggiorna il prezzo con una formula ladresca...
|
||||||
|
prezzo = prezzo - premio + ns_carico;
|
||||||
|
rcondv.put(RCONDV_PREZZO, prezzo);
|
||||||
|
|
||||||
|
err = rcondv.rewrite();
|
||||||
|
if (err != NOERR)
|
||||||
|
{
|
||||||
|
TString msg;
|
||||||
|
msg.format("Imossibile aggiornare il listino %s del cliente %6ld ! Errore %d", (const char*)listino_cliente, codcf, err);
|
||||||
|
log.log(1, msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TString msg;
|
||||||
|
msg.format("Impossibile trovare l'articolo %s con u.m. %s nel listino %s del cliente %6ld !! Errore %d",
|
||||||
|
(const char*)codart, (const char*)um, (const char*)listino_cliente, codcf, err);
|
||||||
|
log.log(2, msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
} //if (riga.get(RDOC_TIPORIGA)...
|
||||||
|
} //for (int i = righe_contr_premi.last_row()...
|
||||||
|
|
||||||
|
//alla fine della fiera il contratto premi va messo in stato scaduto, ovvero 9 direi...
|
||||||
|
if (err == NOERR)
|
||||||
|
{
|
||||||
|
const TTipo_documento& tipodoc = contratto_premi.tipo();
|
||||||
|
const TString& stato_scaduto = tipodoc.stato_chiuso();
|
||||||
|
|
||||||
|
contratto_premi.put(DOC_STATO, stato_scaduto);
|
||||||
|
err = contratto_premi.rewrite();
|
||||||
|
|
||||||
|
if (err != NOERR)
|
||||||
|
{
|
||||||
|
TString msg;
|
||||||
|
msg.format("Impossibile aggiornare il contratto premi %4d%s%7ld del cliente %6ld !! Errore %d",
|
||||||
|
anno, (const char*)codnum, ndoc, err);
|
||||||
|
log.log(2, msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//aggiornamento positivo del log!
|
||||||
|
if (err == NOERR)
|
||||||
|
{
|
||||||
|
TString msg;
|
||||||
|
msg.format("Chiuso contratto premi %7ld del cliente %6ld - Aggiornato listino %s", ndoc, codcf, (const char*)listino_cliente);
|
||||||
|
}
|
||||||
|
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
bool THardy_tied_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
bool THardy_tied_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||||
{
|
{
|
||||||
switch (o.dlg())
|
switch (o.dlg())
|
||||||
@ -182,6 +289,23 @@ bool THardy_tied_mask::on_field_event(TOperable_field& o, TField_event e, long j
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case DLG_OK:
|
||||||
|
if (e == fe_button)
|
||||||
|
{
|
||||||
|
//già che ci siamo mettiamoci pure un log di elaborazione
|
||||||
|
TLog_report log("Elaborazione contratti selezionati");
|
||||||
|
log.kill_duplicates();
|
||||||
|
log.log(0, "");
|
||||||
|
TSheet_field& righe = sfield(F_RIGHE);
|
||||||
|
FOR_EACH_SHEET_ROW(righe, r, riga)
|
||||||
|
{
|
||||||
|
//vengono elaborate solo le righe checkate
|
||||||
|
const char checked = riga->get_char(0);
|
||||||
|
if (checked == 'X')
|
||||||
|
int err = elabora_contratto(riga, log);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
break;
|
break;
|
||||||
@ -191,6 +315,18 @@ bool THardy_tied_mask::on_field_event(TOperable_field& o, TField_event e, long j
|
|||||||
|
|
||||||
THardy_tied_mask::THardy_tied_mask() : TAutomask ("ha0400a")
|
THardy_tied_mask::THardy_tied_mask() : TAutomask ("ha0400a")
|
||||||
{
|
{
|
||||||
|
//assegna una volta per tutte le pos delle colonne di sheet
|
||||||
|
TSheet_field& sf_righe = sfield(F_RIGHE);
|
||||||
|
_pos_check = sf_righe.cid2index(S_CHECK);
|
||||||
|
_pos_codcf = sf_righe.cid2index(S_CODCF);
|
||||||
|
_pos_ragsoc = sf_righe.cid2index(S_RAGSOC);
|
||||||
|
_pos_anno = sf_righe.cid2index(S_ANNO);
|
||||||
|
_pos_codnum = sf_righe.cid2index(S_CODNUM);
|
||||||
|
_pos_ndoc = sf_righe.cid2index(S_NDOC);
|
||||||
|
_pos_tipodoc = sf_righe.cid2index(S_TIPO);
|
||||||
|
_pos_importo = sf_righe.cid2index(S_IMPORTO);
|
||||||
|
_pos_condpag = sf_righe.cid2index(S_CONDPAG);
|
||||||
|
_pos_codage = sf_righe.cid2index(S_CODAG);
|
||||||
}
|
}
|
||||||
|
|
||||||
THardy_tied_mask::~THardy_tied_mask()
|
THardy_tied_mask::~THardy_tied_mask()
|
||||||
|
11
ha/ha0400a.h
11
ha/ha0400a.h
@ -13,8 +13,9 @@
|
|||||||
#define S_CODCF 102
|
#define S_CODCF 102
|
||||||
#define S_RAGSOC 103
|
#define S_RAGSOC 103
|
||||||
#define S_ANNO 104
|
#define S_ANNO 104
|
||||||
#define S_NDOC 105
|
#define S_CODNUM 105
|
||||||
#define S_TIPO 106
|
#define S_NDOC 106
|
||||||
#define S_IMPORTO 107
|
#define S_TIPO 107
|
||||||
#define S_CONDPAG 108
|
#define S_IMPORTO 108
|
||||||
#define S_CODAG 109
|
#define S_CONDPAG 109
|
||||||
|
#define S_CODAG 110
|
||||||
|
@ -74,6 +74,7 @@ BEGIN
|
|||||||
ITEM "Cliente"
|
ITEM "Cliente"
|
||||||
ITEM "Ragione sociale@40"
|
ITEM "Ragione sociale@40"
|
||||||
ITEM "Anno"
|
ITEM "Anno"
|
||||||
|
ITEM "Num."
|
||||||
ITEM "N.Contr."
|
ITEM "N.Contr."
|
||||||
ITEM "Tipo"
|
ITEM "Tipo"
|
||||||
ITEM "Importo@12"
|
ITEM "Importo@12"
|
||||||
@ -128,6 +129,11 @@ BEGIN
|
|||||||
PROMPT 1 3 "Anno "
|
PROMPT 1 3 "Anno "
|
||||||
END
|
END
|
||||||
|
|
||||||
|
STRING S_CODNUM 4
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 4 "Num. "
|
||||||
|
END
|
||||||
|
|
||||||
NUMBER S_NDOC 7
|
NUMBER S_NDOC 7
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 4 "N. doc. "
|
PROMPT 1 4 "N. doc. "
|
||||||
|
Loading…
x
Reference in New Issue
Block a user