<?php

class covensol_scb_c_banco {

	function covensol_scb_c_banco($propiedades=array()){		
		/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		// Function: Formulación
		// Access: public (covensol_fop_c_formulacion)
		// Description: Constructor de la Clase
		// Creado Por: Lic. Edgar A. Quintero
		// Fecha Creación: 31/10/2012 								
		// Fecha Última Modificación : 
		/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		global $ruta;
		if($ruta==''){$ruta="../";}		
		if(!$propiedades['habilitar_json']){$propiedades['habilitar_json']='si';}
		require_once($ruta."shared/class_folder/sigesp_include_covensol.php");
		$io_include=new sigesp_include_covensol();
		$io_conexion=$io_include->uf_conectar();
		//require_once($ruta."shared/class_folder/class_sql.php");
		require_once($ruta."shared/class_folder/class_sql_covensol.php");
		$this->io_sql=new class_sql_covensol($io_conexion);	
		require_once($ruta."shared/class_folder/class_mensajes.php");
		$this->io_mensajes=new class_mensajes();
		require_once($ruta."shared/class_folder/sigesp_conexiones.php");
		$this->io_conexiones=new conexiones();
		require_once($ruta."shared/class_folder/class_funciones.php");
		$this->io_funciones=new class_funciones();		
		require_once($ruta."shared/class_folder/sigesp_c_seguridad.php");
		$this->io_seguridad= new sigesp_c_seguridad();				
        $this->ls_codemp=$_SESSION["la_empresa"]["codemp"];
		$this->codemp=$_SESSION["la_empresa"]["codemp"];		
		if($propiedades['habilitar_json']=='si'){
			require_once($ruta.'shared/class_folder/JSON.php');
			$this->json = new JSON();
		}
		$this->postgres_ilike = '';
		if($_SESSION["ls_gestor"] == 'POSTGRES'){$this->postgres_ilike = 'I';}
		
		
		if($_SESSION["la_nomina"]["codnom"]){
			//$this->codemp=$_SESSION["la_empresa"]["codemp"];
			$this->codnom=$_SESSION["la_nomina"]["codnom"];
			$this->peractnom=$_SESSION["la_nomina"]["peractnom"];
		}
		
		if($propiedades['RepExcel']){
			require_once($ruta.'shared/PHPExcel/Classes/PHPExcelCovensol.php');
			$this->PHPExcel = new PHPExcelCovensol();
			$this->objWriter = PHPExcel_IOFactory::createWriter($this->PHPExcel, 'Excel5');
		}
		
		require_once($ruta."shared/class_folder/grid_covensol.php");
		$this->Grid = new GridCovensol();
		
		if($ruta=='../'){
			require_once($ruta."mis/sigesp_mis_c_contabiliza.php");  
			$this->ContabScb = new sigesp_mis_c_contabiliza();
			require_once($ruta."mis/class_folder/class_sigesp_scbmov_integracion.php");  	
			$this->IntegScb = new class_sigesp_scbmov_integracion();
		}
	}
	
	function GenerarArchivoExcel($nomarch){
		header('Content-Type: application/vnd.ms-excel');
		header('Content-Disposition: attachment;filename="'.$nomarch.'.xls"');
		header('Cache-Control: max-age=0');
		$this->objWriter->save('php://output');
		exit();
	}
	
	function EncabezadoRepExcel($titulo){
			$this->PHPExcel->CeldaTitulo('A','FECHA Y HORA:',false,10,'right','FFFFFFFF',true);
			$this->PHPExcel->CeldaTitulo('B',date('d/m/Y').' - '.date('H:i'),false,10,'left','FFFFFFFF',false);
			$this->PHPExcel->nroFila++;
			$this->PHPExcel->CeldaTitulo('A','USUARIO:',false,10,'right','FFFFFFFF',true);
			$this->PHPExcel->CeldaTitulo('B',$_SESSION["la_logusr"],false,10,'left','FFFFFFFF',false);
			$this->PHPExcel->nroFila++;
			$this->PHPExcel->CeldaTitulo('A','REPORTE:',false,10,'right','FFFFFFFF',true);
			$this->PHPExcel->CeldaTitulo('B',$titulo,false,10,'left','FFFFFFFF',false);
			$this->PHPExcel->nroFila++;
			$this->PHPExcel->nroFila++;	
	}
	
	function ValidarSesion($opciones = array()){
	//==========================================================================================================================
	//	Function:      ValidarSesion
	//  Elaborado por: Lic. Edgar A. Quintero U.
	//	Returns:	   
	//	Description:   Ejecuta la acción en caso de no haber obtenido las credenciales necesarias.
	//==========================================================================================================================
		if(!$_SESSION["la_logusr"]){
			echo '<script type="text/javascript">';			
			echo "if(window.opener!=null){opener.location.href='".$ruta."covensol_login.php'; window.close();}";
			echo "else{location.href='".$ruta."covensol_login.php';}";		
			echo '</script>';		
			return false;
		}
		return true;	
	}
	
	function ValidarAdministrador($opciones = array()){
	//==========================================================================================================================
	//	Function:      ValidarSesion
	//  Elaborado por: Lic. Edgar A. Quintero U.
	//	Returns:	   
	//	Description:   Ejecuta la acción en caso de no haber obtenido las credenciales necesarias.
	//==========================================================================================================================
		if(!$_SESSION["la_logusr"]=='ADMINISTRADOR'){return false;}
		//echo "Es Administrador !<br>"; 
		return true;	
	}
	
   function cargar_seguridad($as_sistema,$as_ventanas)
   {
		$ls_empresa=$_SESSION["la_empresa"]["codemp"];
		$ls_logusr=$_SESSION["la_logusr"];
		$this->seguridad["empresa"]=$ls_empresa;
		$this->seguridad["logusr"]=$ls_logusr;
		$this->seguridad["sistema"]=$as_sistema;
		$this->seguridad["ventanas"]=$as_ventanas;
		$this->permisos="";
		$this->la_permisos = array();
		$this->la_permisos["leer"]="";
		$this->la_permisos["incluir"]="";
		$this->la_permisos["cambiar"]="";
		$this->la_permisos["eliminar"]="";
		$this->la_permisos["imprimir"]="";
		$this->la_permisos["anular"]="";
		$this->la_permisos["ejecutar"]="";
		if (array_key_exists("permisos",$_POST)||($ls_logusr=="PSEGIS"))
		{	
			if($ls_logusr=="PSEGIS")
			{
				$this->permisos="1";
				$this->la_permisos=$this->io_seguridad->uf_sss_load_permisossigesp();
			}
			else
			{
				$this->permisos=$_POST["permisos"];
				$this->la_permisos["leer"]=$_POST["leer"];
				$this->la_permisos["incluir"]=$_POST["incluir"];
				$this->la_permisos["cambiar"]=$_POST["cambiar"];
				$this->la_permisos["eliminar"]=$_POST["eliminar"];
				$this->la_permisos["imprimir"]=$_POST["imprimir"];
				$this->la_permisos["anular"]=$_POST["anular"];
				$this->la_permisos["ejecutar"]=$_POST["ejecutar"];
			}
		}
		else
		{
			$this->permisos=$this->io_seguridad->uf_sss_load_permisos($ls_empresa,$ls_logusr,$as_sistema,$as_ventanas,$this->la_permisos);
		}
		
   }// end function cargar_seguridad
   
   function guardar_seguridad($param=array()){
	   $resp = $this->io_seguridad->uf_sss_insert_eventos_ventana( $this->seguridad["empresa"],
																   $this->seguridad["sistema"],
																   $this->seguridad['evento'],
																   $this->seguridad["logusr"],
																   $this->seguridad["ventanas"],
	   															   $this->seguridad['descripcion']);
	   return true;
	   
   }
   
   function imprimir_permisos($as_permisos,$aa_permisos,$as_logusr,$as_accion)
   {
		if (($as_permisos)||($as_logusr=="PSEGIS"))
		{
			print("<input type=hidden name=permisos id=permisos value='$as_permisos'>");
			print("<input type=hidden name=leer id=leer value='$aa_permisos[leer]'>");
			print("<input type=hidden name=incluir id=incluir value='$aa_permisos[incluir]'>");
			print("<input type=hidden name=cambiar id=cambiar value='$aa_permisos[cambiar]'>");
			print("<input type=hidden name=eliminar id=eliminar value='$aa_permisos[eliminar]'>");
			print("<input type=hidden name=imprimir id=imprimir value='$aa_permisos[imprimir]'>");
			print("<input type=hidden name=anular id=anular value='$aa_permisos[anular]'>");
			print("<input type=hidden name=ejecutar id=ejecutar value='$aa_permisos[ejecutar]'>");
		}
		else
		{
			print("<script language=JavaScript>");
			print("".$as_accion."");
			print("</script>");
		}
   }// end function uf_print_permisos
   
   function obtCfg($param,$prop=array())
	{
		
		
		$prop['criterio'] = (!$prop['criterio'])?'param':$prop['criterio'];
		$this->cfg_type = $this->cfg_type?$this->cfg_type:'C';

  
		switch($prop['criterio']){					
				
				case 'param':					
					$ls_sql="SELECT value
							  FROM sigesp_config 
							 WHERE codemp='".$this->ls_codemp."' 
							   AND codsis='".$this->cfg_codsis."' 
							   AND seccion='".$this->cfg_seccion."' 
							   AND type='".$this->cfg_type."'
							   AND entry='".$param."' ";
					break;
		
		}
				
		$this->RsFopConf=$this->io_sql->select($ls_sql);
				
		if($this->RsFopConf===false)
		{
			$metodo = 'obtCfg';
			$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR->:</b><br>'.$this->io_sql->message;					
			$this->io_mensajes->message($mensaje);
			return;					
		}
			
		return $this->RsFopConf->fields["value"];
	}
	
	function obtSegEstructuras($prop=array())
	{
					
		if(!$this->codintper){				
			$mensaje = '<b>VALIDACIÓN DE DATOS:</b><br> Faltan datos para poder validar la seguridad de estructura. 				           			    
						<br><br><b>METODO:</b> obtSegEstructuras ';
			$this->io_conexiones->mensajes_ajax($mensaje);																	
			return false;
		}	
		
		$ls_sql="SELECT codintper, enabled
				  FROM sss_permisos_internos 
				 WHERE codemp='".$this->ls_codemp."' 
				   AND codusu='".$_SESSION["la_logusr"]."' 
				   AND codsis='".$this->cfg_codsis."'
				   AND codintper='".$this->codintper."' ";
						
		$this->RsFopSeg=$this->io_sql->select($ls_sql);
				
		if($this->RsFopSeg===false)
		{
			$metodo = 'obtSegEstructuras';
			$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR->:</b><br>'.$this->io_sql->message;					
			$this->io_mensajes->message($mensaje);
			return;					
		}
		
		$this->FopSegEnable = $this->RsFopSeg->RecordCount()?1:0;
		
		return $this->FopSegEnable;
	}
	
	
 
   function formato_numerico_us($numero){
	
			$busca = array(".", ",");
			$sustituye   = array("", ".");
			number_format(str_replace($busca,$sustituye,$numero),2,'.','');
			return number_format(str_replace($busca,$sustituye,$numero),2,'.','');
	
	}

		
   function FormatLonCodEstPro($datos=array()){
	            
				$ls_incio=25-$_SESSION["la_empresa"]['loncodestpro1'];
				$datos['codestpro1']=substr($datos['codestpro1'],$ls_incio,$_SESSION["la_empresa"]['loncodestpro1']);
				
				$ls_incio=25-$_SESSION["la_empresa"]['loncodestpro2'];
				$datos['codestpro2']=substr($datos['codestpro2'],$ls_incio,$_SESSION["la_empresa"]['loncodestpro2']);
				
				$ls_incio=25-$_SESSION["la_empresa"]['loncodestpro3'];
				$datos['codestpro3']=substr($datos['codestpro3'],$ls_incio,$_SESSION["la_empresa"]['loncodestpro3']);
				
				$ls_incio=25-$_SESSION["la_empresa"]['loncodestpro4'];
				$datos['codestpro4']=substr($datos['codestpro4'],$ls_incio,$_SESSION["la_empresa"]['loncodestpro4']);
				
				$ls_incio=25-$_SESSION["la_empresa"]['loncodestpro5'];
				$datos['codestpro5']=substr($datos['codestpro5'],$ls_incio,$_SESSION["la_empresa"]['loncodestpro5']);
				
				return $datos;
   }
   
  
	function cargar_config_scb($opciones=array()){	
		
		 $query_rs ="SELECT *  FROM sigesp_config  
					 WHERE codemp='".$this->ls_codemp."' 
					 AND codsis='SCB' ";
				 
		$rs=$this->io_sql->select($query_rs);
				
		if($rs===false){
			$metodo = 'cargar_config_scb';
			$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR->:</b><br>'.$this->io_sql->message;					
			$this->io_mensajes->message($mensaje);	
			return false;					
		}		
					
		return $rs;
	}
	
	function actualizar_config($param=array()){
		
		$param['codsis'] = 'SCB';
		$param['seccion'] = 'CONFIG';
		$config = $this->select_config($param);
		if($config===false){return false;}
		if(!$this->rsConf->RecordCount()){
					$resul = $this->insertar_configuracion($param);
					if($resul===false){return false;}
					return true;
						
		}
		else{
					$resul = $this->modificar_configuracion($param);
					if($resul===false){return false;}
					return true;
		}		
	}
	
	function insertar_configuracion($param=array())
	{
				
		$ls_sql='INSERT INTO sigesp_config(codemp, codsis, seccion, entry, "type", "value")
				 VALUES'." ('".$this->ls_codemp."', '".$param['codsis']."', '".$param['seccion']."', '".$param['entry']."', 'C', '".$param['value']."');";
				
		$this->rs_data=$this->io_sql->select($ls_sql);
				
		if($this->rs_data===false)
		{
			$metodo = 'insertar_configuracion';
			$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR-></b><br>'.$this->io_sql->message;					
			$this->io_mensajes->message($mensaje);
			$this->io_conexiones->mensajes_ajax($mensaje,'error');
			//echo $mensaje;	
			return false;					
		}
			
		return true;
	}// end function select_config($param)
	
	function modificar_configuracion($param=array())
	{
				
		
		$ls_sql='UPDATE sigesp_config
				   SET  "value"'."='".$param['value']."' 
				 WHERE codemp='".$this->ls_codemp."' 
				 AND codsis='".$param['codsis']."' 
				 AND seccion='".$param['seccion']."' 
				 AND entry='".$param['entry']."' 
				 AND ".'"type"'."='C'";
						
		$this->rs_data=$this->io_sql->select($ls_sql);
				
		if($this->rs_data===false)
		{
			$metodo = 'modificar_configuracion';
			$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR:</b><br>'.$this->io_sql->message;					
			$this->io_mensajes->message($mensaje);
			$this->io_conexiones->mensajes_ajax($mensaje,'error');	
			return false;					
		}
			
		return true;
	}// end function select_config($param)
	
	function select_config($param=array())
	{
		
		$ls_sql="SELECT value ".
				"  FROM sigesp_config ".
				" WHERE codemp='".$this->ls_codemp."' ".
				"   AND codsis='".$param['codsis']."' ".
				"   AND seccion='".$param['seccion']."' ".
				"   AND entry='".$param['entry']."' ";
				
		$this->rsConf=$this->io_sql->select($ls_sql);
		//echo $ls_sql.'<br>';		
		if($this->rsConf===false)
		{
			$metodo = 'select_config';
			$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR:</b><br>'.$this->io_sql->message;					
			$this->io_mensajes->message($mensaje);
			$this->io_conexiones->mensajes_ajax($mensaje,'error');	
			return;					
		}
			
		return $this->rsConf->fields["value"];
	}// end function select_config($param)
	
	
	function ProcEstadoCta($param=array()){
		
		if(!$param['codban']){
		    $mensaje=" Falta el código de banco ! ";
			echo $mensaje.'<br>';
			$this->io_mensajes->message($mensaje);
			return false;
		}
		
		if(!$param['ctaban']){
		    $mensaje=" Falta la cuenta de banco !";
			$this->io_mensajes->message($mensaje);
			return false;
		}
		
		$this->chkimpcre = $param['chkimpcre'];
		$this->chkimpdeb = $param['chkimpdeb'];
		$this->chkrefnc = $param['chkrefnc'];
		$this->chkrefnd = $param['chkrefnd'];
		$this->chkgennc = $param['chkgennc'];
		$this->chkgennd = $param['chkgennd'];
		$this->chkcontnc = $param['chkcontnc'];
		$this->scg_cuenta_cre = $param['scg_cuenta_cre'];
		$this->scg_cuenta_bco = $param['scg_cuenta_bco'];
		$this->TipoArchivoEdoCta = $param['tipo_archivo'];
		
		$this->codban = $param['codban'];
		$this->ctaban = $param['ctaban'];
		$this->fecestcta = $param['fecestcta'];
		$resp = $this->SubirArchEstadoCta();	
		if($resp===false){return false;}
		
		switch($this->TipoArchivoEdoCta){
				
				case 'DEFECTO':
				    $resp = $this->ProcArchEstadoCta();	
					if($resp===false){return false;}
					break;
					
				case 'VENEZUELA':
				    $resp = $this->ProcArchEstadoCtaVenezuela();	
					if($resp===false){return false;}
					break;		
		}
				
		
		 $mensaje=" El estado de cuenta fue cargado con éxito !";
		 $this->io_mensajes->message($mensaje);
			
		return true;
	}// end function select_config($param)
	
	function SubirArchEstadoCta($param=array()){
		
		$nombre_archivo = $_FILES['txt_menu']['name'];
		$tipo_archivo = $_FILES['txt_menu']['type'];
		$tamano_archivo = $_FILES['txt_menu']['size'];
		$funcion_ejecutar="";
		$this->CarpetaEdoCta = 'txt/estados_cuenta/';
		$this->ArchEstCta = $this->CarpetaEdoCta.$nombre_archivo;
		
		
		if(!$_FILES['txt_menu']['name'] and $valido){
			$msj = "Debe seleccionar un archivo.";
		    $this->io_mensajes->message($msj);
			return false;		
		}
		
		if($_FILES['txt_menu']['size']==0 and $valido){
			$msj = "El archivo esta vacío.";
		    $this->io_mensajes->message($msj);
			return false;	
		}		
		
		if(!file_exists($this->CarpetaEdoCta)){		    
			if(!mkdir($this->CarpetaEdoCta, 0777)){
				$msj = "No se pudo crear el directorio ".$this->CarpetaEdoCta;
		   		$this->io_mensajes->message($msj);
				return false;
			};		
		}
				
		if (!move_uploaded_file($_FILES['txt_menu']['tmp_name'], $this->ArchEstCta)){
		   $msj = "Ocurrió algún error al subir el fichero. No pudo guardarse.";
		   $this->io_mensajes->message($msj);
		   return false;   
		}		
			
		return true;
	}// end function select_config($param)
	
	
	function ProcArchEstadoCta($param=array()){
					
			$fp = fopen($this->ArchEstCta,"r");			
			$nro = 1;	
			$nroenc = 1;
			$nroins = 1;
			$linea = 0;
			$this->movencontrados = array();
			$this->movinsert = array();		
						
			$resp = $this->GenerarNroEstCta();	
		    if($resp===false){return false;}
			
			$resp = $this->InsertarEstCta();	
		    if($resp===false){return false;}
			
			while($linea= fgets($fp,4096)){
						
						$linea++;
						$datos = explode('|',$linea);										
						if(!sizeof($datos)){continue;}
						
						if(sizeof($datos)!=7){						    
							$mensaje=" Cantidad de parámetros Inválido !".'\n'.
							         " Cantidad: ".sizeof($datos).'\n'.
									    " Linea: ".$linea;
							$this->io_mensajes->message($mensaje);
							return false;
						}
						
						//Fecha	Referencia	Descripción	Débito	Crédito	Saldo	Tipo
						$datos['nroestcta'] = $this->nroestcta;
						$datos['fecestcta'] = $this->fecestcta;
						$datos['codban'] = $this->codban;
						$datos['ctaban'] = $this->ctaban;
						
						$resp = $this->GenerarNroMovEstCta($datos);	
		                if($resp===false){ return false;}
												
						$datos['nromovestcta'] =  $this->nromovestcta;
						$datos['fecmovcta'] = $this->io_conexiones->formatea_fecha_bd($datos[0]);
						$datos['nrorefmovcta'] = trim($datos[1]);
						$datos['descmovcta'] = trim($datos[2]);
						$datos['debmovcta'] = (float)trim($datos[3]);
						$datos['cremovcta'] = (float)trim($datos[4]);
						$datos['saldocta'] = (float)trim($datos[5]);
						$datos['tipmovcta'] = trim($datos[6]);	
						$monmov = $datos['debmovcta']?-$datos['debmovcta']:$datos['cremovcta'];
						
						if($datos['tipmovcta']!='NC' and $datos['tipmovcta']!='DP' and $datos['tipmovcta']!='ND'){						    
							$mensaje=" Tipo de Movimiento de Cuenta Inválido !".'\n'.
							         " Mov: ".$datos['tipmovcta'].'\n'.
									 " Linea: ".$linea;
							echo $mensaje.'<br>';
							$this->io_mensajes->message($mensaje);
							return false;
						}
						
						if(!$datos['debmovcta'] and !$datos['cremovcta']){						    
							$mensaje=" Los créditos y Débitos del movimiento no pueden ser 0 al mismo tiempo !".'\n'.
							         " Linea: ".$linea;
							echo $mensaje.'<br>';
							$this->io_mensajes->message($mensaje);
							return false;
						}
						
						$datos['monto'] = $monmov;
						$datos['sigmovcta'] = $datos['monto']>0?'CRE':'DEB';
						
						if($datos['cremovcta']>0 and !$this->chkimpcre){continue;};
						if($datos['debmovcta']>0 and !$this->chkimpdeb){continue;};
												
						if(($datos['cremovcta']>0 and $this->chkrefnc) or 
						   ($datos['debmovcta']>0 and $this->chkrefnd)
						   ){												
							$datos['criterio'] = 'por_nroref';
							$resp = $this->ConsultaDetEstCta($datos);	
							if($resp===false){ return false;}
							if($resp->RecordCount()){
								$this->movencontrados[$nroenc] = '<b>'.$nroenc.'.-</b> <b class="texto-rojo">'.$datos['nrorefmovcta'].'</b> - '.trim($datos[0]).' | '.$monmov.' | '.$datos['descmovcta'];
								$nroenc++;	
								continue;
							}
						}
												
						$resp = $this->InsertarMovEstCta($datos);	
						if($resp===false){ return false;}
						
						if($this->chkgennc or $this->chkgennd){
							$resp = $this->ProcMovBcoEdoCta($datos);	
							if($resp===false){ return false;}
						}
						
						$this->movinsert[$nro] = '<b>'.$nro.'.-</b> <b class="texto-azul">'.$datos['nrorefmovcta'].'</b> - '.trim($datos[0]).' | '.$monmov.' | '.$datos['descmovcta'];
						$nro++;	
						
			}
			
			if($nro==1){
			    
				$msj = "No se inserto ningún movimiento nuevo de estado de cuenta.";
				$this->io_mensajes->message($msj);
				return true;			
			}
			
		    return true;
	}// end function select_config($param)
	
	function ProcArchEstadoCtaVenezuela($param=array()){
					
			$fp = fopen($this->ArchEstCta,"r");			
			$nro = 1;	
			$nroenc = 1;
			$nroins = 1;
			$linea = 0;
			$this->movencontrados = array();
			$this->movinsert = array();		
						
			$resp = $this->GenerarNroEstCta();	
		    if($resp===false){return false;}
			
			$resp = $this->InsertarEstCta();	
		    if($resp===false){return false;}
			
			while($linea= fgets($fp,8096)){
						
						$linea++;
						$datos = explode('|',$linea);																
						if(!sizeof($datos)){continue;}
						
						//1020552270000040000|2032015|124458|LOS TEQUES AV. LA HOYADA      |0|201600|3519739895|DP|1301
						
						//echo sizeof($datos).'<br>';
						if(sizeof($datos)!=11){						    
							$mensaje=" Cantidad de parámetros Inválido !".'\n'.
							         " Cantidad: ".sizeof($datos).'\n'.
									 " Linea: ".$linea;
							echo $mensaje.'<br>';
							$this->io_mensajes->message($mensaje);
							return false;
						}
						
						
						$datos['nroestcta'] = $this->nroestcta;
						$datos['fecestcta'] = $this->fecestcta;
						$datos['codban'] = $this->codban;
						$datos['ctaban'] = $this->ctaban;
						
						$resp = $this->GenerarNroMovEstCta($datos);	
		                if($resp===false){ return false;}
						$datos[0] = trim($datos[0]);
						$datos[1] = str_pad(trim($datos[1]),8,'0',STR_PAD_LEFT);
						$datos[2] = trim($datos[2]);
						$datos[3] = trim($datos[3]);
						$datos[4] = trim($datos[4]);
						$datos[5] = trim($datos[5]);
						$datos[6] = trim($datos[6]);
						$datos[7] = trim($datos[7]);
						$datos[8] = trim($datos[8]);
						
							
						$datos['nromovestcta'] =  $this->nromovestcta;
						$datos['fecmovcta'] = substr($datos[1],4,4).'-'.substr($datos[1],2,2).'-'.substr($datos[1],0,2);
						$datos['nrorefmovcta'] = $datos[2];
						$datos['descmovcta'] = $datos[3];
						$datos['debmovcta'] = round((integer)$datos[4]/100,2);
						$datos['cremovcta'] = round((integer)$datos[5]/100,2);
						$datos['saldocta'] = round($datos[6]/100,2);
						$datos['tipmovcta'] = $datos[7];	
						$monmov = $datos['debmovcta']?-$datos['debmovcta']:$datos['cremovcta'];
						
						if($datos['tipmovcta']=='SI'){continue;}
						if($datos['tipmovcta']!='NC' and $datos['tipmovcta']!='DP' and $datos['tipmovcta']!='ND'){continue;}
						
						if($datos['tipmovcta']!='NC' and $datos['tipmovcta']!='DP' and $datos['tipmovcta']!='ND'){						    
							$mensaje=" Tipo de Movimiento de Cuenta Inválido !".'\n'.
							         " Mov: ".$datos['tipmovcta'].'\n'.
									 " Linea: ".$linea;
									 echo $mensaje.'<br>';
							$this->io_mensajes->message($mensaje);
							return false;
						}
						
						if(!$datos['debmovcta'] and !$datos['cremovcta']){						    
							$mensaje=" Los créditos y Débitos del movimiento no pueden ser 0 al mismo tiempo !".'\n'.
							         " Linea: ".$linea;
									 echo $mensaje.'<br>';
							$this->io_mensajes->message($mensaje);
							return false;
						}
						
						$datos['monto'] = $monmov;
						$datos['sigmovcta'] = $datos['monto']>0?'CRE':'DEB';
						
						if($datos['cremovcta']>0 and !$this->chkimpcre){continue;};
						if($datos['debmovcta']>0 and !$this->chkimpdeb){continue;};
												
						if(($datos['cremovcta']>0 and $this->chkrefnc) or 
						   ($datos['debmovcta']>0 and $this->chkrefnd)
						   ){												
							$datos['criterio'] = 'por_nroref';
							$resp = $this->ConsultaDetEstCta($datos);	
							if($resp===false){ return false;}
							if($resp->RecordCount()){
								$this->movencontrados[$nroenc] = '<b>'.$nroenc.'.-</b> <b class="texto-rojo">'.$datos['nrorefmovcta'].'</b> - '.trim($datos[0]).' | '.$monmov.' | '.$datos['descmovcta'];
								$nroenc++;	
								continue;
							}
						}
												
						$resp = $this->InsertarMovEstCta($datos);	
						if($resp===false){ return false;}
						
						if($this->chkgennc or $this->chkgennd){
							$resp = $this->ProcMovBcoEdoCta($datos);	
							if($resp===false){ return false;}
						}
						
						$this->movinsert[$nro] = '<b>'.$nro.'.-</b> <b class="texto-azul">'.$datos['nrorefmovcta'].'</b> - '.trim($datos[0]).' | '.$monmov.' | '.$datos['descmovcta'];
						$nro++;	
						
			}
			
			if($nro==1){
			    
				$msj = "No se inserto ningún movimiento nuevo de estado de cuenta.";
				$this->io_mensajes->message($msj);
				return true;			
			}
			
		    return true;
	}// end function select_config($param)
	
	function ImprimirResultadosEstCta($datos=array()){
		
		echo '<br><br>';
		echo '<table width="508" border="0" align="center" cellpadding="1" cellspacing="0" class="formato-blanco">';
		echo '<tr>';
		echo '<td align="left">';
		echo '<b><span align="center">MOVIMIENTOS ENCONTRADO:</span></b><br><br>';
		if(is_array($this->movencontrados)){foreach(array_unique($this->movencontrados) as $mov){echo $mov.'<br>';}}					
		echo '</td>';					
		echo '</table><br><br>';
		
		echo '<br><br>';
		echo '<table width="508" border="0" align="center" cellpadding="1" cellspacing="0" class="formato-blanco">';
		echo '<tr>';
		echo '<td align="left">';
		echo '<b><span align="center">MOVIMIENTOS INSERTADOS:</span></b><br><br>';
		if(is_array($this->movinsert)){foreach(array_unique($this->movinsert) as $mov){echo $mov.'<br>';}}					
		echo '</td>';					
		echo '</table><br><br>';
			
	}
	
	function GenerarNroEstCta($datos=array()){
				
			$metodo = 'GenerarNroEstCta';
						
			$ls_sql=" SELECT nroestcta::integer as nroestcta 
			           FROM scb_estados_cta
				      ORDER BY nroestcta::integer DESC LIMIT 1";
					  					
			$rs_data=$this->io_sql->select($ls_sql);
			if($rs_data==false){				
				$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR-></b><br>'.$this->io_sql->message;					
				if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje);}
				else{$this->io_mensajes->message($mensaje);}
				return false;
			}
			
			if(!$rs_data->RecordCount()){$this->nroestcta = 1; return true;}
			
			$this->nroestcta = (integer)$rs_data->fields['nroestcta']+1;
			
			return true; 
			
	}
	
	
	function GenerarNroMovEstCta($datos=array()){
				
			$metodo = 'GenerarNroMovEstCta';
			
			
			$ls_sql=" SELECT nromovestcta::integer as nromovestcta 
			           FROM scb_dt_estados_cta
					   WHERE codban = '".$datos['codban']."'
					     AND ctaban = '".$datos['ctaban']."'
				      ORDER BY nromovestcta::integer DESC LIMIT 1";
					  					
			$rs_data=$this->io_sql->select($ls_sql);
			if($rs_data==false){				
				$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR-></b><br>'.$this->io_sql->message;					
				if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje);}
				else{$this->io_mensajes->message($mensaje);}
				return false;
			}
			
			if(!$rs_data->RecordCount()){$this->nromovestcta = 1; return true;}
			
			$this->nromovestcta = (integer)$rs_data->fields['nromovestcta']+1;
			
			return true; 
			
	}
	
	function InsertarEstCta($datos=array()){
			
			if(!$this->nroestcta){
				$mensaje=" Falta el número de estado de cuenta !";
				$this->io_mensajes->message($mensaje);
				return false;
			}
				
			$metodo = 'InsertarEstCta';
					
			$ls_sql=" INSERT INTO scb_estados_cta(codemp, nroestcta, fecestcta, codban, ctaban, fecreg, usureg, horareg)
						VALUES ('".$this->codemp."', 
								'".$this->nroestcta."', 
								'".$this->fecestcta."', 
								'".$this->codban."', 
								'".$this->ctaban."',								
								'".date("Y-m-d")."',
								'".$_SESSION["la_logusr"]."',
								'".date("H:i")."'
								); ";
					  					
			$rs_data=$this->io_sql->select($ls_sql);
			if($rs_data==false){				
				$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR-></b><br>'.$this->io_sql->message;					
				if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje);}
				else{$this->io_mensajes->message($mensaje);}
				return false;
			}
			
			return true; 
			
	}
	
	function ConsultaDetEstCta($prop=array())
	{		
		
		switch($prop['criterio']){
			  case "por_nroestcta":
					$sql_criterio = " WHERE nroestcta='".$prop['nroestcta']."'";
					break;							  
			  case "por_nromov":
					$sql_criterio = " WHERE codban='".$prop['codban']."' AND ctaban='".$prop['ctaban']."' AND nromovestcta='".$prop['nromovestcta']."'";   
					break;
			  case "por_nroref":
					$sql_criterio = " WHERE codban='".$prop['codban']."' AND ctaban='".$prop['ctaban']."' AND nrorefmovcta='".$prop['nrorefmovcta']."'";
					break;				   
			  case "por_listado":
					$sql_criterio = " WHERE codban='".$prop['codban']."' AND ctaban='".$prop['ctaban']."' AND nromovestcta='".$prop['nromovestcta']."'";
					break;			
		}
								   
		$ls_sql = "SELECT * FROM scb_dt_estados_cta ".$sql_criterio;
								
		$RsDtEstCta=$this->io_sql->select($ls_sql);
				
		if($RsDtEstCta===false)
		{
			$metodo = 'ConsultaDetEstCta';
			$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR->:</b><br>'.$this->io_sql->message;					
			$this->io_mensajes->message($mensaje);
			return;					
		}
		
		return $RsDtEstCta;
	}
	
	function InsertarMovEstCta($datos=array()){
			
			if(!$this->nroestcta){
				$mensaje=" Falta el número de estado de cuenta !";
				$this->io_mensajes->message($mensaje);
				return false;
			}
			
			if(!$this->nromovestcta){
				$mensaje=" Falta el número de movimiento de estado de cuenta !";
				$this->io_mensajes->message($mensaje);
				return false;
			}
			
			if(!$datos['nrorefmovcta']){
				$mensaje=" Falta el número de referencia del movimiento de estado de cuenta !";
				$this->io_mensajes->message($mensaje);
				return false;
			}
			
			if(!$datos['debmovcta'] and !$datos['cremovcta']){
				$mensaje=" Los créditos y Débitos del movimiento no pueden ser 0 al mismo tiempo !";
				$this->io_mensajes->message($mensaje);
				return false;
			}
				
			$metodo = 'InsertarMovEstCta';
			
			$ls_sql=" INSERT INTO scb_dt_estados_cta(codemp, nroestcta, nromovestcta, fecestcta, codban, ctaban, sigmovcta, fecmovcta, 
                                                  nrorefmovcta, descmovcta, debmovcta, cremovcta, saldocta, tipmovcta, facturado, 
												  fecreg, usureg, horareg)
						VALUES ('".$this->codemp."', 
								'".$this->nroestcta."', 
								'".$this->nromovestcta."',
								'".$datos['fecestcta']."', 
								'".$datos['codban']."', 
								'".$datos['ctaban']."', 
								'".$datos['sigmovcta']."', 
								'".$datos['fecmovcta']."', 
								'".$datos['nrorefmovcta']."', 
								'".$datos['descmovcta']."', 
								'".$datos['debmovcta']."', 
								'".$datos['cremovcta']."', 
								'".$datos['saldocta']."', 
								'".$datos['tipmovcta']."',
								0,
								'".date("Y-m-d")."',
								'".$_SESSION["la_logusr"]."',
								'".date("H:i")."'); ";
					  					
			$rs_data=$this->io_sql->select($ls_sql);
			if($rs_data==false){				
				$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR-></b><br>'.$this->io_sql->message;					
				if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje);}
				else{$this->io_mensajes->message($mensaje);}
				return false;
			}
			
			return true; 
			
	}	
	
	function ProcMovBcoEdoCta($datos=array()){
			
			if(!$datos['nrorefmovcta']){
				$mensaje=" ProcMovBcoEdoCta: Falta el número de referencia del movimiento de estado de cuenta !";
				$this->io_mensajes->message($mensaje);
				return false;
			}
			
			if(!$this->scg_cuenta_bco){
				$mensaje=" ProcMovBcoEdoCta: Falta la cuenta contable del Banco !";
				$this->io_mensajes->message($mensaje);
				return false;
			}
			
			if(!$this->scg_cuenta_cre){
				$mensaje=" ProcMovBcoEdoCta: Falta la cuenta contable del movimiento de crédito !";
				$this->io_mensajes->message($mensaje);
				return false;
			}
			
			$datos['monto'] = abs($datos['monto']);
			
			if($datos['monto']==0){
				$mensaje=" ProcMovBcoEdoCta: El monto del movimiento no puede ser 0 !";
				$this->io_mensajes->message($mensaje);
				return false;
			}
			
			if(!$datos['sigmovcta']){
				$mensaje=" ProcMovBcoEdoCta: Falta el signo del movimiento de cuenta !";
				$this->io_mensajes->message($mensaje);
				return false;
			}
			
			$datos['fecmov'] = $datos['fecmovcta'];
			$datos['numdoc'] = $datos['nrorefmovcta'];
			$datos['conmov'] = $datos['descmovcta'];
			$datos['estcon'] = 1;
			$datos['feccon'] = substr($datos['fecmovcta'],0,8).'01';
			
			switch($datos['sigmovcta']){
			
					case 'CRE':
					    if(!$this->chkgennc){break;}
						
						if($datos['tipmovcta']=='NC'){
							$datos['codope']='NC';
							$datos['estmov']='N';
							$datos['procede']='SCBBNC';
							$datos['procede_doc']='SCBBNC';
						}
						
						if($datos['tipmovcta']=='DP'){
							$datos['codope']='DP';
							$datos['estmov']='N';
							$datos['procede']='SCBBDP';
							$datos['procede_doc']='SCBBDP';
						}
						
						$resp = $this->InsertarMovbco($datos);	
						if($resp===false){return false;}
						
						$resp = $this->InsertarMovbcoFuenteFinan($datos);	
						if($resp===false){return false;}					
						
						$datos['scg_cuenta'] = $this->scg_cuenta_bco;
						$datos['debhab'] = 'D';
						$resp = $this->InsertarMovbcoScg($datos);	
						if($resp===false){return false;}
						
						$datos['scg_cuenta'] = $this->scg_cuenta_cre;
						$datos['debhab'] = 'H';
						$resp = $this->InsertarMovbcoScg($datos);	
						if($resp===false){return false;}
						
						if($this->chkcontnc){							
							$resp = $this->ContabilizarMovimientoScb($datos);	
						    if($resp===false){return false;}							
						}
						
						break;
						
					case 'DEB':
					    if(!$this->chkgennd){break;}
						break;
			
			}
			
			return true;
	
	}
	
	function InsertarMovbco($datos=array()){
			
			$metodo = 'InsertarMovbco';
				
			$ls_sql = "INSERT INTO scb_movbco ( codemp, codban, ctaban, numdoc, codope, estmov, 
												cod_pro, ced_bene, tipo_destino, 
												codconmov, fecmov, conmov, nomproben, monto, estbpd, 
												estcon, estcobing, esttra, chevau, estimpche, monobjret, monret, 
												procede, comprobante, fecha, id_mco, emicheproc, emicheced, emichenom, 
												emichefec, estmovint, codusu, codopeidb, aliidb, feccon, estreglib, 
												numcarord, numpolcon, coduniadmsig, codbansig, fecordpagsig, 
												tipdocressig, numdocressig, estmodordpag, codfuefin, forpagsig, 
												medpagsig, codestprosig, nrocontrolop, fechaconta, fechaanula, 
												conanu, estant, docant, monamo, numordpagmin, codtipfon, estserext, 
												estmovcob, numconint, estapribs, estxmlibs, codper, codperi, 
												tranoreglib, estcondoc, fecenvfir, fecenvcaj, benefalt, codmon, 
												tascam,nroestcta,nromovestcta,facturado
												) 
						VALUES (  '".$this->codemp."', '".$this->codban."', '".$this->ctaban."', '".$datos['numdoc']."', '".$datos['codope']."', 'N', 
								  '----------', '----------', '-', 
								  '---', '".$datos['fecmov']."', '".$datos['conmov']."', 'Ninguno', '".$datos['monto']."', 'M', 
								  '".$datos['estcon']."', 0, 0, ' ', 0, 0, 0, 
								  '".$datos['procede']."', '', '1900-01-01', NULL, 0, NULL, NULL, 
								  NULL, 0, '".$_SESSION["la_logusr"]."', '', NULL, '".$datos['feccon']."', '', 
								  NULL, 0, '', '', NULL, 
								  '', '', '', '--', NULL, 
								  NULL, NULL, NULL, '1900-01-01', '1900-01-01', 
								  '', '0', '---------------', 0, '-', '----', '0', 
								  0, NULL, '0', '0', NULL, NULL, 
								  '0', 'S', '1900-01-01', '1900-01-01', '', NULL, 
								  0,'".$this->nroestcta."', '".$this->nromovestcta."',0 )";
							
			 $rs_data=$this->io_sql->select($ls_sql);
			 if($rs_data==false){				
				$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR-></b><br>'.$this->io_sql->message;					
				if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje);}
				else{$this->io_mensajes->message($mensaje);}
				return false;
			 }
			 
			 return true;

	}
	
	
	function InsertarMovbcoScg($datos=array()){
		    $metodo = 'InsertarMovbcoScg';
			
		    $ls_sql = " INSERT INTO scb_movbco_scg(
									codemp, codban, ctaban, numdoc, codope, estmov, 
									scg_cuenta, debhab, 
									codded, documento, desmov, procede_doc, 
									monto, monobjret, codper, codperi)
							VALUES ('".$this->codemp."', '".$this->codban."', '".$this->ctaban."', '".$datos['numdoc']."', '".$datos['codope']."', 'N', '".
							           $datos['scg_cuenta']."', '".$datos['debhab']."', 
									'00000', '".$datos['numdoc']."', '".$datos['conmov']."', '".$datos['procede_doc']."', '".
									 $datos['monto']."', 0, NULL, NULL );
						 ";
			 
			 $rs_data=$this->io_sql->select($ls_sql);
			 if($rs_data==false){				
				$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR-></b><br>'.$this->io_sql->message;					
				if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje);}
				else{$this->io_mensajes->message($mensaje);}
				return false;
			 }
			 
			 return true;
	
	}
	
	function InsertarMovbcoFuenteFinan($datos=array()){
			
			$datos['codfuefin'] = $datos['codfuefin']?$datos['codfuefin']:'--';
			$metodo = 'InsertarMovbcoFuenteFinan';
		    $ls_sql = " INSERT INTO scb_movbco_fuefinanciamiento(
										codemp, codban, ctaban, numdoc, codope, estmov, codfuefin)
							VALUES ('".$this->codemp."', '".$this->codban."', '".$this->ctaban."', '".$datos['numdoc']."', '".$datos['codope']."', 'N', '".
							           $datos['codfuefin']."' );
						 ";
			 
			 $rs_data=$this->io_sql->select($ls_sql);
			 if($rs_data==false){				
				$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR-></b><br>'.$this->io_sql->message;					
				if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje);}
				else{$this->io_mensajes->message($mensaje);}
				return false;
			 }
			 
			 return true;
	
	}
	
	function ContabilizarMovimientoScb($datos=array()){
		
				$ls_numdoc=$datos["numdoc"];
				$ls_fecmov=$this->io_conexiones->formatea_fecha_normal($datos["fecmov"]);		
				$ls_conmov=$datos["conmov"];
				$ls_codban=$datos["codban"];
				$ls_ctaban=$datos["ctaban"];
				$ls_estmov=$datos["estmov"];
				$ls_codope=$datos["codope"];
				$resp=$this->IntegScb->uf_procesar_contabilizacion_banco($ls_codban,$ls_ctaban,$ls_numdoc,$ls_codope,
																         $ls_estmov,$ls_fecha,$li_feccondep,$this->seguridad);
				if($resp===false){return false;}
				
				return true;
	}
	
	
	function ConsultaBancos($opciones=array()){	
		
		$sql_criterio="";
										   
		$ls_sql = "SELECT * FROM scb_banco ".$sql_criterio;
		
		$rs_data=$this->io_sql->select($ls_sql);
		if($rs_data==false){				
			$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR-></b><br>'.$this->io_sql->message;					
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje);}
			else{$this->io_mensajes->message($mensaje);}
			return false;
		}
			
		return $rs_data; 
	}
	
	
	function comboBancos($opciones=array()){

				if(!$opciones['nombre_combo']){$nombre_combo = 'cmbbanco';}else{$nombre_combo = $opciones['nombre_combo'];}
				if(!$opciones['codban']){$carga = ' Seleccione '; $id_carga = '';}
				else{$carga = $opciones['nomban'];  $id_carga = $opciones['codban'];}
				
				$opciones['criterio']='por_listado';
				$resultado = $this->ConsultaBancos($opciones);
				if($resultado===false){return false;}
				
				$combo = '<select name="'.$nombre_combo.'" id="'.$nombre_combo.'" onChange="'.$opciones['funcion_js'].'">';
				
				foreach($resultado as $fila){ 
				    $selected="";				
					if($fila["codban"]==$id_carga){$selected = 'selected';}
					$combo .= '<option value="'.$fila["codban"].'" '.$selected.'>('.$fila["codban"].') - '.$fila["nomban"].'</option>';								
				} 
				$combo .= '</select>';
																							
				echo $combo;

	}
	
	function ConsultaMedidasVoucher($param=array())
	{		
		
		$ls_sql="SELECT * 
		           FROM scb_medidas_cheque  
				  WHERE codemp='".$this->ls_codemp."' 
				    AND codban='".$param['codban']."';";
				
		$rs_data=$this->io_sql->select($ls_sql);
				
		if($rs_data===false)
		{
			$metodo = 'ConsultaMedidasVoucher';
			$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR-></b><br>'.$this->io_sql->message;					
			$this->io_mensajes->message($mensaje);
			$this->io_conexiones->mensajes_ajax($mensaje,'error');			
			return false;					
		}
			
		return $rs_data;
	}// end function select_config($param)
	
	function ProcesarMedidasVoucher($param=array())
	{
		$resp = $this->ConsultaMedidasVoucher($param);
		if($resp===false){return false;}
		
		$param = $this->FormatosMedidasVoucher($param);
		
		if($resp->RecordCount()){		    
			$respact = $this->ActualizarMedidasVoucher($param);
			if($respact===false){return false;}
			return true;
		}
		
		$respins = $this->InsertarMedidasVoucher($param);
		if($respins===false){return false;}
		
		return true;
	}// end function select_config($param)
	
	function InsertarMedidasVoucher($param=array())
	{		
		
		$ls_sql="INSERT INTO scb_medidas_cheque(codemp, codban, montox, montoy, destinox, destinoy, montoletras1x, 
												montoletras1y, montoletras2x, montoletras2y, fechax, fechay, 
												anox, anoy, noendosablex, noendosabley, caducax, caducay)
				VALUES ('".$this->ls_codemp."', 
				        '".$param['codban']."', 
						'".$param['montox']."', 
						'".$param['montoy']."', 
						'".$param['destinox']."', 
						'".$param['destinoy']."', 
						'".$param['montoletras1x']."', 
						'".$param['montoletras1y']."', 
						'".$param['montoletras2x']."', 
						'".$param['montoletras2y']."', 
						'".$param['fechax']."', 
						'".$param['fechay']."', 
						'".$param['anox']."', 
						'".$param['anoy']."', 
						'".$param['noendosablex']."', 
						'".$param['noendosabley']."', 
						'".$param['caducax']."', 
						'".$param['caducay']."');";
				
		$this->rs_data=$this->io_sql->select($ls_sql);
				
		if($this->rs_data===false)
		{
			$metodo = 'InsertarMedidasVoucher';
			$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR-></b><br>'.$this->io_sql->message;					
			$this->io_mensajes->message($mensaje);
			$this->io_conexiones->mensajes_ajax($mensaje,'error');			
			return false;					
		}
		
		 $mensaje = "Las medidas del cheque voucher fueron guardadas con éxito ";
		 $this->io_mensajes->message($mensaje);
			
		 return true;
	}// end function select_config($param)
	
	function ActualizarMedidasVoucher($param=array()){
				
		
		$ls_sql="	UPDATE scb_medidas_cheque
					   SET montox='".$param['montox']."', 
						   montoy='".$param['montoy']."', 
						   destinox='".$param['destinox']."', 
						   destinoy='".$param['destinoy']."', 
						   montoletras1x='".$param['montoletras1x']."', 
						   montoletras1y='".$param['montoletras1y']."', 
						   montoletras2x='".$param['montoletras2x']."', 
						   montoletras2y='".$param['montoletras2y']."', 
						   fechax='".$param['fechax']."', 
						   fechay='".$param['fechay']."', 
						   anox='".$param['anox']."', 
						   anoy='".$param['anoy']."', 
						   noendosablex='".$param['noendosablex']."', 
						   noendosabley='".$param['noendosabley']."', 
						   caducax='".$param['caducax']."', 
						   caducay='".$param['caducay']."'
					 WHERE codemp='".$this->ls_codemp."' 
					   AND codban='".$param['codban']."';
				";
						
		$this->rs_data=$this->io_sql->select($ls_sql);
		
		if($this->rs_data===false)
		{
			$metodo = 'ActualizarMedidasVoucher';
			$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR:</b><br>'.$this->io_sql->message;					
			$this->io_mensajes->message($mensaje);
			$this->io_conexiones->mensajes_ajax($mensaje,'error');	
			return false;					
		}
		
		$mensaje = "Las medidas del cheque voucher fueron actualizadas con éxito ";
		$this->io_mensajes->message($mensaje);
			
		return true;
	}// end function select_config($param)
	
	function ParametrosDefectoVoucher($param=array()){
			
			$param['montox'] = 138.00;
			$param['montoy'] = 8.00;
			$param['destinox'] = 35.00;
			$param['destinoy'] = 24.00;
			$param['montoletras1x'] = 35.00;
			$param['montoletras1y'] = 31.00;
			$param['montoletras2x'] = 32.00;
			$param['montoletras2y'] = 34.00;
			$param['fechax'] = 35.00;
			$param['fechay'] = 44.00;
			$param['anox'] = 86.00;
			$param['anoy'] = 44.00;
			$param['noendosablex'] = 250.00;
			$param['noendosabley'] = 58.00;
			$param['caducax'] = 250.00;
			$param['caducay'] = 63.00;
			
			return $param;	
	}
	
	function FormatosMedidasVoucher($param=array()){
			
			$param['montox'] = $this->formato_numerico_us($param['montox']);
			$param['montoy'] = $this->formato_numerico_us($param['montoy']);
			$param['destinox'] = $this->formato_numerico_us($param['destinox']);
			$param['destinoy'] = $this->formato_numerico_us($param['destinoy']);
			$param['montoletras1x'] = $this->formato_numerico_us($param['montoletras1x']);
			$param['montoletras1y'] = $this->formato_numerico_us($param['montoletras1y']);
			$param['montoletras2x'] = $this->formato_numerico_us($param['montoletras2x']);
			$param['montoletras2y'] = $this->formato_numerico_us($param['montoletras2y']);
			$param['fechax'] = $this->formato_numerico_us($param['fechax']);
			$param['fechay'] = $this->formato_numerico_us($param['fechay']);
			$param['anox'] = $this->formato_numerico_us($param['anox']);
			$param['anoy'] = $this->formato_numerico_us($param['anoy']);
			$param['noendosablex'] = $this->formato_numerico_us($param['noendosablex']);
			$param['noendosabley'] = $this->formato_numerico_us($param['noendosabley']);
			$param['caducax'] = $this->formato_numerico_us($param['caducax']);
			$param['caducay'] = $this->formato_numerico_us($param['caducay']);
			
			return $param;	
	}
	
	function ObtenerParametrosVoucher($param=array()){
						
			if(!$this->codban){$this->codban='---';}			
			$param['codban'] = $this->codban;
			$resp = $this->ConsultaMedidasVoucher($param);
			if($resp===false){return false;}
			
			if(!$resp->RecordCount() and $param['codban']=='---'){
			    $param = $this->ParametrosDefectoVoucher($param);
				$respins = $this->InsertarMedidasVoucher($param);
				if($respins===false){return false;}
				$resp = $this->ConsultaMedidasVoucher($param);
			    if($resp===false){return false;}
			} 			
			
			if(!$resp->RecordCount() and $param['codban']!='---'){
			    $mensaje = "No se encontraron medidas para este banco. ".'\n'.
				           "Se cargaran las medidas por defecto.".'\n'.
						   "Guarde las medidas para este banco.";
			    $this->io_mensajes->message($mensaje);
				if($this->Reporte){return false;}
			    $param['codban']='---';
				$resp = $this->ConsultaMedidasVoucher($param);
			    if($resp===false){return false;}
			}
						
			$this->montox=number_format($resp->fields["montox"],2,",",".");
			$this->montoy=number_format($resp->fields["montoy"],2,",",".");
			$this->destinox=number_format($resp->fields["destinox"],2,",",".");
			$this->destinoy=number_format($resp->fields["destinoy"],2,",",".");
			$this->montoletras1x=number_format($resp->fields["montoletras1x"],2,",",".");
			$this->montoletras1y=number_format($resp->fields["montoletras1y"],2,",",".");
			$this->montoletras2x=number_format($resp->fields["montoletras2x"],2,",",".");
			$this->montoletras2y=number_format($resp->fields["montoletras2y"],2,",",".");
			$this->fechax=number_format($resp->fields["fechax"],2,",",".");
			$this->fechay=number_format($resp->fields["fechay"],2,",",".");
			$this->anox=number_format($resp->fields["anox"],2,",",".");
			$this->anoy=number_format($resp->fields["anoy"],2,",",".");
			$this->noendosablex=number_format($resp->fields["noendosablex"],2,",",".");
			$this->noendosabley=number_format($resp->fields["noendosabley"],2,",",".");
			$this->caducax=number_format($resp->fields["caducax"],2,",",".");
			$this->caducay=number_format($resp->fields["caducay"],2,",",".");
						
			$this->CadenaMedidas = $resp->fields["montox"]."-".
								   $resp->fields["montoy"]."-".
								   $resp->fields["destinox"]."-".
								   $resp->fields["destinoy"]."-".
								   $resp->fields["montoletras1x"]."-".
								   $resp->fields["montoletras1y"]."-".
								   $resp->fields["montoletras2x"]."-".
								   $resp->fields["montoletras2y"]."-".
								   $resp->fields["fechax"]."-".
								   $resp->fields["fechay"]."-".
								   $resp->fields["anox"]."-".
								   $resp->fields["anoy"]."-".
								   $resp->fields["noendosablex"]."-".
								   $resp->fields["noendosabley"]."-".
								   $resp->fields["caducax"]."-".
								   $resp->fields["caducay"];
			
			return true;
	
	}
	
	
}//////////////////////////////////////////////////////////////******* FIN CLASE FORMULACIÓN *******/////////////////////////////////////////////////////////


?>
