Patch level : 10.0 109
Files correlati : Ricompilazione Demo : [ ] Commento : Riportata la versione 3.2 1208 git-svn-id: svn://10.65.10.50/trunk@17106 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
83b1c93d8d
commit
45b73d97fe
@ -22,3 +22,4 @@
|
|||||||
#define TRN_LNDOC "LNDOC"
|
#define TRN_LNDOC "LNDOC"
|
||||||
#define TRN_NUMSCONTR "NUMSCONTR"
|
#define TRN_NUMSCONTR "NUMSCONTR"
|
||||||
#define TRN_CHIUSO "CHIUSO"
|
#define TRN_CHIUSO "CHIUSO"
|
||||||
|
|
||||||
|
@ -27,28 +27,28 @@ ENDPAGE
|
|||||||
|
|
||||||
PAGE "Parametri ditta" 0 0 0 0
|
PAGE "Parametri ditta" 0 0 0 0
|
||||||
|
|
||||||
STRING FD_FILIALE 2
|
STRING FD_NEGOZIO 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 2 "Filiale "
|
PROMPT 2 2 "Negozio "
|
||||||
FIELD FILIALE
|
FIELD NEGOZIO
|
||||||
USE FLD
|
USE FLD
|
||||||
INPUT CODTAB FD_FILIALE
|
INPUT CODTAB FD_NEGOZIO
|
||||||
DISPLAY "Codice" CODTAB
|
DISPLAY "Codice" CODTAB
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
OUTPUT FD_FILIALE CODTAB
|
OUTPUT FD_NEGOZIO CODTAB
|
||||||
OUTPUT FD_DESFIL S0
|
OUTPUT FD_DESNEG S0
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
FLAG "UZ"
|
FLAG "UZ"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING FD_DESFIL 50 40
|
STRING FD_DESNEG 50 40
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 30 2 ""
|
PROMPT 30 2 ""
|
||||||
USE FLD KEY 2
|
USE FLD KEY 2
|
||||||
INPUT S0 FD_DESFIL
|
INPUT S0 FD_DESNEG
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
DISPLAY "Codice" CODTAB
|
DISPLAY "Codice" CODTAB
|
||||||
COPY OUTPUT FD_FILIALE
|
COPY OUTPUT FD_NEGOZIO
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING FD_CODNUM 4
|
STRING FD_CODNUM 4
|
||||||
@ -183,6 +183,12 @@ BEGIN
|
|||||||
FIELD CODPVAR
|
FIELD CODPVAR
|
||||||
END
|
END
|
||||||
|
|
||||||
|
STRING FD_QTACHAR 1
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 18 "Carattere sep.qta "
|
||||||
|
FIELD QTACHAR
|
||||||
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
PAGE "Pagamenti" 1 1 60 14
|
PAGE "Pagamenti" 1 1 60 14
|
||||||
|
266
vd/vd0700.cpp
266
vd/vd0700.cpp
@ -12,6 +12,7 @@
|
|||||||
|
|
||||||
#include "../mg/anamag.h"
|
#include "../mg/anamag.h"
|
||||||
#include <clifo.h>
|
#include <clifo.h>
|
||||||
|
#include "../ve/vepriv.h"
|
||||||
#include "../ve/ve0100.h"
|
#include "../ve/ve0100.h"
|
||||||
#include "../ve/veini.h"
|
#include "../ve/veini.h"
|
||||||
#include "../ve/veuml.h"
|
#include "../ve/veuml.h"
|
||||||
@ -109,7 +110,7 @@ class TScontrino_application : public TMotore_application
|
|||||||
TTurno_vendita *_turno;
|
TTurno_vendita *_turno;
|
||||||
TOperatore * _cassiere;
|
TOperatore * _cassiere;
|
||||||
TOperatore * _responsabile;
|
TOperatore * _responsabile;
|
||||||
TString8 _filiale;
|
TString8 _negozio;
|
||||||
TString8 _numdoc;
|
TString8 _numdoc;
|
||||||
TString8 _tipodoc;
|
TString8 _tipodoc;
|
||||||
TString8 _codlist;
|
TString8 _codlist;
|
||||||
@ -126,6 +127,7 @@ class TScontrino_application : public TMotore_application
|
|||||||
bool _chk_doc;
|
bool _chk_doc;
|
||||||
bool _barcode_peso_var;
|
bool _barcode_peso_var;
|
||||||
bool _peso_var;
|
bool _peso_var;
|
||||||
|
char _qta_char;
|
||||||
int _npag;
|
int _npag;
|
||||||
int _ncassa;
|
int _ncassa;
|
||||||
int _cassetto;
|
int _cassetto;
|
||||||
@ -160,12 +162,14 @@ public:
|
|||||||
virtual void print();
|
virtual void print();
|
||||||
int ncassa() const { return _ncassa;}
|
int ncassa() const { return _ncassa;}
|
||||||
int def_qta() const { return _def_qta;}
|
int def_qta() const { return _def_qta;}
|
||||||
|
char qta_char() const { return _qta_char ;}
|
||||||
const TString & numdoc() const { return _numdoc;}
|
const TString & numdoc() const { return _numdoc;}
|
||||||
const TString & codlist() const { return _codlist;}
|
const TString & codlist() const { return _codlist;}
|
||||||
const TString & numdocf() const { return _numdocf;}
|
const TString & numdocf() const { return _numdocf;}
|
||||||
const TString & tipodocf() const { return _tipodocf;}
|
const TString & tipodocf() const { return _tipodocf;}
|
||||||
const TString & codmag() const { return _codmag;}
|
const TString & codmag() const { return _codmag;}
|
||||||
const TString & codmagc() const { return _codmagc;}
|
const TString & codmagc() const { return _codmagc;}
|
||||||
|
const TString & negozio() const { return _negozio;}
|
||||||
const TString_array & tv_cmds() const {return _tv_cmds;}
|
const TString_array & tv_cmds() const {return _tv_cmds;}
|
||||||
const TString_array & tv_labels() const {return _tv_labels;}
|
const TString_array & tv_labels() const {return _tv_labels;}
|
||||||
const TOperatore & curr_user() const { return _responsabile != NULL ? *_responsabile : *_cassiere;}
|
const TOperatore & curr_user() const { return _responsabile != NULL ? *_responsabile : *_cassiere;}
|
||||||
@ -183,7 +187,13 @@ inline TScontrino_application& sapp() { return (TScontrino_application &) main_a
|
|||||||
|
|
||||||
class TScontrino_mask : public TDocumento_mask
|
class TScontrino_mask : public TDocumento_mask
|
||||||
{
|
{
|
||||||
|
int _row_to_remove;
|
||||||
|
TToken_string _deleted_rows;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
static bool scodart_handler( TMask_field& f, KEY key );
|
||||||
|
static bool sqta_handler( TMask_field& f, KEY key );
|
||||||
|
static bool sprezzo_handler( TMask_field& f, KEY key );
|
||||||
static bool turno_handler( TMask_field& f, KEY key );
|
static bool turno_handler( TMask_field& f, KEY key );
|
||||||
static bool chiudi_handler( TMask_field& f, KEY key );
|
static bool chiudi_handler( TMask_field& f, KEY key );
|
||||||
static bool sospendi_handler( TMask_field& f, KEY key );
|
static bool sospendi_handler( TMask_field& f, KEY key );
|
||||||
@ -193,16 +203,25 @@ protected:
|
|||||||
static bool perms_handler( TMask_field& f, KEY key );
|
static bool perms_handler( TMask_field& f, KEY key );
|
||||||
static bool ss_notify(TSheet_field& ss, int r, KEY key);
|
static bool ss_notify(TSheet_field& ss, int r, KEY key);
|
||||||
static bool check_perms(TDocumento & doc, TSheet_field & s, TDocumento_mask & m, int nrow);
|
static bool check_perms(TDocumento & doc, TSheet_field & s, TDocumento_mask & m, int nrow);
|
||||||
|
static bool search_art_handler( TMask_field& f, KEY key );
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
void set_row_to_remove(int r) { _row_to_remove = r;}
|
||||||
|
virtual void on_idle();
|
||||||
|
void show_giacenza();
|
||||||
|
|
||||||
|
virtual TVariable_mask * riga_mask(int numriga);
|
||||||
virtual bool is_omaggio_enabled() { return sapp().curr_user().can_change_omaggi();}
|
virtual bool is_omaggio_enabled() { return sapp().curr_user().can_change_omaggi();}
|
||||||
|
TToken_string & deleted_rows() { return _deleted_rows;}
|
||||||
|
|
||||||
|
|
||||||
TScontrino_mask(const char* tipodoc);
|
TScontrino_mask(const char* tipodoc);
|
||||||
virtual ~TScontrino_mask() {}
|
virtual ~TScontrino_mask() {}
|
||||||
};
|
};
|
||||||
|
|
||||||
TScontrino_mask::TScontrino_mask(const char* tipodoc)
|
TScontrino_mask::TScontrino_mask(const char* tipodoc)
|
||||||
:TDocumento_mask(tipodoc)
|
:TDocumento_mask(tipodoc), _row_to_remove(0),
|
||||||
|
_deleted_rows("", '£')
|
||||||
{
|
{
|
||||||
set_handler(DLG_TURNO, turno_handler);
|
set_handler(DLG_TURNO, turno_handler);
|
||||||
set_handler(DLG_CHIUDI, chiudi_handler);
|
set_handler(DLG_CHIUDI, chiudi_handler);
|
||||||
@ -210,6 +229,7 @@ TScontrino_mask::TScontrino_mask(const char* tipodoc)
|
|||||||
set_handler(DLG_RICSOSP, search_sospesi_handler);
|
set_handler(DLG_RICSOSP, search_sospesi_handler);
|
||||||
set_handler(DLG_RICCHIUSI, search_chiusi_handler);
|
set_handler(DLG_RICCHIUSI, search_chiusi_handler);
|
||||||
set_handler(DLG_PERMS, perms_handler);
|
set_handler(DLG_PERMS, perms_handler);
|
||||||
|
set_handler(F_CODSEARCH, search_art_handler);
|
||||||
if (id2pos(F_CODLIST) < 0)
|
if (id2pos(F_CODLIST) < 0)
|
||||||
add_string(F_CODLIST, 0, "Listino", 60, 60, 4, "HP");
|
add_string(F_CODLIST, 0, "Listino", 60, 60, 4, "HP");
|
||||||
for (short id = F_FUNC1; id <= F_FUNC8; id++)
|
for (short id = F_FUNC1; id <= F_FUNC8; id++)
|
||||||
@ -231,6 +251,7 @@ TScontrino_mask::TScontrino_mask(const char* tipodoc)
|
|||||||
hide(id);
|
hide(id);
|
||||||
}
|
}
|
||||||
sfield(F_SHEET).set_notify( ss_notify );
|
sfield(F_SHEET).set_notify( ss_notify );
|
||||||
|
sfield(F_SHEET).set_auto_append();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TScontrino_mask::check_perms(TDocumento & doc, TSheet_field & s, TDocumento_mask & m, int nrow)
|
bool TScontrino_mask::check_perms(TDocumento & doc, TSheet_field & s, TDocumento_mask & m, int nrow)
|
||||||
@ -283,9 +304,26 @@ bool TScontrino_mask::check_perms(TDocumento & doc, TSheet_field & s, TDocumento
|
|||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TScontrino_mask::show_giacenza()
|
||||||
|
{
|
||||||
|
TString codart = get(F_CODSEARCH);
|
||||||
|
real giac, disp;
|
||||||
|
|
||||||
|
if (codart.full())
|
||||||
|
{
|
||||||
|
const TString& annoes = get(F_ANNO);
|
||||||
|
TArticolo_giacenza art(codart);
|
||||||
|
|
||||||
|
giac = art.disponibilita(annoes, sapp().codmag(), "", true);
|
||||||
|
disp = art.disponibilita(annoes, sapp().codmag(), "", false);
|
||||||
|
}
|
||||||
|
set(F_CURGIAC, giac.string());
|
||||||
|
set(F_CURDISP, disp.string());
|
||||||
|
}
|
||||||
|
|
||||||
bool TScontrino_mask::ss_notify( TSheet_field& ss, int r, KEY key )
|
bool TScontrino_mask::ss_notify( TSheet_field& ss, int r, KEY key )
|
||||||
{
|
{
|
||||||
TDocumento_mask& m = (TDocumento_mask&)ss.mask();
|
TScontrino_mask& m = (TScontrino_mask&)ss.mask();
|
||||||
CHECK(&m == &app().curr_mask(), "Cast dal cas");
|
CHECK(&m == &app().curr_mask(), "Cast dal cas");
|
||||||
|
|
||||||
TDocumento& doc = m.doc();
|
TDocumento& doc = m.doc();
|
||||||
@ -298,6 +336,12 @@ bool TScontrino_mask::ss_notify( TSheet_field& ss, int r, KEY key )
|
|||||||
|
|
||||||
if (riga.is_omaggio() && !sapp().curr_user().can_change_omaggi())
|
if (riga.is_omaggio() && !sapp().curr_user().can_change_omaggi())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
TString row = ss.row(r);
|
||||||
|
|
||||||
|
row.replace('|', '!'),
|
||||||
|
m.deleted_rows().add(row);
|
||||||
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case K_CTRL + K_DEL:
|
case K_CTRL + K_DEL:
|
||||||
@ -337,11 +381,49 @@ bool TScontrino_mask::ss_notify( TSheet_field& ss, int r, KEY key )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case K_CTRL + K_TAB:
|
||||||
|
if (r > 0)
|
||||||
|
{
|
||||||
|
TRiga_documento& riga_prec = doc[r];
|
||||||
|
TRiga_documento& riga = doc[r + 1];
|
||||||
|
|
||||||
|
if (riga.get(RDOC_CODART).full())
|
||||||
|
{
|
||||||
|
if (riga_prec.get(RDOC_CODART) == riga.get(RDOC_CODART) &&
|
||||||
|
riga_prec.get(RDOC_LIVELLO) == riga.get(RDOC_LIVELLO) &&
|
||||||
|
riga_prec.get(RDOC_UMQTA) == riga.get(RDOC_UMQTA) &&
|
||||||
|
riga_prec.get_real(RDOC_PREZZO) == riga.get_real(RDOC_PREZZO) &&
|
||||||
|
riga_prec.get(RDOC_SCONTO) == riga.get(RDOC_SCONTO))
|
||||||
|
{
|
||||||
|
m.set_row_to_remove(r);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
if (r < ss.items() - 1)
|
||||||
|
{
|
||||||
|
TRiga_documento& riga_succ = doc[r + 2];
|
||||||
|
|
||||||
|
if (riga_succ.get(RDOC_CODART) == riga.get(RDOC_CODART) &&
|
||||||
|
riga_prec.get(RDOC_LIVELLO) == riga.get(RDOC_LIVELLO) &&
|
||||||
|
riga_succ.get(RDOC_UMQTA) == riga.get(RDOC_UMQTA) &&
|
||||||
|
riga_succ.get_real(RDOC_PREZZO) == riga.get_real(RDOC_PREZZO) &&
|
||||||
|
riga_succ.get(RDOC_SCONTO) == riga.get(RDOC_SCONTO))
|
||||||
|
m.set_row_to_remove(r + 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
case K_ENTER:
|
case K_ENTER:
|
||||||
case K_INS:
|
case K_INS:
|
||||||
{
|
{
|
||||||
if (!check_perms(doc, ss, m, r + 1))
|
if (!check_perms(doc, ss, m, r + 1))
|
||||||
return false;
|
return false;
|
||||||
|
if (ss.items() == 0)
|
||||||
|
{
|
||||||
|
const long ora = daytime();
|
||||||
|
|
||||||
|
doc.put(TRN_INIZIO, ora);
|
||||||
|
m.deleted_rows().cut(0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -358,6 +440,165 @@ bool TScontrino_mask::turno_handler( TMask_field& f, KEY key )
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TScontrino_mask::on_idle()
|
||||||
|
{
|
||||||
|
if (_row_to_remove > 0)
|
||||||
|
{
|
||||||
|
TSheet_field & ss = sfield(F_SHEET);
|
||||||
|
int selected = ss.selected();
|
||||||
|
TDocumento& d = doc();
|
||||||
|
TRiga_documento& riga_prec = d[_row_to_remove];
|
||||||
|
TRiga_documento& riga = d[_row_to_remove + 1];
|
||||||
|
|
||||||
|
real qta = riga_prec.get_real(RDOC_QTA);
|
||||||
|
|
||||||
|
qta += riga.get_real(RDOC_QTA);
|
||||||
|
riga_prec.put(RDOC_QTA, qta);
|
||||||
|
riga_prec.autoload(ss);
|
||||||
|
ss.update_mask(_row_to_remove - 1);
|
||||||
|
ss.destroy(_row_to_remove);
|
||||||
|
d.destroy_row(_row_to_remove + 1, true);
|
||||||
|
ss.force_update();
|
||||||
|
if (selected >= _row_to_remove)
|
||||||
|
selected--;
|
||||||
|
if (selected >= ss.items())
|
||||||
|
selected = ss.items() -1 ;
|
||||||
|
ss.select(selected);
|
||||||
|
_row_to_remove = 0;
|
||||||
|
}
|
||||||
|
TDocumento_mask::on_idle();
|
||||||
|
}
|
||||||
|
|
||||||
|
TVariable_mask * TScontrino_mask::riga_mask(int numriga)
|
||||||
|
{
|
||||||
|
const TRiga_documento& riga = doc()[numriga + 1];
|
||||||
|
const TTipo_riga_documento& tiporiga = riga.tipo();
|
||||||
|
TString16 name; tiporiga.mask_name(name);
|
||||||
|
|
||||||
|
TVariable_mask* m = (TVariable_mask *) maskrighe().objptr(name);
|
||||||
|
|
||||||
|
if (m == NULL)
|
||||||
|
{
|
||||||
|
m = TDocumento_mask::riga_mask(numriga);
|
||||||
|
|
||||||
|
if ( m != NULL)
|
||||||
|
{
|
||||||
|
const int pos = m->id2pos(FR_CODART);
|
||||||
|
if (pos >= 0)
|
||||||
|
{
|
||||||
|
const TMask_field & f = m->field(FR_CODART);
|
||||||
|
if (f.is_edit())
|
||||||
|
{
|
||||||
|
TBrowse * browse = ((TEdit_field &) f).browse();
|
||||||
|
const char tipo_r = tiporiga.tipo();
|
||||||
|
|
||||||
|
if (browse )
|
||||||
|
{
|
||||||
|
const TCursor* cur = browse->cursor();
|
||||||
|
|
||||||
|
if (cur)
|
||||||
|
{
|
||||||
|
const int num = cur->file().num();
|
||||||
|
|
||||||
|
if (num == LF_ANAMAG || num == LF_CODCORR)
|
||||||
|
m->set_handler( FR_CODART, scodart_handler );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ( int pos = m->id2pos(FR_QTA) >= 0)
|
||||||
|
m->set_handler(FR_QTA, sqta_handler);
|
||||||
|
if ( int pos = m->id2pos(FR_PREZZO) >= 0)
|
||||||
|
m->set_handler(FR_PREZZO, sprezzo_handler);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return m;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TScontrino_mask::search_art_handler( TMask_field& f, KEY key )
|
||||||
|
{
|
||||||
|
if (f.to_check(key))
|
||||||
|
{
|
||||||
|
TScontrino_mask & mask = (TScontrino_mask &) f.mask();
|
||||||
|
|
||||||
|
mask.show_giacenza();
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TScontrino_mask::scodart_handler(TMask_field& f, KEY key )
|
||||||
|
{
|
||||||
|
if (f.to_check(key))
|
||||||
|
{
|
||||||
|
const TString & val = f.get();
|
||||||
|
const int pos = val.find(sapp().qta_char());
|
||||||
|
|
||||||
|
if (pos >= 0)
|
||||||
|
{
|
||||||
|
TMask& row_mask = f.mask();
|
||||||
|
const TString80 qta = val.left(pos);
|
||||||
|
const TString80 cod = val.mid(pos + 1);
|
||||||
|
|
||||||
|
row_mask.set(FR_CODART, cod, 0x3);
|
||||||
|
row_mask.set(FR_QTA, qta, 0x3);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const bool ok = ::codart_handler(f, key);
|
||||||
|
|
||||||
|
if (ok && f.to_check(key, false))
|
||||||
|
{
|
||||||
|
TMask& row_mask = f.mask();
|
||||||
|
TSheet_field& s = *row_mask.get_sheet();
|
||||||
|
TDocumento_mask & mask = (TDocumento_mask &) s.mask();
|
||||||
|
const int srow = s.selected();
|
||||||
|
const int drow = srow + 1;
|
||||||
|
|
||||||
|
s.update_row(srow);
|
||||||
|
mask.doc()[drow].autosave(s);
|
||||||
|
mask.update_progs();
|
||||||
|
}
|
||||||
|
return ok;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TScontrino_mask::sqta_handler(TMask_field& f, KEY key )
|
||||||
|
{
|
||||||
|
if (f.to_check(key, false))
|
||||||
|
{
|
||||||
|
TMask& row_mask = f.mask();
|
||||||
|
TSheet_field& s = *row_mask.get_sheet();
|
||||||
|
TDocumento_mask & mask = (TDocumento_mask &) s.mask();
|
||||||
|
const int srow = s.selected();
|
||||||
|
const int drow = srow + 1;
|
||||||
|
|
||||||
|
s.update_row(srow);
|
||||||
|
mask.doc()[drow].autosave(s);
|
||||||
|
mask.update_progs();
|
||||||
|
}
|
||||||
|
return ::qta_handler(f, key);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TScontrino_mask::sprezzo_handler(TMask_field& f, KEY key )
|
||||||
|
{
|
||||||
|
if (f.to_check(key, false))
|
||||||
|
{
|
||||||
|
TMask& row_mask = f.mask();
|
||||||
|
TSheet_field& s = *row_mask.get_sheet();
|
||||||
|
TDocumento_mask & mask = (TDocumento_mask &) s.mask();
|
||||||
|
const int srow = s.selected();
|
||||||
|
const int drow = srow + 1;
|
||||||
|
|
||||||
|
s.update_row(srow);
|
||||||
|
mask.doc()[drow].autosave(s);
|
||||||
|
mask.update_progs();
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
bool TScontrino_mask::chiudi_handler( TMask_field& f, KEY key )
|
bool TScontrino_mask::chiudi_handler( TMask_field& f, KEY key )
|
||||||
{
|
{
|
||||||
if (key == K_SPACE)
|
if (key == K_SPACE)
|
||||||
@ -489,7 +730,7 @@ bool TScontrino_mask::search_chiusi_handler(TMask_field& f, KEY key)
|
|||||||
|
|
||||||
rel.lfile().set_curr(new TDocumento);
|
rel.lfile().set_curr(new TDocumento);
|
||||||
|
|
||||||
TCursor cur(&rel, "", 1, &filtrec, &filtrec);
|
TSorted_cursor cur(&rel, "NDOC-", "", 1, &filtrec, &filtrec);
|
||||||
TString80 filt; filt.format("(STATO>=\"%c\")&&(TIPODOC==\"%s\")&&(CODCF==\"\")", m.doc().tipo().stato_chiuso(), (const char *) m.get(F_TIPODOC));
|
TString80 filt; filt.format("(STATO>=\"%c\")&&(TIPODOC==\"%s\")&&(CODCF==\"\")", m.doc().tipo().stato_chiuso(), (const char *) m.get(F_TIPODOC));
|
||||||
|
|
||||||
cur.setfilter(filt);
|
cur.setfilter(filt);
|
||||||
@ -661,8 +902,14 @@ void TChiusura_scontrino_mask::update_doc(TScontrino_mask & m, const TTurno_vend
|
|||||||
doc.put(TRN_PROGR, t.nturno());
|
doc.put(TRN_PROGR, t.nturno());
|
||||||
doc.put(TRN_USERNAME, t.user());
|
doc.put(TRN_USERNAME, t.user());
|
||||||
doc.put("TEMPUSERNAME", t.superuser());
|
doc.put("TEMPUSERNAME", t.superuser());
|
||||||
|
TToken_string del(doc.get("DELETED_ROWS"), '£');
|
||||||
|
|
||||||
|
del.add(m.deleted_rows());
|
||||||
|
doc.put("DELETED_ROWS", del);
|
||||||
if (chiudi)
|
if (chiudi)
|
||||||
{
|
{
|
||||||
|
const long ora = daytime();
|
||||||
|
|
||||||
doc.stato(stato);
|
doc.stato(stato);
|
||||||
m.set(F_STATO, doc.get(DOC_STATO));
|
m.set(F_STATO, doc.get(DOC_STATO));
|
||||||
doc.put(TRN_INC01, get(F_INC01));
|
doc.put(TRN_INC01, get(F_INC01));
|
||||||
@ -674,6 +921,8 @@ void TChiusura_scontrino_mask::update_doc(TScontrino_mask & m, const TTurno_vend
|
|||||||
doc.put(TRN_INC07, get(F_INC07));
|
doc.put(TRN_INC07, get(F_INC07));
|
||||||
doc.put(TRN_INC08, get(F_INC08));
|
doc.put(TRN_INC08, get(F_INC08));
|
||||||
doc.put(TRN_RESTI, get(F_RESTO));
|
doc.put(TRN_RESTI, get(F_RESTO));
|
||||||
|
doc.put(TRN_FINE, ora);
|
||||||
|
doc.put("NEGOZIO", sapp().negozio());
|
||||||
const long codcf = get_long(F_CODCFC);
|
const long codcf = get_long(F_CODCFC);
|
||||||
|
|
||||||
if (codcf > 0L)
|
if (codcf > 0L)
|
||||||
@ -820,7 +1069,7 @@ bool TScontrino_application::user_create( )
|
|||||||
_turno = new TTurno_vendita;
|
_turno = new TTurno_vendita;
|
||||||
_chiusura = new TChiusura_scontrino_mask;
|
_chiusura = new TChiusura_scontrino_mask;
|
||||||
|
|
||||||
_filiale = d.get("FILIALE");
|
_negozio = d.get("NEGOZIO");
|
||||||
_numdoc = d.get("CODNUM");
|
_numdoc = d.get("CODNUM");
|
||||||
_tipodoc = d.get("TIPODOC");
|
_tipodoc = d.get("TIPODOC");
|
||||||
_codlist = d.get("CODLIST");
|
_codlist = d.get("CODLIST");
|
||||||
@ -829,7 +1078,8 @@ bool TScontrino_application::user_create( )
|
|||||||
_chk_doc = d.get_bool("CHECKDOC");
|
_chk_doc = d.get_bool("CHECKDOC");
|
||||||
_barcode_peso_var = d.get_bool("BARPVAR");
|
_barcode_peso_var = d.get_bool("BARPVAR");
|
||||||
_peso_var = d.get_bool("CODPVAR");
|
_peso_var = d.get_bool("CODPVAR");
|
||||||
|
_qta_char = d.get_char("QTACHAR", NULL, -1, ')');
|
||||||
|
|
||||||
_chiusura->init(d);
|
_chiusura->init(d);
|
||||||
|
|
||||||
|
|
||||||
@ -860,7 +1110,7 @@ bool TScontrino_application::user_create( )
|
|||||||
_tv_cmds.add(w.get("TVCMD", "", i));
|
_tv_cmds.add(w.get("TVCMD", "", i));
|
||||||
}
|
}
|
||||||
_bye_bye = w.get("BYEBYE");
|
_bye_bye = w.get("BYEBYE");
|
||||||
_doppio_zero = w.get_bool("DoppioZero", NULL, -1, true);
|
_doppio_zero = w.get_bool("DoppioZero", NULL, -1, false);
|
||||||
|
|
||||||
_sc_mask = new TScontrino_mask(_tipodoc);
|
_sc_mask = new TScontrino_mask(_tipodoc);
|
||||||
|
|
||||||
@ -1046,7 +1296,7 @@ void TScontrino_application::print_wincor()
|
|||||||
TParagraph_string para("", text_len);
|
TParagraph_string para("", text_len);
|
||||||
const int rows = doc.physical_rows();
|
const int rows = doc.physical_rows();
|
||||||
|
|
||||||
for (int r = 1; r < rows; r++)
|
for (int r = 1; r <= rows; r++)
|
||||||
{
|
{
|
||||||
const TRiga_documento& riga = doc[r];
|
const TRiga_documento& riga = doc[r];
|
||||||
|
|
||||||
|
@ -17,5 +17,6 @@
|
|||||||
#define F_CODCFC 122
|
#define F_CODCFC 122
|
||||||
#define F_RAGSOCC 123
|
#define F_RAGSOCC 123
|
||||||
#define F_DAFATT 124
|
#define F_DAFATT 124
|
||||||
|
#define F_CODSEARCH 205
|
||||||
|
|
||||||
#define DLG_FATT 200
|
#define DLG_FATT 200
|
||||||
|
@ -16,13 +16,13 @@ END
|
|||||||
|
|
||||||
CURRENCY F_TOTDOC 18
|
CURRENCY F_TOTDOC 18
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 3 "Totale scontrino "
|
PROMPT 2 3 "@bTotale scontrino "
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
CURRENCY F_CASSAINI 18
|
CURRENCY F_CASSAINI 18
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 42 3 "Cassa "
|
PROMPT 46 3 "Cassa "
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
@ -76,13 +76,13 @@ END
|
|||||||
|
|
||||||
CURRENCY F_RESTO 18
|
CURRENCY F_RESTO 18
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 13 "Resto "
|
PROMPT 2 13 "@bResto "
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
CURRENCY F_SALDO 18
|
CURRENCY F_SALDO 18
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 42 13 "Saldo "
|
PROMPT 46 13 "Saldo "
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
GROUP 1
|
GROUP 1
|
||||||
END
|
END
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
|
|
||||||
#define FD_FILIALE 101
|
#define FD_NEGOZIO 101
|
||||||
#define FD_CODNUM 102
|
#define FD_CODNUM 102
|
||||||
#define FD_TIPODOC 103
|
#define FD_TIPODOC 103
|
||||||
#define FD_CODLIST 106
|
#define FD_CODLIST 106
|
||||||
#define FD_CHECKDOC 107
|
#define FD_CHECKDOC 107
|
||||||
#define FD_BARPVAR 108
|
#define FD_BARPVAR 108
|
||||||
#define FD_CODPVAR 109
|
#define FD_CODPVAR 109
|
||||||
|
#define FD_QTACHAR 110
|
||||||
|
|
||||||
#define ROW_INC 10
|
#define ROW_INC 10
|
||||||
#define FD_CODPAG01 111
|
#define FD_CODPAG01 111
|
||||||
@ -36,7 +37,7 @@
|
|||||||
#define FD_DESLIST 202
|
#define FD_DESLIST 202
|
||||||
#define FD_DESNUM 204
|
#define FD_DESNUM 204
|
||||||
#define FD_DESTIPODOC 205
|
#define FD_DESTIPODOC 205
|
||||||
#define FD_DESFIL 206
|
#define FD_DESNEG 206
|
||||||
|
|
||||||
#define FD_CODNUMF 207
|
#define FD_CODNUMF 207
|
||||||
#define FD_DESNUMF 208
|
#define FD_DESNUMF 208
|
||||||
|
30
vd/vdlib.cpp
30
vd/vdlib.cpp
@ -470,5 +470,35 @@ TTurno_vendita::TTurno_vendita() : _rec(LF_TURNI)
|
|||||||
TOperatore::TOperatore(const char * user) : _rec(LF_TAB)
|
TOperatore::TOperatore(const char * user) : _rec(LF_TAB)
|
||||||
{
|
{
|
||||||
_rec = cache().get("OPD", user);
|
_rec = cache().get("OPD", user);
|
||||||
|
const TString & gruppo = cache().get(LF_USER, user, USR_GROUPNAME);
|
||||||
|
|
||||||
|
if (gruppo.full())
|
||||||
|
{
|
||||||
|
const TRectype & recgr = cache().get("OPD", gruppo);
|
||||||
|
|
||||||
|
if(!recgr.empty())
|
||||||
|
{
|
||||||
|
if (max_scontrino() <= ZERO)
|
||||||
|
_rec.put("R0", recgr.get_real("R0"));
|
||||||
|
if (max_abbuono() <= ZERO)
|
||||||
|
_rec.put("R1", recgr.get_real("R1"));
|
||||||
|
if (!can_change_price())
|
||||||
|
_rec.put("B0", recgr.get_bool("B0"));
|
||||||
|
if (!can_sotto_costo())
|
||||||
|
_rec.put("B1", recgr.get_bool("B1"));
|
||||||
|
if (!can_change_omaggi())
|
||||||
|
_rec.put("B2", recgr.get_bool("B2"));
|
||||||
|
if (!can_change_sconti())
|
||||||
|
_rec.put("B3", recgr.get_bool("B3"));
|
||||||
|
if (!can_resi())
|
||||||
|
_rec.put("B4", recgr.get_bool("B4"));
|
||||||
|
if (!can_invoice())
|
||||||
|
_rec.put("B5", recgr.get_bool("B5"));
|
||||||
|
if (max_sconto() <= ZERO)
|
||||||
|
_rec.put("R2", recgr.get_real("R2"));
|
||||||
|
if (provvigione() <= ZERO)
|
||||||
|
_rec.put("R3", recgr.get_real("R3"));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ Item_01 = "Statistiche personalizzate", "vd0 -0 %TDT"
|
|||||||
Item_02 = "Stagioni", "vd0 -0 %STG"
|
Item_02 = "Stagioni", "vd0 -0 %STG"
|
||||||
Item_03 = "Reparti", "vd0 -0 RPD", "F"
|
Item_03 = "Reparti", "vd0 -0 RPD", "F"
|
||||||
Item_04 = "Operatori", "vd0 -0 OPD", "F"
|
Item_04 = "Operatori", "vd0 -0 OPD", "F"
|
||||||
Item_05 = "Filiali", "vd0 -0 FLD", "F"
|
Item_05 = "Negozi", "vd0 -0 FLD", "F"
|
||||||
Item_06 = "Casse", "vd0 -0 CAS", "F"
|
Item_06 = "Casse", "vd0 -0 CAS", "F"
|
||||||
|
|
||||||
[VDMENU_020]
|
[VDMENU_020]
|
||||||
@ -34,7 +34,7 @@ Item_01 = "Statistiche personalizzate", "vd0 -1 %TDT"
|
|||||||
Item_02 = "Stagioni", "vd0 -1 %STG"
|
Item_02 = "Stagioni", "vd0 -1 %STG"
|
||||||
Item_03 = "Reparti", "vd0 -1 RPD", "F"
|
Item_03 = "Reparti", "vd0 -1 RPD", "F"
|
||||||
Item_04 = "Operatori", "vd0 -1 OPD", "F"
|
Item_04 = "Operatori", "vd0 -1 OPD", "F"
|
||||||
Item_05 = "Filiali", "vd0 -1 FLD", "F"
|
Item_05 = "Negozi", "vd0 -1 FLD", "F"
|
||||||
Item_06 = "Casse", "vd0 -1 CAS", "F"
|
Item_06 = "Casse", "vd0 -1 CAS", "F"
|
||||||
|
|
||||||
[VDMENU_030]
|
[VDMENU_030]
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#include "../ba/ba3200.h"
|
#include "../ba/ba3200.h"
|
||||||
|
|
||||||
PAGE "Stampa filiali" -1 -1 50 8
|
PAGE "Stampa Negozi" -1 -1 50 8
|
||||||
|
|
||||||
STRING F_INIZIO1 2
|
STRING F_INIZIO1 2
|
||||||
BEGIN
|
BEGIN
|
||||||
|
@ -6,7 +6,7 @@ TOOLBAR "Toolbar" 0 0 0 2
|
|||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
PAGE "Filiali" -1 -1 78 8
|
PAGE "Negozio" -1 -1 78 8
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 75 5
|
GROUPBOX DLG_NULL 75 5
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -17,7 +17,7 @@ END
|
|||||||
STRING F_CODICE 2
|
STRING F_CODICE 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 4 2 "Codice "
|
PROMPT 4 2 "Codice "
|
||||||
HELP "Codice filiale"
|
HELP "Codice negozio"
|
||||||
FIELD CODTAB
|
FIELD CODTAB
|
||||||
FLAGS "UZ"
|
FLAGS "UZ"
|
||||||
KEY 1
|
KEY 1
|
||||||
@ -33,7 +33,7 @@ END
|
|||||||
STRING F_DESCR 70 50
|
STRING F_DESCR 70 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 4 4 "Descrizione "
|
PROMPT 4 4 "Descrizione "
|
||||||
HELP "Descrizione filiale"
|
HELP "Descrizione negozio"
|
||||||
FIELD S0
|
FIELD S0
|
||||||
KEY 2
|
KEY 2
|
||||||
USE FLD KEY 2
|
USE FLD KEY 2
|
||||||
|
Loading…
x
Reference in New Issue
Block a user