<?php

/**
 * cat_short actions.
 *
 * @package    contab2
 * @subpackage cat_short
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class cat_shortActions extends sfQuery {
    /*
     * ------------VARIABLES PARA SERVICIOS DE CONSULTA - LIST
     */

    protected $table_names = array(
        'CN_CATALOGO'
    ); //tablas para construir el sql, por medio de joins
    protected $table_join_ids = array(); //si posee tablas para joins, identificar la relacion de los campos con las tablas
    protected $fields = array(
        'CN_CATALOGO' => array(
            'id_catalogo' => 'id_catalogo',
            'digitos' => 'digitos',
            'nombre' => 'nombre',
            'nom_corto' => 'nom_corto',
            'id_cia' => 'id_cia',
        )
    ); //por cada tabla especificar los campos del select

    /*
     * OPCIONES DE FILTRO:
     *
     * LIKEALLPLUS- busqueda comparativa de la cadena dividida por los espacios en blanco en cualquier posición
     * LIKEALL - busqueda comparativa de la cadena en cualquier posición
     * LIKE - busqueda en la cadena que inicie por la variable de filtro
     *
     * rownum,start - rownum,end / estos campos para uso del Grid live GWT, numero fijo de filas de consulta
     */
    protected $table_field_conditions = array(
        'CN_CATALOGO' => array(
            'id_cuenta_mayor' => array('=' => array('id_cuenta_mayor')),
            'id_grupo_cuenta' => array('=' => array('id_grupo_cuenta')),
            'id_clase_cuenta' => array('=' => array('id_clase_cuenta')),
            'id_cia' => array('=' => array('id_cia')),
//            'rownum,end' => array('<=' => array(20))
        )
    ); //por cada tabla se dan los campos, opcion de filtro y variable que entra para los posibles filtros

    /*
     * Variables manejo de log
     */
    //true - consulta de menu administracion
    protected $is_admin = true;
    //true - la tabla principal de busqueda no es una vista
    protected $is_filtro = true;

    /**
     * Executes index action
     * para validar que siempre tengan valores de cuentas superiores
     *
     * @param sfRequest $request A request object
     *
     */
    public function executeList(sfWebRequest $request) {


        /*
         * sql que trae el balance
         * por los filtros, para totalizar las filas
         */
        $sql = 'select * from CN_CATALOGO natural join CN_ESTADO_CATALOGO';

        //ejecuta el sql y se obtiene las filas de la consulta
        $records = CN_TABLE::executeSQL($sql);

//        $records = CN_TABLE::getAll('CN_CATALOGO');


        $res = array();

        foreach ($records as $record) {

            //validar que filtre por clase , grupo , cuenta mayor
            //se modifico join con el estado del catalogo - 26092011
//            if ($record->id_cuenta_mayor == $request['id_cuenta_mayor'] &&
//                    $record->id_grupo_cuenta == $request['id_grupo_cuenta'] &&
//                    $record->id_clase_cuenta == $request['id_clase_cuenta'] &&
//                    $record->id_cia == $request['id_cia']) {
            if ($record['id_cuenta_mayor'] == $request['id_cuenta_mayor'] &&
                $record['id_grupo_cuenta'] == $request['id_grupo_cuenta'] &&
                $record['id_clase_cuenta'] == $request['id_clase_cuenta'] &&
                $record['id_cia'] == $request['id_cia']) {
                $datos = array(
                    'id_catalogo' => $record['id_catalogo'],
                    'digitos' => $record['digitos'],
                    'nom_corto' => $record['nom_corto'],
                    'usa_tercero' => $record['usa_tercero'],
                    'usa_auxiliar' => $record['usa_auxiliar'],

                );

                $res[] = $datos;
            }
        }

        $this->list_data = $res;
    }

}
