<?php

/**
 * qcat_vigper_mov actions.
 *
 * @package    contab2
 * @subpackage qcat_vigper_mov
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class qcat_vigper_movActions extends sfQuery {

    protected $table_names = array(
        'CN_MOVIMIENTO_VIGPER',
        'CN_PERIODO_CONTABLE',
        'CN_BALANCE_DETALLADO_CATALOGO'
    );
    protected $table_join_ids = array(
        'CN_PERIODO_CONTABLE' => array(
            'id_periodo_contable' => 'CN_MOVIMIENTO_VIGPER'
        ),
        'CN_BALANCE_DETALLADO_CATALOGO' => array(
//            'id_mae_ter' => 'CN_MOVIMIENTO_VIGPER',
            'id_auxiliar' => 'CN_MOVIMIENTO_VIGPER',
            'id_catalogo' => 'CN_MOVIMIENTO_VIGPER',
            'id_cuenta_mayor' => 'CN_MOVIMIENTO_VIGPER',
            'id_grupo_cuenta' => 'CN_MOVIMIENTO_VIGPER',
            'id_clase_cuenta' => 'CN_MOVIMIENTO_VIGPER',
            'id_periodo_contable' => 'CN_MOVIMIENTO_VIGPER',
            'id_vigencia' => 'CN_MOVIMIENTO_VIGPER',
            'id_cen_op' => 'CN_MOVIMIENTO_VIGPER',
            'id_cia' => 'CN_MOVIMIENTO_VIGPER'
        )
    );
    protected $fields = array(
        'CN_MOVIMIENTO_VIGPER' => array(
            'id_cia' => 'id_cia',
            'id_cen_op' => 'id_cen_op',
            'id_vigencia' => 'id_vigencia',
            'id_periodo_contable' => 'id_periodo_contable',
            'id_auxiliar' => 'id_auxiliar',
            'id_mae_ter' => 'id_mae_ter',
            'id_catalogo' => 'id_catalogo',
            'id_cuenta_mayor' => 'id_cuenta_mayor',
            'id_grupo_cuenta' => 'id_grupo_cuenta',
            'id_clase_cuenta' => 'id_clase_cuenta'
        ),
        'CN_PERIODO_CONTABLE' => array(
            'nom_periodo' => 'nom_periodo'
        ),
        'CN_BALANCE_DETALLADO_CATALOGO' => array(
            'saldo_anterior' => 'saldo_anterior',
            'mvto_debito' => 'mvto_debito',
            'mvto_credito' => 'mvto_credito',
            'nuevo_saldo' => 'nuevo_saldo'
        )
    );
    protected $table_field_conditions = array(
        'CN_MOVIMIENTO_VIGPER' => array(
            'id_cia' => array('=' => array('id_cia')),
            'id_cen_op' => array('=' => array('id_cen_op')),
            'vig_per' => array('BETWEEN' => array('vig_perIni', 'vig_perFin')),
            'id_auxiliar' => array('=' => array('id_auxiliar')),
            'id_mae_ter' => array('=' => array('id_mae_ter')),
            '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')),
            //'id_vigencia' => array('BETWEEN' => array('vig_ini', 'vig_fin')),
            //'id_periodo_contable' => array('BETWEEN' => array('per_ini', 'per_fin')),
            'rownum,start' => array('>' => array('_startRow')),
            'rownum,end' => array('<=' => array('_endRow'))
        )
    );
    protected $table_field_or_conditions = null;
    protected $query_qualifier = 'DISTINCT';


    /* service sum */
    protected $summatory_data = array(
        'CN_MOVIMIENTO_VIGPER' => array(
            'fields' => array('saldo_anterior', 'mvto_debito', 'mvto_credito'/*, 'nuevo_saldo'*/),
            'labels' => array('id_vigencia,Total')
        )
    );

    /**
     *
     * @param sfWebRequest $request
     */
    public function executeSaldo(sfWebRequest $request) {

        $cia = $request['id_cia'];
        $vigencia = $request['id_vigencia'];
        $periodo = $request['id_periodo_contable'];
        $cen_op = $request['id_cen_op'];
        $auxiliar = $request['id_auxiliar'];
        $catalogo = $request['id_catalogo'];
        $cuenta = $request['id_cuenta_mayor'];
        $grupo = $request['id_grupo_cuenta'];
        $clase = $request['id_clase_cuenta'];

//        and bdc.ID_VIGENCIA = ' . $vigencia . '
//        and bdc.ID_PERIODO_CONTABLE = ' . $periodo . '

        $sql = 'select
                bdc.ID_VIGENCIA,
                bdc.ID_PERIODO_CONTABLE,
                bdc.SALDO_ANTERIOR as saldo_anterior,
                bdc.MVTO_DEBITO as debito,
                bdc.MVTO_CREDITO as credito,
                bdc.NUEVO_SALDO as saldo_actual
                from CN_BALANCE_DETALLADO_CATALOGO bdc
                where
                bdc.ID_CIA = ' . $cia . '
                and bdc.ID_CEN_OP = ' . $cen_op . '
                and bdc.ID_VIGENCIA = ' . $vigencia . '
                and bdc.ID_PERIODO_CONTABLE = ' . $periodo . '
                and bdc.ID_CLASE_CUENTA = ' . $clase . '
                and bdc.ID_GRUPO_CUENTA = ' . $grupo . '
                and bdc.ID_CUENTA_MAYOR = ' . $cuenta . '
                and bdc.ID_CATALOGO = ' . $catalogo . '
                and bdc.ID_AUXILIAR = ' . $auxiliar . ' ';


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

        $this->list_data = $records;

        $this->logMessage('record_count = ' . count($records));
        $this->logMessage('total_record_count = ' . count($records));
        $this->totalRows = count($records);
        $this->startRow = $request['_startRow'];
        $this->endRow = count($records);
    }

}
