<?php 

class covensol_cxp_cuentasxpagar{

	function covensol_cxp_cuentasxpagar($propiedades=array()){		
			/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
			// Function: covensol_cxc_cuentasxpagar
			// Access: public (covensol_cxc_cuentasxpagar)
			// Description: Constructor de la Clase
			// Creado Por: Lic. Edgar A. Quintero
			// Fecha Creación: 27/01/2009 								
			// Fecha Última Modificación : 
			/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
			global $ruta;
			
			if(!$propiedades['habilitar_json']){$propiedades['habilitar_json']='si';}
			if($ruta==''){$ruta="../";}
			//echo $ruta.'<br>';
			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_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_db.php");
			$this->fun = new class_funciones_db($io_conexion,1);
			//require_once($ruta."arc/clases/arc_c_archivos.php");
			//$this->archivo = new archivos_doc;	
			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->postgres_ilike = '';
			if($propiedades['habilitar_json']=='si'){
				require_once($ruta.'shared/class_folder/JSON.php');
				$this->json = new JSON();
			}
			if($_SESSION["ls_gestor"] == 'POSTGRES'){$this->postgres_ilike = 'I';}
			$this->extraer_configuracion();
			$param['codsis'] = 'COR';
			$param['seccion'] = 'CONFIG';
			$param['entry'] = 'NOMINAS';
			$this->nominas = $this->select_config($param);
			
			$this->inicio_numerodoc=1;
			$this->inicio_numerofact=1;
			
			require_once($ruta."shared/class_folder/class_fecha.php");		
			$this->io_fecha= new class_fecha();	
			require_once($ruta."shared/class_folder/class_sigesp_int.php");
			require_once($ruta."shared/class_folder/class_sigesp_int_int.php");
			require_once($ruta."shared/class_folder/class_sigesp_int_spg.php");
			require_once($ruta."shared/class_folder/class_sigesp_int_scg.php");
			require_once($ruta."shared/class_folder/class_sigesp_int_spi.php");
			$this->io_sigesp_int=new class_sigesp_int_int();
			$this->io_sigesp_int_spg=new class_sigesp_int_spg();
			$this->io_sigesp_int_scg=new class_sigesp_int_scg();	
			require_once($ruta."shared/class_folder/sigesp_c_generar_consecutivo.php");
			$this->io_keygen= new sigesp_c_generar_consecutivo();
			
			require_once($ruta."spg/sigesp_spg_c_comprobante.php");
			$this->classcmp=new sigesp_spg_c_comprobante();
			$this->classcmp->DisableTrans = $this->io_sql->DisableTrans;
			
			require_once($ruta."spi/sigesp_spi_c_comprobante.php");
			$this->cmpspi=new sigesp_spi_c_comprobante();			
			
			
			require_once($ruta."spi/class_folder/sigesp_spi_c_reprocesar_spi.php");
			$this->SaldosSPI = new sigesp_spi_c_reprocesar_spi();
			
			require_once($ruta."spg/class_folder/sigesp_spg_c_reprocesar_spg.php");
			$this->SaldosSPG = new sigesp_spg_c_reprocesar_spg();
			
			$this->EsAjax = 0;
			
			if($propiedades['RepExcel']){
				require_once($ruta.'shared/PHPExcel/Classes/PHPExcelCovensol.php');
				$this->PHPExcel = new PHPExcelCovensol();
				$this->objWriter = PHPExcel_IOFactory::createWriter($this->PHPExcel, 'Excel5');
			}
	}


	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(!array_key_exists("la_logusr",$_SESSION)){
			echo '<script type="text/javascript">';			
			echo "if(window.opener!=null){opener.location.href='../sigesp_inicio_sesion.php'; window.close();}";
			echo "else{location.href='../sigesp_inicio_sesion.php';}";		
			echo '</script>';		
			return false;
		}
		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);
			if($this->permisos===false){
				echo '<script type="text/javascript">';			
				echo "if(window.opener!=null){opener.location.href='../sigesp_inicio_sesion.php'; window.close();}";
				echo "else{location.href='../index_covensol.php';}";		
				echo '</script>';		
				return false;
			}
		}
		
   }// 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 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 extraer_configuracion(){
	
		$param['codsis'] = 'CXC';
		$param['seccion'] = 'CONFIG';
		$param['entry'] = 'INICIO_NUMERO_FACT';
		$this->inicio_numerofact = $this->select_config($param);
		if(!$this->inicio_numerofact){$this->inicio_numerofact=1;}
		
	}
	
	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->rs_data=$this->io_sql->select($ls_sql);
		//echo $ls_sql.'<br>';		
		if($this->rs_data===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->rs_data->fields["value"];
	}// end function select_config($param)
	
	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 GenNroAnticipo($param=array())
	{
		
		if(!$param['ced_bene'] or !$param['cod_pro'] or !$param['tipproben'])
		{					
			$mensaje = 'Faltan datos para poder generar el número de anticipo. ';
			$this->io_conexiones->mensajes_ajax($mensaje,'error');																	
			return false;
		}
		
		$ls_sql=" SELECT nroanticipo
				   FROM cxp_anticipos 
				  WHERE ced_bene = '".$param['ced_bene']."'
				    AND cod_pro = '".$param['cod_pro']."'
					AND tipproben = '".$param['tipproben']."'					
				   ORDER BY 1 DESC LIMIT 1
				";
				
		$this->rs_data=$this->io_sql->select($ls_sql);
		//echo $ls_sql.'<br>';		
		if($this->rs_data===false)
		{
			$metodo = 'GenNroAnticipo';
			$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR-></b><br>'.$this->io_sql->message;		
			$this->io_conexiones->mensajes_ajax($mensaje,'error');	
			return;					
		}
		
		if(!$this->rs_data->RecordCount()){$this->nroanticipo=1;}
		else{$this->nroanticipo=$this->rs_data->fields['nroanticipo']+1;}		
		
		$this->nrorecep = 'ANT-'.str_pad($this->nroanticipo,11,"0",STR_PAD_LEFT);
		$this->nronumref = '00-'.str_pad($this->nroanticipo,5,"0",STR_PAD_LEFT);	
		return $this->nroanticipo;
	}// end function select_config($param)
	
	
	function ExisteAnticipo($param=array()){
			
	    if(!$this->nroanticipo)
		{					
			$mensaje = 'Falta el número de anticipo para verificar su existencia. ';
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->numrecdoc)
		{					
			$mensaje = 'Falta el número de recepción de documento para verificar su existencia.';
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->tipproben)
		{					
			$mensaje = 'Falta el tipo de proveedor o beneficiario para verificar su existencia.';
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->ced_bene)
		{					
			$mensaje = 'Falta el código de beneficiario para verificar su existencia.';
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->cod_pro)
		{					
			$mensaje = 'Falta el código del proveedor para verificar su existencia.';
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
			
		$ls_sql="   SELECT * FROM  cxp_anticipos
					 WHERE nroanticipo='".$this->nroanticipo."' 
					   AND numrecdoc='".$this->numrecdoc."' 
					   AND ced_bene='".$this->ced_bene."' 
					   AND cod_pro='".$this->cod_pro."'
					   AND tipproben='".$this->tipproben."'
					   AND estant!='ANULADO'
				";
				
		$this->rs_data=$this->io_sql->select($ls_sql);
		//echo $ls_sql.'<br>';		
		if($this->rs_data===false)
		{
			$metodo = 'IsertarAnticipo';
			$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR-></b><br>'.$this->io_sql->message;		
			$this->io_conexiones->mensajes_ajax($mensaje,'error');	
			return false;					
		}
		
		$existe = $this->rs_data->RecordCount()?1:0;
				
		return $existe;
	
	}
	
	function IsertarAnticipo($datos=array()){	
		
		$metodo='IsertarAnticipo';
		
		if(!$this->nroanticipo)
		{					
			$mensaje = 'Falta el número de anticipo. ';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->numrecdoc)
		{					
			$mensaje = 'Falta el número de recepción de documento.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->tipproben)
		{					
			$mensaje = 'Falta el tipo de proveedor o beneficiario.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->ced_bene)
		{					
			$mensaje = 'Falta el código de beneficiario.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->cod_pro)
		{					
			$mensaje = 'Falta el código del proveedor.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->fecemiant)
		{					
			$mensaje = 'Falta la fecha del documento de anticipo.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->concepant)
		{					
			$mensaje = 'Falta el concepto del documento de anticipo.';
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->montoant)
		{					
			$mensaje = 'Falta el monto del documento de anticipo.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		$ls_sql="   INSERT INTO cxp_anticipos(
							nroanticipo, numrecdoc, ced_bene, cod_pro, tipproben, nrocontrato, 
							sc_cuenta, fecemiant, concepant, montoant)
					VALUES ('".$this->nroanticipo."', '".
					           $this->numrecdoc."', '".
							   $this->ced_bene."', '".
							   $this->cod_pro."', '".
							   $this->tipproben."', '".
							   $this->nrocontrato."', '".
							   $this->sc_cuenta."', '".
							   $this->fecemiant."', '".
							   $this->concepant."', '".
							   $this->montoant."');
				";
				
		$this->rs_data=$this->io_sql->select($ls_sql);
		//echo $ls_sql.'<br>';		
		if($this->rs_data===false)
		{
			$metodo = 'IsertarAnticipo';
			$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR-></b><br>'.$this->io_sql->message;		
			$this->io_conexiones->mensajes_ajax($mensaje,'error');	
			return false;					
		}
				
		return true;
	
	}
	
	
	function ActualizarAnticipo($datos=array()){
		$metodo='ActualizarAnticipo';
		if(!$this->nroanticipo)
		{					
			$mensaje = 'Falta el número de anticipo. ';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->numrecdoc)
		{					
			$mensaje = 'Falta el número de recepción de documento.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->tipproben)
		{					
			$mensaje = 'Falta el tipo de proveedor o beneficiario.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->ced_bene)
		{					
			$mensaje = 'Falta el código de beneficiario.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->cod_pro)
		{					
			$mensaje = 'Falta el código del proveedor.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->fecemiant)
		{					
			$mensaje = 'Falta la fecha del documento de anticipo.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->concepant)
		{					
			$mensaje = 'Falta el concepto del documento de anticipo.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->montoant)
		{					
			$mensaje = 'Falta el monto del documento de anticipo.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		
		$ls_sql="   UPDATE cxp_anticipos
					   SET sc_cuenta='".$this->sc_cuenta."', 
						   fecemiant='".$this->fecemiant."', 
						   concepant='".$this->concepant."', 
						   montoant='".$this->montoant."'
					 WHERE nroanticipo='".$this->nroanticipo."' 
					   AND numrecdoc='".$this->numrecdoc."' 
					   AND ced_bene='".$this->ced_bene."' 
					   AND cod_pro='".$this->cod_pro."'
					   AND tipproben='".$this->tipproben."';
				";
				
		$this->rs_data=$this->io_sql->select($ls_sql);
		//echo $ls_sql.'<br>';		
		if($this->rs_data===false)
		{
			$metodo = 'ActualizarAnticipo';
			$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR-></b><br>'.$this->io_sql->message;		
			$this->io_conexiones->mensajes_ajax($mensaje,'error');	
			return false;					
		}
				
		return true;
	
	}
	
	function ConsultaGeneralAnticipos($datos=array()){
	
		$metodo='ConsultaGeneralAnticipos';
		
		$criterio = "";
		if($datos['tipproben']){$criterio .= " AND a.tipproben = '".$datos['tipproben']."' ";}
		if($datos['codproben'] and $datos['tipproben']=="P"){$criterio .= " AND p.cod_pro = '".$datos['codproben']."' ";}
		if($datos['codproben'] and $datos['tipproben']=="B"){$criterio .= " AND a.ced_bene = '".$datos['codproben']."' ";}
		if($datos['estant']){$criterio .= " AND a.estant = '".$datos['estant']."' ";}
		if($datos['omitcer']){$criterio .= " AND a.estant NOT IN('DESCTOTAL','ANULADO') ";}
		if($datos['nroanticipo']){$criterio .= " AND a.nroanticipo = '".$datos['nroanticipo']."' ";}
		if($datos['nrocontrato']){$criterio .= " AND a.nrocontrato ILIKE '%".$datos['nrocontrato']."%' ";}
		
		if($datos['fecemiantdes']){
		    $datos['fecemianthas'] = $datos['fecemianthas']?$datos['fecemianthas']:$datos['fecemiantdes'];
			$criterio .= " AND (a.fecemiant BETWEEN '".$datos['fecemiantdes']."' AND '".$datos['fecemianthas']."') ";
		}
		
		
		
		$ls_sql="   SELECT a.*, COALESCE((SELECT sum(montodesc)
							    	  FROM  cxp_dt_anticipos da
								     WHERE a.tipproben = da.tipproben
									   AND a.nroanticipo = da.nroanticipo
									   AND a.ced_bene = da.ced_bene
									   AND a.cod_pro = da.cod_pro                              
									   AND a.nroanticipo = da.nroanticipo),0) AS montotdesc,
						(CASE WHEN a.tipproben='P' THEN (SELECT pro.rifpro||' - '||pro.nompro FROM rpc_proveedor pro WHERE a.cod_pro=pro.cod_pro)
						      WHEN a.tipproben='B' THEN (SELECT ben.rifben||' - '||ben.nombene||' '||ben.apebene FROM rpc_beneficiario ben WHERE a.ced_bene=ben.ced_bene)							 
							  ELSE ''
							  END) AS infoproben,
						( 
							a.montoant - COALESCE((SELECT sum(montodesc)
										  FROM  cxp_dt_anticipos da
										 WHERE a.tipproben = da.tipproben
										   AND a.nroanticipo = da.nroanticipo
										   AND a.ced_bene = da.ced_bene
										   AND a.cod_pro = da.cod_pro                              
										   AND a.nroanticipo = da.nroanticipo),0) 
						 ) AS montorest
		              FROM  cxp_anticipos a	
					  LEFT JOIN rpc_proveedor p ON a.cod_pro=p.cod_pro
					  LEFT JOIN rpc_beneficiario b ON a.ced_bene=b .ced_bene			  					  
					 WHERE  a.concepant ILIKE'%".$datos['concepant']."%'
					   AND  (b.nombene||p.nompro)!='' 	
					   ".$criterio."				   			   					  
					 ORDER BY a.tipproben,a.cod_pro,a.ced_bene,a.nroanticipo
				";
				
		$RsAnticip=$this->io_sql->select($ls_sql);
		//echo $ls_sql.'<br>';		
		if($RsAnticip===false)
		{
			$metodo = 'ConsultaGeneralAnticipos';
			$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,'error');}
			else{$this->io_mensajes->message($mensaje);}	
			return false;					
		}		
		
		return $RsAnticip;	
	}
	
	
	function ConsultaGeneralDescAnticipos($datos=array()){
	
		$metodo='ConsultaGeneralDescAnticipos';
		
		$criterio = "";
		if($datos['tipproben']){$criterio .= " AND da.tipproben = '".$datos['tipproben']."' ";}
		if($datos['codproben'] and $datos['tipproben']=="P"){$criterio .= " AND p.cod_pro = '".$datos['codproben']."' ";}
		if($datos['codproben'] and $datos['tipproben']=="B"){$criterio .= " AND a.ced_bene = '".$datos['codproben']."' ";}
		if($datos['estant']){$criterio .= " AND a.estant = '".$datos['estant']."' ";}
		if($datos['omitcer']){$criterio .= " AND a.estant NOT IN('DESCTOTAL','ANULADO') ";}	
		if($datos['cod_pro']){$criterio .= " AND da.cod_pro = '".$datos['cod_pro']."' ";}
		if($datos['ced_bene']){$criterio .= " AND da.ced_bene = '".$datos['ced_bene']."' ";}
		if($datos['nroanticipo']){$criterio .= " AND da.nroanticipo = '".$datos['nroanticipo']."' ";}
		if($datos['fecemiantdes']){
		    $datos['fecemianthas'] = $datos['fecemianthas']?$datos['fecemianthas']:$datos['fecemiantdes'];
			$criterio .= " AND (a.fecemiant BETWEEN '".$datos['fecemiantdes']."' AND '".$datos['fecemianthas']."') ";
		}
		if($datos['fecdesdes']){
		    $datos['fecdeshas'] = $datos['fecdeshas']?$datos['fecdeshas']:$datos['fecdesdes'];
			$criterio .= " AND (da.fecdesc BETWEEN '".$datos['fecdesdes']."' AND '".$datos['fecdeshas']."') ";
		}
				
		$ls_sql="   SELECT a.*,da.*, COALESCE((SELECT sum(montodesc)
							    	  FROM  cxp_dt_anticipos da
								     WHERE a.tipproben = da.tipproben
									   AND a.nroanticipo = da.nroanticipo
									   AND a.ced_bene = da.ced_bene
									   AND a.cod_pro = da.cod_pro                              
									   AND a.nroanticipo = da.nroanticipo),0) AS montotdesc,
						(CASE WHEN a.tipproben='P' THEN (SELECT pro.rifpro||' - '||pro.nompro FROM rpc_proveedor pro WHERE a.cod_pro=pro.cod_pro)
						      WHEN a.tipproben='B' THEN (SELECT ben.rifben||' - '||ben.nombene||' '||ben.apebene FROM rpc_beneficiario ben WHERE a.ced_bene=ben.ced_bene)							 
							  ELSE ''
							  END) AS infoproben,
						( 
							a.montoant - COALESCE((SELECT sum(montodesc)
										  FROM  cxp_dt_anticipos da
										 WHERE a.tipproben = da.tipproben
										   AND a.nroanticipo = da.nroanticipo
										   AND a.ced_bene = da.ced_bene
										   AND a.cod_pro = da.cod_pro                              
										   AND a.nroanticipo = da.nroanticipo),0) 
						 ) AS montorest
		              FROM  cxp_dt_anticipos da
					  INNER JOIN cxp_anticipos a  ON a.tipproben = da.tipproben
												  AND a.nroanticipo = da.nroanticipo
												  AND a.ced_bene = da.ced_bene
												  AND a.cod_pro = da.cod_pro 
					  LEFT JOIN rpc_proveedor p ON a.cod_pro=p.cod_pro
					  LEFT JOIN rpc_beneficiario b ON a.ced_bene=b .ced_bene			  					  
					 WHERE  a.concepant ILIKE'%".$datos['concepant']."%'
					   AND  (b.nombene||p.nompro)!='' 	
					   ".$criterio."				   			   					  
					 ORDER BY a.tipproben,a.cod_pro,a.ced_bene,a.nroanticipo,da.nrodesc
				";
				
		$RsAnticip=$this->io_sql->select($ls_sql);
		//echo $ls_sql.'<br>';		
		if($RsAnticip===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,'error');}
			else{$this->io_mensajes->message($mensaje);}	
			return false;					
		}		
		
		return $RsAnticip;	
	}
	
	function VerificarAnticipos($datos=array()){
		$metodo='VerificarAnticipos';		    
		if(!$datos['tipproben'])
		{					
			$mensaje = 'Falta el tipo de proveedor o beneficiario para verificar su existencia.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$datos['cod_pro'])
		{					
			$mensaje = 'Falta el código de beneficiario para verificar su existencia.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$datos['ced_bene'])
		{					
			$mensaje = 'Falta el código del proveedor para verificar su existencia.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
			
		$ls_sql="   SELECT *, COALESCE((SELECT sum(montodesc)
							    	  FROM  cxp_dt_anticipos da
								     WHERE a.tipproben = da.tipproben
									   AND a.nroanticipo = da.nroanticipo
									   AND a.ced_bene = da.ced_bene
									   AND a.cod_pro = da.cod_pro                              
									   AND a.nroanticipo = da.nroanticipo),0) AS montotdesc  
		              FROM  cxp_anticipos a
					 WHERE a.ced_bene='".$datos['ced_bene']."' 
					   AND a.cod_pro='".$datos['cod_pro']."'
					   AND a.tipproben='".$datos['tipproben']."'
					   AND a.estant!='DESCTOTAL'
					   AND a.estant!='ANULADO'
				";
				
		$this->RsAnticip=$this->io_sql->select($ls_sql);
		//echo $ls_sql.'<br>';		
		if($this->RsAnticip===false)
		{
			$metodo = 'IsertarAnticipo';
			$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,'error');}
			else{$this->io_mensajes->message($mensaje);}	
			return false;					
		}
		
		$existe = $this->RsAnticip->RecordCount()?1:0;
		
		if($existe){		
			$this->ImprimirAnticipos();		
		}
				
		return $existe;
	
	}
	
	
	
	
	function ProcDescAnticipo($datos=array()){
		
		$resp=$this->VerificarDescAnticipos();
		if($resp===false){return false;}
		
		$cantidad = $this->VerificarDescAnticipos();
		if($cantidad===false){return false;}
		
		if($cantidad==0){
			$resp = $this->IsertarDescAnticipo();
			if($resp===false){return false;}
		}
		
		if($cantidad==1){
		    $this->nrodesc = $this->RsDescAnticip->fields['nrodesc'];
			$resp = $this->ActualizarDescAnticipo();
			if($resp===false){return false;}			
		}
		
		$resp = $this->VerificarCierreAnticipo($datos);
		if($resp===false){return false;}		
		
		return true;
	
	}
	
	function VerificarDescAnticipos($datos=array()){
		$metodo='VerificarDescAnticipos';			    
		
		if(!$this->tipproben)
		{					
			$mensaje = 'Falta el tipo de proveedor o beneficiario para el descuento del anticipo.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->cod_pro)
		{					
			$mensaje = 'Falta el código de beneficiario para verificar el descuento del anticipo.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->ced_bene)
		{					
			$mensaje = 'Falta el código del proveedor para verificar el descuento del anticipo.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->numrecdocdes)
		{					
			$mensaje = 'Falta el número de recepción de documento para verificar el descuento del anticipo.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->nroanticipo)
		{					
			$mensaje = 'Falta el número de anticipo para verificar el descuento del mismo.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		$ls_sql="   SELECT nrodesc, nroanticipo, ced_bene, 
						   cod_pro, tipproben, fecdesc, 
						   montodesc, numrecdocdes, concepdesc 
			          FROM  cxp_dt_anticipos
					 WHERE ced_bene='".$this->ced_bene."' 
					   AND cod_pro='".$this->cod_pro."'
					   AND tipproben='".$this->tipproben."'
					   AND numrecdocdes='".$this->numrecdocdes."'
					   AND nroanticipo='".$this->nroanticipo."'
					   AND estdoc!='A'
				";
				
		$this->RsDescAnticip=$this->io_sql->select($ls_sql);
		//echo $ls_sql.'<br>';		
		if($this->RsDescAnticip===false)
		{
			$metodo = 'IsertarAnticipo';
			$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,'error');}
			else{$this->io_mensajes->message($mensaje);}	
			return false;					
		}
		
		$cantidad = $this->RsDescAnticip->RecordCount();
		
		if($cantidad>1)
		{					
			$mensaje = 'Existe mas de un anticipo asociado al mismo documento o factura.';
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		return $cantidad;
	
	}
	
	function VerificarCierreAnticipo($datos=array()){
		$metodo='VerificarCierreAnticipo';			    
		
		if(!$this->tipproben)
		{					
			$mensaje = 'Falta el tipo de proveedor o beneficiario para el descuento del anticipo.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->cod_pro)
		{					
			$mensaje = 'Falta el código de beneficiario para verificar el descuento del anticipo.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->ced_bene)
		{					
			$mensaje = 'Falta el código del proveedor para verificar el descuento del anticipo.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->nroanticipo)
		{					
			$mensaje = 'Falta el número de anticipo para verificar el descuento del mismo.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		$ls_sql="   SELECT montoant, 
						  COALESCE((SELECT sum(montodesc)
						   FROM  cxp_dt_anticipos da
						   WHERE a.tipproben = da.tipproben
							 AND a.nroanticipo = da.nroanticipo
							 AND a.ced_bene = da.ced_bene
							 AND a.cod_pro = da.cod_pro                              
							 AND a.nroanticipo = da.nroanticipo
							 AND estdoc!='A'),0) AS montotdesc
					  FROM cxp_anticipos a
					 WHERE ced_bene='".$this->ced_bene."' 
					   AND cod_pro='".$this->cod_pro."'
					   AND tipproben='".$this->tipproben."'					   
					   AND nroanticipo='".$this->nroanticipo."'
					   
				";
				
		$this->RsVerAnt=$this->io_sql->select($ls_sql);
		//echo $ls_sql.'<br>';		
		if($this->RsVerAnt===false)
		{
			$metodo = 'VerificarCierreAnticipo';
			$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,'error');}
			else{$this->io_mensajes->message($mensaje);}	
			return false;					
		}
		
		if($this->RsVerAnt->fields['montoant']<$this->RsVerAnt->fields['montotdesc']){
			$mensaje = 'El monto de los descuentos supera el monto total del anticipo nro '.$this->nroanticipo.'.';
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(($this->RsVerAnt->fields['montoant']>$this->RsVerAnt->fields['montotdesc']) and $this->RsVerAnt->fields['montotdesc']>0){
			$this->estant='DESCPARC';
		}
		
		if($this->RsVerAnt->fields['montoant']==$this->RsVerAnt->fields['montotdesc']){
			$this->estant='DESCTOTAL';
			$mensaje = 'El anticipo '.$this->nroanticipo.' fue descontado por completo y cerrado !.';
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje);}
			else{$this->io_mensajes->message($mensaje);}		
		}
		//Estatus del Anticipo: PENDIENTE,DESCPARC=DESCONTADO PARCIAL,DESCTOTAL=DESCONTADO TOTALMENTE
		
		$ls_sql="   UPDATE cxp_anticipos
                       SET estant='".$this->estant."'
					 WHERE nroanticipo='".$this->nroanticipo."' 					   
					   AND ced_bene='".$this->ced_bene."' 
					   AND cod_pro='".$this->cod_pro."'
					   AND tipproben='".$this->tipproben."';
				";
				
		$this->rs_data=$this->io_sql->select($ls_sql);
		//echo $ls_sql.'<br>';		
		if($this->rs_data===false)
		{
			$metodo = 'VerificarCierreAnticipo';
			$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,'error');}
			else{$this->io_mensajes->message($mensaje);}	
			return false;					
		}
		
		return true;	
	}
	
	function GenNroDescAnticipo($param=array())
	{
		
		$metodo='GenNroDescAnticipo';	
		if(!$this->tipproben)
		{					
			$mensaje = 'Falta el tipo de proveedor o beneficiario para el descuento del anticipo.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->cod_pro)
		{					
			$mensaje = 'Falta el código de beneficiario para verificar el descuento del anticipo.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->ced_bene)
		{					
			$mensaje = 'Falta el código del proveedor para verificar el descuento del anticipo.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
				
		if(!$this->nroanticipo)
		{					
			$mensaje = 'Falta el número de anticipo para verificar el descuento del mismo.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
				
		$ls_sql=" SELECT nrodesc
				   FROM cxp_dt_anticipos 
				  WHERE ced_bene = '".$this->ced_bene."'
				    AND cod_pro = '".$this->cod_pro."'
					AND tipproben = '".$this->tipproben."'
					AND nroanticipo = '".$this->nroanticipo."'					
				   ORDER BY 1 DESC LIMIT 1
				";
				
		$this->rs_data=$this->io_sql->select($ls_sql);
		//echo $ls_sql.'<br>';		
		if($this->rs_data===false)
		{
			$metodo = 'GenNroAnticipo';
			$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,'error');}
			else{$this->io_mensajes->message($mensaje);}	
			return;					
		}
		
		if(!$this->rs_data->RecordCount()){$this->nrodesc=1;}
		else{$this->nrodesc=$this->rs_data->fields['nrodesc']+1;}		
		
		return $this->nrodesc;
	}// end function select_config($param)
	
	function IsertarDescAnticipo($datos=array()){
		$metodo='IsertarDescAnticipo';		
		if(!$this->nroanticipo)
		{					
			$mensaje = 'Falta el número de anticipo. ';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->numrecdocdes)
		{					
			$mensaje = 'Falta el número de recepción de documento.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->tipproben)
		{					
			$mensaje = 'Falta el tipo de proveedor o beneficiario.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->ced_bene)
		{					
			$mensaje = 'Falta el código de beneficiario.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->cod_pro)
		{					
			$mensaje = 'Falta el código del proveedor.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->fecdesc)
		{					
			$mensaje = 'Falta la fecha del documento de descuento de anticipo.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->concepdesc)
		{					
			$mensaje = 'Falta el concepto del documento de descuento de anticipo.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->montodesc)
		{					
			$mensaje = 'Falta el monto del documento de descuento de anticipo.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}    
		
		
		$this->nrodesc = $this->GenNroDescAnticipo();
		if($this->nrodesc===false){return false;}
		
		$ls_sql="   INSERT INTO cxp_dt_anticipos( nrodesc, nroanticipo, ced_bene, cod_pro, tipproben, fecdesc, 
												  montodesc, numrecdocdes, concepdesc, sc_cuenta_desc)
					VALUES ('".$this->nrodesc."', '".
							   $this->nroanticipo."', '".					          
							   $this->ced_bene."', '".
							   $this->cod_pro."', '".
							   $this->tipproben."', '".
							   $this->fecdesc."', '".							  
							   $this->montodesc."', '".
							   $this->numrecdocdes."', '".
							   $this->concepdesc."', '".
							   $this->sc_cuenta_desc."');
				";
				
		$this->rs_data=$this->io_sql->select($ls_sql);
		//echo $ls_sql.'<br>';		
		if($this->rs_data===false)
		{
			$metodo = 'IsertarDescAnticipo';
			$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,'error');}
			else{$this->io_mensajes->message($mensaje);}		
			return false;					
		}
				
		return true;
	
	}
	
	
	function ActualizarDescAnticipo($datos=array()){
		
		$metodo='ActualizarDescAnticipo';		
		
		if(!$this->nroanticipo)
		{					
			$mensaje = 'Falta el número de anticipo. ';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->nrodes)
		{					
			$mensaje = 'Falta el número de descuento de anticipo. ';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->numrecdocdes)
		{					
			$mensaje = 'Falta el número de recepción de documento.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->tipproben)
		{					
			$mensaje = 'Falta el tipo de proveedor o beneficiario.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->ced_bene)
		{					
			$mensaje = 'Falta el código de beneficiario.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->cod_pro)
		{					
			$mensaje = 'Falta el código del proveedor.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->fecdesc)
		{					
			$mensaje = 'Falta la fecha del documento de descuento de anticipo.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->concepdesc)
		{					
			$mensaje = 'Falta el concepto del documento de descuento de anticipo.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$this->montodesc)
		{					
			$mensaje = 'Falta el monto del documento de anticipo.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		      
		$ls_sql="   UPDATE cxp_dt_anticipos
                       SET fecdesc='".$this->fecdesc."', 
					       montodesc='".$this->montodesc."', 
						   concepdesc='".$this->concepdesc."', 
						   sc_cuenta_desc='".$this->sc_cuenta_desc."'
					 WHERE nrodesc='".$this->nrodesc."'
					   AND nroanticipo='".$this->nroanticipo."' 
					   AND numrecdocdes='".$this->numrecdocdes."' 
					   AND ced_bene='".$this->ced_bene."' 
					   AND cod_pro='".$this->cod_pro."'
					   AND tipproben='".$this->tipproben."';
				";
				
		$this->rs_data=$this->io_sql->select($ls_sql);
		//echo $ls_sql.'<br>';		
		if($this->rs_data===false)
		{
			$metodo = 'ActualizarDescAnticipo';
			$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,'error');}
			else{$this->io_mensajes->message($mensaje);}	
			return false;					
		}
				
		return true;	
	}
	
	function BuscDescAnticipos($datos=array()){
		$metodo='BuscDescAnticipos';			    
		
		if(!$datos['tipproben'])
		{					
			$mensaje = 'Falta el tipo de proveedor o beneficiario para el descuento del anticipo.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$datos['cod_pro'])
		{					
			$mensaje = 'Falta el código de beneficiario para verificar el descuento del anticipo.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$datos['ced_bene'])
		{					
			$mensaje = 'Falta el código del proveedor para verificar el descuento del anticipo.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$datos['numrecdocdes'])
		{					
			$mensaje = 'Falta el número de recepción de documento para verificar el descuento del anticipo.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		$criteriosql = "";
		
		switch($datos['criterio']){
				case '':
				case 'por_numrecdocdes':
					$criteriosql = "  AND da.numrecdocdes='".$datos['numrecdocdes']."' ";
					break;
				
				case 'por_anticipo':
					$criteriosql = "  AND da.nroanticipo='".$datos['nroanticipo']."' ";
					break;
		}
		
		$ls_sql="   SELECT a.*, da.*,
						  COALESCE((SELECT sum(montodesc)
							    	  FROM  cxp_dt_anticipos da
								     WHERE a.tipproben = da.tipproben
									   AND a.nroanticipo = da.nroanticipo
									   AND a.ced_bene = da.ced_bene
									   AND a.cod_pro = da.cod_pro                              
									   AND a.nroanticipo = da.nroanticipo),0) AS montotdesc 
					FROM cxp_dt_anticipos da
					INNER JOIN cxp_anticipos a  ON a.tipproben = da.tipproben
												  AND a.nroanticipo = da.nroanticipo
												  AND a.ced_bene = da.ced_bene
												  AND a.cod_pro = da.cod_pro                              
												  AND a.nroanticipo = da.nroanticipo	     
					 WHERE da.ced_bene='".$datos['ced_bene']."' 
					   AND da.cod_pro='".$datos['cod_pro']."'
					   AND da.tipproben='".$datos['tipproben']."'
					   AND da.estdoc!='A'
					   ".$criteriosql."
				";
				
		$this->RsDescAnticip=$this->io_sql->select($ls_sql);
		//echo $ls_sql.'<br>';		
		if($this->RsDescAnticip===false)
		{
			$metodo = 'BuscDescAnticipos';
			$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,'error');}
			else{$this->io_mensajes->message($mensaje);}	
			return false;					
		}
		
		return $this->RsDescAnticip;
	
	}
	
	
	function BuscDescTotAnticipos($datos=array()){
		$metodo='BuscDescTotAnticipos';			    
		
		if(!$datos['tipproben'])
		{					
			$mensaje = 'Falta el tipo de proveedor o beneficiario para el descuento del anticipo.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$datos['cod_pro'])
		{					
			$mensaje = 'Falta el código de beneficiario para verificar el descuento del anticipo.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$datos['ced_bene'])
		{					
			$mensaje = 'Falta el código del proveedor para verificar el descuento del anticipo.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
		
		if(!$datos['numrecdocdes'])
		{					
			$mensaje = 'Falta el número de recepción de documento para verificar el descuento del anticipo.';
			$mensaje .= '<b>METODO:</b> '.$metodo;
			if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
			else{$this->io_mensajes->message($mensaje);}																			
			return false;
		}
				
		$ls_sql="   SELECT COALESCE(sum(da.montodesc),0) AS montotdesc 
					FROM cxp_dt_anticipos da
					INNER JOIN cxp_anticipos a  ON a.tipproben = da.tipproben
												  AND a.nroanticipo = da.nroanticipo
												  AND a.ced_bene = da.ced_bene
												  AND a.cod_pro = da.cod_pro                              
												  AND a.nroanticipo = da.nroanticipo	     
					 WHERE da.ced_bene='".$datos['ced_bene']."' 
					   AND da.cod_pro='".$datos['cod_pro']."'
					   AND da.tipproben='".$datos['tipproben']."'
					   AND da.numrecdocdes='".$datos['numrecdocdes']."'
					   AND da.estdoc!='A'
					  GROUP BY da.numrecdocdes
				";
				
		$rs=$this->io_sql->select($ls_sql);
		//echo $ls_sql.'<br>';		
		if($rs===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,'error');}
			else{$this->io_mensajes->message($mensaje);}	
			return false;					
		}
		
		if(!$rs->RecordCount()){return 0;}
		
		return $rs->fields['montotdesc'];
	
	}
	
	function ImprimirAnticipos($datos=array()){
			$ancho[0] = 10;
			$ancho[1] = 50;
			$ancho[2] = 100;
			$ancho[3] = 60;
			$ancho[4] = 340;
			$ancho[5] = 60;
			$ancho[6] = 60;
			$ancho[7] = 60;
			$ancho[8] = 100;
			$ancho[9] = 80;
			$ancho_total = array_sum($ancho);
			$cantidad = count($ancho);
			$nro = 1;
			$gridId = "GridAnticipos";
			$PreIdCampo = $gridId.'-cell-';
			
			?>  <link href="../../shared/css/cabecera.css" rel="stylesheet" type="text/css">
                <link href="../../shared/css/general.css" rel="stylesheet" type="text/css">
                <link href="../../shared/css/tablas.css" rel="stylesheet" type="text/css">
                <link href="../../shared/css/ventanas.css" rel="stylesheet" type="text/css">
                <br />
				<table width="<?php echo $ancho_total; ?>" border="0" cellpadding="0" cellspacing="1" id="<?php echo $gridId; ?>" class='fondo-tabla'>
                      <tr class="titulo-celda">
                        <td colspan="<?php echo $cantidad; ?>" align="center" class="sin-bordeAzul">ANTICIPOS</td>
                      </tr>
                      <tr class="titulo-celda">
                         <td width="<?php echo $ancho[0]; ?>"><div align="center"></div></td> 
                         <td width="<?php echo $ancho[1]; ?>"><div align="center">N°</div></td>    
                         <td width="<?php echo $ancho[2]; ?>"><div align="center">N° Recep</div></td>
                         <td width="<?php echo $ancho[3]; ?>"><div align="center">Fecha</div></td>
                         <td width="<?php echo $ancho[4]; ?>"><div align="center">Concepto</div></td>
                         <td width="<?php echo $ancho[5]; ?>"><div align="center">Mon Tot.</div></td>  
                         <td width="<?php echo $ancho[6]; ?>"><div align="center">Monto Act.</div></td> 
                         <td width="<?php echo $ancho[7]; ?>"><div align="center">Descont.</div></td> 
                         <td width="<?php echo $ancho[8]; ?>"><div align="center">N° Contrato</div></td> 
                         <td width="<?php echo $ancho[9]; ?>"><div align="center">Estatus</div></td>             
                      </tr>
			<?php 
			
			foreach($this->RsAnticip as $DatosAnt){
					 
					 $DatosAnt['montodesc'] = 0;
					 
				     $aceptar="aceptar_anticipo( '".$nro."',
												 '".$DatosAnt['nroanticipo']."',
												 '".$DatosAnt['ced_bene']."',
												 '".$DatosAnt['cod_pro']."',
												 '".$DatosAnt['tipproben']."',
												 '".$DatosAnt['numrecdoc']."',
												 '".$DatosAnt['sc_cuenta']."',
												 '".$DatosAnt['montoant']."',
												 '".$DatosAnt['montodesc']."',
												 '".$DatosAnt['nrocontrato']."',
												 '".$DatosAnt['sc_cuenta']."',
												 '".$this->io_conexiones->formatea_fecha_normal($DatosAnt['fecemiant'])."'
												 )";
                    
              		 
					 $AceptChk=" ObjForm.AgregarAnticipo( '".$nro."',
														  '".$DatosAnt['nroanticipo']."',
														  '".$DatosAnt['sc_cuenta']."',														  
														  '".$DatosAnt['montoant']."',
														  '".$DatosAnt['montodesc']."',
														  '".($DatosAnt['montoant']-$DatosAnt['montotdesc'])."',
														  '".$DatosAnt['sc_cuenta']."',this)";
					 
					
			  		 $DatosChk = $nro;	
					 
			   ?>    																									
                          <tr id="consulta">
                            <td width="<?php echo $ancho[0]; ?>" valign="top"><div align="right"><input name="<?php echo $PreIdCampo; ?>chkant<?php echo $nro;?>" id="<?php echo $PreIdCampo; ?>chkant<?php echo $nro;?>" type="checkbox" value="<?php echo $DatosChk;?>" onclick="<?php echo $AceptChk; ?>" /></div></td>
                            <td width="<?php echo $ancho[1]; ?>" valign="top"><div align="right"><a href="#" onClick="<?php echo $aceptar;?>"><div style="color:#0066FF;"><?php echo $DatosAnt['nroanticipo'];?></div></a></div></td>
                            <td width="<?php echo $ancho[2]; ?>" valign="top"><div align="right"><a href="#" onClick="<?php echo $aceptar;?>"><?php echo $DatosAnt['numrecdoc'];?></a></div></td>
                            <td width="<?php echo $ancho[3]; ?>" valign="top"><div align="center"><a href="#" onClick="<?php echo $aceptar;?>"><?php echo $this->io_conexiones->formatea_fecha_normal($DatosAnt['fecemiant']);?></a></div></td>
                            <td width="<?php echo $ancho[4]; ?>" valign="top"><div align="justify"><a href="#" onClick="<?php echo $aceptar;?>"><?php echo $DatosAnt['concepant'];?></a></div></td>
                            <td width="<?php echo $ancho[5]; ?>" valign="top"><div align="right"><a href="#" onClick="<?php echo $aceptar;?>"><?php echo number_format($DatosAnt['montoant'],2,',','.');?></a></div></td>
                            <td width="<?php echo $ancho[6]; ?>" valign="top"><div align="right"><a href="#" onClick="<?php echo $aceptar;?>"><?php echo number_format($DatosAnt['montoant']-$DatosAnt['montotdesc'],2,',','.');?></a></div></td>
                            <td width="<?php echo $ancho[7]; ?>" valign="top"><div align="right"><a href="#" onClick="<?php echo $aceptar;?>"><?php echo number_format($DatosAnt['montotdesc'],2,',','.');?></a></div></td>
                            <td width="<?php echo $ancho[8]; ?>" valign="top"><div align="center"><a href="#" onClick="<?php echo $aceptar;?>"><?php echo $DatosAnt['nrocontrato'];?></a></div></td>
                            <td width="<?php echo $ancho[9]; ?>" valign="top"><div align="center"><a href="#" onClick="<?php echo $aceptar;?>"><?php echo $DatosAnt['estant'];?></a></div>
                            <input name="<?php echo $PreIdCampo; ?>numrecdoc<?php echo $nro;?>" type="hidden" id="<?php echo $PreIdCampo; ?>numrecdoc<?php echo $nro;?>"  value="<?php echo $DatosAnt['numrecdoc']; ?>"/>
                            <input name="<?php echo $PreIdCampo; ?>sc_cuenta<?php echo $nro;?>" type="hidden" id="<?php echo $PreIdCampo; ?>sc_cuenta<?php echo $nro;?>"  value="<?php echo $DatosAnt['sc_cuenta']; ?>"/>
                            <input name="<?php echo $PreIdCampo; ?>montoant<?php echo $nro;?>" type="hidden" id="<?php echo $PreIdCampo; ?>montoant<?php echo $nro;?>"  value="<?php echo ($DatosAnt['montoant']-$DatosAnt['montotdesc']); ?>"/>
                            <input name="<?php echo $PreIdCampo; ?>montodesc<?php echo $nro;?>" type="hidden" id="<?php echo $PreIdCampo; ?>montodesc<?php echo $nro;?>"  value="<?php echo $DatosAnt['montodesc']; ?>"/>
                            <input name="<?php echo $PreIdCampo; ?>nroanticipo<?php echo $nro;?>" type="hidden" id="<?php echo $PreIdCampo; ?>nroanticipo<?php echo $nro;?>"  value="<?php echo $DatosAnt['nroanticipo']; ?>"/>
                            <input name="<?php echo $PreIdCampo; ?>montodescact<?php echo $nro;?>" type="hidden" id="<?php echo $PreIdCampo; ?>montodescact<?php echo $nro;?>"  value="0"/>
                            </td>
                          
                  <?php 
                  $nro++;
				}
			
			?>
				</table>
			<?php 
	
	}
	
	function ImprimirDescAnticipos($datos=array()){
			
			$ancho[0] = 10;
			$ancho[1] = 90;
			$ancho[2] = 90;
			$ancho[3] = 90;
			$ancho[4] = 90;
			$ancho[5] = 90;
			$ancho[6] = 90;
			$ancho[7] = 90;
			$ancho[8] = 90;
			$ancho_total = array_sum($ancho);
			$cantidad = count($ancho);
			$nro = 1;			
			$gridId = "GridAnticipos";
			$PreIdCampo = $gridId.'-cell-';
			
			$datos['criterio']='por_numrecdocdes';
			$resp=$this->BuscDescAnticipos($datos);
			if($resp===false){return false;}
			
			?>  <link href="../../shared/css/cabecera.css" rel="stylesheet" type="text/css">
                <link href="../../shared/css/general.css" rel="stylesheet" type="text/css">
                <link href="../../shared/css/tablas.css" rel="stylesheet" type="text/css">
                <link href="../../shared/css/ventanas.css" rel="stylesheet" type="text/css">
                <br />
				<table width="<?php echo $ancho_total; ?>" border="0" cellpadding="0" cellspacing="1" id="<?php echo $gridId; ?>"  class='fondo-tabla'>
                      <tr class="titulo-celda">
                        <td colspan="<?php echo $cantidad; ?>" align="center" class="sin-bordeAzul">ANTICIPOS</td>
                      </tr>
                      <tr class="titulo-celda">
                         <td width="<?php echo $ancho[0]; ?>"><div align="center"></div></td> 
                         <td width="<?php echo $ancho[1]; ?>"><div align="center">N° Anticipo</div></td>    
                         <td width="<?php echo $ancho[2]; ?>"><div align="center">N° Desc</div></td>
                         <td width="<?php echo $ancho[3]; ?>"><div align="center">N° Doc Anticip</div></td>
                         <td width="<?php echo $ancho[4]; ?>"><div align="center">Mon. Ant</div></td> 
                         <td width="<?php echo $ancho[5]; ?>"><div align="center">Mon. tot. Desc</div></td>
                         <td width="<?php echo $ancho[6]; ?>"><div align="center">Fecha Ant</div></td> 
                         <td width="<?php echo $ancho[7]; ?>"><div align="center">Mon Desc Act.</div></td> 
                         <td width="<?php echo $ancho[8]; ?>"><div align="center">Cuenta Desc</div></td>                             
                      </tr>
			<?php 
			
			foreach($this->RsDescAnticip as $DatosAnt){
					 
					 					 
				     $aceptar="aceptar_anticipo( '".$nro."',
												 '".$DatosAnt['nroanticipo']."',
												 '".$DatosAnt['ced_bene']."',
												 '".$DatosAnt['cod_pro']."',
												 '".$DatosAnt['tipproben']."',
												 '".$DatosAnt['numrecdoc']."',
												 '".$DatosAnt['sc_cuenta']."',
												 '".$DatosAnt['montoant']."',
												 '".$DatosAnt['montodesc']."',
												 '".$DatosAnt['nrocontrato']."',
												 '".$DatosAnt['sc_cuenta']."',
												 '".$this->io_conexiones->formatea_fecha_normal($DatosAnt['fecemiant'])."'
												 )";
                    
              		 
					 $AceptChk=" AgregarCtaAnt( '".$nro."',
											    '".$DatosAnt['nroanticipo']."',
											    '".$DatosAnt['sc_cuenta']."',
											    '".$DatosAnt['montoant']."',
											    '".$DatosAnt['montodesc']."',
											    '".$DatosAnt['sc_cuenta']."',this)";
					 
					
			  		 $DatosChk = $nro;	
					 
			   ?>    																									
                          <tr id="consulta">
                            <td width="<?php echo $ancho[0]; ?>" valign="top"><div align="right"><input name="<?php echo $PreIdCampo; ?>chkant<?php echo $nro;?>" id="<?php echo $PreIdCampo; ?>chkant<?php echo $nro;?>" type="checkbox" value="<?php echo $DatosChk;?>" disabled="disabled" checked="checked" /></div></td>
                            <td width="<?php echo $ancho[1]; ?>" valign="top"><div align="right"><a href="#" onClick="<?php echo $aceptar;?>"><div style="color:#0066FF;"><?php echo $DatosAnt['nroanticipo'];?></div></a></div></td>
                            <td width="<?php echo $ancho[2]; ?>" valign="top"><div align="right"><a href="#" onClick="<?php echo $aceptar;?>"><?php echo $DatosAnt['nrodesc'];?></a></div></td>
                            <td width="<?php echo $ancho[3]; ?>" valign="top"><div align="center"><a href="#" onClick="<?php echo $aceptar;?>"><?php echo $DatosAnt['numrecdoc'];?></a></div></td>
                            <td width="<?php echo $ancho[4]; ?>" valign="top"><div align="justify"><a href="#" onClick="<?php echo $aceptar;?>"><?php echo number_format($DatosAnt['montoant'],2,',','.');?></a></div></td>
                            <td width="<?php echo $ancho[5]; ?>" valign="top"><div align="right"><a href="#" onClick="<?php echo $aceptar;?>"><?php echo number_format($DatosAnt['montotdesc'],2,',','.');?></a></div></td>
                            <td width="<?php echo $ancho[6]; ?>" valign="top"><div align="right"><a href="#" onClick="<?php echo $aceptar;?>"><?php echo $this->io_conexiones->formatea_fecha_normal($DatosAnt['fecemiant']);?></a></div></td>
                            <td width="<?php echo $ancho[7]; ?>" valign="top"><div align="center"><a href="#" onClick="<?php echo $aceptar;?>"><?php echo number_format($DatosAnt['montodesc'],2,',','.');?></a></div></td>
                            <td width="<?php echo $ancho[8]; ?>" valign="top"><div align="center"><a href="#" onClick="<?php echo $aceptar;?>"><?php echo $DatosAnt['sc_cuenta_desc'];?></a></div></td>
                            <input name="<?php echo $PreIdCampo; ?>numrecdoc<?php echo $nro;?>" type="hidden" id="<?php echo $PreIdCampo; ?>numrecdoc<?php echo $nro;?>"  value="<?php echo $DatosAnt['numrecdoc']; ?>"/>
                            <input name="<?php echo $PreIdCampo; ?>sc_cuenta<?php echo $nro;?>" type="hidden" id="<?php echo $PreIdCampo; ?>sc_cuenta<?php echo $nro;?>"  value="<?php echo $DatosAnt['sc_cuenta']; ?>"/>
                            <input name="<?php echo $PreIdCampo; ?>montoant<?php echo $nro;?>" type="hidden" id="<?php echo $PreIdCampo; ?>montoant<?php echo $nro;?>"  value="<?php echo $DatosAnt['montoant']; ?>"/>
                            <input name="<?php echo $PreIdCampo; ?>montodesc<?php echo $nro;?>" type="hidden" id="<?php echo $PreIdCampo; ?>montodesc<?php echo $nro;?>"  value="<?php echo $DatosAnt['montotdesc']; ?>"/>
                            <input name="<?php echo $PreIdCampo; ?>nroanticipo<?php echo $nro;?>" type="hidden" id="<?php echo $PreIdCampo; ?>nroanticipo<?php echo $nro;?>"  value="<?php echo $DatosAnt['nroanticipo']; ?>"/>
                            <input name="<?php echo $PreIdCampo; ?>montodescact<?php echo $nro;?>" type="hidden" id="<?php echo $PreIdCampo; ?>montodescact<?php echo $nro;?>"    value="<?php echo $DatosAnt['montodesc']; ?>" />
                            </td>
                          
                  <?php 
                  $nro++;
				}
			
			?>
				</table>
			<?php 
	
	}
	
	function EliminarDescAnticipos($datos=array()){
			
			$metodo='EliminarDescAnticipos';		    
			
			if(!$this->numrecdocdes)
			{					
				$mensaje = 'Falta el número de recepción de documento.';
				$mensaje .= '<b>METODO:</b> '.$metodo;
				if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
				else{$this->io_mensajes->message($mensaje);}																			
				return false;
			}
			
			if(!$this->tipproben)
			{					
				$mensaje = 'Falta el tipo de proveedor o beneficiario.';
				$mensaje .= '<b>METODO:</b> '.$metodo;
				if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
				else{$this->io_mensajes->message($mensaje);}																			
				return false;
			}
			
			if(!$this->ced_bene)
			{					
				$mensaje = 'Falta el código de beneficiario.';
				$mensaje .= '<b>METODO:</b> '.$metodo;
				if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
				else{$this->io_mensajes->message($mensaje);}																			
				return false;
			}
			
			if(!$this->cod_pro)
			{					
				$mensaje = 'Falta el código del proveedor.';
				$mensaje .= '<b>METODO:</b> '.$metodo;
				if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
				else{$this->io_mensajes->message($mensaje);}																			
				return false;
			}
			
			$datos['criterio']='por_numrecdocdes';
			$resp=$this->BuscDescAnticipos($datos);
			if($resp===false){return false;}		
			
			if(!$this->RsDescAnticip->RecordCount()){return true;}
			
			$this->nroanticipo = $this->RsDescAnticip->fields['nroanticipo'];
			
			if(!$this->nroanticipo)
			{					
				$mensaje = 'Se en contro un descuento de anticipo y no se pudo recuperar el número de anticipo. ';
				$mensaje .= '<b>METODO:</b> '.$metodo;
				if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
				else{$this->io_mensajes->message($mensaje);}																			
				return false;
			}
				
			$ls_sql="   DELETE FROM  cxp_dt_anticipos
						 WHERE numrecdocdes='".$this->numrecdocdes."' 
						   AND ced_bene='".$this->ced_bene."' 
						   AND cod_pro='".$this->cod_pro."'
						   AND tipproben='".$this->tipproben."'
						   AND nroanticipo='".$this->nroanticipo."'
					";
					
			$rs=$this->io_sql->select($ls_sql);
			//echo $ls_sql.'<br>';		
			if($rs===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,'error');}
				else{$this->io_mensajes->message($mensaje);}	
				return false;					
			}
			
			if($this->io_sql->conn->Affected_Rows()>0){			
				$mensaje = '<b>MESAJE:</b> Se eliminaron '.$this->io_sql->conn->Affected_Rows().' Descuento(s) de Anticipo
							<br><br><b>METODO:</b> '.$metodo;
				if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje);}
				else{$this->io_mensajes->message($mensaje);}	
			}	
			$this->estant='PENDIENTE';
			$resp = $this->VerificarCierreAnticipo();
			if($resp===false){return false;}
							
			return true;
	}
	
	function EliminarAnticipos($datos=array()){
			
			$metodo='EliminarDescAnticipos';		    
			
			if(!$this->numrecdoc)
			{					
				$mensaje = 'Falta el número de recepción de documento.';
				$mensaje .= '<b>METODO:</b> '.$metodo;
				if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
				else{$this->io_mensajes->message($mensaje);}																			
				return false;
			}
			
			if(!$this->tipproben)
			{					
				$mensaje = 'Falta el tipo de proveedor o beneficiario.';
				$mensaje .= '<b>METODO:</b> '.$metodo;
				if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
				else{$this->io_mensajes->message($mensaje);}																			
				return false;
			}
			
			if(!$this->ced_bene)
			{					
				$mensaje = 'Falta el código de beneficiario.';
				$mensaje .= '<b>METODO:</b> '.$metodo;
				if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
				else{$this->io_mensajes->message($mensaje);}																			
				return false;
			}
			
			if(!$this->cod_pro)
			{					
				$mensaje = 'Falta el código del proveedor.';
				$mensaje .= '<b>METODO:</b> '.$metodo;
				if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
				else{$this->io_mensajes->message($mensaje);}																			
				return false;
			}
			
			if(!$this->nroanticipo)
			{					
				$mensaje = 'Falta el número de anticipo. ';
				$mensaje .= '<b>METODO:</b> '.$metodo;
				if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
				else{$this->io_mensajes->message($mensaje);}																			
				return false;
			}
			
			$datos['criterio']='por_anticipo';
			$resp=$this->BuscDescAnticipos($datos);
			if($resp===false){return false;}		
			
			if($this->RsDescAnticip->RecordCount()){					
				$mensaje = 'Ya el anticipo posee amortizaciones o descuentos. No puede ser eliminado';
				$mensaje .= '<b>METODO:</b> '.$metodo;
				if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
				else{$this->io_mensajes->message($mensaje);}																			
				return false;
			}
				
			$ls_sql="   DELETE FROM  cxp_anticipos
						 WHERE numrecdoc='".$this->numrecdoc."' 
						   AND ced_bene='".$this->ced_bene."' 
						   AND cod_pro='".$this->cod_pro."'
						   AND tipproben='".$this->tipproben."'
						   AND nroanticipo='".$this->nroanticipo."'
					";
					
			$rs=$this->io_sql->select($ls_sql);
			//echo $ls_sql.'<br>';		
			if($rs===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,'error');}
				else{$this->io_mensajes->message($mensaje);}	
				return false;					
			}
			
			if($this->io_sql->conn->Affected_Rows()>0){			
				$mensaje = '<b>MESAJE:</b> Se eliminaron '.$this->io_sql->conn->Affected_Rows().' Anticipos asociado(s) a la recepción de documento
							<br><br><b>METODO:</b> '.$metodo;
				if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje);}
				else{$this->io_mensajes->message($mensaje);}	
			}
							
			return true;
	}
	
	function AnularDescAnticipos($datos=array()){
			
			$metodo='AnularDescAnticipos';		    
			
			if(!$this->numrecdocdes)
			{					
				$mensaje = 'Falta el número de recepción de documento.';
				$mensaje .= '<b>METODO:</b> '.$metodo;
				if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
				else{$this->io_mensajes->message($mensaje);}																			
				return false;
			}
			
			if(!$this->tipproben)
			{					
				$mensaje = 'Falta el tipo de proveedor o beneficiario.';
				$mensaje .= '<b>METODO:</b> '.$metodo;
				if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
				else{$this->io_mensajes->message($mensaje);}																			
				return false;
			}
			
			if(!$this->ced_bene)
			{					
				$mensaje = 'Falta el código de beneficiario.';
				$mensaje .= '<b>METODO:</b> '.$metodo;
				if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
				else{$this->io_mensajes->message($mensaje);}																			
				return false;
			}
			
			if(!$this->cod_pro)
			{					
				$mensaje = 'Falta el código del proveedor.';
				$mensaje .= '<b>METODO:</b> '.$metodo;
				if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
				else{$this->io_mensajes->message($mensaje);}																			
				return false;
			}
			
			$datos['criterio']='por_numrecdocdes';
			$resp=$this->BuscDescAnticipos($datos);
			if($resp===false){return false;}		
			
			if(!$this->RsDescAnticip->RecordCount()){return true;}
			
			$this->nroanticipo = $this->RsDescAnticip->fields['nroanticipo'];
			$this->nrodesc = $this->RsDescAnticip->fields['nrodesc'];
			
			if(!$this->nroanticipo)
			{					
				$mensaje = 'Se en contro un descuento de anticipo y no se pudo recuperar el número de anticipo. ';
				$mensaje .= '<b>METODO:</b> '.$metodo;
				if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
				else{$this->io_mensajes->message($mensaje);}																			
				return false;
			}
			
			if(!$this->nrodesc)
			{					
				$mensaje = 'Se en contro un descuento de anticipo y no se pudo recuperar el número de descuento del anticipo. ';
				$mensaje .= '<b>METODO:</b> '.$metodo;
				if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
				else{$this->io_mensajes->message($mensaje);}																			
				return false;
			}
				
			$ls_sql="   UPDATE cxp_dt_anticipos SET estdoc='A'
						 WHERE numrecdocdes='".$this->numrecdocdes."' 
						   AND ced_bene='".$this->ced_bene."' 
						   AND cod_pro='".$this->cod_pro."'
						   AND tipproben='".$this->tipproben."'
						   AND nroanticipo='".$this->nroanticipo."'
						   AND nrodesc='".$this->nrodesc."'
					";
					
			$rs=$this->io_sql->select($ls_sql);
			//echo $ls_sql.'<br>';		
			if($rs===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,'error');}
				else{$this->io_mensajes->message($mensaje);}	
				return false;					
			}
			
			if($this->io_sql->conn->Affected_Rows()<1){			
				$mensaje = '<b>MESAJE:</b> No se pudo anular el descuento del anticipo asociado al documento.
							<br><br><b>METODO:</b> '.$metodo;
				if($this->ajax){$this->io_conexiones->mensajes_ajax($mensaje,'error');}
				else{$this->io_mensajes->message($mensaje);}
				return false;	
			}	
			
			$resp = $this->VerificarCierreAnticipo();
			if($resp===false){return false;}
							
			return true;
	}
	
	function EncabezadoRepLisAnticipos($parametro=array()){
		
		$encabezado = '<p  style="text-align:center;"><table cellspacing="0" cellpadding="1" border="1">
					<thead>
						<tr bgcolor="'.$this->RepParam['encabezado2']['color_fondo'].'" color="'.$this->RepParam['encabezado2']['color_letra'].'" >
						  <td align="center" width="'.$this->RepParam['ancho']['total'].'">
							<font size="12">					            
								<b> ANTICIPOS A PROVEEDORES </b>								
							</font>
						  </td>
					   </tr>
						<tr bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" color="'.$this->RepParam['encabezado']['color_letra'].'" height="6">						
							<td align="center"  width="'.$this->RepParam['ancho'][0].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'"></font></td>
							<td align="center"  width="'.$this->RepParam['ancho'][1].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'">PROV/BEN</font></td>
							<td align="center"  width="'.$this->RepParam['ancho'][2].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'">CONCEP </font></td>
							<td align="center"  width="'.$this->RepParam['ancho'][3].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'">N° </font></td>
							<td align="center"  width="'.$this->RepParam['ancho'][4].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'">FECANT.</font></td>
						    <td align="center"  width="'.$this->RepParam['ancho'][5].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'">NROCONT</font></td>
							<td align="center"  width="'.$this->RepParam['ancho'][6].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'">NUMRECDOC</font></td>
							<td align="center"  width="'.$this->RepParam['ancho'][7].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'">ESTATUS</font></td>
							<td align="center"  width="'.$this->RepParam['ancho'][8].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'">MONANT</font></td>
							<td align="center"  width="'.$this->RepParam['ancho'][9].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'">MONDESC</font></td>
							<td align="center"  width="'.$this->RepParam['ancho'][10].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'">MONRES</font></td>
						</tr>							
					</thead>';
					
		return $encabezado; 
	}
	
	function FinTablaRepLisAnticipos($datos=array()){
	
			$datos['total_ant'] = number_format($datos['total_ant'],2,',','.');
			$datos['total_des'] = number_format($datos['total_des'],2,',','.');
			$datos['total_res'] = number_format($datos['total_res'],2,',','.');
			
			$TotAncho = $this->RepParam['ancho'][0]+
						$this->RepParam['ancho'][1]+
			            $this->RepParam['ancho'][2]+
						$this->RepParam['ancho'][3]+
						$this->RepParam['ancho'][4]+
						$this->RepParam['ancho'][5]+
						$this->RepParam['ancho'][6]+
						$this->RepParam['ancho'][7];
						
			$fin_tabla = '   <tr>
							   <td colspan="9"  width="'.$TotAncho.'" align="right">
								 <font size="'.$this->RepParam['fila']['tamaño'].'"> <b>TOTALES:</b></font>
							   </td>							  
							   <td width="'.($this->RepParam['ancho'][8]).'" align="right">
								 <font size="'.$this->RepParam['fila']['tamaño'].'"> '.$datos['total_ant'].'</font>
							   </td>
							   <td width="'.($this->RepParam['ancho'][9]).'" align="right">
								 <font size="'.$this->RepParam['fila']['tamaño'].'"> '.$datos['total_des'].'</font>
							   </td>
							   <td width="'.($this->RepParam['ancho'][10]).'" align="right">
								 <font size="'.$this->RepParam['fila']['tamaño'].'"> '.$datos['total_res'].'</font>
							   </td>							  
							 </tr>							 
						   </table></p>';
			return $fin_tabla; 
	}
	
	function FilaRepLisAnticipos($datos){			
			
			
			$filas .= '<tr bgcolor="'.$this->RepParam['fila']['color_fondo'].'" color="'.$this->RepParam['fila']['color_letra'].'">																							
							<td width="'.$this->RepParam['ancho'][0].'" align="center" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.$this->nrofila.'</font></td>
							<td width="'.$this->RepParam['ancho'][1].'" align="justify" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.trim($datos['infoproben']).'</font></td>
							<td width="'.$this->RepParam['ancho'][2].'" align="justify" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.trim($datos['concepant']).'</font></td>
							<td width="'.$this->RepParam['ancho'][3].'" align="center" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.trim($datos['nroanticipo']).'</font></td>
							<td width="'.$this->RepParam['ancho'][4].'" align="center" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.trim($datos['fecemiant']).'</font></td>
							<td width="'.$this->RepParam['ancho'][5].'" align="center" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.trim($datos['nrocontrato']).'</font></td>							
							<td width="'.$this->RepParam['ancho'][6].'" align="center" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.trim($datos['numrecdoc']).'</font></td>
							<td width="'.$this->RepParam['ancho'][7].'" align="center" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.trim($datos['estant']).'</font></td>
							<td width="'.$this->RepParam['ancho'][8].'" align="right" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.trim($datos['montoant']).'</font></td>
							<td width="'.$this->RepParam['ancho'][9].'" align="right" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.trim($datos['montotdesc']).'</font></td>
							<td width="'.$this->RepParam['ancho'][10].'" align="right" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.trim($datos['montorest']).'</font></td>
						 </tr>';
			
			return $filas;
	}
	
	
	function RepLisAnticipos($datos=array()){			
			
			$resul = $this->ConsultaGeneralAnticipos($datos);	
			if($resul===false){return false;}			
			if(!$resul->RecordCount()){return "";}
			
			$total=0;
			$total['total_ant']=0;
			$total['total_des']=0;
			$total['total_res']=0;
			$this->nrofila = 1;		
			foreach($resul as $datosFila){				
								
				$totales['total_ant'] += $datosFila['montoant'];
				$totales['total_des'] += $datosFila['montotdesc'];
				$totales['total_res'] += $datosFila['montorest'];
				
				$DatosAnt = $this->FormatDatosAntPresent($datosFila);
				
				$filas .= $this->FilaRepLisAnticipos($DatosAnt);
				$this->nrofila++;			
			}
			
			$this->TotalRepLisAnticipos['total_ant'] += $totales['total_ant'];
			$this->TotalRepLisAnticipos['total_des'] += $totales['total_des'];
			$this->TotalRepLisAnticipos['total_res'] += $totales['total_res'];
													
			$reporte = $this->EncabezadoRepLisAnticipos().$filas.$this->FinTablaRepLisAnticipos($totales);
						
			return $reporte;
	
	}
	
	function FormatDatosAntPresent($datos=array()){
	
			$datos['montoant'] = number_format($datos['montoant'],2,',','.');
			$datos['montotdesc'] = number_format($datos['montotdesc'],2,',','.');
			$datos['montorest'] = number_format($datos['montorest'],2,',','.');
			$datos['fecemiant'] = $this->io_conexiones->formatea_fecha_normal($datos['fecemiant']);
			$datos['montodesc'] = number_format($datos['montodesc'],2,',','.');
			$datos['fecdesc'] = $this->io_conexiones->formatea_fecha_normal($datos['fecdesc']);
			return $datos;
	}
	
	
	function ConsultaProvBene($datos=array()){
	
		$metodo='ConsultaProvBene';

		$ls_sql=" SELECT *, nompro as nomproben, rifpro as rifproben 
		          FROM rpc_proveedor 
				  WHERE cod_pro = '".$datos['codproben']."'";
		if($datos['tipproben']=='B'){
				$ls_sql=" SELECT *, nompro as nombene, rifben as rifproben 
						    FROM rpc_beneficiario 
						   WHERE ced_bene = '".$datos['codproben']."'";
		}
				
		$RsProvBen=$this->io_sql->select($ls_sql);
		//echo $ls_sql.'<br>';		
		if($RsProvBen===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,'error');}
			else{$this->io_mensajes->message($mensaje);}	
			return false;					
		}		
		
		return $RsProvBen;	
	}
	
	function EncabezadoRepLisAnticiposExcel($parametro=array()){
		
		
		//CeldaTitulo($Columna='A',$textCell='',$autoSize=true,$AnchoCell=0,$Align='left',$Color='FFCCCCCC',$bold=false)		
		$this->PHPExcel->ColorLinea(0,10,'FFEEEEEE');
		$this->PHPExcel->CeldaTitulo(3,'LISTADO DE ANTICIPOS',false,20,'left','FFEEEEEE',true);
		$this->PHPExcel->nroFila++;	
		$this->PHPExcel->nroColumna=0;	
		$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,'',false,15,'center','FFCCCCCC',true); 
		$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,'PROV/BEN',false,40,'center','FFCCCCCC',true);
		$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,'CONCEP',false,40,'center','FFCCCCCC',true);
		$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,'N°',false,10,'center','FFCCCCCC',true);
		$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,'FECANT',false,20,'center','FFCCCCCC',true);
		$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,'NROCONT',true,0,'center','FFCCCCCC',true);
		$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,'NUMRECDOC',true,0,'center','FFCCCCCC',true);
		$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,'ESTATUS'.$TxtMoneda,true,0,'center','FFCCCCCC',true);
		$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,'MONANT'.$TxtMoneda,true,0,'center','FFCCCCCC',true);
		$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,'MONDESC'.$TxtMoneda,true,0,'center','FFCCCCCC',true);
		$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,'MONRES'.$TxtMoneda,true,0,'center','FFCCCCCC',true);
		$this->PHPExcel->nroFila++;					
		return true; 
	}
	
	function FinTablaRepLisAnticiposExcel($datos=array()){	
				
			$this->PHPExcel->CeldaTitulo(7,'TOTALES:',true,0,'right','FFFFFFFF',true);
			$this->PHPExcel->CeldaTitulo(8,$datos['total_ant'],true,0,'number','FFCCCCCC');
			$this->PHPExcel->CeldaTitulo(9,$datos['total_des'],true,0,'number','FFCCCCCC');
			$this->PHPExcel->CeldaTitulo(10,$datos['total_res'],true,0,'number','FFCCCCCC');
		    $this->PHPExcel->nroFila++;	
			return true; 
	}
	
	function FilaRepLisAnticiposExcel($datos){			
			$this->PHPExcel->nroColumna=0;	
			//CeldaTitulo($Columna='A',$textCell='',$autoSize=true,$AnchoCell=0,$Align='left',$Color='FFCCCCCC',$bold=false)	
			$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,$this->nrofilaant,false,15,'center',$this->RepParam['fila']['color_fondo']);
			$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,$datos['infoproben'],false,40,'center',$this->RepParam['fila']['color_fondo']);
			$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,$datos['concepant'],false,40,'left',$this->RepParam['fila']['color_fondo']);
			$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,$datos['nroanticipo'],false,10,'center',$this->RepParam['fila']['color_fondo']);
			$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,$datos['fecemiant'],false,20,'center',$this->RepParam['fila']['color_fondo']);
			$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,$datos['nrocontrato'],true,10,'left',$this->RepParam['fila']['color_fondo']);
			$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,$datos['numrecdoc'],true,0,'center',$this->RepParam['fila']['color_fondo']);
			$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,$datos['estant'],true,0,'center',$this->RepParam['fila']['color_fondo']);
			$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,$this->formato_numerico_us($datos['montoant']),true,0,'number',$this->RepParam['fila']['color_fondo']);
			$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,$this->formato_numerico_us($datos['montotdesc']),true,0,'number',$this->RepParam['fila']['color_fondo']);
			$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,$this->formato_numerico_us($datos['montorest']),true,0,'number',$this->RepParam['fila']['color_fondo']);
		    $this->PHPExcel->nroFila++;	
			
			return true;
	}
		
	function RepLisAnticiposExcel($datos=array()){
						
			$resul = $this->ConsultaGeneralAnticipos($datos);	
			if($resul===false){return false;}			
			if(!$resul->RecordCount()){return "";}
			
			$total=0;
			$total['total_ant']=0;
			$total['total_des']=0;
			$total['total_res']=0;
			$this->nrofilaant = 1;		
			
			$resp = $this->EncabezadoRepLisAnticiposExcel();
			if($resp===false){return false;}
			
			foreach($resul as $datosFila){				
								
				$totales['total_ant'] += $datosFila['montoant'];
				$totales['total_des'] += $datosFila['montotdesc'];
				$totales['total_res'] += $datosFila['montorest'];
				
				$DatosAnt = $this->FormatDatosAntPresent($datosFila);
								
				$resp=$this->FilaRepLisAnticiposExcel($DatosAnt);
				if($resp===false){return false;}
				
				$this->nrofilaant++;			
			}			
			
			$resp=$this->FinTablaRepLisAnticiposExcel($totales);									
			if($resp===false){return false;}
						
			return true;
	
	}
	
	
	function EncabezadoRepLisDescAnticipos($parametro=array()){
		
		$encabezado = '<p  style="text-align:center;"><table cellspacing="0" cellpadding="1" border="1">
					<thead>
						<tr bgcolor="'.$this->RepParam['encabezado2']['color_fondo'].'" color="'.$this->RepParam['encabezado2']['color_letra'].'" >
						  <td align="center" width="'.$this->RepParam['ancho']['total'].'">
							<font size="12">					            
								<b> DESCUENTO ANTICIPOS A PROVEEDORES </b>								
							</font>
						  </td>
					   </tr>
						<tr bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" color="'.$this->RepParam['encabezado']['color_letra'].'" height="6">						
							<td align="center"  width="'.$this->RepParam['ancho'][0].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'"></font></td>
							<td align="center"  width="'.$this->RepParam['ancho'][1].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'">PROV/BEN</font></td>
							<td align="center"  width="'.$this->RepParam['ancho'][2].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'">CONCEP DESC</font></td>
							<td align="center"  width="'.$this->RepParam['ancho'][3].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'">N° ANT</font></td>
							<td align="center"  width="'.$this->RepParam['ancho'][4].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'">N° DES.</font></td>
						    <td align="center"  width="'.$this->RepParam['ancho'][5].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'">FECDES</font></td>
							<td align="center"  width="'.$this->RepParam['ancho'][6].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'">NROCONT</font></td>
							<td align="center"  width="'.$this->RepParam['ancho'][7].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'">NUMRECDOC</font></td>
							<td align="center"  width="'.$this->RepParam['ancho'][8].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'">MONANT</font></td>
							<td align="center"  width="'.$this->RepParam['ancho'][9].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'">MONDESC</font></td>
						</tr>							
					</thead>';
					
		return $encabezado; 
	}
	
	function FinTablaRepLisDescAnticipos($datos=array()){
			
			$datos['total_des'] = number_format($datos['total_des'],2,',','.');
			
			$TotAncho = $this->RepParam['ancho'][0]+
						$this->RepParam['ancho'][1]+
			            $this->RepParam['ancho'][2]+
						$this->RepParam['ancho'][3]+
						$this->RepParam['ancho'][4]+
						$this->RepParam['ancho'][5]+
						$this->RepParam['ancho'][6]+
						$this->RepParam['ancho'][7]+
						$this->RepParam['ancho'][8];
						
			$fin_tabla = '   <tr>
							   <td colspan="9"  width="'.$TotAncho.'" align="right">
								 <font size="'.$this->RepParam['fila']['tamaño'].'"> <b>TOTALES:</b></font>
							   </td>							   
							   <td width="'.($this->RepParam['ancho'][9]).'" align="right">
								 <font size="'.$this->RepParam['fila']['tamaño'].'"> '.$datos['total_des'].'</font>
							   </td>							  
							 </tr>							 
						   </table></p>';
			return $fin_tabla; 
	}
	
	function FilaRepLisDescAnticipos($datos){			
			
			
			$filas .= '<tr bgcolor="'.$this->RepParam['fila']['color_fondo'].'" color="'.$this->RepParam['fila']['color_letra'].'">																							
							<td width="'.$this->RepParam['ancho'][0].'" align="center" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.$this->nrofila.'</font></td>
							<td width="'.$this->RepParam['ancho'][1].'" align="justify" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.trim($datos['infoproben']).'</font></td>
							<td width="'.$this->RepParam['ancho'][2].'" align="justify" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.trim($datos['concepdesc']).'</font></td>
							<td width="'.$this->RepParam['ancho'][3].'" align="center" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.trim($datos['nroanticipo']).'</font></td>
							<td width="'.$this->RepParam['ancho'][4].'" align="center" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.trim($datos['nrodesc']).'</font></td>
							<td width="'.$this->RepParam['ancho'][5].'" align="center" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.trim($datos['fecdesc']).'</font></td>							
							<td width="'.$this->RepParam['ancho'][6].'" align="center" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.trim($datos['nrocontrato']).'</font></td>
							<td width="'.$this->RepParam['ancho'][7].'" align="center" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.trim($datos['numrecdocdes']).'</font></td>
							<td width="'.$this->RepParam['ancho'][8].'" align="right" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.trim($datos['montoant']).'</font></td>
							<td width="'.$this->RepParam['ancho'][9].'" align="right" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.trim($datos['montodesc']).'</font></td>
						 </tr>';
			
			return $filas;
	}
	
	
	function RepLisDescAnticipos($datos=array()){			
			
			$resul = $this->ConsultaGeneralDescAnticipos($datos);	
			if($resul===false){return false;}			
			if(!$resul->RecordCount()){return "";}
			
			$total=0;
			$total['total_ant']=0;
			$total['total_des']=0;
			$total['total_res']=0;
			$this->nrofila = 1;		
			foreach($resul as $datosFila){
				
				$totales['total_des'] += $datosFila['montodesc'];
				
				$DatosAnt = $this->FormatDatosAntPresent($datosFila);
				
				$filas .= $this->FilaRepLisDescAnticipos($DatosAnt);
				$this->nrofila++;			
			}
			
			$this->TotalRepLisAnticipos['total_des'] += $totales['total_des'];
													
			$reporte = $this->EncabezadoRepLisDescAnticipos().$filas.$this->FinTablaRepLisDescAnticipos($totales);
						
			return $reporte;
	
	}
	
	
	function EncabezadoRepLisDescAnticiposExcel($parametro=array()){
		
		//CeldaTitulo($Columna='A',$textCell='',$autoSize=true,$AnchoCell=0,$Align='left',$Color='FFCCCCCC',$bold=false)		
		$this->PHPExcel->ColorLinea(0,9,'FFEEEEEE');
		$this->PHPExcel->CeldaTitulo(3,'LISTADO DE DESCUENTO ANTICIPOS',false,20,'left','FFEEEEEE',true);
		$this->PHPExcel->nroFila++;	
		$this->PHPExcel->nroColumna=0;	
		$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,'',false,15,'center','FFCCCCCC',true); 
		$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,'PROV/BEN',false,40,'center','FFCCCCCC',true);
		$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,'CONCEP DESC',false,40,'center','FFCCCCCC',true);
		$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,'N° ANT',false,10,'center','FFCCCCCC',true);
		$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,'N° DES',false,20,'center','FFCCCCCC',true);
		$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,'FECDES',true,0,'center','FFCCCCCC',true);
		$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,'NROCONT',true,0,'center','FFCCCCCC',true);
		$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,'NUMRECDOC'.$TxtMoneda,true,0,'center','FFCCCCCC',true);
		$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,'MONANT'.$TxtMoneda,true,0,'center','FFCCCCCC',true);
		$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,'MONDESC'.$TxtMoneda,true,0,'center','FFCCCCCC',true);
		$this->PHPExcel->nroFila++;					
		return true; 
	}
	
	function FinTablaRepLisDescAnticiposExcel($datos=array()){	
				
			$this->PHPExcel->CeldaTitulo(8,'TOTALES:',true,0,'right','FFFFFFFF',true);			
			$this->PHPExcel->CeldaTitulo(9,$datos['total_des'],true,0,'number','FFCCCCCC');			
		    $this->PHPExcel->nroFila++;	
			return true; 
	}
	
	function FilaRepLisDescAnticiposExcel($datos){			
			$this->PHPExcel->nroColumna=0;	
			//CeldaTitulo($Columna='A',$textCell='',$autoSize=true,$AnchoCell=0,$Align='left',$Color='FFCCCCCC',$bold=false)	
			$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,$this->nrofilaant,false,15,'center',$this->RepParam['fila']['color_fondo']);
			$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,$datos['infoproben'],false,40,'center',$this->RepParam['fila']['color_fondo']);
			$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,$datos['concepdesc'],false,40,'left',$this->RepParam['fila']['color_fondo']);
			$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,$datos['nroanticipo'],false,10,'center',$this->RepParam['fila']['color_fondo']);
			$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,$datos['nrodesc'],false,20,'center',$this->RepParam['fila']['color_fondo']);
			$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,$datos['fecdesc'],true,10,'left',$this->RepParam['fila']['color_fondo']);
			$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,$datos['nrocontrato'],true,0,'center',$this->RepParam['fila']['color_fondo']);
			$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,$datos['numrecdocdes'],true,0,'center',$this->RepParam['fila']['color_fondo']);
			$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,$this->formato_numerico_us($datos['montoant']),true,0,'number',$this->RepParam['fila']['color_fondo']);
			$this->PHPExcel->CeldaTitulo($this->PHPExcel->nroColumna++,$this->formato_numerico_us($datos['montodesc']),true,0,'number',$this->RepParam['fila']['color_fondo']);
		    $this->PHPExcel->nroFila++;	
			
			return true;
	}
		
	function RepLisDescAnticiposExcel($datos=array()){
						
			$resul = $this->ConsultaGeneralDescAnticipos($datos);	
			if($resul===false){return false;}			
			if(!$resul->RecordCount()){return "";}
			
			$total=0;
			$total['total_des']=0;
			$this->nrofilaant = 1;		
			
			$resp = $this->EncabezadoRepLisDescAnticiposExcel();
			if($resp===false){return false;}
			
			foreach($resul as $datosFila){							
				
				$totales['total_des'] += $datosFila['montodesc'];
				$DatosAnt = $this->FormatDatosAntPresent($datosFila);
								
				$resp=$this->FilaRepLisDescAnticiposExcel($DatosAnt);
				if($resp===false){return false;}
				
				$this->nrofilaant++;			
			}			
			
			$resp=$this->FinTablaRepLisDescAnticiposExcel($totales);									
			if($resp===false){return false;}
						
			return true;
	
	}
	
	
}// FIN DE LA CLASE 

?>
