New: best method for linked object with actioncomm

New: add action "shipping send by mail"
This commit is contained in:
Regis Houssin 2011-06-04 13:12:44 +00:00
parent 5a24cfa6b9
commit 5f6ac1374c
26 changed files with 313 additions and 212 deletions

View File

@ -1,5 +1,6 @@
<?php <?php
/* Copyright (C) 2008-2010 Laurent Destailleur <eldy@users.sourceforge.net> /* Copyright (C) 2008-2010 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2011 Regis Houssin <regis@dolibarr.fr>
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
@ -39,28 +40,30 @@ $action=$_POST["action"];
// List of all events supported by triggers // List of all events supported by triggers
$eventstolog=array( $eventstolog=array(
array('id'=>'COMPANY_CREATE', 'test'=>$conf->societe->enabled), array('id'=>'COMPANY_CREATE', 'test'=>$conf->societe->enabled),
array('id'=>'CONTRACT_VALIDATE', 'test'=>$conf->contrat->enabled), array('id'=>'CONTRACT_VALIDATE', 'test'=>$conf->contrat->enabled),
array('id'=>'PROPAL_VALIDATE', 'test'=>$conf->propal->enabled), array('id'=>'PROPAL_VALIDATE', 'test'=>$conf->propal->enabled),
array('id'=>'PROPAL_SENTBYMAIL', 'test'=>$conf->propal->enabled), array('id'=>'PROPAL_SENTBYMAIL', 'test'=>$conf->propal->enabled),
array('id'=>'ORDER_VALIDATE', 'test'=>$conf->commande->enabled), array('id'=>'ORDER_VALIDATE', 'test'=>$conf->commande->enabled),
array('id'=>'ORDER_SENTBYMAIL', 'test'=>$conf->commande->enabled), array('id'=>'ORDER_SENTBYMAIL', 'test'=>$conf->commande->enabled),
array('id'=>'BILL_VALIDATE', 'test'=>$conf->facture->enabled), array('id'=>'BILL_VALIDATE', 'test'=>$conf->facture->enabled),
array('id'=>'BILL_PAYED', 'test'=>$conf->facture->enabled), array('id'=>'BILL_PAYED', 'test'=>$conf->facture->enabled),
array('id'=>'BILL_CANCEL', 'test'=>$conf->facture->enabled), array('id'=>'BILL_CANCEL', 'test'=>$conf->facture->enabled),
array('id'=>'BILL_SENTBYMAIL', 'test'=>$conf->facture->enabled), array('id'=>'BILL_SENTBYMAIL', 'test'=>$conf->facture->enabled),
array('id'=>'FICHEINTER_VALIDATE', 'test'=>$conf->ficheinter->enabled), array('id'=>'FICHEINTER_VALIDATE', 'test'=>$conf->ficheinter->enabled),
array('id'=>'ORDER_SUPPLIER_VALIDATE','test'=>$conf->fournisseur->enabled), array('id'=>'ORDER_SUPPLIER_VALIDATE', 'test'=>$conf->fournisseur->enabled),
array('id'=>'ORDER_SUPPLIER_SENTBYMAIL','test'=>$conf->fournisseur->enabled), array('id'=>'ORDER_SUPPLIER_SENTBYMAIL','test'=>$conf->fournisseur->enabled),
array('id'=>'BILL_SUPPLIER_VALIDATE', 'test'=>$conf->fournisseur->enabled), array('id'=>'BILL_SUPPLIER_VALIDATE', 'test'=>$conf->fournisseur->enabled),
array('id'=>'BILL_SUPPLIER_PAYED', 'test'=>$conf->fournisseur->enabled), array('id'=>'BILL_SUPPLIER_PAYED', 'test'=>$conf->fournisseur->enabled),
array('id'=>'BILL_SUPPLIER_SENTBYMAIL', 'test'=>$conf->fournisseur->enabled), array('id'=>'BILL_SUPPLIER_SENTBYMAIL', 'test'=>$conf->fournisseur->enabled),
// array('id'=>'PAYMENT_CUSTOMER_CREATE','test'=>$conf->facture->enabled), array('id'=>'SHIPPING_VALIDATE', 'test'=>$conf->expedition_bon->enabled),
// array('id'=>'PAYMENT_SUPPLIER_CREATE','test'=>$conf->fournisseur->enabled), array('id'=>'SHIPPING_SENTBYMAIL', 'test'=>$conf->expedition_bon->enabled),
array('id'=>'MEMBER_VALIDATE', 'test'=>$conf->adherent->enabled), // array('id'=>'PAYMENT_CUSTOMER_CREATE', 'test'=>$conf->facture->enabled),
array('id'=>'MEMBER_SUBSCRIPTION', 'test'=>$conf->adherent->enabled), // array('id'=>'PAYMENT_SUPPLIER_CREATE', 'test'=>$conf->fournisseur->enabled),
array('id'=>'MEMBER_RESILIATE', 'test'=>$conf->adherent->enabled), array('id'=>'MEMBER_VALIDATE', 'test'=>$conf->adherent->enabled),
array('id'=>'MEMBER_DELETE', 'test'=>$conf->adherent->enabled), array('id'=>'MEMBER_SUBSCRIPTION', 'test'=>$conf->adherent->enabled),
array('id'=>'MEMBER_RESILIATE', 'test'=>$conf->adherent->enabled),
array('id'=>'MEMBER_DELETE', 'test'=>$conf->adherent->enabled),
); );

View File

@ -75,11 +75,8 @@ class ActionComm extends CommonObject
var $percentage; var $percentage;
// Properties for links to other tables // Properties for links to other tables
var $orderrowid; var $fk_element;
var $propalrowid; var $elementtype;
var $facid;
var $supplierorderrowid;
var $supplierinvoicerowid;
// Ical // Ical
var $icalname; var $icalname;
@ -177,11 +174,8 @@ class ActionComm extends CommonObject
$sql.= "fk_user_action,"; $sql.= "fk_user_action,";
$sql.= "fk_user_done,"; $sql.= "fk_user_done,";
$sql.= "label,percent,priority,fulldayevent,location,punctual,"; $sql.= "label,percent,priority,fulldayevent,location,punctual,";
$sql.= "fk_facture,"; $sql.= "fk_element,";
$sql.= "propalrowid,"; $sql.= "elementtype,";
$sql.= "fk_commande,";
$sql.= "fk_supplier_invoice,";
$sql.= "fk_supplier_order,";
$sql.= "entity"; $sql.= "entity";
$sql.= ") VALUES ("; $sql.= ") VALUES (";
$sql.= "'".$this->db->idate($now)."',"; $sql.= "'".$this->db->idate($now)."',";
@ -200,11 +194,8 @@ class ActionComm extends CommonObject
$sql.= ($this->usertodo->id > 0?"'".$this->usertodo->id."'":"null").","; $sql.= ($this->usertodo->id > 0?"'".$this->usertodo->id."'":"null").",";
$sql.= ($this->userdone->id > 0?"'".$this->userdone->id."'":"null").","; $sql.= ($this->userdone->id > 0?"'".$this->userdone->id."'":"null").",";
$sql.= "'".$this->db->escape($this->label)."','".$this->percentage."','".$this->priority."','".$this->fulldayevent."','".$this->db->escape($this->location)."','".$this->punctual."',"; $sql.= "'".$this->db->escape($this->label)."','".$this->percentage."','".$this->priority."','".$this->fulldayevent."','".$this->db->escape($this->location)."','".$this->punctual."',";
$sql.= ($this->facid?$this->facid:"null").","; $sql.= ($this->fk_element?$this->fk_element:"null").",";
$sql.= ($this->propalrowid?$this->propalrowid:"null").","; $sql.= ($this->elementtype?"'".$this->elementtype."'":"null").",";
$sql.= ($this->orderrowid?$this->orderrowid:"null").",";
$sql.= ($this->supplierinvoicerowid?$this->supplierinvoicerowid:"null").",";
$sql.= ($this->supplierorderrowid?$this->supplierorderrowid:"null").",";
$sql.= $conf->entity; $sql.= $conf->entity;
$sql.= ")"; $sql.= ")";
@ -255,7 +246,8 @@ class ActionComm extends CommonObject
$sql.= " a.fk_project,"; $sql.= " a.fk_project,";
$sql.= " a.fk_user_author, a.fk_user_mod,"; $sql.= " a.fk_user_author, a.fk_user_mod,";
$sql.= " a.fk_user_action, a.fk_user_done,"; $sql.= " a.fk_user_action, a.fk_user_done,";
$sql.= " a.fk_contact, a.percent as percentage, a.fk_facture, a.fk_commande, a.propalrowid,"; $sql.= " a.fk_contact, a.percent as percentage,";
$sql.= " a.fk_element, a.elementtype,";
$sql.= " a.priority, a.fulldayevent, a.location,"; $sql.= " a.priority, a.fulldayevent, a.location,";
$sql.= " c.id as type_id, c.code as type_code, c.libelle,"; $sql.= " c.id as type_id, c.code as type_code, c.libelle,";
$sql.= " s.nom as socname,"; $sql.= " s.nom as socname,";
@ -289,23 +281,27 @@ class ActionComm extends CommonObject
$this->datec = $this->db->jdate($obj->datec); $this->datec = $this->db->jdate($obj->datec);
$this->datem = $this->db->jdate($obj->datem); $this->datem = $this->db->jdate($obj->datem);
$this->note =$obj->note; $this->note = $obj->note;
$this->percentage =$obj->percentage; $this->percentage = $obj->percentage;
$this->author->id = $obj->fk_user_author; $this->author->id = $obj->fk_user_author;
$this->usermod->id = $obj->fk_user_mod; $this->usermod->id = $obj->fk_user_mod;
$this->usertodo->id = $obj->fk_user_action; $this->usertodo->id = $obj->fk_user_action;
$this->userdone->id = $obj->fk_user_done; $this->userdone->id = $obj->fk_user_done;
$this->priority = $obj->priority; $this->priority = $obj->priority;
$this->fulldayevent = $obj->fulldayevent; $this->fulldayevent = $obj->fulldayevent;
$this->location = $obj->location; $this->location = $obj->location;
$this->socid = $obj->fk_soc; // To have fetch_thirdparty method working $this->socid = $obj->fk_soc; // To have fetch_thirdparty method working
$this->societe->id = $obj->fk_soc; $this->societe->id = $obj->fk_soc;
$this->contact->id = $obj->fk_contact; $this->contact->id = $obj->fk_contact;
$this->fk_project = $obj->fk_project; $this->fk_project = $obj->fk_project;
$this->fk_element = $obj->fk_element;
$this->elementtype = $obj->elementtype;
/*
$this->fk_facture = $obj->fk_facture; $this->fk_facture = $obj->fk_facture;
if ($this->fk_facture) if ($this->fk_facture)
{ {
@ -326,7 +322,7 @@ class ActionComm extends CommonObject
$this->objet_url = img_object($langs->trans("ShowOrder"),'order').' '.'<a href="'. DOL_URL_ROOT . '/commande/fiche.php?id='.$this->fk_commande.'">'.$langs->trans("Order").'</a>'; $this->objet_url = img_object($langs->trans("ShowOrder"),'order').' '.'<a href="'. DOL_URL_ROOT . '/commande/fiche.php?id='.$this->fk_commande.'">'.$langs->trans("Order").'</a>';
$this->objet_url_type = 'order'; $this->objet_url_type = 'order';
} }
*/
} }
$this->db->free($resql); $this->db->free($resql);
return 1; return 1;
@ -694,7 +690,8 @@ class ActionComm extends CommonObject
$sql.= " a.fk_soc,"; $sql.= " a.fk_soc,";
$sql.= " a.fk_user_author, a.fk_user_mod,"; $sql.= " a.fk_user_author, a.fk_user_mod,";
$sql.= " a.fk_user_action, a.fk_user_done,"; $sql.= " a.fk_user_action, a.fk_user_done,";
$sql.= " a.fk_contact, a.fk_facture, a.percent as percentage, a.fk_commande,"; $sql.= " a.fk_contact, a.percent as percentage,";
$sql.= " a.fk_element, a.elementtype,";
$sql.= " a.priority, a.fulldayevent, a.location,"; $sql.= " a.priority, a.fulldayevent, a.location,";
$sql.= " u.firstname, u.name,"; $sql.= " u.firstname, u.name,";
$sql.= " s.nom as socname,"; $sql.= " s.nom as socname,";

View File

@ -809,10 +809,10 @@ if ($id)
print '</td></tr>'; print '</td></tr>';
// Object linked // Object linked
if ($act->objet_url) if (! empty($act->fk_element) && ! empty($act->elementtype))
{ {
print '<tr><td>'.$langs->trans("LinkedObject").'</td>'; print '<tr><td>'.$langs->trans("LinkedObject").'</td>';
print '<td colspan="3">'.$act->objet_url.'</td></tr>'; print '<td colspan="3">'.$act->getElementUrl($act->fk_element,$act->elementtype,1).'</td></tr>';
} }
// Description // Description
@ -970,11 +970,11 @@ if ($id)
print $act->priority; print $act->priority;
print '</td></tr>'; print '</td></tr>';
// Linked object // Object linked
if ($act->objet_url) if (! empty($act->fk_element) && ! empty($act->elementtype))
{ {
print '<tr><td>'.$langs->trans("LinkedObject").'</td>'; print '<tr><td>'.$langs->trans("LinkedObject").'</td>';
print '<td colspan="3">'.$act->objet_url.'</td></tr>'; print '<td colspan="3">'.$act->getElementUrl($act->fk_element,$act->elementtype,1).'</td></tr>';
} }
// Description // Description

View File

@ -527,11 +527,12 @@ if ($_POST['action'] == 'send' && ! $_POST['addfile'] && ! $_POST['removedfile']
$error=0; $error=0;
// Initialisation donnees // Initialisation donnees
$object->sendtoid=$sendtoid; $object->sendtoid = $sendtoid;
$object->actiontypecode=$actiontypecode; $object->actiontypecode = $actiontypecode;
$object->actionmsg = $actionmsg; $object->actionmsg = $actionmsg;
$object->actionmsg2= $actionmsg2; $object->actionmsg2 = $actionmsg2;
$object->propalrowid=$object->id; $object->fk_element = $object->id;
$object->elementtype = $object->element;
// Appel des triggers // Appel des triggers
include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php"); include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php");

View File

@ -1036,11 +1036,12 @@ if ($action == 'send' && ! $_POST['addfile'] && ! $_POST['removedfile'] && ! $_P
$error=0; $error=0;
// Initialisation donnees // Initialisation donnees
$object->sendtoid=$sendtoid; $object->sendtoid = $sendtoid;
$object->actiontypecode=$actiontypecode; $object->actiontypecode = $actiontypecode;
$object->actionmsg = $actionmsg; $object->actionmsg = $actionmsg;
$object->actionmsg2= $actionmsg2; $object->actionmsg2 = $actionmsg2;
$object->orderrowid=$object->id; $object->fk_element = $object->id;
$object->elementtype = $object->element;
// Appel des triggers // Appel des triggers
include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php"); include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php");

View File

@ -1277,11 +1277,12 @@ if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_PO
$error=0; $error=0;
// Initialisation donnees // Initialisation donnees
$object->sendtoid=$sendtoid; $object->sendtoid = $sendtoid;
$object->actiontypecode=$actiontypecode; $object->actiontypecode = $actiontypecode;
$object->actionmsg = $actionmsg; // Long text $object->actionmsg = $actionmsg; // Long text
$object->actionmsg2= $actionmsg2; // Short text $object->actionmsg2 = $actionmsg2; // Short text
$object->facid=$object->id; $object->fk_element = $object->id;
$object->elementtype = $object->element;
// Appel des triggers // Appel des triggers
include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php"); include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php");

View File

@ -1464,7 +1464,50 @@ class CommonObject
// TODO: All functions here must be redesigned and moved as they are not business functions but output functions // TODO: All functions here must be redesigned and moved as they are not business functions but output functions
/**
*
* Enter description here ...
* @param unknown_type $objectid
* @param unknown_type $objecttype
* @param unknown_type $withpicto
* @param unknown_type $option
*/
function getElementUrl($objectid,$objecttype,$withpicto=0,$option='')
{
global $conf;
// Parse element/subelement (ex: project_task)
$module = $element = $subelement = $objecttype;
if (preg_match('/^([^_]+)_([^_]+)/i',$objecttype,$regs))
{
$module = $element = $regs[1];
$subelement = $regs[2];
}
$classpath = $element.'/class';
// To work with non standard path
if ($objecttype == 'facture') { $classpath = 'compta/facture/class'; }
if ($objecttype == 'propal') { $classpath = 'comm/propal/class'; }
if ($objecttype == 'shipping') { $classpath = 'expedition/class'; $subelement = 'expedition'; $module = 'expedition_bon'; }
if ($objecttype == 'delivery') { $classpath = 'livraison/class'; $subelement = 'livraison'; $module = 'livraison_bon'; }
if ($objecttype == 'invoice_supplier') { $classpath = 'fourn/class'; }
if ($objecttype == 'order_supplier') { $classpath = 'fourn/class'; }
$classfile = strtolower($subelement); $classname = ucfirst($subelement);
if ($objecttype == 'invoice_supplier') { $classfile = 'fournisseur.facture'; $classname='FactureFournisseur'; }
if ($objecttype == 'order_supplier') { $classfile = 'fournisseur.commande'; $classname='CommandeFournisseur'; }
if ($conf->$module->enabled)
{
dol_include_once('/'.$classpath.'/'.$classfile.'.class.php');
$object = new $classname($this->db);
$ret=$object->fetch($objectid);
if ($ret > 0) return $object->getNomUrl($withpicto,$option);
}
}
/* This is to show linked object block */ /* This is to show linked object block */
/** /**

View File

@ -109,17 +109,8 @@ class FormActions
$sql.= ' FROM '.MAIN_DB_PREFIX.'actioncomm as a, '.MAIN_DB_PREFIX.'user as u'; $sql.= ' FROM '.MAIN_DB_PREFIX.'actioncomm as a, '.MAIN_DB_PREFIX.'user as u';
$sql.= ' WHERE a.fk_user_author = u.rowid'; $sql.= ' WHERE a.fk_user_author = u.rowid';
if ($socid) $sql .= ' AND a.fk_soc = '.$socid; if ($socid) $sql .= ' AND a.fk_soc = '.$socid;
if ($typeelement == 'invoice') $sql.= ' AND a.fk_facture = '.$object->id; if ($typeelement == 'project') $sql.= ' AND a.fk_project = '.$object->id;
elseif ($typeelement == 'invoice_supplier' || $typeelement == 'supplier_invoice') $sql.= ' AND a.fk_supplier_invoice = '.$object->id; else $sql.= ' AND a.fk_element = '.$object->id.' AND a.elementtype = "'.$typeelement.'"';
elseif ($typeelement == 'propal') $sql.= ' AND a.propalrowid = '.$object->id;
elseif ($typeelement == 'order') $sql.= ' AND a.fk_commande = '.$object->id;
elseif ($typeelement == 'order_supplier' || $typeelement == 'supplier_order') $sql.= ' AND a.fk_supplier_order = '.$object->id;
elseif ($typeelement == 'project') $sql.= ' AND a.fk_project = '.$object->id;
else
{
dol_print_error('','Bad value for parameter typeelement');
return -1;
}
dol_syslog("FormActions::showactions sql=".$sql); dol_syslog("FormActions::showactions sql=".$sql);
$resql = $this->db->query($sql); $resql = $this->db->query($sql);

View File

@ -404,11 +404,12 @@ if ($action == 'send' && ! $_POST['addfile'] && ! $_POST['removedfile'] && ! $_P
$error=0; $error=0;
// Initialisation donnees // Initialisation donnees
$object->sendtoid=$sendtoid; $object->sendtoid = $sendtoid;
$object->actiontypecode=$actiontypecode; $object->actiontypecode = $actiontypecode;
$object->actionmsg = $actionmsg; $object->actionmsg = $actionmsg;
$object->actionmsg2= $actionmsg2; $object->actionmsg2 = $actionmsg2;
$object->shippingrowid=$object->id; $object->fk_element = $object->id;
$object->elementtype = $object->element;
// Appel des triggers // Appel des triggers
include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php"); include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php");
@ -1296,11 +1297,9 @@ else
print '</td><td valign="top" width="50%">'; print '</td><td valign="top" width="50%">';
// List of actions on element // List of actions on element
/*
include_once(DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php'); include_once(DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php');
$formactions=new FormActions($db); $formactions=new FormActions($db);
$somethingshown=$formactions->showactions($object,'shipping',$socid); $somethingshown=$formactions->showactions($object,'shipping',$socid);
*/
print '</td></tr></table>'; print '</td></tr></table>';
} }
@ -1315,7 +1314,7 @@ else
$file = $conf->expedition->dir_output . '/sending/' . $ref . '/' . $ref . '.pdf'; $file = $conf->expedition->dir_output . '/sending/' . $ref . '/' . $ref . '.pdf';
print '<br>'; print '<br>';
print_titre($langs->trans('SendShippingByMail')); print_titre($langs->trans('SendShippingByEMail'));
// Cree l'objet formulaire mail // Cree l'objet formulaire mail
include_once(DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php'); include_once(DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php');

View File

@ -513,11 +513,12 @@ if ($_POST['action'] == 'send' && ! $_POST['cancel'] && (empty($conf->global->MA
$error=0; $error=0;
// Initialisation donnees // Initialisation donnees
$fichinter->sendtoid=$sendtoid; $fichinter->sendtoid = $sendtoid;
$fichinter->actiontypecode=$actiontypecode; $fichinter->actiontypecode = $actiontypecode;
$fichinter->actionmsg = $actionmsg; $fichinter->actionmsg = $actionmsg;
$fichinter->actionmsg2= $actionmsg2; $fichinter->actionmsg2 = $actionmsg2;
$fichinter->rowid=$fichinter->id; $fichinter->fk_element = $fichinter->id;
$fichinter->elementtype = $fichinter->element;
// Appel des triggers // Appel des triggers
include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php"); include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php");

View File

@ -690,11 +690,12 @@ if ($action == 'send' && ! $_POST['addfile'] && ! $_POST['removedfile'] && ! $_P
$error=0; $error=0;
// Initialisation donnees // Initialisation donnees
$object->sendtoid=$sendtoid; $object->sendtoid = $sendtoid;
$object->actiontypecode=$actiontypecode; $object->actiontypecode = $actiontypecode;
$object->actionmsg = $actionmsg; $object->actionmsg = $actionmsg;
$object->actionmsg2= $actionmsg2; $object->actionmsg2 = $actionmsg2;
$object->supplierorderrowid=$object->id; $object->fk_element = $object->id;
$object->elementtype = $object->element;
// Appel des triggers // Appel des triggers
include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php"); include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php");

View File

@ -743,11 +743,12 @@ if ($_POST['action'] == 'send' && ! $_POST['addfile'] && ! $_POST['removedfile']
$error=0; $error=0;
// Initialisation donnees // Initialisation donnees
$facturefourn->sendtoid=$sendtoid; $facturefourn->sendtoid = $sendtoid;
$facturefourn->actiontypecode=$actiontypecode; $facturefourn->actiontypecode = $actiontypecode;
$facturefourn->actionmsg = $actionmsg; $facturefourn->actionmsg = $actionmsg;
$facturefourn->actionmsg2= $actionmsg2; $facturefourn->actionmsg2 = $actionmsg2;
$facturefourn->supplierorderrowid=$facturefourn->id; $facturefourn->fk_element = $facturefourn->id;
$facturefourn->elementtype = $facturefourn->element;
// Appel des triggers // Appel des triggers
include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php"); include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php");

View File

@ -88,6 +88,8 @@ class modAgenda extends DolibarrModules
$this->const[9] = array("MAIN_AGENDA_ACTIONAUTO_BILL_SENTBYMAIL","chaine","1"); $this->const[9] = array("MAIN_AGENDA_ACTIONAUTO_BILL_SENTBYMAIL","chaine","1");
$this->const[10] = array("MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_VALIDATE","chaine","1"); $this->const[10] = array("MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_VALIDATE","chaine","1");
$this->const[11] = array("MAIN_AGENDA_ACTIONAUTO_BILL_SUPPLIER_VALIDATE","chaine","1"); $this->const[11] = array("MAIN_AGENDA_ACTIONAUTO_BILL_SUPPLIER_VALIDATE","chaine","1");
$this->const[12] = array("MAIN_AGENDA_ACTIONAUTO_SHIPPING_VALIDATE","chaine","1");
$this->const[13] = array("MAIN_AGENDA_ACTIONAUTO_SHIPPING_SENTBYMAIL","chaine","1");
// New pages on tabs // New pages on tabs
// ----------------- // -----------------

View File

@ -96,9 +96,8 @@ class InterfaceActionsAuto
* $object->sendtoid (id of contact) * $object->sendtoid (id of contact)
* $object->socid * $object->socid
* Optionnal: * Optionnal:
* $object->facid * $object->fk_element
* $object->propalrowid * $object->elementtype
* $object->orderrowid
* *
* @param action Event code (COMPANY_CREATE, PROPAL_VALIDATE, ...) * @param action Event code (COMPANY_CREATE, PROPAL_VALIDATE, ...)
* @param object Object action is done on * @param object Object action is done on
@ -132,7 +131,8 @@ class InterfaceActionsAuto
$object->sendtoid=0; $object->sendtoid=0;
$object->socid=$object->id; $object->socid=$object->id;
$object->facid=$object->orderrowid=$object->propalrowid=0; $object->fk_element=0;
$object->elementtype='';
$ok=1; $ok=1;
} }
elseif ($action == 'CONTRACT_VALIDATE') elseif ($action == 'CONTRACT_VALIDATE')
@ -148,7 +148,6 @@ class InterfaceActionsAuto
$object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login; $object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login;
$object->sendtoid=0; $object->sendtoid=0;
$object->facid=$object->orderrowid=$object->propalrowid=0;
$ok=1; $ok=1;
} }
elseif ($action == 'PROPAL_VALIDATE') elseif ($action == 'PROPAL_VALIDATE')
@ -163,8 +162,6 @@ class InterfaceActionsAuto
$object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login; $object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login;
$object->sendtoid=0; $object->sendtoid=0;
$object->propalrowid=$object->id;
$object->facid=$object->orderrowid=0;
$ok=1; $ok=1;
} }
elseif ($action == 'PROPAL_SENTBYMAIL') elseif ($action == 'PROPAL_SENTBYMAIL')
@ -182,8 +179,6 @@ class InterfaceActionsAuto
} }
$object->sendtoid=0; $object->sendtoid=0;
$object->propalrowid=$object->id;
$object->orderrowid=$object->facid=0;
$ok=1; $ok=1;
} }
elseif ($action == 'PROPAL_CLOSE_SIGNED') elseif ($action == 'PROPAL_CLOSE_SIGNED')
@ -198,8 +193,6 @@ class InterfaceActionsAuto
$object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login; $object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login;
$object->sendtoid=0; $object->sendtoid=0;
$object->propalrowid=$object->id;
$object->facid=$object->orderrowid=0;
$ok=1; $ok=1;
} }
elseif ($action == 'PROPAL_CLOSE_REFUSED') elseif ($action == 'PROPAL_CLOSE_REFUSED')
@ -214,8 +207,6 @@ class InterfaceActionsAuto
$object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login; $object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login;
$object->sendtoid=0; $object->sendtoid=0;
$object->propalrowid=$object->id;
$object->facid=$object->orderrowid=0;
$ok=1; $ok=1;
} }
elseif ($action == 'ORDER_VALIDATE') elseif ($action == 'ORDER_VALIDATE')
@ -230,8 +221,6 @@ class InterfaceActionsAuto
$object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login; $object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login;
$object->sendtoid=0; $object->sendtoid=0;
$object->orderrowid=$object->id;
$object->propalrowid=$object->facid=0;
$ok=1; $ok=1;
} }
elseif ($action == 'ORDER_SENTBYMAIL') elseif ($action == 'ORDER_SENTBYMAIL')
@ -249,8 +238,6 @@ class InterfaceActionsAuto
} }
$object->sendtoid=0; $object->sendtoid=0;
$object->facid=$object->id;
$object->orderrowid=$object->propalrowid=0;
$ok=1; $ok=1;
// Parameters $object->xxx defined by caller // Parameters $object->xxx defined by caller
@ -268,8 +255,6 @@ class InterfaceActionsAuto
$object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login; $object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login;
$object->sendtoid=0; $object->sendtoid=0;
$object->facid=$object->id;
$object->orderrowid=$object->propalrowid=0;
$ok=1; $ok=1;
} }
elseif ($action == 'BILL_SENTBYMAIL') elseif ($action == 'BILL_SENTBYMAIL')
@ -287,8 +272,6 @@ class InterfaceActionsAuto
$object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login; $object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login;
} }
$object->facid=$object->id;
$object->orderrowid=$object->propalrowid=0;
$ok=1; $ok=1;
// Parameters $object->xxx defined by caller // Parameters $object->xxx defined by caller
@ -306,8 +289,6 @@ class InterfaceActionsAuto
$object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login; $object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login;
$object->sendtoid=0; $object->sendtoid=0;
$object->facid=$object->id;
$object->orderrowid=$object->propalrowid=0;
$ok=1; $ok=1;
} }
elseif ($action == 'BILL_CANCEL') elseif ($action == 'BILL_CANCEL')
@ -323,8 +304,6 @@ class InterfaceActionsAuto
$object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login; $object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login;
$object->sendtoid=0; $object->sendtoid=0;
$object->facid=$object->id;
$object->orderrowid=$object->propalrowid=0;
$ok=1; $ok=1;
} }
elseif ($action == 'FICHEINTER_VALIDATE') elseif ($action == 'FICHEINTER_VALIDATE')
@ -342,6 +321,25 @@ class InterfaceActionsAuto
$object->sendtoid=0; $object->sendtoid=0;
$ok=1; $ok=1;
} }
elseif ($action == 'SHIPPING_SENTBYMAIL')
{
dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
$langs->load("other");
$langs->load("sendings");
$langs->load("agenda");
$object->actiontypecode='AC_SHIP';
if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("ShippingSentByEMail",$object->ref);
if (empty($object->actionmsg))
{
$object->actionmsg=$langs->transnoentities("ShippingSentByEMail",$object->ref);
$object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login;
}
$ok=1;
// Parameters $object->xxx defined by caller
}
elseif ($action == 'ORDER_SUPPLIER_VALIDATE') elseif ($action == 'ORDER_SUPPLIER_VALIDATE')
{ {
dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id); dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
@ -354,8 +352,6 @@ class InterfaceActionsAuto
$object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login; $object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login;
$object->sendtoid=0; $object->sendtoid=0;
$object->supplierorderrowid=$object->id;
$object->supplierinvoicerowid=$object->facid=$object->orderrowid=$object->propalrowid=0;
$ok=1; $ok=1;
} }
elseif ($action == 'ORDER_SUPPLIER_SENTBYMAIL') elseif ($action == 'ORDER_SUPPLIER_SENTBYMAIL')
@ -375,8 +371,6 @@ class InterfaceActionsAuto
} }
$object->sendtoid=0; $object->sendtoid=0;
$object->supplierorderrowid=$object->id;
$object->supplierinvoicerowid=$object->facid=$object->orderrowid=$object->propalrowid=0;
$ok=1; $ok=1;
} }
elseif ($action == 'BILL_SUPPLIER_VALIDATE') elseif ($action == 'BILL_SUPPLIER_VALIDATE')
@ -392,8 +386,6 @@ class InterfaceActionsAuto
$object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login; $object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login;
$object->sendtoid=0; $object->sendtoid=0;
$object->supplierinvoicerowid=$object->id;
$object->supplierorderrowid=$object->facid=$object->orderrowid=$object->propalrowid=0;
$ok=1; $ok=1;
} }
elseif ($action == 'BILL_SUPPLIER_SENTBYMAIL') elseif ($action == 'BILL_SUPPLIER_SENTBYMAIL')
@ -413,8 +405,6 @@ class InterfaceActionsAuto
} }
$object->sendtoid=0; $object->sendtoid=0;
$object->supplierorderrowid=$object->id;
$object->supplierinvoicerowid=$object->facid=$object->orderrowid=$object->propalrowid=0;
$ok=1; $ok=1;
} }
elseif ($action == 'BILL_SUPPLIER_PAYED') elseif ($action == 'BILL_SUPPLIER_PAYED')
@ -430,8 +420,6 @@ class InterfaceActionsAuto
$object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login; $object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login;
$object->sendtoid=0; $object->sendtoid=0;
$object->supplierinvoicerowid=$object->id;
$object->supplierorderrowid=$object->facid=$object->orderrowid=$object->propalrowid=0;
$ok=1; $ok=1;
} }
elseif ($action == 'BILL_SUPPLIER_CANCELED') elseif ($action == 'BILL_SUPPLIER_CANCELED')
@ -447,8 +435,6 @@ class InterfaceActionsAuto
$object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login; $object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login;
$object->sendtoid=0; $object->sendtoid=0;
$object->supplierinvoicerowid=$object->id;
$object->facid=$object->orderrowid=$object->propalrowid=0;
$ok=1; $ok=1;
} }
@ -468,7 +454,8 @@ class InterfaceActionsAuto
$object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login; $object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login;
$object->sendtoid=0; $object->sendtoid=0;
$object->facid=$object->orderrowid=$object->propalrowid=0; $object->fk_element=0;
$object->elementtype='';
$ok=1; $ok=1;
} }
elseif ($action == 'MEMBER_SUBSCRIPTION') elseif ($action == 'MEMBER_SUBSCRIPTION')
@ -488,7 +475,8 @@ class InterfaceActionsAuto
$object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login; $object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login;
$object->sendtoid=0; $object->sendtoid=0;
$object->facid=$object->orderrowid=$object->propalrowid=0; $object->fk_element=0;
$object->elementtype='';
$ok=1; $ok=1;
} }
elseif ($action == 'MEMBER_MODIFY') elseif ($action == 'MEMBER_MODIFY')
@ -510,7 +498,8 @@ class InterfaceActionsAuto
$object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login; $object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login;
$object->sendtoid=0; $object->sendtoid=0;
$object->facid=$object->orderrowid=$object->propalrowid=0; $object->fk_element=0;
$object->elementtype='';
$ok=1; $ok=1;
} }
elseif ($action == 'MEMBER_DELETE') elseif ($action == 'MEMBER_DELETE')
@ -528,7 +517,8 @@ class InterfaceActionsAuto
$object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login; $object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login;
$object->sendtoid=0; $object->sendtoid=0;
$object->facid=$object->orderrowid=$object->propalrowid=0; $object->fk_element=0;
$object->elementtype='';
$ok=1; $ok=1;
} }
@ -564,11 +554,8 @@ class InterfaceActionsAuto
//$actioncomm->usertodo = $user; // User affected to action //$actioncomm->usertodo = $user; // User affected to action
$actioncomm->userdone = $user; // User doing action $actioncomm->userdone = $user; // User doing action
$actioncomm->facid = $object->facid; $actioncomm->fk_element = $object->fk_element;
$actioncomm->orderrowid = $object->orderrowid; $actioncomm->elementtype = $object->elementtype;
$actioncomm->propalrowid = $object->propalrowid;
$actioncomm->supplierinvoicerowid = $object->supplierinvoicerowid;
$actioncomm->supplierorderrowid = $object->supplierorderrowid;
$ret=$actioncomm->add($user); // User qui saisit l'action $ret=$actioncomm->add($user); // User qui saisit l'action
if ($ret > 0) if ($ret > 0)

View File

@ -47,6 +47,8 @@ if (isset($_POST["action"]) && preg_match('/upgrade/i',$_POST["action"])) // If
$langs->load("admin"); $langs->load("admin");
$langs->load("install"); $langs->load("install");
$action=GETPOST('action');
$success=0; $success=0;
// Init "forced values" to nothing. "forced values" are used after an doliwamp install wizard. // Init "forced values" to nothing. "forced values" are used after an doliwamp install wizard.
@ -74,7 +76,7 @@ dolibarr_install_syslog("etape5: Entering etape5.php page", LOG_INFO);
*/ */
// If install, check pass and pass_verif used to create admin account // If install, check pass and pass_verif used to create admin account
if (isset($_POST['action']) && $_POST["action"] == "set") if ($action == "set")
{ {
if ($_POST["pass"] <> $_POST["pass_verif"]) if ($_POST["pass"] <> $_POST["pass_verif"])
{ {
@ -110,7 +112,7 @@ if (! GETPOST("versionfrom") && ! GETPOST("versionto") && ! is_writable($conffil
exit; exit;
} }
if ($_POST["action"] == "set" || preg_match('/upgrade/i',$_POST["action"])) if ($action == "set" || preg_match('/upgrade/i',$action))
{ {
print '<table cellspacing="0" cellpadding="2" width="100%">'; print '<table cellspacing="0" cellpadding="2" width="100%">';
$error=0; $error=0;
@ -142,7 +144,7 @@ if ($_POST["action"] == "set" || preg_match('/upgrade/i',$_POST["action"]))
$ok = 0; $ok = 0;
// If first install // If first install
if ($_POST["action"] == "set") if ($action == "set")
{ {
// Active module user // Active module user
$modName='modUser'; $modName='modUser';
@ -226,7 +228,7 @@ if ($_POST["action"] == "set" || preg_match('/upgrade/i',$_POST["action"]))
} }
} }
// If upgrade // If upgrade
elseif (preg_match('/upgrade/i',$_POST["action"])) elseif (preg_match('/upgrade/i',$action))
{ {
if ($db->connected == 1) if ($db->connected == 1)
{ {
@ -281,7 +283,7 @@ print "<br>";
// Create lock file // Create lock file
// If first install // If first install
if (GETPOST("action") == "set") if ($action == "set")
{ {
if (empty($conf->global->MAIN_VERSION_LAST_UPGRADE) || ($conf->global->MAIN_VERSION_LAST_UPGRADE == DOL_VERSION)) if (empty($conf->global->MAIN_VERSION_LAST_UPGRADE) || ($conf->global->MAIN_VERSION_LAST_UPGRADE == DOL_VERSION))
{ {
@ -331,7 +333,7 @@ if (GETPOST("action") == "set")
} }
} }
// If upgrade // If upgrade
elseif (preg_match('/upgrade/i',GETPOST("action"))) elseif (preg_match('/upgrade/i',$action))
{ {
if (empty($conf->global->MAIN_VERSION_LAST_UPGRADE) || ($conf->global->MAIN_VERSION_LAST_UPGRADE == DOL_VERSION)) if (empty($conf->global->MAIN_VERSION_LAST_UPGRADE) || ($conf->global->MAIN_VERSION_LAST_UPGRADE == DOL_VERSION))
{ {

View File

@ -109,8 +109,6 @@ INSERT INTO llx_c_availability (rowid,code,label,active) VALUES (2, 'AV_1W', '1
INSERT INTO llx_c_availability (rowid,code,label,active) VALUES (3, 'AV_2W', '2 weeks', 1); INSERT INTO llx_c_availability (rowid,code,label,active) VALUES (3, 'AV_2W', '2 weeks', 1);
INSERT INTO llx_c_availability (rowid,code,label,active) VALUES (4, 'AV_3W', '3 weeks', 1); INSERT INTO llx_c_availability (rowid,code,label,active) VALUES (4, 'AV_3W', '3 weeks', 1);
ALTER TABLE llx_actioncomm ADD COLUMN entity integer DEFAULT 1 NOT NULL AFTER id;
ALTER TABLE llx_propaldet ADD INDEX idx_propaldet_fk_product (fk_product); ALTER TABLE llx_propaldet ADD INDEX idx_propaldet_fk_product (fk_product);
ALTER TABLE llx_commandedet ADD INDEX idx_commandedet_fk_product (fk_product); ALTER TABLE llx_commandedet ADD INDEX idx_commandedet_fk_product (fk_product);
ALTER TABLE llx_facturedet ADD INDEX idx_facturedet_fk_product (fk_product); ALTER TABLE llx_facturedet ADD INDEX idx_facturedet_fk_product (fk_product);
@ -135,6 +133,13 @@ ALTER TABLE llx_livraison ADD COLUMN ref_int varchar(30) AFTER ref_ext;
INSERT INTO llx_c_shipment_mode (rowid,code,libelle,description,active) VALUES (4,'LETTREMAX','Lettre Max','Courrier Suivi et Lettre Max',0); INSERT INTO llx_c_shipment_mode (rowid,code,libelle,description,active) VALUES (4,'LETTREMAX','Lettre Max','Courrier Suivi et Lettre Max',0);
INSERT INTO llx_c_actioncomm (id, code, type, libelle, module, position) VALUES ( 10, 'AC_SHIP', 'system', 'Send shipping by email' ,'shipping', 11); INSERT INTO llx_c_actioncomm (id, code, type, libelle, module, position) VALUES ( 10, 'AC_SHIP', 'system', 'Send shipping by email' ,'shipping', 11);
ALTER TABLE llx_actioncomm DROP INDEX idx_actioncomm_fk_facture;
ALTER TABLE llx_actioncomm DROP INDEX idx_actioncomm_fk_supplier_order;
ALTER TABLE llx_actioncomm DROP INDEX idx_actioncomm_fk_supplier_invoice;
ALTER TABLE llx_actioncomm ADD COLUMN entity integer DEFAULT 1 NOT NULL AFTER id;
ALTER TABLE llx_actioncomm ADD COLUMN fk_element integer DEFAULT NULL AFTER note;
ALTER TABLE llx_actioncomm ADD COLUMN elementtype varchar(16) DEFAULT NULL AFTER fk_element;
--Add Chile data (id pays=67) --Add Chile data (id pays=67)
-- Regions Chile -- Regions Chile
INSERT INTO llx_c_regions (rowid, code_region, fk_pays, cheflieu, tncc, nom, active) VALUES (6701, 6701, 67, NULL, NULL, 'Tarapacá', 1); INSERT INTO llx_c_regions (rowid, code_region, fk_pays, cheflieu, tncc, nom, active) VALUES (6701, 6701, 67, NULL, NULL, 'Tarapacá', 1);

View File

@ -1,5 +1,6 @@
-- ============================================================================ -- ============================================================================
-- Copyright (C) 2005 Laurent Destailleur <eldy@users.sourceforge.net> -- Copyright (C) 2005-2011 Laurent Destailleur <eldy@users.sourceforge.net>
-- Copyright (C) 2011 Regis Houssin <regis@dolibarr.fr>
-- --
-- This program is free software; you can redistribute it and/or modify -- 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 -- it under the terms of the GNU General Public License as published by
@ -22,6 +23,3 @@
ALTER TABLE llx_actioncomm ADD INDEX idx_actioncomm_datea (datea); ALTER TABLE llx_actioncomm ADD INDEX idx_actioncomm_datea (datea);
ALTER TABLE llx_actioncomm ADD INDEX idx_actioncomm_fk_soc (fk_soc); ALTER TABLE llx_actioncomm ADD INDEX idx_actioncomm_fk_soc (fk_soc);
ALTER TABLE llx_actioncomm ADD INDEX idx_actioncomm_fk_contact (fk_contact); ALTER TABLE llx_actioncomm ADD INDEX idx_actioncomm_fk_contact (fk_contact);
ALTER TABLE llx_actioncomm ADD INDEX idx_actioncomm_fk_facture (fk_facture);
ALTER TABLE llx_actioncomm ADD INDEX idx_actioncomm_fk_supplier_order (fk_supplier_order);
ALTER TABLE llx_actioncomm ADD INDEX idx_actioncomm_fk_supplier_invoice (fk_supplier_invoice);

View File

@ -24,44 +24,39 @@
create table llx_actioncomm create table llx_actioncomm
( (
id integer AUTO_INCREMENT PRIMARY KEY, id integer AUTO_INCREMENT PRIMARY KEY,
entity integer DEFAULT 1 NOT NULL, -- multi company id entity integer DEFAULT 1 NOT NULL, -- multi company id
datep datetime, -- date debut planifiee datep datetime, -- date debut planifiee
datep2 datetime, -- deprecated datep2 datetime, -- deprecated
datea datetime, -- date debut realisation datea datetime, -- date debut realisation
datea2 datetime, -- deprecated datea2 datetime, -- deprecated
fk_action integer, -- type de l'action fk_action integer, -- type de l'action
label varchar(128) NOT NULL, -- libelle de l'action label varchar(128) NOT NULL, -- libelle de l'action
datec datetime, -- date creation datec datetime, -- date creation
tms timestamp, -- date modif tms timestamp, -- date modif
fk_user_author integer, -- id user qui a cree l'action fk_user_author integer, -- id user qui a cree l'action
fk_user_mod integer, -- id dernier user qui a modifier l'action fk_user_mod integer, -- id dernier user qui a modifier l'action
fk_project integer, fk_project integer,
fk_soc integer, fk_soc integer,
fk_contact integer, fk_contact integer,
fk_parent integer NOT NULL default 0, fk_parent integer NOT NULL default 0,
fk_user_action integer, -- id de la personne qui doit effectuer l'action fk_user_action integer, -- id de la personne qui doit effectuer l'action
fk_user_done integer, -- id de la personne qui a effectue l'action fk_user_done integer, -- id de la personne qui a effectue l'action
priority smallint, priority smallint,
fulldayevent smallint NOT NULL default 0, fulldayevent smallint NOT NULL default 0,
punctual smallint NOT NULL default 1, punctual smallint NOT NULL default 1,
percent smallint NOT NULL default 0, percent smallint NOT NULL default 0,
location varchar(128), location varchar(128),
durationp real, -- duree planifiee durationp real, -- duree planifiee
durationa real, -- deprecated durationa real, -- deprecated
note text, note text,
propalrowid integer, fk_element integer DEFAULT NULL,
fk_commande integer, elementtype varchar(16) DEFAULT NULL
fk_facture integer,
fk_contract integer,
fk_supplier_order integer,
fk_supplier_invoice integer
)ENGINE=innodb; )ENGINE=innodb;

View File

@ -1,7 +1,7 @@
<?php <?php
/* Copyright (C) 2005 Marc Barilley / Ocebo <marc@ocebo.com> /* Copyright (C) 2005 Marc Barilley / Ocebo <marc@ocebo.com>
* Copyright (C) 2005-2010 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2005-2010 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2010 Regis Houssin <regis@dolibarr.fr> * Copyright (C) 2005-2011 Regis Houssin <regis@dolibarr.fr>
* Copyright (C) 2010 Juanjo Menent <jmenent@2byte.es> * Copyright (C) 2010 Juanjo Menent <jmenent@2byte.es>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
@ -315,6 +315,8 @@ if (! GETPOST("action") || preg_match('/upgrade/i',GETPOST('action')))
if (versioncompare($versiontoarray,$afterversionarray) >= 0 && versioncompare($versiontoarray,$beforeversionarray) <= 0) if (versioncompare($versiontoarray,$afterversionarray) >= 0 && versioncompare($versiontoarray,$beforeversionarray) <= 0)
{ {
migrate_directories($db,$langs,$conf,'/rss','/externalrss'); migrate_directories($db,$langs,$conf,'/rss','/externalrss');
migrate_actioncomm_element($db,$langs,$conf);
// Reload modules // Reload modules
migrate_reload_modules($db,$langs,$conf); migrate_reload_modules($db,$langs,$conf);
@ -3079,6 +3081,65 @@ function migrate_shipping_delivery2($db,$langs,$conf)
print '</td></tr>'; print '</td></tr>';
} }
/*
* Migrate link stored into fk_xxxx into fk_element and elementtype
*/
function migrate_actioncomm_element($db,$langs,$conf)
{
print '<tr><td colspan="4">';
print '<br>';
print '<b>'.$langs->trans('MigrationActioncommElement')."</b><br>\n";
$elements = array( 'propal' => 'propalrowid',
'commande' => 'fk_commande',
'facture' => 'fk_facture',
'contrat' => 'fk_contract',
'order_supplier' => 'fk_supplier_order',
'invoice_supplier' => 'fk_supplier_invoice'
);
foreach($elements as $type => $field)
{
$result = $db->DDLDescTable(MAIN_DB_PREFIX."actioncomm",$field);
$obj = $db->fetch_object($result);
if ($obj)
{
dolibarr_install_syslog("upgrade2::migrate_actioncomm_element field=".$field);
$db->begin();
$sql = "UPDATE ".MAIN_DB_PREFIX."actioncomm SET ";
$sql.= "fk_element = ".$field.", elementtype = '".$type."'";
$sql.= " WHERE ".$field." IS NOT NULL";
$sql.= " AND fk_element IS NULL";
$sql.= " AND elementtype IS NULL";
$resql = $db->query($sql);
if ($resql)
{
$db->commit();
// DDL commands must not be inside a transaction
$sqlDrop = "ALTER TABLE ".MAIN_DB_PREFIX."actioncomm DROP COLUMN ".$field;
$db->query($sqlDrop);
print ". ";
}
else
{
dol_print_error($db);
$db->rollback();
}
}
else
{
print $langs->trans('AlreadyDone')."<br>\n";
}
}
print '</td></tr>';
}
/** /**
* Migration directory * Migration directory

View File

@ -43,6 +43,7 @@ OrderSentByEMail=Customer order %s sent by EMail
InvoiceSentByEMail=Customer invoice %s sent by EMail InvoiceSentByEMail=Customer invoice %s sent by EMail
SupplierOrderSentByEMail=Supplier order %s sent by EMail SupplierOrderSentByEMail=Supplier order %s sent by EMail
SupplierInvoiceSentByEMail=Supplier invoice %s sent by EMail SupplierInvoiceSentByEMail=Supplier invoice %s sent by EMail
ShippingSentByEMail=Shipping %s sent by EMail
NewCompanyToDolibarr= Third party created NewCompanyToDolibarr= Third party created
DateActionPlannedStart= Planned start date DateActionPlannedStart= Planned start date
DateActionPlannedEnd= Planned end date DateActionPlannedEnd= Planned end date

View File

@ -76,6 +76,7 @@ ActionAC_REL=Send customer invoice by mail (reminder)
ActionAC_CLO=Close ActionAC_CLO=Close
ActionAC_EMAILING=Send mass email ActionAC_EMAILING=Send mass email
ActionAC_COM=Send customer order by mail ActionAC_COM=Send customer order by mail
ActionAC_SHIP=Send shipping by mail
ActionAC_SUP_ORD=Send supplier order by mail ActionAC_SUP_ORD=Send supplier order by mail
ActionAC_SUP_INV=Send supplier invoice by mail ActionAC_SUP_INV=Send supplier invoice by mail
ActionAC_OTH=Other ActionAC_OTH=Other

View File

@ -50,6 +50,8 @@ WarningNoQtyLeftToSend=Warning, no products waiting to be shipped.
StatsOnShipmentsOnlyValidated=Statistics conducted on shipments only validated StatsOnShipmentsOnlyValidated=Statistics conducted on shipments only validated
DateDeliveryPlanned=Planed date of delivery DateDeliveryPlanned=Planed date of delivery
DateReceived=Date delivery received DateReceived=Date delivery received
SendShippingByEMail=Send shipping by EMail
SendShippingRef=Send shipping %s
# Sending methods # Sending methods
SendingMethodCATCH=Catch by customer SendingMethodCATCH=Catch by customer

View File

@ -43,6 +43,7 @@ OrderSentByEMail=Commande client %s envoyée par EMail
InvoiceSentByEMail=Facture client %s envoyée par EMail InvoiceSentByEMail=Facture client %s envoyée par EMail
SupplierOrderSentByEMail=Commande fournisseur %s envoyée par EMail SupplierOrderSentByEMail=Commande fournisseur %s envoyée par EMail
SupplierInvoiceSentByEMail=Facture fournisseur %s envoyée par EMail SupplierInvoiceSentByEMail=Facture fournisseur %s envoyée par EMail
ShippingSentByEMail=Bon d'expédition %s envoyé par EMail
NewCompanyToDolibarr=Tiers créé NewCompanyToDolibarr=Tiers créé
DateActionPlannedStart=Date début réalisation prévue DateActionPlannedStart=Date début réalisation prévue
DateActionPlannedEnd=Date fin réalisation prévue DateActionPlannedEnd=Date fin réalisation prévue

View File

@ -76,6 +76,7 @@ ActionAC_REL=Relance facture client par mail
ActionAC_CLO=Clôture ActionAC_CLO=Clôture
ActionAC_EMAILING=Envoi mailing masse ActionAC_EMAILING=Envoi mailing masse
ActionAC_COM=Envoi commande client par mail ActionAC_COM=Envoi commande client par mail
ActionAC_SHIP=Envoi bon d'expédition par mail
ActionAC_SUP_ORD=Envoi commande fournisseur par mail ActionAC_SUP_ORD=Envoi commande fournisseur par mail
ActionAC_SUP_INV=Envoi facture fournisseur par mail ActionAC_SUP_INV=Envoi facture fournisseur par mail
ActionAC_OTH=Autre ActionAC_OTH=Autre

View File

@ -50,6 +50,8 @@ WarningNoQtyLeftToSend=Alerte, aucun produit en attente de livraison.
StatsOnShipmentsOnlyValidated=Statistiques effectuées sur les expéditions validées uniquement StatsOnShipmentsOnlyValidated=Statistiques effectuées sur les expéditions validées uniquement
DateDeliveryPlanned=Date livraison prévue DateDeliveryPlanned=Date livraison prévue
DateReceived=Date réception réelle DateReceived=Date réception réelle
SendShippingByEMail=Envoi bon d'expédition par EMail
SendShippingRef=Envoi bon d'expédition %s
# Sending methods # Sending methods
SendingMethodCATCH=Enlèvement par le client SendingMethodCATCH=Enlèvement par le client

View File

@ -559,7 +559,8 @@ function show_actions_todo($conf,$langs,$db,$object,$objcon='',$noprint=0)
$sql.= " a.datep as dp,"; $sql.= " a.datep as dp,";
$sql.= " a.datea as da,"; $sql.= " a.datea as da,";
$sql.= " a.percent,"; $sql.= " a.percent,";
$sql.= " a.propalrowid, a.fk_user_author, a.fk_contact,"; $sql.= " a.fk_user_author, a.fk_contact,";
$sql.= " a.fk_element, a.elementtype,";
$sql.= " c.code as acode, c.libelle,"; $sql.= " c.code as acode, c.libelle,";
$sql.= " u.login, u.rowid,"; $sql.= " u.login, u.rowid,";
$sql.= " sp.name, sp.firstname"; $sql.= " sp.name, sp.firstname";
@ -600,9 +601,9 @@ function show_actions_todo($conf,$langs,$db,$object,$objcon='',$noprint=0)
else $out.='&nbsp;'; else $out.='&nbsp;';
$out.='</td>'; $out.='</td>';
if ($obj->propalrowid) if ($obj->fk_element && $obj->elementtype == "propal")
{ {
$out.='<td width="140"><a href="propal.php?id='.$obj->propalrowid.'">'.img_object($langs->trans("ShowAction"),"task"); $out.='<td width="140"><a href="propal.php?id='.$obj->fk_element.'">'.img_object($langs->trans("ShowAction"),"task");
$transcode=$langs->trans("Action".$obj->acode); $transcode=$langs->trans("Action".$obj->acode);
$libelle=($transcode!="Action".$obj->acode?$transcode:$obj->libelle); $libelle=($transcode!="Action".$obj->acode?$transcode:$obj->libelle);
$out.=$libelle; $out.=$libelle;
@ -689,7 +690,7 @@ function show_actions_done($conf,$langs,$db,$object,$objcon='',$noprint=0)
$sql.= " a.datep as dp,"; $sql.= " a.datep as dp,";
$sql.= " a.datep2 as dp2,"; $sql.= " a.datep2 as dp2,";
$sql.= " a.note, a.percent,"; $sql.= " a.note, a.percent,";
$sql.= " a.propalrowid as pid, a.fk_commande as oid, a.fk_facture as fid,"; $sql.= " a.fk_element, a.elementtype,";
$sql.= " a.fk_user_author, a.fk_contact,"; $sql.= " a.fk_user_author, a.fk_contact,";
$sql.= " c.code as acode, c.libelle,"; $sql.= " c.code as acode, c.libelle,";
$sql.= " u.login, u.rowid as user_id,"; $sql.= " u.login, u.rowid as user_id,";
@ -717,7 +718,7 @@ function show_actions_done($conf,$langs,$db,$object,$objcon='',$noprint=0)
'acode'=>$obj->acode,'libelle'=>$obj->libelle, 'acode'=>$obj->acode,'libelle'=>$obj->libelle,
'userid'=>$obj->user_id,'login'=>$obj->login, 'userid'=>$obj->user_id,'login'=>$obj->login,
'contact_id'=>$obj->fk_contact,'name'=>$obj->name,'firstname'=>$obj->firstname, 'contact_id'=>$obj->fk_contact,'name'=>$obj->name,'firstname'=>$obj->firstname,
'pid'=>$obj->pid,'oid'=>$obj->oid,'fid'=>$obj->fid); 'fk_element'=>$obj->fk_element,'elementtype'=>$obj->elementtype);
$numaction++; $numaction++;
$i++; $i++;
} }
@ -777,6 +778,8 @@ function show_actions_done($conf,$langs,$db,$object,$objcon='',$noprint=0)
$actionstatic=new ActionComm($db); $actionstatic=new ActionComm($db);
$userstatic=new User($db); $userstatic=new User($db);
$contactstatic = new Contact($db); $contactstatic = new Contact($db);
// TODO uniformize
$propalstatic=new Propal($db); $propalstatic=new Propal($db);
$orderstatic=new Commande($db); $orderstatic=new Commande($db);
$facturestatic=new Facture($db); $facturestatic=new Facture($db);
@ -820,23 +823,24 @@ function show_actions_done($conf,$langs,$db,$object,$objcon='',$noprint=0)
$out.='<td>'.dol_trunc($histo[$key]['note'], 30).'</td>'; $out.='<td>'.dol_trunc($histo[$key]['note'], 30).'</td>';
// Objet lie // Objet lie
// TODO uniformize
$out.='<td>'; $out.='<td>';
if ($histo[$key]['pid'] && $conf->propal->enabled) if ($histo[$key]['elementtype'] == 'propal' && $conf->propal->enabled)
{ {
$propalstatic->ref=$langs->trans("ProposalShort"); $propalstatic->ref=$langs->trans("ProposalShort");
$propalstatic->id=$histo[$key]['pid']; $propalstatic->id=$histo[$key]['fk_element'];
$out.=$propalstatic->getNomUrl(1); $out.=$propalstatic->getNomUrl(1);
} }
elseif ($histo[$key]['oid'] && $conf->commande->enabled) elseif ($histo[$key]['elementtype'] == 'commande' && $conf->commande->enabled)
{ {
$orderstatic->ref=$langs->trans("Order"); $orderstatic->ref=$langs->trans("Order");
$orderstatic->id=$histo[$key]['oid']; $orderstatic->id=$histo[$key]['fk_element'];
$out.=$orderstatic->getNomUrl(1); $out.=$orderstatic->getNomUrl(1);
} }
elseif ($histo[$key]['fid'] && $conf->facture->enabled) elseif ($histo[$key]['elementtype'] == 'facture' && $conf->facture->enabled)
{ {
$facturestatic->ref=$langs->trans("Invoice"); $facturestatic->ref=$langs->trans("Invoice");
$facturestatic->id=$histo[$key]['fid']; $facturestatic->id=$histo[$key]['fk_element'];
$facturestatic->type=$histo[$key]['ftype']; $facturestatic->type=$histo[$key]['ftype'];
$out.=$facturestatic->getNomUrl(1,'compta'); $out.=$facturestatic->getNomUrl(1,'compta');
} }