var Entradas=function(){
	this.baseUrl=null;
	this.setUrl=function(url){
		this.baseUrl=url;
	}
	this.test=function(){
		console.log('La clase Entradas ha sido instanciado correctamente');
	}
	
	this.cargarTrans=function(table){
		if(table == "Entradas por transacciones"){
			var tableInventario = $('#entradas-agrupadas-table').DataTable();			
		}else{
			var tableInventario = $('#entradas-individuales-table').DataTable();			
		}
		tableInventario.ajax.reload();
		setTimeout(function () { $('div.dataTables_filter input').focus(); }, 100);
	}
	
	this.guardarEntradasInventarioInicial=function(e){
		var sender = '#guardar-entradas';
		$(sender).attr('disabled','disabled');
		var parent = this;
		var cadena = [];
		if($('#table-entradas-inventario-inicial tbody tr').length == 0){
			toastr.options = {
			  "closeButton": true,
			  "progressBar": true,
			  "positionClass": "toast-top-right"
			}
			toastr.error('No has agregado ningun Producto, agregue al menos 1');
			$(sender).removeAttr('disabled');
			$('.frame-producto-sku').focus();
		}else{
			swal({
				title: 'Guardar Transacci&oacute;n ',
				text: 'Este proceso es irreversible<br>&iquest;Deseas guardar la entrada de '+$("#table-entradas-inventario-inicial tbody tr").size()+' items como inventario inicial?',
				html: true,
				type: 'info',
				showCancelButton: true,
				confirmButtonColor: '#3C8DBC',
				confirmButtonText: 'Si, guardar en entrada',
				cancelButtonText: 'No guardar nada'
			},
			function(isConfirm){
				if(isConfirm){
					$('#table-entradas-inventario-inicial tbody tr').each(function(index) {
						cadena.push({id_producto:$(this).attr('data-id'),id_presentacion:$(this).attr('data-pre'),uequiv:$(this).attr('data-uequiv'),precios:$(this).attr('data-precios'),cant_producto:$(this).find('.table-cant').attr('data-value'),costo_producto:$(this).find('.table-costo').attr('data-value')});
					});
					$.post(parent.baseUrl+'productos/guardar_entradas', {productos:JSON.stringify(cadena)})
						.done(function(responseText){
							//alert(responseText);
							toastr.options = {
							  "closeButton": true,
							  "progressBar": true,
							  "positionClass": "toast-top-right"
							}
							toastr.success('La entrada de Productos se ha registrado en la Base de Datos del Sistema');
							parent.cargarTrans($("#entradas-mode-btn").text());
							getAlertsMiracle15();
							Custombox.close();
						});
				}else{
					$(sender).removeAttr('disabled');
				}
			});		
		}
		e.preventDefault();
	}
	this.guardarEntradaMultiple=function(e){
		e.preventDefault();
		var $sender = $(e.target);	
		$sender.attr('disabled','disabled');
		var _this=this;
		var productos=[];
		if($('#multiple-entrada-productos-table tbody tr').length == 0){
			toastr.options = {
			  "closeButton": true,
			  "progressBar": true,
			  "positionClass": "toast-top-right"
			}
			toastr.error('No has agregado ningun Producto, agregue al menos 1');
			$sender.removeAttr('disabled');
		}
		else{
			var transaccion=$("#entrada-nueva-transaccion-tipo option:selected").text();
			swal({
				title: 'Guardar Transacci&oacute;n ',
				text: 'Este proceso es irreversible<br>&iquest;Deseas guardar la entrada de '+$("#multiple-entrada-productos-table tbody tr").size()+' items como '+transaccion+'?',
				html: true,
				type: 'info',
				showCancelButton: true,
				confirmButtonColor: '#3C8DBC',
				confirmButtonText: 'Si, guardar entrada',
				cancelButtonText: 'No guardar nada'
			},
			function(isConfirm){
				if(isConfirm){
					var products=$("#multiple-entrada-productos-table tr");
					$.each(products,function(index,product){
						productos.push({id:$(product).attr('data-id'),pre:$(product).attr('data-pre'),uequiv:$(product).attr('data-uequiv'),desc:$(product).find('.table-desc').attr('data-value'),cant:$(product).find('.table-cant').attr('data-value'),costo:$(product).find('.table-costo').attr('data-value'),tipoventa:$(product).find('.table-tipoventa').attr('data-value')});
					});	
					$.post(_this.baseUrl+'productos/guardar_entrada_multiple', {entrada:$('#entrada-nueva-transaccion-tipo').val(),productos:JSON.stringify(productos)})
					.done(function(responseText) {
						toastr.options = {
							"closeButton": true,
							"progressBar": true,
							"positionClass": "toast-top-right"
						}
						toastr.success('La entrada se ha registrado en la Base de Datos del Sistema');
						_this.cargarTrans($("#entrada-mode-btn").text());
						getAlertsMiracle15();
						Custombox.close();
					});		
				}else{
					$sender.removeAttr('disabled');
				}
			});
		}
	}
	/*------------------------------ Compras ------------------------------*/
	this.guardarEntradaCompras=function(){
		var _this=this;
		var productos=[];
		var totales=[];
		var gastosarray=[];
		var products=$("#nueva-entrada-compra-productos-wrapper table tr");
		var gastostr=$("#nueva-entrada-compra-gastos-wrapper table tbody tr");
		var totals=$("#nueva-entrada-compra-totales-wrapper tr");
		$.each(products,function(index,product){
			productos.push({id:$(product).attr('data-id'),id_presentacion:$(product).attr('data-pre'),uequiv:$(product).attr('data-uequiv'),desc:$(product).find('.table-desc').attr('data-value'),cant:$(product).find('.table-cant').attr('data-value'),costo:$(product).find('.table-costo').attr('data-value'),tipoventa:$(product).find('.table-tipoventa').attr('data-value')});
		});
		$.each(totals,function(index,total){
			switch($(total).attr('class')){
				case 'totalSumas':totales.push({totalSumas:$(total).find('.totalval').attr('data-value')});break;
				case 'totalGrabadas':totales.push({totalGrabadas:$(total).find('.totalval').attr('data-value')});break;
				case 'totalIVA':totales.push({totalIVA:$(total).find('.totalval').attr('data-value')});break;
				case 'totalIVApercibido':totales.push({totalIVApercibido:$(total).find('.totalval').attr('data-value')});break;
				case 'totalIVAretenido':totales.push({totalIVAretenido:$(total).find('.totalval').attr('data-value')});break;
				case 'totalSubtotal':totales.push({totalSubtotal:$(total).find('.totalval').attr('data-value')});break;
				case 'totalNS':totales.push({totalNS:$(total).find('.totalval').attr('data-value')});break;
				case 'totalExento':totales.push({totalExento:$(total).find('.totalval').attr('data-value')});break;
				case 'totalTotal':totales.push({totalTotal:$(total).find('.totalval').attr('data-value')});break;
			}
		});
		if(gastostr.size()>0){
			$.each(gastostr,function(index,_gasto){
			 	gastosarray.push({gasto:$(_gasto).find('.table-desc').attr('data-value'),importe:$(_gasto).find('.table-total').attr('data-value')});
			});
			 gastos=JSON.stringify(gastosarray);
		}else{
			gastos='none';
		}
		$("#nueva-compra-precios-tab").attr('data-toggle','tab');
		$("#nueva-compra-precios-tab").trigger('click'); 
		$.post(_this.baseUrl+'productos/guardarcompra', {proveedor:$('#nueva-compra-proveedor').val(),condicion:$('#nueva-compra-condicion').val(),documento:$('#nueva-compra-documento').val(),numero:$('#nueva-compra-documento-numero').val(),credito:$('#credito-compra').val(),fechacred:$('#ncredito-fecha-limite').val(),productos:JSON.stringify(productos),totales:JSON.stringify(totales),gasto:gastos,totalgasto:$('#nueva-entrada-gastos-total').attr('data-value')})
		.done(function(reponse) {
			 $("#nueva-compra-precios-wrapper").html(reponse); 
		});
			
	}
	this.validarEntradaCompra=function(e){
		e.preventDefault();
		var $sender=$(e.target);
		$sender.attr('disabled','disabled');
		var _this=this;
		if($("#nueva-entrada-compra-productos-wrapper table tr").size()>0){/*Verificar tabla de productos*/
			if($("#nueva-compra-proveedor").val()){/*Verificar el proveedor*/
				if($.trim($("#nueva-compra-documento-numero").val())!=''){/*Verificar numero*/
					if($("#nueva-compra-condicion").val()=='1' && $("#credito-compra").val()==''){/*Verificar credito*/
						this.setCredito($("#nueva-compra-proveedor").val());
						$sender.removeAttr('disabled');
						return false;
					}else{
						return true; 
					}
				}else{
					this.showMsgEntradaCompras('error','No se ha ingresado el numero de documento de compra');
					$("#nueva-compra-documento-numero").focus();
					$sender.removeAttr('disabled');
					return false;
				}
			}else{
				this.showMsgEntradaCompras('error','Debe seleccionar un proveedor para registrar la compra');
				$sender.removeAttr('disabled');
				return false;
			}
		}else{
			this.showMsgEntradaCompras('error','No se han ingresado productos en la tabla de compras.');
			$sender.removeAttr('disabled');
			$("#nueva-compra-producto-sku").focus();
			return false;
		}
	}
	this.showMsgEntradaCompras=function(tipo, mensaje){
		toastr.options = {
			"closeButton": true,
			"progressBar": true,
			"positionClass": "toast-top-right"
		}
		toastr[tipo](mensaje);
	}
	this.setCredito=function(id){
		Custombox.open({
			target:this.baseUrl+'proveedores/creditosxproveedormin?proveedor='+id, 
			effect: 'fadein',
			complete:function(){
				$(".modal-body input:text").first().focus();
			}
		});
	}
}
var entradas = new Entradas();