Patch level : 10.0
Files correlati : ve0 ve1 Ricompilazione Demo : [ ] Commento : Aggiunto supporto per firma digitale git-svn-id: svn://10.65.10.50/trunk@18572 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
512126d4df
commit
6f9698a5bf
@ -576,8 +576,7 @@ bool TMotore_application::user_create( )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TConfig utente( CONFIG_USER );
|
TConfig utente(CONFIG_GUI, "ve");
|
||||||
|
|
||||||
if (_codnum.blank())
|
if (_codnum.blank())
|
||||||
_codnum = utente.get("CODNUM");
|
_codnum = utente.get("CODNUM");
|
||||||
if (_tipodoc.blank())
|
if (_tipodoc.blank())
|
||||||
@ -592,9 +591,9 @@ bool TMotore_application::user_create( )
|
|||||||
bool TMotore_application::user_destroy( )
|
bool TMotore_application::user_destroy( )
|
||||||
{
|
{
|
||||||
// Registro l'ultimo tipo documento e l'ultima numerazione
|
// Registro l'ultimo tipo documento e l'ultima numerazione
|
||||||
TConfig utente( CONFIG_USER );
|
TConfig utente( CONFIG_GUI, "ve" );
|
||||||
utente.set( "CODNUM", _codnum, "ve" );
|
utente.set( "CODNUM", _codnum );
|
||||||
utente.set( "TIPODOC", _tipodoc, "ve" );
|
utente.set( "TIPODOC", _tipodoc );
|
||||||
|
|
||||||
if (_config_ditta != NULL)
|
if (_config_ditta != NULL)
|
||||||
delete _config_ditta;
|
delete _config_ditta;
|
||||||
@ -947,7 +946,7 @@ void TMotore_application::print()
|
|||||||
commandline = "ve1 -0"; // Esiste il vecchio form :-(
|
commandline = "ve1 -0"; // Esiste il vecchio form :-(
|
||||||
|
|
||||||
commandline << ' ' << doc.get(DOC_CODNUM) << ' ' << doc.get(DOC_ANNO) << ' ';
|
commandline << ' ' << doc.get(DOC_CODNUM) << ' ' << doc.get(DOC_ANNO) << ' ';
|
||||||
commandline << doc.get(DOC_PROVV) << ' ' << doc.get(DOC_NDOC) << ' ' << doc.get(DOC_NDOC);
|
commandline << doc.get(DOC_PROVV) << ' ' << doc.get(DOC_NDOC) << ' ' << 'S'; // Stampa (NON anteprima)
|
||||||
commandline << ' ' << (da_stampare ? 'D' : 'P');
|
commandline << ' ' << (da_stampare ? 'D' : 'P');
|
||||||
|
|
||||||
const int ncopie = tipo.ncopie();
|
const int ncopie = tipo.ncopie();
|
||||||
|
@ -1983,10 +1983,10 @@ bool TStampaDoc_application::create()
|
|||||||
_interattivo= false;
|
_interattivo= false;
|
||||||
if (argc > 6)
|
if (argc > 6)
|
||||||
{
|
{
|
||||||
_alnum= atol(argv(6)); // il quinto è il numero di documento di fine
|
const char print_mode = *argv(6); // il quinto è la modalita' di stampa o pdf (NON gestito qui)
|
||||||
if (argc > 7)
|
if (argc > 7)
|
||||||
{
|
{
|
||||||
_definitiva= (strcmp(argv(7), "D")==0); // il sesto è se la stampa è definitiva (rinumerazione dei documenti)
|
_definitiva= *argv(7) == 'D'; // il sesto è se la stampa è definitiva (rinumerazione dei documenti)
|
||||||
if (argc > 8)
|
if (argc > 8)
|
||||||
_ncopie = atoi(argv(8));
|
_ncopie = atoi(argv(8));
|
||||||
}
|
}
|
||||||
|
@ -233,7 +233,8 @@ protected:
|
|||||||
int set_printed_status(TDocumento& doc) const;
|
int set_printed_status(TDocumento& doc) const;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
bool print(const TRecordset& doc, TReport_book& book, bool def, word copies, bool alleg, bool arc);
|
bool print(const TRecordset& doc, TReport_book& book, bool def, word copies,
|
||||||
|
bool alleg, bool arc, bool signature);
|
||||||
|
|
||||||
TReport_doc(const char* name);
|
TReport_doc(const char* name);
|
||||||
virtual ~TReport_doc();
|
virtual ~TReport_doc();
|
||||||
@ -289,7 +290,7 @@ int TReport_doc::set_printed_status(TDocumento& doc) const
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TReport_doc::print(const TRecordset& doc, TReport_book& book, bool definitive, word copie, bool can_allegate, bool arc)
|
bool TReport_doc::print(const TRecordset& doc, TReport_book& book, bool definitive, word copie, bool can_allegate, bool arc, bool signature)
|
||||||
{
|
{
|
||||||
const TString old_query = recordset()->query_text();
|
const TString old_query = recordset()->query_text();
|
||||||
|
|
||||||
@ -372,7 +373,7 @@ bool TReport_doc::print(const TRecordset& doc, TReport_book& book, bool definiti
|
|||||||
set_printed_status(rs->doc());
|
set_printed_status(rs->doc());
|
||||||
|
|
||||||
if (printed && arc)
|
if (printed && arc)
|
||||||
archive();
|
archive(signature);
|
||||||
|
|
||||||
set_recordset(old_query);
|
set_recordset(old_query);
|
||||||
return printed;
|
return printed;
|
||||||
@ -984,6 +985,15 @@ bool TReport_doc_app::print_loop(const TString& query, TOutput_mode mode)
|
|||||||
return false;
|
return false;
|
||||||
is_definitive = k == K_YES;
|
is_definitive = k == K_YES;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (mode == out_signed_mail && !xvt_sign_start())
|
||||||
|
{
|
||||||
|
if (yesno_box(TR("Si desidera generare comunque documenti non firmati?")))
|
||||||
|
mode = out_mail;
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
const bool signature = mode==out_signed_mail || mode==out_signed_pdf;
|
||||||
|
|
||||||
TReports_cache reports; // Cache degli ultimi reports usati
|
TReports_cache reports; // Cache degli ultimi reports usati
|
||||||
TDoc_book book; // Destinazione dell'intera stampa
|
TDoc_book book; // Destinazione dell'intera stampa
|
||||||
@ -1033,7 +1043,7 @@ bool TReport_doc_app::print_loop(const TString& query, TOutput_mode mode)
|
|||||||
if (send_mail)
|
if (send_mail)
|
||||||
{
|
{
|
||||||
mail_book = new TDoc_book;
|
mail_book = new TDoc_book;
|
||||||
if (!report.print(doc, *mail_book, is_definitive, 1, true, arc))
|
if (!report.print(doc, *mail_book, is_definitive, 1, true, arc, signature))
|
||||||
break;
|
break;
|
||||||
TString mesg;
|
TString mesg;
|
||||||
mesg << tipo.descrizione() << TR(" n. ") << doc.get(DOC_NDOC).as_int()
|
mesg << tipo.descrizione() << TR(" n. ") << doc.get(DOC_NDOC).as_int()
|
||||||
@ -1042,7 +1052,7 @@ bool TReport_doc_app::print_loop(const TString& query, TOutput_mode mode)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!report.print(doc, book, is_definitive, copies, true, arc))
|
if (!report.print(doc, book, is_definitive, copies, true, arc, signature))
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} //if(profilo.custom_path()...
|
} //if(profilo.custom_path()...
|
||||||
@ -1067,11 +1077,11 @@ bool TReport_doc_app::print_loop(const TString& query, TOutput_mode mode)
|
|||||||
_codnum = profilo.name();
|
_codnum = profilo.name();
|
||||||
_codnum = _codnum.before(".");
|
_codnum = _codnum.before(".");
|
||||||
}
|
}
|
||||||
// Il flag di definitvo deve essere false altrimenti riaggiorna lo stato e ristampa i documenti allegati
|
// Il flag di definitivo deve essere false altrimenti riaggiorna lo stato e ristampa i documenti allegati
|
||||||
if (send_mail)
|
if (send_mail)
|
||||||
allegato.print(doc, *mail_book, false, 1, false, arc);
|
allegato.print(doc, *mail_book, false, 1, false, false, false); // Non archivio gli allegati alla mail
|
||||||
else
|
else
|
||||||
allegato.print(doc, book, false, copies, false, arc);
|
allegato.print(doc, book, false, copies, false, arc, signature);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mail_book != NULL)
|
if (mail_book != NULL)
|
||||||
@ -1115,6 +1125,9 @@ bool TReport_doc_app::print_loop(const TString& query, TOutput_mode mode)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (mode == out_signed_mail || mode == out_signed_pdf)
|
||||||
|
xvt_sign_stop();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1131,6 +1144,12 @@ void TReport_doc_app::print_selection(TOutput_mode mode)
|
|||||||
TReport_doc_app::TOutput_mode TReport_doc_app::key2mode(KEY k) const
|
TReport_doc_app::TOutput_mode TReport_doc_app::key2mode(KEY k) const
|
||||||
{
|
{
|
||||||
TOutput_mode mode = out_print;
|
TOutput_mode mode = out_print;
|
||||||
|
|
||||||
|
if (k >= 'a' && !has_module(FDAUT))
|
||||||
|
k -= ' '; // toupper dei poveri
|
||||||
|
if (!has_module(RSAUT))
|
||||||
|
k = 'A';
|
||||||
|
|
||||||
switch (k)
|
switch (k)
|
||||||
{
|
{
|
||||||
case 'A': mode = out_preview; break;
|
case 'A': mode = out_preview; break;
|
||||||
@ -1148,19 +1167,29 @@ void TReport_doc_app::main_loop()
|
|||||||
const int a = argc();
|
const int a = argc();
|
||||||
|
|
||||||
if (a > 2)
|
if (a > 2)
|
||||||
_msk->set(F_CODNUM, argv(2)); // Stampa da menu con numerazione imposta
|
{
|
||||||
|
const TFixed_string arg = argv(2);
|
||||||
|
TString4 codnum = arg.left(4);
|
||||||
|
if (arg.len() > 4 || cache().get("%NUM", arg).empty())
|
||||||
|
{
|
||||||
|
const TToken_string tok(arg, ',');
|
||||||
|
TString16 paragraph, field;
|
||||||
|
tok.get(0, paragraph); tok.get(1, field);
|
||||||
|
if (field.blank()) field = DOC_CODNUM;
|
||||||
|
codnum = ini_get_string(CONFIG_DITTA, paragraph, field);
|
||||||
|
}
|
||||||
|
_msk->set(F_CODNUM, codnum); // Stampa da menu con numerazione imposta
|
||||||
|
}
|
||||||
|
|
||||||
if (a > 6) // Stampa da riga di comando
|
if (a > 6) // Stampa da riga di comando
|
||||||
{
|
{
|
||||||
TOutput_mode mode = out_print;
|
|
||||||
|
|
||||||
_msk->set(F_DATA_O_NUM, "N"); // Stampa per numero documento
|
_msk->set(F_DATA_O_NUM, "N"); // Stampa per numero documento
|
||||||
_msk->set(F_ANNO, argv(3));
|
_msk->set(F_ANNO, argv(3));
|
||||||
_msk->set(F_PROVV, argv(4));
|
_msk->set(F_PROVV, argv(4));
|
||||||
_msk->set(F_DA_NDOC, argv(5));
|
_msk->set(F_DA_NDOC, argv(5));
|
||||||
_msk->set(F_A_NDOC, argv(6));
|
_msk->set(F_A_NDOC, argv(5));
|
||||||
if (a > 7)
|
const TOutput_mode mode = key2mode(*argv(6)); // modo di 'S'tampa, 'A'nteprima, 'P'DF
|
||||||
mode = key2mode(argv(7)[0]); // modo di stampa
|
// argv(7); // Provvisiorio o Definitivo testato altrove!
|
||||||
if (a > 8)
|
if (a > 8)
|
||||||
_msk->set(F_NCOPIE, argv(8)); // Numero copie
|
_msk->set(F_NCOPIE, argv(8)); // Numero copie
|
||||||
|
|
||||||
|
@ -156,9 +156,8 @@ bool fido_hndl(TMask_field& field, KEY key)
|
|||||||
const char tipocf = m.get(F_TIPOCF)[0];
|
const char tipocf = m.get(F_TIPOCF)[0];
|
||||||
const long codcf = m.get_long(F_CODCF);
|
const long codcf = m.get_long(F_CODCF);
|
||||||
const TDate& datadoc = m.get_date(F_DATADOC);
|
const TDate& datadoc = m.get_date(F_DATADOC);
|
||||||
TConfig config_ditta(CONFIG_DITTA, "ve");
|
const int riskdays = ini_get_int(CONFIG_DITTA, "ve", "FIDO_RISKDAYS");
|
||||||
const int riskdays = config_ditta.get_int("FIDO_RISKDAYS");
|
const real perc_toll = ini_get_string(CONFIG_DITTA, "ve", "FIDO_PERCTOLL");
|
||||||
const real perc_toll = config_ditta.get("FIDO_PERCTOLL");
|
|
||||||
//calcola l'esposizione PRIMA del documento corrente
|
//calcola l'esposizione PRIMA del documento corrente
|
||||||
const real esposizione = calcola_fido_cliente (tipocf, codcf, datadoc, riskdays);
|
const real esposizione = calcola_fido_cliente (tipocf, codcf, datadoc, riskdays);
|
||||||
//prende il valore del documento corrente
|
//prende il valore del documento corrente
|
||||||
@ -193,17 +192,13 @@ bool ora_hndl( TMask_field& field, KEY key )
|
|||||||
ora = field.get();
|
ora = field.get();
|
||||||
if (ora.not_empty())
|
if (ora.not_empty())
|
||||||
{
|
{
|
||||||
if (!isdigit(ora[0]) ||
|
if (!isdigit(ora[0]) || !isdigit(ora[1]) || !isdigit(ora[2]) ||
|
||||||
!isdigit(ora[1]) ||
|
!isdigit(ora[3]) || atoi(ora.left(2)) > 23 || atoi(ora.mid(2)) > 59)
|
||||||
!isdigit(ora[2]) ||
|
return error_box(TR("Ora errata"));
|
||||||
!isdigit(ora[3]) ||
|
|
||||||
atoi(ora.left(2)) > 23 ||
|
|
||||||
atoi(ora.mid(2)) > 59)
|
|
||||||
return error_box("Ora errata");
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (field.required())
|
if (field.required())
|
||||||
return error_box("Ora obbligatoria");
|
return error_box(TR("Ora obbligatoria"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -212,7 +207,7 @@ bool ora_hndl( TMask_field& field, KEY key )
|
|||||||
|
|
||||||
bool dummy_hndl(TMask_field& field, KEY key)
|
bool dummy_hndl(TMask_field& field, KEY key)
|
||||||
{
|
{
|
||||||
warning_box( "Al campo %d è arrivato un KEY %d", field.dlg( ), key );
|
warning_box(FR("Al campo %d è arrivato un KEY %d"), field.dlg( ), key );
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user