<?php

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

    protected $table_names = array(
        'CN_CATALOGO',
        'CN_CUENTA_MAYOR',
        'CN_GRUPO_CUENTA',
        'CN_CLASE_CUENTA',
        'CN_ESTADO_CATALOGO',
        'CN_TIPO_RETENCION'
    ); //tablas para construir el sql, por medio de joins
    protected $table_join_ids = array(
        'CN_CUENTA_MAYOR' =>
        array(
            'id_cuenta_mayor' => 'CN_CATALOGO',
            'id_cia' => 'CN_CATALOGO'
        ),
        'CN_GRUPO_CUENTA' =>
        array(
            'id_grupo_cuenta' => 'CN_CUENTA_MAYOR',
            'id_cia' => 'CN_CUENTA_MAYOR'
        ),
        'CN_CLASE_CUENTA' =>
        array(
            'id_clase_cuenta' => 'CN_GRUPO_CUENTA',
            'id_cia' => 'CN_GRUPO_CUENTA'
        ),
        'CN_ESTADO_CATALOGO' =>
        array(
            'id_estado_catalogo' => 'CN_CATALOGO'
        ),
        'CN_TIPO_RETENCION,LEFT' =>
        array(
            'id_tipo_retencion' => 'CN_CATALOGO'
        )
    ); //si posee tablas para joins, identificar la relacion de los campos con las tablas
    protected $fields = array(
        'CN_CATALOGO' =>
        array(
            'id_catalogo' => 'id_catalogo',
            'id_cuenta_mayor' => 'id_cuenta_mayor',
            'id_grupo_cuenta' => 'id_grupo_cuenta',
            'id_clase_cuenta' => 'id_clase_cuenta',
            'id_cia' => 'id_cia',
            'id_estado_catalogo' => 'id_estado_catalogo',
            'id_tipo_retencion' => 'id_tipo_retencion',
            'digitos' => 'digitos',
            'nombre' => 'nombre',
            'nom_corto' => 'nom_corto',
            'activo' => 'activo',
            'corriente' => 'corriente',
            'aplica_reciproca' => 'aplica_reciproca'
        ),
        'CN_CUENTA_MAYOR' =>
        array(
            'digitos' => 'may_dig'
        ),
        'CN_GRUPO_CUENTA' =>
        array(
            'digito' => 'gru_dig'
        ),
        'CN_CLASE_CUENTA' =>
        array(
            'digito' => 'cla_dig'
        ),
        'CN_ESTADO_CATALOGO' =>
        array(
            'usa_tercero' => 'usa_tercero',
            'usa_auxiliar' => 'usa_auxiliar',
            'usa_cen_cto' => 'usa_cen_cto',
            'usa_sub_cen_cto' => 'usa_sub_cen_cto'
        )
        ,
        'CN_TIPO_RETENCION' =>
        array(
            'nombre' => 'retencion',
        )
    ); //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 = 'CN_CATALOGO';
    protected $field_conditions = array(
        'CN_CATALOGO' =>
        array(
            'id_cia'
        ),
        'CN_CUENTA_MAYOR' =>
        array(
            'digitos'
        )
    ); //condiciones de campos
    protected $fields_orderBy = array(
        'cla_dig', 'gru_dig', 'may_dig', 'digitos'
    ); //campos para el ordenamiento de la consulta

    /*
     * 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;


    /*
     * ------------VARIABLES PARA SERVICIOS CRUD
     */
    protected $id_name = 'id_catalogo'; //identificador de la tabla
    protected $id_names = array('id_catalogo', 'id_cuenta_mayor', 'id_grupo_cuenta', 'id_clase_cuenta'); //llave primaria
    protected $field_names = array('id_tipo_retencion', 'id_estado_catalogo', 'digitos', 'nombre', 'nom_corto',
        'corriente', 'activo', 'aplica_reciproca'); //campos de la tabla, sin la llave primaria
    protected $table_name = 'CN_CATALOGO'; //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

    /*
     * Valores para los campos de otras tablas
     */
    protected $other_tab_uq_fields = array('usa_tercero,usa_auxiliar,usa_cen_cto,usa_sub_cen_cto' => array('CN_ESTADO_CATALOGO' => array('id_estado_catalogo')));

    /*
     * Manejo de registro log
     */
    protected $id_unico = 'id_catalogo'; //identificador unico de la tabla

    /*
     * variable para validar que entre en la consulta sin importar que
     */
    protected $forzar_entrada = true;

}
