<?php
/**
- * SOAP Task Manager Include - this file contains wrapper functions for the SOAP interface
+ * SOAP Tasks Include - this file contains wrapper functions for the SOAP interface
*
* Copyright 2004 (c) GForge, LLC
* http://gforge.org
*
- * @version $Id$
- *
* This file is part of GForge.
*
* GForge is free software; you can redistribute it and/or modify
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
*/
-require_once('common/include/Error.class');
-require_once('common/pm/ProjectGroup.class');
-require_once('common/pm/ProjectGroupFactory.class');
-require_once('common/pm/ProjectTaskFactory.class');
-require_once('common/pm/ProjectTask.class');
-require_once('common/pm/ProjectCategory.class');
-require_once('common/pm/ProjectMessage.class');
+require_once $gfcommon.'include/Error.class.php';
+require_once $gfcommon.'pm/ProjectGroup.class.php';
+require_once $gfcommon.'pm/ProjectGroupFactory.class.php';
+require_once $gfcommon.'pm/ProjectTaskFactory.class.php';
+require_once $gfcommon.'pm/ProjectTask.class.php';
+require_once $gfcommon.'pm/ProjectCategory.class.php';
+//require_once('common/pm/ProjectMessage.class.php');
//
// ProjectGroup
'sequence',
'',
array(
- 'group_project_id' => array('name'=>'group_project_id', 'type' => 'xsd:integer'),
- 'group_id' => array('name'=>'group_id', 'type' => 'xsd:integer'),
+ 'group_project_id' => array('name'=>'group_project_id', 'type' => 'xsd:int'),
+ 'group_id' => array('name'=>'group_id', 'type' => 'xsd:int'),
'name' => array('name'=>'name', 'type' => 'xsd:string'),
'description' => array('name'=>'description', 'type' => 'xsd:string'),
- 'is_public' => array('name'=>'is_public', 'type' => 'xsd:integer'),
+ 'is_public' => array('name'=>'is_public', 'type' => 'xsd:int'),
'send_all_posts_to' => array('name'=>'send_all_posts_to', 'type' => 'xsd:string')
)
);
$server->register(
'getProjectGroups',
- array('session_ser'=>'xsd:string','group_id'=>'xsd:integer'),
+ array('session_ser'=>'xsd:string','group_id'=>'xsd:int'),
array('getProjectGroupsResponse'=>'tns:ArrayOfProjectGroup'),
- $uri
+ $uri,$uri.'#getProjectGroups','rpc','encoded'
+
+);
+
+$server->wsdl->addComplexType(
+ 'TaskDependency',
+ 'complexType',
+ 'struct',
+ 'sequence',
+ '',
+ array(
+ 'task_id' => array('name'=>'task_id', 'type' => 'xsd:int'),
+ 'link_type' => array('name'=>'link_type', 'type' => 'xsd:string')
+ )
+);
+
+$server->wsdl->addComplexType(
+ 'ArrayOfTaskDependency',
+ 'complexType',
+ 'array',
+ '',
+ 'SOAP-ENC:Array',
+ array(),
+ array(array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:TaskDependency[]')),
+ 'tns:TaskDependency'
+);
+
+
+$server->wsdl->addComplexType(
+ 'TaskAssignee',
+ 'complexType',
+ 'struct',
+ 'sequence',
+ '',
+ array(
+ 'user_id' => array('name'=>'user_id', 'type' => 'xsd:int'),
+ 'percent_effort' => array('name'=>'link_type', 'type' => 'xsd:int')
+ )
);
+$server->wsdl->addComplexType(
+ 'ArrayOfTaskAssignee',
+ 'complexType',
+ 'array',
+ '',
+ 'SOAP-ENC:Array',
+ array(),
+ array(array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:TaskAssignee[]')),
+ 'tns:TaskAssignee'
+);
+
+
+
//
// ProjectTasks
//
'sequence',
'',
array(
- 'project_task_id' => array('name'=>'project_task_id', 'type' => 'xsd:integer'),
- 'group_project_id' => array('name'=>'group_project_id', 'type' => 'xsd:integer'),
+ 'project_task_id' => array('name'=>'project_task_id', 'type' => 'xsd:int'),
+ 'group_project_id' => array('name'=>'group_project_id', 'type' => 'xsd:int'),
'summary' => array('name'=>'summary', 'type' => 'xsd:string'),
'details' => array('name'=>'details', 'type' => 'xsd:string'),
- 'percent_complete' => array('name'=>'percent_complete', 'type' => 'xsd:integer'),
- 'priority' => array('name'=>'priority', 'type' => 'xsd:integer'),
- 'hours' => array('name'=>'hours', 'type' => 'xsd:integer'),
- 'start_date' => array('name'=>'start_date', 'type' => 'xsd:integer'),
- 'end_date' => array('name'=>'end_date', 'type' => 'xsd:integer'),
- 'status_id' => array('name'=>'status_id', 'type' => 'xsd:integer'),
- 'category_id' => array('name'=>'category_id', 'type' => 'xsd:integer'),
- 'is_dependent_on_task_id' => array('name'=>'is_dependent_on_task_id', 'type' => 'ArrayOfInteger'),
- 'assigned_to_id' => array('name'=>'assigned_to_id', 'type' => 'ArrayOfInteger')
+ 'percent_complete' => array('name'=>'percent_complete', 'type' => 'xsd:int'),
+ 'priority' => array('name'=>'priority', 'type' => 'xsd:int'),
+ 'hours' => array('name'=>'hours', 'type' => 'xsd:int'),
+ 'start_date' => array('name'=>'start_date', 'type' => 'xsd:int'),
+ 'end_date' => array('name'=>'end_date', 'type' => 'xsd:int'),
+ 'status_id' => array('name'=>'status_id', 'type' => 'xsd:int'),
+ 'category_id' => array('name'=>'category_id', 'type' => 'xsd:int'),
+ 'dependent_on' => array('name'=>'dependent_on', 'type' => 'tns:ArrayOfTaskDependency'),
+ 'assigned_to' => array('name'=>'assigned_to', 'type' => 'tns:ArrayOfTaskAssignee'),
+ 'duration' => array('name'=>'duration', 'type' => 'xsd:int'),
+ 'parent_id' => array('name'=>'parent_id', 'type' => 'xsd:int'),
+ 'sort_id' => array('name'=>'sort_id', 'type' => 'xsd:int'),
)
);
'getProjectTasks',
array(
'session_ser'=>'xsd:string',
- 'group_id'=>'xsd:integer',
- 'group_project_id'=>'xsd:integer',
- 'assigned_to'=>'xsd:integer',
- 'status'=>'xsd:integer',
- 'category'=>'xsd:integer',
- 'group'=>'xsd:integer'),
- array('getProjectTasksResponse'=>'tns:ArrayOfProjectTask'),
- $uri
+ 'group_id'=>'xsd:int',
+ 'group_project_id'=>'xsd:int',
+ 'assigned_to'=>'xsd:int',
+ 'status'=>'xsd:int',
+ 'category'=>'xsd:int',
+ 'group'=>'xsd:int'),
+ array('getProjectTasksResponse'=>'tns:ArrayOfProjectTask'),
+ $uri,$uri.'#getProjectTasks','rpc','encoded'
);
//addProjectTask
'addProjectTask',
array(
'session_ser'=>'xsd:string',
- 'group_id'=>'xsd:integer',
- 'group_project_id'=>'xsd:integer',
+ 'group_id'=>'xsd:int',
+ 'group_project_id'=>'xsd:int',
'summary'=>'xsd:string',
'details'=>'xsd:string',
- 'priority'=>'xsd:integer',
- 'hours'=>'xsd:integer',
- 'start_date'=>'xsd:integer',
- 'end_date'=>'xsd:integer',
- 'category_id'=>'xsd:integer',
- 'percent_complete'=>'xsd:integer',
- 'assigned_to'=>'ArrayOfInteger',
- 'dependent_on'=>'ArrayOfInteger',
- array('addProjectTaskResponse'=>'xsd:integer'),
- $uri
- )
+ 'priority'=>'xsd:int',
+ 'hours'=>'xsd:int',
+ 'start_date'=>'xsd:int',
+ 'end_date'=>'xsd:int',
+ 'category_id'=>'xsd:int',
+ 'percent_complete'=>'xsd:int',
+ 'assigned_to'=>'tns:ArrayOfint',
+ 'dependent_on'=>'tns:ArrayOfint',
+ 'duration'=>'xsd:int',
+ 'parent_id'=>'xsd:int'
+ ),
+ array('addProjectTaskResponse'=>'xsd:int'),
+ $uri,$uri.'#addProjectTask','rpc','encoded'
);
//updateProjectTask
$server->register(
- 'addProjectTask',
+ 'updateProjectTask',
array(
'session_ser'=>'xsd:string',
- 'group_id'=>'xsd:integer',
- 'group_project_id'=>'xsd:integer',
- 'project_task_id'=>'xsd:integer',
+ 'group_id'=>'xsd:int',
+ 'group_project_id'=>'xsd:int',
+ 'project_task_id'=>'xsd:int',
'summary'=>'xsd:string',
'details'=>'xsd:string',
- 'priority'=>'xsd:integer',
- 'hours'=>'xsd:integer',
- 'start_date'=>'xsd:integer',
- 'end_date'=>'xsd:integer',
- 'status_id'=>'xsd:integer',
- 'category_id'=>'xsd:integer',
- 'percent_complete'=>'xsd:integer',
- 'assigned_to'=>'ArrayOfInteger',
- 'dependent_on'=>'ArrayOfInteger',
- 'new_group_project_id'=>'integer',
- array('addProjectTaskResponse'=>'xsd:integer'),
- $uri
- )
+ 'priority'=>'xsd:int',
+ 'hours'=>'xsd:int',
+ 'start_date'=>'xsd:int',
+ 'end_date'=>'xsd:int',
+ 'status_id'=>'xsd:int',
+ 'category_id'=>'xsd:int',
+ 'percent_complete'=>'xsd:int',
+ 'assigned_to'=>'tns:ArrayOfint',
+ 'dependent_on'=>'tns:ArrayOfint',
+ 'new_group_project_id'=>'int',
+ 'duration'=>'xsd:int',
+ 'parent_id'=>'xsd:int'
+ ),
+ array('updateProjectTaskResponse'=>'xsd:int'),
+ $uri,$uri.'#updateProjectTask','rpc','encoded'
);
//
'sequence',
'',
array(
- 'id' => array('name'=>'id', 'type' => 'xsd:integer'),
- 'group_project_id' => array('name'=>'group_project_id', 'type' => 'xsd:integer'),
+/*
+ 'id' => array('name'=>'id', 'type' => 'xsd:int'),
+ 'group_project_id' => array('name'=>'group_project_id', 'type' => 'xsd:int'),
+ 'category_name' => array('name'=>'category_name', 'type' => 'xsd:string')
+*/
+ 'category_id' => array('name'=>'category_id', 'type' => 'xsd:int'),
'category_name' => array('name'=>'category_name', 'type' => 'xsd:string')
)
);
$server->register(
'getProjectTaskCategories',
- array('session_ser'=>'xsd:string','group_id'=>'xsd:integer','group_project_id'=>'xsd:integer'),
+ array('session_ser'=>'xsd:string','group_id'=>'xsd:int','group_project_id'=>'xsd:int'),
array('getProjectTaskCategoriesResponse'=>'tns:ArrayOfProjectCategory'),
- $uri
+ $uri,$uri.'#getProjectTaskCategories','rpc','encoded'
);
//
'sequence',
'',
array(
- 'project_message_id' => array('name'=>'project_message_id', 'type' => 'xsd:integer'),
- 'project_task_id' => array('name'=>'project_task_id', 'type' => 'xsd:integer'),
+ 'project_message_id' => array('name'=>'project_message_id', 'type' => 'xsd:int'),
+ 'project_task_id' => array('name'=>'project_task_id', 'type' => 'xsd:int'),
'body' => array('name'=>'body', 'type' => 'xsd:string'),
- 'postdate' => array('name'=>'postdate', 'type' => 'xsd:integer'),
- 'posted_by' => array('name'=>'posted_by', 'type' => 'xsd:integer')
+ 'postdate' => array('name'=>'postdate', 'type' => 'xsd:int'),
+ 'posted_by' => array('name'=>'posted_by', 'type' => 'xsd:int')
)
);
$server->register(
'getProjectMessages',
array('session_ser'=>'xsd:string',
- 'group_id'=>'xsd:integer',
- 'group_project_id'=>'xsd:integer',
- 'project_task_id'=>'xsd:integer'
+ 'group_id'=>'xsd:int',
+ 'group_project_id'=>'xsd:int',
+ 'project_task_id'=>'xsd:int'
),
array('getProjectMessagesResponse'=>'tns:ArrayOfProjectMessage'),
- $uri
+ $uri,$uri.'#getProjectMessages','rpc','encoded'
);
//add
$server->register(
'addProjectMessage',
array('session_ser'=>'xsd:string',
- 'group_id'=>'xsd:integer',
- 'group_project_id'=>'xsd:integer',
- 'project_task_id'=>'xsd:integer',
+ 'group_id'=>'xsd:int',
+ 'group_project_id'=>'xsd:int',
+ 'project_task_id'=>'xsd:int',
'body'=>'xsd:string'
),
- array('addProjectMessageResponse'=>'xsd:integer'),
- $uri
+ array('addProjectMessageResponse'=>'xsd:int'),
+ $uri,$uri.'#addProjectMessage','rpc','encoded'
);
//
$server->register(
'getProjectTechnicians',
array('session_ser'=>'xsd:string',
- 'group_id'=>'xsd:integer',
- 'group_project_id'=>'xsd:integer'),
+ 'group_id'=>'xsd:int',
+ 'group_project_id'=>'xsd:int'),
array('getProjectTechniciansResponse'=>'tns:ArrayOfUser'),
- $uri
+ $uri,$uri.'#getProjectTechnicians','rpc','encoded'
);
//
// convert array of artifact types to soap data structure
//
-function projectgroups_to_soap($at_arr) {
- for ($i=0; $i<count($at_arr); $i++) {
- if ($at_arr[$i]->isError()) {
+function projectgroups_to_soap($pg_arr) {
+ $return = array();
+ for ($i=0; $i<count($pg_arr); $i++) {
+ if (!is_a($pg_arr[$i], 'ProjectGroup') || $pg_arr[$i]->isError()) {
//skip if error
} else {
$return[]=array(
- 'group_project_id'=>$at_arr->data_array['group_project_id'],
- 'group_id'=>$at_arr->data_array['group_id'],
- 'name'=>$at_arr->data_array['name'],
- 'description'=>$at_arr->data_array['description'],
- 'is_public'=>$at_arr->data_array['is_public'],
- 'send_all_posts_to'=>$at_arr->data_array['send_all_posts_to']
+ 'group_project_id'=>$pg_arr[$i]->data_array['group_project_id'],
+ 'group_id'=>$pg_arr[$i]->data_array['group_id'],
+ 'name'=>$pg_arr[$i]->data_array['project_name'],
+ 'description'=>$pg_arr[$i]->data_array['description'],
+ 'is_public'=>$pg_arr[$i]->data_array['is_public'],
+ 'send_all_posts_to'=>$pg_arr[$i]->data_array['send_all_posts_to']
);
}
}
- return new soapval('tns:ArrayOfProjectGroup', 'ArrayOfProjectGroup', $return);
+ return $return;
}
//
// addProjectTask
//
function &addProjectTask($session_ser,$group_id,$group_project_id,$summary,$details,$priority,
- $hours,$start_date,$end_date,$category_id,$percent_complete,$assigned_arr,$depend_arr) {
+ $hours,$start_date,$end_date,$category_id,$percent_complete,$assigned_arr,$depend_arr,$duration,$parent_id) {
continue_session($session_ser);
$grp =& group_get_object($group_id);
if (!$grp || !is_object($grp)) {
} elseif ($a->isError()) {
return new soap_fault ('','addProjectTask','$a->getErrorMessage()',$a->getErrorMessage());
}
-
+
+ // transform the $depend_arr (which is an array of ints) to include the link type
+ $depend_map = array();
+ foreach ($depend_arr as $depend_id) {
+ $depend_map[$depend_id] = PM_LINK_DEFAULT;
+ }
+
if (!$a->create($summary,$details,$priority,$hours,$start_date,$end_date,
- $category_id,$percent_complete,&$assigned_arr,&$depend_arr)) {
+ $category_id,$percent_complete,$assigned_arr,$depend_map,$duration,$parent_id)) {
return new soap_fault ('','addProjectTask',$a->getErrorMessage(),$a->getErrorMessage());
} else {
- soapval('xsd:integer', 'integer', $a->getID());
+ return $a->getID();
}
}
//
function &updateProjectTask($session_ser,$group_id,$group_project_id,$project_task_id,
$summary,$details,$priority,$hours,$start_date,$end_date,$status_id,$category_id,
- $percent_complete,&$assigned_arr,&$depend_arr,$new_group_project_id) {
+ $percent_complete,$assigned_arr,$depend_arr,$new_group_project_id,$duration,$parent_id) {
continue_session($session_ser);
$grp =& group_get_object($group_id);
if (!$grp || !is_object($grp)) {
} elseif ($a->isError()) {
return new soap_fault ('','updateProjectTask',$a->getErrorMessage(),$a->getErrorMessage());
}
-
+
+ // transform the $depend_arr (which is an array of ints) to include the link type
+ $depend_map = array();
+ foreach ($depend_arr as $depend_id) {
+ $depend_map[$depend_id] = PM_LINK_DEFAULT;
+ }
+
if (!$a->update($summary,$details,$priority,$hours,$start_date,$end_date,$status_id,$category_id,
- $percent_complete,&$assigned_arr,&$depend_arr,$new_group_project_id)) {
+ $percent_complete,$assigned_arr,$depend_map,$new_group_project_id,$duration,$parent_id)) {
return new soap_fault ('','updateProjectTask',$a->getErrorMessage(),$a->getErrorMessage());
} else {
- soapval('xsd:integer', 'integer', $a->getID());
+ return $a->getID();
}
}
} elseif ($at->isError()) {
return new soap_fault ('','getProjectTaskCategories',$at->getErrorMessage(),$at->getErrorMessage());
}
+
+ $cat_arr = $at->getCategoryObjects();
- return projectcategories_to_soap($at->getCategoryObjects());
+ return projectcategories_to_soap($cat_arr);
}
//
// convert array of artifact categories to soap data structure
//
-function projectcategories_to_soap($at_arr) {
- for ($i=0; $i<count($at_arr); $i++) {
- if ($at_arr[$i]->isError()) {
+function projectcategories_to_soap($cat_arr) {
+ $return = array();
+ for ($i=0; $i<count($cat_arr); $i++) {
+ if ($cat_arr[$i]->isError()) {
//skip if error
} else {
$return[]=array(
- 'id'=>$at_arr->data_array['id'],
- 'group_project_id'=>$at_arr->data_array['group_project_id'],
- 'category_name'=>$at_arr->data_array['category_name']
+ 'category_id'=>$cat_arr[$i]->data_array['category_id'],
+ 'category_name'=>$cat_arr[$i]->data_array['category_name']
);
}
}
- return new soapval('tns:ArrayOfArtifactCategory', 'ArrayOfArtifactCategory', $return);
+ return $return;
}
//
return new soap_fault ('','getProjectTasks',$grp->getErrorMessage(),$grp->getErrorMessage());
}
- $at = new ProjectGroup($grp,$group_project_id);
- if (!$at || !is_object($at)) {
+ $pg = new ProjectGroup($grp,$group_project_id);
+ if (!$pg || !is_object($pg)) {
return new soap_fault ('','getProjectTasks','Could Not Get ProjectGroup','Could Not Get ProjectGroup');
- } elseif ($at->isError()) {
- return new soap_fault ('','getProjectTasks',$at->getErrorMessage(),$at->getErrorMessage());
+ } elseif ($pg->isError()) {
+ return new soap_fault ('','getProjectTasks',$pg->getErrorMessage(),$pg->getErrorMessage());
}
- $af = new ProjectTaskFactory($at);
- if (!$af || !is_object($af)) {
+ $ptf = new ProjectTaskFactory($pg);
+ if (!$ptf || !is_object($ptf)) {
return new soap_fault ('','getProjectTasks','Could Not Get ProjectTaskFactory','Could Not Get ProjectTaskFactory');
- } elseif ($af->isError()) {
- return new soap_fault ('','getProjectTasks',$af->getErrorMessage(),$af->getErrorMessage());
+ } elseif ($ptf->isError()) {
+ return new soap_fault ('','getProjectTasks',$ptf->getErrorMessage(),$ptf->getErrorMessage());
}
- $af->setup(0,0,0,0,$assigned_to,$status,$category,$group);
- return projecttasks_to_soap($af->getProjectTasks());
+ $ptf->setup(0,0,0,0,$assigned_to,$status,$category,$group);
+ $tasks_arr = $ptf->getTasks();
+ return projecttasks_to_soap($tasks_arr);
}
//
// convert array of projecttasks to soap data structure
//
-function projecttasks_to_soap($at_arr) {
- for ($i=0; $i<count($at_arr); $i++) {
- if ($at_arr[$i]->isError()) {
+function projecttasks_to_soap($pt_arr) {
+ $return = array();
+
+ for ($i=0; $i<count($pt_arr); $i++) {
+ if ($pt_arr[$i]->isError()) {
//skip if error
} else {
+ // create the dependent_on array
+ $dependent_on = array();
+ $dependent_on_tmp = $pt_arr[$i]->getDependentOn();
+ foreach ($dependent_on_tmp as $dependent_on_id => $link_type) {
+ $dependent_on[] = array("task_id" => $dependent_on_id,
+ "link_type" => $link_type);
+ }
+
+ //build the assigned_to array
+ $assigned_to = array();
+ $assigned_ids = $pt_arr[$i]->getAssignedTo();
+ foreach ($assigned_ids as $assigned_id) {
+ $assigned_to[] = array("user_id" => $assigned_id,
+ "percent_effort" => 0 // TODO: This should be implemented
+ );
+ }
+
+ $sort_id = $pt_arr[$i]->getExternalID();
+ if (!$sort_id) $sort_id=0;
+
$return[]=array(
- 'project_task_id'=>$at_arr[$i]->data_array['project_task_id'],
- 'group_project_id'=>$at_arr[$i]->data_array['group_project_id'],
- 'summary'=>$at_arr[$i]->data_array['summary'],
- 'details'=>$at_arr[$i]->data_array['details'],
- 'percent_complete'=>$at_arr[$i]->data_array['percent_complete'],
- 'priority'=>$at_arr[$i]->data_array['priority'],
- 'hours'=>$at_arr[$i]->data_array['hours'],
- 'start_date'=>$at_arr[$i]->data_array['start_date'],
- 'end_date'=>$at_arr[$i]->data_array['end_date'],
- 'status_id'=>$at_arr[$i]->data_array['status_id'],
- 'category_id'=>$at_arr[$i]->data_array['category_id'],
- 'is_dependent_on_task_id'=>$at_arr[$i]->getDependentOn(),
- 'assigned_to'=>$at_arr[$i]->$at_arr[$i]->getAssignedTo()
+ 'project_task_id'=>$pt_arr[$i]->data_array['project_task_id'],
+ 'group_project_id'=>$pt_arr[$i]->data_array['group_project_id'],
+ 'summary'=>$pt_arr[$i]->data_array['summary'],
+ 'details'=>$pt_arr[$i]->data_array['details'],
+ 'percent_complete'=>$pt_arr[$i]->data_array['percent_complete'],
+ 'priority'=>$pt_arr[$i]->data_array['priority'],
+ 'hours'=>$pt_arr[$i]->data_array['hours'],
+ 'start_date'=>$pt_arr[$i]->data_array['start_date'],
+ 'end_date'=>$pt_arr[$i]->data_array['end_date'],
+ 'status_id'=>$pt_arr[$i]->data_array['status_id'],
+ 'category_id'=>$pt_arr[$i]->data_array['category_id'],
+ 'dependent_on'=>$dependent_on,
+ 'assigned_to'=>$assigned_to,
+ 'duration'=>$pt_arr[$i]->getDuration(),
+ 'parent_id'=>$pt_arr[$i]->getParentID(),
+ 'sort_id'=>$sort_id
);
}
}
- return new soapval('tns:ArrayOfProjectTask', 'ArrayOfProjectTask', $return);
+ return $return;
}
//
);
}
}
- return new soapval('tns:ArrayOfProjectMessage', 'ArrayOfProjectMessage', $return);
+ return $return;
}
//
if (!$am->create($body)) {
return new soap_fault ('','addProjectMessage',$am->getErrorMessage(),$am->getErrorMessage());
} else {
- return new soap_value ('xsd:integer','integer',$am->getID());
+ return $am->getID();
}
}