var Transacciones_devolucion_app =function(){
	this.baseUrl=null;
	this.windowId=null;
	this.caja=null;
	this.TransTools=null;
	this.keys=null;
	this.devApp=null;
/* 	this.config={
		transacciones_validar_precio:null,
		transacciones_validar_existencia:null
	} */
	this.initializeEnviroment=function(url,winId,caja){
		this.baseUrl=url;
		this.windowId=winId;
		this.caja=caja;
		this.initializeGUIComponets();
		this.initializeTools();
		this.initializeListeners();
		this.initializeHotKeys();
	}
	/*Inicializar componentes de la interfaz*/
	this.initializeGUIComponets=function(){
		/*foco*/
		$("#"+this.windowId+" #devolucion-venta-idtrans-doc").focus();
		/*Mascaras*/
		$("#"+this.windowId+" #devolucion-venta-cliente-dui").inputmask({mask:"[99999999-9]"});
		$("#"+this.windowId+" #devolucion-venta-cliente-nit").inputmask({mask:"[9999-999999-999-9]"});
		/*scroll*/
		$("#"+this.windowId+" #devolucion-venta-info-panel").slimScroll({height:"65px",alwaysVisible:true});
		$("#"+this.windowId+" #devolucion-productos-wrapper").slimScroll({
			height: '125px'
		});
		$("#"+this.windowId+" #devoluciones-ventas-list").slimScroll({
			height: '250px'
		});
		$("#"+this.windowId+" #creditos-cliente-select-list-wrapper").slimScroll({
			height: '200px'
		});
	},
	/*Inicializar clase de apoyo*/
	this.initializeTools=function(){
		/*Transaciones*/
		this.TransTools=new Transaccionestools(this.baseUrl);
		this.TransTools.setProductTable($("#"+this.windowId+"  #devolucion-productos-wrapper > table"));
		this.TransTools.setTotalTable($("#"+this.windowId+" #devolucion-totales-wrapper"));
		this.TransTools.SetTotalsProfile('grabadas,nosujetas,exentas,total','grabadas|+|nosujetas|+|exentas',true);
		/*Devoluciones*/
		this.devApp= new Devoluciones();
		this.devApp.setUrl(this.baseUrl);
	}
	/*EVENTOS*/
	this.initializeListeners=function(){
		var _this=this;
		/*SELECT documento venta (CHANGE)*/
		$("#"+this.windowId+" #devolucion-venta-documento").change(function(){
			_this.loadSeries($.trim($(this).val()),true,$("#"+_this.windowId+" #devolucion-venta-documento-series"),null);
			$("#"+_this.windowId+" #devolucion-venta-num-doc").focus();
		});
		/*BOTON cargar ventas (CLICK)*/
		$("#"+this.windowId+" #devolucion-cargar-venta-btn").click(function(){
			if(!$(this).is(':disabled')){
				if($(this).attr('data-mode')=='load'){
					_this.cargarVentas({doctype:$("#"+_this.windowId+" #devolucion-venta-documento"),serie:$("#"+_this.windowId+" #devolucion-venta-documento-series"),num:$("#"+_this.windowId+"  #devolucion-venta-num-doc")},null,$(this));
				}else{
					_this.resetForm($("#"+_this.windowId+" #devolucion-venta-documento"));
					$("#"+_this.windowId+" #devolucion-venta-documento").focus();
				}
			}			
		});
		/*BOTON cargar ventas transid (CLICK)*/
		$("#"+this.windowId+" #devolucion-cargar-venta-idtrans-btn").click(function(){
			if(!$(this).is(':disabled')){
				if($(this).attr('data-mode')=='load'){
					_this.cargarVentas(null,{id:$("#"+_this.windowId+" #devolucion-venta-idtrans-doc")},$(this));
				}else{
					_this.resetForm($("#"+_this.windowId+" #devolucion-venta-idtrans-doc"));
					$("#"+_this.windowId+" #devolucion-venta-idtrans-doc").focus();
				}
			}
		});
		/*CELDA cargar informacion de una venta (DOBLE CLICK)*/
		$("#"+this.windowId+" #devoluciones-ventas-list").on("dblclick","table > tbody > tr",function(){
			var currentSel = $(this);
			_this.cargarVentaInfo($(this).attr("id").split("-")[1]);
		});
		/*BOTON quitar producto a la tabla (CLICK)*/
		$("#"+this.windowId+" #devolucion-productos-wrapper").on('click','table tr td.table-del',function(){
			var tr=$(this).closest('tr');
			_this.TransTools.removeProductToTable($(tr));
		});
		/*BOTON guarrdar devolucion (ClLICK)*/
		$("#"+this.windowId+" #guardar-devolucion-btn").click(function(){
			if(!$(this).is(':disabled')){
				$(this).attr('disabled','disabled');
				/*Ajuste de nota de credito*/
				if($("#"+_this.windowId+" #devolucion-productos-wrapper table tr").size() < $("#"+_this.windowId+" #devolucion-venta-product-counter").val()){
					$(".ct option[value='X']").remove();
					$("#"+_this.windowId+" #devolucion-documento option[value='2']").remove();
					$("#"+_this.windowId+" #devolucion-doc-ncred-serie").removeAttr("disabled");
					$("#"+_this.windowId+" #devolucion-doc-ncred-numero").removeAttr("disabled");
					_this.loadSeries(8,true,$("#"+_this.windowId+" #devolucion-doc-ncred-serie"),$("#"+_this.windowId+" #devolucion-doc-ncred-numero"));
				}
				$("#"+_this.windowId+" #nueva-devolucion-cliente-info").on("shown.bs.modal", function (){
					$("#"+_this.windowId+" #nueva-devolucion-doc-guardar-btn").focus();
				});
				$("#"+_this.windowId+" #nueva-devolucion-cliente-info").modal("show");
			}
		});
		/*SELECT documento devolucion (CHANGE)*/
		$("#"+this.windowId+" #devolucion-documento").click(function(){
			if($(this).val()=="8"){
				$("#"+_this.windowId+" #devolucion-doc-ncred-serie").removeAttr("disabled");
				$("#"+_this.windowId+" #devolucion-doc-ncred-numero").removeAttr("disabled");
				_this.loadSeries(8,true,$("#"+_this.windowId+" #devolucion-doc-ncred-serie"),$("#"+_this.windowId+" #devolucion-doc-ncred-numero"));
			}else{
				$("#"+_this.windowId+" #devolucion-doc-ncred-serie").prop("disabled","disabled");
				$("#"+_this.windowId+" #devolucion-doc-ncred-numero").prop("disabled","disabled");
				$("#"+_this.windowId+" #ddevolucion-doc-ncred-serie").find('option').remove();
				$("#"+_this.windowId+" #devolucion-doc-ncred-serie").val("");
				$("#"+_this.windowId+" #devolucion-doc-ncred-numero").val("");
			}
		});
		/*BOTON guardar documentos (CLICK)*/
		$("#"+this.windowId+" #nueva-devolucion-doc-guardar-btn").click(function(){
			if(!$(this).is(':disabled'))
				_this.devApp.validarDevolucion($(this));
		});
		/*BOTON cancelar guardar documentos (CLICK)*/
		$("#"+this.windowId+" #nueva-devolucion-doc-cancel-btn").click(function(){
			$("#"+_this.windowId+" #nueva-devolucion-doc-guardar-btn").removeAttr("disabled");
			$("#"+_this.windowId+" #guardar-devolucion-btn").removeAttr("disabled");
			$("#"+_this.windowId+" #nueva-devolucion-cliente-info").modal("hide"); 
		});
		/*BOTON selecionar credito*/
		$("#"+this.windowId+" #devolucion-credito-guardar-btn").click(function(){
			if(!$(this).is(':disabled')){
				if($("input[name='deuda']:checked").val()) {
					var selRadio=$("input[name='deuda']:checked"); 
					var CreditoID=selRadio.closest('tr').attr('data-deuda');
					$("#credito-devolucion").val(CreditoID);
					_this.devApp.validarDevolucion($(this));
				}else{
					 toastr.options = {
						"closeButton": true,
						"progressBar": true,
						"positionClass": "toast-top-right"
					}
					toastr.error('Seleccione un cr&eacute;dito de la lista para continuar...');
				}
			}
		});
		/*BOTON cancelar selecionar credito*/
		$("#"+this.windowId+" #devolucion-credito-cancel-btn").click(function(){
			$("#"+_this.windowId+" #devolucion-credito-cancel-btn").removeAttr("disabled");
			$("#"+_this.windowId+" #guardar-devolucion-btn").removeAttr("disabled");
			$("#"+_this.windowId+" #nueva-devolucion-doc-guardar-btn").removeAttr("disabled");
			$("#"+_this.windowId+" #devolucion-sel-credito").modal("hide"); 
		});
		/*BOTON confirmar guardar venta (CLICK)*/
		$("#"+this.windowId+" #devolucion-confirmar-guardar-btn").click(function(){
			if(!$(this).is(':disabled'))
				_this.devApp.processDevolucion();
		});		
		/*BOTON cancelar confirmar guardar devolucion (CLICK)*/
		$("#"+this.windowId+" #devolucion-cancelar-guardar-btn").click(function(){
			$("#"+_this.windowId+" #credito-devolucion").val("");
			$("#"+_this.windowId+" #guardar-devolucion-btn").removeAttr("disabled");
			$("#"+_this.windowId+" #nueva-devolucion-doc-guardar-btn").removeAttr("disabled");
			$("#"+_this.windowId+" #devolucion-confirmar").modal("hide"); 
		});
		/*BOTON salir (CLICK)*/
		$("#"+this.windowId+" #devolucion-confirmar-salir-btn").click(function(){
			$("#"+_this.windowId+" #devolucion-confirmar").modal("hide");
			$("#"+_this.windowId+" #devolucion-confirmar").on('hidden.bs.modal', function(){
				setTimeout(function(){Custombox.close();}, 100);
			});
		});
	},
	/*HOTKEYS*/
	this.initializeHotKeys=function(){
		var _this=this;
		/*TEXTBOX Numero de documento (ENTER)*/
		$("#"+_this.windowId+" #devolucion-venta-num-doc").bind("keydown","return",function(e){
			e.preventDefault();
			$("#"+_this.windowId+" #devolucion-cargar-venta-btn").trigger('click');
		});
		/*TEXTBOX Id de transaccion (ENTER)*/
		$("#"+_this.windowId+" #devolucion-venta-idtrans-doc").bind("keydown","return",function(e){
			e.preventDefault();
			$("#"+_this.windowId+" #devolucion-cargar-venta-idtrans-btn").trigger('click');
		});
		/*MODAL Busqueda de venta (UP)*/
		$(document).bind('keydown', 'down', function(e){
			e.preventDefault();
			if(($("#"+_this.windowId+" #nueva-devolucion-sel-venta").data('bs.modal') || {}).isShown){
				var trows = $("#"+_this.windowId+" #nueva-devolucion-sel-venta #devoluciones-ventas-list table tr");
				if(trows.size() >1){
					var currentSel = $("#"+_this.windowId+" #nueva-devolucion-sel-venta #devoluciones-ventas-list table").find("tr.miracle-selected-table-item");
					var nextSel=currentSel.next();
					if(nextSel.length > 0){
						currentSel.removeClass("miracle-selected-table-item");
						nextSel.addClass("miracle-selected-table-item");
					}
				}
			}
		});
		/*MODAL Busqueda de venta (DOWN)*/
		$(document).bind('keydown', 'up', function(e){
			e.preventDefault();
			if(($("#"+_this.windowId+" #nueva-devolucion-sel-venta").data('bs.modal') || {}).isShown){
				var trows = $("#"+_this.windowId+" #nueva-devolucion-sel-venta #devoluciones-ventas-list table tr");
				if(trows.size() >1){
					var currentSel = $("#"+_this.windowId+" #nueva-devolucion-sel-venta #devoluciones-ventas-list table").find("tr.miracle-selected-table-item");
					var nextSel=currentSel.prev();
					if(nextSel.length > 0){
						currentSel.removeClass("miracle-selected-table-item");
						nextSel.addClass("miracle-selected-table-item");
					}
				}
			}
		});
		/*MODAL Busqueda de venta (ENTER)*/
		$(document).bind('keydown', 'return', function(e){
			if(($("#"+_this.windowId+" #nueva-devolucion-sel-venta").data('bs.modal') || {}).isShown){
				var currentSel = $("#"+_this.windowId+" #nueva-devolucion-sel-venta #devoluciones-ventas-list table").find("tr.miracle-selected-table-item");
				if(currentSel.length>0){
					_this.cargarVentaInfo(currentSel.attr("id").split("-")[1],currentSel.attr('data-fecha'),currentSel.attr('data-caja'),currentSel.attr('data-vendedor'),currentSel.attr('data-cajero'),currentSel.attr('data-cliente'),currentSel.attr('data-condicion'),currentSel.attr('data-estado'),currentSel.attr('data-clientetype'),currentSel.attr('data-doc'),currentSel.attr('data-clienteid'),currentSel.attr('data-clientedui'),currentSel.attr('data-clientenit'),currentSel.attr('data-formapago'));
				}
				e.preventDefault();
			}
		});
		/*DOCUMENT Guardar (F10)*/
		$(document).bind('keydown', 'f10', function(e){
			e.preventDefault();
			$("#"+_this.windowId+" #guardar-devolucion-btn").trigger('click');
		});
		/*TEXTBOX Motivo (ENTER)*/
		$("#"+_this.windowId+" #devolucion-motivo").bind("keydown","return",function(e){
			e.preventDefault();
			$("#"+_this.windowId+" #devolucion-venta-cliente-nombre").focus();
		});
		/*TEXTBOX Nombre del cliente (ENTER)*/
		$("#"+_this.windowId+" #devolucion-venta-cliente-nombre").bind("keydown","return",function(e){
			e.preventDefault();
			$("#"+_this.windowId+" #devolucion-venta-cliente-dui").focus();
		});
		/*TEXTBOX DUI del cliente (ENTER)*/
		$("#"+_this.windowId+" #devolucion-venta-cliente-dui").bind("keydown","return",function(e){
			e.preventDefault();
			if($("#"+_this.windowId+" #devolucion-venta-cliente-dui").val()=="")
				$("#"+_this.windowId+" #devolucion-venta-cliente-nit").focus();
			else{
				if(!$("#"+_this.windowId+" #devolucion-documento").is(":disabled"))
					$("#"+_this.windowId+" #devolucion-documento").focus();
				else
					$("#"+_this.windowId+" #devolucion-venta-forma").focus();
			}
		});
		/*TEXTBOX NIT del cliente (ENTER)*/
		$("#"+_this.windowId+" #devolucion-venta-cliente-nit").bind("keydown","return",function(e){
			e.preventDefault();
			if(!$("#"+_this.windowId+" #devolucion-documento").is(":disabled"))
				$("#"+_this.windowId+" #devolucion-documento").focus();
			else
				$("#"+_this.windowId+" #devolucion-venta-forma").focus();
		});
		/*SELECT Documento devolucion (ENTER)*/
		$("#"+_this.windowId+" #devolucion-documento").bind("keydown","return",function(e){
			e.preventDefault();
			if(!$("#"+_this.windowId+" #devolucion-documento").is(":disabled")){
				$("#"+_this.windowId+" #devolucion-doc-ncred-numero").focus();
			}else{
				$("#"+_this.windowId+" #devolucion-venta-forma").focus();
			}
		});
		/*TEXTBOX Numero documento devolucion (ENTER)*/
		$("#"+_this.windowId+" #devolucion-doc-ncred-numero").bind("keydown","return",function(e){
			e.preventDefault();
			$("#"+_this.windowId+" #devolucion-venta-forma").focus();
		});
		/*SELECT Forma devolucion (ENTER)*/
		$("#"+_this.windowId+" #devolucion-venta-forma").bind("keydown","return",function(e){
			e.preventDefault();
			$("#"+_this.windowId+" #nueva-devolucion-doc-guardar-btn").trigger("click");
		});
	},
	/*FUNCIONES*/
	/*Cargar series de documentos*/
	this.loadSeries=function(doc,useFirst,$wrapper,$numWrapper){
		var _this=this;
		$("#"+_this.windowId+" #devolucion-venta-documento-series").find('option').remove();
		$.get(this.baseUrl+"administracion/resolucionesxdoc",{doc:doc,caja:this.caja},function(series){
			if(series){
				$.each(series,function(i,serie){
					$wrapper.append($('<option>',{ 
						value:serie.serie,
						'data-id':serie.id,
						'data-act':serie.actual,
						text:serie.serie 
					}));
				});
				if(useFirst){
					$wrapper.find("option:first").attr('nueva-venta-documento-serie','selected');
					if($numWrapper){
						$numWrapper.val($wrapper.find("option:selected").attr("data-act"));
					}
				}
			}
		},'json');
	}
	/*Cargar ventas*/
	this.cargarVentas=function(doc,trans,$sender){
		var _this=this;
		var data=null;
		$sender.prop("disabled","disabled");
		if(doc && doc.doctype && doc.serie && doc.num){
			if(doc.doctype.val() && doc.num.val() != ''){
				var serie=doc.serie.find("option:selected").attr('data-id');
				if(typeof serie==="undefined"){
					serie=null;
				}
				data={by:'document',doc:doc.doctype.val(),serie:serie,num:_this.zeroFill(doc.num.val(),7)};
			}else{
				_this.showMsgDevolucion('error','Selecione un tipo de documento e ingrese un n&uacute;mero v&aacute;lido');
				doc.doctype.focus();
			}
		}else if(trans && trans.id){
			if(trans.id.val() != ''){
				data={by:'transaction',id:trans.id.val()};
			}else{
				_this.showMsgDevolucion('error','Ingrese un n&uacute;mero de transacci&oacute;n v&aacute;lido');
				trans.id.focus();
			}
		}
		if(data){
			var productohtml="";
			$("#"+_this.windowId+" #nueva-devolucion-sel-venta").modal("show");
			$("#"+_this.windowId+" #nueva-devolucion-sel-venta #devoluciones-ventas-list").html('');
			$("#"+_this.windowId+" #nueva-devolucion-sel-venta #devoluciones-ventas-list").html("<div class='text-center'><i class='fa fa-spinner fa-2x'></i><br><span>Buscando ventas...</span></div>");
			$.get(this.baseUrl+"transacciones/cargarventas",data,function(ventas){
				$("#"+_this.windowId+" #nueva-devolucion-sel-venta #devoluciones-ventas-list").html(ventas);
				$sender.removeAttr("disabled");
			},'html');
		}else{
			$sender.removeAttr("disabled");
		}
	}
	/*Cargar información de una venta*/
	this.cargarVentaInfo=function(id,$sender){
		var _this=this;
		var quitProduct=false;
		$("#"+this.windowId+" #devolucion-msg-inf-wrapper").hide();
		$.get(this.baseUrl+"transacciones/cargartransaccion",{transaccion:"ventafull",id:id},function(response){
			if(response){
				if(response.load_info){
					/*Fecha*/
					$("#"+_this.windowId+" #dev-detalles-venta-fecha").text(response.load_info.venta_fecha_format);
					$("#"+_this.windowId+" #dev-detalles-venta-fecha").attr("data-value",response.load_info.venta_fecha_format);
					/*Documento*/
					$("#"+_this.windowId+" #devolucion-documento").find('option').remove();
					switch(parseInt(response.load_info.venta_doc)){
						case 0:
							$("#"+_this.windowId+" #dev-detalles-venta-info-doc").text("Ninguno");
							$("#"+_this.windowId+" #devolucion-documento").append($('<option>',{value:0,text:"Ninguno"}));
						break;
						case 1:
							$("#"+_this.windowId+" #dev-detalles-venta-info-doc").text("Factura de consumidor final");
							$("#"+_this.windowId+" #devolucion-documento").find('option').remove();
							$("#"+_this.windowId+" #devolucion-documento").append($('<option>',{value:1,text:"Reverso de Factura"}));
							$("#"+_this.windowId+" #devolucion-documento").append($('<option>',{value:0,text:"Ninguno"}));
						break;
						case 2:
							$("#"+_this.windowId+" #dev-detalles-venta-info-doc").text("Comprobante de crédito fiscal");
							$("#"+_this.windowId+" #devolucion-documento").find('option').remove();
							$("#"+_this.windowId+" #devolucion-documento").append($('<option>',{value:2,text:"Reverso de crédito fiscal"}));
							$("#"+_this.windowId+" #devolucion-documento").append($('<option>',{value:8,text:"Nota de crédito"})); 
							$("#"+_this.windowId+" #devolucion-documento").append($('<option>',{value:0,text:"Ninguno"}));
							quitProduct=true;
						break;
						case 3:
							$("#"+_this.windowId+" #dev-detalles-venta-info-doc").text("Ticket");
							$("#"+_this.windowId+" #devolucion-documento").find('option').remove();
							$("#"+_this.windowId+" #devolucion-documento").append($('<option>',{value:3,text:"Ticket"}));
							$("#"+_this.windowId+" #devolucion-documento").attr('disabled', 'disabled');
						break;
						case 4:
							$("#"+_this.windowId+" #dev-detalles-venta-info-doc").text("Nota de remisión");
							$("#"+_this.windowId+" #devolucion-documento").append($('<option>',{value:4,text:"Reverso de nota de remisión"}));
							$("#"+_this.windowId+" #devolucion-documento").append($('<option>',{value:0,text:"Ninguno"}));
						break;
						case 5:
							$("#"+_this.windowId+" #dev-detalles-venta-info-doc").text("Nota de envío");
							$("#"+_this.windowId+" #devolucion-documento").append($('<option>',{value:5,text:"Reverso de nota de envío"}));
							$("#"+_this.windowId+" #devolucion-documento").append($('<option>',{value:0,text:"Ninguno"}));
						break;
					}
					$("#"+_this.windowId+" #dev-detalles-venta-info-doc").attr("data-value",response.load_info.venta_doc);
					$("#"+_this.windowId+" #devolucion-venta-doc").val(response.load_info.venta_doc);
					/*Serie y numero*/
					$("#"+_this.windowId+" #dev-detalles-venta-info-numdoc").text(response.load_info.venta_seriedoc+" "+response.load_info.venta_numdoc);
					$("#"+_this.windowId+" #dev-detalles-venta-info-numdoc").attr("data-value",response.load_info.venta_numdoc);
					$("#"+_this.windowId+" #dev-detalles-venta-info-serie").attr("data-value",response.load_info.venta_seriedoc);
					$("#"+_this.windowId+" #dev-detalles-venta-info-serieid").attr("data-value",response.load_info.venta_seriedoc_id);
					/*Referencia*/
					$("#"+_this.windowId+" #dev-detalles-venta-info-id").text("V-"+response.load_info.id_transaccion);
					$("#"+_this.windowId+" #dev-detalles-venta-info-id").attr("data-value",response.load_info.id_transaccion);
					/*Estado*/
					switch(parseInt(response.load_info.venta_estado)){
						case 0:$("#"+_this.windowId+" #dev-detalles-venta-info-estado").text("Anulada");break;
						case 1:$("#"+_this.windowId+" #dev-detalles-venta-info-estado").text("Activa");break;
					}
					$("#"+_this.windowId+" #dev-detalles-venta-info-estado").attr("data-value",response.load_info.venta_doc);
					/*Facturacion*/
					switch(parseInt(response.load_info.venta_tipo)){
						case 0:$("#"+_this.windowId+" #dev-detalles-venta-info-tipo").text("Facturada");break;
						case 1:$("#"+_this.windowId+" #dev-detalles-venta-info-tipo").text("En transito");break;
					}					
					$("#"+_this.windowId+" #dev-detalles-venta-info-tipo").attr("data-value",response.load_info.venta_origen);
					/*Origen*/
					switch(parseInt(response.load_info.venta_origen)){
						case 0:$("#"+_this.windowId+" #dev-detalles-venta-info-origen").text("Venta");break;
						case 1:$("#"+_this.windowId+" #dev-detalles-venta-info-origen").text("Pago de crédito");break;
						case 2:$("#"+_this.windowId+" #dev-detalles-venta-info-origen").text("Facturacion crédito");break;
					}
					$("#"+_this.windowId+" #dev-detalles-venta-info-origen").attr("data-value",response.load_info.venta_origen);
					/*Caja*/
					$("#"+_this.windowId+" #dev-detalles-venta-info-caja").text(response.load_info.venta_caja_nombre);
					$("#"+_this.windowId+" #dev-detalles-venta-info-caja").attr("data-value",response.load_info.venta_caja);
					/*Cajero*/
					$("#"+_this.windowId+" #dev-detalles-venta-info-cajero").text(response.load_info.venta_cajero_nombre);
					$("#"+_this.windowId+" #dev-detalles-venta-info-cajero").attr("data-value",response.load_info.venta_cajero);
					/*Vendedor*/
					$("#"+_this.windowId+" #dev-detalles-venta-info-vendedor").text(response.load_info.venta_vendedor_nombre);
					$("#"+_this.windowId+" #dev-detalles-venta-info-vendedor").attr("data-value",response.load_info.venta_vendedor);
					/*Condicion*/
					switch(parseInt(response.load_info.venta_condicion)){
						case 0:$("#"+_this.windowId+" #dev-detalles-venta-info-cobro").text("Contado");break;
						case 1:$("#"+_this.windowId+" #dev-detalles-venta-info-cobro").text("Crédito");break;
						case 2:$("#"+_this.windowId+" #dev-detalles-venta-info-cobro").text("Sin ingreso");break;
						case 3:$("#"+_this.windowId+" #dev-detalles-venta-info-cobro").text("A cobro");break;
					}
					$("#"+_this.windowId+" #dev-detalles-venta-info-cobro").attr("data-value",response.load_info.venta_condicion);
					$("#"+_this.windowId+" #devolucion-venta-condicion").val(response.load_info.venta_condicion);
					/*forma de pago*/
					switch(parseInt(response.load_info.venta_forma_pago)){
						case 0:$("#"+_this.windowId+" #dev-detalles-venta-info-forma").text("N/A");break;
						case 1:$("#"+_this.windowId+" #dev-detalles-venta-info-forma").text("Efectivo");break;
						case 2:$("#"+_this.windowId+" #dev-detalles-venta-info-forma").text("Cheque");break;
						case 3:$("#"+_this.windowId+" #dev-detalles-venta-info-forma").text("POS");break;
						case 4:$("#"+_this.windowId+" #dev-detalles-venta-info-forma").text("Abono a cuenta");break;
						case 5:$("#"+_this.windowId+" #dev-detalles-venta-info-forma").text("Pago electrónic");break;
					}
					$("#"+_this.windowId+" #dev-detalles-venta-info-forma").attr("data-value",response.load_info.venta_forma_pago);
					$("#"+_this.windowId+" #devolucion-venta-forma").val(response.load_info.venta_forma_pago);					
					/*Estado del cobro*/
					switch(parseInt(response.load_info.venta_estado_cobro)){
						case 0:$("#"+_this.windowId+" #dev-detalles-venta-info-estadocobro").text("Pendiente");break;
						case 1:$("#"+_this.windowId+" #dev-detalles-venta-info-estadocobro").text("Parcial");break;
						case 2:$("#"+_this.windowId+" #dev-detalles-venta-info-estadocobro").text("Total");break;
					}
					$("#"+_this.windowId+" #dev-detalles-venta-info-estadocobro").attr("data-value",response.load_info.venta_estado_cobro);
					/*Ajuste para ventas a cobro, cobradas*/
					if(response.load_info.venta_estado_cobro){
						
					}
						
					/*Credito*/
					$("#"+_this.windowId+" #dev-detalles-venta-info-credito").text(response.load_info.venta_credito_id);
					$("#"+_this.windowId+" #dev-detalles-venta-info-credito").attr("data-value",response.load_info.venta_credito_id);
					/*Descargo*/
					switch(parseInt(response.load_info.venta_descargo)){
						case 0:$("#"+_this.windowId+" #dev-detalles-venta-info-descargo").text("Pendiente");break;
						case 1:$("#"+_this.windowId+" #dev-detalles-venta-info-descargo").text("Parcial");break;
						case 2:$("#"+_this.windowId+" #dev-detalles-venta-info-descargo").text("Total");break;
					}
					$("#"+_this.windowId+" #dev-detalles-venta-info-descargo").attr("data-value",response.load_info.venta_descargo);
					/*Nombre*/
					$("#"+_this.windowId+" #dev-detalles-venta-info-cliente").text(response.load_info.cliente_nombre);
					$("#"+_this.windowId+" #dev-detalles-venta-info-cliente").attr("data-value",response.load_info.cliente_nombre);
					$("#"+_this.windowId+" #devolucion-venta-cliente-nombre").val(response.load_info.cliente_nombre);
					/*ID cliente*/
					$("#"+_this.windowId+" #dev-detalles-venta-info-idcliente").text(response.load_info.cliente_id);
					$("#"+_this.windowId+" #dev-detalles-venta-info-idcliente").attr("data-value",response.load_info.cliente_id);
					$("#"+_this.windowId+" #devolucion-venta-cliente").val(response.load_info.cliente_id);
					/*DUI*/
					$("#"+_this.windowId+" #dev-detalles-venta-info-dui").text(response.load_info.cliente_dui);
					$("#"+_this.windowId+" #dev-detalles-venta-info-dui").attr("data-value",response.load_info.cliente_dui);
					$("#"+_this.windowId+" #devolucion-venta-cliente-dui").val(response.load_info.cliente_dui);
					/*NIT*/
					$("#"+_this.windowId+" #dev-detalles-venta-info-nit").text(response.load_info.cliente_nit);
					$("#"+_this.windowId+" #dev-detalles-venta-info-nit").attr("data-value",response.load_info.cliente_nit);
					$("#"+_this.windowId+" #devolucion-venta-cliente-nit").val(response.load_info.cliente_nit);
					/*NRC*/
					$("#"+_this.windowId+" #dev-detalles-venta-info-nrc").text(response.load_info.cliente_nrc);
					$("#"+_this.windowId+" #dev-detalles-venta-info-nrc").attr("data-value",response.load_info.cliente_nrc);
					/*Tipo cliente*/
					if(response.load_info.cliente_clasificacion){
						$("#"+_this.windowId+" #devolucion-venta-cliente-type").val(response.load_info.cliente_clasificacion);
					}else{
						$("#"+_this.windowId+" #devolucion-venta-cliente-type").val(0);
					}
					/*Validacion de caja para tickets*/
					if(parseInt(response.load_info.venta_doc)==3 && parseInt(response.load_info.venta_caja)!=_this.caja){
						$("#"+_this.windowId+" #devolucion-msg-warning-wrapper > span").text("No es posible realizar devolución: La venta se realizó en otra caja ("+response.load_info.venta_caja_nombre+")");
						$("#"+_this.windowId+" #devolucion-msg-warning-wrapper").show();
					}else{
						if(parseInt(response.load_info.venta_estado)!=0){
							$("#"+_this.windowId+" #guardar-devolucion-btn").removeAttr("disabled");
						}else{
							$("#"+_this.windowId+" #devolucion-msg-warning-wrapper > span").text("No es posible realizar devolución: Ya se ha realizado una devolución sobre esta venta");
							$("#"+_this.windowId+" #devolucion-msg-warning-wrapper").show();
						}
					}
				}
				/*Productos*/
				if(response.load_productos && Object.keys(response.load_productos).length>0){
					var productosHTML="";
					var productos=response.load_productos;
					$("#"+_this.windowId+" #devolucion-venta-product-counter").val(Object.keys(response.load_productos).length);
					for(var i=0;i<Object.keys(productos).length;i++){
						productosHTML+="<tr data-id='"+productos[i].id+"' data-pre='"+productos[i].id_pre+"' data-tipo='"+productos[i].tipo_producto+"' data-interno='"+productos[i].interno+"' data-uequiv='"+productos[i].uequiv+"'>";
						productosHTML+="<td class='table-sku' data-value='"+productos[i].sku+"'>"+productos[i].sku+"</td>";
						productosHTML+="<td class='table-desc' data-value='"+productos[i].nombre+"'>"+productos[i].nombre+"</td>";
						productosHTML+="<td class='table-cant' data-value='"+productos[i].cant+"'>"+productos[i].cant+"</td>";
						productosHTML+="<td class='table-precio' data-value='"+productos[i].precio+"'>"+productos[i].precio+"</td>";
						productosHTML+="<td class='table-total' data-value='"+(productos[i].cant*productos[i].precio).toFixed(3)+"'>"+(productos[i].cant*productos[i].precio).toFixed(3)+"</td>";
						productosHTML+="<td class='table-tipoventa' data-value='"+productos[i].tipo+"'>"+(productos[i].tipo==0?"G":(productos[i].tipo==1)?"E":(productos[i].tipo==2)?"NS":(productos[i].tipo==3)?"E":"")+"</td>";
						if(quitProduct){
							productosHTML+="<td class='table-del'><button type='button' class='btn btn-danger btn-xs btn-rounded'><i class='fa fa-times'></i></button></td>";
						}else{
							productosHTML+="<td class='table-del'></td>";
						}
						productosHTML+="</tr>";
					}
					$("#"+_this.windowId+" #devolucion-venta-productos-table-body #devolucion-productos-wrapper > table > tbody").html(productosHTML);
					_this.updatePriceProfile();
					_this.TransTools.calcTotals();					
				}else{
					$("#"+_this.windowId+" #guardar-devolucion-btn").prop("disabled","disabled");
					$("#"+_this.windowId+" #devolucion-venta-productos-table-body #devolucion-productos-wrapper > table > tbody").html("<span style='display:block;text-align:center;'>No hay productos asociados a esta venta</span>");
					$("#"+_this.windowId+" #devolucion-msg-warning-wrapper > span").text("No es posible realizar devolución: No hay productos en esta venta");
					$("#"+_this.windowId+" #devolucion-msg-warning-wrapper").show();
				}
				/*Mostrar contenedores*/
				$("#"+_this.windowId+" #devolucion-venta-info-wrapper").show();
				$("#"+_this.windowId+" #devolucion-venta-info-panel").slimScroll({height:"65px",alwaysVisible:true,scrollTo:'0px'});
				$("#"+_this.windowId+" #devolucion-venta-info-div").show();
				$("#"+_this.windowId+" #devolucion-venta-productos-table-head").show();
				$("#"+_this.windowId+" #devolucion-venta-productos-table-body").show();
				$("#"+_this.windowId+" #devolucion-venta-totales-table-wrapper").show(); 
				/*Desabilitar botones y textbox*/					
				$("#"+_this.windowId+" #devolucion-cargar-venta-btn, #"+_this.windowId+" #devolucion-cargar-venta-idtrans-btn").removeClass("btn-info");
				$("#"+_this.windowId+" #devolucion-cargar-venta-btn, #"+_this.windowId+" #devolucion-cargar-venta-idtrans-btn").addClass("btn-danger");
				$("#"+_this.windowId+" #devolucion-cargar-venta-btn, #"+_this.windowId+" #devolucion-cargar-venta-idtrans-btn").text("Cambiar");
				$("#"+_this.windowId+" #devolucion-cargar-venta-btn, #"+_this.windowId+" #devolucion-cargar-venta-idtrans-btn").attr("data-mode","clear");
				$("#"+_this.windowId+" #devolucion-venta-documento, #"+_this.windowId+" #devolucion-venta-idtrans-doc, #"+_this.windowId+" #devolucion-venta-documento-series, #"+_this.windowId+"  #devolucion-venta-num-doc").prop("disabled","disabled");
				/**/
				$("#"+_this.windowId+" #nueva-devolucion-sel-venta").modal("hide");
				$("#"+_this.windowId+" #guardar-devolucion-btn").focus();
			}
		},"json");
	}
	/*Actualizar perfil de precios*/
	this.updatePriceProfile=function(){
		var clientType=parseInt($("#"+this.windowId+" #devolucion-venta-cliente-type").val());
		var docType=parseInt($("#"+this.windowId+" #devolucion-venta-doc").val());
		/*Gran contribuyente*/
		if(clientType==3){
			/*ccf*/
			if(docType==2){
				this.TransTools.SetTotalsProfile("grabadas,iva,subtotal,retencion,nosujetas,exentas,total","subtotal|-|retencion|+|nosujetas|+|exentas",true);
			}
			/*Desconocido, ninguno, factura, ticket, nota remision, nota envio, etc.*/
			else{
				this.TransTools.SetTotalsProfile("grabadas,retencionFac,nosujetas,exentas,total","grabadas|-|retencionFac|+|nosujetas|+|exentas",true);
			}
		}
		/*No, otros y mediano contribuyente*/
		else{
			/*ccf*/
			if(docType==2){
				this.TransTools.SetTotalsProfile("grabadas,iva,subtotal,nosujetas,exentas,total","subtotal|+|nosujetas|+|exentas",true);
			}
			/*Desconocido, ninguno, factura, ticket, nota remision, nota envio, etc.*/
			else{
				this.TransTools.SetTotalsProfile("grabadas,nosujetas,exentas,total","grabadas|+|nosujetas|+|exentas",true);
			}
		}
	},
	/*Reiniciar el formulario*/
	this.resetForm=function($senderFocus){
		/*Limpiar informacion de venta*/
		$.each($("#"+this.windowId+" #devolucion-venta-info-panel span.dev-info-venta-item"),function(i,el){
			$(el).text("");
			$(el).attr("data-value","");
		});	
		$("#"+this.windowId+" #devolucion-venta-cliente").val("");
		$("#"+this.windowId+" #devolucion-venta-cliente-type").val("");
		$("#"+this.windowId+" #devolucion-venta-doc").val("");
		$("#"+this.windowId+" #devolucion-venta-cliente-nombre").val("");
		$("#"+this.windowId+" #devolucion-venta-cliente-dui").val("");
		$("#"+this.windowId+" #devolucion-venta-cliente-nit").val("");
		$("#"+this.windowId+" #devolucion-documento").find('option').remove();
		$("#"+this.windowId+" #devolucion-venta-forma").val("");
		/*Quitar bloqueos*/
		$("#"+this.windowId+" #devolucion-documento").removeAttr('disabled');
		/*Poner bloqueos*/
		$("#"+this.windowId+" #devolucion-doc-ncred-serie").prop("disabled","disabled");
		$("#"+this.windowId+" #devolucion-doc-ncred-numero").prop("disabled","disabled");
		$("#"+this.windowId+" #ddevolucion-doc-ncred-serie").find('option').remove();
		$("#"+this.windowId+" #devolucion-doc-ncred-serie").val("");
		$("#"+this.windowId+" #devolucion-doc-ncred-numero").val("");
		$("#"+this.windowId+" #devolucion-documento").removeAttr('disabled');
		/*Limpiar productos*/
		$("#"+this.windowId+" #devolucion-venta-productos-table-body #devolucion-productos-wrapper > table > tbody").empty();	
		/*Limpiar totales*/
		$("#"+this.windowId+" #devolucion-totales-wrapper > tbody").empty();
		/*Limpiar campos de busqueda*/
		$("#"+this.windowId+" #devolucion-venta-documento").find("option:first").prop('selected','selected');
		$("#"+this.windowId+" #devolucion-venta-idtrans-doc, #"+this.windowId+" #devolucion-venta-documento-series, #"+this.windowId+" #devolucion-venta-num-doc").val("");
		/*Cambios en botones*/
		$("#"+this.windowId+" #devolucion-cargar-venta-btn, #"+this.windowId+" #devolucion-cargar-venta-idtrans-btn").removeClass("btn-danger");
		$("#"+this.windowId+" #devolucion-cargar-venta-btn, #"+this.windowId+" #devolucion-cargar-venta-idtrans-btn").addClass("btn-info");
		$("#"+this.windowId+" #devolucion-cargar-venta-btn, #"+this.windowId+" #devolucion-cargar-venta-idtrans-btn").text("Cargar");
		$("#"+this.windowId+" #devolucion-cargar-venta-btn, #"+this.windowId+" #devolucion-cargar-venta-idtrans-btn").attr("data-mode","load");
		$("#"+this.windowId+" #devolucion-venta-documento, #"+this.windowId+" #devolucion-venta-idtrans-doc, #"+this.windowId+" #devolucion-venta-documento-series, #"+this.windowId+"  #devolucion-venta-num-doc").removeAttr("disabled");
		/*Ocultar contenedores*/
		$("#"+this.windowId+" #devolucion-venta-info-wrapper").hide();
		$("#"+this.windowId+" #devolucion-venta-info-div").hide();
		$("#"+this.windowId+" #devolucion-venta-productos-table-head").hide();
		$("#"+this.windowId+" #devolucion-venta-productos-table-body").hide();
		$("#"+this.windowId+" #devolucion-venta-totales-table-wrapper").hide(); 
		$("#"+this.windowId+" #devolucion-msg-inf-wrapper").show();
		/*Ocultar errores*/
		$("#"+this.windowId+" #devolucion-msg-warning-wrapper > span").text("");
		$("#"+this.windowId+" #devolucion-msg-warning-wrapper").hide();
		/*Desabilitar boton*/
		$("#"+this.windowId+" #guardar-devolucion-btn").prop("disabled","disabled");
		if($senderFocus){
			$senderFocus.focus();
		}
	},
	/*Mostrar mensajes*/
	this.showMsgDevolucion=function(tipo, mensaje){
		toastr.options = {
			"closeButton": true,
			"progressBar": true,
			"positionClass": "toast-top-right"
		}
		toastr[tipo](mensaje);
	},
	/*Completar con ceros los numeros de documentos*/
	this.zeroFill=function(number,width){
	  width -= number.toString().length;
	  if (width > 0){
		return new Array( width + (/\./.test( number ) ? 2 : 1) ).join( '0' ) + number;
	  }
	  return number + ""; 
	}
}