Patch level : aga 2.0 387
Files correlati : Ricompilazione Demo : [ ] Commento : Riportata la versione AGA 1.7 patch 2386 git-svn-id: svn://10.65.10.50/trunk@10768 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
30ecba4392
commit
0ae61deb48
@ -46,6 +46,7 @@
|
||||
#define F_RAGSOC 165
|
||||
#define F_REGSOSPEXT 166
|
||||
#define F_STAMPA_PLAFONDS 167
|
||||
#define F_STAMPA_NUMERI 168
|
||||
|
||||
#define F_PRINTER 201
|
||||
#define F_CONFIG 202
|
||||
|
@ -158,7 +158,7 @@ END
|
||||
|
||||
STRING F_ATTIVITA 5
|
||||
BEGIN
|
||||
PROMPT 1 9 "Codice attivita' "
|
||||
PROMPT 1 8 "Codice attivita' "
|
||||
FIELD S8
|
||||
FLAGS "URZ"
|
||||
GROUP GRP_VENDITE GRP_ACQUISTI GRP_RIEPIVA
|
||||
@ -176,7 +176,7 @@ END
|
||||
|
||||
NUMBER F_CODULC 3
|
||||
BEGIN
|
||||
PROMPT 35 9 "Unita' locale "
|
||||
PROMPT 35 8 "Unita' locale "
|
||||
FLAGS "R"
|
||||
GROUP GRP_VENDITE GRP_ACQUISTI GRP_RIEPIVA GRP_INCASSI GRP_GIORNALE GRP_LSOCIALI GRP_GIORNMAG
|
||||
FIELD I7
|
||||
@ -198,22 +198,26 @@ END
|
||||
|
||||
NUMBER F_PAGSTAMP 5
|
||||
BEGIN
|
||||
PROMPT 1 11 "Pagine stampate "
|
||||
PROMPT 1 10 "Pagine stampate "
|
||||
HELP "Numero di pagine gia' stampate"
|
||||
FIELD I1
|
||||
FLAGS "R"
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
NUMBER F_PAGNUM 5
|
||||
BEGIN
|
||||
PROMPT 35 11 "Pagine numerate "
|
||||
PROMPT 35 10 "Pagine numerate "
|
||||
HELP "numero di pagine di cui e' stata stampata la numerazione"
|
||||
FIELD I2
|
||||
FLAGS "R"
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
BOOLEAN F_STAMPA_NUMERI
|
||||
BEGIN
|
||||
PROMPT 1 11 "Stampa numeri di pagina durante la stampa del registro"
|
||||
FIELD S11
|
||||
END
|
||||
|
||||
DATE F_DATAVID
|
||||
BEGIN
|
||||
PROMPT 1 13 "Data vidimazione "
|
||||
|
@ -110,10 +110,11 @@ TMask* TPrimanota_application::load_mask(int n)
|
||||
ism.set_handler(112, fase_handler);
|
||||
else
|
||||
{
|
||||
ism.hide(111); ism.hide(112);
|
||||
is.delete_column(112); is.delete_column(111);
|
||||
for (short id = 155; id <= 157; id++)
|
||||
for (short id = 111; id <= 114; id++)
|
||||
{
|
||||
is.delete_column(id);
|
||||
ism.hide(id); // Descrizioni commessa e fase
|
||||
}
|
||||
}
|
||||
|
||||
// Se esiste lo sheet delle rate
|
||||
|
@ -940,6 +940,23 @@ HIDDEN void replace_number(TViswin* vsw, long rig, real num, int tab)
|
||||
vsw->replace(rig, str, tab);
|
||||
}
|
||||
|
||||
real Visliq_app::min_vers(int anno, int month)
|
||||
{
|
||||
TInteressi_IVA_table ver;
|
||||
real min;
|
||||
if (month > 12)
|
||||
{
|
||||
if (ver.read(_year, 12) == NOERR)
|
||||
min = ver.get(I_ANNUALE);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (ver.read(_year, month) == NOERR)
|
||||
min = ver.get(I_PERIODICO);
|
||||
}
|
||||
return min;
|
||||
}
|
||||
|
||||
void Visliq_app::recalc_liq_data(TViswin* vsw, real& rimb, real& rett, real& vers,
|
||||
real& acc, real& varimp, real& impnonver, real & credspec,
|
||||
TString& d1, TString& d2, TString& d3, TDate& date,
|
||||
@ -1194,11 +1211,11 @@ void Visliq_app::recalc_liq_data(TViswin* vsw, real& rimb, real& rett, real& ver
|
||||
long idv = vsw->search("IMPORTO DA", x, iadoc, TRUE);
|
||||
if (idv < 0)
|
||||
idv = iadoc+6;
|
||||
|
||||
|
||||
if (risul > ZERO)
|
||||
{
|
||||
ln = "IMPORTO DA ";
|
||||
if (risul < IVA_DA_RIPORTARE && month < 13)
|
||||
if (risul < min_vers(_year, month) && month < 13)
|
||||
ln << "NON ";
|
||||
ln << "VERSARE ";
|
||||
replace_number(vsw, idv, risul, 75);
|
||||
@ -1342,8 +1359,9 @@ void Visliq_app::recalc_next_liq(int start_month, TSheet_field* sl, TSheet_field
|
||||
risc -= cred;
|
||||
risd -= debt;
|
||||
|
||||
// aggiunge nuovo credito o debito
|
||||
if (rstart.sign() < 0 || (rstart.sign() > 0 && rstart < IVA_DA_RIPORTARE))
|
||||
// aggiunge nuovo credito o debito
|
||||
real min = min_vers(_year, i);
|
||||
if (rstart.sign() < 0 || (rstart.sign() > 0 && rstart < min))
|
||||
risl += rstart;
|
||||
|
||||
real newcred(0.0);
|
||||
@ -1353,7 +1371,7 @@ void Visliq_app::recalc_next_liq(int start_month, TSheet_field* sl, TSheet_field
|
||||
newcred = -rstart;
|
||||
risc -= rstart;
|
||||
}
|
||||
if (rstart.sign() > 0 && rstart < IVA_DA_RIPORTARE)
|
||||
if (rstart.sign() > 0 && rstart < min)
|
||||
{
|
||||
newdebt = rstart;
|
||||
risd += rstart;
|
||||
@ -1827,8 +1845,9 @@ void Visliq_app::write_general(TMask& m)
|
||||
risc -= cred;
|
||||
risd -= debt;
|
||||
|
||||
// aggiunge nuovo credito o debito
|
||||
if (rstart.sign() < 0 || (rstart.sign() > 0 && rstart < IVA_DA_RIPORTARE))
|
||||
// aggiunge nuovo credito o debito
|
||||
real min = min_vers(_year, i);
|
||||
if (rstart.sign() < 0 || (rstart.sign() > 0 && rstart < min))
|
||||
risl += rstart;
|
||||
|
||||
real newcred(0.0);
|
||||
@ -1838,7 +1857,7 @@ void Visliq_app::write_general(TMask& m)
|
||||
newcred = -rstart;
|
||||
risc -= rstart;
|
||||
}
|
||||
if (rstart.sign() > 0 && rstart < IVA_DA_RIPORTARE)
|
||||
if (rstart.sign() > 0 && rstart < min)
|
||||
{
|
||||
newdebt = rstart;
|
||||
risd += rstart;
|
||||
|
@ -4,7 +4,6 @@
|
||||
#include <tabutil.h>
|
||||
|
||||
// IVA a debito da riportare al mese successivo
|
||||
#define IVA_DA_RIPORTARE real(50000)
|
||||
|
||||
class TSheet_field;
|
||||
class TViswin;
|
||||
@ -99,6 +98,7 @@ public:
|
||||
bool select_butt(TMask& m);
|
||||
TTable* del() { return _del; }
|
||||
|
||||
real Visliq_app::min_vers(int anno, int month);
|
||||
// riaggiusta la liquidazione del mese dato
|
||||
void recalc_liq_data(TViswin* v, real& rimb, real& rett, real& vers, real& acc,
|
||||
real& varimp, real& impnonver, real& credspec,
|
||||
|
@ -797,7 +797,9 @@ bool TDistinta_mask::on_distsheet_event(TOperable_field& o, TField_event e, long
|
||||
TQuantita qta(art, um, ZERO);
|
||||
m.set(F_UMEXPR, qta.um());
|
||||
}
|
||||
}
|
||||
}
|
||||
if (e == fe_modify && rec.get_bool("SOSPESO"))
|
||||
warning_box("Attenzione l'articolo %s e' sospeso.", (const char *) rec.get(ANAMAG_CODART));
|
||||
break;
|
||||
case LF_DIST :
|
||||
m.set(F_DESCOMP, rec.get("DESCR"));
|
||||
@ -951,7 +953,7 @@ bool TDistinta_mask::on_field_event(TOperable_field& o, TField_event e, long jol
|
||||
set(F_DESCR, mag.get(ANAMAG_DESCR));
|
||||
set(F_PREZZO, mag.get(ANAMAG_COSTSTD));
|
||||
set(F_PESO, mag.get(ANAMAG_PESO));
|
||||
set(F_UMP, mag.get(ANAMAG_UMP));
|
||||
set(F_UMP, mag.get(ANAMAG_UMP));
|
||||
}
|
||||
break;
|
||||
case 'L':
|
||||
|
@ -177,6 +177,8 @@ class TSpreadsheet : public TControl
|
||||
protected:
|
||||
//@cmember Gestisce gli eventi delle celle (chiamata dal <mf TSpreadsheet::xiev_handler>)
|
||||
virtual bool event_handler(XI_OBJ* itf, XI_EVENT* xiev);
|
||||
|
||||
KEY barcode_newline() const;
|
||||
|
||||
//@cmember Copia una cella nel corrispondente campo della maschera e ne ritorna il contenuto
|
||||
const char* copy_cell2field(XI_OBJ* cell = NULL);
|
||||
@ -365,7 +367,18 @@ public:
|
||||
|
||||
|
||||
|
||||
// @doc INTERNAL
|
||||
KEY TSpreadsheet::barcode_newline() const
|
||||
{
|
||||
static KEY _barcode_newline = 0xFFFF;
|
||||
if (_barcode_newline == 0xFFFF)
|
||||
{
|
||||
TConfig ini(CONFIG_INSTALL, "Main");
|
||||
_barcode_newline = ini.get_int("BarcodeNewline");
|
||||
}
|
||||
return _barcode_newline;
|
||||
}
|
||||
|
||||
// @doc INTERNAL
|
||||
|
||||
// @mfunc Costruttore
|
||||
TSpreadsheet::TSpreadsheet(
|
||||
@ -990,6 +1003,11 @@ bool TSpreadsheet::test_focus_change()
|
||||
// Certified 75%
|
||||
bool TSpreadsheet::event_handler(XI_OBJ* itf, XI_EVENT *xiev)
|
||||
{
|
||||
static KEY _lastab = K_TAB;
|
||||
static char tmp[16];
|
||||
static clock_t digit_timer = 0;
|
||||
|
||||
|
||||
BOOLEAN& refused = xiev->refused;
|
||||
|
||||
switch (xiev->type)
|
||||
@ -1435,7 +1453,20 @@ bool TSpreadsheet::event_handler(XI_OBJ* itf, XI_EVENT *xiev)
|
||||
case XIE_CHAR_CELL:
|
||||
if (_edit_field)
|
||||
{
|
||||
const KEY k = xiev_to_key(xiev);
|
||||
KEY k = xiev_to_key(xiev);
|
||||
|
||||
if (isalnum(k))
|
||||
digit_timer = clock();
|
||||
else
|
||||
{
|
||||
if (k == barcode_newline())
|
||||
{
|
||||
const clock_t delay = clock() - digit_timer;
|
||||
if (delay <= 60)
|
||||
k = K_CTRL+'+';
|
||||
}
|
||||
}
|
||||
|
||||
switch(k)
|
||||
{
|
||||
case K_F2:
|
||||
|
@ -1314,7 +1314,7 @@ void TCursor::filter(
|
||||
_filter = fil;
|
||||
if (_fexpr) delete _fexpr;
|
||||
_frefs.destroy();
|
||||
TTypeexp type = (_filter.find('"') != -1) ? _strexpr : _numexpr;
|
||||
TTypeexp type = (_filter.find('"') >= 0) ? _strexpr : _numexpr;
|
||||
if (_filter.not_empty())
|
||||
{
|
||||
_fexpr = new TExpression(_filter, type);
|
||||
|
@ -39,6 +39,7 @@
|
||||
#define F_DESCDEFDEP 146
|
||||
#define H_DEFAULTMAG 147
|
||||
#define F_STOP_PROD 148
|
||||
#define F_MOV_SOSP 149
|
||||
|
||||
#define G_SGNVAL 20
|
||||
#define G_SGNQTA 21
|
||||
|
@ -163,8 +163,8 @@ END
|
||||
|
||||
BOOLEAN F_STOP_PROD
|
||||
BEGIN
|
||||
PROMPT 50 15 "Scarica gli art.di produzione"
|
||||
FIELD B4
|
||||
PROMPT 50 15 "Scarica gli art.di produzione"
|
||||
FIELD B4
|
||||
END
|
||||
|
||||
LISTBOX F_COSTO_ESPL 14
|
||||
@ -228,6 +228,13 @@ BEGIN
|
||||
FLAGS "D"
|
||||
PROMPT 32 19 ""
|
||||
END
|
||||
|
||||
BOOLEAN F_MOV_SOSP
|
||||
BEGIN
|
||||
PROMPT 2 20 "Movimenta gli articoli sospesi"
|
||||
FIELD B5
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Movimentazione campi" 11 60 14
|
||||
|
@ -38,7 +38,9 @@ class TMask_movmag : public TMask
|
||||
static bool handle_righeprezzo2(TMask_field &f, KEY k); // handler del prezzo delle righe
|
||||
static bool handle_codcaus(TMask_field &fld, KEY k); // handler della causale
|
||||
static bool handle_datacomp(TMask_field &, KEY k); // handler del numero di registrazione
|
||||
static bool handle_checksosp(TMask_field &fld, KEY k); // handler
|
||||
static bool handle_codarticolo(TMask_field &fld, KEY k); // handler
|
||||
static bool handle_causrig(TMask_field &fld, KEY k); // handler
|
||||
static bool handle_giacattuale(TMask_field &fld, KEY k); // handler della giacenza attuale
|
||||
static bool codgrp_handler(TMask_field &fld, KEY k); // handler del codice gruppo
|
||||
static void sheetrighe_put(TSheet_field &fld_righe, int item);
|
||||
@ -81,7 +83,7 @@ TMask_movmag::TMask_movmag(TMov_mag * m_m)
|
||||
set_handler(F_DATACOMP, handle_datacomp);
|
||||
set_handler(F_CODCAUS, handle_codcaus);
|
||||
ss.sheet_mask().field(F_QUANT).set_handler(handle_righeprezzo1);
|
||||
ss.sheet_mask().field(F_CAUSRIG).set_handler(handle_righeprezzo1);
|
||||
ss.sheet_mask().field(F_CAUSRIG).set_handler(handle_causrig);
|
||||
ss.sheet_mask().field(F_CODART).set_handler(handle_codarticolo);
|
||||
ss.sheet_mask().field(F_GIAC).set_handler(handle_giacattuale);
|
||||
ss.set_notify(notify_righe);
|
||||
@ -311,18 +313,56 @@ TArticolo_giacenza& TMask_movmag::curr_art()
|
||||
return *_curr_art;
|
||||
}
|
||||
|
||||
bool TMask_movmag::handle_checksosp(TMask_field &f, KEY k)
|
||||
{
|
||||
if (k==K_TAB && f.focusdirty())
|
||||
{
|
||||
TMask_movmag& mov_mask = (TMask_movmag &)f.mask().get_sheet()->mask();
|
||||
TMask & row_mask = f.mask();
|
||||
TString16 caus(row_mask.get(F_CAUSRIG));
|
||||
|
||||
mov_mask.curr_art().read(row_mask.get(F_CODART));
|
||||
|
||||
if (caus.empty())
|
||||
caus = mov_mask.get(F_CODCAUS);
|
||||
|
||||
const TCausale_magazzino c(caus);
|
||||
|
||||
if (!c.movimenta_sospesi() && mov_mask.curr_art().get_bool("SOSPESO"))
|
||||
return error_box("Articolo %s sospeso, quindi non movmentabile", (const char *)f.get());
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TMask_movmag::handle_codarticolo(TMask_field &f, KEY k)
|
||||
{
|
||||
if (k==K_TAB)
|
||||
{
|
||||
// TMask_movmag& maskmov = (TMask_movmag&)f.mask();
|
||||
TMask_movmag& maskmov = (TMask_movmag &)f.mask().get_sheet()->mask();
|
||||
maskmov.curr_art().read(f.get());
|
||||
if (f.focusdirty())
|
||||
{
|
||||
if (!handle_checksosp(f, k))
|
||||
return FALSE;
|
||||
handle_righeprezzo2(f, k);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TMask_movmag::handle_causrig(TMask_field &f, KEY k)
|
||||
{
|
||||
if (k==K_TAB && f.focusdirty())
|
||||
{
|
||||
if (!handle_checksosp(f, k))
|
||||
return FALSE;
|
||||
handle_righeprezzo1(f, k);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// proposta hard: propone il prezzo in ogni caso
|
||||
bool TMask_movmag::handle_giacattuale(TMask_field &f, KEY k)
|
||||
{
|
||||
|
@ -447,6 +447,8 @@ public:
|
||||
bool update_val() const {return !get_bool("B0");}
|
||||
bool update_ultcos() const {return get_bool("B2");}
|
||||
bool esplodente() const {return get_bool("B3");}
|
||||
bool scarica_artprod() const {return get_bool("B4");}
|
||||
bool movimenta_sospesi() const {return get_bool("B5");}
|
||||
const TString & default_magdep() const {return get("S10");}
|
||||
const char *default_mag() const {return get("S10").mid(0,3);}
|
||||
const char *default_dep() const {return get("S10").mid(3,2);}
|
||||
|
@ -1,3 +1,3 @@
|
||||
47
|
||||
0
|
||||
$anamag|0|0|801|0|Anagrafica di magazzino|NART||
|
||||
$anamag|0|0|802|0|Anagrafica di magazzino|NART||
|
||||
|
@ -1,5 +1,5 @@
|
||||
47
|
||||
69
|
||||
70
|
||||
CODART|1|20|0|Codice Articolo
|
||||
DESCR|1|50|0|Descrizione
|
||||
DESCRAGG|11|10|0|Descrizione aggiuntiva
|
||||
@ -59,6 +59,7 @@ CONTOINDA|1|12|0|Codice piano dei conti industriale (GrCoSo) Acquisti
|
||||
CONTOINDV|1|12|0|Codice piano dei conti industriale (GrCoSo) Vendite
|
||||
COLLTYPE|1|1|0|Tipo collegamento DB
|
||||
CODMAG|1|5|0|Codice magazzino
|
||||
SOSPESO|8|1|0|Codice sospeso (obsoleto)
|
||||
USER1|1|40|0|Campo libero 1
|
||||
USER2|1|20|0|Campo libero 2
|
||||
USER3|1|20|0|Campo libero 3
|
||||
|
@ -469,9 +469,14 @@ void TMotore_application::ini2mask(TConfig& ini, TMask& msk, bool query)
|
||||
// l'autoload ??
|
||||
f.insert(-1, FALSE);
|
||||
// Aggiunge la riga allo sheet
|
||||
// ((TDocumento_mask &) msk).autoload(f.items()); // Cagata tremenda: non capisco
|
||||
const bool checked = rec.get_bool(RDOC_CHECKED);
|
||||
|
||||
|
||||
rec.autoload(f);
|
||||
f.check_row(f.items()-1, 0x2);
|
||||
|
||||
if (!checked) //se non e' checked, il record viene autosalvato (in modo che sia salvato completamente)
|
||||
rec.autosave(f);
|
||||
}
|
||||
}
|
||||
msk.set_mode(oldmode);
|
||||
|
@ -162,6 +162,7 @@
|
||||
#define F_NUMRIGULC1 301
|
||||
#define F_NUMREGULC2 302
|
||||
#define F_NUMRIGULC2 303
|
||||
#define F_SOSPESO 304
|
||||
|
||||
#define G_CODART 1
|
||||
#define G_DESART 2
|
||||
|
@ -175,6 +175,12 @@ BEGIN
|
||||
FLAG "U"
|
||||
END
|
||||
|
||||
BOOLEAN F_SOSPESO
|
||||
BEGIN
|
||||
PROMPT 45 7 "Sospeso"
|
||||
FIELD SOSPESO
|
||||
END
|
||||
|
||||
TEXT DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 2 8 "@bCodici corrispondenti"
|
||||
|
@ -15,13 +15,15 @@ class TDeletedoc_app : public TSkeleton_application
|
||||
{
|
||||
TArchive _arc;
|
||||
TString _desc, _last_std;
|
||||
TString16 _num;
|
||||
int _anno;
|
||||
char _unit;
|
||||
TFilename _tmp_dir;
|
||||
TIsamtempfile *_tdoc,*_trdoc;
|
||||
|
||||
protected:
|
||||
|
||||
void backup_delete_doc(int op, int who); // Backup e cancellazione dei documenti da eliminare
|
||||
void backup_delete_doc(int op, int who, bool pack_rows); // Backup e cancellazione dei documenti da eliminare
|
||||
void restore_doc(); // Ripristino documenti da disco
|
||||
void create_tmp_files(bool create=TRUE);
|
||||
void delete_tmp_files(bool remove=TRUE);
|
||||
@ -45,13 +47,14 @@ bool TDeletedoc_app::state_handler(TMask& m, KEY k)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void TDeletedoc_app::backup_delete_doc(int op, int who)
|
||||
void TDeletedoc_app::backup_delete_doc(int op, int who, bool pack_rows)
|
||||
{
|
||||
|
||||
TIsamfile doc(LF_DOC);
|
||||
TIsamfile rdoc(LF_RIGHEDOC);
|
||||
TIsamfile clifo(LF_CLIFO);
|
||||
TIsamfile cfven(LF_CFVEN);
|
||||
TIsamfile indsp(LF_INDSP);
|
||||
TIsamfile tab(LF_TAB);
|
||||
TIsamfile occas(LF_OCCAS);
|
||||
TIsamfile movmag(LF_MOVMAG);
|
||||
@ -62,12 +65,14 @@ void TDeletedoc_app::backup_delete_doc(int op, int who)
|
||||
rdoc.open();
|
||||
clifo.open();
|
||||
cfven.open();
|
||||
indsp.open();
|
||||
tab.open();
|
||||
occas.open();
|
||||
movmag.open();
|
||||
rmovmag.open();
|
||||
|
||||
int err = doc.lock();
|
||||
int err= NOERR;
|
||||
// int err = doc.lock();
|
||||
if (err != NOERR)
|
||||
{
|
||||
error_box("Il file documenti non puo' essere bloccato in modo esclusivo."
|
||||
@ -80,6 +85,7 @@ void TDeletedoc_app::backup_delete_doc(int op, int who)
|
||||
create_tmp_files();
|
||||
|
||||
TString_array to_zap; // Array contenente le chiavi dei documenti da eliminare
|
||||
TString_array to_pack; // Array contenente le chiavi dei documenti da compattare
|
||||
TRecnotype total = 0;
|
||||
|
||||
doc.zero();
|
||||
@ -89,8 +95,12 @@ void TDeletedoc_app::backup_delete_doc(int op, int who)
|
||||
for (int scanerr = doc.first();
|
||||
scanerr == NOERR && !p.iscancelled();
|
||||
scanerr = doc.next())
|
||||
{
|
||||
{
|
||||
p.addstatus(1);
|
||||
if (_anno != 0 && _anno != doc.get_int(DOC_ANNO))
|
||||
continue;
|
||||
if (_num.not_empty() && _num != doc.get(DOC_CODNUM))
|
||||
continue;
|
||||
documento.read(doc.curr());
|
||||
|
||||
bool to_delete = FALSE;
|
||||
@ -106,6 +116,24 @@ void TDeletedoc_app::backup_delete_doc(int op, int who)
|
||||
to_delete = TRUE;
|
||||
}
|
||||
|
||||
if (pack_rows && !to_delete && documento.tipo().is_ordine())
|
||||
{
|
||||
const int rows = documento.physical_rows();
|
||||
for (int x = 1; x <= rows; x++)
|
||||
{
|
||||
if (documento[x].is_evasa());
|
||||
{
|
||||
TToken_string id(30);
|
||||
id = doc.get(DOC_PROVV);
|
||||
id.add(doc.get(DOC_ANNO));
|
||||
id.add(doc.get(DOC_CODNUM));
|
||||
id.add(doc.get(DOC_NDOC));
|
||||
to_pack.add(id);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (to_delete) // Se TRUE il puo' essere eliminato!
|
||||
{ // Memorizza la chiave 1 del documento in un array
|
||||
if (op & 0x1)
|
||||
@ -158,20 +186,42 @@ void TDeletedoc_app::backup_delete_doc(int op, int who)
|
||||
TString caption("Confermare la cancellazione di ");
|
||||
caption.add_plural(total, "documento");
|
||||
if (yesno_box(caption))
|
||||
{
|
||||
TProgind pi(total, caption, FALSE, TRUE, 10);
|
||||
for (int i = 0; i < to_zap.items(); i++)
|
||||
{
|
||||
TToken_string& id = to_zap.row(i);
|
||||
id.restart();
|
||||
const char provv = id.get_char();
|
||||
const int anno = id.get_int();
|
||||
const TString16 codnum = id.get();
|
||||
const long numdoc = id.get_int();
|
||||
documento.read(provv,anno,codnum,numdoc);
|
||||
documento.TMultiple_rectype::remove(doc);
|
||||
pi.addstatus(1);
|
||||
}
|
||||
{
|
||||
{
|
||||
TProgind pi(total, caption, FALSE, TRUE, 10);
|
||||
for (int i = 0; i < to_zap.items(); i++)
|
||||
{
|
||||
TToken_string& id = to_zap.row(i);
|
||||
id.restart();
|
||||
const char provv = id.get_char();
|
||||
const int anno = id.get_int();
|
||||
const TString16 codnum = id.get();
|
||||
const long numdoc = id.get_int();
|
||||
documento.read(provv,anno,codnum,numdoc);
|
||||
documento.TMultiple_rectype::remove(doc);
|
||||
pi.addstatus(1);
|
||||
}
|
||||
}
|
||||
{
|
||||
TProgind pi1(to_pack.items(), "Compattamento documenti", FALSE, TRUE, 10);
|
||||
for (int i = 0; i < to_pack.items(); i++)
|
||||
{
|
||||
TToken_string& id = to_pack.row(i);
|
||||
id.restart();
|
||||
const char provv = id.get_char();
|
||||
const int anno = id.get_int();
|
||||
const TString16 codnum = id.get();
|
||||
const long numdoc = id.get_int();
|
||||
documento.read(provv,anno,codnum,numdoc);
|
||||
const int rows = documento.physical_rows();
|
||||
// Memorizza le righe del documento sui file temporanei
|
||||
for (int x = rows; x >= 1; x--)
|
||||
if (documento[x].is_evasa())
|
||||
documento.destroy_row(x, TRUE);
|
||||
documento.rewrite(doc);
|
||||
pi1.addstatus(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -289,11 +339,14 @@ void TDeletedoc_app::main_loop()
|
||||
_desc = m.get(F_DESC);
|
||||
const int scelta = m.get_int(F_OPERAZIONE);
|
||||
const int cosa = m.get_int(F_DOCUMENTI);
|
||||
const bool pack_rows = m.get_bool(F_COMPATTA);
|
||||
_anno = m.get_int(F_ANNO);
|
||||
_num = m.get(F_CODNUM);
|
||||
switch (scelta)
|
||||
{
|
||||
case 1 : backup_delete_doc(0x1, cosa); break;
|
||||
case 2 : backup_delete_doc(0x2, cosa); break;
|
||||
case 3 : backup_delete_doc(0x3, cosa); break;
|
||||
case 1 : backup_delete_doc(0x1, cosa, pack_rows); break;
|
||||
case 2 : backup_delete_doc(0x2, cosa, pack_rows); break;
|
||||
case 3 : backup_delete_doc(0x3, cosa, pack_rows); break;
|
||||
default: restore_doc(); break;
|
||||
}
|
||||
}
|
||||
|
@ -4,4 +4,8 @@
|
||||
#define F_STADESC 104
|
||||
#define F_OPERAZIONE 105
|
||||
#define F_DOCUMENTI 106
|
||||
#define F_COMPATTA 107
|
||||
#define F_ANNO 108
|
||||
#define F_CODNUM 109
|
||||
#define F_DESNUM 110
|
||||
|
||||
|
@ -1,26 +1,29 @@
|
||||
#include "ve5100a.h"
|
||||
|
||||
PAGE "Eliminazione/Archiviazione documenti" -1 -1 61 11
|
||||
PAGE "Eliminazione/Archiviazione documenti" -1 -1 61 15
|
||||
|
||||
RADIOBUTTON F_OPERAZIONE 1 34
|
||||
BEGIN
|
||||
PROMPT 1 1 "Operazione"
|
||||
ITEM "1|Eliminazione"
|
||||
MESSAGE DISABLE,F_DESC|DISABLE,F_UNIT
|
||||
MESSAGE DISABLE,F_DESC|DISABLE,F_UNIT|ENABLE,F_ANNO|ENABLE,F_CODNUM
|
||||
ITEM "2|Archiviazione"
|
||||
MESSAGE ENABLE,F_DESC|ENABLE,F_UNIT
|
||||
MESSAGE ENABLE,F_DESC|ENABLE,F_UNIT|ENABLE,F_ANNO|ENABLE,F_CODNUM
|
||||
ITEM "3|Eliminazione e archiviazione"
|
||||
MESSAGE ENABLE,F_DESC|ENABLE,F_UNIT
|
||||
MESSAGE ENABLE,F_DESC|ENABLE,F_UNIT|ENABLE,F_ANNO|ENABLE,F_CODNUM
|
||||
ITEM "4|Ripristino"
|
||||
MESSAGE DISABLE,F_DESC|ENABLE,F_UNIT
|
||||
MESSAGE DISABLE,F_DESC|ENABLE,F_UNIT|CLEAR,F_ANNO|CLEAR,F_CODNUM
|
||||
END
|
||||
|
||||
RADIOBUTTON F_DOCUMENTI 1 24
|
||||
BEGIN
|
||||
PROMPT 36 1 "Documenti"
|
||||
ITEM "1|Eliminabili"
|
||||
ITEM "1|Eliminabili"
|
||||
MESSAGE CLEAR,F_COMPATTA
|
||||
ITEM "2|Evasi"
|
||||
MESSAGE ENABLE,F_COMPATTA
|
||||
ITEM "3|Entrambi"
|
||||
MESSAGE ENABLE,F_COMPATTA
|
||||
END
|
||||
|
||||
LIST F_UNIT 2
|
||||
@ -55,6 +58,46 @@ BEGIN
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
BOOELAN F_COMPATTA
|
||||
BEGIN
|
||||
PROMPT 2 9 "Elimina la righe evase"
|
||||
END
|
||||
|
||||
NUMBER F_ANNO 4
|
||||
BEGIN
|
||||
PROMPT 2 10 "Esercizio "
|
||||
FIELD ANNO
|
||||
WARNING "Inserire un anno valido"
|
||||
END
|
||||
|
||||
STRING F_CODNUM 4
|
||||
BEGIN
|
||||
PROMPT 2 11 "Numerazione "
|
||||
FIELD CODNUM
|
||||
HELP "Codice numerazione"
|
||||
USE %NUM
|
||||
INPUT CODTAB F_CODNUM
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CODNUM CODTAB
|
||||
OUTPUT F_DESNUM S0
|
||||
CHECKTYPE NORMAL
|
||||
FLAG "U"
|
||||
WARNING "Numerazione assente"
|
||||
END
|
||||
|
||||
STRING F_DESNUM 50 42
|
||||
BEGIN
|
||||
PROMPT 15 12 ""
|
||||
HELP "Descrizione numerazione"
|
||||
USE %NUM KEY 2
|
||||
INPUT S0 F_DESNUM
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice" CODTAB
|
||||
COPY OUTPUT F_CODNUM
|
||||
END
|
||||
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
|
@ -246,7 +246,7 @@ bool TContabilizzazione_app::create()
|
||||
{
|
||||
TApplication::create();
|
||||
open_files(LF_TABCOM, LF_TAB, LF_CLIFO, LF_OCCAS, LF_INDSP, LF_CFVEN,
|
||||
LF_DOC, LF_RIGHEDOC, LF_ANAMAG, LF_MOVMAG, LF_RMOVMAG, LF_PROVV,
|
||||
LF_DOC, LF_RIGHEDOC, LF_ANAMAG, LF_MOVMAG, LF_RMOVMAG, LF_PROVV, LF_MOV,
|
||||
LF_PCON, LF_CONDV, LF_SVRIEP, LF_AGENTI, LF_PERCPROV, LF_ATTIV, LF_CAUSALI, 0);
|
||||
_msk = new TMask("ve6100a");
|
||||
_msk->set_handler(F_CODICE_ELAB,handle_cod_eld);
|
||||
|
@ -75,12 +75,13 @@ public:
|
||||
TImporto TMovimentoPN_VE::real2imp(const real& r, char row_type)
|
||||
{
|
||||
CHECK(_caus,"Orgggssbb..._caus pointer is NULL!");
|
||||
bool dare;
|
||||
bool dare = FALSE;
|
||||
if (row_type == 'S')
|
||||
{
|
||||
dare = _caus->sezione_ritsoc() == 'D';
|
||||
}
|
||||
else
|
||||
{
|
||||
if (row_type == 'F')
|
||||
{
|
||||
dare = _caus->sezione_ritsoc() == 'D';
|
||||
@ -91,7 +92,7 @@ TImporto TMovimentoPN_VE::real2imp(const real& r, char row_type)
|
||||
if (row_type != 'T' && row_type != 'F')
|
||||
dare = !dare;
|
||||
}
|
||||
|
||||
}
|
||||
TImporto importo(dare ? 'D' : 'A', r);
|
||||
return importo;
|
||||
}
|
||||
@ -558,11 +559,12 @@ error_type TIVA_array::add_omaggi(const TRiga_documento & r, const TBill& conto,
|
||||
add(r, conto, ndec, p);
|
||||
TRiga_documento r_storno(r);
|
||||
|
||||
r_storno.set_tipo("01");
|
||||
r_storno.put(RDOC_CODIVA, _ivasto);
|
||||
real prezzo = r_storno.get(RDOC_PREZZO);
|
||||
prezzo = -prezzo;
|
||||
r_storno.put(RDOC_PREZZO, prezzo);
|
||||
add(r, conto, ndec, p);
|
||||
add(r_storno, conto, ndec, p);
|
||||
return no_error;
|
||||
}
|
||||
|
||||
@ -1890,13 +1892,20 @@ error_type TContabilizzazione::compile_rows_mov(TDocumento& doc)
|
||||
continue;
|
||||
|
||||
r.put(RDOC_CODIVA, codiva1);
|
||||
_righe_iva->add(r, conto, ALL_DECIMALS, perc);
|
||||
if (riga_omaggio)
|
||||
_righe_iva->add_omaggi(r, conto, ALL_DECIMALS, perc);
|
||||
else
|
||||
_righe_iva->add(r, conto, ALL_DECIMALS, perc);
|
||||
|
||||
}
|
||||
r.put(RDOC_CODIVA, codiva2); //Restore
|
||||
}
|
||||
else
|
||||
{
|
||||
_righe_iva->add(r, conto);
|
||||
if (riga_omaggio)
|
||||
_righe_iva->add_omaggi(r, conto);
|
||||
else
|
||||
_righe_iva->add(r, conto);
|
||||
const TString16 cod(r.get(RDOC_CODIVA));
|
||||
|
||||
if (r.doc().tipo().calcolo_lordo()) // Si ricorda che calcolo_lordo() e fattura_commerciale() sono esclusivi.
|
||||
@ -2869,12 +2878,20 @@ error_type TContabilizzazione::write_intra(TDocumento& doc)
|
||||
paeseorig = !is_cessione ? rec_anamag.get(ANAMAG_PAESE) : EMPTY_STRING; // Campo solo per Acquisti
|
||||
provincia = is_cessione ? rec_anamag.get(ANAMAG_PROV) : cchh.get(LF_COMUNI, commag, COM_PROVCOM);
|
||||
|
||||
if (nomenclatura.blank() || unsuppun.is_zero() || massanun.is_zero())
|
||||
if (nomenclatura.blank() || unsuppun.is_zero() || massanun.is_zero() || provincia.blank())
|
||||
{
|
||||
TString msg;
|
||||
msg << "--- L'articolo " << rec_anamag.get(ANAMAG_CODART) << " non riporta tutti i dati necessari per il movimento intracomunitario:";
|
||||
msg << "--- L'articolo " << rec_anamag.get(ANAMAG_CODART) << " non riporta tutti i dati necessari per il movimento intracomunitario.";
|
||||
_viswin->add_line(msg);
|
||||
msg = " Si consiglia di verificare i seguenti valori sull'anagrafica:";
|
||||
_viswin->add_line(msg);
|
||||
msg = " ";
|
||||
if (nomenclatura.blank()) msg << "nomenclatura combinata; ";
|
||||
if (unsuppun.is_zero()) msg << "unità di misura supplementare; ";
|
||||
if (massanun.is_zero()) msg << "massa netta unitaria; ";
|
||||
if (provincia.blank()) msg << "provincia d'origine; ";
|
||||
msg.rtrim(2); msg << '.'; // Sostituisce l'ultimo punto e virgola con un punto
|
||||
_viswin->add_line(msg);
|
||||
_viswin->add_line(" Verificare i seguenti valori: nomenclatura combinata, unità di misura supplementare, massa netta unitaria.");
|
||||
}
|
||||
|
||||
key.cut(0);
|
||||
@ -3118,7 +3135,7 @@ void TContabilizzazione::display_error(TDocumento& doc)
|
||||
"Verificare la consistenza dei files relativi ai movimenti intracomunitari.",(const char*)numerazione,numero);
|
||||
break;
|
||||
case cont_seq_error:
|
||||
msg.format("Il documento precedente al %s/%ld non e' stato contabilizzato.\n"
|
||||
msg.format("Il documento precedente al %s/%ld non e' stato contabilizzato."
|
||||
"E' necessario contabilizzare tutti i documenti in sequenza.",
|
||||
(const char*)numerazione, numero);
|
||||
break;
|
||||
@ -3347,7 +3364,9 @@ bool TContabilizzazione::elabora(TLista_documenti& doc_in, TLista_documenti& /*
|
||||
else
|
||||
message_box("Contabilizzazione terminata");
|
||||
}
|
||||
_viswin->run();
|
||||
KEY k = _viswin->run();
|
||||
if (k == K_CTRL+'S') // Ho premuto Stampa
|
||||
printer().print_txt(_viswin->text());
|
||||
delete _viswin; _viswin = NULL;
|
||||
|
||||
return _can_write; // Se non ha riscontrato errori per nessun documento, _can_write = TRUE
|
||||
|
@ -1621,6 +1621,7 @@ bool TElabora_mask::on_field_event(TOperable_field& o, TField_event e, long joll
|
||||
}
|
||||
break;
|
||||
case F_ELAB:
|
||||
case F_ANNO_ELAB:
|
||||
if (e == fe_modify)
|
||||
update_ndoc_filter(TRUE);
|
||||
break;
|
||||
@ -1660,6 +1661,7 @@ bool TElabora_mask::on_field_event(TOperable_field& o, TField_event e, long joll
|
||||
{
|
||||
const TRectype& head = _tree.testata();
|
||||
set(F_DATADOC_ELAB, head.get(DOC_DATADOC)); // Anch'essa nella chiave 2!
|
||||
set(F_ANNO_ELAB, head.get(DOC_ANNO));
|
||||
set(F_CODNUM_ELAB, head.get(DOC_CODNUM));
|
||||
field(F_CODNUM_ELAB).check();
|
||||
set(F_NDOC_ELAB, head.get(DOC_NDOC));
|
||||
@ -1840,6 +1842,13 @@ bool TElabora_mask::elabora()
|
||||
|
||||
delete newdoc;
|
||||
|
||||
// Azzera l'anno in caso di ordini
|
||||
if (in.items() > 0 && in[0].is_ordine())
|
||||
{
|
||||
reset(F_ANNO_ELAB);
|
||||
update_mask = TRUE;
|
||||
}
|
||||
|
||||
if (update_mask)
|
||||
update_ndoc_filter();
|
||||
|
||||
@ -1958,6 +1967,11 @@ void TElabora_mask::update_ndoc_filter(bool is_tipo_elaborazione)
|
||||
TString8 si; si << stato_in;
|
||||
set(F_STATODOC_ELAB, si);
|
||||
field(F_STATODOC_ELAB).check();
|
||||
|
||||
// Azzero anno di elaaborazione quando ho a che fare con degli ordini
|
||||
const TTipo_documento& tipodocin = _main->doc().tipo(tipo_in);
|
||||
if (tipodocin.is_ordine())
|
||||
reset(F_ANNO_ELAB);
|
||||
}
|
||||
}
|
||||
if (almost_one)
|
||||
@ -1993,12 +2007,18 @@ void TElabora_mask::update_ndoc_filter(bool is_tipo_elaborazione)
|
||||
field(F_TIPODOC_ELAB).check();
|
||||
set(F_STATODOC_ELAB, stato_in);
|
||||
field(F_STATODOC_ELAB).check();
|
||||
|
||||
// Azzero anno di elaaborazione quando ho a che fare con degli ordini
|
||||
const TTipo_documento& tipodocin = _main->doc().tipo(tipo_in);
|
||||
if (tipodocin.is_ordine())
|
||||
reset(F_ANNO_ELAB);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (almost_one)
|
||||
filter << ')';
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -2119,8 +2139,8 @@ TElabora_mask::TElabora_mask(TDocumento_mask& main_mask)
|
||||
: TAutomask("ve0100b"), _main(&main_mask)
|
||||
{
|
||||
_myself = this;
|
||||
|
||||
set(F_ANNO_ELAB, _main->get(F_ANNO));
|
||||
|
||||
set(F_ANNO_ELAB, _main->get(F_ANNO));
|
||||
set(F_TIPOCF_ELAB, _main->get(F_TIPOCF));
|
||||
set(F_CODCF_ELAB, _main->get(F_CODCF));
|
||||
set(F_CODVAL_ELAB, _main->get(F_CODVAL));
|
||||
@ -2322,14 +2342,50 @@ bool TDocumento_mask::codcamp_handler( TMask_field& f, KEY key )
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/*
|
||||
bool TDocumento_mask::controeuro_handler( TMask_field& f, KEY key )
|
||||
{
|
||||
TMask & m = f.mask();
|
||||
|
||||
if (m.is_running() && key == K_SPACE)
|
||||
{
|
||||
const real cambio_euro = TCurrency::get_euro_change();
|
||||
const real val = cambio_euro / m.get_real(F_CAMBIO);
|
||||
|
||||
m.set(F_CAMBIO, val);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
*/
|
||||
|
||||
bool TDocumento_mask::codval_handler( TMask_field& f, KEY key )
|
||||
|
||||
{
|
||||
if (key == K_TAB && f.focusdirty())
|
||||
{
|
||||
TSheet_field& righe = f.mask().sfield(F_SHEET);
|
||||
{
|
||||
TMask& m = f.mask();
|
||||
|
||||
// Cerco un cambio per la data specificata, se non lo trovo lo invento
|
||||
TDate datacam = m.get(F_DATACAMBIO);
|
||||
if (!datacam.ok())
|
||||
{
|
||||
datacam = m.get_date(F_DATADOC);
|
||||
m.set(F_DATACAMBIO, datacam);
|
||||
}
|
||||
TExchange exc(f.get());
|
||||
exchange_type et;
|
||||
real cambio = exc.get_change(et); // Determino il cambio standard ed il "Contro-Euro"
|
||||
TString16 key;
|
||||
key.format("%-3s", (const char*)f.get()); key << datacam.string(ANSI);
|
||||
const real giornaliero = cache().get("CAM", key, "S4");
|
||||
if (!giornaliero.is_zero())
|
||||
cambio = giornaliero; // Ho trovato un cambio per il giorno!
|
||||
m.set(F_CAMBIO, cambio);
|
||||
m.set(F_CONTROEURO, et == _exchange_contro ? "X" : "");
|
||||
|
||||
TSheet_field& righe = m.sfield(F_SHEET);
|
||||
righe.force_update();
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
@ -372,7 +372,6 @@ bool codmag_handler( TMask_field& f, KEY key )
|
||||
|
||||
bool codmag_coll_handler( TMask_field& f, KEY key )
|
||||
{
|
||||
// if (f.to_check(key, TRUE))
|
||||
if (key == K_TAB && f.focusdirty())
|
||||
{
|
||||
TMask& row_mask = f.mask();
|
||||
@ -428,7 +427,6 @@ void upd_colli_peso_tara(TMask & m, TRectype & a)
|
||||
|
||||
bool pricerange_handler(TMask_field& f, KEY key )
|
||||
{
|
||||
|
||||
if (key == K_TAB && f.focusdirty())
|
||||
{
|
||||
TMask& row_mask = f.mask();
|
||||
@ -496,14 +494,9 @@ bool codart_handler(TMask_field& f, KEY key )
|
||||
condv.set_testa(&mask);
|
||||
condv.set_riga(&row_mask);
|
||||
|
||||
// TLocalisamfile & anamag = ((TEdit_field &) f).browse()->cursor()->file();
|
||||
// TLocalisamfile & umart = ((TEdit_field &) row_mask.field(FR_UMQTA)).browse()->cursor()->file();
|
||||
TLocalisamfile anamag(LF_ANAMAG);
|
||||
TLocalisamfile umart(LF_UMART);
|
||||
|
||||
// condv.set_anamag(anamag);
|
||||
// condv.set_umart(umart);
|
||||
|
||||
TString80 codart(f.get());
|
||||
anamag.setkey(1);
|
||||
anamag.put(ANAMAG_CODART, codart);
|
||||
@ -603,6 +596,28 @@ bool codart_handler(TMask_field& f, KEY key )
|
||||
|
||||
if (pos >= 0)
|
||||
iva_handler(row_mask.fld(pos), 0);
|
||||
|
||||
if (found)
|
||||
{
|
||||
TString16 caus(row_mask.get(FR_CAUS));
|
||||
|
||||
if (caus.empty())
|
||||
caus = mask.get(F_CAUSMAG);
|
||||
|
||||
if (caus.not_empty())
|
||||
{
|
||||
const TCausale_magazzino c(caus);
|
||||
|
||||
if (!c.movimenta_sospesi())
|
||||
{
|
||||
const TRectype & rec = cache().get(LF_ANAMAG, row_mask.get(FR_CODARTMAG));
|
||||
|
||||
if (rec.get_bool("SOSPESO"))
|
||||
return error_box("Articolo %s sospeso, quindi non movmentabile", (const char *)codart);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
if (key == K_F8 && !sh.sheet_mask().is_running())
|
||||
@ -629,12 +644,6 @@ bool codart_handler(TMask_field& f, KEY key )
|
||||
}
|
||||
if (explode_db && !sh.sheet_mask().is_running())
|
||||
{
|
||||
// TCodice_articolo a(f.get());
|
||||
// const TCodice_um um = row_mask.get(FR_UMQTA);
|
||||
// real qta_fin = row_mask.get_real(FR_QTA);
|
||||
// TQuantita qta(a, um, qta_fin);
|
||||
// qta.convert2umbase();
|
||||
// qta_fin = qta.val();
|
||||
TDocumento & doc = mask.doc();
|
||||
TRiga_documento & curr_row = doc[current_doc_row];
|
||||
|
||||
@ -699,6 +708,8 @@ bool codart_handler(TMask_field& f, KEY key )
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -706,6 +717,9 @@ bool codartmag_handler( TMask_field& f, KEY key )
|
||||
{
|
||||
bool to_check = key == K_TAB && f.focusdirty();
|
||||
TMask & m = f.mask();
|
||||
const TString codart = f.get();
|
||||
const bool artmag = codart.not_empty();
|
||||
TDocumento_mask& mask= (TDocumento_mask&) m.get_sheet()->mask();
|
||||
|
||||
if (!to_check)
|
||||
{
|
||||
@ -715,12 +729,10 @@ bool codartmag_handler( TMask_field& f, KEY key )
|
||||
}
|
||||
if (to_check)
|
||||
{
|
||||
const bool artmag = f.get().not_empty();
|
||||
|
||||
m.show(FR_UMQTA, artmag);
|
||||
m.show(FR_UMQTA2, !artmag);
|
||||
|
||||
TDocumento_mask& mask=(TDocumento_mask&)m.get_sheet()->mask();
|
||||
mask.update_giacenza();
|
||||
}
|
||||
return TRUE;
|
||||
@ -1147,6 +1159,13 @@ bool causmag_handler( TMask_field& f, KEY key )
|
||||
row_mask.set(FR_CODDEPC, mask.stddep(), TRUE);
|
||||
}
|
||||
}
|
||||
if (!c.movimenta_sospesi())
|
||||
{
|
||||
const TRectype & rec = cache().get(LF_ANAMAG, row_mask.get(FR_CODARTMAG));
|
||||
|
||||
if (rec.get_bool("SOSPESO"))
|
||||
return error_box("Articolo %s sospeso, quindi non movmentabile", (const char *)rec.get(ANAMAG_CODART));
|
||||
}
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
@ -1165,7 +1184,7 @@ bool sppr_handler( TMask_field& f, KEY key )
|
||||
TMask & mask = row_mask.get_sheet()->mask();
|
||||
TEdit_field & e = (TEdit_field &) f;
|
||||
TRelation * r = e.browse()->cursor()->relation();
|
||||
TString16 cod = r->curr().get("COD");
|
||||
const TString16 cod = r->curr().get("COD");
|
||||
TSpesa_prest sp(NULL, cod == "SPP" ? 'S' : 'P');
|
||||
if (sp.read(row_mask.get(FR_CODART)) == NOERR)
|
||||
{
|
||||
@ -1199,7 +1218,7 @@ bool sppr_handler( TMask_field& f, KEY key )
|
||||
{
|
||||
const real cambio = mask.get(F_CAMBIO);
|
||||
real prezzo = sp.prezzo();
|
||||
const TString16 doc_valuta(mask.get(F_CODVAL));
|
||||
const TString& doc_valuta = mask.get(F_CODVAL);
|
||||
const bool controeuro = mask.get_bool(F_CONTROEURO);
|
||||
|
||||
sppr_calc(sp, doc_valuta, cambio, prezzo, controeuro ? _exchange_contro : _exchange_base);
|
||||
|
65
xi/xiextend.h
Executable file
65
xi/xiextend.h
Executable file
@ -0,0 +1,65 @@
|
||||
/*******************************************************************************
|
||||
* Copyright 1991-1995 by ORCA Software, Inc. *
|
||||
* *
|
||||
* All rights reserved. May not be reproduced or distributed, in printed or *
|
||||
* electronic form, without permission of ORCA Software, Inc. *
|
||||
*******************************************************************************/
|
||||
|
||||
#ifdef WSWIN
|
||||
#define NOCOMM
|
||||
#define NOMINMAX
|
||||
#define NOGDICAPMASKS
|
||||
#define NOVIRTUALKEYCODES
|
||||
#define NOWINMESSAGES
|
||||
#define NOWINSTYLES
|
||||
#define NOSYSMETRICS
|
||||
#define NOMENUS
|
||||
#define NOICONS
|
||||
#define NOKEYSTATES
|
||||
#define NOSYSCOMMANDS
|
||||
#define NORASTEROPS
|
||||
#define NOSHOWWINDOW
|
||||
#define OEMRESOURCE
|
||||
#define NOATOM
|
||||
#define NOCLIPBOARD
|
||||
#define NOCOLOR
|
||||
#define NOCTLMGR
|
||||
#define NODRAWTEXT
|
||||
#define NOGDI
|
||||
#define NOKERNEL
|
||||
/* #define NOUSER */
|
||||
#define NOMB
|
||||
#define NOMEMMGR
|
||||
#define NOMETAFILE
|
||||
#define NOMINMAX
|
||||
#define NOMSG
|
||||
#define NOOPENFILE
|
||||
#define NOSCROLL
|
||||
#define NOSOUND
|
||||
#define NOTEXTMETRIC
|
||||
#define NOWH
|
||||
#define NOWINOFFSETS
|
||||
#define NOCOMM
|
||||
#define NOKANJI
|
||||
#define NOHELP
|
||||
#define NOPROFILER
|
||||
#define NODEFERWINDOWPOS
|
||||
#include <windows.h>
|
||||
#define INTERNAL
|
||||
#endif
|
||||
|
||||
#ifdef OSOS2
|
||||
#define INCL_DOS
|
||||
#define INCL_WIN
|
||||
#define INCL_GPI
|
||||
#define COLOR pm_COLOR
|
||||
#define UINT pm_UINT
|
||||
#define ULONG pm_ULONG
|
||||
#include <os2.h>
|
||||
#undef COLOR
|
||||
#undef UINT
|
||||
#undef ULONG
|
||||
#define INTERNAL
|
||||
#endif
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user