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:
parent
9460e73d9a
commit
99da064ac4
@ -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("");
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user