Patch level : 11.0

Files correlati     : ve1.exe
Ricompilazione Demo : [ ]
Commento            :
Corretta stampa fattura combiante con invio per email.
A volte i font cambiavano le dimensioni del 20%, infatti:
Risoluzione PDF = 720 DPI; Risoluzione stampa = 600 DPI; 720 / 600 = 1.20


git-svn-id: svn://10.65.10.50/branches/R_10_00@22075 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2011-05-04 13:39:35 +00:00
parent 95ad7491ae
commit 14031e74a1
2 changed files with 160 additions and 137 deletions

View File

@ -1156,10 +1156,10 @@ bool TReport_doc_app::print_loop(TRecordset& doc, TOutput_mode mode, bool is_def
if (docs <= 0) if (docs <= 0)
return false; return false;
if (mode == out_signed_mail && !xvt_sign_start()) if ((mode == out_signed_mail || mode == out_signed_pdf) && !xvt_sign_start())
{ {
if (yesno_box(TR("Si desidera generare comunque documenti non firmati?"))) if (yesno_box(TR("Si desidera generare comunque documenti non firmati?")))
mode = out_mail; mode = TOutput_mode(mode-1);
else else
return false; return false;
} }
@ -1173,8 +1173,23 @@ bool TReport_doc_app::print_loop(TRecordset& doc, TOutput_mode mode, bool is_def
bool attach_mail = mode==out_mail || mode==out_signed_mail; bool attach_mail = mode==out_mail || mode==out_signed_mail;
if (attach_mail && is_power_station()) if (attach_mail && is_power_station())
attach_mail = yesno_box(TR("Si desidera spedire veramente i documenti via mail?\n" {
attach_mail =
#ifdef DBG
noyes_box
#else
yesno_box
#endif
(TR("Si desidera spedire veramente i documenti via mail?\n"
"Rispondendo NO verranno solo salvati gli allegati.")); "Rispondendo NO verranno solo salvati gli allegati."));
}
const bool mail_requested = (mode == out_mail || mode == out_signed_mail);
for (short loop = mail_requested ? 0 : 1; loop < 2; loop++)
{
const bool mail_loop = (loop == 0);
const bool print_loop = !mail_loop;
for (int i = 0; i < docs; i++) for (int i = 0; i < docs; i++)
{ {
@ -1200,7 +1215,8 @@ bool TReport_doc_app::print_loop(TRecordset& doc, TOutput_mode mode, bool is_def
doc.get(DOC_NDOC).as_int(), doc.get(DOC_TIPOCF).as_string()[0], doc.get(DOC_NDOC).as_int(), doc.get(DOC_TIPOCF).as_string()[0],
doc.get(DOC_CODCF).as_int()); doc.get(DOC_CODCF).as_int());
const bool send_mail = ( mode == out_mail || mode == out_signed_mail) && get_mail_address().full(); // const bool send_mail = ( mode == out_mail || mode == out_signed_mail) && get_mail_address().full();
const bool send_mail = mail_requested && get_mail_address().full();
const bool paperless = send_mail || mode == out_pdf || mode == out_signed_pdf; const bool paperless = send_mail || mode == out_pdf || mode == out_signed_pdf;
// Tenta di costruirsi il nome del report: se non stampo su carta cerco di usare un profilo con sfondo // Tenta di costruirsi il nome del report: se non stampo su carta cerco di usare un profilo con sfondo
@ -1221,6 +1237,8 @@ bool TReport_doc_app::print_loop(TRecordset& doc, TOutput_mode mode, bool is_def
TReport_doc& report = reports.get(profilo); TReport_doc& report = reports.get(profilo);
if (send_mail) if (send_mail)
{
if (mail_loop)
{ {
mail_book = new TDoc_book; mail_book = new TDoc_book;
if (!report.print(doc, *mail_book, is_definitive, 1, true, false, false)) // Non archiviare per ora... if (!report.print(doc, *mail_book, is_definitive, 1, true, false, false)) // Non archiviare per ora...
@ -1233,13 +1251,17 @@ bool TReport_doc_app::print_loop(TRecordset& doc, TOutput_mode mode, bool is_def
<< TR(" del ") << doc.get(DOC_DATADOC) << TR(" a ") << get_mail_address(); << TR(" del ") << doc.get(DOC_DATADOC) << TR(" a ") << get_mail_address();
mail_log.log(0, mesg); mail_log.log(0, mesg);
} }
}
else else
{
if (print_loop)
{ {
if (!report.print(doc, book, is_definitive, copies, true, arc, signature)) if (!report.print(doc, book, is_definitive, copies, true, arc, signature))
break; break;
if (!paperless) if (!paperless)
print_extra_copies(report, doc, book, copies); print_extra_copies(report, doc, book, copies);
} }
}
} //if(profilo.custom_path()... } //if(profilo.custom_path()...
else else
{ {
@ -1263,14 +1285,20 @@ bool TReport_doc_app::print_loop(TRecordset& doc, TOutput_mode mode, bool is_def
} }
// Il flag di definitivo 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)
{
if (mail_loop)
allegato.print(doc, *mail_book, false, 1, false, false, false); // Non archivio gli allegati alla mail allegato.print(doc, *mail_book, false, 1, false, false, false); // Non archivio gli allegati alla mail
}
else else
{
if (print_loop)
{ {
allegato.print(doc, book, false, copies, false, arc, signature); allegato.print(doc, book, false, copies, false, arc, signature);
if (!paperless) if (!paperless)
print_extra_copies(allegato, doc, book, copies); print_extra_copies(allegato, doc, book, copies);
} }
} }
}
if (mail_book != NULL) if (mail_book != NULL)
{ {
@ -1300,6 +1328,7 @@ bool TReport_doc_app::print_loop(TRecordset& doc, TOutput_mode mode, bool is_def
mail_book = NULL; mail_book = NULL;
} }
} }
}
if (book.pages() > 0) if (book.pages() > 0)
{ {

View File

@ -3623,15 +3623,9 @@ bool TDocumento_mask::print_handler( TMask_field& f, KEY key )
{ {
switch (f.dlg()) switch (f.dlg())
{ {
case DLG_EMAIL : case DLG_EMAIL : app().mailto(); break;
app().mailto(); case DLG_PREVIEW : app().preview(); break;
break; default : app().print(); break;
case DLG_PREVIEW :
app().preview();
break;
default :
app().print();
break;
} }
} }
return true; return true;