// +X2C Operation 459
/**
* @param DB $db DB donde guardar.
+ * @param bool $nuevo Si es true, se fuerza a guardar el servicio como nuevo.
*
* @return PEAR_Error
* @access public
*/
- function guardar($db) // ~X2C
+ function guardar($db, $nuevo = false) // ~X2C
{
$sistema = intval($this->sistema);
$where = '';
'link_ayuda' => $this->link_ayuda,
'habilitado' => $this->habilitado ? 1 : 0,
);
- // FIXME - buscar otra forma de distinguir entre INSERT y UPDATE.
- if ($sistema) {
+ if ($sistema and !$nuevo) {
$accion = DB_AUTOQUERY_UPDATE;
$where = "sistema = $sistema";
} else {
- $accion = DB_AUTOQUERY_INSERT;
- $sistema = $db->nextId('sistema');
- if (DB::isError($sistema)) {
- return $sistema;
+ $accion = DB_AUTOQUERY_INSERT;
+ // Si no tiene ID, le asigno uno nuevo.
+ if (!$sistema) {
+ $sistema = $db->nextId('sistema');
+ if (DB::isError($sistema)) {
+ return $sistema;
+ }
+ $this->sistema = $sistema;
}
- // Asigno el nuevo id de sistema.
- $this->sistema = $sistema;
$datos['sistema'] = $sistema;
}
$res = $db->autoExecute('sistema', $datos, $accion, $where);