<?php
/* Busqueda de registros de la tabla ALM_TransaccionDetalle redefinidos por el usuario. */
class ALM_TransaccionDetalleFN extends BaseALM_TransaccionDetalleFN
{
    /**
     * Recupero el Id + 1
     *
     * @return int
     */
    public static function recuperarId( $IdCompania, $IdTipoDocumento, $NumeroDocumento )
    {
        $s_Sql = "SELECT IF( MAX( IdSecuencia ) IS NULL, 1, MAX( IdSecuencia ) + 1 ) i_Id  FROM ALM_TransaccionDetalle WHERE IdCompania='$IdCompania' AND IdTipoDocumento='$IdTipoDocumento' AND IdNumeroDocumento='$NumeroDocumento';";
        $o_ResultSet = Conexion::getConexion()->prepareStatement( $s_Sql )->executeQuery();
        $o_ResultSet->next();
        return $o_ResultSet->getInt( 'i_Id' );
    }

    public static function getInfoxKardexCantUni( $IdCompania, $IdTipoDocumento, $NumeroDocumento, $Secuencia )
    {
        $s_Sql = "
            SELECT Cantidad, (SELECT DescripcionExtranjera FROM MST_UnidadMast where IdUnidad=ALM_TransaccionDetalle.UnidadCodigo) UniMed 
            FROM ALM_TransaccionDetalle 
            where 1=1 /*and IdCompania='$IdCompania'*/ and IdTipoDocumento='$IdTipoDocumento' and IdNumeroDocumento='$NumeroDocumento' and IdSecuencia='$Secuencia';";
        $o_ResultSet = Conexion::getConexion()->prepareStatement( $s_Sql )->executeQuery();
        $o_ResultSet->next();
        $a_Row = $o_ResultSet->getRow();
        return $a_Row;
    }

    public static function getDataMovimentosItem( $a_Param )
    {
        $s_Where = " AND IdCompania=1  ";
        
        if( isset( $a_Param['IdItem'] ) && $a_Param['IdItem'] != "" )
        {
            $s_Where .= " AND IdItem='".$a_Param['IdItem']."' ";
        }
        
        if( isset( $a_Param['FechaInicio'] ) && $a_Param['FechaInicio'] != "" )
        {
            $s_Where .= " AND FechaDocumentoCab >= '".$a_Param['FechaInicio']." 00:00:00' "; 
        }
        
        if( isset( $a_Param['FechaFinal'] ) && $a_Param['FechaFinal'] != "" )
        {
            $s_Where .= " AND FechaDocumentoCab <= '".$a_Param['FechaFinal']." 23:59:59' "; 
        }
        
        $s_Sql = "
            SELECT 
                FechaCreacion, IdAlmacen, IdAlmacenDestino, Cantidad, ReferenciaCompaniaSocio, IdCompania, IdSucursal, IdCondicion, IdTipoDocumento, IdNumeroDocumento, IdSecuencia, 
                IdItem, DescripcionItem, Lote, UnidadCodigo, ReferenciaTipoDocumento, ReferenciaNumeroDocumento, ReferenciaSecuencia, IdTransaccionCab, FechaDocumentoCab
            FROM ALM_TransaccionDetalle
            where 1=1 $s_Where
            ORDER BY FechaCreacion;
        ";

        $a_Data = array();
        $o_ResultSet = Conexion::getConexion()->prepareStatement( $s_Sql )->executeQuery();
        while( $o_ResultSet->next() ) 
        {
            $a_Row = $o_ResultSet->getRow();
            $a_Data[] = $a_Row;
        }
        return $a_Data;
    }
}
?>