<?php

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

    protected $table_names = array(
        'CN_AUXILIAR'
    ); //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_AUXILIAR' => array(
            'cod_aux' => 'cod_aux',
            'nombre' => 'nombre',
            'activo' => 'activo',
            'id_cia' => 'id_cia',
            'id_tipo_sub_aux' => 'id_tipo_sub_aux'
        )
    ); //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_AUXILIAR' => array(
            'id_cia' => array('=' => array('id_cia')),
            'id_catalogo' => array('=' => array('id_catalogo')),
            'id_cuenta_mayor' => array('=' => array('id_cuenta_mayor')),
            'id_grupo_cuenta' => array('=' => array('id_grupo_cuenta')),
            'id_clase_cuenta' => array('=' => array('id_clase_cuenta')),
            'rownum,end' => array('<=' => array(20))
        )
    ); //por cada tabla se dan los campos, opcion de filtro y variable que entra para los posibles filtros
    protected $table_field_or_conditions = array(
        'CN_AUXILIAR' => array(
            'cod_aux' => array('LIKE' => array('input', '%')),
            'nombre' => array('LIKE' => array('input', '%')),
        )
    ); // filtros de condicion or

    /*
     * Variables manejo de log
     */
    //true - consulta de menu administracion
    protected $is_admin = false;
    //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) {

        //Revisar que sea post
        //$this->forward404Unless($request->isMethod('post'));
        //Guardar los parametros del request en el log
        $this->logMessage("---BEGIN Logging request");
        foreach ($request->getPostParameters() as $key => $value) {
            $this->logMessage("request[$key] = $value");
        }
        $this->logMessage("--------------------------------------------------/  Ip: " . $_SERVER['REMOTE_ADDR']);
        foreach ($request->getGetParameters() as $key => $value) {
            $this->logMessage("request[$key] = $value");
        }
        $this->logMessage("---END Logging request");

        $records = CN_TABLE::getAll('CN_AUXILIAR');

        $res = array();

        foreach ($records as $record) {

            if ($record->id_catalogo == $request['id_catalogo'] &&
                    $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_auxiliar' => $record['id_auxiliar'],
                    'cod_aux' => $record['cod_aux'],
                    'nombre' => $record['nombre']
                );

                $res[] = $datos;
            }
        }

        $this->list_data = $res;
    }

}
