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())
|
||||
_codnum = utente.get("CODNUM");
|
||||
if (_tipodoc.blank())
|
||||
@ -592,9 +591,9 @@ bool TMotore_application::user_create( )
|
||||
bool TMotore_application::user_destroy( )
|
||||
{
|
||||
// Registro l'ultimo tipo documento e l'ultima numerazione
|
||||
TConfig utente( CONFIG_USER );
|
||||
utente.set( "CODNUM", _codnum, "ve" );
|
||||
utente.set( "TIPODOC", _tipodoc, "ve" );
|
||||
TConfig utente( CONFIG_GUI, "ve" );
|
||||
utente.set( "CODNUM", _codnum );
|
||||
utente.set( "TIPODOC", _tipodoc );
|
||||
|
||||
if (_config_ditta != NULL)
|
||||
delete _config_ditta;
|
||||
@ -947,7 +946,7 @@ void TMotore_application::print()
|
||||
commandline = "ve1 -0"; // Esiste il vecchio form :-(
|
||||
|
||||
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');
|
||||
|
||||
const int ncopie = tipo.ncopie();
|
||||
|
@ -1983,10 +1983,10 @@ bool TStampaDoc_application::create()
|
||||
_interattivo= false;
|
||||
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)
|
||||
{
|
||||
_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)
|
||||
_ncopie = atoi(argv(8));
|
||||
}
|
||||
|
@ -233,7 +233,8 @@ protected:
|
||||
int set_printed_status(TDocumento& doc) const;
|
||||
|
||||
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);
|
||||
virtual ~TReport_doc();
|
||||
@ -289,7 +290,7 @@ int TReport_doc::set_printed_status(TDocumento& doc) const
|
||||
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();
|
||||
|
||||
@ -372,7 +373,7 @@ bool TReport_doc::print(const TRecordset& doc, TReport_book& book, bool definiti
|
||||
set_printed_status(rs->doc());
|
||||
|
||||
if (printed && arc)
|
||||
archive();
|
||||
archive(signature);
|
||||
|
||||
set_recordset(old_query);
|
||||
return printed;
|
||||
@ -984,6 +985,15 @@ bool TReport_doc_app::print_loop(const TString& query, TOutput_mode mode)
|
||||
return false;
|
||||
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
|
||||
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)
|
||||
{
|
||||
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;
|
||||
TString mesg;
|
||||
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
|
||||
{
|
||||
if (!report.print(doc, book, is_definitive, copies, true, arc))
|
||||
if (!report.print(doc, book, is_definitive, copies, true, arc, signature))
|
||||
break;
|
||||
}
|
||||
} //if(profilo.custom_path()...
|
||||
@ -1067,11 +1077,11 @@ bool TReport_doc_app::print_loop(const TString& query, TOutput_mode mode)
|
||||
_codnum = profilo.name();
|
||||
_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)
|
||||
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
|
||||
allegato.print(doc, book, false, copies, false, arc);
|
||||
allegato.print(doc, book, false, copies, false, arc, signature);
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
@ -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
|
||||
{
|
||||
TOutput_mode mode = out_print;
|
||||
|
||||
if (k >= 'a' && !has_module(FDAUT))
|
||||
k -= ' '; // toupper dei poveri
|
||||
if (!has_module(RSAUT))
|
||||
k = 'A';
|
||||
|
||||
switch (k)
|
||||
{
|
||||
case 'A': mode = out_preview; break;
|
||||
@ -1148,19 +1167,29 @@ void TReport_doc_app::main_loop()
|
||||
const int a = argc();
|
||||
|
||||
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
|
||||
{
|
||||
TOutput_mode mode = out_print;
|
||||
|
||||
_msk->set(F_DATA_O_NUM, "N"); // Stampa per numero documento
|
||||
_msk->set(F_ANNO, argv(3));
|
||||
_msk->set(F_PROVV, argv(4));
|
||||
_msk->set(F_DA_NDOC, argv(5));
|
||||
_msk->set(F_A_NDOC, argv(6));
|
||||
if (a > 7)
|
||||
mode = key2mode(argv(7)[0]); // modo di stampa
|
||||
_msk->set(F_A_NDOC, argv(5));
|
||||
const TOutput_mode mode = key2mode(*argv(6)); // modo di 'S'tampa, 'A'nteprima, 'P'DF
|
||||
// argv(7); // Provvisiorio o Definitivo testato altrove!
|
||||
if (a > 8)
|
||||
_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 long codcf = m.get_long(F_CODCF);
|
||||
const TDate& datadoc = m.get_date(F_DATADOC);
|
||||
TConfig config_ditta(CONFIG_DITTA, "ve");
|
||||
const int riskdays = config_ditta.get_int("FIDO_RISKDAYS");
|
||||
const real perc_toll = config_ditta.get("FIDO_PERCTOLL");
|
||||
const int riskdays = ini_get_int(CONFIG_DITTA, "ve", "FIDO_RISKDAYS");
|
||||
const real perc_toll = ini_get_string(CONFIG_DITTA, "ve", "FIDO_PERCTOLL");
|
||||
//calcola l'esposizione PRIMA del documento corrente
|
||||
const real esposizione = calcola_fido_cliente (tipocf, codcf, datadoc, riskdays);
|
||||
//prende il valore del documento corrente
|
||||
@ -193,17 +192,13 @@ bool ora_hndl( TMask_field& field, KEY key )
|
||||
ora = field.get();
|
||||
if (ora.not_empty())
|
||||
{
|
||||
if (!isdigit(ora[0]) ||
|
||||
!isdigit(ora[1]) ||
|
||||
!isdigit(ora[2]) ||
|
||||
!isdigit(ora[3]) ||
|
||||
atoi(ora.left(2)) > 23 ||
|
||||
atoi(ora.mid(2)) > 59)
|
||||
return error_box("Ora errata");
|
||||
if (!isdigit(ora[0]) || !isdigit(ora[1]) || !isdigit(ora[2]) ||
|
||||
!isdigit(ora[3]) || atoi(ora.left(2)) > 23 || atoi(ora.mid(2)) > 59)
|
||||
return error_box(TR("Ora errata"));
|
||||
}
|
||||
else
|
||||
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)
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user