<?php namespace App\Custom;
use DB;
use App\Custom\Misc;
/*
Aviso:
Todos los métodos de la clase SQLConnection deberan generarse como static, para agilizar el trabajo de instanciación ,velocidad y visibilidad por controlador.
*/
use Session;
class SQLConnection {

	/* Landing INICIO */
	public static function iniciarSesion($usuario,$clave,$simultaneo=0){
		return DB::selectOne('EXEC dbo.user_login ?,?,?,?,?,?,?,?', array($usuario,$clave,ENV('EXPIRATION_PERIOD'),ENV('QTY_PASSWORD'),ENV('SESSION_TIMEOUT'),$simultaneo,'LOGIN',NULL));
	}

public static function solicitudLegal($nombre,$apellido,$dni,$nac,$edad,$calle,$altura,$piso,$dpto,$localidad,$provincia,$telefono,$celular,$mail,$observaciones){
		return DB::selectOne('EXEC dbo.solicitud_legal ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?', array($nombre,$apellido,$dni,$nac,$edad,$calle,$altura,$piso,$dpto,$localidad,$provincia,$telefono,$celular,$mail,$observaciones));
	}
	public static function verificarPadron($numero,$tipo){
		return DB::select('EXEC dbo.verificar_padron ?,?', array($numero,$tipo));
	}
	public static function habeasData($numero,$tipo,$nombre,$mail,$telefono,$celular,$observaciones){
		return DB::selectOne('EXEC dbo.Habeas_Data_Solicitud ?,?,?,?,?,?,?,?,?', array($numero,$tipo,$nombre,$mail,$telefono,$nombre,$mail,$celular,$observaciones));
	}
	public static function habeasDataFile($id_habeas,$nombre,$file_extension){
		return DB::selectOne('EXEC dbo.Habeas_Data_Archivos ?,?,?', array($id_habeas,$nombre,$file_extension));
	}
	/* Landing FIN */
	//public static function obtenerCliente($id_usuario=0){
		//return DB::select('EXEC dbo.obtener_cliente_usuario ?', array($id_usuario));
	//}
	
	public static function obtenerCliente($id_producto,$id_usuario=0){
		return DB::select('EXEC dbo.obtener_cliente_usuario ?,?', array($id_usuario,$id_producto));
	}
	
	public static function consumirServicio($user_id,$cuit,$id_producto){
		$p_ip = $_SERVER['REMOTE_ADDR'];
		return DB::selectOne('EXEC dbo.consumir_servicio ?,?,?,?', array($user_id,$cuit,$id_producto,$p_ip));
	}

	public static function cambiarClave($usuario,$clave_anterior,$clave_nueva){
		return DB::selectOne('EXEC dbo.user_login ?,?,?,?,?,?,?,?', array($usuario,$clave_anterior,ENV('EXPIRATION_PERIOD'),ENV('QTY_PASSWORD'),ENV('SESSION_TIMEOUT'),ENV('SIMUL_LOGIN'),'CHANGEPWD',$clave_nueva));
	}

	public static function enviarRestablecerClave($mail){
		return DB::selectOne('EXEC dbo.recuperar_usuario_email ?', array($mail));
	}

	public static function restablecerClave($usuario,$clave_nueva){
		return DB::selectOne('EXEC dbo.user_login ?,?,?,?,?,?,?,?', array($usuario,'',ENV('EXPIRATION_PERIOD'),ENV('QTY_PASSWORD'),ENV('SESSION_TIMEOUT'),ENV('SIMUL_LOGIN'),'RETRPWD',$clave_nueva));
	}

	public static function obtenerTerminos(){
		return DB::selectOne('EXEC dbo.obtener_terminos ?', array('FI'));
	}

/*Monitoreo Inicio */

	public static function obtenerSeccionesEnMantenimientoUsuarioCuit($user_id,$cuit){
		return DB::select('EXEC dbo.obtener_secciones_en_mantenimiento_usuario_cuit ?,?', array($user_id,$cuit));
	}	

	public static function listadoMantenimientoCheques($user_id){
		return DB::select('EXEC dbo.listado_mantenimiento_cheques ?', array($user_id));
	}

	public static function obtenerNovedadesCliente($client_id){
		return DB::select('EXEC dbo.obtener_novedades_cliente ?', array($client_id));
	}	
	public static function obtenerNovedadesHTML($cuit,$seccion_mantenimiento,$tabla,$fecha){
		return DB::select('EXEC dbo.obtener_novedades_html ?,?,?,?', array($cuit,$seccion_mantenimiento,$tabla,$fecha));
	}	

	public static function listadoMantenimientoCuits($client_id){
		return DB::select('EXEC dbo.listado_mantenimiento_cuits ?', array($client_id));
	}

	public static function listadoMantenimientoCuitsUno($client_id,$cuit){
		return DB::select('EXEC dbo.listado_mantenimiento_cuits_uno ?,?', array($client_id,$cuit));
	}

	public static function eliminarMonitoreoId($id_mantenimiento){
		return DB::select('EXEC dbo.eliminar_monitoreo_id ?', array($id_mantenimiento));
	}

	public static function eliminarMonitoreo($cuit,$id_usuario,$id_cliente,$seccion,$fecha_vigencia){
		return DB::select('EXEC dbo.eliminar_monitoreo ?,?,?,?,?', array($cuit,$id_usuario,$id_cliente,$seccion,$fecha_vigencia));
	}

	public static function obtenerNovedadCheque($cuit,$nro_cheque){
		return DB::selectOne('EXEC dbo.obtener_novedad_cheque ?,?', array($cuit,$nro_cheque));
	}

/*Monitoreo Fin */
	public static function obtenerEntidadesBancarias(){
		return DB::select('EXEC dbo.obtener_EntidadesBancarias');
	}	
/*SCORE inicio */
	public static function obtenerTablaScore(){
		return DB::select('EXEC dbo.obtener_tabla_score', array());
	}

	public static function obtenerPorcentajeScorePorAfectacion(){
		return DB::select('EXEC dbo.obtener_porcentaje_score_por_afectacion', array());
	}

	public static function obtenerScore($cuit,$fisica){
		return DB::select('EXEC dbo.obtener_score ?,?', array($cuit,$fisica));
	}

	public static function obtenerScoreFiscales($cuit,$fisica){
		return DB::select('EXEC dbo.obtener_score_fiscales ?,?', array($cuit,$fisica));
	}

	public static function obtenerScoreContable($cuit){
		return DB::selectOne('EXEC dbo.obtener_score_contable ?', array($cuit));
	}	


	public static function obtenerCardScore($cuit){
		return DB::selectOne('EXEC dbo.obtener_card_score ?', array($cuit));
	}	

	public static function obtenerCardScorePF($cuit){
		return DB::selectOne('EXEC dbo.obtener_card_score_pf ?', array($cuit));
	}	

	public static function obtenerPorcentajePorGrupo($cuit){
		return DB::selectOne('EXEC dbo.obtener_porcentaje_por_grupo ?', array($cuit));
	}	
	public static function calcularScore($codigo,$grupo,$dias,$cant){
		return DB::selectOne('EXEC dbo.calcular_score ?,?,?,?', array($codigo,$grupo,$dias,$cant));
	}	
	
	public static function calcularScoreContable($grupo,$liquidez_corriente,$solvencia_patrimonial,$endeudamiento_corriente,$capital_de_trabajo_activo,$rentabilidad_bruta,$utilidad_neta){
		return DB::selectOne('EXEC dbo.calcular_score_contable ?,?,?,?,?,?,?', array($grupo,$liquidez_corriente,$solvencia_patrimonial,$endeudamiento_corriente,$capital_de_trabajo_activo,$rentabilidad_bruta,$utilidad_neta));
	}	
/*SCORE fin */

	public static function obtenerCardBancos($cuit){
		return DB::selectOne('EXEC dbo.obtener_card_bancos ?', array($cuit));
	}
	
	public static function obtenerCardFiscales($cuit){
		return DB::selectOne('EXEC dbo.obtener_card_fiscales ?', array($cuit));
	}

	public static function obtenerSircreb($cuit){
		return DB::select('EXEC dbo.obtener_sircreb ?', array($cuit));
	}

	public static function obtenerCardFiscalesPF($cuit){
		return DB::select('EXEC dbo.obtener_card_fiscales_pf ?', array($cuit));
	}

	public static function obtenerCardComex($cuit,$anio){
		return DB::select('EXEC dbo.obtener_card_comex ?,?', array($cuit,$anio));
	}
	
	public static function obtenerCardPersonasRelacionadas($cuit){
		return DB::select('EXEC dbo.obtener_personas_relacionadas ?', array($cuit));
	}
	
	public static function obtenerCardSociedadesRelacionadas($cuit,$tipo_persona){
		return DB::select('EXEC dbo.obtener_card_vinculaciones ?,?', array($cuit,$tipo_persona));
	}
	
	public static function grafoSociedades($cuit,$tipo_persona){
		return DB::select('EXEC dbo.grafo_sociedades ?,?', array($cuit,$tipo_persona));
	}
	
	public static function obtenerRazonSocial($cuit){
		return DB::selectOne('EXEC dbo.obtener_razon_social ?', array($cuit));
	}

	public static function obtenerCardChequesRechazados($cuit){
		return DB::selectOne('EXEC dbo.obtener_card_cheques_rechazados ?', array($cuit));
	}
	
	public static function graficoCardChequesRechazados($cuit){
		return DB::select('EXEC dbo.grafico_card_cheques_rechazados ?', array($cuit));
	}

	public static function obtenerBrief($cuit){
		return DB::select('EXEC dbo.obtener_brief ?', array($cuit));
	}	

	public static function obtenerGarantiasBrief($cuit){
		return DB::select('EXEC dbo.obtener_garantias_brief ?', array($cuit));
	}

	public static function obtenerFinancieroBrief($cuit){
		return DB::select('EXEC dbo.obtener_financiero_brief ?', array($cuit));
	}

	public static function obtenerSituacionesBrief($cuit){
		return DB::select('EXEC dbo.obtener_situaciones_brief ?', array($cuit));
	}

	public static function obtenerInscripciones($cuit){
		return DB::selectOne('EXEC dbo.obtener_inscripciones ?', array($cuit));
	}

	public static function obtenerClae($cuit){
		return DB::select('EXEC dbo.obtener_clae ?', array($cuit));
	}
	
	public static function obtenerPersona($cuit){
		return DB::selectOne('EXEC dbo.obtener_persona ?', array($cuit));
	}

	public static function obtenerDefuncion($dni){
		return DB::selectOne('EXEC dbo.obtener_defuncion ?', array($dni));
	}

	public static function obtenerParticipacionSociosDirectores($cuit){
		return DB::select('EXEC dbo.obtener_participacion_socios_directores ?', array($cuit));
	}

	public static function obtenerEmpleadoDe($cuit){
		return DB::select('EXEC dbo.obtener_empleado_de ?', array($cuit));
	}

	public static function backendJuiciosDemandadoActor($id_juicio,$demact,$cuit){
		return DB::select('EXEC dbo.obtener_juicios_demandado_actor ?,?,?', array($id_juicio,$demact,$cuit));
	}

	public static function obtenerJuiciosDemandadoActor($id_juicio,$demact,$cuit){
		return DB::select('EXEC dbo.obtener_juicios_demandado_actor ?,?,?', array($id_juicio,$demact,$cuit));
	}

	public static function obtenerRemates($cuit,$cuit_enmascarado,$dni){
		return DB::select('EXEC dbo.obtener_remates ?,?,?', array($cuit,$cuit_enmascarado,$dni));
	}

	public static function obtenerConcursosQuiebras($cuit){
		return DB::select('EXEC dbo.obtener_concursos_quiebras ?', array($cuit));
	}

	public static function obtenerArba($cuit){
		return DB::select('EXEC dbo.obtener_arba ?', array($cuit));
	}

	public static function obtenerDomicilios($cuit){
		return DB::select('EXEC dbo.obtener_domicilios ?,?,?', array($cuit,1,null));
	}

	// public static function obtenerDomicilios($cuit){
	// 	return DB::select('EXEC dbo.obtener_domicilios ?,?,?', array($cuit,1,null));
	// }
	
		public static function obtenerOtrosDomicilios($cuit){
		return DB::select('EXEC dbo.obtener_otros_domicilios ?', array($cuit));
	}
	
		//el 5 es el ID de comerciales de la tabla productos_secciones.
	public static function obtenerDatosGenerales($cuit){
		return DB::select('EXEC dbo.backend_datos_generales ?,?,?,?,?', array(null,$cuit,1,ENV('ID_INFORME_COMERCIAL'),5));
	}
	
	public static function obtenerConsultasPorRamos($cuit){
		return DB::select('EXEC dbo.obtener_consulta_por_ramos ?', array($cuit));
	}	
	public static function backendSeguros($cuit){
		return DB::select('EXEC dbo.backend_seguros ?,?,?', array(null,$cuit,'1'));
	}
/* Contables  Inicio */
	public static function obtenerActivoResumido($cuit){
		return DB::select('EXEC dbo.obtener_activo_resumido_test ?', array($cuit));
	}
	
	public static function obtenerPasivoResumido($cuit){
		return DB::select('EXEC dbo.obtener_pasivo_resumido_test ?', array($cuit));
	}
	
	public static function obtenerEstadoDeResultadosResumido($cuit){
		return DB::select('EXEC dbo.obtener_estado_de_resultados_resumido_test ?', array($cuit));
	}

	public static function obtenerIndicesDeGestionResumido($cuit){
		return DB::select('EXEC dbo.obtener_indices_de_gestion_resumido_test ?', array($cuit));
	}

	public static function obtenerActivo($cuit){
		return DB::select('EXEC dbo.obtener_activo_contables_test ?', array($cuit));
	}
	
	public static function obtenerPasivo($cuit){
		return DB::select('EXEC dbo.obtener_pasivo_contables_test ?', array($cuit));
	}
	
	public static function obtenerEstadoDeResultados($cuit){
		return DB::select('EXEC dbo.obtener_estado_de_resultados_contables_test ?', array($cuit));
	}

	public static function obtenerIndicesDeGestion($cuit){
		return DB::select('EXEC dbo.obtener_indices_de_gestion_test ?', array($cuit));
	}
/* Contables  Fin */

	public static function obtenerSociedades($cuit){
		return DB::selectOne('EXEC dbo.obtener_sociedades ?', array($cuit));
	}
	
	public static function obtenerSociosDirectores($cuit,$tipo_persona){
		return DB::select('EXEC dbo.obtener_socios_directores_test ?,?', array($cuit,$tipo_persona));
	}

	public static function obtenerAccionistasDe($cuit){
		return DB::select('EXEC dbo.obtener_accionistas_de ?', array($cuit));
	}

	public static function obtenerAccionistas($cuit){
		return DB::select('EXEC dbo.obtener_accionistas ?', array($cuit));
	}

	public static function obtenerAccionistasNew($cuit){
		return DB::select('EXEC dbo.obtener_accionistas_new ?', array($cuit));
	}

	public static function obtenerEdictos($cuit){
		return DB::select('EXEC dbo.obtener_edictos ?', array($cuit));
	} 

	public static function obtenerEdictosHomonimos($palabras){
		return DB::select('EXEC dbo.obtener_edictos_homonimos ?', array($palabras));
	} 

	public static function obtenerCheques($cuit,$id_persona=0){
		return DB::select('EXEC dbo.obtener_cheques ?,?', array($cuit,$id_persona));
	}
	
	public static function monitorearCheques($cuit,$id_usuario,$id_cliente,$numero_cheque,$fecha_cheque,$importe,$id_banco,$seccion){
		return DB::selectOne('EXEC dbo.monitorear_cheques ?,?,?,?,?,?,?,?', array($cuit,$id_usuario,$id_cliente,$numero_cheque,$fecha_cheque,$importe,$id_banco,$seccion));
	}

	public static function obtenerVinculaciones($cuit){
		return DB::select('EXEC dbo.obtener_vinculaciones ?', array($cuit));
	}
	
	public static function obtenerVinculacionesIndirectas($cuit){
		return DB::select('EXEC dbo.obtener_vinculaciones_indirectas ?', array($cuit));
	}

		public static function monitorearCuit($cuit,$id_usuario,$id_cliente,$seccion,$fecha_vigencia){
		return DB::selectOne('EXEC dbo.monitorear_cuit ?,?,?,?,?', array($cuit,$id_usuario,$id_cliente,$seccion,$fecha_vigencia));
	}

	public static function obtenerEmpleados($cuit){
		return DB::selectOne('EXEC dbo.obtener_empleados ?', array($cuit));
	}

	public static function obtenerPeriodoMaximo($cuit){
		return DB::selectOne('EXEC dbo.obtener_periodo_maximo ?', array($cuit))->periodo_maximo;
	}

	public static function obtenerBancos($cuit){
		return DB::select('EXEC dbo.obtener_bancos_test ?', array($cuit));
	}

	public static function obtenerCancelacion($cuit){
		return DB::select('EXEC dbo.obtener_cancelacion ?', array($cuit));
	}

	public static function obtenerStatusBancario($cuit){
		return DB::selectOne('EXEC dbo.obtener_status_bancario ?', array($cuit));
	}

	public static function obtenerSituacionesBancos($cuit){
		return DB::select('EXEC dbo.obtener_situaciones_bancos_test2 ?', array($cuit));
	}

	public static function obtenerGarantiasBancos($cuit){
		return DB::select('EXEC dbo.obtener_garantias_bancos_test ?', array($cuit));
	}
	
	public static function obtenerComex($cuit){
		return DB::select('EXEC dbo.obtener_comex ?', array($cuit));
	}
	public static function obtenerComexPais($cuit){
		return DB::select('EXEC dbo.obtener_comex_pais ?', array($cuit));
	}
	public static function obtenerComexRubros($cuit){
		return DB::select('EXEC dbo.obtener_comex_rubros ?', array($cuit));
	}
	public static function obtenerComexTotales($cuit){
		return DB::selectOne('EXEC dbo.obtener_comex_totales ?', array($cuit));
	}
	public static function obtenerGraficoExportaciones($cuit){
		return DB::select('EXEC dbo.obtener_grafico_exportaciones ?', array($cuit));
	}

	public static function obtenerSeccionesHabilitadasInforme($user_id,$id_informe){
		return DB::select('EXEC dbo.obtener_secciones_habilitadas_informe ?,?', array($user_id,$id_informe));
	}

	public static function obtenerMenu(){
		$usuario = Session::get('usuario');
		return DB::select('EXEC dbo.obtener_menu ?,?', array($usuario->user_id,$usuario->cliente->id_cliente));
	}

	public static function obtenerPerfil($user_id){
		return DB::selectOne('EXEC dbo.obtener_perfil ?', array($user_id));
	}

	/*public static function editarPerfilUsuario($user_id,$usuario,$nombre,$apellido,$email,$fecha_de_nacimiento,$cargo){
		return DB::selectOne('EXEC dbo.editar_perfil_usuario ?,?,?,?,?,?,?', array($user_id,$usuario,$nombre,$apellido,$email,$fecha_de_nacimiento,$cargo));
	}*/

	public static function obtenerSecciones($producto){
		return DB::select('EXEC dbo.obtener_secciones ?', array($producto));
	}

	public static function obtenerPrensa($buscar,$desde,$hasta){
		return	DB::connection('prensa')->select('EXEC dbo.Fidelitas_obtener_prensa ?,?,?', array($buscar,$desde,$hasta));
	}
	/*
	public static function busquedaPadron($cuit=NULL,$dni=NULL,$razon_social=NULL,$todos_los_paises){
		$buscador_cuit 					= ($cuit)  					? true : null;
		$buscador_dni 					= ($dni)  					? true : null;
		$buscador_razon_social 	= ($razon_social)  	? true : null;

	 	if($buscador_cuit){
	 		$cuit = Misc::parsearBusquedaPadron($cuit);
	 	}else if($buscador_dni){
	 		$dni = Misc::parsearBusquedaPadron($dni);
	 	}else if($buscador_razon_social){
	 		$razon_social = Misc::parsearBusquedaPadron($razon_social);
	 	}
		return DB::select('EXEC dbo.buscar_en_padron ?,?,?,?', array($cuit,$dni,$razon_social,$todos_los_paises));
	}*/

	public static function obtenerSeccionesMantenimiento($user_id){
		return DB::select('EXEC dbo.obtener_secciones_mantenimiento ?', array($user_id));
	}	

	public static function insertarRegistroActividad($tipo_registro,$registro){
		$usuario 	= Session::get('usuario');
		$ip 			= $_SERVER['REMOTE_ADDR'];
		return DB::selectOne('EXEC dbo.insertar_registro_actividad ?,?,?,?,?', array($usuario->cliente['client_id'],$usuario->user_id,$tipo_registro,$registro,$ip));
	}

	/*Public static function obtenerConsultasRealizadas($user_id){
		return DB::select('EXEC dbo.obtener_consultas_realizadas ?', array($user_id));
	}*/
	
	Public static function obtenerRegistroActividad($user_id,$id_cliente){
		return DB::select('EXEC dbo.obtener_registro_actividad ?,?', array($user_id,$id_cliente));
	}

	Public static function obtenerRegistroConsumos($id_cliente,$user_id,$desde,$hasta,$prod,$tipo){
		return DB::select('EXEC dbo.obtener_registro_consumos ?,?,?,?,?,?', array($id_cliente,$user_id,$desde,$hasta,$prod,$tipo));
	}

	public static function obtenerUltimoPeriodoProcesado($fuente){
		return DB::selectOne('EXEC dbo.obtener_ultimo_periodo_procesado ?', array($fuente))->fecha_informacion;
	}
	
	public static function obtenerSinonimos($string){
		return DB::selectOne('EXEC dbo.obtener_sinonimos ?', array($string));
	}

	public static function obtenerOmitidos(){
		return DB::select('EXEC dbo.obtener_omitidos');
	}

	public static function obtenerJuiciosHomonimos($string,$demandado_actor){
		return DB::select('EXEC dbo.obtener_juicios_homonimos ?,?', array($string,$demandado_actor));
	}

	public static function obtenerDatosCliente($usuario){
		return DB::selectOne('EXEC dbo.obtener_datos_cliente ?', array($usuario));
	}

	//test pato
	public static function obtenerActivoPasivo($cuit){
		return DB::select('EXEC dbo.obtener_activopasivo ?', array($cuit));
	}

	public static function obtenerComentario($cuit,$cliente){
		return DB::select('EXEC dbo.obtener_comentario ?,?', array($cuit,$cliente));
	}

	public static function cargaComentario($user_id,$cliente,$msj_comentario,$cuit){
		return DB::selectOne('EXEC dbo.carga_comentario ? ,? ,? ,?', array($user_id,$cliente,$msj_comentario,$cuit));
	}

	public static function obtenerHistoricoMonitoreo ($user_id,$fecha_desde,$fecha_hasta,$cuit){
		return DB::select('EXEC dbo.obtener_historico_monitoreo ? ,?, ?, ?', array($user_id,$fecha_desde,$fecha_hasta,$cuit));
	}

	public static function busquedaPadronAutocomplete ($input_autocomplete,$todos_los_paises){
    $input_autocomplete = Misc::parsearBusquedaPadron($input_autocomplete);
    if ($input_autocomplete == "") { return []; }
		return DB::select('EXEC dbo.busqueda_padron_autocompletar ?,?', array($input_autocomplete,$todos_los_paises));
	}

	public static function busquedaPadronAutocompleteCMS ($input_autocomplete,$todos_los_paises){
    $input_autocomplete = Misc::parsearBusquedaPadron($input_autocomplete);
    if ($input_autocomplete == "") { return []; }
		return DB::select('EXEC dbo.busqueda_padron_autocompletar_cms ?,?', array($input_autocomplete,$todos_los_paises));
	}

	public static function busquedaPadron ($input_autocomplete, $todos_los_paises){
    $input_autocomplete = Misc::parsearBusquedaPadron($input_autocomplete);
    if ($input_autocomplete == "") { return []; }
		return DB::select('EXEC dbo.busqueda_padron ?,?', array($input_autocomplete,$todos_los_paises));
	}

	public static function obtenerPadronAvanzado ($razon_social_avanzado,$fisica_juridica,$pais,$provincia,$edad,$genero,$condicion_fiscal,$actividad_economica,$tipo_persona){
		return DB::select('EXEC dbo.busqueda_padron_avanzada ? ', array($razon_social_avanzado,$fisica_juridica,$pais,$provincia,$edad,$genero,$condicion_fiscal,$actividad_economica,$tipo_persona));
	}

	public static function obtenerPadronImpuestos ($id_padron){
		return DB::select('EXEC dbo.obtener_padron_impuestos ?', array($id_padron));
	}

	public static function obtenerPadronActividades ($id_padron){
		return DB::select('EXEC dbo.obtener_padron_actividades ?', array($id_padron));
	}

	public static function obtenerPadronCaracterizaciones ($id_padron){
		return DB::select('EXEC dbo.obtener_padron_caracterizaciones ?', array($id_padron));
	}

	public static function obtenerPaises(){
		return DB::select('EXEC dbo.obtener_Paises');
	}

	public static function obtenerProvincias($codigo){
		return DB::select('EXEC dbo.obtener_provincias',array($codigo));
	}

		// Funcion generica para ejecutar Store Procedure
	public static function backendStoreProcedure($store_procedure,$params,$selectOne=FALSE,$debug=FALSE) {
		$question_marks = '';
		if (count($params)) {
			$question_marks = array_fill(0, count($params), '?');
			$question_marks = ' ' . implode(',', $question_marks);
		}
		if ($debug===TRUE) {
			$params_txt = (count($params)) ? " '".implode("','",$params)."'" : "";
			die("EXEC ".$store_procedure.$params_txt);
		}
 
		if ($selectOne=="selectOne" or $selectOne===TRUE)
			return DB::selectOne('EXEC '.$store_procedure.$question_marks, $params);
		else
			return DB::select('EXEC '.$store_procedure.$question_marks, $params);
	}

	public static function obtenerProductosCliente($id_cliente,$es_cliente,$es_usuario){
		return DB::select('EXEC dbo.obtener_productos_cliente ?,?,?',array($id_cliente,$es_cliente,$es_usuario));
	}
	//nombres anteriores posibles de una razon social
	public static function obtenerNombresAnteriores($cuit){
		return DB::selectOne('EXEC dbo.obtener_nombres_anteriores ?',array($cuit));
	}

	public static function backendCambiosNombres($cuit){
		return DB::select('EXEC dbo.backend_cambios_nombres ?,?,?',array(null,$cuit,'1'));
	}

	public static function obtenerIdPadron($cuit){
		return DB::selectOne('EXEC dbo.obtener_id_padron ?',array($cuit));
	}

	public static function obtenerMarcas ($cuit){
		return DB::select('EXEC dbo.obtener_marcas ?',array($cuit));
	}
}

?>