Added module descriptor and activation checks
Corrected 3 missing $error_occurred flags
This commit is contained in:
parent
e875f0c2b8
commit
557cbaf3d7
121
htdocs/core/modules/modSyncSupplierWebServices.class.php
Executable file
121
htdocs/core/modules/modSyncSupplierWebServices.class.php
Executable file
@ -0,0 +1,121 @@
|
||||
<?php
|
||||
/* Copyright (C) 2014 Ion Agorria <ion@agorria.com>
|
||||
*
|
||||
* 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
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (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
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \defgroup webservices Module webservices
|
||||
* \brief Module to enable client for supplier WebServices
|
||||
* \file htdocs/core/modules/modSyncSupplierWebServices.class.php
|
||||
* \ingroup webservices
|
||||
* \brief File to describe client for supplier webservices module
|
||||
*/
|
||||
include_once DOL_DOCUMENT_ROOT .'/core/modules/DolibarrModules.class.php';
|
||||
|
||||
/**
|
||||
* Class to describe a WebServices module
|
||||
*/
|
||||
class modSyncSupplierWebServices extends DolibarrModules
|
||||
{
|
||||
|
||||
/**
|
||||
* Constructor. Define names, constants, directories, boxes, permissions
|
||||
*
|
||||
* @param DoliDB $db Database handler
|
||||
*/
|
||||
function __construct($db)
|
||||
{
|
||||
$this->db = $db;
|
||||
$this->numero = 2650;
|
||||
|
||||
$this->family = "technic";
|
||||
// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
|
||||
$this->name = preg_replace('/^mod/i','',get_class($this));
|
||||
$this->description = "Enable the client for external supplier web services";
|
||||
$this->version = 'dolibarr'; // 'experimental' or 'dolibarr' or version
|
||||
// Key used in llx_const table to save module status enabled/disabled (where MYMODULE is value of property name of module in uppercase)
|
||||
$this->const_name = 'MAIN_MODULE_'.strtoupper($this->name);
|
||||
// Where to store the module in setup page (0=common,1=interface,2=others,3=very specific)
|
||||
$this->special = 1;
|
||||
// Name of image file used for this module.
|
||||
$this->picto='technic';
|
||||
|
||||
// Data directories to create when module is enabled
|
||||
$this->dirs = array();
|
||||
|
||||
// Config pages
|
||||
//-------------
|
||||
//$this->config_page_url = array("webservices.php@webservices");
|
||||
|
||||
// Dependancies
|
||||
//-------------
|
||||
$this->depends = array();
|
||||
$this->requiredby = array();
|
||||
$this->langfiles = array("other");
|
||||
|
||||
// Constantes
|
||||
//-----------
|
||||
$this->const = array();
|
||||
|
||||
// New pages on tabs
|
||||
// -----------------
|
||||
$this->tabs = array();
|
||||
|
||||
// Boxes
|
||||
//------
|
||||
$this->boxes = array();
|
||||
|
||||
// Permissions
|
||||
//------------
|
||||
$this->rights = array();
|
||||
$this->rights_class = 'syncsupplierwebservices';
|
||||
$r=0;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Function called when module is enabled.
|
||||
* The init function add constants, boxes, permissions and menus (defined in constructor) into Dolibarr database.
|
||||
* It also creates data directories
|
||||
*
|
||||
* @param string $options Options when enabling module ('', 'noboxes')
|
||||
* @return int 1 if OK, 0 if KO
|
||||
*/
|
||||
function init($options='')
|
||||
{
|
||||
// Prevent pb of modules not correctly disabled
|
||||
//$this->remove($options);
|
||||
|
||||
$sql = array();
|
||||
|
||||
return $this->_init($sql,$options);
|
||||
}
|
||||
|
||||
/**
|
||||
* Function called when module is disabled.
|
||||
* Remove from database constants, boxes and permissions from Dolibarr database.
|
||||
* Data directories are not deleted
|
||||
*
|
||||
* @param string $options Options when enabling module ('', 'noboxes')
|
||||
* @return int 1 if OK, 0 if KO
|
||||
*/
|
||||
function remove($options='')
|
||||
{
|
||||
$sql = array();
|
||||
|
||||
return $this->_remove($sql,$options);
|
||||
}
|
||||
|
||||
}
|
||||
@ -7,6 +7,7 @@
|
||||
* Copyright (C) 2011 Philippe Grand <philippe.grand@atoo-net.com>
|
||||
* Copyright (C) 2012 Marcos García <marcosgdf@gmail.com>
|
||||
* Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
|
||||
* Copyright (C) 2014 Ion Agorria <ion@agorria.com>
|
||||
*
|
||||
* 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
|
||||
@ -1065,8 +1066,10 @@ if ($action == 'webservice' && GETPOST('mode', 'alpha') == "send" && ! GETPOST('
|
||||
'entity'=>$ws_entity
|
||||
);
|
||||
|
||||
//Is everything filled?
|
||||
if ($mode != "init" && (empty($ws_host) || empty($ws_key) || empty($ws_user) || empty($ws_password) || empty($ws_thirdparty))) {
|
||||
//Is sync supplier web services module activated? and everything filled?
|
||||
if (empty($conf->syncsupplierwebservices->enabled)) {
|
||||
setEventMessage($langs->trans("WarningModuleNotActive",$langs->transnoentities("Module2650Name")));
|
||||
} else if ($mode != "init" && (empty($ws_host) || empty($ws_key) || empty($ws_user) || empty($ws_password) || empty($ws_thirdparty))) {
|
||||
setEventMessage($langs->trans("ErrorFieldsRequired"), 'errors');
|
||||
}
|
||||
else
|
||||
@ -2054,6 +2057,7 @@ elseif (! empty($object->id))
|
||||
if (empty($ws_thirdparty))
|
||||
{
|
||||
setEventMessage($langs->trans("RemoteUserMissingAssociatedSoc"), 'errors');
|
||||
$error_occurred = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -2129,10 +2133,12 @@ elseif (! empty($object->id))
|
||||
elseif ($user_status_code == "PERMISSION_DENIED")
|
||||
{
|
||||
setEventMessage($langs->trans("RemoteUserNotPermission"), 'errors');
|
||||
$error_occurred = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
setEventMessage($langs->trans("ResponseNonOK")." '".$user_status_code."'", 'errors');
|
||||
$error_occurred = true;
|
||||
}
|
||||
|
||||
//Form
|
||||
@ -2242,8 +2248,9 @@ elseif (! empty($object->id))
|
||||
//}
|
||||
}
|
||||
|
||||
// Create a remote order using WebService
|
||||
if ($object->statut >= 2) // 2 means accepted
|
||||
|
||||
// Create a remote order using WebService only if module is activated
|
||||
if (! empty($conf->syncsupplierwebservices->enabled) && $object->statut >= 2) // 2 means accepted
|
||||
{
|
||||
print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=webservice&mode=init">'.$langs->trans('CreateRemoteOrder').'</a>';
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user