<?php
class AgregarHorarioAction extends wtActions
{
    public function execute()
    {
        LayoutTemplate::getInstance()->setUseBootstrap();
        
        $this->IdPersona = $this->getRequestParameter( 'id_persona' );
        $this->TipoProc  = $this->getRequestParameter( 'tipo_proc' );
        $this->IdDiaSem  = $this->getRequestParameter( 'id_diasem' );
        $this->b_Control = $this->getRequestParameter( 'Control' );

        if( $this->TipoProc == "nvo" )
        {
            $this->a_Param = array( "NOT_IN"=>1, "ID"=>$this->IdPersona );
        }
        if( $this->TipoProc == "upd" )
        {
            $this->a_Param = array( "IN"=>1, "ID"=>$this->IdDiaSem );
        }
        if( $this->TipoProc == "del" )
        {

        }

        if( $this->getRequestParameter( 'Control' ) )
        {
            //submit
            $i_IdDiaSem     = intval( $this->getRequestParameter( 'IdDiaSem' ) );
            $i_IdPersona    = intval( $this->getRequestParameter( 'id_persona' ) );
            $a_DiaSiguiente = $this->getRequestParameter( 'DiaSiguiente' );

            $a_Marcacion = $this->getRequestParameter( 'Marcacion' );
            foreach ( $a_Marcacion as $s_Key => $a_Values ) 
            {
                $s_HoraDesde = $a_Values['HORA_DESDE'] ? $a_Values['HORA_DESDE'] : "00";
                $s_MinuDesde = $a_Values['MIN_DESDE']  ? $a_Values['MIN_DESDE']  : "00";

                $s_HoraHasta = $a_Values['HORA_HASTA'] ? $a_Values['HORA_HASTA'] : "00";
                $s_MinuHasta = $a_Values['MIN_HASTA']  ? $a_Values['MIN_HASTA']  : "00";

                $s_DateTimeDesde = $s_HoraDesde.":".$s_MinuDesde;
                $s_DateTimeHasta = $s_HoraHasta.":".$s_MinuHasta;

                $i_DiaSiguiente = isset( $a_DiaSiguiente[$s_Key] ) ? 1 : 0;

                list( $s_IdRegistro, $s_IdTipo ) = explode( "_", $s_Key );

                $o_PLA_MarcacionEmpleadoDP = new PLA_MarcacionEmpleadoDP();
                $o_PLA_MarcacionEmpleadoDP->setIdDiaSem( $i_IdDiaSem );
                $o_PLA_MarcacionEmpleadoDP->setIdTipo( $s_IdTipo );
                $o_PLA_MarcacionEmpleadoDP->setIdRegistro( $s_IdRegistro );
                $o_PLA_MarcacionEmpleadoDP->setIdPersona( $i_IdPersona );
                $o_PLA_MarcacionEmpleadoDP->setHoraMinutoDesde( $s_DateTimeDesde );
                $o_PLA_MarcacionEmpleadoDP->setHoraMinutoHasta( $s_DateTimeHasta );
                $o_PLA_MarcacionEmpleadoDP->setDiaSiguienteFlag( $i_DiaSiguiente );
                if( $this->TipoProc == "nvo" )
                {
                    $o_PLA_MarcacionEmpleadoDP->setEstado( "A" );
                    $o_PLA_MarcacionEmpleadoDP->setFechaCreacion( date( "Y-m-d H:i:s" ) );
                    $o_PLA_MarcacionEmpleadoDP->setUsuarioCreacion( myUser::getUser()->getUserId() );
                    $o_PLA_MarcacionEmpleadoDP->setFechaModificacion( date( "Y-m-d H:i:s" ) );
                    $o_PLA_MarcacionEmpleadoDP->setUsuarioModificacion( myUser::getUser()->getUserId() );
                    $o_PLA_MarcacionEmpleadoDP->save();
                }
                else
                {
                    $o_PLA_MarcacionEmpleadoDP->setFechaModificacion( date( "Y-m-d H:i:s" ) );
                    $o_PLA_MarcacionEmpleadoDP->setUsuarioModificacion( myUser::getUser()->getUserId() );
                    $o_PLA_MarcacionEmpleadoDP->update();
                }
            }
        }
    }
}