Patch level : 2.0 512

Files correlati     : ve6.exe ve6100a.msk
Ricompilazione Demo : [ ]
Commento            :

AO20061
Se sul tipo documento interessato per la contabilizzazione dello stesso ho
selezionato il campo "Calcolo importi al lordo" non mi contabilizza nessun
documento creato con questa modalità, appena tolgo il flag invece mi
contabilizza tutto.
ATTENZIONE:
Non succede in generale, infatti nelle prove fatte funziona sempre.
Ne deriva che occorrono importi ben precisi e quindi occorrono i dati specifici
per ricreare la situazione di errore.
Normalmente basta aumentare i decimali degli importi.

AO20062
Per un tipo documento ho specificato "Calcolo importi al lordo";
spostandomi col TAB da un campo all'altro della riga di dettaglio mi toglie
sempre il check da "Lordo", inoltre contrariamente alla vecchia versione tale
campo degli Importi al Lordo non è più selezionabile tramite tastiera,
ciò determina che una volta inserito il prezzo debba rispuntare col mouse
tale campo, mentre una volta era sufficiente scorrere i campi col tab e
mettere la 'X' quindi l'inserimento degli importi al lordo risultava molto più agevole.
ATTENZIONE:
Si tratta di una scelta operata con le nuove librerie.
Occorre tavola rotonda e decisione al vertice per modificare questo comportamento.

AO20063
Su Win98 se scelgo una stampante Generica / solo testo come dimensione
carattere mi riporta solo 0.

AO20066
Ho provato a stampare una fattura utilizzando il vecchio modulo bmp,
in visualizzazione la stampa è corretta ma se lancio la stampa su foglio
A4 non mi viene stampata la parte grafica; utilizzando invece il nuovo sfondo
bmp esce tutto corretto (questo chiaramente è un errore che va ad influire
anche sui vecchi moduli personalizzati); sulla 16bit invece con lo stesso
modulo e stesso bmp, stampa corretto.


git-svn-id: svn://10.65.10.50/trunk@11288 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2003-06-26 10:48:09 +00:00
parent 9460e73d9a
commit 99da064ac4
5 changed files with 50 additions and 56 deletions

View File

@ -93,15 +93,9 @@ bool TContabilizzazione_app::handle_data_range(TMask_field& f, KEY k)
TDate da(m.get_date(F_DATA_INI));
TDate a(m.get_date(F_DATA_FIN));
m.field(F_DATA_REG).set_dirty();
//if (a == botime || da == botime) return TRUE;
if (a < da)
{
f.error_box("La data di inizio deve essere minore della data di fine.");
return FALSE;
}
if ((a - da) > 15)
{
f.error_box("L'intervallo tra le date non puo' eccedere i 15 giorni.");
f.error_box(TR("L'intervallo tra le date non puo' eccedere i 15 giorni."));
return FALSE;
}
if (f.dlg() == F_DATA_FIN)
@ -127,12 +121,12 @@ bool TContabilizzazione_app::handle_data_reg(TMask_field& f, KEY k)
TDate da(m.get_date(F_DATA_INI));
if ((data_reg - da) > 15)
{
f.error_box("L'intervallo tra la data di registrazione e la data di inizio non puo' eccedere i 15 giorni.");
f.error_box(TR("L'intervallo tra la data di registrazione e la data di inizio non puo' eccedere i 15 giorni."));
return FALSE;
}
if (data_reg < da)
{
f.error_box("La data di registrazione non puo' essere minore della data di inizio.");
f.error_box(TR("La data di registrazione non puo' essere minore della data di inizio."));
return FALSE;
}
}
@ -297,15 +291,8 @@ void TContabilizzazione_app::contabilize()
cont.set_auto(_auto_data); // Setta il flag per il settaggio automatico della data di registrazione del movimento
da.put("DATADOC",_data_ini);
da.put("PROVV","D");
da.put("ANNO",year_from);
a.put("DATADOC",_data_fine);
a.put("PROVV","D");
a.put("ANNO",year_to);
filt_expr << "(";
for (long i=0L; i<items;i++) // Scorre per tutte le numerazioni dello sheet
{
if (_num_sheet->checked(i)) // Costruisce una espressione sul codice numerazione: "CODNUM="x0" || CODNUM="x1" || ..."
{
codnum = _num_sheet->row(i).get(1);
@ -313,35 +300,46 @@ void TContabilizzazione_app::contabilize()
filt_expr << codnum << "\")||";
nums.add(codnum);
}
}
filt_expr.rtrim(2);
filt_expr << ")";
da.put(DOC_DATADOC,_data_ini);
da.put(DOC_PROVV,"D");
da.put(DOC_ANNO,year_from);
a.put(DOC_DATADOC,_data_fine);
a.put(DOC_PROVV,"D");
a.put(DOC_ANNO,year_to);
// Se ho una sola numerazione ottimizzo la setregion!
if (nums.items() == 1)
{
da.put(DOC_CODNUM, nums);
a.put(DOC_CODNUM, nums);
filt_expr.cut(0); // Il filtro diventa inutile
}
// Cursore complessivo con limiti di data (chiave 3). Viene sfruttata l'ottimizzazione
// sulla costruzione dei cursori nel caso i campi presenti nell'espressione siano campi
// chiave, nel nostro caso CODNUM soddisfa i requisiti.
TCursor doc_cur(&doc_rel,filt_expr,3,&da,&a);
const long cur_items = doc_cur.items(); // Scorre tutti i documenti che rientrano nell'intervallo selezionato
if (cur_items == 0)
{
warning_box("Non vi sono documenti da contabilizzare per le numerazioni selezionate.");
return;
}
doc_cur.freeze();
msg = "Selezione documenti dal ";
msg << _data_ini.string() << " al ";
msg << _data_fine.string();
TLista_documenti lista_in,lista_out;
if (cur_items > 0) // if inutile tanto per provocare la chiusura della TProgind
const TRecnotype cur_items = doc_cur.items();
if (cur_items > 0)
{
TLista_documenti lista_in,lista_out;
doc_cur.freeze();
msg = "Selezione documenti dal ";
msg << _data_ini.string() << " al ";
msg << _data_fine.string();
TProgind p(cur_items,msg,FALSE,TRUE);
const TRectype& cur_rec = doc_cur.curr();
// Scorre tutti i documenti che rientrano nell'intervallo selezionato
for (doc_cur = 0; doc_cur.pos() < cur_items; ++doc_cur)
{
p.addstatus(1);
// controlla che il tipo documento e lo stato siano coerenti con la ELD selezionata
if (nums.find(cur_rec.get("CODNUM")) >= 0 && doc_tipo_stato_ok(cur_rec))
if (nums.get_pos(cur_rec.get("CODNUM")) >= 0 && doc_tipo_stato_ok(cur_rec))
{
TDocumento* doc = new TDocumento;
if (doc->read(doc_cur.curr()) == NOERR) // legge il documento
@ -350,10 +348,13 @@ void TContabilizzazione_app::contabilize()
delete doc;
}
}
cont.elabora(lista_in,lista_out,_data_reg);
if (cont.processed_docs() > 0L)
message_box(FR("Totale documenti contabilizzati: %ld"), cont.processed_docs());
}
cont.elabora(lista_in,lista_out,_data_reg);
if (cont.processed_docs() > 0L)
message_box("Totale documenti contabilizzati: %ld", cont.processed_docs());
else
warning_box(TR("Non vi sono documenti da contabilizzare per le numerazioni selezionate."));
xvt_statbar_set("");
}

View File

@ -35,15 +35,16 @@ END
DATE F_DATA_INI
BEGIN
PROMPT 2 3 "Inizio "
VALIDATE NOT_EMPTY_FUNC
CHECKTYPE REQUIRED
WARNING "La data di inizio intervallo e' obbligatoria"
END
DATE F_DATA_FIN
BEGIN
PROMPT 2 4 "Fine "
VALIDATE NOT_EMPTY_FUNC
WARNING "La data di fine intervallo e' obbligatoria"
CHECKTYPE REQUIRED
WARNING "La data di fine intervallo deve essere successiva a quella di inizio"
VALIDATE DATE_CMP_FUNC >= F_DATA_INI
END
BOOLEAN F_DATA_AUTO

View File

@ -1235,7 +1235,6 @@ class TGenerazione_effetti : public TElaborazione // velib04c
*_cfven,
*_tab,
*_occas;
TTable *_cpg; // tabella condizioni di pagamento
TArray _effetti_array;//Array di effetti (TEffetto) da scrivere
protected:
// Visualizza l'ultimo errore rilevato

View File

@ -3734,7 +3734,7 @@ bool TContabilizzazione::elabora(TLista_documenti& doc_in, TLista_documenti& /*
TPrinter& p = printer();
p.links().add("Movimento Prima Nota |b|w", 0);
p.setlinkhandler(link_handler);
_viswin = new TViswin(NULL, "Contabilizzazione documenti", FALSE, TRUE, TRUE);
_viswin = new TViswin(NULL, TR("Contabilizzazione documenti"), FALSE, TRUE, TRUE);
_viswin->open_modal();
const clock_t start_time = clock();
@ -3758,8 +3758,8 @@ bool TContabilizzazione::elabora(TLista_documenti& doc_in, TLista_documenti& /*
TDocumento& doc = doc_in[i];
msg = "Elaborazione documento ";
msg << doc.anno() << ' ';
msg = TR("Elaborazione del documento");
msg << ' ' << doc.anno() << ' ';
msg << doc.numerazione() << '/';
msg << doc.numero();
_viswin->add_line(msg);

View File

@ -1,5 +1,4 @@
#include <progind.h>
#include <tabutil.h>
#include <doc.h>
#include <rdoc.h>
@ -34,7 +33,6 @@ TGenerazione_effetti::TGenerazione_effetti(const char* cod)
_tab = new TLocalisamfile(LF_TAB);
_efffile = new TLocalisamfile(LF_EFFETTI);
_refffile = new TLocalisamfile(LF_REFFETTI);
_cpg = new TTable("%CPG");
_can_write = TRUE;
_error = no_error;
@ -59,7 +57,6 @@ TGenerazione_effetti::TGenerazione_effetti(const TRectype& rec)
_tab = new TLocalisamfile(LF_TAB);
_efffile = new TLocalisamfile(LF_EFFETTI);
_refffile = new TLocalisamfile(LF_REFFETTI);
_cpg = new TTable("%CPG");
_can_write = TRUE;
_error = no_error;
@ -77,7 +74,6 @@ TGenerazione_effetti::~TGenerazione_effetti()
delete _efffile;
delete _refffile;
delete _tab;
delete _cpg;
}
void TGenerazione_effetti::display_error(TDocumento& doc)
@ -291,8 +287,8 @@ long TGenerazione_effetti::group_bills(TAssoc_array& group_array)
// Ricalcola le scadenze
codpag = doc.get(DOC_CODPAG);
_cpg->put("CODTAB",codpag);
if (_cpg->read()!= NOERR)
const TRectype& cpg = cache().get("%CPG", codpag);
if (cpg.empty())
{
_error = codpag_error;
display_error(doc);
@ -546,10 +542,9 @@ void TGenerazione_effetti::generate_bill(TDocumento& doc) // bill in inglese sig
if (!doc.is_nota_credito()) // I documenti immessi come note di credito non generano effetti...(che senso hanno gli effetti con importi negativi?)
{
TString16 codpag(doc.get(DOC_CODPAG));
_cpg->put("CODTAB",codpag);
if (_cpg->read()!= NOERR)
const TString16 codpag(doc.get(DOC_CODPAG));
const TRectype& cpg = cache().get("%CPG", codpag);
if (cpg.empty())
{
_error = codpag_error;
return;
@ -668,8 +663,6 @@ bool TGenerazione_effetti::elabora(TLista_documenti& doc_in, TLista_documenti& d
_error = no_error;
_total_bills = 0L;
_cpg->setkey(1); // Setta per sicurezza la chiave 1 nel caso l'elaborazione sia invocata da VE0
const int items = doc_in.items(); // Numero dei documenti in questa elaborazione
for (int i = 0; i < items ; i++) // Scorriamo tutti i documenti nella lista
{