var tabla;
//declaramos variables necesarias para trabajar con las Ventas y sus detalles
var impuesto			=16;
var cont				=0;
var detalles			=0;
var indicepermisoborrar	=-50;
var valido				=false;

$("#btnGuardar").hide();
//funcion que se ejecutan cuando todo fue cargado

//funcion que se ejecuta al inicio
function init(){
	mostrarform(false);
   	listar();
   	
	
	
	$("#btnGuardar").on("click",function(e){
		$('#myModalArt').modal('show');
		e.preventDefault();
		var idalmacensalida 	= $("#idalmacensalida").val();
		var idalmacenentrada 	= $("#idalmacenentrada").val();
		console.log(valido);
		if (valido){
			if (idalmacensalida==idalmacenentrada){
				bootbox.alert('No puede hacer un moviento de inventario del mismo almacen');
			}else{
				bootbox.confirm("¿Esta seguro que quiere guardar los dato?", function(result){
					if (result) {
						modificarValoresAnumerico();
						guardaryeditar();	
					}
				})
			}
		}else{
			bootbox.alert('Debe solucionar los movimientos de inventarios mayores al stock');
		} 
		
		//console.log(idalmacen1,nombre1,idalmacen2,nombre2);
	});


	// capturamos el evento click en agregar articulos
	$("#btnAgregarArt").on("click",function(e){
		//mostrararticuloalmacen();
		//console.log(idalmacen1,nombre1,idalmacen2,nombre2);
		$('#myModalA').modal('show');
	});

	// Se busca el codigo de barra
    $("#cod_barra").keypress(function(e) {
		var keycode = (e.keyCode ? e.keyCode : e.which);
		var codigobarra = $("#cod_barra").val();
		if (keycode == '13') {
			// Evitamos el envío real del enter
			e.preventDefault();
			// Hacemos la llamada al API Buscamos el codigo de barra
			buscarcodigodebarra(codigobarra);
			return false;
		}
	});
	/* Tras cargar el documento posicionamos el cursor en el lector de código de barras */
    document.addEventListener('DOMContentLoaded', function() {
		$("#cod_barra").val("");
		$("#cod_barra").focus();	
	});
	
	//se verifica si cambia los campos del formulario
	$("#idalmacensalida").change(function(){
		$("#cod_barra").val("");
		$("#cod_barra").focus();
		buscarAlmacen();
	});

	$("#idalmacenentrada").change(function(){
		$("#cod_barra").val("");
		$("#cod_barra").focus();
	});
	$("#fecha_hora").change(function(){
		$("#cod_barra").val("");
		$("#cod_barra").focus();
	});
   		
	$(document).keypress(function(e) {
		if(e.which == 13) {
			//alert('You pressed enter!');
			modificarSubtotales();
			return;
		}
	 });
}

function cargarselect() {
	//cargamos los items al Select de almacen
	$.post("controladores/articuloControlador.php?op=selectAlmacen", function(r){
		$("#idalmacensalida").html(r);
		$("#idalmacensalida").selectpicker('refresh');
	});
	$.post("controladores/articuloControlador.php?op=selectAlmacen", function(r){
		$("#idalmacenentrada").html(r);
		$("#idalmacenentrada").selectpicker('refresh');
		buscarAlmacen();
	});
}

function mostrararticuloalmacen() {
		/* Para obtener el texto de cada almacen
		$("#idalmacensalida option[value=1]").attr("selected",true);
		var idalmacensalida 	= $("#idalmacensalida").val();
		var idalmacenentrada 	= $("#idalmacenentrada").val();
		var select 				= document.getElementById("idalmacensalida") //El <select>
		var idalmacen1 			= select.value //El valor seleccionado
		console.log(idalmacen1);
		var nombre1 	= select.options[select.selectedIndex].innerText; //El texto de la opción seleccionada
		var select 		= document.getElementById("idalmacenentrada") //El <select>
        var idalmacen2 	= select.value //El valor seleccionado
		var nombre2 	= select.options[select.selectedIndex].innerText; //El texto de la opción seleccionada
		*/
	$('#myModalArt').modal('show');
	var id 				= $("#idalmacensalida option:selected").val();
	var texto 			= $("#idalmacensalida option:selected").text(); 
	console.log(id,texto)
	if (texto=='ALMACEN2'){
		$('#myModalB').modal('hide');
		$('#myModalA').modal('show');
	}else{
		$('#myModalA').modal('hide');
		$('#myModalB').modal('show');
	}	 
}

function actualizaralmacendeentrada(idalmacen1) {
	$("#idalmacenentrada").val(idalmacen1);
	$("#idalmacenentrada").selectpicker('refresh');
}



function buscarAlmacen() {  
// Haces referencia al elemento para no recorrer el DOM varias veces
/* Para obtener el texto de cada almacen
var idalmacen2 		= select2.value //El valor seleccionado
var nombre2 		= select2.options[select2.selectedIndex].innerText; //El texto de la opción seleccionada
var idalmacen1 		= select1.value //El valor seleccionado
*/
	var select1 		= document.getElementById("idalmacensalida") //El <select>
	var nombre1 		= select1.options[select1.selectedIndex].innerText; //El texto de la opción seleccionada
	var select2 		= document.getElementById("idalmacenentrada") //El <select>
	var idalmacen		= $("#idalmacensalida").val();

//console.log("idalmacen: "+idalmacen+" nombre: ",nombre1);
	listarArticulos(idalmacen)
}

//funcion limpiar
function limpiar(){
	
	$("#idmovimientoinventario").val("");
	$("#validar").val("");
	$("#idempresa_venta").val("");
	$("#idalmacensalida").val("");
	$("#idalmacensalida").selectpicker('refresh');
	$("#idalmacenentrada").val("");
	$("#idalmacenentrada").selectpicker('refresh');
	//$("#nromovimientoinventario").val("");
	$("#fecha_hora").val("");
	$("#total_venta").val(0);
	$("#total_venta1").val(0);
	$("#total_salida1").val(0);
	$("#total_salida").val(0);
	
	$("#total_entrada1").val(0);
	$("#total_entrada").val(0);

	$(".filas").remove();
	$("#total").html("0");

	//obtenemos la fecha actual
	var now 	= 	new Date();
  var today   = 	new Date();
	var dd 		=	("0"+now.getDate()).slice(-2);
  var mm		=	("0"+(now.getMonth()+1)).slice(-2);
  var yyyy    =   now.getFullYear();
	var today	=	yyyy+'-'+mm+'-'+dd;
	$(fecha_hora).val(today);
	
}

//funcion mostrar formulario
function mostrarform(flag){
	limpiar();
	if(flag){
		$("#listadoregistros").hide();
		$("#formularioregistros").show();
		$("#formularioregistros1").show();
		//listarArticulosa();
   	//listarArticulosb();
		buscarNroMovimiento();
		cargarselect();
		//$("#btnGuardar").prop("disabled",false);
		$("#btnagregar").hide();
		$("#btnGuardar").hide();
		$("#btnCancelar").show();
		detalles=0;
		$("#btnAgregarArt").show();
		$("#cod_barra").val("");
		$("#cod_barra").focus();

	}else{
		$("#listadoregistros").show();
		$("#formularioregistros").hide();
		$("#formularioregistros1").hide();
		$("#btnagregar").show();
	}
}

//cancelar form
function cancelarform(){
	limpiar();
	mostrarform(false);
}

//funcion listar
function listar(){
	tabla=$('#tbllistado').dataTable({
		"aProcessing": true,//activamos el procedimiento del datatable
		"aServerSide": true,//paginacion y filrado realizados por el server
		dom: 'Bfrtip',//definimos los elementos del control de la tabla
		buttons: [
                  'copyHtml5',
                  'excelHtml5',
                  'csvHtml5',
                  'pdf'
		],
		"ajax":
		{
			url:'controladores/movimientoinventarioControlador.php?op=listar',
			type: "get",
			dataType : "json",
			error:function(e){
				console.log(e.responseText);
			}
		},
		"bDestroy":true,
		"iDisplayLength":-1,//paginacion
		"order":[[4,"desc"]]//ordenar (columna, orden)
	}).DataTable();
}

function listarArticulos(idalmacen1){
	console.log('Estamos en listara y almacen:'+idalmacen1);
	tabla=$('#tblarticulosa').dataTable({
		"aProcessing": true,//activamos el procedimiento del datatable
		"aServerSide": true,//paginacion y filrado realizados por el server
		dom: 'Bfrtip',//definimos los elementos del control de la tabla
		buttons: [

		],
		"ajax":
		{
			url:'controladores/ventanControlador.php?op=listarArticulosm',
			type: "post",
			data: {
				idalmacen1 : idalmacen1
			},
			dataType : "json",
			error:function(e){
				console.log(e.responseText);
			}
		},
		"bDestroy":true,
		"iDisplayLength":-1,//paginacion
		"order":[[0,"desc"]]//ordenar (columna, orden)
	}).DataTable();
}

function listarArticulosa(idalmacen1){
	tabla=$('#tblarticulosa').dataTable({
		"aProcessing": true,//activamos el procedimiento del datatable
		"aServerSide": true,//paginacion y filrado realizados por el server
		dom: 'Bfrtip',//definimos los elementos del control de la tabla
		buttons: [

		],
		"ajax":
		{
			url:'controladores/movimientoinventarioControlador.php?op=listarArticulosa',
			type: "get",
			dataType : "json",
			error:function(e){
				console.log(e.responseText);
			}
		},
		"bDestroy":true,
		"iDisplayLength":-1,//paginacion
		"order":[[0,"desc"]]//ordenar (columna, orden)
	}).DataTable();
}

function listarArticulosb(){
	tabla=$('#tblarticulosb').dataTable({
		"aProcessing": true,//activamos el procedimiento del datatable
		"aServerSide": true,//paginacion y filrado realizados por el server
		dom: 'Bfrtip',//definimos los elementos del control de la tabla
		buttons: [

		],
		"ajax":
		{
			url:'controladores/movimientoinventarioControlador.php?op=listarArticulosb',
			type: "get",
			dataType : "json",
			error:function(e){
				console.log(e.responseText);
			}
		},
		"bDestroy":true,
		"iDisplayLength":-1,//paginacion
		"order":[[0,"desc"]]//ordenar (columna, orden)
	}).DataTable();
}

// se busca el ultimo moviento de inventario
function buscarNroMovimiento(){
	$.post("controladores/movimientoinventarioControlador.php?op=buscarNroMovimiento",
		function(data,status)
		{
			data=JSON.parse(data);
			if ((data == null)||(data == "undefined")) {
				nromovimientos=1;	
			}else{
				nromovimientos	=	numero(data.ultimomovimiento) + 1;
			}
			$("#nromovimientoinventario").val(nromovimientos);
			console.log(nromovimientos);
	});
}

function guardar(evaluar) {
	alert('dio click');
}

//funcion para guardaryeditar
function guardaryeditar(){
     //e.preventDefault();//no se activara la accion predeterminada 
     //$("#btnGuardar").prop("disabled",true);
     var formData=new FormData($("#formulario")[0]);

     $.ajax({
     	url: "controladores/movimientoinventarioControlador.php?op=guardaryeditarindividual",
     	type: "POST",
     	data: formData,
     	contentType: false,
     	processData: false,

     	success: function(datos){
     		bootbox.alert(datos);
     		mostrarform(false);
     		listar();
     	}
     });

     limpiar();
}

function mostrar(idmovimientoinventario){
	$.post("controladores/movimientoinventarioControlador.php?op=mostrar",{idmovimientoinventario : idmovimientoinventario},
		function(data,status)
		{
			data=JSON.parse(data);
			mostrarform(true);

			$("#idmovimientoinventario").val(data.idmovimientoinventario);
			$("#idalmacensalida").val(data.almacensalida);
			$("#idalmacensalida").selectpicker('refresh');
			$("#idalmacenentrada").val(data.almacenentrada);
			$("#idalmacenentrada").selectpicker('refresh');
			$("#nromovimientoinventario").val(data.nromovimiento);
			$("#fecha_hora").val(data.fecha);
						
			//ocultar y mostrar los botones
			$("#btnGuardar").hide();
			$("#btnCancelar").show();
			$("#btnAgregarArt").hide();
			$("#btnAgregarSer").hide();
			$("#btnTotalizar").hide();
			$("#btnAgregarBar").hide();
			
		});
	$.post("controladores/movimientoinventarioControlador.php?op=listarDetalle&id="+idmovimientoinventario,function(r){
		$("#detalles").html(r);
	});

}





//funcion para desactivar
function anular(idmovimientoinventario){
	bootbox.confirm("¿Esta seguro de desactivar este dato?", function(result){
		if (result) {
			$.post("controladores/movimientoinventarioControlador.php?op=anular", {idmovimientoinventario : idmovimientoinventario}, function(e){
				bootbox.alert(e);
				tabla.ajax.reload();
			});
		}
	})
}


function buscarcodigodebarra(codbarra){
	//alert ('buscando codigo de barra: '+codbarra);
	$.ajax({
		url: 'complemento/leercodigobarra.php',
		method: 'post',
		data: {
			codigobarra: codbarra,
		},
		})
		.done(function(datos) {
		/* Depuramos los datos recibidos */
		console.log( datos );
		/* Si no se devolvió ningún registro (false) debería hacerse algo */
		if (datos === false) {
			/* hacer algo */
			//bootbox.alert('No se encontró el código de barras');
			//Ahora buscamos en la tarjeta de cliente
			//buscarcodigodebarratarjetapendiente(codbarra)
			$("#cod_barra").val("");
			$("#cod_barra").focus(); 
			return;
		}
		/* Agregamos una fila con los datos obtenidos */
		   agregarDetalle(datos.idarticulo,datos.nombre,datos.precio,datos.porcentaje,datos.numerolote,datos.fecha);
			$("#cod_barra").val("");
			$("#cod_barra").focus();
		})
		.fail(function() {
			alert( "Error" );
		})
		.always(function() {
		/* Seleccionamos el texto para que se pueda sobreescribir por la siguiente lectura */
		$("input[name='cod_barra']").select();
		});
}


function agregarDetalle(idarticulo,idalmacen,articulo,precio_venta,preciod,porcentaje,numerolote,fecha,exento,impuestoart18,impuestoart18d,preciopvp,preciopvpd,stock,idarticulo1,idalmacen1,articulo1,factordeconversion){
	var cantidad	=	1;

	if (idarticulo!="") {
		var fila='<tr class="filas" id="fila'+cont+'">'+
								'<td><button type="button" class="btn btn-danger" onclick="eliminarDetalle('+cont+')">X</button></td>'+
								'<td style="width:120px"><input type="text" name="stock1[]" id="stock1[]" style="text-align:center;width:120px;background-color: #abb7d8;border: 0" value="'+number_format(stock)+'" readonly></td>'+
								'<td style="width:400px"><input type="hidden" name="idarticulo[]" value="'+idarticulo+'">'+articulo+'</td>'+
								'<td style="width:200px"><input type="text" name="cantidad[]" id="cantidad[]" style="text-align:right;width:200px"  value="'+number_format(cantidad)+'"></td>'+
								'<td style="width:400px"><input type="hidden" name="idarticulo1[]" value="'+idarticulo1+'">'+articulo1+'</td>'+
								'<td style="width:200px"><input type="text" name="cantidad1[]" id="cantidad1[]" style="text-align:right;width:200px"  value="'+number_format(cantidad*factordeconversion)+'"></td>'+
								'<td style="width:200px"><input type="text" name="subtotal[]" id="subtotal[]" style="text-align:right;width:200px;border: 0"  value="'+number_format(cantidad)+'"></td>'+
								'<td style="width:120px"><input type="text" name="estado[]" id="estado[]" style="width:120px;text-align:center;border: 0" value="ok" readonly></td>'+
								'<td><button type="button" onclick="modificarSubtotales()" class="btn btn-info"><i class="fa fa-refresh"></i></button>'+
								'<input type="hidden" name="idalmacen[]" id="idalmacen[]" value="'+idalmacen+'">'+
								'<input type="hidden" name="idalmacen1[]" id="idalmacen1[]" value="'+idalmacen1+'">'+
								'<input type="hidden" name="factorc[]" id="factorc[]" value="'+factordeconversion+'">'+
								'</td>'+
						'</tr>';
		cont++;
		detalles++;
		$('#detalles').append(fila);
		actualizaralmacendeentrada(idalmacen1);
		modificarSubtotales();

	}else{
		alert("error al ingresar el detalle, revisar las datos del articulo ");
	}
}


function modificarValoresAnumerico(){
	var cant	=	document.getElementsByName("cantidad[]");
	var cant1	=	document.getElementsByName("cantidad1[]");
	var sub		=	document.getElementsByName("subtotal[]");
	var stoc	=	document.getElementsByName("stock1[]");
	for (var i = 0; i < cant.length; i++) {
		var Cmod	=	cant[i];
		var Cmod1	=	cant1[i];
		var Stmod	=	stoc[i];
		var Smod	=	sub[i];
		Cmod.value	=	numero(Cmod.value);
		Cmod1.value	=	numero(Cmod1.value);
		Stmod.value	=	numero(Stmod.value);
		Smod.value	=	numero(Smod.value);
	}
}

function modificarSubtotales(){
	var cant	=	document.getElementsByName("cantidad[]");
  var cant2	=	document.getElementsByName("cantidad1[]");
	var sub		=	document.getElementsByName("subtotal[]");
	var stoc	=	document.getElementsByName("stock1[]");
  var fact	=	document.getElementsByName("factorc[]");
	
	for (var i = 0; i < cant.length; i++) {
		var canM	=	cant[i];
    var canM2	=	cant2[i];
		var subM	=	sub[i];
		var subMt	=	sub[i];
		var stoct	=	stoc[i];
    var factt	=	fact[i];
		var stoctM	=	stoct.value;
		//console.log(stoctM);
		canM.value	=	numero(canM.value);
		stoctM		  =	numero(stoctM);
		//console.log(stoctM);
		subM.value	=	canM.value;
		subMt.value = 	subM.value;
    canM2.value  = canM.value*factt.value;
	}
	calcularTotales();
}

function calcularTotales(){
	//var sub = document.getElementsByName("subtotal");
	var sub		=document.getElementsByName("subtotal[]");
	var cant	=document.getElementsByName("cantidad[]");
  var cant1	=document.getElementsByName("cantidad1[]");
	var stoc	=document.getElementsByName("stock1[]");
	var estad	=document.getElementsByName("estado[]");
	var total	    =0.0;
	var totalf	  =0.0;
  var totalc	  =0.0;
	var totalfc	  =0.0;
  var totalc1	  =0.0;
	var totalfc1	=0.0;
	valido=true;

	for (var i = 0; i < sub.length; i++) {
		var subt	  =	sub[i];
		var cantt	  = 	cant[i];
    var cantt1  = 	cant1[i];
		var stockt	= 	stoc[i];
		var estadt	= 	estad[i];
		console.log(cantt.value,stockt.value,subt.value);
		// verde 36E208
		// rojo E21508
		estadt.style.backgroundColor 		= "#36E208";
		estadt.value 						= 'ok'
		if (cantt.value>numero(stockt.value)){
			estadt.value 					= 'cantidad es mayor que el stock'
			estadt.style.backgroundColor 	= "#E21508";
			valido=false;
		}
		//total += document.getElementsByName("subtotal")[i].value;
		total 		+= 	numero(subt.value);
    totalc 		+= 	numero(cantt.value);
    totalc1 	+= 	numero(cantt1.value);
		cantt.value	=	number_format(cantt.value);
		subt.value	=	number_format(subt.value);
		console.log(cantt.value,subt.value);
	}

	totalf	  = number_format(total,2);
  totalfc	  = number_format(totalc,2);
  totalfc1	= number_format(totalc1,2);
	$("#total").html("");
	$("#total_venta1").val(totalf);
	$("#total_venta").val("");
	$("#total_venta").val(total);

  $("#totals").html("");
	$("#total_salida1").val(totalfc);
	$("#total_salida").val("");
	$("#total_salida").val(totalc);

  $("#totale").html("");
	$("#total_entrada1").val(totalfc1);
	$("#total_entrada").val("");
	$("#total_entrada").val(totalc1);
	console.log('$("#total_entrada").val(): '+$("#total_entrada").val())

	$("#cod_barra").val("");
	$("#cod_barra").focus(); 
	evaluar();
}

function evaluar(){
	$("#cod_barra").val("");
	$("#cod_barra").focus();    
	if (detalles>0) 
	{
		$("#btnGuardar").show();
	}
	else
	{
		$("#btnGuardar").hide();
		cont=0;
	}
}


function eliminarDetalle(indice){
$("#fila"+indice).remove();
calcularTotales();
detalles=detalles-1;

}

init();