Add createFromClone function in skeleton

This commit is contained in:
Laurent Destailleur 2008-11-20 21:26:53 +00:00
parent 03010ac770
commit 2a6ad76913

View File

@ -18,13 +18,13 @@
*/ */
/** /**
\file dev/skeletons/skeleton_class.class.php * \file dev/skeletons/skeleton_class.class.php
\ingroup mymodule othermodule1 othermodule2 * \ingroup mymodule othermodule1 othermodule2
\brief This file is an example for a CRUD class file (Create/Read/Update/Delete) * \brief This file is an example for a CRUD class file (Create/Read/Update/Delete)
\version $Id$ * \version $Id$
\author Put author name here * \author Put author name here
\remarks Put here some comments * \remarks Put here some comments
*/ */
// Put here all includes required by your class file // Put here all includes required by your class file
//require_once(DOL_DOCUMENT_ROOT."/commonobject.class.php"); //require_once(DOL_DOCUMENT_ROOT."/commonobject.class.php");
@ -33,10 +33,10 @@
/** /**
\class Skeleton_class * \class Skeleton_class
\brief Put here description of your class * \brief Put here description of your class
\remarks Put here some comments * \remarks Put here some comments
*/ */
class Skeleton_class // extends CommonObject class Skeleton_class // extends CommonObject
{ {
var $db; //!< To store db handler var $db; //!< To store db handler
@ -245,11 +245,11 @@ class Skeleton_class // extends CommonObject
/** /**
* \brief Delete object in database * \brief Delete object in database
* \param user User that delete * \param user User that delete
* \param notrigger 0=launch triggers after, 1=disable triggers * \param notrigger 0=launch triggers after, 1=disable triggers
* \return int <0 if KO, >0 if OK * \return int <0 if KO, >0 if OK
*/ */
function delete($user, $notrigger=0) function delete($user, $notrigger=0)
{ {
global $conf, $langs; global $conf, $langs;
@ -298,7 +298,63 @@ class Skeleton_class // extends CommonObject
} }
} }
/**
* \brief Load an object from its id and create a new one in database
* \param fromid Id of object to clone
* \param invertdetail Reverse sign of amounts for lines
* \return int New id of clone
*/
function createFromClone($fromid,$invertdetail=0)
{
global $user,$langs;
$error=0;
$object=new Skeleton_class($this->db);
$this->db->begin();
// Load source object
$object->fetch($fromid);
$object->id=0;
$object->statut=0;
// Clear fields
// ...
// Create clone
$result=$object->create($user);
// Other options
if ($result < 0)
{
$this->error=$object->error;
$error++;
}
if (! $error)
{
}
// End
if (! $error)
{
$this->db->commit();
return $object->id;
}
else
{
$this->db->rollback();
return -1;
}
}
/** /**
* \brief Initialise object with example values * \brief Initialise object with example values
* \remarks id must be 0 if object instance is a specimen. * \remarks id must be 0 if object instance is a specimen.