var Deudas=function(){
	this.baseUrl=null;
	this.scroll=true;
	this.test=function(){
		console.log('La clase Clientes ha sido instanciado correctamente');
	}
	this.setUrl=function(url){
		this.baseUrl=url;
	}
	
	this.cargarTrans=function(){
		var tableTrans = $('#detalles-deuda-transacciones-table').DataTable();
		tableTrans.ajax.reload();
		setTimeout(function () { $('div.dataTables_filter input').focus(); }, 100);
	}
	
	this.guardarTrans=function(e){
		var sender = '#guardar-transaccion';
		$(sender).attr('disabled','disabled');
		var parent = this;
		
		swal({
            title: 'Guardar Transacci&oacute;n ',
            text: 'Este proceso es irreversible<br>&iquest;Deseas guardar esta Transacci&oacute;n?',
			html: true,
            type: 'info',
            showCancelButton: true,
            confirmButtonColor: '#3C8DBC',
            confirmButtonText: 'Si, guardar transaccion',
			cancelButtonText: 'No guardar nada'
        },
        function(isConfirm) {
			if(isConfirm){
				var nuevoSaldo = 0;				
				if($("#tipo_transaccionxd").val() == 0){
					nuevoSaldo = parseFloat($("#saldo_deuda").val()) + parseFloat($("#monto_transaccionxd").val());
					if(nuevoSaldo > parseFloat($("#monto_deuda").val())){
						setTimeout(function () {
							swal({
								title: 'Guardar Transacci&oacute;n',
								text: 'Esta transaccion supera el monto de apertura de esta Deuda<br>&iquest;Deseas guardar esta Transacci&oacute;n de todos modos?',
								html: true,
								type: 'info',
								showCancelButton: true,
								confirmButtonColor: '#3C8DBC',
								confirmButtonText: 'Si, guardar transaccion',
								cancelButtonText: 'No guardar nada'
							},
							function(isConfirm) {
								if(isConfirm){
									$("#saldo_deuda").val(nuevoSaldo.toFixed(2));
									$("#saldo-deuda").text(' '+nuevoSaldo.toFixed(2));
									$("#monto-deuda").text(' '+nuevoSaldo.toFixed(2));
									$("#nuevo_monto_deuda,#monto_deuda").val(nuevoSaldo.toFixed(2));
									
									var options = {
										beforeSubmit:function(){
											
										},
										success:function(responseText){
											toastr.options = {
											  "closeButton": true,
											  "progressBar": true,
											  "positionClass": "toast-top-right"
											}
											toastr.success('La Transacci&oacute;n se ha guardado en la Base de Datos del Sistema');
											parent.cargarTrans();
											deudas.detalles($("#id_proveedor").val());
											$("#tipo_transaccionxd,#ref_transaccionxd,#monto_transaccionxd").val("");
										}
									};
									
									$('#formSaveTrans').ajaxSubmit(options);
								}else{
									
								}          
							});
						}, 300);
					}
				}else{
					nuevoSaldo = parseFloat($("#saldo_deuda").val()) - parseFloat($("#monto_transaccionxd").val());
					if(nuevoSaldo >= 0){
						$("#saldo_deuda").val(nuevoSaldo.toFixed(2));
						$("#saldo-deuda").text(' '+nuevoSaldo.toFixed(2));
						
						if(nuevoSaldo == 0){
							$("#estado_deuda").val("1");
						}
						
						var options = {
							beforeSubmit:function(){
								
							},
							success:function(responseText){
								toastr.options = {
								  "closeButton": true,
								  "progressBar": true,
								  "positionClass": "toast-top-right"
								}
								toastr.success('La Transacci&oacute;n se ha guardado en la Base de Datos del Sistema');
								parent.cargarTrans();
								deudas.detalles($("#id_proveedor").val());
								$("#tipo_transaccionxd,#ref_transaccionxd,#monto_transaccionxd").val("");
							}
						};
						
						$('#formSaveTrans').ajaxSubmit(options);
					}else{
						toastr.options = {
						  "closeButton": true,
						  "progressBar": true,
						  "positionClass": "toast-top-right"
						}
						toastr.error('El monto supera el Saldo('+$("#saldo_deuda").val()+'), ingrese una cantidad valida');
						setTimeout(function () { $("#monto_transaccionxd").focus(); }, 100);
					}
				}
				if($("#estado_deuda").val() == 0){
					$(sender).removeAttr('disabled');					
				}
			}else{							
				$(sender).removeAttr('disabled');
			}
		});
		
		e.preventDefault();
	}
	
	this.cargar=function(reset,offset){
		if(this.scroll){
			this.scroll=false;
			this.loader($('#deudas-lista-table tbody tr.tr-loader td:first'),'start');
			if(reset){
				$("#deudas-lista-table").find("tr:not(.tr-loader)").remove();
			}
			jQuery.ajaxSetup({async:false});
			$.get(this.baseUrl+"proveedores/cargardeudas",{search:$('#creditos-search-str').val(),offset:offset},function(proveedores){
				 if(proveedores){
					$.each(proveedores,function(i,proveedor){
						var proveedorHtml="<tr id='proveedor-"+proveedor.id+"'><td><h4>"+proveedor.nombre+"</h4><small>"+proveedor.razon+"</small></td></tr>";
						$(proveedorHtml).insertBefore('.tr-loader');
					});
				}else{
					toastr.options = {
					  "closeButton": true,
					  "positionClass": "toast-bottom-right"
					}
					toastr.warning('&iexcl;No se han encontrado más proveedores en la base de datos del sistema!');
				}
			},"json");
			this.loader($('#deudas-lista-table tbody tr.tr-loader td:first'),'stop');
			this.scroll=true; 
		}
	}
	this.detalles=function(id){
		$("#deudas-detalles-ajax-wrapper").html('');
		this.loader($('#deudas-detalles-ajax-wrapper'),'start');
		$("#deudas-detalles-info-wrapper").hide();
		$.get(this.baseUrl+"proveedores/detallesdeudasxcproveedor",{id:id},function(cliente){
			$("#deudas-detalles-ajax-wrapper").html(cliente);
		},"html");
	}
	this.eliminar=function(id,nombre,saldo){
		if(saldo>0){
			swal({
			  title: "No es posible eliminar este record",
			  text: "El proveedor "+nombre+" posee uno o varios creditos con saldos activos",
			  type: "error"
			});
		}else{
			 var _this=this;
			swal({
			 html:true,
			  title: "&iquest;Eliminar creditos de "+nombre+"?",
			  text: "Esta acci&oacute;n eliminar&aacute; definitivamente la informaci&oacute;n crediticia del proveedor. &iquest;Esta seguro que desea continuar?",
			  type: "warning",
			  showCancelButton: true,
			  confirmButtonColor: "#DD6B55",
			  cancelButtonText: "Cancelar",
			  confirmButtonText: "Si, Eliminar"
			},function(){
				$.get(_this.baseUrl+"proveedores/eliminardeuda",{id:id},function(deleted){
					if(deleted){
						toastr.options = {
						  "closeButton": true,
						  "progressBar": true,
						  "positionClass": "toast-top-right"
						}
						toastr.success('El record crediticio con <b>'+nombre+'</b> se ha eliminado.');
						$("#deudas-detalles-ajax-wrapper").html('');
						$("#deudas-detalles-info-wrapper").show();
						 _this.cargar(true,0);
					}
				},'text');
			});
		}
	}
	this.loader=function($wrapper,action){
		if(action=='start'){
			var load=$(document.createElement('div')).attr('class','sk-spinner sk-spinner-fading-circle');
			for(var i=1; i<=12; i++){
				$(document.createElement('div')).attr('class','sk-circle'+i+' sk-circle').appendTo(load);
			}
			load.appendTo($wrapper);
		}else if('stop'){
			$wrapper.find('.sk-spinner').remove();
		}
	}
}
var deudas = new Deudas();