<?php
class UpdateAssocFactAction extends wtActions 
{
    public function execute()
    {
        //pr( $_REQUEST );
        $block      = $this->getRequestParameter( 'block' );
        $s_IdDet    = $this->getRequestParameter( 'IdDet' );
        $s_TipoProc = $this->getRequestParameter( 'TipoProc' );
        $TypeSub    = $this->getRequestParameter( 'TypeSub' );

        $IdConcat   = $this->getRequestParameter( 'IdConcat' );
        
        $SerieFactura  = str_pad( $this->getRequestParameter( 'SerieFactura' ), 4, "0", STR_PAD_LEFT );
        $NumeroFactura = str_pad( $this->getRequestParameter( 'NumeroFactura' ), 10, "0", STR_PAD_LEFT );
        $FechaFactura  = $this->getRequestParameter( 'FechaFactura' );
        $Inafecto      = floatval( $this->getRequestParameter( 'MontoFacturaInafecto' ) );
        $MontoFactura  = floatval( $this->getRequestParameter( 'MontoFactura' ) );
        $IGVFactura    = floatval( $this->getRequestParameter( 'IGVFactura' ) );
        $TotalFactura  = floatval( $this->getRequestParameter( 'TotalFactura' ) );
        $Comentario    = $this->getRequestParameter( 'Comentario' );
        
        $TipoDoc       = $this->getRequestParameter( 'TipoDoc' );

        $con = Conexion::getConexion();
        $con->begin();
        try
        {
            if( !myUser::getUser()->getIdBusiness() )
            {
                throw new Exception( "La Session Expiro." );
            }
        
            $o_ALM_OrdenGuiaFacturaDP = new ALM_OrdenGuiaFacturaDP();
            $o_ALM_OrdenGuiaFacturaDP->setIdOrdenGuia( ( int ) $IdConcat );
            //$o_ALM_OrdenGuiaFacturaDP->setEstado( "A" );
            $o_ALM_OrdenGuiaFacturaDP->setTipoDoc( $TipoDoc );
            $o_ALM_OrdenGuiaFacturaDP->setSerieFactura( $SerieFactura );
            $o_ALM_OrdenGuiaFacturaDP->setNumeroFactura( $NumeroFactura );
            $o_ALM_OrdenGuiaFacturaDP->setFechaFactura( $FechaFactura );
            $o_ALM_OrdenGuiaFacturaDP->setMontoFacturaInafecto( $Inafecto );
            $o_ALM_OrdenGuiaFacturaDP->setMontoFactura( $MontoFactura );
            $o_ALM_OrdenGuiaFacturaDP->setIGVFactura( $IGVFactura );
            $o_ALM_OrdenGuiaFacturaDP->setTotalFactura( $TotalFactura );
            $o_ALM_OrdenGuiaFacturaDP->setComentario( $Comentario );
            $o_ALM_OrdenGuiaFacturaDP->setFechaModificacion( date( "Y-m-d H:i:s" ) );
        	$o_ALM_OrdenGuiaFacturaDP->setUsuarioModificacion( myUser::getUser()->getUserId() );
            //$b_Result = $o_ALM_OrdenGuiaFacturaDP->updatexSerieFactura();
        	$b_Result = $o_ALM_OrdenGuiaFacturaDP->update();
            
            //pr( $o_ALM_OrdenGuiaFacturaDP );
            //pr( $b_Result );

            $con->commit();
            
            $a_Rs['fact_serie']  = $SerieFactura;
            $a_Rs['fact_numero'] = $NumeroFactura;
            $a_Rs['error']       = false;
        }
        catch ( Exception $o_Exception )
        {
            $con->rollback();
            $a_Rs['error']         = true;
            $a_Rs['mensaje_error'] = $o_Exception->getMessage();
        }
        echo json_encode( $a_Rs );
        return ViewResponse::NONE;
    }
}