<?php $__env->startSection('scripts'); ?>
    <script>
        var mantener_detalle = true;
        var jsonData = {};
        <?php if(!empty($planificacion)): ?>
        jsonData.nombre_producto = '<?php echo e($planificacion->NOMBRE); ?>';
        jsonData.cantidad = '<?php echo e($planificacion->CANTIDAD); ?>';
        jsonData.cantidadok = '<?php echo e($planificacion->CANTIDAD); ?>';
        jsonData.planificacion_id = <?php echo e($planificacion->ID); ?>;
        <?php endif; ?>
        if(localStorage.getItem('fabricacion') != null) {
            jsonData = JSON.parse(localStorage.getItem('fabricacion'));
        }

        poblar_ingreso(jsonData);

        $(document).ready(function(){
            setup_select2('#producto_id', "<?php echo url('fabricacion/select_productos'); ?>", 'Seleccionar Producto');

            $(document).on('click', '.btn-agregar', function() {
               agregar_detalle_fabricacion($(this));
            });

            $(document).on('click', '.btn-eliminar', function() {
                eliminar_mercaderia($(this));
            });

            $('.collapse').on('hide.bs.collapse', function() {
                var id = $(this).attr('id');
                $('[aria-controls=' + id + ']').find('i').eq(0).removeClass('fa-minus').addClass('fa-plus');
            });

            $('.collapse').on('show.bs.collapse', function() {
                var id = $(this).attr('id');
                $('[aria-controls=' + id + ']').find('i').eq(0).removeClass('fa-plus').addClass('fa-minus');
            });

            $('#producto_id').on('select2:select', function() {
                if(!mantener_detalle) {
                    //Limpio detalle fabricacion
                    $('.item-lote').each(function(){
                        $(this).remove();
                    });
                    delete jsonData.detalle_fabricacion;
                    localStorage.setItem('fabricacion', JSON.stringify(jsonData));
                }
                //Obtengo datos productos
                var id = $(this).select2('data')[0].id;
                $.get('<?php echo url('fabricacion/obtener_formula'); ?>/' + id, function(data) {
                    $('#observacion_formula').html(data.formula.OBSERVACION);
                    $('#composicion_formula').html('');
                    $.each(data.det_formula, function(index, value) {
                        porcentaje = parseFloat((value.PESO * 100) / data.formula.PESO_TOTAL).toFixed(2);
                        nuevo_peso = parseFloat((((jsonData.cantidad * data.formula.DEN_TOTAL) || 0) * porcentaje) / 100).toFixed(2);
                        nuevo_volumen = parseFloat(nuevo_peso / value.DENSIDAD).toFixed(2);
                        template = '<tr class="item-det-formula bg-info" data-index="' + index +'" data-detalle-formula-id="' + value.ID + '" data-nreguist="' + value.NREGUIST + '" data-nreguist-mp="' + value.NREGUIST_MP + '" data-densidad="' + value.DENSIDAD + '" data-porcentaje="' + porcentaje + '" data-costo-unidad="' + value.COSTO_UNIDAD + '">' +
                                '<td>' + value.ORDEN + '</td>' +
                                '<td>' + value.NOMBRE + '</td>' +
                                '<td>' + porcentaje + '</td>' +
                                '<td><div class="input-group"><input class="form-control" type="text" name="VOLUMEN.' + value.ID + '"  value="0" disabled><span class="input-group-addon">' + nuevo_volumen  + '</span></div></td>' +
                                '<td><div class="input-group"><input class="form-control" type="text" name="PESO.' + value.ID + '" value="0" disabled><span class="input-group-addon">' +  nuevo_peso + '</span></div></td>' +
                                '<td><input class="form-control" type="text" name="SUBCOSTO.' + value.ID + '"  value="0" disabled></td>' +
                                '<td><button type="button" class="btn btn-primary btn-agregar" title="Agregar Lote"><i class="fa fa-plus"></i></button></td>' +
                                '</tr>';
                        $('#composicion_formula').append(template);
                    });
                    //Almaceno id producto en localStorage
                    jsonData.nreguist = data.formula.NREGUIST;
                    jsonData.nombre_producto = data.formula.NOMBRE;
                    if(!$.isEmptyObject(data)) {
                        jsonData.vida_util = data.formula.VIDA_UTIL;
                        $('#vida_util_fabricacion').val(data.formula.VIDA_UTIL);
                    }
                    localStorage.setItem('fabricacion', JSON.stringify(jsonData));
                    if(jsonData.hasOwnProperty('detalle_fabricacion') && jsonData.detalle_fabricacion.length > 0) {
                        $.each(jsonData.detalle_fabricacion, function(i, v) {
                            agregar_item_jsonData(v);
                        });
                    }
                }, 'json');
                mantener_detalle = false;
            });

            $('#cantidad_fabricacion').on('keyup', function() {
                $('#producto_id').trigger('select2:select');
                //Actualizamos variable jsonData
                jsonData.cantidad = $(this).val();
                jsonData.cantidadok = $(this).val();
                localStorage.setItem('fabricacion', JSON.stringify(jsonData));
                $('#cantidadok_fabricacion').val($(this).val());
            });

            $('#cantidadok_fabricacion').on('keyup', function() {
                //Actualizamos variable jsonData
                jsonData.cantidadok = $(this).val();
                localStorage.setItem('fabricacion', JSON.stringify(jsonData));
            });

            $('#vida_util_fabricacion').on('keyup', function() {
                //Actualizamos variable jsonData
                jsonData.vida_util = $(this).val();
                localStorage.setItem('fabricacion', JSON.stringify(jsonData));
            });

            $('#observacion_fabricacion').on('change', function() {
                //Actualizamos variable jsonData
                jsonData.observacion = $(this).val();
                localStorage.setItem('fabricacion', JSON.stringify(jsonData));
            });

            $(document).on('keyup', "input[name^='CANTIDAD.']", function() {
                actualizar_totales($(this));
                //Actualizamos variable jsonData
                var id = $(this).parents('tr').eq(0).data('index');
                var index_arr = jsonData.detalle_fabricacion.map(function(d) {return d['id']}).indexOf(id);
                var costo = $(this).val() * jsonData.detalle_fabricacion[index_arr].costo_unidad;
                $(this).parents('tr').eq(0).find("input[name^='COSTO.']").val(costo);
                jsonData.detalle_fabricacion[index_arr].cantidad = $(this).val();
                jsonData.detalle_fabricacion[index_arr].costo = costo;
                localStorage.setItem('fabricacion', JSON.stringify(jsonData));
            });

            $(document).on('keyup', "input[name^='LOTE.']", function() {
                //Actualizamos variable jsonData
                var id = $(this).parents('tr').eq(0).data('index');
                var index_arr = jsonData.detalle_fabricacion.map(function(d) {return d['id']}).indexOf(id);
                jsonData.detalle_fabricacion[index_arr].lote = $(this).val();
                //Almacena nombre producto en localStorage
                localStorage.setItem('fabricacion', JSON.stringify(jsonData));
            });

            $('#limpiar_fabricacion').on('click', function() {
                localStorage.removeItem('fabricacion');
                window.location = "<?php echo url('fabricacion'); ?>";
            });

            $('#form_guardar').on('submit', function() {
                clean_form_errors($('#fabricacion'));
                var termino = $(this).val() == 'Finalizar' ? 1 : 0;
                jsonData.termino = termino;
                $.post("<?php echo url('fabricacion/agregar'); ?>", {data: JSON.stringify(jsonData)}, function(response) {
                    jsonData = {};
                    localStorage.removeItem('fabricacion');
                    success_notification(response);
                    if(termino) {
                        window.location = "<?php echo url('fabricacion'); ?>";
                    }
                }, 'json').fail(function(response) {
                    if(response.status != 409) {
                        show_form_errors(response, $('#fabricacion'));
                    } else {
                        error_notification(response);
                    }
                });
                return false;
            });
        });

        //pobla los campos desde jsonData en caso de que hayan datos guardados en localStorage
        function poblar_ingreso(data) {
            if(!$.isEmptyObject(data)) {
                if(data.hasOwnProperty('nombre_producto')) {
                    $.get('<?php echo url("fabricacion/select_productos"); ?>', {q:data.nombre_producto}, function(result) {
                        var option = '<option value="' + result.data[0].id + '">' + result.data[0].text + '</option>';
                        $('#producto_id').html(option).trigger('change');
                        $('#producto_id').trigger({
                            type: 'select2:select',
                            params: {
                                data: result.data[0]
                            }
                        });
                    }, 'json');
                }
                if(data.hasOwnProperty('cantidad')) {
                    $('#cantidad_fabricacion').val(data.cantidad);
                }
                if(data.hasOwnProperty('cantidadok')) {
                    $('#cantidadok_fabricacion').val(data.cantidadok);
                }
                if(data.hasOwnProperty('vida_util')) {
                    $('#vida_util_fabricacion').val(data.vida_util);
                }
                if(data.hasOwnProperty('observacion')) {
                    $('#observacion_fabricacion').val(data.observacion);
                }
                //No se puede realizar acá ya que no alcanza a generarse el detalle de la formula
                /*if(data.hasOwnProperty('detalle_fabricacion') && data.detalle_fabricacion.length > 0) {
                    $.each(data.detalle_fabricacion, function(i, v) {
                        agregar_item_jsonData(v);
                    })
                }*/
            }
        }

        function agregar_detalle_fabricacion(elem) {
            var parent = elem.parents('tr').eq(0);
            var detalle_formula_id = parent.data('detalle-formula-id');
            var indexes = $('.item-lote').length > 0?$('.item-lote').map(function(){return $(this).data('index')}).get():[0];
            var index = Math.max.apply(Math, indexes) + 1;
            var template = '<tr class="item-lote" data-index="' + index + '" data-detalle-formula-id="' + detalle_formula_id + '">' +
                    '<td colspan="3"></td>' +
                    '<td><div class="input-group"><input type="text" class="form-control" name="LOTE.'+ index +'"><span class="input-group-addon">Lote</span></div></td>' +
                    '<td><div class="input-group"><input type="text" class="form-control" name="CANTIDAD.'+ index +'"><span class="input-group-addon">Cantidad (Kg)</span></div></td>' +
                    '<td><div class="input-group"><input type="hidden" name="COSTO_UNIDAD.' + index + '" value="' + parent.data('costo-unidad') + '"><input type="text" class="form-control" name="COSTO.'+ index +'" disabled><span class="input-group-addon">Costo</span></div></td>' +
                    '<td><button type="button" class="btn btn-danger btn-eliminar" title="Eliminar Lote"><i class="fa fa-trash"></i></button></td>'
            '</tr>';

            parent.after(template);

            //var materia_prima = $('.item-det-formula[data-detalle-formula-id="' + detalle_formula_id + '"');

            var materia_prima = parent;
            if(jsonData.hasOwnProperty('detalle_fabricacion') == false) {
                jsonData.detalle_fabricacion = [];
            }
            jsonData.detalle_fabricacion.push({
                id: index,
                detalle_formula_id: detalle_formula_id,
                nreguist: materia_prima.data('nreguist'),
                nreguist_mp: materia_prima.data('nreguist-mp'),
                costo_unidad: parseFloat(materia_prima.data('costo-unidad')).toFixed(2),
                cantidad: '',
                lote: '',
                costo: '',
            });
            localStorage.setItem('fabricacion', JSON.stringify(jsonData));

        }

        function agregar_item_jsonData(item) {
            var detalle_formula_id = item.detalle_formula_id;
            var indexes = $('.item-lote').length > 0?$('.item-lote').map(function(){return $(this).data('index')}).get():[0];
            var index = Math.max.apply(Math, indexes) + 1;
            var template = '<tr class="item-lote" data-index="' + index + '" data-detalle-formula-id="' + detalle_formula_id + '">' +
                '<td colspan="3"></td>' +
                '<td><div class="input-group"><input type="text" class="form-control" name="LOTE.'+ index +'" value="' + item.lote+ '"><span class="input-group-addon">Lote</span></div></td>' +
                '<td><div class="input-group"><input type="text" class="form-control" name="CANTIDAD.'+ index +'" value="' + item.cantidad + '"><span class="input-group-addon">Cantidad(Kg)</span></div></td>' +
                '<td><div class="input-group"><input type="hidden" name="COSTO_UNIDAD.' + index + '" value="' + item.costo_unidad + '"><input type="text" class="form-control" name="COSTO.'+ index +'" value="' + item.costo + '" disabled><span class="input-group-addon">Costo</span></div></td>' +
                '<td><button type="button" class="btn btn-danger btn-eliminar" title="Eliminar Lote"><i class="fa fa-trash"></i></button></td>'
            '</tr>';
            $('.item-det-formula[data-detalle-formula-id="' + detalle_formula_id + '"]').after(template);
            var total = 0;
            var densidad = $('.item-det-formula[data-detalle-formula-id="' + detalle_formula_id + '"]').data('densidad');
            $("input[name^='CANTIDAD.']").each(function(index, value) {
                if($(value).val() == '') return;
                total = total + parseFloat($(value).val());
            });
            var volumen = parseFloat(total / densidad).toFixed(2);
            $('.item-det-formula[data-detalle-formula-id="' + detalle_formula_id + '"]').find('[name^="VOLUMEN"]').val(volumen);
            $('.item-det-formula[data-detalle-formula-id="' + detalle_formula_id + '"]').find('[name^="PESO"]').val(total);
        }

        function eliminar_mercaderia(elem) {
            var id_mp = elem.parents('tr').eq(0).data('index');
            var index_arr_mp = jsonData.detalle_fabricacion.map(function(d) {return d['id']}).indexOf(id_mp);
            jsonData.detalle_fabricacion.splice(index_arr_mp, 1);
            $(elem).parents('tr').eq(0).remove();
            if($('.item-lote').length == 0){
                delete jsonData.detalle_fabricacion;
            }
            actualizar_totales(elem);
            localStorage.setItem('fabricacion', JSON.stringify(jsonData));

        }

        function actualizar_totales(elem) {
            var parent_index = elem.parents('tr').eq(0).data('detalle-formula-id');
            var total = 0;
            var densidad = $('.item-det-formula[data-detalle-formula-id="' + parent_index + '"]').data('densidad');
            $('.item-lote[data-detalle-formula-id="' + parent_index + '"]').find("input[name^='CANTIDAD.']").each(function(index, value) {
                if($(value).val() == '') return;
                total = total + parseFloat($(value).val());
            });
            var volumen = parseFloat(total / densidad).toFixed(2);
            $('.item-det-formula[data-detalle-formula-id="' + parent_index + '"]').find('[name^="VOLUMEN"]').val(volumen);
            $('.item-det-formula[data-detalle-formula-id="' + parent_index + '"]').find('[name^="PESO"]').val(total);
        }
    </script>
<?php $__env->stopSection(); ?>

<?php $__env->startSection('content'); ?>
    <div class="product-content product-wrap clearfix product-deatil">
        <div id="fabricacion">
            <div class="row">
                <div class="col-sm-12 col-md-3">
                    <div class="form-group">
                        <label class="control-label" for="oc_id">Seleccionar Producto a Fabricar</label>
                        <?php echo Form::select('NREGUIST_PROD_TERMINADO', [], NULL, ['id' => 'producto_id']); ?>

                    </div>
                </div>
                <div class="col-sm-12 col-md-3">
                    <div class="form-group">
                        <label class="control-label" for="num_guia">Cantidad a Fabricar</label>
                        <div class="input-group">
                            <?php echo Form::text('CANTIDAD', NULL, ['class' => 'form-control', 'id' => 'cantidad_fabricacion', 'aria-describedby' => 'addon-litros']); ?>

                            <span class="input-group-addon" id="addon-litros">Litros</span>
                        </div>
                    </div>
                </div>
                <div class="col-sm-12 col-md-3">
                    <div class="form-group">
                        <label class="control-label" for="num_guia">Cantidad realmente fabricada</label>
                        <div class="input-group">
                            <?php echo Form::text('CANTOK', NULL, ['class' => 'form-control', 'id' => 'cantidadok_fabricacion', 'aria-describedby' => 'addon-litros']); ?>

                            <span class="input-group-addon" id="addon-litros">Litros</span>
                        </div>
                    </div>
                </div>
                <div class="col-sm-12 col-md-3">
                    <div class="form-group">
                        <label class="control-label" for="num_guia">Vida útil</label>
                        <div class="input-group">
                            <?php echo Form::text('VIDA_UTIL', NULL, ['class' => 'form-control', 'id' => 'vida_util_fabricacion']); ?>

                            <span class="input-group-addon" id="addon-litros">días</span>
                        </div>
                    </div>
                </div>
            </div>
            <div class="row">
                <div class="col-sm-12">
                    <div class="panel panel-primary">
                        <div class="panel-heading" style="overflow: auto;">
                            <h3 class="panel-title pull-left">Fórmula</h3>
                            <a role="button" data-toggle="collapse"  href="#collapseThree" aria-expanded="true" aria-controls="collapseThree" class="pull-right">
                                <i class="fa fa-minus txt-color-white"></i>
                            </a>
                        </div>
                        <div id="collapseThree" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingThree">
                            <div class="panel-body">
                                <div class="row">
                                    <div class="col-sm-6">
                                        <div class="form-group">
                                            <label class="control-label" for="observacion_formula">Observación Fórmula</label>
                                            <textarea id="observacion_formula" class="form-control" rows="3" disabled></textarea>
                                        </div>
                                    </div>
                                    <div class="col-sm-6">
                                        <div class="form-group">
                                            <label class="control-label" for="observacion_fabricacion">Observación Fabricación</label>
                                            <textarea name="OBSERVACION" id="observacion_fabricacion" class="form-control" rows="3"></textarea>
                                        </div>
                                    </div>
                                </div>
                                <table class="table table-bordered">
                                    <thead>
                                    <tr>
                                        <th>Orden</th>
                                        <th>Materia Prima</th>
                                        <th>%</th>
                                        <th>Volumen (L)</th>
                                        <th>Peso (Kg)</th>
                                        <th>Costo</th>
                                        <th>Acción</th>
                                    </tr>
                                    </thead>
                                    <tbody id="composicion_formula">
                                    <tr>
                                        <td colspan="7" class="text-center">Sin información</td>
                                    </tr>
                                    </tbody>
                                </table>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <div class="row pull-right">
            <div class="col-sm-12">
                <form id="form_guardar">
                    <input name="btn_guardar" type="submit" class="btn btn-primary" value="Finalizar">
                    <input name="btn_guardar" type="submit" class="btn btn-success" value="Guardar">
                    <button type="button" class="btn btn-danger" id="limpiar_fabricacion">Cancelar</button>
                </form>
            </div>
        </div>
    </div>

<?php $__env->stopSection(); ?>
<?php echo $__env->make('layouts.default', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>