Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop
This commit is contained in:
commit
96da5bf0e0
@ -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++;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user