Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop

This commit is contained in:
Laurent Destailleur 2013-06-16 12:00:36 +02:00
commit 696a97db4e
33 changed files with 709 additions and 542 deletions

View File

@ -4,6 +4,7 @@
* Copyright (C) 2005 Simon TOSSER <simon@kornog-computing.com>
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2010 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
*
* 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
@ -27,14 +28,16 @@
require '../../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/agenda.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php';
require_once DOL_DOCUMENT_ROOT.'/comm/action/class/cactioncomm.class.php';
require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php';
require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
if (! empty($conf->projet->enabled)) {
require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
}
require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
$langs->load("companies");
@ -574,11 +577,15 @@ if ($action == 'create')
// Project
if (! empty($conf->projet->enabled))
{
$formproject=new FormProjets($db);
// Projet associe
$langs->load("project");
print '<tr><td valign="top">'.$langs->trans("Project").'</td><td>';
$numproject=select_projects((! empty($societe->id)?$societe->id:0),GETPOST("projectid")?GETPOST("projectid"):'','projectid');
$numproject=$formproject->select_projects((! empty($societe->id)?$societe->id:0),GETPOST("projectid")?GETPOST("projectid"):'','projectid');
if ($numproject==0)
{
print ' &nbsp; <a href="'.DOL_URL_ROOT.'/projet/fiche.php?socid='.$societe->id.'&action=create">'.$langs->trans("AddProject").'</a>';
@ -801,11 +808,14 @@ if ($id > 0)
// Project
if (! empty($conf->projet->enabled))
{
$formproject=new FormProjets($db);
// Projet associe
$langs->load("project");
print '<tr><td width="30%" valign="top">'.$langs->trans("Project").'</td><td colspan="3">';
$numprojet=select_projects($act->societe->id,$act->fk_project,'projectid');
$numprojet=$formproject->select_projects($act->societe->id,$act->fk_project,'projectid');
if ($numprojet==0)
{
print ' &nbsp; <a href="../../projet/fiche.php?socid='.$societe->id.'&action=create">'.$langs->trans("AddProject").'</a>';

View File

@ -19,6 +19,10 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
error_reporting(E_ALL);
ini_set('display_errors', true);
ini_set('html_errors', false);
/**
* \file htdocs/comm/action/index.php
* \ingroup agenda
@ -31,7 +35,9 @@ require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/agenda.lib.php';
if (! empty($conf->projet->enabled)) require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php';
if (! empty($conf->projet->enabled)) {
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
}
if (! isset($conf->global->AGENDA_MAX_EVENTS_DAY_VIEW)) $conf->global->AGENDA_MAX_EVENTS_DAY_VIEW=3;

View File

@ -29,7 +29,6 @@ require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/agenda.lib.php';
if (! empty($conf->projet->enabled)) require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php';
$langs->load("companies");
$langs->load("agenda");

View File

@ -43,7 +43,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
if (! empty($conf->projet->enabled))
{
require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
}
$langs->load('companies');
@ -1369,13 +1369,16 @@ if ($action == 'create')
// Project
if (! empty($conf->projet->enabled) && $socid>0)
{
$formproject=new FormProjets($db);
$projectid = 0;
if ($origin == 'project') $projectid = ($originid?$originid:0);
print '<tr>';
print '<td valign="top">'.$langs->trans("Project").'</td><td colspan="2">';
$numprojet=select_projects($soc->id,$projectid);
$numprojet=$formproject->select_projects($soc->id,$projectid);
if ($numprojet==0)
{
$langs->load("projects");

View File

@ -53,6 +53,7 @@ $search_ref=GETPOST('sf_ref')?GETPOST('sf_ref','alpha'):GETPOST('search_ref','al
$search_refcustomer=GETPOST('search_refcustomer','alpha');
$search_societe=GETPOST('search_societe','alpha');
$search_montant_ht=GETPOST('search_montant_ht','alpha');
$search_author=GETPOST('search_author','alpha');
$sall=GETPOST("sall");
$mesg=(GETPOST("msg") ? GETPOST("msg") : GETPOST("mesg"));
@ -99,6 +100,7 @@ if (GETPOST("button_removefilter_x"))
$search_refcustomer='';
$search_societe='';
$search_montant_ht='';
$search_author='';
$year='';
$month='';
}
@ -167,6 +169,10 @@ if ($search_societe)
{
$sql.= " AND s.nom LIKE '%".$db->escape(trim($search_societe))."%'";
}
if ($search_author)
{
$sql.= " AND u.login LIKE '%".$db->escape(trim($search_author))."%'";
}
if ($search_montant_ht)
{
$sql.= " AND p.total_ht='".$db->escape(price2num(trim($search_montant_ht)))."'";
@ -223,6 +229,7 @@ if ($result)
if ($search_user > 0) $param.='&search_user='.$search_user;
if ($search_sale > 0) $param.='&search_sale='.$search_sale;
if ($search_montant_ht) $param.='&search_montant_ht='.$search_montant_ht;
if ($search_author) $param.='&search_author='.$search_author;
print_barre_liste($langs->trans('ListOfProposals').' '.($socid?'- '.$soc->nom:''), $page, $_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num);
// Lignes des champs de filtre
@ -250,7 +257,7 @@ if ($result)
if (! empty($moreforfilter))
{
print '<tr class="liste_titre">';
print '<td class="liste_titre" colspan="9">';
print '<td class="liste_titre" colspan="10">';
print $moreforfilter;
print '</td></tr>';
}
@ -284,10 +291,13 @@ if ($result)
$formother->select_year($syear,'year',1, 20, 5);
print '</td>';
print '<td class="liste_titre" colspan="1">&nbsp;</td>';
print '<td class="liste_titre" align="right">';
print '<td class="liste_titre" align="center">';
print '<input class="flat" type="text" size="10" name="search_montant_ht" value="'.$search_montant_ht.'">';
print '</td>';
print '<td class="liste_titre">&nbsp;</td>';
print '<td class="liste_titre" align="right">';
print '<input class="flat" size="10" type="text" name="search_author" value="'.$search_author.'">';
print '</td>';
print '<td class="liste_titre" align="right">';
$formpropal->select_propal_statut($viewstatut,1);
print '</td>';

View File

@ -43,7 +43,7 @@ if (! empty($conf->propal->enabled))
require DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php';
if (! empty($conf->projet->enabled)) {
require DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
require DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
}
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
@ -1626,8 +1626,10 @@ if ($action == 'create' && $user->rights->commande->creer)
// Project
if (! empty($conf->projet->enabled) && $socid>0)
{
$formproject=new FormProjets($db);
print '<tr><td>'.$langs->trans('Project').'</td><td colspan="2">';
$numprojet=select_projects($soc->id,$projectid);
$numprojet=$formproject->select_projects($soc->id,$projectid);
if ($numprojet==0)
{
print ' &nbsp; <a href="'.DOL_URL_ROOT.'/projet/fiche.php?socid='.$soc->id.'&action=create">'.$langs->trans("AddProject").'</a>';

View File

@ -34,7 +34,9 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/report.lib.php';
if (! empty($conf->projet->enabled)) require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php';
if (! empty($conf->projet->enabled)) {
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
}
$langs->load('orders');
$langs->load('deliveries');
@ -425,9 +427,11 @@ if ($action == 'create' && empty($mesgs))
// Project
if (! empty($conf->projet->enabled))
{
$formproject=new FormProjets($db);
$langs->load('projects');
print '<tr><td>'.$langs->trans('Project').'</td><td colspan="2">';
select_projects($soc->id, $projectid, 'projectid');
$formproject->select_projects($soc->id, $projectid, 'projectid');
print '</td></tr>';
}

View File

@ -30,7 +30,6 @@ require_once DOL_DOCUMENT_ROOT.'/compta/deplacement/class/deplacement.class.php'
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
if (! empty($conf->projet->enabled))
{
require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php';
require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
}

View File

@ -30,7 +30,9 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
require_once DOL_DOCUMENT_ROOT.'/compta/dons/class/don.class.php';
require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php';
if (! empty($conf->projet->enabled)) require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php';
if (! empty($conf->projet->enabled)) {
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
}
$langs->load("companies");
$langs->load("donations");
@ -317,9 +319,12 @@ if ($action == 'create')
if (! empty($conf->projet->enabled))
{
$formproject=new FormProjets($db);
// Si module projet actif
print "<tr><td>".$langs->trans("Project")."</td><td>";
select_projects('',$_POST["projectid"],"projectid");
$formproject->select_projects('',$_POST["projectid"],"projectid");
print "</td></tr>\n";
}
@ -414,9 +419,11 @@ if (! empty($id) && $action == 'edit')
// Project
if (! empty($conf->projet->enabled))
{
$formproject=new FormProjets($db);
$langs->load('projects');
print '<tr><td>'.$langs->trans('Project').'</td><td>';
select_projects(-1, (isset($_POST["projectid"])?$_POST["projectid"]:$don->fk_project), 'projectid');
$formproject->select_projects(-1, (isset($_POST["projectid"])?$_POST["projectid"]:$don->fk_project), 'projectid');
print '</td></tr>';
}

View File

@ -42,8 +42,10 @@ require_once DOL_DOCUMENT_ROOT . '/core/lib/functions2.lib.php';
require_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php';
require_once DOL_DOCUMENT_ROOT . '/core/class/extrafields.class.php';
if (! empty($conf->commande->enabled)) require_once DOL_DOCUMENT_ROOT . '/commande/class/commande.class.php';
if (! empty($conf->projet->enabled)) require_once DOL_DOCUMENT_ROOT . '/projet/class/project.class.php';
if (! empty($conf->projet->enabled)) require_once DOL_DOCUMENT_ROOT . '/core/lib/project.lib.php';
if (! empty($conf->projet->enabled)) {
require_once DOL_DOCUMENT_ROOT . '/projet/class/project.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
}
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
$langs->load('bills');
@ -1836,7 +1838,7 @@ else if ($action == 'print_file' AND $user->rights->printipp->read)
{
require_once DOL_DOCUMENT_ROOT.'/core/class/dolprintipp.class.php';
$printer = new dolPrintIPP($db,$conf->global->PRINTIPP_HOST,$conf->global->PRINTIPP_PORT,$user->login,$conf->global->PRINTIPP_USER,$conf->global->PRINTIPP_PASSWORD);
$printer->print_file(GETPOST('file',alpha),GETPOST('printer',alpha));
$printer->print_file(GETPOST('file','alpha'),GETPOST('printer','alpha'));
setEventMessage($langs->trans("FileWasSentToPrinter", GETPOST('file')));
$action='';
}
@ -2266,9 +2268,11 @@ if ($action == 'create')
// Project
if (! empty($conf->projet->enabled) && $socid>0)
{
$formproject=new FormProjets($db);
$langs->load('projects');
print '<tr><td>'.$langs->trans('Project').'</td><td colspan="2">';
select_projects($soc->id, $projectid, 'projectid');
$formproject->select_projects($soc->id, $projectid, 'projectid');
print '</td></tr>';
}

View File

@ -43,7 +43,6 @@ if (! empty($conf->commande->enabled)) require_once DOL_DOCUMENT_ROOT.'/commande
if (! empty($conf->projet->enabled))
{
require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php';
}
$langs->load('bills');

View File

@ -38,7 +38,7 @@ if (! empty($conf->produit->enabled) || ! empty($conf->service->enabled)) requi
if (! empty($conf->propal->enabled)) require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php';
if (! empty($conf->projet->enabled)) {
require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
}
$langs->load("contracts");
@ -864,8 +864,10 @@ if ($action == 'create')
if (! empty($conf->projet->enabled))
{
$formproject=new FormProjets($db);
print '<tr><td>'.$langs->trans("Project").'</td><td>';
select_projects($soc->id,$projectid,"projectid");
$formproject->select_projects($soc->id,$projectid,"projectid");
print "</td></tr>";
}

View File

@ -627,11 +627,11 @@ class ExtraFields
{
$tmp=explode(',',$size);
$newsize=$tmp[0];
$out='<input type="text" name="options_'.$key.'" size="'.$showsize.'" maxlength="'.$newsize.'" value="'.$value.'"'.($moreparam?$moreparam:'').'>';
$out='<input type="text" class="flat" name="options_'.$key.'" size="'.$showsize.'" maxlength="'.$newsize.'" value="'.$value.'"'.($moreparam?$moreparam:'').'>';
}
elseif ($type == 'varchar')
{
$out='<input type="text" name="options_'.$key.'" size="'.$showsize.'" maxlength="'.$size.'" value="'.$value.'"'.($moreparam?$moreparam:'').'>';
$out='<input type="text" class="flat" name="options_'.$key.'" size="'.$showsize.'" maxlength="'.$size.'" value="'.$value.'"'.($moreparam?$moreparam:'').'>';
}
elseif ($type == 'text')
{
@ -647,30 +647,30 @@ class ExtraFields
} else {
$checked=' value="1" ';
}
$out='<input type="checkbox" name="options_'.$key.'" '.$checked.' '.($moreparam?$moreparam:'').'>';
$out='<input type="checkbox" class="flat" name="options_'.$key.'" '.$checked.' '.($moreparam?$moreparam:'').'>';
}
elseif ($type == 'mail')
{
$out='<input type="text" name="options_'.$key.'" size="32" value="'.$value.'">';
$out='<input type="text" class="flat" name="options_'.$key.'" size="32" value="'.$value.'">';
}
elseif ($type == 'phone')
{
$out='<input type="text" name="options_'.$key.'" size="20" value="'.$value.'">';
$out='<input type="text" class="flat" name="options_'.$key.'" size="20" value="'.$value.'">';
}
elseif ($type == 'price')
{
$out='<input type="text" name="options_'.$key.'" size="6" value="'.price($value).'"> '.$langs->getCurrencySymbol($conf->currency);
$out='<input type="text" class="flat" name="options_'.$key.'" size="6" value="'.price($value).'"> '.$langs->getCurrencySymbol($conf->currency);
}
elseif ($type == 'double')
{
if (!empty($value)) {
$value=price($value);
}
$out='<input type="text" name="options_'.$key.'" size="6" value="'.$value.'"> ';
$out='<input type="text" class="flat" name="options_'.$key.'" size="6" value="'.$value.'"> ';
}
elseif ($type == 'select')
{
$out='<select name="options_'.$key.'">';
$out='<select class="flat" name="options_'.$key.'">';
foreach ($param['options'] as $key=>$val )
{
$out.='<option value="'.$key.'"';
@ -681,7 +681,7 @@ class ExtraFields
}
elseif ($type == 'sellist')
{
$out='<select name="options_'.$key.'">';
$out='<select class="flat" name="options_'.$key.'">';
$param_list=array_keys($param['options']);
$InfoFieldList = explode(":", $param_list[0]);
@ -698,7 +698,7 @@ class ExtraFields
$sql.= ' FROM '.MAIN_DB_PREFIX .$InfoFieldList[0];
//$sql.= ' WHERE entity = '.$conf->entity;
dol_syslog(get_class($this).':showInputField:$type=sellist sql='.$sql);
dol_syslog(get_class($this).'::showInputField type=sellist sql='.$sql);
$resql = $this->db->query($sql);
if ($resql)
@ -741,7 +741,7 @@ class ExtraFields
foreach ($param['options'] as $keyopt=>$val )
{
$out.='<input type="checkbox" name="options_'.$key.'[]"';
$out.='<input class="flat" type="checkbox" name="options_'.$key.'[]"';
$out.=' value="'.$keyopt.'"';
if ((is_array($value_arr)) && in_array($keyopt,$value_arr)) {
@ -758,7 +758,7 @@ class ExtraFields
$out='';
foreach ($param['options'] as $keyopt=>$val )
{
$out.='<input type="radio" name="options_'.$key.'"';
$out.='<input class="flat" type="radio" name="options_'.$key.'"';
$out.=' value="'.$keyopt.'"';
$out.= ($value==$keyopt?'checked="checked"':'');
$out.='/>'.$val.'<br>';
@ -842,7 +842,6 @@ class ExtraFields
if (count($InfoFieldList)==3)
$keyList=$InfoFieldList[2];
$sql = 'SELECT '.$InfoFieldList[1];
$sql.= ' FROM '.MAIN_DB_PREFIX .$InfoFieldList[0];
$sql.= ' WHERE '.$keyList.'=\''.$this->db->escape($value).'\'';

View File

@ -2695,6 +2695,9 @@ class Form
global $langs;
require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
$formproject=new FormProjets($this->db);
$langs->load("project");
if ($htmlname != "none")
@ -2705,7 +2708,7 @@ class Form
print '<table class="nobordernopadding" cellpadding="0" cellspacing="0">';
print '<tr><td>';
//print "$socid,$selected,$htmlname";
select_projects($socid,$selected,$htmlname);
$formproject->select_projects($socid,$selected,$htmlname);
print '</td>';
print '<td align="left"><input type="submit" class="button" value="'.$langs->trans("Modify").'"></td>';
print '</tr></table></form>';

View File

@ -0,0 +1,160 @@
<?php
/* Copyright (c) 2013 Florian Henry <florian.henry@open-concept.pro>
*
* 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/>.
*/
/**
* \file htdocs/core/class/html.formprojet.class.php
* \ingroup core
* \brief Class file for html component project
*/
/**
* Class to manage building of HTML components
*/
class FormProjets
{
var $db;
var $error;
/**
* Constructor
*
* @param DoliDB $db Database handler
*/
function __construct($db)
{
$this->db = $db;
return 1;
}
/**
* Show a combo list with projects qualified for a third party
*
* @param int $socid Id third party (-1=all, 0=only projects not linked to a third party, id=projects not linked or linked to third party id)
* @param int $selected Id project preselected
* @param string $htmlname Nom de la zone html
* @param int $maxlength Maximum length of label
* @return int Nbre of project if OK, <0 if KO
*/
function select_projects($socid=-1, $selected='', $htmlname='projectid', $maxlength=16, $option_only=0, $show_empty=1)
{
global $user,$conf,$langs;
require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
$out='';
$hideunselectables = false;
if (! empty($conf->global->PROJECT_HIDE_UNSELECTABLES)) $hideunselectables = true;
$projectsListId = false;
if (empty($user->rights->projet->all->lire))
{
$projectstatic=new Project($this->db);
$projectsListId = $projectstatic->getProjectsAuthorizedForUser($user,0,1);
}
// Search all projects
$sql = 'SELECT p.rowid, p.ref, p.title, p.fk_soc, p.fk_statut, p.public';
$sql.= ' FROM '.MAIN_DB_PREFIX .'projet as p';
$sql.= " WHERE p.entity = ".$conf->entity;
if ($projectsListId !== false) $sql.= " AND p.rowid IN (".$projectsListId.")";
if ($socid == 0) $sql.= " AND (p.fk_soc=0 OR p.fk_soc IS NULL)";
$sql.= " ORDER BY p.title ASC";
dol_syslog(get_class($this)."::select_projects sql=".$sql,LOG_DEBUG);
$resql=$this->db->query($sql);
if ($resql)
{
if (empty($option_only)) {
$out.= '<select class="flat" name="'.$htmlname.'">';
}
if (!empty($show_empty)) {
$out.= '<option value="0">&nbsp;</option>';
}
$num = $this->db->num_rows($resql);
$i = 0;
if ($num)
{
while ($i < $num)
{
$obj = $this->db->fetch_object($resql);
// If we ask to filter on a company and user has no permission to see all companies and project is linked to another company, we hide project.
if ($socid > 0 && (empty($obj->fk_soc) || $obj->fk_soc == $socid) && ! $user->rights->societe->lire)
{
// Do nothing
}
else
{
$labeltoshow=dol_trunc($obj->ref,18);
//if ($obj->public) $labeltoshow.=' ('.$langs->trans("SharedProject").')';
//else $labeltoshow.=' ('.$langs->trans("Private").')';
if (!empty($selected) && $selected == $obj->rowid && $obj->fk_statut > 0)
{
$out.= '<option value="'.$obj->rowid.'" selected="selected">'.$labeltoshow.' - '.dol_trunc($obj->title,$maxlength).'</option>';
}
else
{
$disabled=0;
if (! $obj->fk_statut > 0)
{
$disabled=1;
$labeltoshow.=' - '.$langs->trans("Draft");
}
if ($socid > 0 && (! empty($obj->fk_soc) && $obj->fk_soc != $socid))
{
$disabled=1;
$labeltoshow.=' - '.$langs->trans("LinkedToAnotherCompany");
}
if ($hideunselectables && $disabled)
{
$resultat='';
}
else
{
$resultat='<option value="'.$obj->rowid.'"';
if ($disabled) $resultat.=' disabled="disabled"';
//if ($obj->public) $labeltoshow.=' ('.$langs->trans("Public").')';
//else $labeltoshow.=' ('.$langs->trans("Private").')';
$resultat.='>'.$labeltoshow;
if (! $disabled) $resultat.=' - '.dol_trunc($obj->title,$maxlength);
$resultat.='</option>';
}
$out.= $resultat;
}
}
$i++;
}
}
if (empty($option_only)) {
$out.= '</select>';
}
print $out;
$this->db->free($resql);
return $num;
}
else
{
dol_print_error($this->db);
return -1;
}
}
}

View File

@ -102,11 +102,14 @@ function print_actions_filter($form,$canedit,$status,$year,$month,$day,$showbirt
if (! empty($conf->projet->enabled) && $user->rights->projet->lire)
{
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
$formproject=new FormProjets($db);
print '<tr>';
print '<td class="nowrap">';
print $langs->trans("Project").' &nbsp; ';
print '</td><td class="nowrap">';
select_projects($socid?$socid:-1, $pid, 'projectid', 64);
$formproject->select_projects($socid?$socid:-1, $pid, 'projectid', 64);
print '</td></tr>';
}

View File

@ -2040,15 +2040,16 @@ function img_up($alt = 'default', $selected = 0)
*
* @param string $alt Text to show on alt image
* @param int $selected Selected
* @param string $options Add more attribute on img tag (For example 'style="float: right"')
* @return string Return img tag
*/
function img_left($alt = 'default', $selected = 0)
function img_left($alt = 'default', $selected = 0, $options='')
{
global $conf, $langs;
if ($alt == 'default') $alt = $langs->trans('Left');
return img_picto($alt, ($selected ? '1leftarrow_selected.png' : '1leftarrow.png'));
return img_picto($alt, ($selected ? '1leftarrow_selected.png' : '1leftarrow.png'), $options);
}
/**
@ -2056,15 +2057,16 @@ function img_left($alt = 'default', $selected = 0)
*
* @param string $alt Text to show on alt image
* @param int $selected Selected
* @param string $options Add more attribute on img tag (For example 'style="float: right"')
* @return string Return img tag
*/
function img_right($alt = 'default', $selected = 0)
function img_right($alt = 'default', $selected = 0, $options='')
{
global $conf, $langs;
if ($alt == 'default') $alt = $langs->trans('Right');
return img_picto($alt, ($selected ? '1rightarrow_selected.png' : '1rightarrow.png'));
return img_picto($alt, ($selected ? '1rightarrow_selected.png' : '1rightarrow.png'), $options);
}
/**

View File

@ -190,111 +190,6 @@ function project_admin_prepare_head()
}
/**
* Show a combo list with projects qualified for a third party
*
* @param int $socid Id third party (-1=all, 0=only projects not linked to a third party, id=projects not linked or linked to third party id)
* @param int $selected Id project preselected
* @param string $htmlname Nom de la zone html
* @param int $maxlength Maximum length of label
* @return int Nbre of project if OK, <0 if KO
*/
function select_projects($socid=-1, $selected='', $htmlname='projectid', $maxlength=16)
{
global $db,$user,$conf,$langs;
$hideunselectables = false;
if (! empty($conf->global->PROJECT_HIDE_UNSELECTABLES)) $hideunselectables = true;
$projectsListId = false;
if (empty($user->rights->projet->all->lire))
{
$projectstatic=new Project($db);
$projectsListId = $projectstatic->getProjectsAuthorizedForUser($user,0,1);
}
// Search all projects
$sql = 'SELECT p.rowid, p.ref, p.title, p.fk_soc, p.fk_statut, p.public';
$sql.= ' FROM '.MAIN_DB_PREFIX .'projet as p';
$sql.= " WHERE p.entity = ".$conf->entity;
if ($projectsListId !== false) $sql.= " AND p.rowid IN (".$projectsListId.")";
if ($socid == 0) $sql.= " AND (p.fk_soc=0 OR p.fk_soc IS NULL)";
$sql.= " ORDER BY p.title ASC";
dol_syslog("project.lib::select_projects sql=".$sql);
$resql=$db->query($sql);
if ($resql)
{
print '<select class="flat" name="'.$htmlname.'">';
print '<option value="0">&nbsp;</option>';
$num = $db->num_rows($resql);
$i = 0;
if ($num)
{
while ($i < $num)
{
$obj = $db->fetch_object($resql);
// If we ask to filter on a company and user has no permission to see all companies and project is linked to another company, we hide project.
if ($socid > 0 && (empty($obj->fk_soc) || $obj->fk_soc == $socid) && ! $user->rights->societe->lire)
{
// Do nothing
}
else
{
$labeltoshow=dol_trunc($obj->ref,18);
//if ($obj->public) $labeltoshow.=' ('.$langs->trans("SharedProject").')';
//else $labeltoshow.=' ('.$langs->trans("Private").')';
if (!empty($selected) && $selected == $obj->rowid && $obj->fk_statut > 0)
{
print '<option value="'.$obj->rowid.'" selected="selected">'.$labeltoshow.' - '.dol_trunc($obj->title,$maxlength).'</option>';
}
else
{
$disabled=0;
if (! $obj->fk_statut > 0)
{
$disabled=1;
$labeltoshow.=' - '.$langs->trans("Draft");
}
if ($socid > 0 && (! empty($obj->fk_soc) && $obj->fk_soc != $socid))
{
$disabled=1;
$labeltoshow.=' - '.$langs->trans("LinkedToAnotherCompany");
}
if ($hideunselectables && $disabled)
{
$resultat='';
}
else
{
$resultat='<option value="'.$obj->rowid.'"';
if ($disabled) $resultat.=' disabled="disabled"';
//if ($obj->public) $labeltoshow.=' ('.$langs->trans("Public").')';
//else $labeltoshow.=' ('.$langs->trans("Private").')';
$resultat.='>'.$labeltoshow;
if (! $disabled) $resultat.=' - '.dol_trunc($obj->title,$maxlength);
$resultat.='</option>';
}
print $resultat;
}
}
$i++;
}
}
print '</select>';
$db->free($resql);
return $num;
}
else
{
dol_print_error($db);
return -1;
}
}
/**
* Show task lines with a particular parent
*
@ -653,64 +548,6 @@ function searchTaskInChild(&$inc, $parent, &$lines, &$taskrole)
return $inc;
}
/**
* Clean task not linked to a parent
*
* @param DoliDB $db Database handler
* @return int Nb of records deleted
*/
function clean_orphelins($db)
{
$nb=0;
// There is orphelins. We clean that
$listofid=array();
// Get list of id in array listofid
$sql='SELECT rowid FROM '.MAIN_DB_PREFIX.'projet_task';
$resql = $db->query($sql);
if ($resql)
{
$num = $db->num_rows($resql);
$i = 0;
while ($i < $num && $i < 100)
{
$obj = $db->fetch_object($resql);
$listofid[]=$obj->rowid;
$i++;
}
}
else
{
dol_print_error($db);
}
if (count($listofid))
{
// Removed orphelins records
print 'Some orphelins were found and restored to be parents so records are visible again: ';
print join(',',$listofid);
$sql = "UPDATE ".MAIN_DB_PREFIX."projet_task";
$sql.= " SET fk_task_parent = 0";
$sql.= " WHERE fk_task_parent NOT IN (".join(',',$listofid).")";
$resql = $db->query($sql);
if ($resql)
{
$nb=$db->affected_rows($sql);
return $nb;
}
else
{
return -1;
}
}
}
/**
* Return HTML table with list of projects and number of opened tasks
*

View File

@ -301,7 +301,7 @@ function print_left_auguria_menu($db,$menu_array_before,$menu_array_after,&$tabM
// Show menu
if (empty($noout))
{
$alt=0;
$alt=0; $blockvmenuopened=false;
$num=count($menu_array);
for ($i = 0; $i < $num; $i++)
{
@ -311,6 +311,7 @@ function print_left_auguria_menu($db,$menu_array_before,$menu_array_after,&$tabM
$alt++;
if (empty($menu_array[$i]['level']) && $showmenu)
{
$blockvmenuopened=true;
if (($alt%2==0))
{
print '<div class="blockvmenuimpair">'."\n";
@ -344,8 +345,8 @@ function print_left_auguria_menu($db,$menu_array_before,$menu_array_after,&$tabM
$url.='mainmenu='.$mainmenu;
}
print '<!-- Add menu entry with mainmenu='.$menu_array[$i]['mainmenu'].', leftmenu='.$menu_array[$i]['leftmenu'].', level='.$menu_array[$i]['level'].' -->'."\n";
print '<!-- Process menu entry with mainmenu='.$menu_array[$i]['mainmenu'].', leftmenu='.$menu_array[$i]['leftmenu'].', level='.$menu_array[$i]['level'].' enabled='.$menu_array[$i]['enabled'].' -->'."\n";
// Menu niveau 0
if ($menu_array[$i]['level'] == 0)
{
@ -379,12 +380,12 @@ function print_left_auguria_menu($db,$menu_array_before,$menu_array_after,&$tabM
}
}
// If next is a new block or end
// If next is a new block or if there is nothing after
if (empty($menu_array[$i+1]['level']))
{
if ($showmenu)
print '<div class="menu_end"></div>'."\n";
print "</div>\n";
if ($blockvmenuopened) { print "</div>\n"; $blockvmenuopened=false; }
}
}
}

View File

@ -1269,7 +1269,7 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
// Show menu
if (empty($noout))
{
$alt=0;
$alt=0; $blockvmenuopened=false;
$num=count($menu_array);
for ($i = 0; $i < $num; $i++)
{
@ -1279,6 +1279,7 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
$alt++;
if (empty($menu_array[$i]['level']) && $showmenu)
{
$blockvmenuopened=true;
if (($alt%2==0))
{
print '<div class="blockvmenuimpair">'."\n";
@ -1305,7 +1306,7 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
$url=preg_replace('/__LOGIN__/',$user->login,$url);
$url=preg_replace('/__USERID__/',$user->id,$url);
print '<!-- Add menu entry with mainmenu='.$menu_array[$i]['mainmenu'].', leftmenu='.$menu_array[$i]['leftmenu'].', level='.$menu_array[$i]['level'].' -->'."\n";
print '<!-- Process menu entry with mainmenu='.$menu_array[$i]['mainmenu'].', leftmenu='.$menu_array[$i]['leftmenu'].', level='.$menu_array[$i]['level'].' enabled='.$menu_array[$i]['enabled'].' -->'."\n";
// Menu niveau 0
if ($menu_array[$i]['level'] == 0)
@ -1340,12 +1341,12 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
}
}
// If next is a new block or end
// If next is a new block or if there is nothing after
if (empty($menu_array[$i+1]['level']))
{
if ($showmenu)
print '<div class="menu_end"></div>'."\n";
print "</div>\n";
if ($blockvmenuopened) { print "</div>\n"; $blockvmenuopened=false; }
}
}
}

View File

@ -43,7 +43,7 @@ class modAdherent extends DolibarrModules
function __construct($db)
{
global $conf;
$this->db = $db;
$this->numero = 310;
@ -179,7 +179,7 @@ class modAdherent extends DolibarrModules
$this->export_TypeFields_array[$r]=array('a.civilite'=>"Text",'a.lastname'=>"Text",'a.firstname'=>"Text",'a.login'=>"Text",'a.morphy'=>'Text','a.societe'=>'Text','a.address'=>"Text",'a.zip'=>"Text",'a.town'=>"Text",'a.country'=>"Text",'a.phone'=>"Text",'a.phone_perso'=>"Text",'a.phone_mobile'=>"Text",'a.email'=>"Text",'a.birth'=>"Date",'a.statut'=>"Status",'a.note'=>"Text",'a.datec'=>'Date','a.datevalid'=>'Date','a.tms'=>'Date','a.datefin'=>'Date','ta.rowid'=>'List:fk_adherent_type:libelle','ta.libelle'=>'Text','c.dateadh'=>'Date','c.cotisation'=>'Number');
$this->export_entities_array[$r]=array('a.rowid'=>'member','a.civilite'=>"member",'a.lastname'=>"member",'a.firstname'=>"member",'a.login'=>"member",'a.morphy'=>'member','a.societe'=>'member','a.address'=>"member",'a.zip'=>"member",'a.town'=>"member",'a.country'=>"member",'a.phone'=>"member",'a.phone_perso'=>"member",'a.phone_mobile'=>"member",'a.email'=>"member",'a.birth'=>"member",'a.statut'=>"member",'a.photo'=>"member",'a.note'=>"member",'a.datec'=>'member','a.datevalid'=>'member','a.tms'=>'member','a.datefin'=>'member','ta.rowid'=>'member_type','ta.libelle'=>'member_type','c.rowid'=>'subscription','c.dateadh'=>'subscription','c.cotisation'=>'subscription');
// Add extra fields
$sql="SELECT name, label FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'member' AND entity = ".$conf->entity;
$sql="SELECT name, label FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'adherent' AND entity = ".$conf->entity;
$resql=$this->db->query($sql);
while ($obj=$this->db->fetch_object($resql))
{
@ -212,7 +212,7 @@ class modAdherent extends DolibarrModules
$this->import_tables_creator_array[$r]=array('a'=>'fk_user_author'); // Fields to store import user id
$this->import_fields_array[$r]=array('a.civilite'=>"UserTitle",'a.lastname'=>"Lastname*",'a.firstname'=>"Firstname",'a.login'=>"Login*","a.pass"=>"Password","a.fk_adherent_type"=>"MemberType*",'a.morphy'=>'Nature*','a.societe'=>'Company','a.address'=>"Address",'a.zip'=>"Zip",'a.town'=>"Town",'a.country'=>"Country",'a.phone'=>"PhonePro",'a.phone_perso'=>"PhonePerso",'a.phone_mobile'=>"PhoneMobile",'a.email'=>"Email",'a.birth'=>"Birthday",'a.statut'=>"Status*",'a.photo'=>"Photo",'a.note'=>"Note",'a.datec'=>'DateCreation','a.datefin'=>'DateEndSubscription');
// Add extra fields
$sql="SELECT name, label, fieldrequired FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'member' AND entity = ".$conf->entity;
$sql="SELECT name, label, fieldrequired FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'adherent' AND entity = ".$conf->entity;
$resql=$this->db->query($sql);
if ($resql) // This can fail when class is used on old database (during migration for example)
{

View File

@ -267,33 +267,33 @@ class modSociete extends DolibarrModules
$resql=$this->db->query($sql);
if ($resql) // This can fail when class is used on old database (during migration for example)
{
while ($obj=$this->db->fetch_object($resql))
{
$fieldname='extra.'.$obj->name;
$fieldlabel=ucfirst($obj->label);
$typeFilter="Text";
switch($obj->type)
{
case 'int':
case 'double':
case 'price':
$typeFilter="Numeric";
break;
case 'date':
case 'datetime':
$typeFilter="Date";
break;
case 'boolean':
$typeFilter="Boolean";
break;
case 'sellist':
$typeFilter="List:".$obj->param;
break;
}
$this->export_fields_array[$r][$fieldname]=$fieldlabel;
$this->export_TypeFields_array[$r][$fieldname]=$typeFilter;
$this->export_entities_array[$r][$fieldname]='company';
}
while ($obj=$this->db->fetch_object($resql))
{
$fieldname='extra.'.$obj->name;
$fieldlabel=ucfirst($obj->label);
$typeFilter="Text";
switch($obj->type)
{
case 'int':
case 'double':
case 'price':
$typeFilter="Numeric";
break;
case 'date':
case 'datetime':
$typeFilter="Date";
break;
case 'boolean':
$typeFilter="Boolean";
break;
case 'sellist':
$typeFilter="List:".$obj->param;
break;
}
$this->export_fields_array[$r][$fieldname]=$fieldlabel;
$this->export_TypeFields_array[$r][$fieldname]=$typeFilter;
$this->export_entities_array[$r][$fieldname]='company';
}
}
// End add axtra fields
$this->export_sql_start[$r]='SELECT DISTINCT ';

View File

@ -61,12 +61,14 @@ if((($type == 'select') || ($type == 'checkbox') ||(($type == 'radio'))) && is_a
$param_chain = '';
foreach ($param['options'] as $key => $value)
{
if(strlen($key))
if(strlen($key))
{
$param_chain .= $key.', '.$value."\n";
$param_chain .= $key.','.$value."\n";
}
}
}elseif ($type== 'sellist') {
}
elseif ($type== 'sellist')
{
$paramlist=array_keys($param['options']);
$param_chain = $paramlist[0];
}
@ -83,8 +85,8 @@ if((($type == 'select') || ($type == 'checkbox') ||(($type == 'radio'))) && is_a
<input type="hidden" name="type" id="type" value="<?php print $type; ?>">
</td></tr>
<!-- Value (for select list / radio) -->
<?php
if(($type == 'select') || ($type == 'sellist') || ($type == 'checkbox') ||(($type == 'radio')))
<?php
if(($type == 'select') || ($type == 'sellist') || ($type == 'checkbox') ||(($type == 'radio')))
{
?>
<tr id="value_choice">
@ -99,7 +101,7 @@ if(($type == 'select') || ($type == 'sellist') || ($type == 'checkbox') ||(($typ
</table>
</td>
</tr>
<?php
<?php
}
?>
<!-- Size -->

View File

@ -558,7 +558,7 @@ if ($step == 2 && $datatoexport)
{
// Selected fields
print '<td>&nbsp;</td>';
print '<td align="center"><a href="'.$_SERVER["PHP_SELF"].'?step=2&datatoexport='.$datatoexport.'&action=unselectfield&field='.$code.'">'.img_left().'</a></td>';
print '<td align="center"><a href="'.$_SERVER["PHP_SELF"].'?step=2&datatoexport='.$datatoexport.'&action=unselectfield&field='.$code.'">'.img_left('default', 0, 'style="max-width: 20px"').'</a></td>';
print '<td>';
//print $text.'-'.$htmltext."<br>";
print $form->textwithpicto($text,$htmltext);
@ -573,7 +573,7 @@ if ($step == 2 && $datatoexport)
print $form->textwithpicto($text,$htmltext);
//print ' ('.$code.')';
print '</td>';
print '<td align="center"><a href="'.$_SERVER["PHP_SELF"].'?step=2&datatoexport='.$datatoexport.'&action=selectfield&field='.$code.'">'.img_right().'</a></td>';
print '<td align="center"><a href="'.$_SERVER["PHP_SELF"].'?step=2&datatoexport='.$datatoexport.'&action=selectfield&field='.$code.'">'.img_right('default', 0, 'style="max-width: 20px"').'</a></td>';
print '<td>&nbsp;</td>';
}

View File

@ -34,8 +34,8 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
if (! empty($conf->projet->enabled))
{
require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php';
require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
}
if ($conf->contrat->enabled)
@ -1006,6 +1006,8 @@ if ($action == 'create')
// Project
if (! empty($conf->projet->enabled))
{
$formproject=new FormProjets($db);
$langs->load("project");
print '<tr><td valign="top">'.$langs->trans("Project").'</td><td>';
@ -1015,7 +1017,7 @@ if ($action == 'create')
else
$numprojet=select_projects($societe->id,$_POST["projectid"],'projectid');
*/
$numprojet=select_projects($soc->id,GETPOST('projectid','int'),'projectid');
$numprojet=$formproject->select_projects($soc->id,GETPOST('projectid','int'),'projectid');
if ($numprojet==0)
{
print ' &nbsp; <a href="'.DOL_DOCUMENT_ROOT.'/projet/fiche.php?socid='.$soc->id.'&action=create">'.$langs->trans("AddProject").'</a>';

View File

@ -39,10 +39,10 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
if (!empty($conf->produit->enabled))
require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
if (!empty($conf->projet->enabled))
if (!empty($conf->projet->enabled)) {
require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
if (! empty($conf->projet->enabled))
require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
}
$langs->load('bills');
@ -1172,9 +1172,11 @@ if ($action == 'create')
// Project
if (! empty($conf->projet->enabled))
{
$formproject=new FormProjets($db);
$langs->load('projects');
print '<tr><td>'.$langs->trans('Project').'</td><td colspan="2">';
select_projects(-1, $projectid, 'projectid');
$formproject->select_projects(-1, $projectid, 'projectid');
print '</td></tr>';
}

View File

@ -1452,9 +1452,8 @@ function top_menu($head, $title='', $target='', $disablejs=0, $disablehead=0, $a
if (! empty($conf->use_javascript_ajax) && ! empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT)) print "</div><!-- End top layout -->\n";
print "<!-- End top horizontal menu -->\n";
print "<!-- End top horizontal menu -->\n\n";
//XXX if (empty($conf->use_javascript_ajax) || empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT)) print '<table width="100%" class="notopnoleftnoright" summary="leftmenutable" id="undertopmenu"><tr>';
if (empty($conf->dol_hide_leftmenu) && (empty($conf->use_javascript_ajax) || empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT))) print '<div id="id-container">';
}
@ -1486,7 +1485,6 @@ function left_menu($menu_array_before, $helppagename='', $moresearchform='', $me
if (empty($conf->dol_hide_leftmenu))
{
if (! empty($conf->use_javascript_ajax) && ! empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT)) print "\n".'<div class="ui-layout-west"> <!-- Begin left layout -->'."\n";
//XXX else print '<td class="vmenu" valign="top">';
else print '<div id="id-left">';
print "\n";
@ -1545,7 +1543,7 @@ function left_menu($menu_array_before, $helppagename='', $moresearchform='', $me
// Left column
print '<!-- Begin left menu -->'."\n";
print '<div class="vmenu">'."\n";
print '<div class="vmenu">'."\n\n";
$menumanager->menu_array = $menu_array_before;
$menumanager->menu_array_after = $menu_array_after;

View File

@ -89,22 +89,22 @@ if ($action == 'convert')
foreach ($listofmulti as $level => $multiprices)
{
$price_base_type = $objectstatic->multiprices_base_type[$level]; // Get price_base_type of product/service to keep the same for update
if (empty($price_base_type)) continue; // Discard not defined price levels
if (empty($price_base_type)) continue; // Discard not defined price levels
if ($price_base_type == 'TTC')
{
$newprice=price2num($objectstatic->multiprices_ttc[$level],'MU'); // Second param must be MU (we want a unit price so 'MU'. If unit price was on 4 decimal, we must keep 4 decimals)
$newminprice=$objectstatic->multiprices_min_ttc[$level];
}
else
{
$newprice=price2num($objectstatic->multiprices[$level],'MU'); // Second param must be MU (we want a unit price so 'MU'. If unit price was on 4 decimal, we must keep 4 decimals)
$newminprice=$objectstatic->multiprices_min[$level];
}
if ($newminprice > $newprice) $newminprice=$newprice;
$newvat=str_replace('*','',$newvatrate);
$newnpr=$objectstatic->multiprices_recuperableonly[$level];
$newlevel=$level;
if ($price_base_type == 'TTC')
{
$newprice=price2num($objectstatic->multiprices_ttc[$level],'MU'); // Second param must be MU (we want a unit price so 'MU'. If unit price was on 4 decimal, we must keep 4 decimals)
$newminprice=$objectstatic->multiprices_min_ttc[$level];
}
else
{
$newprice=price2num($objectstatic->multiprices[$level],'MU'); // Second param must be MU (we want a unit price so 'MU'. If unit price was on 4 decimal, we must keep 4 decimals)
$newminprice=$objectstatic->multiprices_min[$level];
}
if ($newminprice > $newprice) $newminprice=$newprice;
$newvat=str_replace('*','',$newvatrate);
$newnpr=$objectstatic->multiprices_recuperableonly[$level];
$newlevel=$level;
//print "$objectstatic->id $newprice, $price_base_type, $newvat, $newminprice, $newlevel, $newnpr<br>\n";
$retm=$objectstatic->updatePrice($newprice, $price_base_type, $user, $newvat, $newminprice, $newlevel, $newnpr);
@ -117,30 +117,30 @@ if ($action == 'convert')
if ($newlevel == 1) $updatelevel1=true;
}
// Update single price
$price_base_type = $objectstatic->price_base_type; // Get price_base_type of product/service to keep the same for update
if ($price_base_type == 'TTC')
{
$newprice=price2num($objectstatic->price_ttc,'MU'); // Second param must be MU (we want a unit price so 'MU'. If unit price was on 4 decimal, we must keep 4 decimals)
$newminprice=$objectstatic->price_min_ttc;
}
else
{
$newprice=price2num($objectstatic->price,'MU'); // Second param must be MU (we want a unit price so 'MU'. If unit price was on 4 decimal, we must keep 4 decimals)
$newminprice=$objectstatic->price_min;
}
if ($newminprice > $newprice) $newminprice=$newprice;
$newvat=str_replace('*','',$newvatrate);
$newnpr=$objectstatic->recuperableonly;
$newlevel=0;
if (! empty($price_base_type) && ! $updatelevel1)
{
//print "$objectstatic->id $newprice, $price_base_type, $newvat, $newminprice, $newlevel, $newnpr<br>\n";
$ret=$objectstatic->updatePrice($newprice, $price_base_type, $user, $newvat, $newminprice, $newlevel, $newnpr);
}
if ($ret < 0 || $retm < 0) $error++;
else $nbrecordsmodified++;
// Update single price
$price_base_type = $objectstatic->price_base_type; // Get price_base_type of product/service to keep the same for update
if ($price_base_type == 'TTC')
{
$newprice=price2num($objectstatic->price_ttc,'MU'); // Second param must be MU (we want a unit price so 'MU'. If unit price was on 4 decimal, we must keep 4 decimals)
$newminprice=$objectstatic->price_min_ttc;
}
else
{
$newprice=price2num($objectstatic->price,'MU'); // Second param must be MU (we want a unit price so 'MU'. If unit price was on 4 decimal, we must keep 4 decimals)
$newminprice=$objectstatic->price_min;
}
if ($newminprice > $newprice) $newminprice=$newprice;
$newvat=str_replace('*','',$newvatrate);
$newnpr=$objectstatic->recuperableonly;
$newlevel=0;
if (! empty($price_base_type) && ! $updatelevel1)
{
//print "$objectstatic->id $newprice, $price_base_type, $newvat, $newminprice, $newlevel, $newnpr<br>\n";
$ret=$objectstatic->updatePrice($newprice, $price_base_type, $user, $newvat, $newminprice, $newlevel, $newnpr);
}
if ($ret < 0 || $retm < 0) $error++;
else $nbrecordsmodified++;
}
$i++;

View File

@ -1061,9 +1061,9 @@ class Product extends CommonObject
// Price by quantity
$this->price_by_qty = $newpsq;
$this->_log_price($user,$level); // Save price for level into table product_price
$this->level = $level; // Store level of price edited for trigger
$this->_log_price($user,$level); // Save price for level into table product_price
$this->level = $level; // Store level of price edited for trigger
// Appel des triggers
include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php");
@ -1213,8 +1213,8 @@ class Product extends CommonObject
$this->multiprices_min[$i]=$result["price_min"];
$this->multiprices_min_ttc[$i]=$result["price_min_ttc"];
$this->multiprices_base_type[$i]=$result["price_base_type"];
$this->multiprices_tva_tx[$i]=$result["tva_tx"];
$this->multiprices_recuperableonly[$i]=$result["recuperableonly"];
$this->multiprices_tva_tx[$i]=$result["tva_tx"];
$this->multiprices_recuperableonly[$i]=$result["recuperableonly"];
// Price by quantity
$this->prices_by_qty[$i]=$result["price_by_qty"];

View File

@ -1278,6 +1278,63 @@ class Project extends CommonObject
return $result;
}
/**
* Clean task not linked to a parent
*
* @param DoliDB $db Database handler
* @return int Nb of records deleted
*/
function clean_orphelins()
{
$nb=0;
// There is orphelins. We clean that
$listofid=array();
// Get list of id in array listofid
$sql='SELECT rowid FROM '.MAIN_DB_PREFIX.'projet_task';
$resql = $this->db->query($sql);
if ($resql)
{
$num = $this->db->num_rows($resql);
$i = 0;
while ($i < $num && $i < 100)
{
$obj = $this->db->fetch_object($resql);
$listofid[]=$obj->rowid;
$i++;
}
}
else
{
dol_print_error($this->db);
}
if (count($listofid))
{
// Removed orphelins records
print 'Some orphelins were found and restored to be parents so records are visible again: ';
print join(',',$listofid);
$sql = "UPDATE ".MAIN_DB_PREFIX."projet_task";
$sql.= " SET fk_task_parent = 0";
$sql.= " WHERE fk_task_parent NOT IN (".join(',',$listofid).")";
$resql = $this->db->query($sql);
if ($resql)
{
$nb=$this->db->affected_rows($sql);
return $nb;
}
else
{
return -1;
}
}
}
/**
* Build Select List of element associable to a project
*

View File

@ -420,11 +420,11 @@ else
//print 'mode='.$_REQUEST["mode"].' $nboftaskshown='.$nboftaskshown.' count($tasksarray)='.count($tasksarray).' count($tasksrole)='.count($tasksrole).'<br>';
if ($mode=='mine')
{
if ($nboftaskshown < count($tasksrole)) clean_orphelins($db);
if ($nboftaskshown < count($tasksrole)) $object->clean_orphelins();
}
else
{
if ($nboftaskshown < count($tasksarray)) clean_orphelins($db);
if ($nboftaskshown < count($tasksarray)) $object->clean_orphelins();
}
}

View File

@ -391,7 +391,7 @@ if ($resql)
$companystatic->canvas=$obj->canvas;
$companystatic->client=$obj->client;
$companystatic->status=$obj->status;
print $companystatic->getNomUrl(1,'',24);
print $companystatic->getNomUrl(1,'',100);
print "</td>\n";
print "<td>".$obj->town."</td>\n";
print "<td>".$obj->idprof1."</td>\n";

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<con:soapui-project name="Dolibarr" soapui-version="3.6.1" abortOnError="false" runType="SEQUENTIAL" resourceRoot="" xmlns:con="http://eviware.com/soapui/config"><con:settings/><con:interface xsi:type="con:WsdlInterface" wsaVersion="NONE" name="WebServicesDolibarrOtherBinding" type="wsdl" bindingName="{http://www.dolibarr.org/ns/}WebServicesDolibarrOtherBinding" soapVersion="1_1" anonymous="optional" definition="http://localhostdolibarr/dolibarrnew/webservices/server_other.php?wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:settings/><con:definitionCache type="TEXT" rootPart="http://localhostdolibarr/dolibarrnew/webservices/server_other.php?wsdl"><con:part><con:url>http://localhostdolibarr/dolibarrnew/webservices/server_other.php?wsdl</con:url><con:content><![CDATA[<definitions targetNamespace="http://www.dolibarr.org/ns/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://www.dolibarr.org/ns/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/">
<?xml version="1.0" encoding="UTF-8"?>
<con:soapui-project name="Dolibarr" soapui-version="4.0.1" abortOnError="false" runType="SEQUENTIAL" resourceRoot="" xmlns:con="http://eviware.com/soapui/config"><con:settings/><con:interface xsi:type="con:WsdlInterface" wsaVersion="NONE" name="WebServicesDolibarrOtherBinding" type="wsdl" bindingName="{http://www.dolibarr.org/ns/}WebServicesDolibarrOtherBinding" soapVersion="1_1" anonymous="optional" definition="http://localhostdolibarr/dolibarrnew/webservices/server_other.php?wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:settings/><con:definitionCache type="TEXT" rootPart="http://localhostdolibarr/dolibarrnew/webservices/server_other.php?wsdl"><con:part><con:url>http://localhostdolibarr/dolibarrnew/webservices/server_other.php?wsdl</con:url><con:content><![CDATA[<definitions targetNamespace="http://www.dolibarr.org/ns/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://www.dolibarr.org/ns/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/">
<types>
<xsd:schema targetNamespace="http://www.dolibarr.org/ns/">
<xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
@ -757,231 +757,286 @@
<idthirdparty xsi:type="xsd:string">all</idthirdparty>
</ns:getSupplierInvoicesForThirdParty>
</soapenv:Body>
</soapenv:Envelope>]]></con:request><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://www.dolibarr.org/ns/#getSupplierInvoicesForThirdParty"/><con:wsrmConfig version="1.2"/></con:call></con:operation></con:interface><con:interface xsi:type="con:WsdlInterface" wsaVersion="NONE" name="WebServicesDolibarrProductOrServiceBinding" type="wsdl" bindingName="{http://www.dolibarr.org/ns/}WebServicesDolibarrProductOrServiceBinding" soapVersion="1_1" anonymous="optional" definition="http://localhostdolibarr/dolibarrnew/webservices/server_productorservice.php?wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:settings/><con:definitionCache type="TEXT" rootPart="http://localhostdolibarr/dolibarrnew/webservices/server_productorservice.php?wsdl"><con:part><con:url>http://localhostdolibarr/dolibarrnew/webservices/server_productorservice.php?wsdl</con:url><con:content><![CDATA[<definitions targetNamespace="http://www.dolibarr.org/ns/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://www.dolibarr.org/ns/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/">
<types>
<xsd:schema targetNamespace="http://www.dolibarr.org/ns/">
<xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
<xsd:import namespace="http://schemas.xmlsoap.org/wsdl/"/>
<xsd:complexType name="authentication">
<xsd:all>
<xsd:element name="dolibarrkey" type="xsd:string"/>
<xsd:element name="sourceapplication" type="xsd:string"/>
<xsd:element name="login" type="xsd:string"/>
<xsd:element name="password" type="xsd:string"/>
<xsd:element name="entity" type="xsd:string"/>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="result">
<xsd:all>
<xsd:element name="result_code" type="xsd:string"/>
<xsd:element name="result_label" type="xsd:string"/>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="product">
<xsd:all>
<xsd:element name="id" type="xsd:string"/>
<xsd:element name="ref" type="xsd:string"/>
<xsd:element name="ref_ext" type="xsd:string"/>
<xsd:element name="type" type="xsd:string"/>
<xsd:element name="label" type="xsd:string"/>
<xsd:element name="description" type="xsd:string"/>
<xsd:element name="date_creation" type="xsd:dateTime"/>
<xsd:element name="date_modification" type="xsd:dateTime"/>
<xsd:element name="note" type="xsd:string"/>
<xsd:element name="status_tobuy" type="xsd:string"/>
<xsd:element name="status_tosell" type="xsd:string"/>
<xsd:element name="barcode" type="xsd:string"/>
<xsd:element name="barcode_type" type="xsd:string"/>
<xsd:element name="country_id" type="xsd:string"/>
<xsd:element name="country_code" type="xsd:string"/>
<xsd:element name="customcode" type="xsd:string"/>
<xsd:element name="price_net" type="xsd:string"/>
<xsd:element name="price" type="xsd:string"/>
<xsd:element name="price_min_net" type="xsd:string"/>
<xsd:element name="price_min" type="xsd:string"/>
<xsd:element name="price_base_type" type="xsd:string"/>
<xsd:element name="vat_rate" type="xsd:string"/>
<xsd:element name="vat_npr" type="xsd:string"/>
<xsd:element name="localtax1_tx" type="xsd:string"/>
<xsd:element name="localtax2_tx" type="xsd:string"/>
<xsd:element name="stock_alert" type="xsd:string"/>
<xsd:element name="stock_real" type="xsd:string"/>
<xsd:element name="stock_pmp" type="xsd:string"/>
<xsd:element name="canvas" type="xsd:string"/>
<xsd:element name="import_key" type="xsd:string"/>
<xsd:element name="dir" type="xsd:string"/>
<xsd:element name="images" type="tns:ImagesArray"/>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="ImagesArray">
<xsd:sequence>
<xsd:element name="image" type="tns:image" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="image">
<xsd:all>
<xsd:element name="original" type="xsd:string"/>
<xsd:element name="thumble" type="xsd:string"/>
<xsd:element name="imgWidth" type="xsd:string"/>
<xsd:element name="imgHeight" type="xsd:string"/>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="filterproduct">
<xsd:all>
<xsd:element name="type" type="xsd:string"/>
<xsd:element name="status_tobuy" type="xsd:string"/>
<xsd:element name="status_tosell" type="xsd:string"/>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="ProductsArray2">
<xsd:sequence>
<xsd:element name="product" type="tns:product" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</types>
<message name="getProductOrServiceRequest">
<part name="authentication" type="tns:authentication"/>
<part name="id" type="xsd:string"/>
<part name="ref" type="xsd:string"/>
<part name="ref_ext" type="xsd:string"/>
</message>
<message name="getProductOrServiceResponse">
<part name="result" type="tns:result"/>
<part name="product" type="tns:product"/>
</message>
<message name="createProductOrServiceRequest">
<part name="authentication" type="tns:authentication"/>
<part name="product" type="tns:product"/>
</message>
<message name="createProductOrServiceResponse">
<part name="result" type="tns:result"/>
<part name="id" type="xsd:string"/>
</message>
<message name="getListOfProductsOrServicesRequest">
<part name="authentication" type="tns:authentication"/>
<part name="filterproduct" type="tns:filterproduct"/>
</message>
<message name="getListOfProductsOrServicesResponse">
<part name="result" type="tns:result"/>
<part name="products" type="tns:ProductsArray2"/>
</message>
<message name="getProductsForCategoryRequest">
<part name="authentication" type="tns:authentication"/>
<part name="id" type="xsd:string"/>
</message>
<message name="getProductsForCategoryResponse">
<part name="result" type="tns:result"/>
<part name="products" type="tns:ProductsArray2"/>
</message>
<portType name="WebServicesDolibarrProductOrServicePortType">
<operation name="getProductOrService">
<documentation>WS to get product or service</documentation>
<input message="tns:getProductOrServiceRequest"/>
<output message="tns:getProductOrServiceResponse"/>
</operation>
<operation name="createProductOrService">
<documentation>WS to create a product or service</documentation>
<input message="tns:createProductOrServiceRequest"/>
<output message="tns:createProductOrServiceResponse"/>
</operation>
<operation name="getListOfProductsOrServices">
<documentation>WS to get list of all products or services id and ref</documentation>
<input message="tns:getListOfProductsOrServicesRequest"/>
<output message="tns:getListOfProductsOrServicesResponse"/>
</operation>
<operation name="getProductsForCategory">
<documentation>WS to get list of all products or services for a category</documentation>
<input message="tns:getProductsForCategoryRequest"/>
<output message="tns:getProductsForCategoryResponse"/>
</operation>
</portType>
<binding name="WebServicesDolibarrProductOrServiceBinding" type="tns:WebServicesDolibarrProductOrServicePortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="getProductOrService">
<soap:operation soapAction="http://www.dolibarr.org/ns/#getProductOrService" style="rpc"/>
<input>
<soap:body use="encoded" namespace="http://www.dolibarr.org/ns/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="http://www.dolibarr.org/ns/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
<operation name="createProductOrService">
<soap:operation soapAction="http://www.dolibarr.org/ns/#createProductOrService" style="rpc"/>
<input>
<soap:body use="encoded" namespace="http://www.dolibarr.org/ns/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="http://www.dolibarr.org/ns/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
<operation name="getListOfProductsOrServices">
<soap:operation soapAction="http://www.dolibarr.org/ns/#getListOfProductsOrServices" style="rpc"/>
<input>
<soap:body use="encoded" namespace="http://www.dolibarr.org/ns/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="http://www.dolibarr.org/ns/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
<operation name="getProductsForCategory">
<soap:operation soapAction="http://www.dolibarr.org/ns/#getProductsForCategory" style="rpc"/>
<input>
<soap:body use="encoded" namespace="http://www.dolibarr.org/ns/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="http://www.dolibarr.org/ns/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
</binding>
<service name="WebServicesDolibarrProductOrService">
<port name="WebServicesDolibarrProductOrServicePort" binding="tns:WebServicesDolibarrProductOrServiceBinding">
<soap:address location="http://localhostdolibarr/dolibarrnew/webservices/server_productorservice.php"/>
</port>
</service>
</definitions>]]></con:content><con:type>http://schemas.xmlsoap.org/wsdl/</con:type></con:part></con:definitionCache><con:endpoints><con:endpoint>http://localhost/dolibarrnew/webservices/server_productorservice.php</con:endpoint><con:endpoint>http://localhostdolibarr/dolibarrnew/webservices/server_productorservice.php</con:endpoint></con:endpoints><con:operation isOneWay="false" action="http://www.dolibarr.org/ns/#createProductOrService" name="createProductOrService" bindingOperationName="createProductOrService" type="Request-Response" inputName="" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/><con:call name="Request 1"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhostdolibarr/dolibarrnew/webservices/server_productorservice.php</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.dolibarr.org/ns/">
<soapenv:Header/>
<soapenv:Body>
<ns:createProductOrService soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<authentication xsi:type="ns:authentication">
<!--You may enter the following 5 items in any order-->
<dolibarrkey xsi:type="xsd:string">dolibarrkey</dolibarrkey>
<sourceapplication xsi:type="xsd:string">aaa</sourceapplication>
<login xsi:type="xsd:string">admin</login>
<password xsi:type="xsd:string">admin</password>
<entity xsi:type="xsd:string"/>
</authentication>
<product xsi:type="ns:product">
<!--You may enter the following 24 items in any order-->
<id xsi:type="xsd:string">?</id>
<ref xsi:type="xsd:string">PPP</ref>
<ref_ext xsi:type="xsd:string"/>
<type xsi:type="xsd:string">1</type>
<label xsi:type="xsd:string">PPP Label</label>
<description xsi:type="xsd:string">Description of PPP</description>
<date_creation xsi:type="xsd:dateTime">?</date_creation>
<date_modification xsi:type="xsd:dateTime">?</date_modification>
<note xsi:type="xsd:string">xxxxx</note>
<status_tobuy xsi:type="xsd:string">?</status_tobuy>
<status_tosell xsi:type="xsd:string">?</status_tosell>
<barcode xsi:type="xsd:string">123456</barcode>
<barcode_type xsi:type="xsd:string">?</barcode_type>
<country_id xsi:type="xsd:string">?</country_id>
<country_code xsi:type="xsd:string">FR</country_code>
<customcode xsi:type="xsd:string">?</customcode>
<price_net xsi:type="xsd:string">?</price_net>
<price xsi:type="xsd:string">?</price>
<price_base_type xsi:type="xsd:string">?</price_base_type>
<stock_alert xsi:type="xsd:string">10</stock_alert>
<stock_real xsi:type="xsd:string">?</stock_real>
<stock_pmp xsi:type="xsd:string">?</stock_pmp>
<canvas xsi:type="xsd:string">?</canvas>
<import_key xsi:type="xsd:string">?</import_key>
</product>
</ns:createProductOrService>
</soapenv:Body>
</soapenv:Envelope>]]></con:request><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://www.dolibarr.org/ns/#createProductOrService"/><con:wsrmConfig version="1.2"/></con:call></con:operation><con:operation isOneWay="false" action="http://www.dolibarr.org/ns/#getProductOrService" name="getProductOrService" bindingOperationName="getProductOrService" type="Request-Response" inputName="" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/><con:call name="Request 1"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhostdolibarr/dolibarrnew/webservices/server_productorservice.php</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.dolibarr.org/ns/">
</soapenv:Envelope>]]></con:request><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://www.dolibarr.org/ns/#getSupplierInvoicesForThirdParty"/><con:wsrmConfig version="1.2"/></con:call></con:operation></con:interface><con:interface xsi:type="con:WsdlInterface" wsaVersion="NONE" name="WebServicesDolibarrProductOrServiceBinding" type="wsdl" bindingName="{http://www.dolibarr.org/ns/}WebServicesDolibarrProductOrServiceBinding" soapVersion="1_1" anonymous="optional" definition="http://localhost/dolibarr/htdocs/webservices/server_productorservice.php?wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:settings/><con:definitionCache type="TEXT" rootPart="http://localhost/dolibarr/htdocs/webservices/server_productorservice.php?wsdl"><con:part><con:url>http://localhost/dolibarr/htdocs/webservices/server_productorservice.php?wsdl</con:url><con:content><![CDATA[<definitions targetNamespace="http://www.dolibarr.org/ns/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://www.dolibarr.org/ns/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/">
<types>
<xsd:schema targetNamespace="http://www.dolibarr.org/ns/">
<xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
<xsd:import namespace="http://schemas.xmlsoap.org/wsdl/"/>
<xsd:complexType name="authentication">
<xsd:all>
<xsd:element name="dolibarrkey" type="xsd:string"/>
<xsd:element name="sourceapplication" type="xsd:string"/>
<xsd:element name="login" type="xsd:string"/>
<xsd:element name="password" type="xsd:string"/>
<xsd:element name="entity" type="xsd:string"/>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="result">
<xsd:all>
<xsd:element name="result_code" type="xsd:string"/>
<xsd:element name="result_label" type="xsd:string"/>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="product">
<xsd:all>
<xsd:element name="id" type="xsd:string"/>
<xsd:element name="ref" type="xsd:string"/>
<xsd:element name="ref_ext" type="xsd:string"/>
<xsd:element name="type" type="xsd:string"/>
<xsd:element name="label" type="xsd:string"/>
<xsd:element name="description" type="xsd:string"/>
<xsd:element name="date_creation" type="xsd:dateTime"/>
<xsd:element name="date_modification" type="xsd:dateTime"/>
<xsd:element name="note" type="xsd:string"/>
<xsd:element name="status_tobuy" type="xsd:string"/>
<xsd:element name="status_tosell" type="xsd:string"/>
<xsd:element name="barcode" type="xsd:string"/>
<xsd:element name="barcode_type" type="xsd:string"/>
<xsd:element name="country_id" type="xsd:string"/>
<xsd:element name="country_code" type="xsd:string"/>
<xsd:element name="customcode" type="xsd:string"/>
<xsd:element name="price_net" type="xsd:string"/>
<xsd:element name="price" type="xsd:string"/>
<xsd:element name="price_min_net" type="xsd:string"/>
<xsd:element name="price_min" type="xsd:string"/>
<xsd:element name="price_base_type" type="xsd:string"/>
<xsd:element name="vat_rate" type="xsd:string"/>
<xsd:element name="vat_npr" type="xsd:string"/>
<xsd:element name="localtax1_tx" type="xsd:string"/>
<xsd:element name="localtax2_tx" type="xsd:string"/>
<xsd:element name="stock_alert" type="xsd:string"/>
<xsd:element name="stock_real" type="xsd:string"/>
<xsd:element name="stock_pmp" type="xsd:string"/>
<xsd:element name="canvas" type="xsd:string"/>
<xsd:element name="import_key" type="xsd:string"/>
<xsd:element name="dir" type="xsd:string"/>
<xsd:element name="images" type="tns:ImagesArray"/>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="ImagesArray">
<xsd:sequence>
<xsd:element name="image" type="tns:image" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="image">
<xsd:all>
<xsd:element name="photo" type="xsd:string"/>
<xsd:element name="photo_vignette" type="xsd:string"/>
<xsd:element name="imgWidth" type="xsd:string"/>
<xsd:element name="imgHeight" type="xsd:string"/>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="filterproduct">
<xsd:all>
<xsd:element name="type" type="xsd:string"/>
<xsd:element name="status_tobuy" type="xsd:string"/>
<xsd:element name="status_tosell" type="xsd:string"/>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="ProductsArray2">
<xsd:sequence>
<xsd:element name="product" type="tns:product" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</types>
<message name="getProductOrServiceRequest">
<part name="authentication" type="tns:authentication"/>
<part name="id" type="xsd:string"/>
<part name="ref" type="xsd:string"/>
<part name="ref_ext" type="xsd:string"/>
</message>
<message name="getProductOrServiceResponse">
<part name="result" type="tns:result"/>
<part name="product" type="tns:product"/>
</message>
<message name="createProductOrServiceRequest">
<part name="authentication" type="tns:authentication"/>
<part name="product" type="tns:product"/>
</message>
<message name="createProductOrServiceResponse">
<part name="result" type="tns:result"/>
<part name="id" type="xsd:string"/>
</message>
<message name="getListOfProductsOrServicesRequest">
<part name="authentication" type="tns:authentication"/>
<part name="filterproduct" type="tns:filterproduct"/>
</message>
<message name="getListOfProductsOrServicesResponse">
<part name="result" type="tns:result"/>
<part name="products" type="tns:ProductsArray2"/>
</message>
<message name="getProductsForCategoryRequest">
<part name="authentication" type="tns:authentication"/>
<part name="id" type="xsd:string"/>
</message>
<message name="getProductsForCategoryResponse">
<part name="result" type="tns:result"/>
<part name="products" type="tns:ProductsArray2"/>
</message>
<portType name="WebServicesDolibarrProductOrServicePortType">
<operation name="getProductOrService">
<documentation>WS to get product or service</documentation>
<input message="tns:getProductOrServiceRequest"/>
<output message="tns:getProductOrServiceResponse"/>
</operation>
<operation name="createProductOrService">
<documentation>WS to create a product or service</documentation>
<input message="tns:createProductOrServiceRequest"/>
<output message="tns:createProductOrServiceResponse"/>
</operation>
<operation name="getListOfProductsOrServices">
<documentation>WS to get list of all products or services id and ref</documentation>
<input message="tns:getListOfProductsOrServicesRequest"/>
<output message="tns:getListOfProductsOrServicesResponse"/>
</operation>
<operation name="getProductsForCategory">
<documentation>WS to get list of all products or services for a category</documentation>
<input message="tns:getProductsForCategoryRequest"/>
<output message="tns:getProductsForCategoryResponse"/>
</operation>
</portType>
<binding name="WebServicesDolibarrProductOrServiceBinding" type="tns:WebServicesDolibarrProductOrServicePortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="getProductOrService">
<soap:operation soapAction="http://www.dolibarr.org/ns/#getProductOrService" style="rpc"/>
<input>
<soap:body use="encoded" namespace="http://www.dolibarr.org/ns/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="http://www.dolibarr.org/ns/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
<operation name="createProductOrService">
<soap:operation soapAction="http://www.dolibarr.org/ns/#createProductOrService" style="rpc"/>
<input>
<soap:body use="encoded" namespace="http://www.dolibarr.org/ns/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="http://www.dolibarr.org/ns/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
<operation name="getListOfProductsOrServices">
<soap:operation soapAction="http://www.dolibarr.org/ns/#getListOfProductsOrServices" style="rpc"/>
<input>
<soap:body use="encoded" namespace="http://www.dolibarr.org/ns/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="http://www.dolibarr.org/ns/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
<operation name="getProductsForCategory">
<soap:operation soapAction="http://www.dolibarr.org/ns/#getProductsForCategory" style="rpc"/>
<input>
<soap:body use="encoded" namespace="http://www.dolibarr.org/ns/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="http://www.dolibarr.org/ns/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
</binding>
<service name="WebServicesDolibarrProductOrService">
<port name="WebServicesDolibarrProductOrServicePort" binding="tns:WebServicesDolibarrProductOrServiceBinding">
<soap:address location="http://localhost/dolibarr/htdocs/webservices/server_productorservice.php"/>
</port>
</service>
</definitions>]]></con:content><con:type>http://schemas.xmlsoap.org/wsdl/</con:type></con:part></con:definitionCache><con:endpoints><con:endpoint>http://localhost/dolibarrnew/webservices/server_productorservice.php</con:endpoint><con:endpoint>http://localhostdolibarr/dolibarrnew/webservices/server_productorservice.php</con:endpoint><con:endpoint>http://localhost/dolibarr/htdocs/webservices/server_productorservice.php</con:endpoint></con:endpoints><con:operation isOneWay="false" action="http://www.dolibarr.org/ns/#createProductOrService" name="createProductOrService" bindingOperationName="createProductOrService" type="Request-Response" inputName="" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/><con:call name="Request 1"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost/dolibarr/htdocs/webservices/server_productorservice.php</con:endpoint><con:request><![CDATA[<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns8543:createProductOrService xmlns:ns8543="http://www.Dolibarr.org/ns/">
<authentication>
<dolibarrkey xsi:type="xsd:string">dolibarrkey</dolibarrkey>
<sourceapplication xsi:type="xsd:string">PRESTASHOP</sourceapplication>
<login xsi:type="xsd:string">admin</login>
<password xsi:type="xsd:string">admin</password>
<entity xsi:type="xsd:string"/>
</authentication>
<product>
<id xsi:type="xsd:string"/>
<ref xsi:type="xsd:string">aaa</ref>
<ref_ext xsi:type="xsd:string">aaa</ref_ext>
<type xsi:type="xsd:string">0</type>
<label xsi:type="xsd:string">Écouteurs à isolation sonore Shure SE210</label>
<description xsi:type="xsd:string">les couteurs isolation sonore ergonomiques et l gers offrent la reproduction audio la plus fid le en provenance de sources audio st r o portables ou de salon.</description>
<date_creation xsi:type="xsd:string">2013-03-06 09:24:51</date_creation>
<date_modification xsi:type="xsd:string">2013-03-06 09:24:51</date_modification>
<note xsi:type="xsd:string">imported from Prestashop</note>
<status_tobuy xsi:type="xsd:int">0</status_tobuy>
<status_tosell xsi:type="xsd:int">1</status_tosell>
<barcode xsi:type="xsd:string"/>
<barcode_type xsi:type="xsd:string">upc</barcode_type>
<country_id xsi:type="xsd:string"/>
<country_code xsi:type="xsd:string"/>
<customcode xsi:type="xsd:string"/>
<price_net xsi:type="xsd:string"/>
<price xsi:type="xsd:float">149</price>
<price_base_type xsi:type="xsd:string"/>
<stock_alert xsi:type="xsd:string"/>
<stock_real xsi:type="xsd:string">0</stock_real>
<stock_pmp xsi:type="xsd:string"/>
<canvas xsi:type="xsd:string"/>
<import_key xsi:type="xsd:string"/>
</product>
</ns8543:createProductOrService>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>]]></con:request><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://www.dolibarr.org/ns/#createProductOrService"/><con:wsrmConfig version="1.2"/></con:call><con:call name="Request 2"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost/dolibarrnew/webservices/server_productorservice.php</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.dolibarr.org/ns/">
<soapenv:Header/>
<soapenv:Body>
<ns:createProductOrService soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<authentication xsi:type="ns:authentication">
<!--You may enter the following 5 items in any order-->
<dolibarrkey xsi:type="xsd:string">?</dolibarrkey>
<sourceapplication xsi:type="xsd:string">?</sourceapplication>
<login xsi:type="xsd:string">?</login>
<password xsi:type="xsd:string">?</password>
<entity xsi:type="xsd:string">?</entity>
</authentication>
<product xsi:type="ns:product">
<!--You may enter the following 32 items in any order-->
<id xsi:type="xsd:string">?</id>
<ref xsi:type="xsd:string">?</ref>
<ref_ext xsi:type="xsd:string">?</ref_ext>
<type xsi:type="xsd:string">?</type>
<label xsi:type="xsd:string">?</label>
<description xsi:type="xsd:string">?</description>
<date_creation xsi:type="xsd:dateTime">?</date_creation>
<date_modification xsi:type="xsd:dateTime">?</date_modification>
<note xsi:type="xsd:string">?</note>
<status_tobuy xsi:type="xsd:string">?</status_tobuy>
<status_tosell xsi:type="xsd:string">?</status_tosell>
<barcode xsi:type="xsd:string">?</barcode>
<barcode_type xsi:type="xsd:string">?</barcode_type>
<country_id xsi:type="xsd:string">?</country_id>
<country_code xsi:type="xsd:string">?</country_code>
<customcode xsi:type="xsd:string">?</customcode>
<price_net xsi:type="xsd:string">?</price_net>
<price xsi:type="xsd:string">?</price>
<price_min_net xsi:type="xsd:string">?</price_min_net>
<price_min xsi:type="xsd:string">?</price_min>
<price_base_type xsi:type="xsd:string">?</price_base_type>
<vat_rate xsi:type="xsd:string">?</vat_rate>
<vat_npr xsi:type="xsd:string">?</vat_npr>
<localtax1_tx xsi:type="xsd:string">?</localtax1_tx>
<localtax2_tx xsi:type="xsd:string">?</localtax2_tx>
<stock_alert xsi:type="xsd:string">?</stock_alert>
<stock_real xsi:type="xsd:string">?</stock_real>
<stock_pmp xsi:type="xsd:string">?</stock_pmp>
<canvas xsi:type="xsd:string">?</canvas>
<import_key xsi:type="xsd:string">?</import_key>
<dir xsi:type="xsd:string">?</dir>
<images xsi:type="ns:ImagesArray">
<!--Zero or more repetitions:-->
<image xsi:type="ns:image">
<!--You may enter the following 4 items in any order-->
<photo xsi:type="xsd:string">?</photo>
<photo_vignette xsi:type="xsd:string">?</photo_vignette>
<imgWidth xsi:type="xsd:string">?</imgWidth>
<imgHeight xsi:type="xsd:string">?</imgHeight>
</image>
</images>
</product>
</ns:createProductOrService>
</soapenv:Body>
</soapenv:Envelope>]]></con:request><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://www.dolibarr.org/ns/#createProductOrService"/><con:wsrmConfig version="1.2"/></con:call></con:operation><con:operation isOneWay="false" action="http://www.dolibarr.org/ns/#getProductOrService" name="getProductOrService" bindingOperationName="getProductOrService" type="Request-Response" inputName="" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/><con:call name="Request 1"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost/dolibarr/htdocs/webservices/server_productorservice.php</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.dolibarr.org/ns/">
<soapenv:Header/>
<soapenv:Body>
<ns:getProductOrService soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
@ -998,7 +1053,7 @@
<ref_ext xsi:type="xsd:string"></ref_ext>
</ns:getProductOrService>
</soapenv:Body>
</soapenv:Envelope>]]></con:request><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://www.dolibarr.org/ns/#getProductOrService"/><con:wsrmConfig version="1.2"/></con:call><con:call name="Request 2"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhostdolibarr/dolibarrnew/webservices/server_productorservice.php</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.dolibarr.org/ns/">
</soapenv:Envelope>]]></con:request><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://www.dolibarr.org/ns/#getProductOrService"/><con:wsrmConfig version="1.2"/></con:call><con:call name="Request 2"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost/dolibarr/htdocs/webservices/server_productorservice.php</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.dolibarr.org/ns/">
<soapenv:Header/>
<soapenv:Body>
<ns:getProductOrService soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
@ -1015,7 +1070,7 @@
<ref_ext xsi:type="xsd:string">?</ref_ext>
</ns:getProductOrService>
</soapenv:Body>
</soapenv:Envelope>]]></con:request><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://www.dolibarr.org/ns/#getProductOrService"/><con:wsrmConfig version="1.2"/></con:call></con:operation><con:operation isOneWay="false" action="http://www.dolibarr.org/ns/#getListOfProductsOrServices" name="getListOfProductsOrServices" bindingOperationName="getListOfProductsOrServices" type="Request-Response" inputName="" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/><con:call name="Request 1"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhostdolibarr/dolibarrnew/webservices/server_productorservice.php</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.dolibarr.org/ns/">
</soapenv:Envelope>]]></con:request><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://www.dolibarr.org/ns/#getProductOrService"/><con:wsrmConfig version="1.2"/></con:call></con:operation><con:operation isOneWay="false" action="http://www.dolibarr.org/ns/#getListOfProductsOrServices" name="getListOfProductsOrServices" bindingOperationName="getListOfProductsOrServices" type="Request-Response" inputName="" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/><con:call name="Request 1"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost/dolibarr/htdocs/webservices/server_productorservice.php</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.dolibarr.org/ns/">
<soapenv:Header/>
<soapenv:Body>
<ns:getListOfProductsOrServices soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
@ -1035,7 +1090,7 @@
</filterproduct>
</ns:getListOfProductsOrServices>
</soapenv:Body>
</soapenv:Envelope>]]></con:request><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://www.dolibarr.org/ns/#getListOfProductsOrServices"/></con:call></con:operation><con:operation isOneWay="false" action="http://www.dolibarr.org/ns/#getProductsForCategory" name="getProductsForCategory" bindingOperationName="getProductsForCategory" type="Request-Response" inputName="" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/><con:call name="Request 1"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost/dolibarrnew/webservices/server_productorservice.php</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.dolibarr.org/ns/">
</soapenv:Envelope>]]></con:request><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://www.dolibarr.org/ns/#getListOfProductsOrServices"/></con:call></con:operation><con:operation isOneWay="false" action="http://www.dolibarr.org/ns/#getProductsForCategory" name="getProductsForCategory" bindingOperationName="getProductsForCategory" type="Request-Response" inputName="" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/><con:call name="Request 1"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost/dolibarr/htdocs/webservices/server_productorservice.php</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.dolibarr.org/ns/">
<soapenv:Header/>
<soapenv:Body>
<ns:getProductsForCategory soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">