Patch level :
Files correlati : Ricompilazione Demo : [ ] Commento : GF20080 E' necessario prevedere una voce di menù, nella gestione degli effetti attivi che permetta di togliere i flags di contabilizzato agli effetti presenti nella distinta che si vuole ricontabilizzare ( nella pagina parametri della voce di menù aggiornamento effetti). Ciò allo scopo di poter ricontabilizzare la distinta attiva in questione. Sarebbe utile che la procedura segnalasse anche il n° di movimento da eliminare in prima nota relativo quella distinta che risulta già contabilizzata e che si vuole ricontabilizzare e che indicasse inoltre se eventualmente il movimento è già stato, o meno, stampato su bollato. GF20082 I due tasti di scorrimento sul primo e ultimo record non funzionano. git-svn-id: svn://10.65.10.50/trunk@11430 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
07150cd475
commit
c5aae552a6
@ -33,6 +33,7 @@ protected:
|
|||||||
virtual bool remove();
|
virtual bool remove();
|
||||||
virtual TMask* get_mask(int mode) {return _msk;}
|
virtual TMask* get_mask(int mode) {return _msk;}
|
||||||
virtual bool changing_mask(int mode) {return FALSE;}
|
virtual bool changing_mask(int mode) {return FALSE;}
|
||||||
|
virtual bool has_filtered_cursor() const { return true; }
|
||||||
static bool tipodist_handler(TMask_field& f, KEY k);
|
static bool tipodist_handler(TMask_field& f, KEY k);
|
||||||
static bool importo_handler(TMask_field& f, KEY k);
|
static bool importo_handler(TMask_field& f, KEY k);
|
||||||
static bool imp_aut_handler(TMask_field& f, KEY k);
|
static bool imp_aut_handler(TMask_field& f, KEY k);
|
||||||
@ -42,6 +43,7 @@ protected:
|
|||||||
static bool annulla_handler(TMask_field& f, KEY k);
|
static bool annulla_handler(TMask_field& f, KEY k);
|
||||||
static bool data_handler(TMask_field& f, KEY k);
|
static bool data_handler(TMask_field& f, KEY k);
|
||||||
static bool ordina_handler(TMask_field& f, KEY k);
|
static bool ordina_handler(TMask_field& f, KEY k);
|
||||||
|
static bool uncontabilize_handler(TMask_field& f, KEY k);
|
||||||
static void calcola_totale();
|
static void calcola_totale();
|
||||||
static void calcola();
|
static void calcola();
|
||||||
static void aggiungi();
|
static void aggiungi();
|
||||||
@ -78,29 +80,33 @@ void TVariazione_distinte::init_query_mode(TMask&)
|
|||||||
_msk->reset(F_TOTIMP);
|
_msk->reset(F_TOTIMP);
|
||||||
_msk->enable(F_TIPOPAG);
|
_msk->enable(F_TIPOPAG);
|
||||||
_msk->enable(F_TIPOCF);
|
_msk->enable(F_TIPOCF);
|
||||||
|
_msk->hide(F_UNCONTABIL);
|
||||||
}
|
}
|
||||||
|
|
||||||
// quando si va in insert mode resetta i campi della maschera relativi
|
// quando si va in insert mode resetta i campi della maschera relativi
|
||||||
// ai totali, abilita i campi relativi alla valuta e disabilta i campi
|
// ai totali, abilita i campi relativi alla valuta e disabilta i campi
|
||||||
// relativi alla chiave di ricerca
|
// relativi alla chiave di ricerca
|
||||||
void TVariazione_distinte::init_insert_mode(TMask&)
|
void TVariazione_distinte::init_insert_mode(TMask& m)
|
||||||
{
|
{
|
||||||
_msk->reset(F_TOTIMP);
|
m.reset(F_TOTIMP);
|
||||||
_msk->enable(F_CODVAL);
|
m.enable(F_CODVAL);
|
||||||
_msk->disable(F_NUMBER);
|
m.disable(F_NUMBER);
|
||||||
_msk->disable(F_TIPODIST);
|
m.disable(F_TIPODIST);
|
||||||
_msk->enable(F_TIPOPAG);
|
m.enable(F_TIPOPAG);
|
||||||
_msk->enable(F_TIPOCF);
|
m.enable(F_TIPOCF);
|
||||||
}
|
}
|
||||||
|
|
||||||
// quando si va in modify mode disabilta i campi relativi alla chiave
|
// quando si va in modify mode disabilta i campi relativi alla chiave
|
||||||
// di ricerca
|
// di ricerca
|
||||||
void TVariazione_distinte::init_modify_mode(TMask&)
|
void TVariazione_distinte::init_modify_mode(TMask& m)
|
||||||
{
|
{
|
||||||
_msk->disable(F_NUMBER);
|
m.disable(F_NUMBER);
|
||||||
_msk->disable(F_TIPODIST);
|
m.disable(F_TIPODIST);
|
||||||
_msk->disable(F_TIPOPAG);
|
m.disable(F_TIPOPAG);
|
||||||
_msk->disable(F_TIPOCF);
|
m.disable(F_TIPOCF);
|
||||||
|
|
||||||
|
const bool cont = _distinta->contabilizzata();
|
||||||
|
m.show(F_UNCONTABIL, cont);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ritorna il prossimo numero di distinta valido
|
// ritorna il prossimo numero di distinta valido
|
||||||
@ -190,7 +196,7 @@ int TVariazione_distinte::read(TMask& m)
|
|||||||
if (err == NOERR)
|
if (err == NOERR)
|
||||||
{
|
{
|
||||||
//resetto l'array che contiene gli effetti nella distinta
|
//resetto l'array che contiene gli effetti nella distinta
|
||||||
err = _distinta->reset();
|
_distinta->reset();
|
||||||
// legge la distinta dal record corrente della relazione
|
// legge la distinta dal record corrente della relazione
|
||||||
err = _distinta->read(_rel->curr());
|
err = _distinta->read(_rel->curr());
|
||||||
if (err == NOERR)
|
if (err == NOERR)
|
||||||
@ -394,6 +400,7 @@ bool TVariazione_distinte::user_create()
|
|||||||
set_search_field(F_NUMBER);//setto il campo di ricerca della distinta
|
set_search_field(F_NUMBER);//setto il campo di ricerca della distinta
|
||||||
_msk->set_handler(F_TIPODIST, tipodist_handler);
|
_msk->set_handler(F_TIPODIST, tipodist_handler);
|
||||||
_msk->set_handler(F_IMPBUTTON, importo_handler);
|
_msk->set_handler(F_IMPBUTTON, importo_handler);
|
||||||
|
_msk->set_handler(F_UNCONTABIL, uncontabilize_handler);
|
||||||
_m2->set_handler(F_TOTIMPDIST, imp_aut_handler);
|
_m2->set_handler(F_TOTIMPDIST, imp_aut_handler);
|
||||||
_m2->set_handler(DLG_OK, conferma_handler);
|
_m2->set_handler(DLG_OK, conferma_handler);
|
||||||
_m2->set_handler(DLG_CANCEL, annulla_handler);
|
_m2->set_handler(DLG_CANCEL, annulla_handler);
|
||||||
@ -778,6 +785,46 @@ bool TVariazione_distinte::ordina_handler(TMask_field& f, KEY k)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool TVariazione_distinte::uncontabilize_handler(TMask_field& f, KEY k)
|
||||||
|
{
|
||||||
|
if (k == K_SPACE)
|
||||||
|
{
|
||||||
|
TMask& m = f.mask();
|
||||||
|
const char tipodist = m.get(F_TIPODIST)[0];
|
||||||
|
const long numdist = m.get_long(F_NUMBER);
|
||||||
|
if (yesno_box(TR("Si desidera annullare la contabilizzazione della distinta %ld?"), numdist))
|
||||||
|
{
|
||||||
|
TRelation rel(LF_EFFETTI);
|
||||||
|
TRectype& rec = rel.curr();
|
||||||
|
rec.put(EFF_TIPODIST, tipodist);
|
||||||
|
rec.put(EFF_NDIST,numdist);
|
||||||
|
TCursor cur(&rel, "", 4, &rec, &rec);
|
||||||
|
const TRecnotype items = cur.items();
|
||||||
|
cur.freeze();
|
||||||
|
|
||||||
|
TAssoc_array movs;
|
||||||
|
for (cur = 0; cur.pos() < items; ++cur)
|
||||||
|
{
|
||||||
|
movs.add(rec.get(EFF_NUMREG));
|
||||||
|
rec.zero(EFF_EFFCONT);
|
||||||
|
rec.zero(EFF_NUMREG);
|
||||||
|
rel.rewrite();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (movs.items() > 0)
|
||||||
|
{
|
||||||
|
TString msg;
|
||||||
|
msg = TR("E' necessario cancellare i seguenti movimenti contabili:\n");
|
||||||
|
FOR_EACH_ASSOC_OBJECT(movs, hash, key, obj)
|
||||||
|
msg << key << ' ';
|
||||||
|
warning_box(msg);
|
||||||
|
}
|
||||||
|
m.stop_run(K_ESC);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
// Metodo che calcola i totali relativi alla distinta (totale in
|
// Metodo che calcola i totali relativi alla distinta (totale in
|
||||||
// lire e totale in valuta(se presente)) nella maschera principale
|
// lire e totale in valuta(se presente)) nella maschera principale
|
||||||
void TVariazione_distinte::calcola_totale()
|
void TVariazione_distinte::calcola_totale()
|
||||||
|
@ -18,7 +18,8 @@
|
|||||||
#define F_SHEET_RIBA 113
|
#define F_SHEET_RIBA 113
|
||||||
#define F_NPROGTR 114
|
#define F_NPROGTR 114
|
||||||
#define F_TIPOCF 115
|
#define F_TIPOCF 115
|
||||||
|
#define F_UNCONTABIL 116
|
||||||
|
|
||||||
// Identificatori campi per lo spreadsheet di selezione RiBa da aggiungere
|
// Identificatori campi per lo spreadsheet di selezione RiBa da aggiungere
|
||||||
// alla distinta (ef0300c.uml)
|
// alla distinta (ef0300c.uml)
|
||||||
#define F_DADATA 201
|
#define F_DADATA 201
|
||||||
|
@ -1,8 +1,15 @@
|
|||||||
// DEFINIZIONE MASCHERA PRINCIPALE PER LA GESTIONE DISTINTE
|
// DEFINIZIONE MASCHERA PRINCIPALE PER LA GESTIONE DISTINTE
|
||||||
#include "ef0300.h"
|
#include "ef0300.h"
|
||||||
|
|
||||||
TOOLBAR "" 0 -2 0 2
|
TOOLBAR "" 0 -3 0 3
|
||||||
#include <toolbar.h>
|
#include <toolbar.h>
|
||||||
|
|
||||||
|
BUTTON F_UNCONTABIL 30
|
||||||
|
BEGIN
|
||||||
|
PROMPT -11 0 "~Annulla contabilizzazione"
|
||||||
|
FLAGS "H"
|
||||||
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
PAGE "Distinta" 0 -1 0 19
|
PAGE "Distinta" 0 -1 0 19
|
||||||
|
@ -452,7 +452,8 @@ void TContabilizzazione_effetti_app::display_error()
|
|||||||
default: // Errori generici o non indicati vengono visualizzati nel punto dell'errore
|
default: // Errori generici o non indicati vengono visualizzati nel punto dell'errore
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
warning_box(msg);
|
if (!msg.blank())
|
||||||
|
warning_box(msg);
|
||||||
_error = no_error; // reset error, as any other one would do, so you can show me the other ones.
|
_error = no_error; // reset error, as any other one would do, so you can show me the other ones.
|
||||||
_can_write = FALSE; // But from now on u cannot write anymore. U must exit this program and repair errors occurred.
|
_can_write = FALSE; // But from now on u cannot write anymore. U must exit this program and repair errors occurred.
|
||||||
}
|
}
|
||||||
@ -684,10 +685,8 @@ void TContabilizzazione_effetti_app::join_rows(TArray& customers, TAssoc_array&
|
|||||||
error_type TContabilizzazione_effetti_app::search_clifo_bill(char tipo, const long codcf)
|
error_type TContabilizzazione_effetti_app::search_clifo_bill(char tipo, const long codcf)
|
||||||
{
|
{
|
||||||
_error = no_error;
|
_error = no_error;
|
||||||
TString16 key;
|
|
||||||
|
|
||||||
key.format("%c|%ld", tipo, codcf);
|
|
||||||
|
|
||||||
|
TString16 key; key.format("%c|%ld", tipo, codcf);
|
||||||
const TRectype & clifo = cache().get(LF_CLIFO, key);
|
const TRectype & clifo = cache().get(LF_CLIFO, key);
|
||||||
|
|
||||||
if (clifo.empty())
|
if (clifo.empty())
|
||||||
@ -699,7 +698,7 @@ error_type TContabilizzazione_effetti_app::search_clifo_bill(char tipo, const lo
|
|||||||
_caus->bill(1,_cliente); // conto della riga 1
|
_caus->bill(1,_cliente); // conto della riga 1
|
||||||
_cliente.codclifo() = codcf;
|
_cliente.codclifo() = codcf;
|
||||||
if (!_cliente.ok())
|
if (!_cliente.ok())
|
||||||
_error = clifo_error;
|
_error = clifo_error;
|
||||||
}
|
}
|
||||||
return _error;
|
return _error;
|
||||||
}
|
}
|
||||||
@ -1176,6 +1175,11 @@ error_type TContabilizzazione_effetti_app::write_all(bool change_status)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
error_box(FR("Il movimento deve contenere almeno 2 righe contabili e non %d"), _movimento->cg_items());
|
||||||
|
_error = generic_error;
|
||||||
|
}
|
||||||
|
|
||||||
if (good() && change_status) // deve anche cambiare lo stato alla distinta ?
|
if (good() && change_status) // deve anche cambiare lo stato alla distinta ?
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user