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

This commit is contained in:
Laurent Destailleur 2014-06-27 01:37:32 +02:00
commit 96da5bf0e0

View File

@ -34,6 +34,7 @@ require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php';
require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
require_once(DOL_DOCUMENT_ROOT."/categories/class/categorie.class.php"); require_once(DOL_DOCUMENT_ROOT."/categories/class/categorie.class.php");
require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
@ -88,14 +89,7 @@ $server->wsdl->addComplexType(
) )
); );
// Define other specific objects $productorservice_fields = array(
$server->wsdl->addComplexType(
'product',
'complexType',
'struct',
'all',
'',
array(
'id' => array('name'=>'id','type'=>'xsd:string'), 'id' => array('name'=>'id','type'=>'xsd:string'),
'ref' => array('name'=>'ref','type'=>'xsd:string'), 'ref' => array('name'=>'ref','type'=>'xsd:string'),
'ref_ext' => array('name'=>'ref_ext','type'=>'xsd:string'), 'ref_ext' => array('name'=>'ref_ext','type'=>'xsd:string'),
@ -133,7 +127,34 @@ $server->wsdl->addComplexType(
'dir' => array('name'=>'dir','type'=>'xsd:string'), 'dir' => array('name'=>'dir','type'=>'xsd:string'),
'images' => array('name'=>'images','type'=>'tns:ImagesArray') 'images' => array('name'=>'images','type'=>'tns:ImagesArray')
) );
//Retreive all extrafield for product
// fetch optionals attributes and labels
$extrafields=new ExtraFields($db);
$extralabels=$extrafields->fetch_name_optionals_label('product',true);
if (count($extrafields)>0) {
$extrafield_array = array();
}
foreach($extrafields->attribute_label as $key=>$label)
{
$type =$extrafields->attribute_type[$key];
if ($type=='date' || $type=='datetime') {$type='xsd:dateTime';}
else {$type='xsd:string';}
$extrafield_array['options_'.$key]=array('name'=>'options_'.$key,'type'=>$type);
}
$productorservice_fields=array_merge($productorservice_fields,$extrafield_array);
// Define other specific objects
$server->wsdl->addComplexType(
'product',
'complexType',
'struct',
'all',
'',
$productorservice_fields
); );
@ -358,10 +379,7 @@ function getProductOrService($authentication,$id='',$ref='',$ref_ext='',$lang=''
if (! empty($product->multilangs[$langs->defaultlang]["description"])) $product->description = $product->multilangs[$langs->defaultlang]["description"]; if (! empty($product->multilangs[$langs->defaultlang]["description"])) $product->description = $product->multilangs[$langs->defaultlang]["description"];
if (! empty($product->multilangs[$langs->defaultlang]["note"])) $product->note = $product->multilangs[$langs->defaultlang]["note"]; if (! empty($product->multilangs[$langs->defaultlang]["note"])) $product->note = $product->multilangs[$langs->defaultlang]["note"];
// Create $productorservice_result_fields = array(
$objectresp = array(
'result'=>array('result_code'=>'OK', 'result_label'=>''),
'product'=>array(
'id' => $product->id, 'id' => $product->id,
'ref' => $product->ref, 'ref' => $product->ref,
'ref_ext' => $product->ref_ext, 'ref_ext' => $product->ref_ext,
@ -397,7 +415,25 @@ function getProductOrService($authentication,$id='',$ref='',$ref_ext='',$lang=''
'import_key' => $product->import_key, 'import_key' => $product->import_key,
'dir' => $pdir, 'dir' => $pdir,
'images' => $product->liste_photos($dir,$nbmax=10) 'images' => $product->liste_photos($dir,$nbmax=10)
)); );
//Retreive all extrafield for thirdsparty
// fetch optionals attributes and labels
$extrafields=new ExtraFields($db);
$extralabels=$extrafields->fetch_name_optionals_label('product',true);
//Get extrafield values
$product->fetch_optionals($product->id,$extralabels);
foreach($extrafields->attribute_label as $key=>$label)
{
$productorservice_result_fields=array_merge($productorservice_result_fields,array('options_'.$key => $product->array_options['options_'.$key]));
}
// Create
$objectresp = array(
'result'=>array('result_code'=>'OK', 'result_label'=>''),
'product'=>$productorservice_result_fields
);
} }
else else
{ {
@ -498,6 +534,14 @@ function createProductOrService($authentication,$product)
//var_dump($product['ref_ext']); //var_dump($product['ref_ext']);
//var_dump($product['lines'][0]['type']); //var_dump($product['lines'][0]['type']);
$extrafields=new ExtraFields($db);
$extralabels=$extrafields->fetch_name_optionals_label('product',true);
foreach($extrafields->attribute_label as $key=>$label)
{
$key='options_'.$key;
$newobject->array_options[$key]=$product[$key];
}
$db->begin(); $db->begin();
$result=$newobject->create($fuser,0); $result=$newobject->create($fuser,0);
@ -609,6 +653,14 @@ function updateProductOrService($authentication,$product)
//var_dump($product['ref_ext']); //var_dump($product['ref_ext']);
//var_dump($product['lines'][0]['type']); //var_dump($product['lines'][0]['type']);
$extrafields=new ExtraFields($db);
$extralabels=$extrafields->fetch_name_optionals_label('product',true);
foreach($extrafields->attribute_label as $key=>$label)
{
$key='options_'.$key;
$newobject->array_options[$key]=$product[$key];
}
$db->begin(); $db->begin();
$result=$newobject->update($newobject->id,$fuser); $result=$newobject->update($newobject->id,$fuser);
@ -875,6 +927,7 @@ function getProductsForCategory($authentication,$id,$lang='')
{ {
$obj = new Product($db); $obj = new Product($db);
$obj->fetch($rec['fk_'.$field]); $obj->fetch($rec['fk_'.$field]);
$iProduct = 0;
if($obj->status > 0 ) if($obj->status > 0 )
{ {
$dir = (!empty($conf->product->dir_output)?$conf->product->dir_output:$conf->service->dir_output); $dir = (!empty($conf->product->dir_output)?$conf->product->dir_output:$conf->service->dir_output);
@ -912,6 +965,20 @@ function getProductsForCategory($authentication,$id,$lang='')
'dir' => $pdir, 'dir' => $pdir,
'images' => $obj->liste_photos($dir,$nbmax=10) 'images' => $obj->liste_photos($dir,$nbmax=10)
); );
//Retreive all extrafield for thirdsparty
// fetch optionals attributes and labels
$extrafields=new ExtraFields($db);
$extralabels=$extrafields->fetch_name_optionals_label('product',true);
//Get extrafield values
$product->fetch_optionals($obj->id,$extralabels);
foreach($extrafields->attribute_label as $key=>$label)
{
$products[$iProduct]=array_merge($products[$iProduct],array('options_'.$key => $product->array_options['options_'.$key]));
}
$iProduct++;
} }
} }