From e3f6916b0d5ca370bf4290e3068d0c4d02b9cd18 Mon Sep 17 00:00:00 2001 From: luca Date: Wed, 17 Mar 2004 14:07:27 +0000 Subject: [PATCH] Patch level :2.1 712 Files correlati :ve2.exe ve2200c.msk Ricompilazione Demo : [ ] Commento : http://www.aga.it/mantis/bug_view_advanced_page.php?bug_id=0000077#bugnotes git-svn-id: svn://10.65.10.50/trunk@11880 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ve/ve2200.cpp | 175 ++++++++++++++++++++++++++++++++----------------- ve/ve2200c.uml | 2 +- 2 files changed, 115 insertions(+), 62 deletions(-) diff --git a/ve/ve2200.cpp b/ve/ve2200.cpp index 37955fd04..a46e7728b 100755 --- a/ve/ve2200.cpp +++ b/ve/ve2200.cpp @@ -10,6 +10,9 @@ #include "ve2200.h" #include "ve2300x.h" // include anche il file dei campi della maschera delle righe #include "veconf.h" +#include "condv.h" +#include "rcondv.h" +#include "../mg/umart.h" // nome dell'applicazione di gestione delle righe #define RCONDVEN_APP "ve2 -2 " @@ -26,7 +29,8 @@ static void key_disable(TMask & m, short id, int key = 1) m.disable(id); } -class TCondizioni_vendita: public TRelation_application { +class TCondizioni_vendita: public TRelation_application +{ TMask *_msk; // maschera principale TRelation *_rel; // relazione principale @@ -85,7 +89,8 @@ TMask_copy::TMask_copy(const TMask& m, const bool enable_catven) : TAutomask("ve -TCondizioni_vendita &app() { // funzione che ritorna il riferimento alla classe principale dell'applicazione +TCondizioni_vendita &app() +{ // funzione che ritorna il riferimento alla classe principale dell'applicazione return (TCondizioni_vendita &)main_app(); } @@ -241,13 +246,15 @@ bool TCondizioni_vendita::user_create() return gotcha; } -bool TCondizioni_vendita::user_destroy() { +bool TCondizioni_vendita::user_destroy() +{ delete _rel; delete _msk; return TRUE; } -bool TCondizioni_vendita::handle_mask(TMask &m, KEY k) { +bool TCondizioni_vendita::handle_mask(TMask &m, KEY k) +{ if (k==K_F5) { // se viene premuto F5 o selezionato il tasto "Righe" viene lanciata l'applicazione di editing TString &_condven= app()._condven; // prende l'indicatore del tipo di archivio bool &_codlis_catven= app()._codlis_catven; // prende il booleano di attivazione del campo CATVEN @@ -282,8 +289,10 @@ bool TCondizioni_vendita::handle_mask(TMask &m, KEY k) { return TRUE; } -bool TCondizioni_vendita::handle_datacam(TMask_field &fld, KEY k) { - if (k==K_TAB) { // ad ogni perdita di fuoco viene tentato un accoppiamento tra valuta e data per ottenere il cambio preciso +bool TCondizioni_vendita::handle_datacam(TMask_field &fld, KEY k) +{ + if (k==K_TAB) + { // ad ogni perdita di fuoco viene tentato un accoppiamento tra valuta e data per ottenere il cambio preciso TString datacam(fld.get()); // legge la data di cambio nel campo corrente if (datacam.not_empty()) { TMask &m= fld.mask(); // prende la maschera principale @@ -298,139 +307,183 @@ bool TCondizioni_vendita::handle_datacam(TMask_field &fld, KEY k) { return TRUE; } -bool TCondizioni_vendita::handle_valfin(TMask_field &fld, KEY k) { - if (k==K_TAB) { - if (fld.get().not_empty()) { +bool TCondizioni_vendita::handle_valfin(TMask_field &fld, KEY k) +{ + if (k==K_TAB) + { + if (fld.get().not_empty()) + { TMask &m= fld.mask(); // prende la maschera principale - if (m.get(F_VALIN).not_empty()) { + if (m.get(F_VALIN).not_empty()) + { TDate valfin(fld.get()); // prende la data di fine validitā TDate valin(m.get(F_VALIN)); // prende la data di inizio validitā - if (valfinlfile(); // prende il file principale della relazione - if (_condven != "C") f.zero("TIPOCF"); // se non si sta lavorando sui contratti il campo TIPOCF deve essere svuotato sul file + if (_condven != "C") + f.zero("TIPOCF"); // se non si sta lavorando sui contratti il campo TIPOCF deve essere svuotato sul file _rel->write(); // invoca la scrittura della relazione return (_rel->status()); // ritorna lo stato della relazione } -int TCondizioni_vendita::rewrite(const TMask &m) { +int TCondizioni_vendita::rewrite(const TMask &m) +{ m.autosave(*_rel); // scrive il contenuto della maschera nel record della relazione TLocalisamfile &f= _rel->lfile(); // prende il file principale della relazione - if (_condven != "C") f.zero("TIPOCF"); // se non si sta lavorando sui contratti il campo TIPOCF deve essere svuotato sul file + if (_condven != "C") + f.zero("TIPOCF"); // se non si sta lavorando sui contratti il campo TIPOCF deve essere svuotato sul file _rel->rewrite(); // invoca la riscrittura della relazione return (_rel->status()); // ritorna lo stato della relazione } -bool TCondizioni_vendita::remove() { +bool TCondizioni_vendita::remove() +{ TLocalisamfile &condv= _rel->lfile(); // prende il file della testata dalla relazione principale TLocalisamfile rcondv(LF_RCONDV); // apre il file delle righe per ottenenre il record corrente TRectype delrec(rcondv.curr()); // istanzia il record basato sul file delle righe, da usare come campione delrec.zero(); // svuota il record campione - delrec.put("TIPO", _condven); // setta il tipo di archivio - delrec.put("COD", condv.get("COD")); // setta il codice della testata - if ((_condven=="L") && _codlis_catven) delrec.put("CATVEN", condv.get("CATVEN")); // setta la categoria di vendita se č abilitata e siamo nei listini - if (_condven=="C") { - delrec.put("TIPOCF", condv.get("TIPOCF")); // setta i dati del cliente/fornitore se siamo nei contratti - delrec.put("CODCF", condv.get("CODCF")); + delrec.put(RCONDV_TIPO, _condven); // setta il tipo di archivio + delrec.put(RCONDV_COD, condv.get("COD")); // setta il codice della testata + if ((_condven=="L") && _codlis_catven) + delrec.put(RCONDV_CATVEN, condv.get(CONDV_CATVEN)); // setta la categoria di vendita se č abilitata e siamo nei listini + if (_condven=="C") + { + delrec.put(RCONDV_TIPOCF, condv.get(CONDV_TIPOCF)); // setta i dati del cliente/fornitore se siamo nei contratti + delrec.put(RCONDV_CODCF, condv.get(CONDV_CODCF)); } TRelation delrel(LF_RCONDV); // istanzia una relazione sulle righe TCursor delcur(&delrel, "", 1, &delrec, &delrec); // istanzia il cursore di cancellazione sulla relazione delle righe long n= delcur.items(); // legge il numero di elementi del cursore delcur.freeze(); // congela il cursore al suo stato attuale bool proceed= FALSE; // istanzia il booleano di conferma alla cancellazione - if (n==1) proceed= yesno_box("Esiste una riga collegata a questa testata: verrā anch'essa cancellata. Procedo?"); // viene richiesta conferma alla cancellazione della riga... - if (n>1) proceed= yesno_box("Esistono %ld righe collegate a questa testata: verranno anch'esse cancellate. Procedo?", n); // ...o delle righe - if (proceed) { // se si conferma le righe vengono cancellate + if (n==1) + proceed = yesno_box("Esiste una riga collegata a questa testata: verrā anch'essa cancellata. Procedo?"); // viene richiesta conferma alla cancellazione della riga... + if (n>1) + proceed = yesno_box("Esistono %ld righe collegate a questa testata: verranno anch'esse cancellate. Procedo?", n); // ...o delle righe + if (proceed) + { // se si conferma le righe vengono cancellate TLocalisamfile &delfile= delcur.file(); // prende riferimento al file delle righe dal cursore - for (delcur=0; delcur.pos()