Gestione tipi destinatari e autocompletamenti destinatari nelle mail in uscita
This commit is contained in:
parent
ad3b4d9647
commit
40bf2a9cac
22
mail.php
22
mail.php
|
@ -118,14 +118,14 @@ $idx = 0;
|
|||
foreach ($emails as $email) {
|
||||
echo '
|
||||
<div class="col-md-12">
|
||||
{[ "type": "email", "name": "destinatari['.$idx++.']", "value": "'.$email.'", "icon-before": "choice|email", "extra": "onkeyup=\'aggiungiDestinatario();\'", "class": "destinatari", "required": 0 ]}
|
||||
{[ "type": "email", "name": "destinatari['.$idx++.']", "value": "'.$email.'", "icon-before": "choice|email|'.$template['type'].'", "extra": "onkeyup=\'aggiungiDestinatario();\'", "class": "destinatari", "required": 0 ]}
|
||||
</div>';
|
||||
}
|
||||
|
||||
if (empty($emails)) {
|
||||
echo '
|
||||
<div class="col-md-12">
|
||||
{[ "type": "email", "name": "destinatari['.$idx++.']", "value": "", "icon-before": "choice|email", "extra": "onkeyup=\'aggiungiDestinatario();\'", "class": "destinatari", "required": 0 ]}
|
||||
{[ "type": "email", "name": "destinatari['.$idx++.']", "value": "", "icon-before": "choice|email|'.$template['type'].'", "extra": "onkeyup=\'aggiungiDestinatario();\'", "class": "destinatari", "required": 0 ]}
|
||||
</div>';
|
||||
}
|
||||
echo '
|
||||
|
@ -197,7 +197,7 @@ echo '
|
|||
echo '
|
||||
<div class="hidden" id="template-destinatario">
|
||||
<div class="col-md-12">
|
||||
{[ "type": "email", "name": "destinatari[-id-]", "icon-before": "choice|email", "extra": "onkeyup=\'aggiungiDestinatario();\'", "class": "destinatari" ]}
|
||||
{[ "type": "email", "name": "destinatari[-id-]", "icon-before": "choice|email|'.$template['type'].'", "extra": "onkeyup=\'aggiungiDestinatario();\'", "class": "destinatari" ]}
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
|
@ -226,7 +226,23 @@ echo '
|
|||
|
||||
aggiungiDestinatario();
|
||||
});
|
||||
}';
|
||||
|
||||
if (!empty($template['indirizzi_proposti'])) {
|
||||
echo '
|
||||
$(document).load(globals.rootdir + "/modules/emails/ajax/complete.php?op=get_email&indirizzi_proposti='.$template['indirizzi_proposti'].'", function(response) {
|
||||
emails = JSON.parse(response);
|
||||
console.log(emails);
|
||||
|
||||
$(".destinatari").each(function(){
|
||||
addAutoComplete(this);
|
||||
});
|
||||
|
||||
aggiungiDestinatario();
|
||||
});';
|
||||
}
|
||||
|
||||
echo '
|
||||
});
|
||||
|
||||
function inviaEmail() {
|
||||
|
|
|
@ -56,6 +56,8 @@ switch (post('op')) {
|
|||
$template->note_aggiuntive = post('note_aggiuntive');
|
||||
$template->setTranslation('subject', post('subject'));
|
||||
$template->setTranslation('body', post('body'));
|
||||
$template->type = post('type');
|
||||
$template->indirizzi_proposti = post('indirizzi_proposti');
|
||||
$template->save();
|
||||
|
||||
$prints[] = post('prints');
|
||||
|
|
|
@ -0,0 +1,75 @@
|
|||
<?php
|
||||
/*
|
||||
* OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione
|
||||
* Copyright (C) DevCode s.r.l.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
include_once __DIR__.'/../../../core.php';
|
||||
|
||||
$resource = ($resource ? $resource : $_GET['op']);
|
||||
|
||||
switch ($resource) {
|
||||
|
||||
// Elenco e-mail
|
||||
case 'get_email':
|
||||
$indirizzi_proposti = $_GET['indirizzi_proposti'];
|
||||
$where = "";
|
||||
|
||||
if( $indirizzi_proposti==1 ) {
|
||||
$where .= 'AND an_tipianagrafiche_lang.title = "Cliente"';
|
||||
}elseif( $indirizzi_proposti==2 ) {
|
||||
$where .= 'AND an_tipianagrafiche_lang.title = "Fornitore"';
|
||||
}
|
||||
|
||||
$results = [];
|
||||
|
||||
// Tutte le anagrafiche
|
||||
$q = "SELECT DISTINCT(an_anagrafiche.email), an_anagrafiche.idanagrafica, an_anagrafiche.ragione_sociale FROM an_anagrafiche INNER JOIN an_tipianagrafiche_anagrafiche ON an_tipianagrafiche_anagrafiche.idanagrafica=an_anagrafiche.idanagrafica INNER JOIN an_tipianagrafiche ON an_tipianagrafiche.id=an_tipianagrafiche_anagrafiche.idtipoanagrafica INNER JOIN an_tipianagrafiche_lang ON (an_tipianagrafiche_lang.id_lang=1 AND an_tipianagrafiche_lang.id_record=an_tipianagrafiche.id) WHERE email != '' ".$where." ORDER BY ragione_sociale";
|
||||
$rs = $dbo->fetchArray($q);
|
||||
|
||||
foreach ($rs as $r) {
|
||||
if( !empty($r['email']) ){
|
||||
$results[] = [
|
||||
'value' => $r['email'],
|
||||
'label' => $r['ragione_sociale'].' <'.$r['email'].'>',
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
$q = "SELECT DISTINCT(an_sedi.email), an_sedi.idanagrafica, nomesede AS ragione_sociale FROM an_sedi INNER JOIN an_anagrafiche ON an_anagrafiche.idanagrafica=an_sedi.idanagrafica INNER JOIN an_tipianagrafiche_anagrafiche ON an_tipianagrafiche_anagrafiche.idanagrafica=an_anagrafiche.idanagrafica INNER JOIN an_tipianagrafiche ON an_tipianagrafiche.id=an_tipianagrafiche_anagrafiche.idtipoanagrafica INNER JOIN an_tipianagrafiche_lang ON (an_tipianagrafiche_lang.id_lang=1 AND an_tipianagrafiche_lang.id_record=an_tipianagrafiche.id) WHERE an_sedi.email != '' ".$where." ORDER BY ragione_sociale";
|
||||
|
||||
$sedi = $dbo->fetchArray($q);
|
||||
foreach ($sedi as $sede) {
|
||||
$results[] = [
|
||||
'value' => $sede['email'],
|
||||
'label' => $sede['ragione_sociale'].' <'.$sede['email'].'>',
|
||||
];
|
||||
}
|
||||
|
||||
$q = "SELECT DISTINCT(an_referenti.email), an_referenti.idanagrafica, an_referenti.nome AS ragione_sociale FROM an_referenti INNER JOIN an_anagrafiche ON an_anagrafiche.idanagrafica=an_referenti.idanagrafica INNER JOIN an_tipianagrafiche_anagrafiche ON an_tipianagrafiche_anagrafiche.idanagrafica=an_anagrafiche.idanagrafica INNER JOIN an_tipianagrafiche ON an_tipianagrafiche.id=an_tipianagrafiche_anagrafiche.idtipoanagrafica INNER JOIN an_tipianagrafiche_lang ON (an_tipianagrafiche_lang.id_lang=1 AND an_tipianagrafiche_lang.id_record=an_tipianagrafiche.id) WHERE an_referenti.email != '' ".$where." ORDER BY ragione_sociale";
|
||||
|
||||
$referenti = $dbo->fetchArray($q);
|
||||
foreach ($referenti as $referente) {
|
||||
$results[] = [
|
||||
'value' => $referente['email'],
|
||||
'label' => $referente['ragione_sociale'].' <'.$referente['email'].'>',
|
||||
];
|
||||
}
|
||||
|
||||
echo json_encode($results);
|
||||
|
||||
break;
|
||||
}
|
|
@ -60,9 +60,15 @@ if (!$record['predefined']) {
|
|||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="col-md-6">
|
||||
{[ "type": "text", "label": "<?php echo tr('Oggetto'); ?>", "name": "subject", "value": "$subject$" ]}
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
{[ "type": "select", "label": "<?php echo tr('Proponi destinatari'); ?>", "name": "indirizzi_proposti", "value": "$indirizzi_proposti$", "values":"list=\"0\":\"<?php echo tr('Nessuno');?>\", \"1\":\"<?php echo tr('Clienti');?>\", \"2\":\"<?php echo tr('Fornitori');?>\", \"3\":\"<?php echo tr('Tutti');?>\" " ]}
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
{[ "type": "select", "label": "<?php echo tr('Tipologia destinatari'); ?>", "name": "type", "value": "$type$", "values":"list=\"a\":\"<?php echo tr('A');?>\", \"cc\":\"<?php echo tr('CC');?>\", \"bcc\":\"<?php echo tr('CCN');?>\" ", "required":1 ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
|
|
|
@ -25,3 +25,8 @@ INSERT INTO `zz_settings_lang` (`id`, `id_lang`, `id_record`, `title`, `help`) V
|
|||
|
||||
-- Fix widget statistiche
|
||||
UPDATE `zz_widgets` SET `class` = 'col-md-6' WHERE `zz_widgets`.`name` = "Spazio utilizzato";
|
||||
|
||||
-- Gestione tipi destinatari e autocompletamenti destinatari nelle mail in uscita
|
||||
ALTER TABLE `em_templates`
|
||||
ADD `type` varchar(5) NOT NULL DEFAULT 'a' AFTER `note_aggiuntive`,
|
||||
ADD `indirizzi_proposti` TINYINT NOT NULL DEFAULT '0' AFTER `type`;
|
Loading…
Reference in New Issue