<?php

/**
 * firma actions.
 *
 * @package    contab2
 * @subpackage firma
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:06:44Z Kris.Wallsmith $
 */
class firmaActions extends sfAPIActions {
    /*
     * ------------VARIABLES PARA SERVICIOS CRUD
     */

    protected $id_name = 'id_firma'; //identificador de la tabla
    protected $id_names = array('id_firma'); //llave primaria
    protected $field_names = array('nombre', 'documento', 'cargo', 'numero', 'anexo', 'activo', 'orden'); //campos de la tabla, sin la llave primaria
    protected $table_name = 'CN_FIRMA';  //variable activo en la tbla//tabla en la cual se aplican los cambios
    protected $has_activo = true; //si posee campo en la tabla de nombre activo
    protected $has_vigencia = false; //si posee vigencia
    protected $has_cen_op = false; //si posee centro de operacion
    protected $has_id_cia = true; //si posee compañia
    /*
     * Manejo de registro log
     */
    protected $id_unico = 'id_firma'; //identificador unico de la tabla

//    protected $has_numero = true; //para validar y retornar null- error en el codigo

    /**
     * Pueba Executes list action
     *
     * @param sfRequest $request A request object
     */

    public function executeList2(sfWebRequest $request) {

//Guardar los parametros del request en el log
        $this->logMessage("---BEGIN Logging request");
        foreach ($request->getPostParameters() as $key => $value) {
            $this->logMessage("request[$key] = $value");
        }
        foreach ($request->getGetParameters() as $key => $value) {
            $this->logMessage("request[$key] = $value");
        }
        $this->logMessage("---END Logging request");


        /*
         * obtener variables del request
         */
//filtros obligatorios
        $cia = $request['id_cia'];


        /**
         * estas consultas funcionan sin crear las clases que manejan el doctrine
         */
//sentencia sql
        $sql = <<<EOD
select * from CN_FIRMA fir
join CN_INFORME_FIRMA inf
on fir.ID_FIRMA = inf.ID_FIRMA
and fir.ID_CIA = inf.ID_CIA
where fir.ACTIVO like '1%'
and fir.id_cia = $cia
order by
inf.comando_informe,
fir.ORDEN
EOD;
//ejecutar sql
        $records = CN_TABLE::executeSQL($sql);

        /*
         * conexion a base de datos websafiERP
         */
//        $records = array();
//        //connexion a la base de datos
//        $conn = oci_connect("websafiERP", "Sistemas", "192.168.2.9/websafiERP");
//        //consulta sql a ejecutar
//        $sql_banco = "SELECT * FROM usuario";
//        //ejecutar sql para la connexion
//        $stid = oci_parse($conn, $sql_banco);
//        $exec = oci_execute($stid);
////        $i = 1;
//        //recorrer la salida(filas) y guardar totdos en un solo array
//        while ($row = oci_fetch_array($stid, OCI_ASSOC + OCI_RETURN_NULLS)) {
//            //ID_BN en websafi TESORERIA
////                echo $id_ts_bn= $row['username'];
////            echo $row . "-" . $i++;
////            foreach ($row as $key => $value) {
////                echo $key . "-" . $value;
////            }
//            $records[] = $row;
//        }
//        //cerrar conexion
//        oci_close($conn);
//validar si hay datos
        if (count($records) > 0) {
            $this->list_data = $records;
        } else {
            $this->list_data = array();
        }
    }

    /**
     * Pueba servicio add de informes
     *
     * @param sfRequest $request A request object
     */
    public function executeAdd2(sfWebRequest $request) {

//Guardar los parametros del request en el log
        $this->logMessage("---BEGIN Logging request");
        foreach ($request->getPostParameters() as $key => $value) {
            $this->logMessage("request[$key] = $value");
        }
        foreach ($request->getGetParameters() as $key => $value) {
            $this->logMessage("request[$key] = $value");
        }
        $this->logMessage("---END Logging request");


        /*
         * obtener variables del request
         */
        //filtros obligatorios
        $cia = $request['id_cia'];



        /*
         * metodo para control de firmas e informes
         */

        //sql para verificar si esta creada la relacion informe firma
        $sql = <<<EOD
select * from CN_INFORME_FIRMA
where ID_CIA = $cia
and COMANDO_INFORME = 'cb_balgen'
and ID_FIRMA = 12
EOD;

        //ejecutar sql
        $records = CN_TABLE::executeSQL($sql);

        //validar si hay relacion de infomre y firma
        if (count($records) > 0) {

            $id_informe_firma = $records[0]['id_informe_firma'];

            //sql para eliminar si esta creada la relacion informe firma
            $sql = <<<EOD
DELETE FROM CN_INFORME_FIRMA WHERE ID_INFORME_FIRMA = $id_informe_firma
EOD;

            //ejecutar sql
            $records = CN_TABLE::executeSQL($sql);
        } else {

            /*
             *  insertar nueva relacion informe y firma
             */
//  ID_INFORME_FIRMA     ID_CIA     COMANDO_INFORME     ID_FIRMA
            $sql = <<<EOD
INSERT INTO CN_INFORME_FIRMA VALUES (
(SELECT nvl(MAX(ID_INFORME_FIRMA),0) + 1
FROM CN_INFORME_FIRMA
WHERE ID_CIA = $cia),
$cia, 'cb_balgen', 12 )
EOD;

            //ejecutar sql
            $records = CN_TABLE::executeSQL($sql);
        }


        //validar si hay datos
        if (count($records) > 0) {
            $this->list_data = $records;
        } else {
            $this->list_data = array();
        }
    }

}
