forked from Wavyzz/dolibarr
NEW Can send email from the member card using email templates.
This commit is contained in:
@@ -121,14 +121,22 @@ $hookmanager->initHooks(array('membercard','globalcard'));
|
|||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ($cancel) $action='';
|
|
||||||
|
|
||||||
$parameters=array('id'=>$id, 'rowid'=>$id, 'objcanvas'=>$objcanvas);
|
$parameters=array('id'=>$id, 'rowid'=>$id, 'objcanvas'=>$objcanvas);
|
||||||
$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
|
$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
|
||||||
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
||||||
|
|
||||||
if (empty($reshook))
|
if (empty($reshook))
|
||||||
{
|
{
|
||||||
|
if ($cancel)
|
||||||
|
{
|
||||||
|
if (! empty($backtopage))
|
||||||
|
{
|
||||||
|
header("Location: ".$backtopage);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
$action='';
|
||||||
|
}
|
||||||
|
|
||||||
if ($action == 'setuserid' && ($user->rights->user->self->creer || $user->rights->user->user->creer))
|
if ($action == 'setuserid' && ($user->rights->user->self->creer || $user->rights->user->user->creer))
|
||||||
{
|
{
|
||||||
$error=0;
|
$error=0;
|
||||||
@@ -715,10 +723,21 @@ if (empty($reshook))
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Actions when printing a doc from card
|
||||||
|
include DOL_DOCUMENT_ROOT.'/core/actions_printing.inc.php';
|
||||||
|
|
||||||
// Actions to build doc
|
// Actions to build doc
|
||||||
$upload_dir = $conf->adherent->dir_output;
|
$upload_dir = $conf->adherent->dir_output;
|
||||||
$permissioncreate=$user->rights->adherent->creer;
|
$permissioncreate=$user->rights->adherent->creer;
|
||||||
include DOL_DOCUMENT_ROOT.'/core/actions_builddoc.inc.php';
|
include DOL_DOCUMENT_ROOT.'/core/actions_builddoc.inc.php';
|
||||||
|
|
||||||
|
// Actions to send emails
|
||||||
|
$trigger_name='MEMBER_SENTBYMAIL';
|
||||||
|
$paramname='id';
|
||||||
|
$mode='emailfrommember';
|
||||||
|
$trackid='mem'.$object->id;
|
||||||
|
include DOL_DOCUMENT_ROOT.'/core/actions_sendmails.inc.php';
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1590,6 +1609,30 @@ else
|
|||||||
if (empty($reshook)) {
|
if (empty($reshook)) {
|
||||||
if ($action != 'valid' && $action != 'editlogin' && $action != 'editthirdparty')
|
if ($action != 'valid' && $action != 'editlogin' && $action != 'editthirdparty')
|
||||||
{
|
{
|
||||||
|
// Send
|
||||||
|
if ($object->statut == 1) {
|
||||||
|
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&action=presend&mode=init#formmailbeforetitle">' . $langs->trans('SendByMail') . '</a></div>';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Send card by email
|
||||||
|
// TODO Remove this to replace with a template
|
||||||
|
if ($user->rights->adherent->creer)
|
||||||
|
{
|
||||||
|
if ($object->statut >= 1)
|
||||||
|
{
|
||||||
|
if ($object->email) print '<div class="inline-block divButAction"><a class="butAction" href="card.php?rowid='.$object->id.'&action=sendinfo">'.$langs->trans("SendCardByMail")."</a></div>\n";
|
||||||
|
else print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NoEMail")).'">'.$langs->trans("SendCardByMail")."</a></div>\n";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print '<div class="inline-block divButAction"><font class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("ValidateBefore")).'">'.$langs->trans("SendCardByMail")."</font></div>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print '<div class="inline-block divButAction"><font class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("SendCardByMail")."</font></div>";
|
||||||
|
}
|
||||||
|
|
||||||
// Modify
|
// Modify
|
||||||
if ($user->rights->adherent->creer)
|
if ($user->rights->adherent->creer)
|
||||||
{
|
{
|
||||||
@@ -1626,24 +1669,6 @@ else
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Send card by email
|
|
||||||
if ($user->rights->adherent->creer)
|
|
||||||
{
|
|
||||||
if ($object->statut >= 1)
|
|
||||||
{
|
|
||||||
if ($object->email) print '<div class="inline-block divButAction"><a class="butAction" href="card.php?rowid='.$object->id.'&action=sendinfo">'.$langs->trans("SendCardByMail")."</a></div>\n";
|
|
||||||
else print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NoEMail")).'">'.$langs->trans("SendCardByMail")."</a></div>\n";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
print '<div class="inline-block divButAction"><font class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("ValidateBefore")).'">'.$langs->trans("SendCardByMail")."</font></div>";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
print '<div class="inline-block divButAction"><font class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("SendCardByMail")."</font></div>";
|
|
||||||
}
|
|
||||||
|
|
||||||
// Terminate
|
// Terminate
|
||||||
if ($object->statut >= 1)
|
if ($object->statut >= 1)
|
||||||
{
|
{
|
||||||
@@ -1720,52 +1745,66 @@ else
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Select mail models is same action as presend
|
||||||
print '<div class="fichecenter"><div class="fichehalfleft">';
|
if (GETPOST('modelselected')) {
|
||||||
print '<a name="builddoc"></a>'; // ancre
|
$action = 'presend';
|
||||||
|
|
||||||
// Documents generes
|
|
||||||
$filename = dol_sanitizeFileName($object->ref);
|
|
||||||
//$filename = 'tmp_cards.php';
|
|
||||||
//$filedir = $conf->adherent->dir_output . '/' . get_exdir($object->id, 2, 0, 0, $object, 'member') . dol_sanitizeFileName($object->ref);
|
|
||||||
$filedir = $conf->adherent->dir_output . '/' . get_exdir(0, 0, 0, 0, $object, 'member');
|
|
||||||
$urlsource = $_SERVER['PHP_SELF'] . '?id=' . $object->id;
|
|
||||||
$genallowed = $user->rights->adherent->creer;
|
|
||||||
$delallowed = $user->rights->adherent->supprimer;
|
|
||||||
|
|
||||||
print $formfile->showdocuments('member', $filename, $filedir, $urlsource, $genallowed, $delallowed, $object->modelpdf, 1, 0, 0, 28, 0, '', '', '', $object->default_lang, '', $object);
|
|
||||||
$somethingshown = $formfile->numoffiles;
|
|
||||||
|
|
||||||
// Show links to link elements
|
|
||||||
//$linktoelem = $form->showLinkToObjectBlock($object, null, array('subscription'));
|
|
||||||
//$somethingshown = $form->showLinkedObjectBlock($object, '');
|
|
||||||
|
|
||||||
// Show links to link elements
|
|
||||||
/*$linktoelem = $form->showLinkToObjectBlock($object,array('order'));
|
|
||||||
if ($linktoelem) print ($somethingshown?'':'<br>').$linktoelem;
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Shon online payment link
|
|
||||||
$useonlinepayment = (! empty($conf->paypal->enabled) || ! empty($conf->stripe->enabled) || ! empty($conf->paybox->enabled));
|
|
||||||
|
|
||||||
if ($useonlinepayment)
|
|
||||||
{
|
|
||||||
print '<br>';
|
|
||||||
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php';
|
|
||||||
print showOnlinePaymentUrl('membersubscription', $object->ref);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
print '</div><div class="fichehalfright"><div class="ficheaddleft">';
|
if ($action != 'presend')
|
||||||
|
{
|
||||||
|
print '<div class="fichecenter"><div class="fichehalfleft">';
|
||||||
|
print '<a name="builddoc"></a>'; // ancre
|
||||||
|
|
||||||
// List of actions on element
|
// Documents generes
|
||||||
/* Already in tab Agenda/Events
|
$filename = dol_sanitizeFileName($object->ref);
|
||||||
include_once DOL_DOCUMENT_ROOT . '/core/class/html.formactions.class.php';
|
//$filename = 'tmp_cards.php';
|
||||||
$formactions = new FormActions($db);
|
//$filedir = $conf->adherent->dir_output . '/' . get_exdir($object->id, 2, 0, 0, $object, 'member') . dol_sanitizeFileName($object->ref);
|
||||||
$somethingshown = $formactions->showactions($object, 'member', $socid, 1);
|
$filedir = $conf->adherent->dir_output . '/' . get_exdir(0, 0, 0, 0, $object, 'member');
|
||||||
*/
|
$urlsource = $_SERVER['PHP_SELF'] . '?id=' . $object->id;
|
||||||
print '</div></div></div>';
|
$genallowed = $user->rights->adherent->creer;
|
||||||
|
$delallowed = $user->rights->adherent->supprimer;
|
||||||
|
|
||||||
|
print $formfile->showdocuments('member', $filename, $filedir, $urlsource, $genallowed, $delallowed, $object->modelpdf, 1, 0, 0, 28, 0, '', '', '', $object->default_lang, '', $object);
|
||||||
|
$somethingshown = $formfile->numoffiles;
|
||||||
|
|
||||||
|
// Show links to link elements
|
||||||
|
//$linktoelem = $form->showLinkToObjectBlock($object, null, array('subscription'));
|
||||||
|
//$somethingshown = $form->showLinkedObjectBlock($object, '');
|
||||||
|
|
||||||
|
// Show links to link elements
|
||||||
|
/*$linktoelem = $form->showLinkToObjectBlock($object,array('order'));
|
||||||
|
if ($linktoelem) print ($somethingshown?'':'<br>').$linktoelem;
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Shon online payment link
|
||||||
|
$useonlinepayment = (! empty($conf->paypal->enabled) || ! empty($conf->stripe->enabled) || ! empty($conf->paybox->enabled));
|
||||||
|
|
||||||
|
if ($useonlinepayment)
|
||||||
|
{
|
||||||
|
print '<br>';
|
||||||
|
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php';
|
||||||
|
print showOnlinePaymentUrl('membersubscription', $object->ref);
|
||||||
|
}
|
||||||
|
|
||||||
|
print '</div><div class="fichehalfright"><div class="ficheaddleft">';
|
||||||
|
|
||||||
|
// List of actions on element
|
||||||
|
/* Already in tab Agenda/Events
|
||||||
|
include_once DOL_DOCUMENT_ROOT . '/core/class/html.formactions.class.php';
|
||||||
|
$formactions = new FormActions($db);
|
||||||
|
$somethingshown = $formactions->showactions($object, 'member', $socid, 1);
|
||||||
|
*/
|
||||||
|
print '</div></div></div>';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Presend form
|
||||||
|
$modelmail='member';
|
||||||
|
$defaulttopic='SendMemberRef';
|
||||||
|
$diroutput = $conf->adherent->dir_output;
|
||||||
|
$trackid = 'mem'.$object->id;
|
||||||
|
|
||||||
|
include DOL_DOCUMENT_ROOT.'/core/tpl/card_presend.tpl.php';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1192,7 +1192,7 @@ class Adherent extends CommonObject
|
|||||||
// Load other properties
|
// Load other properties
|
||||||
$result=$this->fetch_subscriptions();
|
$result=$this->fetch_subscriptions();
|
||||||
|
|
||||||
return $result;
|
return $this->id;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -175,6 +175,7 @@ if ($conf->supplier_proposal->enabled) $elementList['supplier_proposal_send']=$l
|
|||||||
if ($conf->fournisseur->enabled) $elementList['order_supplier_send']=$langs->trans('MailToSendSupplierOrder');
|
if ($conf->fournisseur->enabled) $elementList['order_supplier_send']=$langs->trans('MailToSendSupplierOrder');
|
||||||
if ($conf->fournisseur->enabled) $elementList['invoice_supplier_send']=$langs->trans('MailToSendSupplierInvoice');
|
if ($conf->fournisseur->enabled) $elementList['invoice_supplier_send']=$langs->trans('MailToSendSupplierInvoice');
|
||||||
if ($conf->societe->enabled) $elementList['thirdparty']=$langs->trans('MailToThirdparty');
|
if ($conf->societe->enabled) $elementList['thirdparty']=$langs->trans('MailToThirdparty');
|
||||||
|
if ($conf->adherent->enabled) $elementList['member']=$langs->trans('MailToMember');
|
||||||
if ($conf->contrat->enabled) $elementList['contract']=$langs->trans('MailToSendContract');
|
if ($conf->contrat->enabled) $elementList['contract']=$langs->trans('MailToSendContract');
|
||||||
$elementList['all']=$langs->trans('VisibleEverywhere');
|
$elementList['all']=$langs->trans('VisibleEverywhere');
|
||||||
$elementList['none']=$langs->trans('VisibleNowhere');
|
$elementList['none']=$langs->trans('VisibleNowhere');
|
||||||
|
|||||||
@@ -1210,11 +1210,6 @@ if (empty($reshook))
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Actions to build doc
|
|
||||||
$upload_dir = $conf->commande->dir_output;
|
|
||||||
$permissioncreate = $user->rights->commande->creer;
|
|
||||||
include DOL_DOCUMENT_ROOT.'/core/actions_builddoc.inc.php';
|
|
||||||
|
|
||||||
if ($action == 'update_extras')
|
if ($action == 'update_extras')
|
||||||
{
|
{
|
||||||
// Fill array 'array_options' with data from update form
|
// Fill array 'array_options' with data from update form
|
||||||
@@ -1254,6 +1249,11 @@ if (empty($reshook))
|
|||||||
// Actions when printing a doc from card
|
// Actions when printing a doc from card
|
||||||
include DOL_DOCUMENT_ROOT.'/core/actions_printing.inc.php';
|
include DOL_DOCUMENT_ROOT.'/core/actions_printing.inc.php';
|
||||||
|
|
||||||
|
// Actions to build doc
|
||||||
|
$upload_dir = $conf->commande->dir_output;
|
||||||
|
$permissioncreate = $user->rights->commande->creer;
|
||||||
|
include DOL_DOCUMENT_ROOT.'/core/actions_builddoc.inc.php';
|
||||||
|
|
||||||
// Actions to send emails
|
// Actions to send emails
|
||||||
$trigger_name='ORDER_SENTBYMAIL';
|
$trigger_name='ORDER_SENTBYMAIL';
|
||||||
$paramname='id';
|
$paramname='id';
|
||||||
|
|||||||
@@ -918,51 +918,17 @@ if (empty($reshook))
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Generation doc (depuis lien ou depuis cartouche doc)
|
|
||||||
else if ($action == 'builddoc' && $user->rights->contrat->creer) {
|
|
||||||
if (GETPOST('model')) {
|
|
||||||
$object->setDocModel($user, GETPOST('model'));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Define output language
|
// Actions to build doc
|
||||||
$outputlangs = $langs;
|
$upload_dir = $conf->contrat->dir_output;
|
||||||
if (! empty($conf->global->MAIN_MULTILANGS)) {
|
$permissioncreate = $user->rights->contrat->creer;
|
||||||
$outputlangs = new Translate("", $conf);
|
include DOL_DOCUMENT_ROOT.'/core/actions_builddoc.inc.php';
|
||||||
$newlang = (GETPOST('lang_id','aZ09') ? GETPOST('lang_id','aZ09') : $object->thirdparty->default_lang);
|
|
||||||
$outputlangs->setDefaultLang($newlang);
|
|
||||||
}
|
|
||||||
$ret = $object->fetch($id); // Reload to get new records
|
|
||||||
$result = $object->generateDocument($object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref);
|
|
||||||
if ($result <= 0)
|
|
||||||
{
|
|
||||||
setEventMessages($object->error, $object->errors, 'errors');
|
|
||||||
$action='';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Remove file in doc form
|
|
||||||
else if ($action == 'remove_file' && $user->rights->contrat->creer) {
|
|
||||||
if ($object->id > 0) {
|
|
||||||
require_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php';
|
|
||||||
|
|
||||||
$langs->load("other");
|
|
||||||
$upload_dir = $conf->contrat->dir_output;
|
|
||||||
$file = $upload_dir . '/' . GETPOST('file');
|
|
||||||
$ret = dol_delete_file($file, 0, 0, 0, $object);
|
|
||||||
if ($ret) setEventMessages($langs->trans("FileWasRemoved", GETPOST('file')), null, 'mesgs');
|
|
||||||
else setEventMessages($langs->trans("ErrorFailToDeleteFile", GETPOST('file')), null, 'errors');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Send mail
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Actions to send emails
|
// Actions to send emails
|
||||||
$trigger_name='CONTRACT_SENTBYMAIL';
|
$trigger_name='CONTRACT_SENTBYMAIL';
|
||||||
$paramname='id';
|
$paramname='id';
|
||||||
$mode='emailfromcontract';
|
$mode='emailfromcontract';
|
||||||
$trackid='cont'.$object->id;
|
$trackid='con'.$object->id;
|
||||||
include DOL_DOCUMENT_ROOT.'/core/actions_sendmails.inc.php';
|
include DOL_DOCUMENT_ROOT.'/core/actions_sendmails.inc.php';
|
||||||
|
|
||||||
|
|
||||||
@@ -2164,127 +2130,13 @@ else
|
|||||||
print '</div></div></div>';
|
print '</div></div></div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
// Presend form
|
||||||
* Action presend
|
$modelmail='contract';
|
||||||
*/
|
$defaulttopic='SendContractRef';
|
||||||
if ($action == 'presend')
|
$diroutput = $conf->contrat->dir_output;
|
||||||
{
|
$trackid = 'con'.$object->id;
|
||||||
$object->fetch_projet();
|
|
||||||
|
|
||||||
$ref = dol_sanitizeFileName($object->ref);
|
|
||||||
include_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php';
|
|
||||||
$fileparams = dol_most_recent_file($conf->contrat->dir_output . '/' . $ref, preg_quote($ref, '/').'[^\-]+');
|
|
||||||
$file = $fileparams['fullname'];
|
|
||||||
|
|
||||||
// Define output language
|
|
||||||
$outputlangs = $langs;
|
|
||||||
$newlang = '';
|
|
||||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST['lang_id']))
|
|
||||||
$newlang = $_REQUEST['lang_id'];
|
|
||||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang))
|
|
||||||
$newlang = $object->thirdparty->default_lang;
|
|
||||||
|
|
||||||
if (!empty($newlang))
|
|
||||||
{
|
|
||||||
$outputlangs = new Translate('', $conf);
|
|
||||||
$outputlangs->setDefaultLang($newlang);
|
|
||||||
$outputlangs->load('commercial');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Build document if it not exists
|
|
||||||
if (! $file || ! is_readable($file)) {
|
|
||||||
$result = $object->generateDocument(GETPOST('model') ? GETPOST('model') : $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref);
|
|
||||||
if ($result <= 0) {
|
|
||||||
dol_print_error($db, $object->error, $object->errors);
|
|
||||||
exit();
|
|
||||||
}
|
|
||||||
$fileparams = dol_most_recent_file($conf->contrat->dir_output . '/' . $ref, preg_quote($ref, '/').'[^\-]+');
|
|
||||||
$file = $fileparams['fullname'];
|
|
||||||
}
|
|
||||||
|
|
||||||
print '<div id="formmailbeforetitle" name="formmailbeforetitle"></div>';
|
|
||||||
print '<div class="clearboth"></div>';
|
|
||||||
print '<br>';
|
|
||||||
print load_fiche_titre($langs->trans('SendByMail'));
|
|
||||||
|
|
||||||
dol_fiche_head('');
|
|
||||||
|
|
||||||
// Cree l'objet formulaire mail
|
|
||||||
include_once DOL_DOCUMENT_ROOT . '/core/class/html.formmail.class.php';
|
|
||||||
$formmail = new FormMail($db);
|
|
||||||
$formmail->param['langsmodels']=(empty($newlang)?$langs->defaultlang:$newlang);
|
|
||||||
$formmail->fromtype = (GETPOST('fromtype')?GETPOST('fromtype'):(!empty($conf->global->MAIN_MAIL_DEFAULT_FROMTYPE)?$conf->global->MAIN_MAIL_DEFAULT_FROMTYPE:'user'));
|
|
||||||
|
|
||||||
if($formmail->fromtype === 'user'){
|
|
||||||
$formmail->fromid = $user->id;
|
|
||||||
|
|
||||||
}
|
|
||||||
$formmail->trackid='cont'.$object->id;
|
|
||||||
if (! empty($conf->global->MAIN_EMAIL_ADD_TRACK_ID) && ($conf->global->MAIN_EMAIL_ADD_TRACK_ID & 2)) // If bit 2 is set
|
|
||||||
{
|
|
||||||
include DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
|
|
||||||
$formmail->frommail=dolAddEmailTrackId($formmail->frommail, 'ord'.$object->id);
|
|
||||||
}
|
|
||||||
$formmail->withfrom = 1;
|
|
||||||
$liste = array();
|
|
||||||
foreach ($object->thirdparty->thirdparty_and_contact_email_array(1) as $key => $value)
|
|
||||||
$liste [$key] = $value;
|
|
||||||
$formmail->withto = GETPOST('sendto') ? GETPOST('sendto') : $liste;
|
|
||||||
$formmail->withtocc = $liste;
|
|
||||||
$formmail->withtoccc = $conf->global->MAIN_EMAIL_USECCC;
|
|
||||||
if (empty($object->ref_client)) {
|
|
||||||
$formmail->withtopic = $outputlangs->trans('SendContractRef', '__CONTRACTREF__');
|
|
||||||
} else if (! empty($object->ref_client)) {
|
|
||||||
$formmail->withtopic = $outputlangs->trans('SendContractRef', '__CONTRACTREF__ (__REFCLIENT__)');
|
|
||||||
}
|
|
||||||
$formmail->withfile = 2;
|
|
||||||
$formmail->withbody = 1;
|
|
||||||
$formmail->withdeliveryreceipt = 1;
|
|
||||||
$formmail->withcancel = 1;
|
|
||||||
// Array of substitutions
|
|
||||||
$formmail->setSubstitFromObject($object);
|
|
||||||
$formmail->substit['__PERSONALIZED__']=''; // deprecated
|
|
||||||
$formmail->substit['__CONTACTCIVNAME__']='';
|
|
||||||
|
|
||||||
$custcontact = '';
|
|
||||||
$contactarr = array();
|
|
||||||
$contactarr = $object->liste_contact(- 1, 'external');
|
|
||||||
|
|
||||||
if (is_array($contactarr) && count($contactarr) > 0)
|
|
||||||
{
|
|
||||||
foreach ($contactarr as $contact)
|
|
||||||
{
|
|
||||||
if ($contact['libelle'] == $langs->trans('TypeContact_contract_external_CUSTOMER')) { // TODO Use code and not label
|
|
||||||
$contactstatic = new Contact($db);
|
|
||||||
$contactstatic->fetch($contact['id']);
|
|
||||||
$custcontact = $contactstatic->getFullName($langs, 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (! empty($custcontact)) {
|
|
||||||
$formmail->substit['__CONTACTCIVNAME__'] = $custcontact;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Tableau des parametres complementaires
|
|
||||||
$formmail->param['action'] = 'send';
|
|
||||||
$formmail->param['models'] = 'contract';
|
|
||||||
$formmail->param['models_id']=GETPOST('modelmailselected','int');
|
|
||||||
$formmail->param['contractid'] = $object->id;
|
|
||||||
$formmail->param['returnurl'] = $_SERVER["PHP_SELF"] . '?id=' . $object->id;
|
|
||||||
|
|
||||||
// Init list of files
|
|
||||||
if (GETPOST("mode") == 'init') {
|
|
||||||
$formmail->clear_attached_files();
|
|
||||||
$formmail->add_attached_files($file, basename($file), dol_mimetype($file));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Show form
|
|
||||||
print $formmail->get_form();
|
|
||||||
|
|
||||||
dol_fiche_end();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
include DOL_DOCUMENT_ROOT.'/core/tpl/card_presend.tpl.php';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -18,8 +18,8 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* \file htdocs/core/actions_sendmails.inc.php
|
* \file htdocs/core/actions_sendmails.inc.php
|
||||||
* \brief Code for actions on sending mails from object page
|
* \brief Code for actions on sending mails from object page
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// $mysoc must be defined
|
// $mysoc must be defined
|
||||||
// $id must be defined
|
// $id must be defined
|
||||||
@@ -113,13 +113,18 @@ if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_PO
|
|||||||
$result=$object->fetch($id);
|
$result=$object->fetch($id);
|
||||||
|
|
||||||
$sendtosocid=0; // Thirdparty on object
|
$sendtosocid=0; // Thirdparty on object
|
||||||
if (method_exists($object,"fetch_thirdparty") && $object->element != 'societe')
|
if (method_exists($object,"fetch_thirdparty") && ! in_array($object->element, array('societe','member')))
|
||||||
{
|
{
|
||||||
$result=$object->fetch_thirdparty();
|
$result=$object->fetch_thirdparty();
|
||||||
if ($object->element == 'user' && $result == 0) $result=1; // Even if not found, we consider ok
|
if ($object->element == 'user' && $result == 0) $result=1; // Even if not found, we consider ok
|
||||||
$thirdparty=$object->thirdparty;
|
$thirdparty=$object->thirdparty;
|
||||||
$sendtosocid=$thirdparty->id;
|
$sendtosocid=$thirdparty->id;
|
||||||
}
|
}
|
||||||
|
else if ($object->element == 'member')
|
||||||
|
{
|
||||||
|
$thirdparty=$object;
|
||||||
|
if ($thirdparty->id > 0) $sendtosocid=$thirdparty->id;
|
||||||
|
}
|
||||||
else if ($object->element == 'societe')
|
else if ($object->element == 'societe')
|
||||||
{
|
{
|
||||||
$thirdparty=$object;
|
$thirdparty=$object;
|
||||||
@@ -470,7 +475,7 @@ if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_PO
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
$langs->load("other");
|
$langs->load("other");
|
||||||
setEventMessages($langs->trans('ErrorFailedToReadEntity',$object->element), null, 'errors');
|
setEventMessages($langs->trans('ErrorFailedToReadObject',$object->element), null, 'errors');
|
||||||
dol_syslog('Failed to read data of object id='.$object->id.' element='.$object->element);
|
dol_syslog('Failed to read data of object id='.$object->id.' element='.$object->element);
|
||||||
$action = 'presend';
|
$action = 'presend';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -465,19 +465,6 @@ class FormMail extends Form
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// withoptiononeemailperrecipient
|
|
||||||
if (! empty($this->withoptiononeemailperrecipient))
|
|
||||||
{
|
|
||||||
$out.= '<tr><td class="fieldrequired" width="180">';
|
|
||||||
$out.= $langs->trans("GroupEmails");
|
|
||||||
$out.= '</td><td>';
|
|
||||||
$out.=' <input type="checkbox" name="oneemailperrecipient"'.($this->withoptiononeemailperrecipient > 0?' checked="checked"':'').'> ';
|
|
||||||
$out.= $langs->trans("OneEmailPerRecipient").' - ';
|
|
||||||
$out.= $langs->trans("WarningIfYouCheckOneRecipientPerEmail");
|
|
||||||
$out.= '</td></tr>';
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// To
|
// To
|
||||||
if (! empty($this->withto) || is_array($this->withto))
|
if (! empty($this->withto) || is_array($this->withto))
|
||||||
{
|
{
|
||||||
@@ -545,10 +532,22 @@ class FormMail extends Form
|
|||||||
$out.= "</td></tr>\n";
|
$out.= "</td></tr>\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// withoptiononeemailperrecipient
|
||||||
|
if (! empty($this->withoptiononeemailperrecipient))
|
||||||
|
{
|
||||||
|
$out.= '<tr><td>';
|
||||||
|
$out.= $langs->trans("GroupEmails");
|
||||||
|
$out.= '</td><td>';
|
||||||
|
$out.=' <input type="checkbox" name="oneemailperrecipient"'.($this->withoptiononeemailperrecipient > 0?' checked="checked"':'').'> ';
|
||||||
|
$out.= $langs->trans("OneEmailPerRecipient").' - ';
|
||||||
|
$out.= $langs->trans("WarningIfYouCheckOneRecipientPerEmail");
|
||||||
|
$out.= '</td></tr>';
|
||||||
|
}
|
||||||
|
|
||||||
// CC
|
// CC
|
||||||
if (! empty($this->withtocc) || is_array($this->withtocc))
|
if (! empty($this->withtocc) || is_array($this->withtocc))
|
||||||
{
|
{
|
||||||
$out.= '<tr><td width="180">';
|
$out.= '<tr><td>';
|
||||||
$out.= $form->textwithpicto($langs->trans("MailCC"),$langs->trans("YouCanUseCommaSeparatorForSeveralRecipients"));
|
$out.= $form->textwithpicto($langs->trans("MailCC"),$langs->trans("YouCanUseCommaSeparatorForSeveralRecipients"));
|
||||||
$out.= '</td><td>';
|
$out.= '</td><td>';
|
||||||
if ($this->withtoccreadonly)
|
if ($this->withtoccreadonly)
|
||||||
@@ -577,7 +576,7 @@ class FormMail extends Form
|
|||||||
// CCC
|
// CCC
|
||||||
if (! empty($this->withtoccc) || is_array($this->withtoccc))
|
if (! empty($this->withtoccc) || is_array($this->withtoccc))
|
||||||
{
|
{
|
||||||
$out.= '<tr><td width="180">';
|
$out.= '<tr><td>';
|
||||||
$out.= $form->textwithpicto($langs->trans("MailCCC"),$langs->trans("YouCanUseCommaSeparatorForSeveralRecipients"));
|
$out.= $form->textwithpicto($langs->trans("MailCCC"),$langs->trans("YouCanUseCommaSeparatorForSeveralRecipients"));
|
||||||
$out.= '</td><td>';
|
$out.= '</td><td>';
|
||||||
if (! empty($this->withtocccreadonly))
|
if (! empty($this->withtocccreadonly))
|
||||||
@@ -645,7 +644,7 @@ class FormMail extends Form
|
|||||||
// Ask delivery receipt
|
// Ask delivery receipt
|
||||||
if (! empty($this->withdeliveryreceipt))
|
if (! empty($this->withdeliveryreceipt))
|
||||||
{
|
{
|
||||||
$out.= '<tr><td width="180">'.$langs->trans("DeliveryReceipt").'</td><td>';
|
$out.= '<tr><td>'.$langs->trans("DeliveryReceipt").'</td><td>';
|
||||||
|
|
||||||
if (! empty($this->withdeliveryreceiptreadonly))
|
if (! empty($this->withdeliveryreceiptreadonly))
|
||||||
{
|
{
|
||||||
@@ -677,7 +676,7 @@ class FormMail extends Form
|
|||||||
$defaulttopic=make_substitutions($defaulttopic,$this->substit);
|
$defaulttopic=make_substitutions($defaulttopic,$this->substit);
|
||||||
|
|
||||||
$out.= '<tr>';
|
$out.= '<tr>';
|
||||||
$out.= '<td class="fieldrequired" width="180">'.$langs->trans("MailTopic").'</td>';
|
$out.= '<td class="fieldrequired">'.$langs->trans("MailTopic").'</td>';
|
||||||
$out.= '<td>';
|
$out.= '<td>';
|
||||||
if ($this->withtopicreadonly)
|
if ($this->withtopicreadonly)
|
||||||
{
|
{
|
||||||
@@ -695,7 +694,7 @@ class FormMail extends Form
|
|||||||
if (! empty($this->withfile))
|
if (! empty($this->withfile))
|
||||||
{
|
{
|
||||||
$out.= '<tr>';
|
$out.= '<tr>';
|
||||||
$out.= '<td width="180">'.$langs->trans("MailFile").'</td>';
|
$out.= '<td>'.$langs->trans("MailFile").'</td>';
|
||||||
|
|
||||||
$out.= '<td>';
|
$out.= '<td>';
|
||||||
if (! empty($this->withmaindocfile))
|
if (! empty($this->withmaindocfile))
|
||||||
@@ -785,7 +784,8 @@ class FormMail extends Form
|
|||||||
$typeforonlinepayment='free';
|
$typeforonlinepayment='free';
|
||||||
if ($this->param["models"]=='order_send') $typeforonlinepayment='order'; // TODO use detection on something else than template
|
if ($this->param["models"]=='order_send') $typeforonlinepayment='order'; // TODO use detection on something else than template
|
||||||
if ($this->param["models"]=='facture_send') $typeforonlinepayment='invoice'; // TODO use detection on something else than template
|
if ($this->param["models"]=='facture_send') $typeforonlinepayment='invoice'; // TODO use detection on something else than template
|
||||||
$url=getOnlinePaymentUrl(0, $typeforonlinepayment, $this->substit['__REF__']);
|
if ($this->param["models"]=='member_send') $typeforonlinepayment='member'; // TODO use detection on something else than template
|
||||||
|
$url=getOnlinePaymentUrl(0, $typeforonlinepayment, $this->substit['__REF__']);
|
||||||
//$paymenturl=str_replace('\n',"\n",$langs->transnoentitiesnoconv("PredefinedMailContentLink",$url));
|
//$paymenturl=str_replace('\n',"\n",$langs->transnoentitiesnoconv("PredefinedMailContentLink",$url));
|
||||||
$paymenturl=$url;
|
$paymenturl=$url;
|
||||||
}
|
}
|
||||||
@@ -825,7 +825,7 @@ class FormMail extends Form
|
|||||||
}
|
}
|
||||||
|
|
||||||
$out.= '<tr>';
|
$out.= '<tr>';
|
||||||
$out.= '<td width="180" valign="top">'.$langs->trans("MailText").'</td>';
|
$out.= '<td valign="top">'.$langs->trans("MailText").'</td>';
|
||||||
$out.= '<td>';
|
$out.= '<td>';
|
||||||
if ($this->withbodyreadonly)
|
if ($this->withbodyreadonly)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -73,13 +73,16 @@ if ($action == 'presend')
|
|||||||
|
|
||||||
// Build document if it not exists
|
// Build document if it not exists
|
||||||
if (! $file || ! is_readable($file)) {
|
if (! $file || ! is_readable($file)) {
|
||||||
$result = $object->generateDocument(GETPOST('model') ? GETPOST('model') : $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref);
|
if ($object->element != 'member')
|
||||||
if ($result <= 0) {
|
{
|
||||||
dol_print_error($db, $object->error, $object->errors);
|
$result = $object->generateDocument(GETPOST('model') ? GETPOST('model') : $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref);
|
||||||
exit();
|
if ($result <= 0) {
|
||||||
|
dol_print_error($db, $object->error, $object->errors);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
$fileparams = dol_most_recent_file($diroutput . '/' . $ref, preg_quote($ref, '/').'[^\-]+');
|
||||||
|
$file = $fileparams['fullname'];
|
||||||
}
|
}
|
||||||
$fileparams = dol_most_recent_file($diroutput . '/' . $ref, preg_quote($ref, '/').'[^\-]+');
|
|
||||||
$file = $fileparams['fullname'];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
print '<div id="formmailbeforetitle" name="formmailbeforetitle"></div>';
|
print '<div id="formmailbeforetitle" name="formmailbeforetitle"></div>';
|
||||||
@@ -120,6 +123,10 @@ if ($action == 'presend')
|
|||||||
$liste[$key] = $value;
|
$liste[$key] = $value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
elseif ($object->element == 'member')
|
||||||
|
{
|
||||||
|
$liste['thirdparty'] = $object->getFullName($langs)." <".$object->email.">";
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
foreach ($object->thirdparty->thirdparty_and_contact_email_array(1) as $key => $value) {
|
foreach ($object->thirdparty->thirdparty_and_contact_email_array(1) as $key => $value) {
|
||||||
|
|||||||
@@ -73,6 +73,7 @@ insert into llx_c_action_trigger (code,label,description,elementtype,rang) value
|
|||||||
insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('SHIPPING_VALIDATE','Shipping validated','Executed when a shipping is validated','shipping',20);
|
insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('SHIPPING_VALIDATE','Shipping validated','Executed when a shipping is validated','shipping',20);
|
||||||
insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('SHIPPING_SENTBYMAIL','Shipping sent by mail','Executed when a shipping is sent by mail','shipping',21);
|
insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('SHIPPING_SENTBYMAIL','Shipping sent by mail','Executed when a shipping is sent by mail','shipping',21);
|
||||||
insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('MEMBER_VALIDATE','Member validated','Executed when a member is validated','member',22);
|
insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('MEMBER_VALIDATE','Member validated','Executed when a member is validated','member',22);
|
||||||
|
insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('MEMBER_SENTBYMAIL','Mails sent from member card','Executed when you send email from member card','member',23);
|
||||||
insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('MEMBER_SUBSCRIPTION','Member subscribed','Executed when a member is subscribed','member',24);
|
insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('MEMBER_SUBSCRIPTION','Member subscribed','Executed when a member is subscribed','member',24);
|
||||||
insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('MEMBER_RESILIATE','Member resiliated','Executed when a member is resiliated','member',25);
|
insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('MEMBER_RESILIATE','Member resiliated','Executed when a member is resiliated','member',25);
|
||||||
insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('MEMBER_DELETE','Member deleted','Executed when a member is deleted','member',26);
|
insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('MEMBER_DELETE','Member deleted','Executed when a member is deleted','member',26);
|
||||||
|
|||||||
@@ -42,6 +42,8 @@ ALTER TABLE llx_website_page ADD COLUMN fk_user_modif integer;
|
|||||||
-- For 7.0
|
-- For 7.0
|
||||||
|
|
||||||
|
|
||||||
|
insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('MEMBER_SENTBYMAIL','Mails sent from member card','Executed when you send email from member card','member',23);
|
||||||
|
|
||||||
ALTER TABLE llx_ecm_files MODIFY label varchar(128) NOT NULL;
|
ALTER TABLE llx_ecm_files MODIFY label varchar(128) NOT NULL;
|
||||||
ALTER TABLE llx_ecm_files ADD COLUMN share varchar(128) NULL after label;
|
ALTER TABLE llx_ecm_files ADD COLUMN share varchar(128) NULL after label;
|
||||||
|
|
||||||
|
|||||||
@@ -1694,6 +1694,7 @@ MailToSendSupplierOrder=To send supplier order
|
|||||||
MailToSendSupplierInvoice=To send supplier invoice
|
MailToSendSupplierInvoice=To send supplier invoice
|
||||||
MailToSendContract=To send a contract
|
MailToSendContract=To send a contract
|
||||||
MailToThirdparty=To send email from third party page
|
MailToThirdparty=To send email from third party page
|
||||||
|
MailToMember=To send email from member page
|
||||||
ByDefaultInList=Show by default on list view
|
ByDefaultInList=Show by default on list view
|
||||||
YouUseLastStableVersion=You use the latest stable version
|
YouUseLastStableVersion=You use the latest stable version
|
||||||
TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
|
TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
|
||||||
|
|||||||
Reference in New Issue
Block a user