2011-03-01 10:22:58 +01:00
< ? php
/* Copyright ( C ) 2004 Rodolphe Quiedeville < rodolphe @ quiedeville . org >
* Copyright ( C ) 2004 Eric Seigne < eric . seigne @ ryxeo . com >
2012-02-13 09:45:38 +01:00
* Copyright ( C ) 2005 - 2012 Laurent Destailleur < eldy @ users . sourceforge . net >
2012-12-30 15:13:49 +01:00
* Copyright ( C ) 2005 - 2012 Regis Houssin < regis . houssin @ capnetworks . com >
2011-03-01 10:22:58 +01:00
*
* 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
2013-01-16 15:36:08 +01:00
* the Free Software Foundation ; either version 3 of the License , or
2011-03-01 10:22:58 +01:00
* ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
2011-08-01 00:21:57 +02:00
* along with this program . If not , see < http :// www . gnu . org / licenses />.
2011-03-01 10:22:58 +01:00
*/
/**
2011-08-08 18:00:16 +02:00
* \file htdocs / admin / workflow . php
2011-03-01 10:22:58 +01:00
* \ingroup company
2011-08-08 18:00:16 +02:00
* \brief Workflows setup page
2011-03-01 10:22:58 +01:00
*/
2012-08-22 23:24:21 +02:00
require '../main.inc.php' ;
2012-08-22 23:11:24 +02:00
require_once DOL_DOCUMENT_ROOT . '/core/lib/admin.lib.php' ;
2011-03-01 10:22:58 +01:00
$langs -> load ( " admin " );
2011-03-01 10:46:34 +01:00
$langs -> load ( " workflow " );
2011-03-01 10:22:58 +01:00
2012-02-13 09:45:38 +01:00
if ( ! $user -> admin ) accessforbidden ();
$action = GETPOST ( 'action' , 'alpha' );
2011-03-01 10:22:58 +01:00
/*
* Actions
*/
2012-02-13 09:45:38 +01:00
if ( preg_match ( '/set(.*)/' , $action , $reg ))
2011-03-01 10:22:58 +01:00
{
2012-02-13 10:02:28 +01:00
if ( ! dolibarr_set_const ( $db , $reg [ 1 ], 1 , 'chaine' , 0 , '' , $conf -> entity ) > 0 )
2011-03-01 10:22:58 +01:00
{
dol_print_error ( $db );
}
}
2012-02-13 09:45:38 +01:00
if ( preg_match ( '/del(.*)/' , $action , $reg ))
2011-03-01 10:22:58 +01:00
{
2012-02-13 10:02:28 +01:00
if ( ! dolibarr_del_const ( $db , $reg [ 1 ], $conf -> entity ) > 0 )
2011-03-01 10:22:58 +01:00
{
dol_print_error ( $db );
}
}
/*
* View
*/
llxHeader ( '' , $langs -> trans ( " WorkflowSetup " ), '' );
$linkback = '<a href="' . DOL_URL_ROOT . '/admin/modules.php">' . $langs -> trans ( " BackToModuleList " ) . '</a>' ;
print_fiche_titre ( $langs -> trans ( " WorkflowSetup " ), $linkback , 'setup' );
print $langs -> trans ( " WorkflowDesc " ) . '<br>' ;
print " <br> " ;
2012-02-13 10:02:28 +01:00
// List of workflow we can enable
2011-03-01 10:22:58 +01:00
2012-02-13 09:45:38 +01:00
print '<table class="noborder" width="100%">' . " \n " ;
print '<tr class="liste_titre">' . " \n " ;
2011-03-01 10:22:58 +01:00
print ' <td>' . $langs -> trans ( " Description " ) . '</td>' ;
print ' <td align="center">' . $langs -> trans ( " Status " ) . '</td>' ;
print " </tr> \n " ;
clearstatcache ();
2012-07-17 15:27:36 +02:00
$workflowcodes = array (
2012-07-24 20:15:34 +02:00
'WORKFLOW_PROPAL_AUTOCREATE_ORDER' => array ( 'enabled' => '! empty($conf->propal->enabled) && ! empty($conf->commande->enabled)' , 'picto' => 'order' ),
'WORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL' => array ( 'enabled' => '! empty($conf->propal->enabled) && ! empty($conf->commande->enabled)' , 'picto' => 'order' , 'warning' => 'WarningCloseAlways' ),
'WORKFLOW_ORDER_AUTOCREATE_INVOICE' => array ( 'enabled' => '! empty($conf->commande->enabled) && ! empty($conf->facture->enabled)' , 'picto' => 'bill' ),
2014-01-23 20:02:19 +01:00
// For the following 2 options, if module invoice is disabled, they does not exists, so "Classify billed" for order must be done manually from order card.
2012-07-24 20:15:34 +02:00
'WORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER' => array ( 'enabled' => '! empty($conf->facture->enabled) && ! empty($conf->commande->enabled)' , 'picto' => 'bill' , 'warning' => 'WarningCloseAlways' ),
2013-08-06 16:57:40 +02:00
'WORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER' => array ( 'enabled' => '! empty($conf->facture->enabled) && ! empty($conf->commande->enabled)' , 'picto' => 'bill' , 'warning' => 'WarningCloseAlways' ),
2012-04-04 09:24:20 +02:00
);
2012-04-14 15:04:46 +02:00
2012-07-24 20:15:34 +02:00
if ( ! empty ( $conf -> modules_parts [ 'workflow' ]) && is_array ( $conf -> modules_parts [ 'workflow' ]))
{
foreach ( $conf -> modules_parts [ 'workflow' ] as $workflow )
{
$workflowcodes = array_merge ( $workflowcodes , $workflow );
}
}
2012-04-04 09:24:20 +02:00
2012-07-17 15:27:36 +02:00
$nbqualified = 0 ;
2011-03-01 10:22:58 +01:00
2012-07-24 20:15:34 +02:00
foreach ( $workflowcodes as $key => $params )
2011-03-01 10:22:58 +01:00
{
2012-07-24 20:15:34 +02:00
$picto = $params [ 'picto' ];
$enabled = $params [ 'enabled' ];
if ( ! verifCond ( $enabled )) continue ;
2012-07-17 15:27:36 +02:00
$nbqualified ++ ;
$var = ! $var ;
print " <tr " . $bc [ $var ] . " > \n " ;
2012-07-22 13:36:28 +02:00
print " <td> " . img_object ( '' , $picto ) . $langs -> trans ( 'desc' . $key );
2012-07-24 20:15:34 +02:00
if ( ! empty ( $params [ 'warning' ]))
2012-07-22 13:36:28 +02:00
{
$langs -> load ( " errors " );
2012-07-24 20:15:34 +02:00
print ' ' . img_warning ( $langs -> transnoentitiesnoconv ( $params [ 'warning' ]));
2012-07-22 13:36:28 +02:00
}
print " </td> \n " ;
2012-07-17 15:27:36 +02:00
print '<td align="center">' ;
2012-07-24 20:15:34 +02:00
if ( ! empty ( $conf -> use_javascript_ajax ))
2012-07-17 15:27:36 +02:00
{
print ajax_constantonoff ( $key );
}
else
{
if ( ! empty ( $conf -> global -> $key ))
{
print '<a href="' . $_SERVER [ 'PHP_SELF' ] . '?action=del' . $key . '">' ;
print img_picto ( $langs -> trans ( " Activated " ), 'switch_on' );
print '</a>' ;
}
else
{
print '<a href="' . $_SERVER [ 'PHP_SELF' ] . '?action=set' . $key . '">' ;
print img_picto ( $langs -> trans ( " Disabled " ), 'switch_off' );
print '</a>' ;
}
}
print '</td>' ;
print '</tr>' ;
2011-03-01 10:37:54 +01:00
}
2012-07-17 15:27:36 +02:00
if ( $nbqualified == 0 )
2011-03-01 10:37:54 +01:00
{
print '<tr><td colspan="3">' . $langs -> trans ( " ThereIsNoWorkflowToModify " );
2011-03-01 10:22:58 +01:00
}
print '</table>' ;
2012-02-13 10:02:28 +01:00
2012-02-13 09:45:38 +01:00
llxFooter ();
2011-03-01 10:22:58 +01:00
$db -> close ();
?>