Debug v14

This commit is contained in:
Laurent Destailleur 2021-05-11 14:50:04 +02:00
parent 200c36836b
commit c37ccc10b1
7 changed files with 157 additions and 150 deletions

View File

@ -14,7 +14,6 @@ NEW: Add a performance center page with all information and advices related to t
NEW: A lot of fix into english text after a small proofreading campaign (still not perfect, but really better)
NEW: All main menu entries are using the picto of the module
NEW: Add an example of scheduled job to send email reminder for unpayed invoices
NEW: Accountancy - Add closure menu
NEW: Accountancy - Add FEC import
NEW: Accountancy - Add a confirmation form with options on export
NEW: Accountancy - Add select date from/to in already bind customer and supplier list

View File

@ -31,6 +31,7 @@ if ($action == 'update' && is_array($arrayofparameters)) {
$db->begin();
foreach ($arrayofparameters as $key => $val) {
var_dump($key);
// Modify constant only if key was posted (avoid resetting key to the null value)
if (GETPOSTISSET($key)) {
if (preg_match('/category:/', $val['type'])) {

View File

@ -3512,7 +3512,7 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $
'partnership', 'payment', 'pencil-ruler', 'preview', 'project', 'projectpub', 'projecttask', 'refresh', 'salary', 'shipment', 'supplier_invoice', 'technic', 'ticket',
'error', 'warning',
'reception', 'recruitmentcandidature', 'recruitmentjobposition', 'resource',
'shapes', 'supplier_proposal', 'supplier_order', 'supplier_invoice',
'shapes', 'supplier', 'supplier_proposal', 'supplier_order', 'supplier_invoice',
'timespent', 'title_setup', 'title_accountancy', 'title_bank', 'title_hrm', 'title_agenda',
'uncheck', 'user-cog', 'website', 'workstation',
'conferenceorbooth', 'eventorganization'
@ -3556,7 +3556,8 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $
'reception'=>'dolly', 'recruitmentjobposition'=>'id-card-alt', 'recruitmentcandidature'=>'id-badge',
'resize'=>'crop', 'supplier_order'=>'dol-order_supplier', 'supplier_proposal'=>'file-signature',
'refresh'=>'redo', 'resource'=>'laptop-house',
'salary'=>'wallet', 'shipment'=>'dolly', 'stock'=>'box-open', 'stats' => 'chart-bar', 'split'=>'code-branch', 'stripe'=>'stripe-s', 'supplier_invoice'=>'file-invoice-dollar', 'technic'=>'cogs', 'ticket'=>'ticket-alt',
'salary'=>'wallet', 'shipment'=>'dolly', 'stock'=>'box-open', 'stats' => 'chart-bar', 'split'=>'code-branch', 'stripe'=>'stripe-s',
'supplier'=>'building', 'supplier_invoice'=>'file-invoice-dollar', 'technic'=>'cogs', 'ticket'=>'ticket-alt',
'timespent'=>'clock', 'title_setup'=>'tools', 'title_accountancy'=>'money-check-alt', 'title_bank'=>'university', 'title_hrm'=>'umbrella-beach',
'title_agenda'=>'calendar-alt',
'uncheck'=>'times', 'uparrow'=>'share', 'vcard'=>'address-card',
@ -3634,7 +3635,7 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $
'reception'=>'flip', 'recruitmentjobposition'=>'infobox-adherent', 'recruitmentcandidature'=>'infobox-adherent',
'resource'=>'infobox-action',
'salary'=>'infobox-bank_account', 'shipment'=>'infobox-commande', 'supplier_invoice'=>'infobox-order_supplier', 'supplier_invoicea'=>'infobox-order_supplier', 'supplier_invoiced'=>'infobox-order_supplier',
'supplier_order'=>'infobox-order_supplier', 'supplier_proposal'=>'infobox-supplier_proposal',
'supplier'=>'infobox-order_supplier', 'supplier_order'=>'infobox-order_supplier', 'supplier_proposal'=>'infobox-supplier_proposal',
'ticket'=>'infobox-contrat', 'title_accountancy'=>'infobox-bank_account', 'title_hrm'=>'infobox-holiday', 'expensereport'=>'infobox-expensereport', 'trip'=>'infobox-expensereport', 'title_agenda'=>'infobox-action',
//'title_setup'=>'infobox-action', 'tools'=>'infobox-action',
'list-alt'=>'imgforviewmode', 'calendar'=>'imgforviewmode', 'calendarweek'=>'imgforviewmode', 'calendarmonth'=>'imgforviewmode', 'calendarday'=>'imgforviewmode', 'calendarperuser'=>'imgforviewmode'

View File

@ -352,7 +352,7 @@ if (($action == "create") || ($action == "edit")) {
print '<tr class="blockmethod"><td>';
print $langs->trans('CronModule')."</td><td>";
print "<input type=\"text\" size=\"20\" name=\"module_name\" value=\"".$object->module_name."\" /> ";
print "<input type=\"text\" class=\"width200\" name=\"module_name\" value=\"".$object->module_name."\" /> ";
print "</td>";
print "<td>";
print $form->textwithpicto('', $langs->trans("CronModuleHelp"), 1, 'help');
@ -370,7 +370,7 @@ if (($action == "create") || ($action == "edit")) {
print '<tr class="blockmethod"><td>';
print $langs->trans('CronObject')."</td><td>";
print "<input type=\"text\" size=\"20\" name=\"objectname\" value=\"".$object->objectname."\" /> ";
print "<input type=\"text\" class=\"width200\" name=\"objectname\" value=\"".$object->objectname."\" /> ";
print "</td>";
print "<td>";
print $form->textwithpicto('', $langs->trans("CronObjectHelp"), 1, 'help');

View File

@ -27,15 +27,7 @@ require_once DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php";
require_once '../lib/datapolicy.lib.php';
// Translations
$langs->load('admin');
$langs->load('companies');
$langs->load('members');
$langs->load('datapolicy@datapolicy');
// Access control
if (!$user->admin) {
accessforbidden();
}
$langs->loadLangs(array('admin', 'companies', 'members', 'datapolicy@datapolicy'));
// Parameters
$action = GETPOST('action', 'aZ09');
@ -43,35 +35,27 @@ $backtopage = GETPOST('backtopage', 'alpha');
$arrayofparameters = array();
$arrayofparameters['ThirdParty'] = array(
'DATAPOLICY_TIERS_CLIENT'=>array('css'=>'minwidth200'),
'DATAPOLICY_TIERS_PROSPECT'=>array('css'=>'minwidth200'),
'DATAPOLICY_TIERS_PROSPECT_CLIENT'=>array('css'=>'minwidth200'),
'DATAPOLICY_TIERS_NIPROSPECT_NICLIENT'=>array('css'=>'minwidth200'),
'DATAPOLICY_TIERS_FOURNISSEUR'=>array('css'=>'minwidth200'),
'DATAPOLICY_TIERS_CLIENT'=>array('css'=>'minwidth200', 'picto'=>img_picto('', 'company', 'class="pictofixedwidth"')),
'DATAPOLICY_TIERS_PROSPECT'=>array('css'=>'minwidth200', 'picto'=>img_picto('', 'company', 'class="pictofixedwidth"')),
'DATAPOLICY_TIERS_PROSPECT_CLIENT'=>array('css'=>'minwidth200', 'picto'=>img_picto('', 'company', 'class="pictofixedwidth"')),
'DATAPOLICY_TIERS_NIPROSPECT_NICLIENT'=>array('css'=>'minwidth200', 'picto'=>img_picto('', 'company', 'class="pictofixedwidth"')),
'DATAPOLICY_TIERS_FOURNISSEUR'=>array('css'=>'minwidth200', 'picto'=>img_picto('', 'supplier', 'class="pictofixedwidth"')),
);
if (!empty($conf->global->DATAPOLICY_USE_SPECIFIC_DELAY_FOR_CONTACT)) {
$arrayofparameters['Contact'] = array(
'DATAPOLICY_CONTACT_CLIENT'=>array('css'=>'minwidth200'),
'DATAPOLICY_CONTACT_PROSPECT'=>array('css'=>'minwidth200'),
'DATAPOLICY_CONTACT_PROSPECT_CLIENT'=>array('css'=>'minwidth200'),
'DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT'=>array('css'=>'minwidth200'),
'DATAPOLICY_CONTACT_FOURNISSEUR'=>array('css'=>'minwidth200'),
'DATAPOLICY_CONTACT_CLIENT'=>array('css'=>'minwidth200', 'picto'=>img_picto('', 'contact', 'class="pictofixedwidth"')),
'DATAPOLICY_CONTACT_PROSPECT'=>array('css'=>'minwidth200', 'picto'=>img_picto('', 'contact', 'class="pictofixedwidth"')),
'DATAPOLICY_CONTACT_PROSPECT_CLIENT'=>array('css'=>'minwidth200', 'picto'=>img_picto('', 'contact', 'class="pictofixedwidth"')),
'DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT'=>array('css'=>'minwidth200', 'picto'=>img_picto('', 'contact', 'class="pictofixedwidth"')),
'DATAPOLICY_CONTACT_FOURNISSEUR'=>array('css'=>'minwidth200', 'picto'=>img_picto('', 'contact', 'class="pictofixedwidth"')),
);
}
if (!empty($conf->adherent->enabled)) {
$arrayofparameters['Member'] = array(
'DATAPOLICY_ADHERENT'=>array('css'=>'minwidth200'),
'DATAPOLICY_ADHERENT'=>array('css'=>'minwidth200', 'picto'=>img_picto('', 'member', 'class="pictofixedwidth"')),
);
}
/*
* Actions
*/
include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php';
$valTab = array(
'' => $langs->trans('Never'),
'6' => $langs->trans('NB_MONTHS', 6),
@ -85,6 +69,40 @@ $valTab = array(
'240' => $langs->trans('NB_YEARS', 20),
);
// Access control
if (!$user->admin) {
accessforbidden();
}
/*
* Actions
*/
foreach ($arrayofparameters as $title => $tab) {
foreach ($tab as $key => $val) {
// Modify constant only if key was posted (avoid resetting key to the null value)
if (GETPOSTISSET($key)) {
if (preg_match('/category:/', $val['type'])) {
if (GETPOST($key, 'int') == '-1') {
$val_const = '';
} else {
$val_const = GETPOST($key, 'int');
}
} else {
$val_const = GETPOST($key, 'alpha');
}
$result = dolibarr_set_const($db, $key, $val_const, 'chaine', 0, '', $conf->entity);
if ($result < 0) {
$error++;
break;
}
}
}
}
/*
* View
@ -96,11 +114,11 @@ llxHeader('', $langs->trans($page_name));
// Subheader
$linkback = '<a href="'.($backtopage ? $backtopage : DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1').'">'.$langs->trans("BackToModuleList").'</a>';
print load_fiche_titre($langs->trans($page_name), $linkback, 'object_generic');
print load_fiche_titre($langs->trans($page_name), $linkback, 'generic');
// Configuration header
$head = datapolicyAdminPrepareHead();
print dol_get_fiche_head($head, 'settings', '', -1, "datapolicy@datapolicy");
print dol_get_fiche_head($head, 'settings', '', -1, '');
// Setup page goes here
echo '<span class="opacitymedium">'.$langs->trans("datapolicySetupPage").'</span><br><br>';
@ -118,6 +136,7 @@ if ($action == 'edit') {
print '<tr class="trforbreak"><td class="titlefield trforbreak" colspan="2">'.$langs->trans($title).'</td></tr>';
foreach ($tab as $key => $val) {
print '<tr class="oddeven"><td>';
print $val['picto'];
print $form->textwithpicto($langs->trans($key), $langs->trans($key.'Tooltip'));
print '</td><td>';
print '<select name="'.$key.'" class="flat '.(empty($val['css']) ? 'minwidth200' : $val['css']).'">';
@ -147,6 +166,7 @@ if ($action == 'edit') {
print '<tr class="trforbreak"><td class="titlefield trforbreak" colspan="2">'.$langs->trans($title).'</td></tr>';
foreach ($tab as $key => $val) {
print '<tr class="oddeven"><td>';
print $val['picto'];
print $form->textwithpicto($langs->trans($key), $langs->trans('DATAPOLICY_Tooltip_SETUP'));
print '</td><td>'.($conf->global->$key == '' ? $langs->trans('None') : $valTab[$conf->global->$key]).'</td></tr>';
}

View File

@ -54,27 +54,26 @@ class DataPolicyCron
$errormsg = '';
$nbupdated = $nbdeleted = 0;
// FIXME Removed hardcoded values of id
// FIXME Exclude data from the selection if there is at least 1 invoice.
$arrayofparameters = array(
'DATAPOLICIES_TIERS_CLIENT' => array(
'sql' => "
SELECT s.rowid FROM ".MAIN_DB_PREFIX."societe as s
WHERE (s.fk_forme_juridique IN (11, 12, 13, 15, 17, 18, 19, 35, 60, 312, 316, 401, 600, 700, 1005) OR s.fk_typent = 8)
AND s.entity = %d
WHERE s.entity = %d
AND s.client = 1
AND s.fournisseur = 0
AND s.tms < DATE_SUB(NOW(), INTERVAL %d MONTH)
AND s.rowid NOT IN (
SELECT DISTINCT a.fk_soc
FROM ".MAIN_DB_PREFIX."actioncomm as a
WHERE a.tms > DATE_SUB(NOW(), INTERVAL %d MONTH)
AND a.fk_soc IS NOT NULL
AND NOT EXISTS (
SELECT id FROM ".MAIN_DB_PREFIX."actioncomm as a WHERE a.fk_soc = s.rowid AND a.tms > DATE_SUB(NOW(), INTERVAL %d MONTH)
)
AND NOT EXISTS (
SELECT rowid FROM ".MAIN_DB_PREFIX."facture as f WHERE f.fk_soc = s.rowid
)
",
"class" => "Societe",
"file" => DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php',
'fields_anonym' => array(
'name' => $langs->trans('ANONYME'),
'name' => 'MAKEANONYMOUS',
'name_bis' => '',
'name_alias' => '',
'address' => '',
@ -87,29 +86,28 @@ class DataPolicyCron
'state' => '',
'country' => '',
'state_id' => '',
'skype' => '',
'socialnetworks' => '',
'country_id' => '',
)
),
'DATAPOLICIES_TIERS_PROSPECT' => array(
'sql' => "
SELECT s.rowid FROM ".MAIN_DB_PREFIX."societe as s
WHERE (s.fk_forme_juridique IN (11, 12, 13, 15, 17, 18, 19, 35, 60, 312, 316, 401, 600, 700, 1005) OR s.fk_typent = 8)
AND s.entity = %d
WHERE s.entity = %d
AND s.client = 2
AND s.fournisseur = 0
AND s.tms < DATE_SUB(NOW(), INTERVAL %d MONTH)
AND s.rowid NOT IN (
SELECT DISTINCT a.fk_soc
FROM ".MAIN_DB_PREFIX."actioncomm as a
WHERE a.tms > DATE_SUB(NOW(), INTERVAL %d MONTH)
AND a.fk_soc IS NOT NULL
AND NOT EXISTS (
SELECT id FROM ".MAIN_DB_PREFIX."actioncomm as a WHERE a.fk_soc = s.rowid AND a.tms > DATE_SUB(NOW(), INTERVAL %d MONTH)
)
AND NOT EXISTS (
SELECT rowid FROM ".MAIN_DB_PREFIX."facture as f WHERE f.fk_soc = s.rowid
)
",
"class" => "Societe",
"file" => DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php',
'fields_anonym' => array(
'name' => $langs->trans('ANONYME'),
'name' => 'MAKEANONYMOUS',
'name_bis' => '',
'name_alias' => '',
'address' => '',
@ -122,29 +120,28 @@ class DataPolicyCron
'state' => '',
'country' => '',
'state_id' => '',
'skype' => '',
'socialnetworks' => '',
'country_id' => '',
)
),
'DATAPOLICIES_TIERS_PROSPECT_CLIENT' => array(
'sql' => "
SELECT s.rowid FROM ".MAIN_DB_PREFIX."societe as s
WHERE (s.fk_forme_juridique IN (11, 12, 13, 15, 17, 18, 19, 35, 60, 312, 316, 401, 600, 700, 1005) OR s.fk_typent = 8)
AND s.entity = %d
WHERE s.entity = %d
AND s.client = 3
AND s.fournisseur = 0
AND s.tms < DATE_SUB(NOW(), INTERVAL %d MONTH)
AND s.rowid NOT IN (
SELECT DISTINCT a.fk_soc
FROM ".MAIN_DB_PREFIX."actioncomm as a
WHERE a.tms > DATE_SUB(NOW(), INTERVAL %d MONTH)
AND a.fk_soc IS NOT NULL
AND NOT EXISTS (
SELECT id FROM ".MAIN_DB_PREFIX."actioncomm as a WHERE a.fk_soc = s.rowid AND a.tms > DATE_SUB(NOW(), INTERVAL %d MONTH)
)
AND NOT EXISTS (
SELECT rowid FROM ".MAIN_DB_PREFIX."facture as f WHERE f.fk_soc = s.rowid
)
",
"class" => "Societe",
"file" => DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php',
'fields_anonym' => array(
'name' => $langs->trans('ANONYME'),
'name' => 'MAKEANONYMOUS',
'name_bis' => '',
'name_alias' => '',
'address' => '',
@ -157,29 +154,28 @@ class DataPolicyCron
'state' => '',
'country' => '',
'state_id' => '',
'skype' => '',
'socialnetworks' => '',
'country_id' => '',
)
),
'DATAPOLICIES_TIERS_NIPROSPECT_NICLIENT' => array(
'sql' => "
SELECT s.rowid FROM ".MAIN_DB_PREFIX."societe as s
WHERE (s.fk_forme_juridique IN (11, 12, 13, 15, 17, 18, 19, 35, 60, 312, 316, 401, 600, 700, 1005) OR s.fk_typent = 8)
AND s.entity = %d
WHERE s.entity = %d
AND s.client = 0
AND s.fournisseur = 0
AND s.tms < DATE_SUB(NOW(), INTERVAL %d MONTH)
AND s.rowid NOT IN (
SELECT DISTINCT a.fk_soc
FROM ".MAIN_DB_PREFIX."actioncomm as a
WHERE a.tms > DATE_SUB(NOW(), INTERVAL %d MONTH)
AND a.fk_soc IS NOT NULL
AND NOT EXISTS (
SELECT id FROM ".MAIN_DB_PREFIX."actioncomm as a WHERE a.fk_soc = s.rowid AND a.tms > DATE_SUB(NOW(), INTERVAL %d MONTH)
)
AND NOT EXISTS (
SELECT rowid FROM ".MAIN_DB_PREFIX."facture as f WHERE f.fk_soc = s.rowid
)
",
"class" => "Societe",
"file" => DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php',
'fields_anonym' => array(
'name' => $langs->trans('ANONYME'),
'name' => 'MAKEANONYMOUS',
'name_bis' => '',
'name_alias' => '',
'address' => '',
@ -192,28 +188,27 @@ class DataPolicyCron
'state' => '',
'country' => '',
'state_id' => '',
'skype' => '',
'socialnetworks' => '',
'country_id' => '',
)
),
'DATAPOLICIES_TIERS_FOURNISSEUR' => array(
'sql' => "
SELECT s.rowid FROM ".MAIN_DB_PREFIX."societe as s
WHERE (s.fk_forme_juridique IN (11, 12, 13, 15, 17, 18, 19, 35, 60, 312, 316, 401, 600, 700, 1005) OR s.fk_typent = 8)
AND s.entity = %d
WHERE s.entity = %d
AND s.fournisseur = 1
AND s.tms < DATE_SUB(NOW(), INTERVAL %d MONTH)
AND s.rowid NOT IN (
SELECT DISTINCT a.fk_soc
FROM ".MAIN_DB_PREFIX."actioncomm as a
WHERE a.tms > DATE_SUB(NOW(), INTERVAL %d MONTH)
AND a.fk_contact IS NOT NULL
AND NOT EXISTS (
SELECT id FROM ".MAIN_DB_PREFIX."actioncomm as a WHERE a.fk_soc = s.rowid AND a.tms > DATE_SUB(NOW(), INTERVAL %d MONTH)
)
AND NOT EXISTS (
SELECT rowid FROM ".MAIN_DB_PREFIX."facture as f WHERE f.fk_soc = s.rowid
)
",
"class" => "Societe",
"file" => DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php',
'fields_anonym' => array(
'name' => $langs->trans('ANONYME'),
'name' => 'MAKEANONYMOUS',
'name_bis' => '',
'name_alias' => '',
'address' => '',
@ -226,7 +221,7 @@ class DataPolicyCron
'state' => '',
'country' => '',
'state_id' => '',
'skype' => '',
'socialnetworks' => '',
'country_id' => '',
)
),
@ -238,17 +233,17 @@ class DataPolicyCron
AND c.tms < DATE_SUB(NOW(), INTERVAL %d MONTH)
AND s.client = 1
AND s.fournisseur = 0
AND c.rowid NOT IN (
SELECT DISTINCT a.fk_contact
FROM ".MAIN_DB_PREFIX."actioncomm as a
WHERE a.tms > DATE_SUB(NOW(), INTERVAL %d MONTH)
AND a.fk_contact IS NOT NULL
AND NOT EXISTS (
SELECT id FROM ".MAIN_DB_PREFIX."actioncomm as a WHERE a.fk_contact = c.rowid AND a.tms > DATE_SUB(NOW(), INTERVAL %d MONTH)
)
AND NOT EXISTS (
SELECT rowid FROM ".MAIN_DB_PREFIX."facture as f WHERE f.fk_soc = s.rowid
)
",
"class" => "Contact",
"file" => DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php',
'fields_anonym' => array(
'lastname' => $langs->trans('ANONYME'),
'lastname' => 'MAKEANONYMOUS',
'firstname' => '',
'civility_id' => '',
'poste' => '',
@ -264,8 +259,7 @@ class DataPolicyCron
'state' => '',
'country' => '',
'state_id' => '',
'skype' => '',
'jabberid' => '',
'socialnetworks' => '',
'country_id' => '',
)
),
@ -277,17 +271,17 @@ class DataPolicyCron
AND c.tms < DATE_SUB(NOW(), INTERVAL %d MONTH)
AND s.client = 2
AND s.fournisseur = 0
AND c.rowid NOT IN (
SELECT DISTINCT a.fk_contact
FROM ".MAIN_DB_PREFIX."actioncomm as a
WHERE a.tms > DATE_SUB(NOW(), INTERVAL %d MONTH)
AND a.fk_contact IS NOT NULL
AND NOT EXISTS (
SELECT id FROM ".MAIN_DB_PREFIX."actioncomm as a WHERE a.fk_contact = c.rowid AND a.tms > DATE_SUB(NOW(), INTERVAL %d MONTH)
)
AND NOT EXISTS (
SELECT rowid FROM ".MAIN_DB_PREFIX."facture as f WHERE f.fk_soc = s.rowid
)
",
"class" => "Contact",
"file" => DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php',
'fields_anonym' => array(
'lastname' => $langs->trans('ANONYME'),
'lastname' => 'MAKEANONYMOUS',
'firstname' => '',
'civility_id' => '',
'poste' => '',
@ -303,8 +297,7 @@ class DataPolicyCron
'state' => '',
'country' => '',
'state_id' => '',
'skype' => '',
'jabberid' => '',
'socialnetworks' => '',
'country_id' => '',
)
),
@ -316,17 +309,17 @@ class DataPolicyCron
AND c.tms < DATE_SUB(NOW(), INTERVAL %d MONTH)
AND s.client = 3
AND s.fournisseur = 0
AND c.rowid NOT IN (
SELECT DISTINCT a.fk_contact
FROM ".MAIN_DB_PREFIX."actioncomm as a
WHERE a.tms > DATE_SUB(NOW(), INTERVAL %d MONTH)
AND a.fk_contact IS NOT NULL
AND NOT EXISTS (
SELECT id FROM ".MAIN_DB_PREFIX."actioncomm as a WHERE a.fk_contact = c.rowid AND a.tms > DATE_SUB(NOW(), INTERVAL %d MONTH)
)
AND NOT EXISTS (
SELECT rowid FROM ".MAIN_DB_PREFIX."facture as f WHERE f.fk_soc = s.rowid
)
",
"class" => "Contact",
"file" => DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php',
'fields_anonym' => array(
'lastname' => $langs->trans('ANONYME'),
'lastname' => 'MAKEANONYMOUS',
'firstname' => '',
'civility_id' => '',
'poste' => '',
@ -342,8 +335,7 @@ class DataPolicyCron
'state' => '',
'country' => '',
'state_id' => '',
'skype' => '',
'jabberid' => '',
'socialnetworks' => '',
'country_id' => '',
)
),
@ -355,17 +347,17 @@ class DataPolicyCron
AND c.tms < DATE_SUB(NOW(), INTERVAL %d MONTH)
AND s.client = 0
AND s.fournisseur = 0
AND c.rowid NOT IN (
SELECT DISTINCT a.fk_contact
FROM ".MAIN_DB_PREFIX."actioncomm as a
WHERE a.tms > DATE_SUB(NOW(), INTERVAL %d MONTH)
AND a.fk_contact IS NOT NULL
AND NOT EXISTS (
SELECT id FROM ".MAIN_DB_PREFIX."actioncomm as a WHERE a.fk_contact = c.rowid AND a.tms > DATE_SUB(NOW(), INTERVAL %d MONTH)
)
AND NOT EXISTS (
SELECT rowid FROM ".MAIN_DB_PREFIX."facture as f WHERE f.fk_soc = s.rowid
)
",
"class" => "Contact",
"file" => DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php',
'fields_anonym' => array(
'lastname' => $langs->trans('ANONYME'),
'lastname' => 'MAKEANONYMOUS',
'firstname' => '',
'civility_id' => '',
'poste' => '',
@ -381,8 +373,7 @@ class DataPolicyCron
'state' => '',
'country' => '',
'state_id' => '',
'skype' => '',
'jabberid' => '',
'socialnetworks' => '',
'country_id' => '',
)
),
@ -393,17 +384,17 @@ class DataPolicyCron
WHERE c.entity = %d
AND c.tms < DATE_SUB(NOW(), INTERVAL %d MONTH)
AND s.fournisseur = 1
AND c.rowid NOT IN (
SELECT DISTINCT a.fk_contact
FROM ".MAIN_DB_PREFIX."actioncomm as a
WHERE a.tms > DATE_SUB(NOW(), INTERVAL %d MONTH)
AND a.fk_contact IS NOT NULL
AND NOT EXISTS (
SELECT id FROM ".MAIN_DB_PREFIX."actioncomm as a WHERE a.fk_contact = c.rowid AND a.tms > DATE_SUB(NOW(), INTERVAL %d MONTH)
)
AND NOT EXISTS (
SELECT rowid FROM ".MAIN_DB_PREFIX."facture as f WHERE f.fk_soc = s.rowid
)
",
"class" => "Contact",
"file" => DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php',
'fields_anonym' => array(
'lastname' => $langs->trans('ANONYME'),
'lastname' => 'MAKEANONYMOUS',
'firstname' => '',
'civility_id' => '',
'poste' => '',
@ -419,8 +410,7 @@ class DataPolicyCron
'state' => '',
'country' => '',
'state_id' => '',
'skype' => '',
'jabberid' => '',
'socialnetworks' => '',
'country_id' => '',
)
),
@ -429,19 +419,15 @@ class DataPolicyCron
SELECT a.rowid FROM ".MAIN_DB_PREFIX."adherent as a
WHERE a.entity = %d
AND a.tms < DATE_SUB(NOW(), INTERVAL %d MONTH)
AND a.rowid NOT IN (
SELECT DISTINCT a.fk_element
FROM ".MAIN_DB_PREFIX."actioncomm as a
WHERE a.tms > DATE_SUB(NOW(), INTERVAL %d MONTH)
AND a.elementtype LIKE 'member'
AND a.fk_element IS NOT NULL
AND NOT EXISTS (
SELECT id FROM ".MAIN_DB_PREFIX."actioncomm as a WHERE a.fk_element = a.rowid AND a.tms > DATE_SUB(NOW(), INTERVAL %d MONTH) AND a.elementtype LIKE 'member'
)
",
"class" => "Adherent",
"file" => DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php',
'fields_anonym' => array(
'lastname' => $langs->trans('ANONYME'),
'firstname' => $langs->trans('ANONYME'),
'lastname' => 'MAKEANONYMOUS',
'firstname' => 'MAKEANONYMOUS',
'civility_id' => '',
'societe' => '',
'address' => '',
@ -456,7 +442,7 @@ class DataPolicyCron
'state' => '',
'country' => '',
'state_id' => '',
'skype' => '',
'socialnetworks' => '',
'country_id' => '',
)
),
@ -483,27 +469,27 @@ class DataPolicyCron
$object->fetch($obj->rowid);
$object->id = $obj->rowid;
if ($object->isObjectUsed($obj->rowid) > 0) { // If object to clean is used
foreach ($params['fields_anonym'] as $fields => $val) {
$object->$fields = $val;
}
$result = $object->update($obj->rowid, $user);
if ($result > 0) {
if ($params['class'] == 'Societe') {
// We delete contacts of thirdparty
$sql = "DELETE FROM ".MAIN_DB_PREFIX."socpeople WHERE fk_soc = ".$obj->rowid;
$result = $this->db->query($sql);
if ($result < 0) {
$errormsg = $this->db->lasterror();
$error++;
$action = 'anonymize'; // TODO Offer also action "delete" in setup of module
if ($action == 'anonymize') {
if ($object->isObjectUsed($obj->rowid) == 0) { // If object to clean is used
foreach ($params['fields_anonym'] as $fields => $val) {
if ($val == 'MAKEANONYMOUS') {
$object->$fields = $fields.'-anonymous-'.$obj->rowid;
} else {
$object->$fields = $val;
}
}
} else {
$errormsg = $object->error;
$error++;
$result = $object->update($obj->rowid, $user);
if ($result > 0) {
$errormsg = $object->error;
$error++;
}
$nbupdated++;
}
$nbupdated++;
} else { // If object to clean is not used
}
if ($action == 'delete') { // If object to clean is not used
if ($object->element == 'adherent') {
$result = $object->delete($obj->rowid, $user);
} else {

View File

@ -1768,7 +1768,7 @@ AGENDA_DEFAULT_VIEW=Which view do you want to open by default when selecting men
AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (When remind date is reached, a popup is shown by the browser. Each user can disable such notifications from its browser notification setup).
AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification
AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event).
AGENDA_REMINDER_EMAIL_NOTE=Note: The frequency of the task %s must be enough to be sure that the remind are sent at the correct moment.
AGENDA_REMINDER_EMAIL_NOTE=Note: The frequency of the scheduled job %s must be enough to be sure that the remind are sent at the correct moment.
AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
##### Clicktodial #####
ClickToDialSetup=Click To Dial module setup