Modifiche sulla versione Linux dalla 2.1
git-svn-id: svn://10.65.10.50/trunk@12028 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
31ba4f8a78
commit
03e5cc6e93
@ -89,7 +89,7 @@ TMask_copy::TMask_copy(const TMask& m, const bool enable_catven) : TAutomask("ve
|
||||
|
||||
|
||||
|
||||
TCondizioni_vendita &app()
|
||||
static TCondizioni_vendita &app()
|
||||
{ // funzione che ritorna il riferimento alla classe principale dell'applicazione
|
||||
return (TCondizioni_vendita &)main_app();
|
||||
}
|
||||
|
@ -33,7 +33,8 @@ static void key_enable(TMask & m, short id, int key = 1)
|
||||
m.enable(id);
|
||||
}
|
||||
|
||||
class TRighe_condizioni_vendita: public TRelation_application {
|
||||
class TRighe_condizioni_vendita: public TRelation_application
|
||||
{
|
||||
TMask *_msk; // maschera principale
|
||||
TRelation *_rel; // relazione principale
|
||||
|
||||
@ -72,10 +73,7 @@ public:
|
||||
};
|
||||
|
||||
|
||||
|
||||
TRighe_condizioni_vendita &app() { // funzione che ritorna il riferimento alla classe principale dell'applicazione
|
||||
return (TRighe_condizioni_vendita &)main_app();
|
||||
}
|
||||
static TRighe_condizioni_vendita &app() { return (TRighe_condizioni_vendita &)main_app(); }
|
||||
|
||||
|
||||
|
||||
@ -221,34 +219,45 @@ bool TRighe_condizioni_vendita::user_destroy() {
|
||||
|
||||
void TRighe_condizioni_vendita::hide_and_show_codriga() {
|
||||
TMask *_msk= app()._msk; // prende il puntatore alla maschera principale dell'applicazione
|
||||
if (_msk->query_mode()) { // se la maschera è in modo query procede con i controlli...
|
||||
if (_msk->query_mode())
|
||||
{ // se la maschera è in modo query procede con i controlli...
|
||||
short id_campi_1[4]= { F_R_CODRIGA_A, F_R_CODRIGA_G, F_R_CODRIGA_S, F_R_CODRIGA_R }; // vettore degli identificatori dei tre campi CODRIGA in mutua esclusione
|
||||
short id_campi_2[4]= { F_R_DESRIGA_A, F_R_DESRIGA_G, F_R_DESRIGA_S, F_R_DESRIGA_R }; // vettore degli identificatori dei tre campi CODRIGA in mutua esclusione
|
||||
char tag_campi[4]= { 'A', 'G', 'S', 'R' }; // vettore dei tag di TIPORIGA per i tre campi CODRIGA in mutua esclusione
|
||||
bool &_um= app()._um; // prende il riferimento al booleano di abilitazione locale delle unità di misura
|
||||
TString &_rcondven= app()._rcondven; // prende il riferimento alla stringa di tipo di archivio
|
||||
char tag_campo= toupper(_msk->get(F_R_TIPORIGA)[0]); // prende il tag del campo da abilitare in TIPORIGA
|
||||
for (int i=0; i<4; i++) { // ciclo sui quattro campi CODRIGA
|
||||
if (tag_campo == tag_campi[i]) { // il campo indicato con il tag viene reso visibile
|
||||
|
||||
for (int i=0; i<4; i++)
|
||||
{ // ciclo sui quattro campi CODRIGA
|
||||
if (tag_campo == tag_campi[i])
|
||||
{ // il campo indicato con il tag viene reso visibile
|
||||
key_show(*_msk, id_campi_1[i]);
|
||||
_msk->show(id_campi_2[i]);
|
||||
} else { // i campi non corrispondenti al tag vengono resi invisibili
|
||||
}
|
||||
else
|
||||
{ // i campi non corrispondenti al tag vengono resi invisibili
|
||||
key_hide(*_msk, id_campi_1[i]);
|
||||
_msk->hide(id_campi_2[i]);
|
||||
}
|
||||
}
|
||||
if (_um && (tag_campo=='A')) { key_enable(*_msk, F_R_UM); } // se la gest. delle u.m. è abilitata, il campo viene attivato se la riga è un articolo...
|
||||
else { key_disable(*_msk, F_R_UM); } // ...altrimenti viene disattivato
|
||||
if (_um && (tag_campo=='A'))
|
||||
key_enable(*_msk, F_R_UM); // se la gest. delle u.m. è abilitata, il campo viene attivato se la riga è un articolo...
|
||||
else
|
||||
key_disable(*_msk, F_R_UM); // ...altrimenti viene disattivato
|
||||
}
|
||||
}
|
||||
|
||||
bool TRighe_condizioni_vendita::handle_tiporiga(TMask_field &fld, KEY k) {
|
||||
if (k==K_SPACE) hide_and_show_codriga(); // invoca la procedura di controllo della mutua esclusione dei tre campi CODRIGA
|
||||
bool TRighe_condizioni_vendita::handle_tiporiga(TMask_field &fld, KEY k)
|
||||
{
|
||||
if (k==K_SPACE)
|
||||
hide_and_show_codriga(); // invoca la procedura di controllo della mutua esclusione dei tre campi CODRIGA
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TRighe_condizioni_vendita::handle_cod(TMask_field &fld, KEY k) {
|
||||
if ((k==K_TAB) && fld.get().not_empty()) {
|
||||
bool TRighe_condizioni_vendita::handle_cod(TMask_field &fld, KEY k)
|
||||
{
|
||||
if ((k==K_TAB) && fld.get().not_empty())
|
||||
{
|
||||
bool &_gest_um= app()._gest_um; // prende il riferimento al booleano di abilitazione delle unità di misura
|
||||
bool &_gest_so= app()._gest_so; // prende il riferimento al booleano di abilitazione degli sconti/omaggi
|
||||
bool &_gest_sca= app()._gest_sca; // prende il riferimento al booleano di abilitazione degli scaglioni
|
||||
@ -257,36 +266,42 @@ bool TRighe_condizioni_vendita::handle_cod(TMask_field &fld, KEY k) {
|
||||
TMask *_msk= app()._msk; // prende il puntatore alla maschera principale dell'applicazione
|
||||
TLocalisamfile condv(LF_CONDV); // apre il file della testata (condizioni di vendita)
|
||||
condv.put("TIPO", _rcondven); // riempie il campo "TIPO"
|
||||
switch (_rcondven[0]) {
|
||||
case 'L': // riempie il resto della chiave dei listini
|
||||
condv.put("CATVEN", _msk->get(F_R_L_CATVEN));
|
||||
condv.put("COD", _msk->get(F_R_L_COD));
|
||||
break;
|
||||
case 'C': // riempie il resto della chiave dei contratti
|
||||
condv.put("TIPOCF", _msk->get(F_R_C_TIPOCF));
|
||||
condv.put("CODCF", _msk->get(F_R_C_CODCF));
|
||||
condv.put("COD", _msk->get(F_R_C_COD));
|
||||
break;
|
||||
case 'O': // riempie il resto della chiave delle offerte
|
||||
condv.put("COD", _msk->get(F_R_O_COD));
|
||||
break;
|
||||
|
||||
switch (_rcondven[0])
|
||||
{
|
||||
case 'L': // riempie il resto della chiave dei listini
|
||||
condv.put("CATVEN", _msk->get(F_R_L_CATVEN));
|
||||
condv.put("COD", _msk->get(F_R_L_COD));
|
||||
break;
|
||||
case 'C': // riempie il resto della chiave dei contratti
|
||||
condv.put("TIPOCF", _msk->get(F_R_C_TIPOCF));
|
||||
condv.put("CODCF", _msk->get(F_R_C_CODCF));
|
||||
condv.put("COD", _msk->get(F_R_C_COD));
|
||||
break;
|
||||
case 'O': // riempie il resto della chiave delle offerte
|
||||
condv.put("COD", _msk->get(F_R_O_COD));
|
||||
break;
|
||||
}
|
||||
if (condv.read()==NOERR) { // se la lettura è andata a buon fine abilita/disabilita i campi della maschera in base ai booleani della testata
|
||||
TString valuta(condv.get("CODVAL"));
|
||||
TString seqric(condv.get("SEQRIC"));
|
||||
if (condv.read()==NOERR)
|
||||
{ // se la lettura è andata a buon fine abilita/disabilita i campi della maschera in base ai booleani della testata
|
||||
const TString valuta(condv.get("CODVAL"));
|
||||
const TString seqric(condv.get("SEQRIC"));
|
||||
TToken_string codes, values;
|
||||
|
||||
const bool imp_lordi = condv.get_bool("IMPLORDI");
|
||||
app()._codval = valuta;
|
||||
if (_gest_um) _um= condv.get_bool("GESTUM"); // legge lo stato di abilitazione della gestione delle unità di misura
|
||||
if (_gest_um)
|
||||
_um = condv.get_bool("GESTUM"); // legge lo stato di abilitazione della gestione delle unità di misura
|
||||
_gest_sca &= condv.get_bool("GESTSCAGL");
|
||||
hide_and_show_codriga(); // lancia la funzione che si occupa di abilitare/disabilitare il campo "unità di misura"
|
||||
if (_gest_sca) {
|
||||
if (_gest_sca)
|
||||
{
|
||||
if (_msk->query_mode())
|
||||
key_enable(*_msk, F_R_NSCAGL); // abilita il campo "numero scaglione"
|
||||
_msk->enable(F_R_QLIM); // abilita il campo "quantità limite scaglione"
|
||||
((TReal_field&)_msk->field(F_R_QLIM)).set_decimals(condv.get_int("DECIMALI")); // E ne setta il numero di decimals
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
if (_msk->query_mode())
|
||||
key_disable(*_msk, F_R_NSCAGL); // disabilita il campo "numero scaglione"
|
||||
_msk->disable(F_R_QLIM); // disabilita il campo "quantità limite scaglione"
|
||||
@ -320,11 +335,12 @@ bool TRighe_condizioni_vendita::handle_cod(TMask_field &fld, KEY k) {
|
||||
tiporiga.replace_items(codes,values); // Sostituisce gli items del list box del tipo riga in base a cio' che e' abilitato in testata
|
||||
}
|
||||
return TRUE;
|
||||
} else {
|
||||
error_box("Non esiste una testata corrispondente alla chiave specificata");
|
||||
return FALSE;
|
||||
}
|
||||
} else return TRUE;
|
||||
else
|
||||
return error_box("Non esiste una testata corrispondente alla chiave specificata");
|
||||
}
|
||||
else
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
@ -11,11 +11,11 @@
|
||||
#include "velib.h"
|
||||
#include "ve2400.h"
|
||||
|
||||
#include "..\cg\cglib01.h"
|
||||
#include "..\mg\mglib.h"
|
||||
#include "..\mg\stomag.h"
|
||||
#include "..\mg\anamag.h"
|
||||
#include "..\mg\codcorr.h"
|
||||
#include "../cg/cglib01.h"
|
||||
#include "../mg/mglib.h"
|
||||
#include "../mg/stomag.h"
|
||||
#include "../mg/anamag.h"
|
||||
#include "../mg/codcorr.h"
|
||||
|
||||
// maschera dell'anagrafica di magazzino
|
||||
class TMask_anamag: public TMask {
|
||||
@ -697,29 +697,33 @@ bool TMask_anamag::handle_sheet_um(TMask_field &fld, KEY k)
|
||||
return error_box("Le unità di misura devono essere diverse tra loro");
|
||||
}
|
||||
}
|
||||
if (!m.um_principale().blank() && m.um_principale()!=f.cell(0,f.cid2index(FS_CODUM))) {
|
||||
for (int i= 0; i<f.items(); i++)
|
||||
if (!m.um_principale().blank() && m.um_principale()!=f.cell(0,f.cid2index(FS_CODUM)))
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i= 0; i<f.items(); i++)
|
||||
{
|
||||
if (m.um_principale()==f.cell(i,f.cid2index(FS_CODUM)))
|
||||
break;
|
||||
}
|
||||
if (i>=f.items()) {
|
||||
return error_box("L'unità di misura '%s' deve essere presente in tabella",(const char *)m.um_principale());
|
||||
}
|
||||
if (i>=f.items())
|
||||
return error_box("L'unità di misura '%s' deve essere presente in tabella",(const char *)m.um_principale());
|
||||
}
|
||||
}
|
||||
else if (k==K_SPACE) {
|
||||
m.um_principale()=f.cell(0,f.cid2index(FS_CODUM));
|
||||
}
|
||||
else
|
||||
if (k==K_SPACE)
|
||||
m.um_principale()=f.cell(0,f.cid2index(FS_CODUM));
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TMask_anamag::notify_sheet_um(TSheet_field &fld_um, int r, KEY k)
|
||||
{
|
||||
if (k == K_TAB) {
|
||||
if (k == K_TAB)
|
||||
{
|
||||
fld_um.sheet_mask().enable(DLG_DELREC, r > 0);
|
||||
if (r == 0) {
|
||||
if (r == 0)
|
||||
{
|
||||
if (fld_um.items() == 0)
|
||||
((TToken_string &)fld_um.row(0)) = "|1"; // aggiunge una riga allo sheet
|
||||
else
|
||||
@ -841,7 +845,9 @@ int TMask_anamag::add_totali_storico(TString & codmag)
|
||||
{
|
||||
TSheet_field &s =(TSheet_field &)field(F_SHEETSTOMAG);
|
||||
bool need_rigatotali(TRUE);
|
||||
for (int r=0 ; r< s.items() && codmag>=s.cell(r,s.cid2index(F_STOCODMAG)); r++)
|
||||
int r;
|
||||
|
||||
for (r=0 ; r < s.items() && codmag>=s.cell(r,s.cid2index(F_STOCODMAG)); r++)
|
||||
{
|
||||
if (*s.cell(r,s.cid2index(F_STOTIPORIGA))==SIMBOLO_TOTALI
|
||||
&& codmag==s.cell(r,s.cid2index(F_STOCODMAG)))
|
||||
@ -912,17 +918,15 @@ void TMask_anamag::update_totali_storico(TString & codmag)
|
||||
|
||||
bool TMask_anamag::remove_totali_storico(TString & codmag)
|
||||
{
|
||||
TSheet_field &s =(TSheet_field &)field(F_SHEETSTOMAG);
|
||||
|
||||
bool found_some(FALSE);
|
||||
if (codmag==" ")
|
||||
if (codmag.blank())
|
||||
return FALSE;
|
||||
|
||||
for (int r=0 ;
|
||||
!found_some && r< s.items()-1
|
||||
&& !(*s.cell(r,s.cid2index(F_STOTIPORIGA))==SIMBOLO_TOTALI
|
||||
&& codmag==s.cell(r,s.cid2index(F_STOCODMAG)));
|
||||
r++)
|
||||
TSheet_field &s =(TSheet_field &)field(F_SHEETSTOMAG);
|
||||
bool found_some(FALSE);
|
||||
int r;
|
||||
|
||||
for (r=0 ; !found_some && r< s.items()-1 && !(*s.cell(r,s.cid2index(F_STOTIPORIGA))==SIMBOLO_TOTALI
|
||||
&& codmag==s.cell(r,s.cid2index(F_STOCODMAG))); r++)
|
||||
{
|
||||
if (*s.cell(r,s.cid2index(F_STOTIPORIGA))!=SIMBOLO_TOTALI
|
||||
&& codmag==s.cell(r,s.cid2index(F_STOCODMAG)))
|
||||
@ -1066,7 +1070,7 @@ bool TMask_anamag::notify_sheet_sto(TSheet_field &s, int r, KEY k)
|
||||
{
|
||||
static TString16 oldcodmag,newcodmag,oldanno,newanno;
|
||||
TMask_anamag & m=(TMask_anamag &)s.mask();
|
||||
bool need_rigatotali=TRUE;
|
||||
|
||||
switch (k)
|
||||
{
|
||||
case K_DEL:
|
||||
@ -1131,7 +1135,7 @@ bool TMask_anamag::notify_sheet_sto(TSheet_field &s, int r, KEY k)
|
||||
r--;
|
||||
}
|
||||
m.add_totali_storico(newcodmag);
|
||||
TSheet_field & s_um=(TSheet_field & )s.mask().field(F_SHEETUM);
|
||||
// TSheet_field & s_um=(TSheet_field & )s.mask().field(F_SHEETUM); // qui verificare
|
||||
s.force_update();
|
||||
}
|
||||
break;
|
||||
@ -1158,8 +1162,10 @@ bool TMask_anamag::handle_sheetstomag(TMask_field &fld, KEY k)
|
||||
{
|
||||
if (!m.check_totali_storico())
|
||||
return FALSE;
|
||||
TAssoc_array v; // istanzia l'hash table per il controllo di univocità
|
||||
for (int i= 0; i< items; i++)
|
||||
TAssoc_array v; // istanzia l'hash table per il controllo di univocitˆ
|
||||
int i;
|
||||
|
||||
for (i= 0; i< items; i++)
|
||||
{
|
||||
if (*f.cell(i,f.cid2index(F_STOTIPORIGA))!=SIMBOLO_TOTALI)
|
||||
{
|
||||
@ -1358,8 +1364,11 @@ void TMask_anamag::ricalcola_giacenze()
|
||||
{
|
||||
real fc(1.0);
|
||||
TSheet_field & f=(TSheet_field &)field(F_SHEETUM);
|
||||
if (!um_principale().blank() && um_principale()!=f.cell(0,f.cid2index(FS_CODUM))) {
|
||||
for (int i= 0; i<f.items(); i++)
|
||||
if (!um_principale().blank() && um_principale()!=f.cell(0,f.cid2index(FS_CODUM)))
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i= 0; i<f.items(); i++)
|
||||
{
|
||||
if (um_principale()==f.cell(i,f.cid2index(FS_CODUM)))
|
||||
break;
|
||||
@ -1396,16 +1405,6 @@ void TMask_anamag::ricalcola_giacenze()
|
||||
mag.put(MAG_PRODCOMP,mag.get_real(MAG_PRODCOMP)*fc);
|
||||
mag.put(MAG_PRODFIN,mag.get_real(MAG_PRODFIN)*fc);
|
||||
mag.put(MAG_SCORTAMIN,mag.get_real(MAG_SCORTAMIN)*fc);
|
||||
// i valori non vanno aggiornati !
|
||||
/*mag.put(MAG_VALACQ,mag.get_real(MAG_VALACQ)*fc);
|
||||
mag.put(MAG_VALENT,mag.get_real(MAG_VALENT)*fc);
|
||||
mag.put(MAG_VALVEN,mag.get_real(MAG_VALVEN)*fc);
|
||||
mag.put(MAG_VALUSC,mag.get_real(MAG_VALUSC)*fc);
|
||||
mag.put(MAG_VALORDC,mag.get_real(MAG_VALORDC)*fc);
|
||||
mag.put(MAG_VALORDF,mag.get_real(MAG_VALORDF)*fc);
|
||||
mag.put(MAG_VALRIM,mag.get_real(MAG_VALRIM)*fc);
|
||||
mag.put(MAG_VALSCARTI,mag.get_real(MAG_VALSCARTI)*fc); */
|
||||
|
||||
mag.rewrite();
|
||||
mag.next();
|
||||
}
|
||||
@ -1421,7 +1420,8 @@ void TMask_anamag::ricalcola_giacenze()
|
||||
stomag.rewrite();
|
||||
stomag.next();
|
||||
}
|
||||
} while (annoes=esercizi_contabili().next(annoes));
|
||||
}
|
||||
while ((annoes=esercizi_contabili().next(annoes)) > 0); // qui verificare
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user