static function postClone(NotificationTemplate $clone, $oldid)
 {
     global $DB;
     $trad = new NotificationTemplateTranslation();
     $fkey = getForeignKeyFieldForTable($clone->getTable());
     $crit = array($fkey => $oldid);
     foreach ($DB->request($trad->getTable(), $crit) as $data) {
         unset($data['id']);
         $data[$fkey] = $clone->getID();
         $trad->add(Toolbox::addslashes_deep($data));
     }
 }
    public static function install(Migration $migration)
    {
        global $DB;
        $migration->displayMessage("Migrate PluginOrderOrder notifications");
        $template = new NotificationTemplate();
        $templates_id = false;
        $query_id = "SELECT `id`\n                       FROM `glpi_notificationtemplates`\n                       WHERE `itemtype`='PluginOrderOrder'\n                       AND `name` = 'Order Validation'";
        $result = $DB->query($query_id) or die($DB->error());
        if ($DB->numrows($result) > 0) {
            $templates_id = $DB->result($result, 0, 'id');
        } else {
            $tmp = array('name' => 'Order Validation', 'itemtype' => 'PluginOrderOrder', 'date_mod' => $_SESSION['glpi_currenttime'], 'comment' => '', 'css' => '');
            $templates_id = $template->add($tmp);
        }
        if ($templates_id) {
            $translation = new NotificationTemplateTranslation();
            if (!countElementsInTable($translation->getTable(), "`notificationtemplates_id`='{$templates_id}'")) {
                $tmp['notificationtemplates_id'] = $templates_id;
                $tmp['language'] = '';
                $tmp['subject'] = '##lang.ordervalidation.title##';
                $tmp['content_text'] = '##lang.ordervalidation.url## : ##ordervalidation.url##
               ##lang.ordervalidation.entity## : ##ordervalidation.entity##
               ##IFordervalidation.name####lang.ordervalidation.name## : ##ordervalidation.name##
               ##ENDIFordervalidation.name##
               ##IFordervalidation.numorder####lang.ordervalidation.numorder## : ##ordervalidation.numorder##
               ##ENDIFordervalidation.numorder##
               ##IFordervalidation.orderdate####lang.ordervalidation.orderdate##  : ##ordervalidation.orderdate####ENDIFordervalidation.orderdate##
               ##IFordervalidation.state####lang.ordervalidation.state## : ##ordervalidation.state####ENDIFordervalidation.state##
               ##IFordervalidation.users####lang.ordervalidation.users## : ##ordervalidation.users####ENDIFordervalidation.users##

               ##IFordervalidation.comment####lang.ordervalidation.comment## : ##ordervalidation.comment####ENDIFordervalidation.comment##';
                $tmp['content_html'] = '<p><strong>##lang.ordervalidation.url##</strong> : ' . '<a href=\\"##ordervalidation.url##\\">##ordervalidation.url##</a><br />' . '<br /><strong>##lang.ordervalidation.entity##</strong> : ##ordervalidation.entity##<br />' . ' ##IFordervalidation.name##<strong>##lang.ordervalidation.name##</strong>' . ' : ##ordervalidation.name####ENDIFordervalidation.name##<br />' . '##IFordervalidation.numorder##<strong>##lang.ordervalidation.numorder##</strong>' . ' : ##ordervalidation.numorder####ENDIFordervalidation.numorder##<br />##IFordervalidation.orderdate##<strong>##lang.ordervalidation.orderdate##</strong>' . ' : ##ordervalidation.orderdate####ENDIFordervalidation.orderdate##<br />' . '##IFordervalidation.state##<strong>##lang.ordervalidation.state##</strong>' . ' : ##ordervalidation.state####ENDIFordervalidation.state##<br />' . '##IFordervalidation.users##<strong>##lang.ordervalidation.users##</strong>' . ' : ##ordervalidation.users####ENDIFordervalidation.users##<br /><br />' . '##IFordervalidation.comment##<strong>##lang.ordervalidation.comment##</strong> : ##ordervalidation.comment####ENDIFordervalidation.comment##</p>';
                $translation->add($tmp);
            }
            $notifs = array('New Order Validation' => 'ask', 'Confirm Order Validation' => 'validation', 'Cancel Order Validation' => 'undovalidation', 'Cancel Order' => 'cancel');
            $notification = new Notification();
            foreach ($notifs as $label => $name) {
                if (!countElementsInTable("glpi_notifications", "`itemtype`='PluginOrderOrder' AND `event`='{$name}'")) {
                    $tmp = array('name' => $label, 'entities_id' => 0, 'itemtype' => 'PluginOrderOrder', 'event' => $name, 'mode' => 'mail', 'comment' => '', 'is_recursive' => 1, 'is_active' => 1, 'date_mod' => $_SESSION['glpi_currenttime'], 'notificationtemplates_id' => $templates_id);
                    $notification->add($tmp);
                }
            }
        }
        $query_id = "SELECT `id`\n                       FROM `glpi_notificationtemplates`\n                       WHERE `itemtype`='PluginOrderOrder'\n                       AND `name` = 'Due date overtaken'";
        $result = $DB->query($query_id) or die($DB->error());
        if ($DB->numrows($result) > 0) {
            $templates_id = $DB->result($result, 0, 'id');
        } else {
            $tmp = array('name' => 'Due date overtaken', 'itemtype' => 'PluginOrderOrder', 'date_mod' => $_SESSION['glpi_currenttime'], 'comment' => '', 'css' => '');
            $templates_id = $template->add($tmp);
        }
        if ($templates_id) {
            $translation = new NotificationTemplateTranslation();
            if (!countElementsInTable($translation->getTable(), "`notificationtemplates_id`='{$templates_id}'")) {
                $tmp = array();
                $tmp['notificationtemplates_id'] = $templates_id;
                $tmp['language'] = '';
                $tmp['subject'] = '##order.action## ##order.entity##';
                $tmp['content_text'] = '##lang.order.entity## : ##order.entity##\\n' . ' \\n##FOREACHorders##\\n' . '##lang.order.item.name## : ##order.item.name##\\n ' . '##lang.order.item.numorder## : ##order.item.numorder##\\n ' . '##lang.order.item.orderdate## : ##order.item.orderdate##\\n ' . '##lang.order.item.duedate## : ##order.item.duedate##\\n ' . '##lang.order.item.deliverydate## : ##order.item.deliverydate##\\n ' . '##order.item.url## \\n ##ENDFOREACHorders##';
                $tmp['content_html'] = "##lang.order.entity## : ##order.entity##<br /> " . "<br />##FOREACHorders##<br />" . "##lang.order.item.name## : ##order.item.name##<br /> " . "##lang.order.item.numorder## : ##order.item.numorder##<br /> " . "##lang.order.item.orderdate## : ##order.item.orderdate##<br /> <a>" . "##lang.order.item.duedate## : ##order.item.duedate##<br /> </a><a>" . "##lang.order.item.deliverydate## : ##order.item.deliverydate##<br /> </a><a>" . "##order.item.url##</a><br /> ##ENDFOREACHorders##";
                $translation->add($tmp);
            }
            $notifs = array('Due date overtaken' => 'duedate');
            $notification = new Notification();
            foreach ($notifs as $label => $name) {
                if (!countElementsInTable("glpi_notifications", "`itemtype`='PluginOrderOrder' AND `event`='{$name}'")) {
                    $tmp = array('name' => $label, 'entities_id' => 0, 'itemtype' => 'PluginOrderOrder', 'event' => $name, 'mode' => 'mail', 'comment' => '', 'is_recursive' => 1, 'is_active' => 1, 'date_mod' => $_SESSION['glpi_currenttime'], 'notificationtemplates_id' => $templates_id);
                    $notification->add($tmp);
                }
            }
        }
        $template = new NotificationTemplate();
        $templates_id = false;
        $query_id = "SELECT `id`\n                       FROM `glpi_notificationtemplates`\n                       WHERE `itemtype`='PluginOrderOrder'\n                       AND `name` = 'Order Delivered'";
        $result = $DB->query($query_id) or die($DB->error());
        if ($DB->numrows($result) > 0) {
            $templates_id = $DB->result($result, 0, 'id');
        } else {
            $tmp = array('name' => 'Order Delivered', 'itemtype' => 'PluginOrderOrder', 'date_mod' => $_SESSION['glpi_currenttime'], 'comment' => '', 'css' => '');
            $templates_id = $template->add($tmp);
        }
        if ($templates_id) {
            $translation = new NotificationTemplateTranslation();
            if (!countElementsInTable($translation->getTable(), "`notificationtemplates_id`='{$templates_id}'")) {
                $tmp['notificationtemplates_id'] = $templates_id;
                $tmp['language'] = '';
                $tmp['subject'] = '##order.action## ##ordervalidation.name## ##ordervalidation.numorder##';
                $tmp['content_text'] = '##order.action##
##lang.ordervalidation.name## :
##ordervalidation.name##
##lang.ordervalidation.orderdate## :
##ordervalidation.orderdate##
##lang.ordervalidation.entity## :
##ordervalidation.entity##';
                $tmp['content_html'] = '<p>##order.action## <br /><br /> 
                ##lang.ordervalidation.name## : <br /> 
                ##ordervalidation.name## <br /> 
                ##lang.ordervalidation.orderdate## : <br /> 
                ##ordervalidation.orderdate## <br />  <br /> 
                ##lang.ordervalidation.entity## : <br /> ##ordervalidation.entity##</p>';
                $translation->add($tmp);
            }
        }
        $notifs = array('Order Delivered' => 'delivered');
        $notification = new Notification();
        foreach ($notifs as $label => $name) {
            if (!countElementsInTable("glpi_notifications", "`itemtype`='PluginOrderOrder' AND `event`='{$name}'")) {
                $tmp = array('name' => $label, 'entities_id' => 0, 'itemtype' => 'PluginOrderOrder', 'event' => $name, 'mode' => 'mail', 'comment' => '', 'is_recursive' => 1, 'is_active' => 1, 'date_mod' => $_SESSION['glpi_currenttime'], 'notificationtemplates_id' => $templates_id);
                $notification->add($tmp);
            }
        }
    }