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:
alex 2004-04-28 22:04:10 +00:00
parent 31ba4f8a78
commit 03e5cc6e93
3 changed files with 99 additions and 83 deletions

View File

@ -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();
}

View File

@ -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;
}

View File

@ -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;
}