<?php
class DeleteDetailVtaAction extends wtActions
{
    public function execute()
    {
        $block      = $this->getRequestParameter( 'block' );
        $i_Id       = $this->getRequestParameter( 'i_Id' );
        $s_TipoProc = $this->getRequestParameter( 's_TipoProc' );
        
        try 
        {
            $a_Ids = explode( "_", $i_Id );
            $IdTipoDocumento = $a_Ids[0];
            $IdCompania      = $a_Ids[1];
            $NumeroDocumento = $a_Ids[2];
            $Secuencia       = $a_Ids[3];
            
            $o_VTA_DocumentoDetalleBN = new VTA_DocumentoDetalleBN();
            $o_VTA_DocumentoDetalleBN->setIdTipoDocumento( $IdTipoDocumento );
            $o_VTA_DocumentoDetalleBN->setIdCompania( ( int ) $IdCompania );
            $o_VTA_DocumentoDetalleBN->setNumeroDocumento( $NumeroDocumento );
            $o_VTA_DocumentoDetalleBN->setSecuencia( ( int ) $Secuencia );

            $o_OrdenVentaDetalleBL = new OrdenVentaDetalleBL();
            $o_OrdenVentaDetalleBL->eliminarLinea( $o_VTA_DocumentoDetalleBN );

            /*
            //si el item a eliminar tiene un descuento asociado, tambien se podria usar para descuentos
            $o_VTA_DocumentoDetalleFN = new VTA_DocumentoDetalleFN();
            $o_Tmp_VTA_DocumentoDetalleBN = $o_VTA_DocumentoDetalleFN->selectByPK( $IdTipoDocumento, $IdCompania, $NumeroDocumento, $Secuencia );
            if( $o_Tmp_VTA_DocumentoDetalleBN )
            {
                if( $o_Tmp_VTA_DocumentoDetalleBN->getTipoDetalle() != VTA_DocumentoDetalleBN::TIPO_DETALLE_DESCUENTO )
                {
                    $o_VTA_DocumentoDetalleFN = new VTA_DocumentoDetalleFN();
                    $o_VTA_DocumentoDetalleFN->setIdTipoDocumento( $o_Tmp_VTA_DocumentoDetalleBN->getIdTipoDocumento() );
                    $o_VTA_DocumentoDetalleFN->setIdCompania( $o_Tmp_VTA_DocumentoDetalleBN->getIdCompania() );
                    $o_VTA_DocumentoDetalleFN->setNumeroDocumento( $o_Tmp_VTA_DocumentoDetalleBN->getNumeroDocumento() );
                    $o_VTA_DocumentoDetalleFN->setRefParent( $o_Tmp_VTA_DocumentoDetalleBN->getSecuencia() );
                    $o_VTA_DocumentoDetalleFN->setTipoDetalle( VTA_DocumentoDetalleBN::TIPO_DETALLE_DESCUENTO );
                    $o_VTA_DocumentoDetalleFN->setItemCodigo( VTA_DocumentoDetalleBN::ITEM_ZZDSCTO );
                    $o_VTA_DocumentoDetalleFN->setLote( $o_Tmp_VTA_DocumentoDetalleBN->getLote() );
                    //$o_VTA_DocumentoDetalleFN->setNumeroPromocion( $o_Tmp_VTA_DocumentoDetalleBN->getNumeroPromocion() );
                    $a_VTA_DocumentoDetalle = $o_VTA_DocumentoDetalleFN->select();
                    if( $a_VTA_DocumentoDetalle )
                    {
                        foreach ( $a_VTA_DocumentoDetalle as $i_Key => $o_VTA_DocumentoDetalleBN )
                        {
                            $o_VTA_DocumentoDetalleDP = new VTA_DocumentoDetalleDP();
                            $o_VTA_DocumentoDetalleDP->setIdTipoDocumento( $o_VTA_DocumentoDetalleBN->getIdTipoDocumento() );
                            $o_VTA_DocumentoDetalleDP->setIdCompania( ( int ) $IdCompania );
                            $o_VTA_DocumentoDetalleDP->setNumeroDocumento( $o_VTA_DocumentoDetalleBN->getNumeroDocumento() );
                            $o_VTA_DocumentoDetalleDP->setSecuencia( $o_VTA_DocumentoDetalleBN->getSecuencia() );
                            $o_VTA_DocumentoDetalleDP->setLote( $o_VTA_DocumentoDetalleBN->getLote() );
                            $o_VTA_DocumentoDetalleDP->setUsuarioModificacion( myUser::getUser()->getUserId() );
                            $o_VTA_DocumentoDetalleDP->setFechaModificacion( date( "Y-m-d H:i:s" ) );
                            $b_Result = $o_VTA_DocumentoDetalleDP->delete();
                        }
                    }
                }
            }
            */

            $a_Rs['error']   = false;
            $a_Rs['id']      = $i_Id;
        }
        catch ( Exception $o_Exception )
        {

            $a_Rs['error']   = true;
            $a_Rs['mensaje_error'] = $o_Exception->getMessage();
            //$a_Rs['mensaje_error'] = "No se pudo eliminar el registro.";
        }

        echo json_encode( $a_Rs );
        return ViewResponse::NONE;
    }
}