1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2024-12-17 18:59:21 +01:00
openstamanager/mail.php

192 lines
6.0 KiB
PHP
Raw Normal View History

2018-02-20 17:57:16 +01:00
<?php
include_once __DIR__.'/core.php';
2018-07-19 15:33:32 +02:00
$template = Mail::getTemplate(get('id'));
2018-02-20 17:57:16 +01:00
$module = Modules::get($id_module);
$smtp = Mail::get($template['id_smtp']);
2018-02-20 17:57:16 +01:00
$body = $template['body'];
$subject = $template['subject'];
$variables = Mail::getTemplateVariables($template['id'], $id_record);
2018-02-20 17:57:16 +01:00
$email = $variables['email'];
// Sostituzione delle variabili di base
$replaces = [];
foreach ($variables as $key => $value) {
$replaces['{'.$key.'}'] = $value;
}
$body = str_replace(array_keys($replaces), array_values($replaces), $body);
$subject = str_replace(array_keys($replaces), array_values($replaces), $subject);
2018-04-15 14:46:33 +02:00
// Campi mancanti
$campi_mancanti = [];
2018-04-15 14:46:33 +02:00
if (empty($smtp['from_address'])) {
$campi_mancanti[] = tr('Mittente');
}
2018-04-15 14:46:33 +02:00
if (empty($smtp['server'])) {
$campi_mancanti[] = tr('Server SMTP');
}
2018-04-15 14:46:33 +02:00
if (empty($smtp['port'])) {
$campi_mancanti[] = tr('Porta');
}
2018-04-15 14:46:33 +02:00
if (sizeof($campi_mancanti) > 0) {
2018-07-10 17:07:27 +02:00
echo '
<div class="alert alert-warning">
<i class="fa fa-warning"></i> '.tr("Prima di procedere all'invio completa: _VALUES_", [
'_VALUES_' => '<b>'.implode(', ', $campi_mancanti).'</b>',
]).'<br/>
'.Modules::link('Account email', $smtp['id'], tr('Vai alla scheda account email'), null).'
</div>';
}
// Form
2018-02-20 17:57:16 +01:00
echo '
<form action="" method="post" id="email-form">
2018-02-20 17:57:16 +01:00
<input type="hidden" name="op" value="send-email">
<input type="hidden" name="backto" value="record-edit">
<input type="hidden" name="template" value="'.$template['id'].'">
<p><b>'.tr('Mittente').'</b>: '.$smtp['from_name'].' &lt;'.$smtp['from_address'].'&gt;</p>';
2018-02-20 17:57:16 +01:00
2018-07-10 16:50:23 +02:00
if (!empty($template['cc'])) {
echo '
2018-07-10 16:50:23 +02:00
<p><b>'.tr('CC').'</b>: '.$template['cc'].'</p>';
}
2018-02-20 17:57:16 +01:00
2018-07-10 16:50:23 +02:00
if (!empty($template['bcc'])) {
2018-02-20 17:57:16 +01:00
echo '
2018-07-10 16:50:23 +02:00
<p><b>'.tr('CCN').'</b>: '.$template['bcc'].'</p>';
2018-02-20 17:57:16 +01:00
}
echo '
<b>'.tr('Destinatari').'</b>
<div class="row" id="lista-destinatari">
<div class="col-md-12">
{[ "type": "email", "name": "destinatari[]", "value": "'.$email.'", "icon-before": "choice|email", "extra": "onkeyup=\'aggiungi_destinatario();\'", "class": "destinatari", "required": 1 ]}
</div>
</div>
2018-02-20 17:57:16 +01:00
<br>
2018-02-20 17:57:16 +01:00
<div class="row">
<div class="col-md-8">
{[ "type": "text", "label": "'.tr('Oggetto').'", "name": "subject", "value": "'.$subject.'", "required": 1 ]}
2018-02-20 17:57:16 +01:00
</div>
<div class="col-md-4">
2018-12-28 00:04:41 +01:00
{[ "type": "checkbox", "label": "'.tr('Richiedi notifica di lettura').'", "name": "read_notify", "value": "'.$template['read_notify'].'" ]}
</div>
</div>';
2018-02-20 17:57:16 +01:00
// Stampe
$selected_prints = $dbo->fetchArray('SELECT id_print FROM zz_email_print WHERE id_email = '.prepare($template['id']));
$selected = array_column($selected_prints, 'id_print');
2018-02-20 17:57:16 +01:00
echo '
2018-02-20 17:57:16 +01:00
<div class="row">
<div class="col-md-6">
{[ "type": "select", "multiple": "1", "label": "'.tr('Stampe').'", "name": "prints[]", "value": "'.implode(',', $selected).'", "values": "query=SELECT id, title AS text FROM zz_prints WHERE id_module = '.prepare($id_module).' AND enabled=1" ]}
</div>';
2018-02-20 17:57:16 +01:00
$attachments = [];
if ($template['name'] == 'Fattura Elettronica') {
2019-02-26 12:13:51 +01:00
$attachments = $dbo->fetchArray('SELECT id FROM zz_files WHERE id_module = '.prepare($module['id']).' AND id_record = '.prepare($id_record).' AND category = \'Fattura Elettronica\'');
$attachments = array_column($attachments, 'id');
}
// Allegati
echo '
<div class="col-md-6">
2018-08-31 11:39:38 +02:00
{[ "type": "select", "multiple": "1", "label": "'.tr('Allegati').'", "name": "attachments[]", "value": "'.implode(',', $attachments).'", "values": "query=SELECT id, name AS text FROM zz_files WHERE id_module = '.prepare($id_module).' AND id_record = '.prepare($id_record)." UNION SELECT id, CONCAT(name, ' (Azienda)') AS text FROM zz_files WHERE id_module = ".prepare(Modules::get('Anagrafiche')['id'])." AND id_record = (SELECT valore FROM zz_settings WHERE nome = 'Azienda predefinita')\" ]}
</div>
</div>";
2018-02-20 17:57:16 +01:00
echo '
<div class="row">
<div class="col-md-12">
2018-09-07 17:43:52 +02:00
{[ "type": "ckeditor", "label": "'.tr('Contenuto').'", "name": "body", "value": '.json_encode($body).' ]}
2018-02-20 17:57:16 +01:00
</div>
</div>';
2018-02-20 17:57:16 +01:00
echo '
2018-02-20 17:57:16 +01:00
<!-- PULSANTI -->
<div class="row">
<div class="col-md-12 text-right">
<button type="button" class="btn btn-primary" onclick="send()"><i class="fa fa-envelope"></i> '.tr('Invia').'</button>
2018-02-20 17:57:16 +01:00
</div>
</div>
</form>';
echo '
<div id="destinatari_input" class="hide">
<div class="col-md-12">
{[ "type": "email", "name": "destinatari[]", "icon-before": "choice|email|cc", "extra": "onkeyup=\'aggiungi_destinatario();\'", "class": "destinatari" ]}
</div>
</div>';
2018-02-20 17:57:16 +01:00
echo '
<script>
var emails = [];
2018-06-23 15:41:32 +02:00
$(document).ready(function(){';
// Autocompletamento destinatario
2018-06-23 15:41:32 +02:00
if (!empty($variables['id_anagrafica'])) {
echo '
$(document).load(globals.rootdir + "/ajax_complete.php?module=Anagrafiche&op=get_email&id_anagrafica='.$variables['id_anagrafica'].(($smtp['pec']) ? '&type=pec' : '').'", function(response) {
emails = JSON.parse(response);
$(".destinatari").each(function(){
2018-02-23 09:49:31 +01:00
$(this).autocomplete({
source: emails,
minLength: 0
}).focus(function() {
$(this).autocomplete("search", $(this).val())
2018-09-20 12:05:22 +02:00
});
});
2018-08-31 11:39:38 +02:00
aggiungi_destinatario();
2018-06-23 15:41:32 +02:00
});';
}
echo '
2018-02-20 17:57:16 +01:00
});
function send(){
if($("#email-form").parsley().validate() && confirm("Inviare e-mail?")) {
$("#email-form").submit();
}
}
function aggiungi_destinatario(){
var last = $("#lista-destinatari input").last();
if(last.val()){
$("#destinatari_input").find(".select2").remove()
$("#lista-destinatari").append($("#destinatari_input").html());
$(".destinatari").each(function(){
$(this).autocomplete({source: emails});
});
start_superselect();
}
}
2018-02-20 17:57:16 +01:00
</script>';
echo '
<script src="'.$rootdir.'/lib/init.js"></script>';