<table class="marco" style="width: 100%" border="0" >
    <tr>
        <td nowrap="nowrap">
            <table  border="0" style="width: 100%">
                <tr>
                    <td>
                        <input id="btnAgregar" type="button" class="button" value="Agregar Producto" onclick=""/>
                        <script>
                        $( "#btnAgregar" )
                        .click
                        (
                            function()
                            {
                                if( $( "#IdCompania" ).val() == "" )
                                {
                                    alert( "Debe de seleccionar la empresa o iniciar sesion." );
                                    return false;
                                }
                                if( $( "#IdAlmacen" ).val() == "" )
                                {
                                    alert( "Debe de seleccionar el almacen." );
                                    return false;
                                }
                                $( "#content_nvo" ).append( $( "#content_copy_nvo" ).html() );
                                $( "#content_nvo tr:last input:first" ).focus();
                                global_elm = $( "#content_nvo tr:last input:first" )[0];
                                openPopup();
                            }
                        );
                        </script>
                        <input id="btnAgregarPrd" type="button" class="button" value="Seleccionar Orden Prod" style="display:none;" onclick=""/>
                        <script>
                        $( "#btnAgregarPrd" )
                        .click
                        (
                            function()
                            {
                                if( $( "#IdCompania" ).val() == "" )
                                {
                                    alert( "Debe de seleccionar la empresa o iniciar sesion." );
                                    return false;
                                }
                                if( $( "#IdAlmacen" ).val() == "" )
                                {
                                    alert( "Debe de seleccionar el almacen." );
                                    return false;
                                }
                                /*$( "#content_nvo" ).append( $( "#content_copy_nvo" ).html() );
                                $( "#content_nvo tr:last input:first" ).focus();
                                global_elm = $( "#content_nvo tr:last input:first" )[0];
                                */
                                openPopupProd();
                            }
                        );
                        </script>
                        <div id="s_ImagenLoad" style="display: none;"><img src="<?php echo Constantes::ROOT_DIR_APP ?>web/images/progress.gif" border="0"/>&nbsp;<label class="laber req">Procesando...</label></div>
                    </td>
                    <td>
                        &nbsp;
                    </td>
                </tr>
            </table>
        </td>
    </tr>
</table>

<fieldset style="padding-left: 6px; padding-right: 6px; margin-top: 0;border-left: 1px solid #999999; border-right: 1px solid #999999; margin-left: 0; margin-right: 0;">
    <div id="content_result_grid1">
        <table class="grid" cellspacing="0" cellpadding="3" border="0" align="center" width="100%" style="border-bottom: 1px solid #999999;">
            <tbody id="">
                <tr>
                    <td width="2%"  align="center" class="header"><b>No</b></td>
                    <td width="10%" align="center" class="header"><b>C&oacute;digo</b></td>
                    <td width="35%" align=""       class="header"><b>Descripci&oacute;n</b></td>
                    
                    <td width="20%" align="center" class="header"><b>Lote</b></td>
                    
                    <td width="8%" align="center" class="header"><b>Stock Actual</b></td>
                    <td width="10%" align="center" class="header"><b>Uni.Medida</b></td>
                    <td width="8%" align="center" class="header"><b>Cantidad</b></td>
                    
                    <td width="5%"  align="center" class="header">&nbsp;</td>
                </tr>
            </tbody>
            <tbody id="content_edit">
                <?php if( $b_Detalle ){ ?>
                    <?php $a_ALM_TransferenciaDetalle = $o_DefaultBN->getArrayObjetosDetalles() ?>
                    <?php foreach ( $a_ALM_TransferenciaDetalle as $i_Key => $o_ALM_TransferenciaDetalleBN ){ ?> 
                        <?php $s_IdGen = $o_ALM_TransferenciaDetalleBN->getIdTransferencia()."_".$o_ALM_TransferenciaDetalleBN->getIdSecuencia() ?>
                        <tr id="TR_<?=$s_IdGen?>">
                            <td align="center"><?=$i_Key+1?></td>
                            <td align="center" onclick="buscarResumenStock( '<?=$o_ALM_TransferenciaDetalleBN->getIdItem();?>' );"  style="cursor:pointer; color:#2743B2; text-decoration:underline;"><?=$o_ALM_TransferenciaDetalleBN->getIdItem();?></td>
                            <td align="" ><?=$o_ALM_TransferenciaDetalleBN->getDescripcionItem();?></td>
                            
                            <td align="center" ><?=$o_ALM_TransferenciaDetalleBN->getIdLote();?></td>
                            
                            <td align="center"><?=$o_ALM_TransferenciaDetalleBN->getStockActual();?></td>

                            <td align="center">
                                <?=$o_ALM_TransferenciaDetalleBN->getObjectUnidad()->getDescripcionCorta()?>
                            </td>
                                            
                            <td align="center">
                                <input type="text" class="text number" name="Cantidad[]" style="width: 60%; text-align: center;"  
                                                    onkeypress="return NumCheckDecimal( event, this );" 
                                                    value="<?=$o_ALM_TransferenciaDetalleBN->getCantidad();?>" 
                                                    onblur="actualizarCantidadDetalle( '<?=$o_ALM_TransferenciaDetalleBN->getIdTransferencia()?>', '<?=$o_ALM_TransferenciaDetalleBN->getIdSecuencia()?>', this.value );"
                                                    onfocus="this.select()"
                                                    />
                                <input type="hidden" name="IdUnidad[]" value="">
                            </td>
                            <!--<td align="center"><input type="text" class="text number" name="CantidadUni[]" style="width: 60%; text-align: center;" onkeypress="return NumCheckEntero( event, this );"></td>-->
                            <td align="center">
                                <img src="<?=getUrlImage( "btnDelete.gif" )?>" title="Eliminar" 
                                     onclick="cambiarEstadoDetalleInactivo( '<?=$o_ALM_TransferenciaDetalleBN->getIdTransferencia()?>', '<?=$o_ALM_TransferenciaDetalleBN->getIdSecuencia()?>' );" 
                                     style="cursor:pointer">
                            </td>
                        </tr>
                    <?php } ?>
                <?php } ?>
            </tbody>
            <tbody id="content_nvo">
            </tbody>
        </table>
    </div>
</fieldset>

<div id="content_result_grid_pl1" style="display:none;">
    <table class="grid" cellspacing="0" cellpadding="0" borde r="0" align="center" width="100%" style="border-bottom: 1px solid #999999;">
        <tbody id="content_copy_nvo">
            <tr>
                <td align="center">&nbsp;</td>
                <td align="center">
                    <input type="text" class="text" name="IdItem[]" style="width: 85%; text-align: center;" onkeyup="eventoPopup( event, this );" onblur="executeFindItem( this );">
                </td>

                <td  style="cursor:pointer; color:#2743B2; text-decoration:underline;" onclick="buscarResumenStock( $( $( this ).closest( 'tr' ) ).find( 'input[name=\'IdItem[]\']' ).val() );" >&nbsp;</td>
                
                <td align="center" >
                    <select class="combo" name="IdLote[]" onchange="buscarStockActual( this );" style="width: 90%;">
                    </select>
                    <input type="hidden" name="FechaVencimiento[]" value="">
                </td>
                
                <td align="center" >&nbsp;</td>

                <td align="center" >
                    <select class="combo" name="IdUnidad[]" onchange="buscarStockActualPorUnidad( this );">
                        <option value=""> - SELECCIONE - </option>
                        <?php foreach ( MST_UnidadMastFN::selectActivos() as $i_Key => $o_MST_UnidadMastBN ){ ?>
                        <option value="<?=$o_MST_UnidadMastBN->getIdUnidad()?>"> <?=$o_MST_UnidadMastBN->getDescripcionCorta()?> </option>
                        <?php } ?>
                    </select>
                </td>
                                
                <td align="center">
                    <input type="text" class="text" name="Cantidad[]" style="width: 60%; text-align: center;"  onkeypress="return NumCheckEntero( event, this );"><!-- return NumCheckDecimal( event, this ); -->
                </td>
                <!--<td align="center"><input type="text" class="text number" name="CantidadUni[]" style="width: 60%; text-align: center;" onkeypress="return NumCheckEntero( event, this );"></td>-->
                <td align="center">
                    <?php if( $b_Detalle ){ ?>
                    <img src="<?=getUrlImage( "btnSave.gif" )?>" title="Guardar" onclick="guardarLineaDetalle( <?=$o_DefaultBN->getIdTransferencia()?> );" style="cursor:pointer">
                    <?php }else{ ?>
                    <img src="<?=getUrlImage( "btnDelete.gif" )?>" title="Eliminar" onclick="$( $( this ).closest( 'tr' ) ).remove();" style="cursor:pointer">
                    <?php } ?>
                </td>
            </tr>
        </tbody>
    </table>
</div>

<?=crearFuentePopupIframe( array( "div_id"=>"dialog", "iframe_id"=>"myIframe", "popup_title"=>"Buscar Producto", "modal"=>true ) )?>

<script>
cambiarEstadoDetalleInactivo = function( IdTransferencia, IdSecuencia )
{
    x = confirm( "Esta seguro de eliminar el regsitro?" );
    if( x )
    {
        mostrarCargaImg();
        var str_serialize = "TipoProc=DeleteLine&IdTransferencia=" + IdTransferencia + "&IdSecuencia=" + IdSecuencia ;
        executeAjaxJson
        ( 
            "<?php echo buildUrl( 'transf/request' ) ?>", 
            str_serialize,
            function( o_json )
            {
                ocultarCargaImg();
                //console.log( o_json );
                if( o_json.error )
                {
                    mostrarMensajeError( o_json.mensaje_error );
                    return false;
                }
                $( "#TR_" + IdTransferencia + "_" + IdSecuencia ).remove();
            }
        );
    }
}
actualizarCantidadDetalle = function( IdTransferencia, IdSecuencia, Cantidad )
{
    mostrarCargaImg();
    var str_serialize = "TipoProc=UpdateLineQty&IdTransferencia=" + IdTransferencia + "&IdSecuencia=" + IdSecuencia + "&Qty=" + Cantidad ;
    executeAjaxJson
    ( 
        "<?php echo buildUrl( 'transf/request' ) ?>", 
        str_serialize,
        function( o_json )
        {
            ocultarCargaImg();
            //console.log( o_json );
            if( o_json.error )
            {
                mostrarMensajeError( o_json.mensaje_error );
                return false;
            }
        }
    );
}
guardarLineaDetalle = function( IdTransferencia ) 
{
    mostrarCargaImg();
    var str_serialize = $('#content_nvo :input').serialize();
    str_serialize += "&TipoProc=InsertLine&IdTransferencia=" + IdTransferencia;
    //console.log( str_serialize );
    executeAjaxJson
    ( 
        "<?php echo buildUrl( 'transf/request' ) ?>", 
        str_serialize,
        function( o_json )
        {
            ocultarCargaImg();
            //console.log( o_json );
            if( o_json.error )
            {
                mostrarMensajeError( o_json.mensaje_error );
                return false;
            }
            location.reload();
        }
    );
}
limpiarDetalle = function()
{
    $( "#content_nvo" ).html( '' );
}
</script>

<script>
//AQUI SE ASIGNA EL ULTIMO ELMENTO INPUT DEL CODIGO DE ITEM A LA HORA DE HACER CLICK EN EL [AGREGAR ITEM]
var global_elm = null;

/**
    [ONBLUR][CODIGO_ITEM]
    AQUI SE BUSCA LA DESCRIPCION DEL ITEM
*/
executeFindItem = function( elm_sel )
{
    var item_code = $( elm_sel ).val();
    var str_serialize = "s_ItemId=" + item_code + "&IdCompania=" + $( "#IdCompania" ).val() + "&IdAlmacen=" + $( "#IdAlmacen" ).val();
    executeAjaxJson
    ( 
        "<?php echo buildUrl( 'transacciones/findItem' ) ?>", 
        str_serialize,
        function( o_json )
        {
            //console.log( o_json );
            if( o_json.error )
            {
                mostrarMensajeError( o_json.mensaje_error );
                return false;
            }
            if( o_json.result )
            {
                $( $( elm_sel ).closest( 'tr' ) ).find( 'td:eq( 2 )' ).html( o_json.DescripcionCompleta );
                //$( $( elm_sel ).closest( 'tr' ) ).find( 'input:text' ).val( o_json.UnidadCompra );
                //$( $( elm_sel ).closest( 'tr' ) ).find( "select[name='IdUnidad[]']" ).val( o_json.UnidadCompra );
                $( $( elm_sel ).closest( 'tr' ) ).find( "select[name='IdUnidad[]']" ).attr( "uni_ref", o_json.UnidadCompra );
                //$( $( elm_sel ).closest( 'tr' ) ).find( 'td:eq( 3 )' ).html( o_json.StockActual );
                //$( $( elm_sel ).closest( 'tr' ) ).find( 'td:eq( 5 )' ).html( o_json.UnidadCompraDesc );
                //ahora se carga las unidades equivalentes
                $( $( elm_sel ).closest( 'tr' ) ).find( "select[name='IdUnidad[]']" )[0].options.length = 0;
                $.each
                (
                    o_json.a_Unidad, function ( i, o_Unidad )
                    {
                        $( $( elm_sel ).closest( 'tr' ) ).find( "select[name='IdUnidad[]']" ).append
                        (
                            $( '<option>', { value: o_Unidad.IdUnidad, text : o_Unidad.UnidadDesc } )
                        );
                    }
                );
                //
                $( $( elm_sel ).closest( 'tr' ) ).find( "select[name='IdUnidad[]']" ).val( o_json.UnidadCompra );
                
                //cargar el lote:
                $( $( elm_sel ).closest( 'tr' ) ).find( "select[name='IdLote[]']" )[0].options.length = 0;
                $.each
                (
                    o_json.a_Lotes, function( index, item )
                    {
                        $( $( elm_sel ).closest( 'tr' ) ).find( "select[name='IdLote[]']" ).append( "<option value=" + item.IdLote + ">" + item.IdLote + " - " + item.FechaVencimiento + "</option>" );
                        //$( $( elm_sel ).closest( 'tr' ) ).find( "input[name='FechaVencimiento[]']" ).val( item.FechaVencimiento );
                        //console.log( $( $( elm_sel ).closest( 'tr' ) ).find( "select[name='IdLote[]']" ) );
                        //console.log( item );
                    }
                );
                $( $( elm_sel ).closest( 'tr' ) ).find( "select[name='IdLote[]']" ).trigger( "change" );
            }
        } 
    );
}
buscarStockActualPorUnidad = function( elm )
{
    pr( "ingresa" );
    var id_unidad_new = $( elm ).val();
    var id_unidad_ref = $( elm ).attr( "uni_ref" );

    if( id_unidad_ref == '58' && id_unidad_new == '59' )
    {
        alert( "No se puede seleccionar la Uniad Caja." );
        $( elm ).val( id_unidad_ref );
    }

    buscarStockActual( elm );
}
buscarStockActual = function( elm_sel )
{

    var item_id   = $( $( elm_sel ).closest( 'tr' ) ).find( "input[name='IdItem[]']" ).val();
    var lote_id   = $( $( elm_sel ).closest( 'tr' ) ).find( "select[name='IdLote[]']" ).val();
    var unidad_id = $( $( elm_sel ).closest( 'tr' ) ).find( "select[name='IdUnidad[]']" ).val();
    
    var str_serialize = "TipoProc=getStockActual&IdItem=" + item_id + "&IdCompania=" + $( "#IdCompania" ).val() + "&IdAlmacen=" + $( "#IdAlmacen" ).val() + "&IdLote=" + lote_id + "&IdUnidad=" + unidad_id;
    pr( str_serialize );
    
    executeAjaxJson
    ( 
        "<?php echo buildUrl( 'transacciones/request' ) ?>", 
        str_serialize,
        function( o_json )
        {
            //console.log( o_json );
            if( o_json.error )
            {
                mostrarMensajeError( o_json.mensaje_error );
                return false;
            }
            if( o_json.result )
            {
                $( $( elm_sel ).closest( 'tr' ) ).find( 'td:eq( 4 )' ).html( o_json.StockActual );
                $( $( elm_sel ).closest( 'tr' ) ).find( "input[name='FechaVencimiento[]']" ).val( o_json.FechaVencimientoLote );
                setTimeout( '$( $( global_elm ).closest( "tr" ) ).find( "input[name=\'Cantidad[]\']" ).focus();', 50 );
            }
        } 
    );
}
eventoPopup = function( object, select )
{
    if( object.which === 107 ) 
    {
        global_elm = select;
        object.target.value = "";
		openPopup();
    }
}
openPopup = function()
{
    var s_param = "empresa/" + $( "#IdCompania" ).val() + "/IdAlmacen/" + $( "#IdAlmacen" ).val() + "/type/01";
    $( '#myIframe' ).attr( 'src', '<?=buildUrl( 'transacciones/listItem' )?>' + s_param );
    $( '#dialog' ).dialog( 'open' );	
}
openPopupProd = function()
{
	var s_param = "empresa/" + $( "#IdCompania" ).val() + "/IdAlmacen/" + $( "#IdAlmacen" ).val() + "/type/01";
    $( '#myIframe' ).attr( 'src', '<?=buildUrlComplet( 'prd.php/orden/listPrd', 'Tipo=Transfer' )?>' + s_param );
    $( '#dialog' ).dialog( 'open' );
}
closeWindow = function()
{
    $( '#dialog' ).dialog( 'close' );
}
asignarItem = function( id_item, item_descripcion, id_unidad )
{
    //pr( $( $( global_elm ).closest( 'tr' ) ).find( 'td:eq( 2 )' ) );
    //pr( item_descripcion );
    $( global_elm ).val( id_item );
    $( $( global_elm ).closest( 'tr' ) ).find( 'td:eq( 2 )' ).html( item_descripcion );
    
    //$( global_elm ).trigger( "blur" );
    //$( global_elm ).blur();
    closeWindow();
    setTimeout( '$( $( global_elm ).closest( "tr" ) ).find( "input[name=\'Cantidad[]\']" ).focus();', 50 );
}
buscarDetPorPrd = function( IdOrdenProd )
{
    $( "#IdOrdenProd" ).val( IdOrdenProd );
	closeWindow();
	mostrarCargaImg();
	blockContent( 'content_result_grid1' );
    var str_serialize = "TipoProc=getDetOrdenProduccion&IdOrdenProd=" + IdOrdenProd;
    executeAjaxJson
    ( 
        "<?php echo buildUrl( 'transf/request' ) ?>", 
        str_serialize,
        function( o_json )
        {
            pr( o_json );
            ocultarCargaImg();
            unBlockContent( 'content_result_grid1' );
            
            if( o_json.error )
            {
                mostrarMensajeError( o_json.mensaje_error );
                return false;
            }

            $.each
            (
                o_json['ListItem'], function( index, o_Data )
                {
                    pr( o_Data );
                    $( "#content_nvo" ).append( $( "#content_copy_nvo" ).html() );
                    $( "#content_nvo tr:last input:first" ).focus();
                    global_elm = $( "#content_nvo tr:last input:first" )[0];
                    asignarItem( o_Data.IdItem, o_Data.Descripcion );
                    $( $( global_elm ).closest( "tr" ) ).find( "input[name=\'Cantidad[]\']" ).val( o_Data.Cantidad );
                }
            );
            
        }
    );
    
}
</script>
<script>
//ESCAPE, DETECTA EL F5, CTRL+F5
$( document ).bind
(
    'keyup', 
    function( e ) 
    {
        //console.log( e.which );
        if( e.which === 116 ) 
        {
           
        }
        if( e.which === 82 && e.ctrlKey ) 
        {
           
        }
        if( e.which === 107 ) //tecla +
        {
            //openPopup();
            $( "#btnAgregar" ).trigger( "click" );
        }
        if( e.which === 119 ) 
        {
           
        }
        if( e.which === 27 ) //ESCAPE
        {
            
        }
    }
);
</script>