]> git.llucax.com Git - mecon/samurai.git/blobdiff - src/www/include/lib/samurai/Sistema.php
- Completado hasta el cambio de la estructura de directorios
[mecon/samurai.git] / src / www / include / lib / samurai / Sistema.php
index 638ad4e95de6df0797ded6a433bfa70a9c44bbda..633fc0e916bcdfe204aba35f8b6b118aa10225e8 100644 (file)
@@ -26,7 +26,7 @@
 
 #require_once 'PEAR.php';
 require_once 'Samurai_DB.php';
-
+require_once 'Date.php';
 
 // +X2C Class 209 :Sistema
 /**
@@ -107,25 +107,33 @@ class Sistema {
      */
     var $_db;
 
+    /**
+     * Login del responsable de los ultimos cambios del sistema.
+     *
+     * @var    string $responsable
+     *
+     * @access private
+     */
+    var $_responsable;
+
     // ~X2C
 
     // +X2C Operation 243
     /**
-     * Constructor. Si recibe como parametro el identificador busca en la DB los datos. No hay metodo que setee el id del sistema puesto que es un valor autoincrementable en la DB
+     * Constructor. Si recibe como parametro el identificador busca en la DB los datos.
      *
-     * @param  int $id Identificador del sistema.
      * @param  Samurai_DB &$db Objeto Conexion
+     * @param  int $id Identificador del sistema
      *
      * @return void
      *
      * @access public
      */
-    function Sistema($id = null, &$db) // ~X2C
+    function Sistema(&$db, $id = null) // ~X2C
     {
+        $this->_db = $db;
+        $this->_id = $id;
         if (!is_null($id)) {
-            $this->_id = $id;
-            
-            $this->_db = $db;
             $this->_obtenerDatosDb();
         }
         else {
@@ -135,6 +143,7 @@ class Sistema {
             $this->setFechaFin();
             $this->setFechaImplementacion();
             $this->setContacto();
+            $this->setResponsable();
         }
     }
     // -X2C
@@ -185,13 +194,18 @@ class Sistema {
     /**
      * Devuelve la fecha de inicio del sistema.
      *
-     * @return date
+     * @return &date
      *
      * @access public
      */
-    function getFechaInicio() // ~X2C
-    {
-        return $this->_fecha_inicio;
+    function &getFechaInicio() // ~X2C
+    {        
+        if ($this->_fecha_inicio) {
+            return new Date ($this->_fecha_inicio.' 00:00:00');
+        }
+        else {
+            return null;
+        }
     }
     // -X2C
 
@@ -199,13 +213,18 @@ class Sistema {
     /**
      * Devuelve la fecha de finalizacion del sistema.
      *
-     * @return date
+     * @return &date
      *
      * @access public
      */
-    function getFechaFin() // ~X2C
+    function &getFechaFin() // ~X2C
     {
-        return $this->_fecha_fin;
+        if ($this->_fecha_fin) {
+            return new Date ($this->_fecha_fin.' 00:00:00');
+        }
+        else {
+            return null;
+        }
     }
     // -X2C
 
@@ -213,13 +232,18 @@ class Sistema {
     /**
      * Devuelve la fecha de implementacion del sistema.
      *
-     * @return date
+     * @return &date
      *
      * @access public
      */
-    function getFechaImplementacion() // ~X2C
+    function &getFechaImplementacion() // ~X2C
     {
-        return $this->_fecha_implementacion;
+        if ($this->_fecha_implementacion) {
+            return new Date ($this->_fecha_implementacion.' 00:00:00');
+        }
+        else {
+            return null;
+        }
     }
     // -X2C
 
@@ -281,7 +305,12 @@ class Sistema {
      */
     function setFechaInicio($fecha = null) // ~X2C
     {
-        $this->_fecha_inicio = $fecha;
+        if ($fecha && $fecha != '0000-00-00') {
+            $this->_fecha_inicio = $fecha;
+        }
+        else {
+            $this->_fecha_inicio = null;
+        }
     }
     // -X2C
 
@@ -297,7 +326,12 @@ class Sistema {
      */
     function setFechaFin($fecha = null) // ~X2C
     {
-        $this->_fecha_fin = $fecha;
+        if ($fecha && $fecha != '0000-00-00') {
+            $this->_fecha_fin = $fecha;
+        }
+        else {
+            $this->_fecha_fin = null;
+        }
     }
     // -X2C
 
@@ -313,7 +347,13 @@ class Sistema {
      */
     function setFechaImplementacion($fecha = null) // ~X2C
     {
-        $this->_fecha_implementacion = $fecha;
+        if ($fecha && $fecha != '0000-00-00') {
+            $this->_fecha_implementacion = $fecha;
+        }
+        else {
+            $this->_fecha_implementacion = null;
+        }
+
     }
     // -X2C
 
@@ -335,6 +375,7 @@ class Sistema {
 
     // +X2C Operation 263
     /**
+     * Obtiene los datos del sistema de la DB.
      *
      * @return void
      *
@@ -347,17 +388,131 @@ class Sistema {
         $dbh = $this->_db->prepare($tmp);
         $tmp = array ($this->_id);
         $res = $this->_db->execute($dbh,$tmp);        
+
         if ($re  = $res->fetchRow(DB_FETCHMODE_ASSOC)) {
-            $this->setNombre($re['nombre_sistema']);
-            $this->setDescripcion($re['desc_sistema']);
-            $this->setFechaInicio($re['fecha_inicio']);
-            $this->setFechaFin($re['fecha_fin']);
-            $this->setFechaImplementacion($re['fecha_implementacion']);
-            $this->setContacto($re['contacto']);
+
+            if (isset($re['nombre_sistema'])) {
+                $this->setNombre($re['nombre_sistema']);
+            }
+            else {
+                $this->setNombre();
+            }
+            if (isset($re['desc_sistema'])) {
+               $this->setDescripcion($re['desc_sistema']);
+            }
+            else {
+                $this->setDescripcion();
+            }
+            if (isset($re['fecha_inicio'])) {
+                $this->setFechaInicio($re['fecha_inicio']);
+            }
+            else {
+                $this->setFechaInicio();
+            }
+            if (isset($re['fecha_fin'])) {
+                $this->setFechaFin($re['fecha_fin']);
+            }
+            else {
+                $this->setFechaFin();
+            }
+            if (isset($re['fecha_implementacion'])) {
+                $this->setFechaImplementacion($re['fecha_implementacion']);
+            }
+            else {
+                $this->setFechaImplementacion();
+            }
+            if (isset($re['contacto'])) {
+                $this->setContacto($re['contacto']);
+            }
+            else {
+                $this->setContacto();
+            }
+            if (isset($re['responsable'])) {
+                $this->setresponsable($re['responsable']);
+            }
+            else {
+                $this->setResponsable();
+            }
+     }
+    }
+    // -X2C
+
+    // +X2C Operation 288
+    /**
+     * Guarda la informacion del sistema en la base.
+     *
+     * @param  string $accion Accion a realizar. Grabar, modificar o eliminar
+     *
+     * @return void
+     *
+     * @access public
+     */
+    function guardarDatos($accion = grabar) // ~X2C
+    {
+        $sql = include 'Sistema/consultas.php'; //Incluyo las consultas de este objeto nada mas.
+
+        $idSistema            = ($this->_id != '')?$this->_id:null;
+        $fecha_inicio         = $this->getFechaInicio();
+        $fecha_fin            = $this->getFechaFin();
+        $fecha_implementacion = $this->getFechaImplementacion();
+
+        $accion = strtolower($accion);
+        switch ($accion)  {
+            case 'grabar':
+            case 'modificar':
+                $tmp = $sql['insert_update_sistema'];
+                $dbh = $this->_db->prepare($tmp);
+                $tmp = array (  $idSistema,
+                                $this->getNombre(),
+                                $this->getDescripcion(),
+                                $fecha_inicio         ? $fecha_inicio->format("%Y-%m-%d")         : null,
+                                $fecha_fin            ? $fecha_fin->format("%Y-%m-%d")            : null,
+                                $fecha_implementacion ? $fecha_implementacion->format("%Y-%m-%d") : null,
+                                $this->getContacto(),
+                                $_SESSION['samurai']['login']
+                        );
+                $res = $this->_db->execute($dbh,$tmp);
+                break;
+            case 'eliminar':
+                $tmp = $sql['borrar_sistema'];
+                $dbh = $this->_db->prepare($tmp);
+                $tmp = array ($idSistema);
+                $res = $this->_db->execute($dbh,$tmp);
+                break;
         }
     }
     // -X2C
 
+    // +X2C Operation 290
+    /**
+     * Devuelve el login del responsable de los ultimos cambios
+     *
+     * @return string
+     *
+     * @access public
+     */
+    function getResponsable() // ~X2C
+    {
+        return $this->_responsable;
+    }
+    // -X2C
+
+    // +X2C Operation 291
+    /**
+     * Setea el login del responsable de los ultimos cambios del sistema
+     *
+     * @param  string $responsable String con el login del responsable del cambio
+     *
+     * @return void
+     *
+     * @access public
+     */
+    function setResponsable($responsable = null) // ~X2C
+    {
+        $this->_responsable = $responsable;
+    }
+    // -X2C
+
 } // -X2C Class :Sistema
 
-?>
\ No newline at end of file
+?>