<?php

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

    protected $table_names = array(
        'CN_CONTROL_CAD_TER',
        'CN_CENTRO_OPERACION',
        'CN_PERIODO_CONTABLE',
        'CN_TIPO_COMPROBANTE',
        'CN_DOCUMENTO',
        'CN_CONTROL_CAD_NUM_MOV'
//        ,
//        'CN_TIPO_COMPROBANTE_TOT'
    ); //tablas para construir el sql, por medio de joins
    protected $table_join_ids = array(
        'CN_CENTRO_OPERACION' =>
        array(
            'id_cia' => 'CN_CONTROL_CAD_TER',
            'id_cen_op' => 'CN_CONTROL_CAD_TER'
        ),
        'CN_PERIODO_CONTABLE' => array(
            'id_periodo_contable' => 'CN_CONTROL_CAD_TER'
        ),
        'CN_TIPO_COMPROBANTE' => array(
            'id_tipo_comprobante' => 'CN_CONTROL_CAD_TER'
        ),
        'CN_DOCUMENTO, LEFT' => array(
            'id_cia' => 'CN_CONTROL_CAD_TER',
            'id_cad' => 'CN_CONTROL_CAD_TER',
            'id_cen_op' => 'CN_CONTROL_CAD_TER',
            'id_vigencia' => 'CN_CONTROL_CAD_TER'
        ),
        'CN_CONTROL_CAD_NUM_MOV, LEFT' => array(
            'id_cia' => 'CN_CONTROL_CAD_TER',
            'id_cad' => 'CN_CONTROL_CAD_TER',
            'id_cen_op' => 'CN_CONTROL_CAD_TER',
            'id_vigencia' => 'CN_CONTROL_CAD_TER'
        )
//        ,
//        'CN_TIPO_COMPROBANTE_TOT,LEFT' => array(
//            'FECHA_CAD' => 'CN_CONTROL_CAD_TER',
//            'ID_TIPO_COMPROBANTE' => 'CN_CONTROL_CAD_TER',
//            'ID_CEN_OP' => 'CN_CONTROL_CAD_TER',
//            'id_cia' => 'CN_CONTROL_CAD_TER'
//        )
    ); //si posee tablas para joins, identificar la relacion de los campos con las tablas
    protected $fields = array(
        'CN_CONTROL_CAD_TER' =>
        array(
            'id_cad' => 'id_cad',
            'id_vigencia' => 'id_vigencia',
            'id_cen_op' => 'id_cen_op',
            'id_cia' => 'id_cia',
            'id_periodo_contable' => 'id_periodo_contable',
            'id_tipo_comprobante' => 'id_tipo_comprobante',
            'fecha_cad' => 'fecha_cad',
            'tot_debito' => 'tot_debito',
            'tot_credito' => 'tot_credito',
            'tot_debito,-,tot_credito' => 'diferencia',
            'id_ter_genero' => 'id_ter_genero',
            'nombre_genero' => 'nombre_genero',
            'id_ter_reviso' => 'id_ter_reviso',
            'nombre_reviso' => 'nombre_reviso',
            'id_ter_aprobo' => 'id_ter_aprobo',
            'nombre_aprobo' => 'nombre_aprobo'
        ),
        'CN_CENTRO_OPERACION' =>
        array(
            'id_cen_op,||, - ,||,nom_cen_op' => 'nom_cen_op'
        ),
        'CN_PERIODO_CONTABLE' => array(
            'nom_periodo' => 'nom_periodo'
        ),
        'CN_TIPO_COMPROBANTE' => array(
            'nom_corto,||, - ,||,nom_tipo_comprobante' => 'completo'
        ),
        'CN_CONTROL_CAD_NUM_MOV' => array(
            'num_mov' => 'num_mov'
        )
//        ,
//        'CN_TIPO_COMPROBANTE_TOT' =>
//        array(
//            'tot_debito' => 'tot_debito',
//            'tot_credito' => 'tot_credito'
//        )
    ); //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_CONTROL_CAD_TER' =>
        array(
            'id_cia' => array('=' => array('id_cia')),
            'id_cen_op' => array('=' => array('id_cen_op')),
            'id_tipo_comprobante' => array('=' => array('id_tipo_comprobante')),
            'id_vigencia' => array('=' => array('id_vigencia')),
            'id_periodo_contable' => array('=' => array('id_periodo_contable')),
            'fecha_cad' => array('BETWEEN' => array('di_ini', 'di_fin')),
            'fecha_cad2' => array('=' => array('fecha_cad2')),
            'fecha_cad,a' => array('=' => array('fecha_cad')),
            'rownum,start' => array('>' => array('_startRow')),
            'rownum,end' => array('<=' => array('_endRow'))
        ),
        'CN_DOCUMENTO' =>
        array(
            'id_td' => array('=' => array('id_td')),
            'id_documento' => array('=' => array('id_documento'))
        )
    ); //por cada tabla se dan los campos, opcion de filtro y variable que entra para los posibles filtros
    protected $table_field_or_conditions = null; // filtros de condicion or
    protected $query_qualifier = 'DISTINCT'; //Variable para el sql para eliminar filas repetidas
    protected $fields_orderBy = array(
        'fecha_cad','id_cad'
    ); //campos para el ordenamiento de la consulta


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



    /*
     * ------------VARIABLES PARA SERVICIOS DE SUMATORIA DE CAMPOS - SUM
     */
    protected $summatory_data = array(
        'CN_CONTROL_CAD_TER' => array(
            'fields' => array('tot_debito', 'tot_credito', 'diferencia'),
            'labels' => array('nom_tipo_comprobante, Total')
        ),
        'CN_CONTROL_CAD_NUM_MOV' => array(
            'fields' => array('num_mov')
        )
    );


    /*
     * ------------VARIABLES PARA SERVICIOS CRUD
     */
    protected $id_name = 'id_cad'; //identificador de la tabla
    protected $id_names = array('id_cad', 'id_vigencia', 'id_cen_op'); //llave primaria
    protected $field_names = array('id_periodo_contable', 'id_tipo_comprobante', 'fecha_cad', 'id_ter_genero', 'id_ter_reviso', 'id_ter_aprobo'); //campos de la tabla, sin la llave primaria
    protected $table_name = 'CN_CONTROL_CAD'; //tabla en la cual se aplican los cambios
    protected $check_exists = array('id_vigencia', 'id_cen_op', 'id_periodo_contable', 'id_tipo_comprobante', 'fecha_cad', 'id_cia'); //para verificar que no exista la combinacion de estos campos en la tabla
    protected $has_activo = false; //si posee campo en la tabla de nombre activo
    protected $has_vigencia = true; //si posee vigencia
    protected $has_cen_op = true; //si posee centro de operacion
    protected $has_id_cia = true; //si posee compañia


    /*
     * Manejo de registro log
     */
    protected $id_unico = 'id_cad'; //identificador unico de la tabla
    protected $has_check_exists = true; //para acutalizar registro si valida campos en check_exists

}