<?php 

class covensol_apr_c_cxp {

	var $io_sql_origen;
	var $io_sql_destino;
	var $io_mensajes;
	var $io_funciones;
	var $io_validacion;
	var	$lo_archivo;
	var $io_sql;
	var $li_candeccon;
	var $li_tipconmon;
	var $li_redconmon;

	//-----------------------------------------------------------------------------------------------------------------------------------
	function covensol_apr_c_cxp($param=array())
	{
		require_once("../shared/class_folder/sigesp_include_covensol.php");
		require_once("../shared/class_folder/class_sql_covensol.php");
		require_once("../shared/class_folder/class_mensajes.php");
		require_once("../shared/class_folder/class_funciones.php");	
		require_once("class_folder/class_validacion.php");
		require_once("../shared/class_folder/class_fecha.php");
		
		$this->ls_database_source = $_SESSION["ls_database"];
		$this->ls_database_target = $_SESSION["ls_data_des"];
		$this->io_mensajes        = new class_mensajes();		
		$this->io_funciones       = new class_funciones();
		$this->io_validacion      = new class_validacion();
		$this->io_fecha           = new class_fecha();
		$io_conect	              = new sigesp_include_covensol();
		$io_conexion_origen       = $io_conect->uf_conectar();
		$io_conexion_destino      = $io_conect->uf_conectar_otra_bd ($_SESSION["ls_hostname_destino"],$_SESSION["ls_login_destino"],$_SESSION["ls_password_destino"],$this->ls_database_target,$_SESSION["ls_gestor_destino"],$_SESSION["ls_port_destino"]); 
		$this->io_sql_origen      = new class_sql_covensol($io_conexion_origen);
		$this->io_sql_destino 	  = new class_sql_covensol($io_conexion_destino);
		
		$ld_fecha=date("_d-m-Y");
		$ls_nombrearchivo         = "resultado/".$_SESSION["ls_data_des"]."_cxp_transferencia_".$ld_fecha.".txt";
		$this->lo_archivo         = @fopen("$ls_nombrearchivo","a+");
		$this->ls_codemp          = $_SESSION["la_empresa"]["codemp"];
		
		$this->li_candeccon= 4;
		$this->	li_tipconmon= 1;
		$this->li_redconmon=1000;
		
		global $ruta;		
		if($ruta==''){$ruta="../";}	
		require_once($ruta."shared/class_folder/sigesp_conexiones.php");
		$this->io_conexiones=new conexiones();
		
		require_once("covensol_apr_c_funciones_db.php");
		$this->fundb =new covensol_apr_c_funciones_db();
				
		$this->borrar_tabla = 0;
		$this->msjejec = "";
		$this->msjresultado = "";	
		$this->PeriodoNuevo();
		$this->ano_apr = substr($this->periodo_apr,6,4);		
		$this->SCG_PROVEEDOR = '';
		$this->SCG_BENEFICIARIO = '';
		$this->CODTIPDOC = '';
		$this->SobreEscribir = 1;
		$this->EliminarTraspasos = 1;
		$this->ReleaseProcRegCXP();
	}// end function 

	
	
	
	function TransferirCXP($param=array())
	{
		
		
		$this->EliminarTraspasos = $param['eliminar_traspaso'];
		$this->SobreEscribir = $param['sobreescribir'];
		
		$resp = $this->ReleaseAPRCXP();
		if($resp===false){return false;}
		
		if($this->EliminarTraspasos){
			$resp = $this->EliminarTraspasoCXP();
			if($resp===false){return false;}
		}
		
		$this->SCG_PROVEEDOR = $param['scg_proveedor'];
		$this->SCG_BENEFICIARIO = $param['scg_beneficiario'];
		$this->CODTIPDOC = trim($param['codtipdoc']);
		
		/*
		if(!$this->SCG_PROVEEDOR){
		  $this->io_conexiones->mensajes_ajax(" Seleccione la cuenta contable del proveedor ! ");
		  return false;
		}
		
		if(!$this->SCG_BENEFICIARIO){
		  $this->io_conexiones->mensajes_ajax(" Seleccione la cuenta contable del beneficiario ! ");
		  return false;
		}
		*/
		
		if($this->lo_archivo){@fwrite($this->lo_archivo," \r\n".date('H:i:s').'.- Iniciando la transferencia de CXP ... '." \r\n"." \r\n");}
		$lb_valido=true;
		$this->msjejec .= date('H:i:s').'.- <b>Ejecutando:</b> SelecSolicitudes()<br />';
		$resp = $this->SelecSolicitudes();
		if($resp===false){return false;}
		
		$this->EliminarTraspasos = 0;	
		$this->io_sql_destino->begin_transaction();		
		foreach($resp as $solicitud){
				
				$this->Solicitud = $solicitud;
				if(!in_array($this->Solicitud['numsol'],$param['solicitudes'])){continue;}
				$this->SCG_PROBEN = ($this->Solicitud['tipproben']=='P')?$this->SCG_PROVEEDOR:$this->SCG_BENEFICIARIO;
				if(!$this->SCG_PROBEN){
					$this->SCG_PROBEN = $this->CuentaProvBene();
					if($this->SCG_PROBEN===false){return false;}
				}
								
				$this->MontoSolicitud = $this->Solicitud['monsol'];
				if($this->Solicitud['monpag'] and $this->Solicitud['estprosol']=='S'){$this->MontoSolicitud = $this->Solicitud['monsol']-$this->Solicitud['monpag'];}
				$this->NUMSOL = 'SP'.$this->Solicitud['ano'].'-'.substr($this->Solicitud['numsol'],-8);
				$this->NUMRECDOC = 'RD'.$this->Solicitud['ano'].'-'.substr($this->Solicitud['numsol'],-8);
				$this->DENCONDOC = 'TRASPASO DE CXP AŃO '.$this->Solicitud['ano'].' SOLICITUD:'.$this->NUMSOL.'   '.$this->Solicitud['consol'];
				
				//echo $this->Solicitud['nombre'].'-'.$this->NUMSOL.'-'.$this->MontoSolicitud.'-'.$this->NUMRECDOC.'<br>';
								
				$resul = $this->InsertRecepDoc();
				if($resul===false){$this->io_sql_destino->rollback(); return false;}
				
				$resul = $this->InsertRecepDocSCG();
				if($resul===false){$this->io_sql_destino->rollback(); return false;}
				
				$resul = $this->InsertSolic();
				if($resul===false){$this->io_sql_destino->rollback(); return false;}
				
				$resul = $this->InsertDtSolic();
				if($resul===false){$this->io_sql_destino->rollback(); return false;}
				
				$resul = $this->InsertHistSolic();
				if($resul===false){$this->io_sql_destino->rollback(); return false;}				
				
				$resul = $this->ContabilizarSolic();
				if($resul===false){$this->io_sql_destino->rollback(); return false;}
				
				
		}
			
		$this->io_sql_destino->commit();	
		$this->io_conexiones->mensajes_ajax("Las cuentas por pagar se transfirieron correctamente."); 
		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Las cuentas por pagar se transfirieron correctamente.'." \r\n"." \r\n");}	
		
			
		return true;
			
	}
	
	function EliminarTraspasoCXP($param=array()){
	    
		$elim = $this->EliminaContabilizarSolic();
		if($elim===false){return false;}
		$elim = $this->EliminaHistSolic();
		if($elim===false){return false;}
		$elim = $this->EliminaDtSolic();
		if($elim===false){return false;}
	    $elim = $this->EliminaSolic();	
		if($elim===false){return false;}	
		$elim = $this->EliminaRecepDocSCG();
		if($elim===false){return false;}
		$elim = $this->EliminaRecepDoc();
		if($elim===false){return false;}		
	
	}
	
	function PeriodoNuevo($param=array()){
		 
		 $ls_sql="SELECT (substr(periodo,1,4)::integer + 1)||substr(periodo,5,10) as periodo FROM sigesp_empresa  ";
		 $rs_periodo=$this->io_sql_origen->select($ls_sql);
		 if($rs_periodo===false){	   
			$this->io_conexiones->mensajes_ajax("CLASE->".get_class($this)." MÉTODO->PeriodoNuevo ERROR->".$this->io_sql_origen->message);
			return false;						
		 }
		 
		 $this->periodo_apr = $this->io_conexiones->formatea_fecha_normal($rs_periodo->fields['periodo']);	
		 //echo $this->periodo_apr.'<br>';	 
		 return $this->periodo_apr;
		 
	}
	
	function CuentaProvBene($param=array()){
		 
		 $ls_sql="SELECT trim(sc_cuenta) AS sc_cuenta
				  FROM rpc_beneficiario
				  WHERE  ced_bene ='".$this->Solicitud['ced_bene']."'";
		 
		 if($this->Solicitud['tipproben']=='P'){		 
			 $ls_sql="SELECT trim(sc_cuenta) AS sc_cuenta
					  FROM rpc_proveedor
					  WHERE  cod_pro ='".$this->Solicitud['cod_pro']."'";
		 }
		 
		 $rsProvBene=$this->io_sql_origen->select($ls_sql);
		 if($rsProvBene===false){	   
			$this->io_conexiones->mensajes_ajax("CLASE->".get_class($this)." MÉTODO->CuentaProvBene ERROR->".$this->io_sql_origen->message);
			return false;						
		 }
		
		 $ls_sql="SELECT trim(sc_cuenta) AS sc_cuenta
				  FROM scg_cuentas
				  WHERE  sc_cuenta ='".trim($rsProvBene->fields['sc_cuenta'])."'";
		 $rsCuentas=$this->io_sql_destino->select($ls_sql);
		 if($rsCuentas===false){	   
			$this->io_conexiones->mensajes_ajax("CLASE->".get_class($this)." MÉTODO->CuentaProvBene ERROR->".$this->io_sql_destino->message);
			return false;						
		 }
		 
		 if(!$rsCuentas->fields['sc_cuenta']){
		            $this->io_conexiones->mensajes_ajax("La cuenta contable ".trim($rsProvBene->fields['sc_cuenta'])." no existe en la base de datos destino."); 
		 			return false;
		 }
		 $provbene = trim($rsProvBene->fields['sc_cuenta']);
		 if($this->SCG_PROVEEDOR and $this->Solicitud['tipproben']=='P'){$provbene = $this->SCG_PROVEEDOR;}
		 if($this->SCG_BENEFICIARIO and $this->Solicitud['tipproben']=='B'){$provbene = $this->SCG_BENEFICIARIO;}
		 return $provbene;
		 
	}
	
	function SelecSolicitudesINAC($param=array()){
	
	
				 $ls_sql="  	SELECT  sp.tipproben,sp.numsol,
				                        (CASE 
										      WHEN (substr(replace(sp.numsol, 'MAY', '000'), 1, 6)::integer)>3000 
										            THEN substr((substr(replace(sp.numsol, 'MAY', '000'), 1, 6)::integer), 1, 4)::integer
										      ELSE substr(replace(sp.numsol, 'MAY', '000'), 1, 6)::integer
										 END) AS ano,
										'SP'||(CASE 
											WHEN (substr(replace(sp.numsol, 'MAY', '000'), 1, 6)::integer)>3000 
											 THEN substr((substr(replace(sp.numsol, 'MAY', '000'), 1, 6)::integer), 1, 4)::integer
											 ELSE substr(replace(sp.numsol, 'MAY', '000'), 1, 6)::integer
											END)||'-' AS prefijo,
											sp.cod_pro,
										sp.ced_bene, sp.fecemisol,sp.estprosol,
										sp.monsol,sp.consol,sp.obssol,sp.numcmp, 
										(CASE tipproben WHEN 'P' THEN (SELECT p.nompro FROM rpc_proveedor p 
														   WHERE p.codemp=sp.codemp 
														   AND p.cod_pro=sp.cod_pro) 
												WHEN 'B' THEN (SELECT b.nombene||' '||b.apebene 
														   FROM rpc_beneficiario b WHERE b.codemp=sp.codemp 
														   AND b.ced_bene=sp.ced_bene) 
												ELSE 'NINGUNO' END ) AS nombre,
												(sp.monsol + (      SELECT COALESCE(SUM(rded.monret),0)  as monret
																 FROM  cxp_rd_deducciones rded, sigesp_deducciones ded,cxp_dt_solicitudes ds
																 WHERE ds.codemp='".$this->ls_codemp."'
																 AND ds.numsol = sp.numsol
																 AND rded.codemp =ds.codemp
																 AND rded.numrecdoc =ds.numrecdoc
																 AND rded.codtipdoc =ds.codtipdoc
																 AND rded.cod_pro =ds.cod_pro
																 AND rded.ced_bene =ds.ced_bene
																 AND rded.codemp=ded.codemp
																 AND rded.codded=ded.codded)) AS monbruto,
										(	SELECT  COALESCE(SUM(sb.monto),0)
											FROM cxp_solicitudes sp2
											INNER JOIN cxp_historico_solicitud hs ON  hs.codemp=sp2.codemp 
																  AND hs.numsol=sp2.numsol				   
											INNER JOIN cxp_sol_banco sb ON sp2.codemp=sb.codemp 
															AND sp2.numsol=sb.numsol                             
											INNER JOIN scb_movbco mb ON sb.codemp=mb.codemp 
														 AND sb.codban=mb.codban 
														 AND sb.ctaban=mb.ctaban 
														 AND sb.numdoc=mb.numdoc 
														 AND sb.codope=mb.codope 
														 AND sb.estmov=mb.estmov
											WHERE sp2.codemp='".$this->ls_codemp."'
											AND sp2.numsol=sp.numsol 
											AND sp2.estprosol<>'A' 	
											AND hs.estprodoc='S'
											AND sb.estmov='C'
										) AS monpag	
									FROM cxp_solicitudes sp
									WHERE sp.codemp='".$this->ls_codemp."'
									AND (sp.estprosol='C' OR sp.estprosol='S') 
									ORDER BY 13
						
						  ";
				 $rs_solicitudes=$this->io_sql_origen->select($ls_sql);
				 if($rs_solicitudes===false){	   
					$this->io_conexiones->mensajes_ajax("CLASE->".get_class($this)." MÉTODO->SelecSolicitudes ERROR->".$this->io_sql_origen->message);
					return false;						
				 }
				 
				 return $rs_solicitudes;
	
	
	}	
	
	function SelecSolicitudes($param=array()){
	
	
				 $ls_sql="  	UPDATE cxp_solicitudes SET anosolic = substr(fecemisol::text,1,4)::integer WHERE anosolic=1900 OR anosolic IS NULL;
				 
				  				SELECT  sp.tipproben,sp.numsol,
				                        anosolic AS ano,
										'SP'||anosolic||'-' AS prefijo,
											sp.cod_pro,
										sp.ced_bene, sp.fecemisol,sp.estprosol,
										sp.monsol,sp.consol,sp.obssol,sp.numcmp, 
										(CASE tipproben WHEN 'P' THEN (SELECT p.nompro FROM rpc_proveedor p 
														   WHERE p.codemp=sp.codemp 
														   AND p.cod_pro=sp.cod_pro) 
												WHEN 'B' THEN (SELECT b.nombene||' '||b.apebene 
														   FROM rpc_beneficiario b WHERE b.codemp=sp.codemp 
														   AND b.ced_bene=sp.ced_bene) 
												ELSE 'NINGUNO' END ) AS nombre,
												(sp.monsol + (      SELECT COALESCE(SUM(rded.monret),0)  as monret
																 FROM  cxp_rd_deducciones rded, sigesp_deducciones ded,cxp_dt_solicitudes ds
																 WHERE ds.codemp='".$this->ls_codemp."'
																 AND ds.numsol = sp.numsol
																 AND rded.codemp =ds.codemp
																 AND rded.numrecdoc =ds.numrecdoc
																 AND rded.codtipdoc =ds.codtipdoc
																 AND rded.cod_pro =ds.cod_pro
																 AND rded.ced_bene =ds.ced_bene
																 AND rded.codemp=ded.codemp
																 AND rded.codded=ded.codded)) AS monbruto,
										(	SELECT  COALESCE(SUM(sb.monto),0)
											FROM cxp_solicitudes sp2
											INNER JOIN cxp_historico_solicitud hs ON  hs.codemp=sp2.codemp 
																  AND hs.numsol=sp2.numsol				   
											INNER JOIN cxp_sol_banco sb ON sp2.codemp=sb.codemp 
															AND sp2.numsol=sb.numsol                             
											INNER JOIN scb_movbco mb ON sb.codemp=mb.codemp 
														 AND sb.codban=mb.codban 
														 AND sb.ctaban=mb.ctaban 
														 AND sb.numdoc=mb.numdoc 
														 AND sb.codope=mb.codope 
														 AND sb.estmov=mb.estmov
											WHERE sp2.codemp='".$this->ls_codemp."'
											AND sp2.numsol=sp.numsol 
											AND sp2.estprosol<>'A' 	
											AND hs.estprodoc='S'
											AND sb.estmov='C'
										) AS monpag	
									FROM cxp_solicitudes sp
									WHERE sp.codemp='".$this->ls_codemp."'
									AND (sp.estprosol='C' OR sp.estprosol='S') 
									ORDER BY 13
						
						  ";
				 $rs_solicitudes=$this->io_sql_origen->select($ls_sql);
				 if($rs_solicitudes===false){	   
					$this->io_conexiones->mensajes_ajax("CLASE->".get_class($this)." MÉTODO->SelecSolicitudes ERROR->".$this->io_sql_origen->message);
					return false;						
				 }
				 
				 return $rs_solicitudes;
	
	}	

	
		function SelecDetSolicitud($param=array()){
		
			 $ls_sql="  	SELECT *
							FROM cxp_dt_solicitudes ds 
							WHERE ds.numsol = '".$this->Solicitud['numsol']."'
							AND ds.codemp='".$this->ls_codemp."'
							ORDER BY ds.numrecdoc
					
					  ";
			 $resdet=$this->io_sql_origen->select($ls_sql);
			 if($resdet===false){	   
				$this->io_conexiones->mensajes_ajax("CLASE->".get_class($this)." MÉTODO->SelecDetSolicitud ERROR->".$this->io_sql_origen->message);
				return false;						
			 }
			 
			 return $resdet;
	
	    }
	
		
		function SelecRecepDoc($param=array()){
		
			 $ls_sql="  	SELECT *
							FROM cxp_rd rd 
							WHERE rd.codemp='".$this->ls_codemp."'
							AND rd.numrecdoc = '".$this->DetSolic['numrecdoc']."'
							AND rd.codtipdoc = '".$this->DetSolic['codtipdoc']."'
							AND rd.ced_bene = '".$this->DetSolic['ced_bene']."'
							AND rd.cod_pro = '".$this->DetSolic['cod_pro']."'
					
					  ";
			 $resdet=$this->io_sql_origen->select($ls_sql);
			 if($resdet===false){	   
				$this->io_conexiones->mensajes_ajax("CLASE->".get_class($this)." MÉTODO->SelecRecepDoc ERROR->".$this->io_sql_origen->message);
				return false;						
			 }
			 
			 return $resdet;
	
	    }
		
		
		function SelecRecepDocSCG($param=array()){
		
			 $ls_sql="  	SELECT *
							FROM cxp_rd_scg scg 
							WHERE scg.codemp='".$this->ls_codemp."'
							AND scg.numrecdoc = '".$this->RecepDoc['numrecdoc']."'
							AND scg.codtipdoc = '".$this->RecepDoc['codtipdoc']."'
							AND scg.ced_bene = '".$this->RecepDoc['ced_bene']."'
							AND scg.cod_pro = '".$this->RecepDoc['cod_pro']."'
					
					  ";
			 $resdet=$this->io_sql_origen->select($ls_sql);
			 if($resdet===false){	   
				$this->io_conexiones->mensajes_ajax("CLASE->".get_class($this)." MÉTODO->SelecRecepDoc ERROR->".$this->io_sql_origen->message);
				return false;						
			 }
			 
			 return $resdet;
	
	    }
		
		
		function InsertRecepDoc($param=array()){
				 
				 $ls_sql="  SELECT * 
				            FROM cxp_rd rd
							WHERE rd.codemp='".$this->ls_codemp."'
							AND rd.numrecdoc = '".$this->NUMRECDOC."'
							AND rd.codtipdoc = '".$this->CODTIPDOC."'
							AND rd.ced_bene = '".$this->Solicitud['ced_bene']."'
							AND rd.cod_pro = '".$this->Solicitud['cod_pro']."' ";
				 $rs_perdes=$this->io_sql_destino->select($ls_sql);
				 if($rs_perdes===false){	   
					$this->io_conexiones->mensajes_ajax("CLASE->".get_class($this)." MÉTODO->InsertRecepDoc ERROR->".$this->io_sql_destino->message);
					return false;						
				 }	
				 //echo $rs_perdes->RecordCount();
				 if($rs_perdes->RecordCount()){
				        if($this->SobreEscribir){						 
							 $elim = $this->EliminarTraspasoCXP(); 
							 if($elim===false){return false;}
						}
						else{return true;}						
				 }
				 
				 $CheckProv = $this->ActualizarProveedor();
				 if($CheckProv===false){return false;}
				 
				 
				 $CheckBene = $this->ActualizarBenef();
				 if($CheckBene===false){return false;}
				 
				 $ls_sql=" INSERT INTO cxp_rd ( codemp, numrecdoc, codtipdoc, ced_bene, cod_pro, codcla, dencondoc, 
												fecemidoc, fecregdoc, fecvendoc, montotdoc, mondeddoc, moncardoc, 
												tipproben, numref, estprodoc, procede, estlibcom, estaprord, 
												fecaprord, usuaprord, numpolcon, estimpmun, montot, codfuefin, 
												codrecdoc, fechaconta, fechaanula, coduniadm, codestpro1, codestpro2, 
												codestpro3, codestpro4, codestpro5, estcla, estact, numordpagmin, 
												codtipfon, repcajchi, codproalt, conanurd,proc_reg)
							VALUES ('".$this->ls_codemp."', '".$this->NUMRECDOC."', '".$this->CODTIPDOC."', '".$this->Solicitud['ced_bene']."', '".$this->Solicitud['cod_pro']."', '--', '".$this->DENCONDOC."', 
									'".$this->ano_apr."-01-01', '".$this->ano_apr."-01-01', '".$this->ano_apr."-01-01', ".$this->MontoSolicitud.", 0, 0, 
									'".$this->Solicitud['tipproben']."', '".$this->NUMRECDOC."', 'C', 'CXPRCD', 0, 1, 
									'".$this->ano_apr."-01-01', 'TRASPASO', 0, 0, ".$this->MontoSolicitud.", '--', 
									'000000000000000', '1900-01-01', '1900-01-01', '----------', '-------------------------', '-------------------------', 
									'-------------------------', '-------------------------', '-------------------------', '-', '0', '-', 
									'----', '0', NULL, NULL,'TRACXP-".$this->ano_apr."');";
									
				 $rs_perdes=$this->io_sql_destino->select($ls_sql);
				 if($rs_perdes===false){	   
					$this->io_conexiones->mensajes_ajax("CLASE->".get_class($this)." MÉTODO->InsertRecepDoc ERROR->".$this->io_sql_destino->message);
  					echo $this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->InsertRecepDoc ERROR->".$this->io_sql_destino->message);
					return false;						
				 }	
				 
				 return true;
		}
		
		function InsertRecepDocSCG($param=array()){
				 
				 $ls_sql="  SELECT * 
				            FROM cxp_rd_scg scg
							WHERE scg.codemp='".$this->ls_codemp."'
							AND scg.numrecdoc = '".$this->NUMRECDOC."'
							AND scg.codtipdoc = '".$this->CODTIPDOC."'
							AND scg.ced_bene = '".$this->Solicitud['ced_bene']."'
							AND scg.cod_pro = '".$this->Solicitud['cod_pro']."' ";
				 $rsSCG=$this->io_sql_destino->select($ls_sql);
				 if($rsSCG===false){	   
					$this->io_conexiones->mensajes_ajax("CLASE->".get_class($this)." MÉTODO->InsertRecepDocSCG ERROR->".$this->io_sql_destino->message);
					echo $this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->InsertRecepDocSCG ERROR->".$this->io_sql_destino->message);
					return false;
							
				 }	
				 
				 if($rsSCG->RecordCount()){
				        if($this->SobreEscribir){
								$elim = $this->EliminaRecepDocSCG(); 
								if($elim===false){return false;}
						}
						else{return true;}						
				 }				 
				 
				 $ls_sql="  INSERT INTO cxp_rd_scg VALUES ('".$this->ls_codemp."', '".$this->NUMRECDOC."', '".$this->CODTIPDOC."', '".$this->Solicitud['ced_bene']."', '".$this->Solicitud['cod_pro']."', 'CXPRCD', '".$this->NUMRECDOC."', 'D', '".$this->SCG_PROBEN."', 'M', ".$this->MontoSolicitud.", 0,'TRACXP-".$this->ano_apr."');
							INSERT INTO cxp_rd_scg VALUES ('".$this->ls_codemp."', '".$this->NUMRECDOC."', '".$this->CODTIPDOC."', '".$this->Solicitud['ced_bene']."', '".$this->Solicitud['cod_pro']."', 'CXPRCD', '".$this->NUMRECDOC."', 'H', '".$this->SCG_PROBEN."', 'M', ".$this->MontoSolicitud.", 0,'TRACXP-".$this->ano_apr."'); ";
									
				 $rs_perdes=$this->io_sql_destino->select($ls_sql);
				 if($rs_perdes===false){	   
					$this->io_conexiones->mensajes_ajax("CLASE->".get_class($this)." MÉTODO->InsertRecepDocSCG ERROR->".$this->io_sql_destino->message);
					echo $this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->InsertRecepDocSCG ERROR->".$this->io_sql_destino->message);					
					return false;						
				 }	
				 
				 return true;
		}
		
		
		function InsertSolic($param=array()){
				 
				 $ls_sql="  SELECT * 
				            FROM cxp_solicitudes
							WHERE cxp_solicitudes.codemp='".$this->ls_codemp."'
							AND cxp_solicitudes.numsol = '".$this->NUMSOL."';";
				 $rs_perdes=$this->io_sql_destino->select($ls_sql);
				 if($rs_perdes===false){	   
					$this->io_conexiones->mensajes_ajax("CLASE->".get_class($this)." MÉTODO->InsertSolic ERROR->".$this->io_sql_destino->message);
					return false;						
				 }	
				 //echo $rs_perdes->RecordCount();
				 if($rs_perdes->RecordCount()){
				        if($this->SobreEscribir){
						     $elim = $this->EliminaDtSolic(); 
							 if($elim===false){return false;}
							 $elim = $this->EliminaHistSolic(); 
							 if($elim===false){return false;}
							 $elim = $this->EliminaSolic(); 
							 if($elim===false){return false;}
						}
						else{return true;}						
				 }  			 
				 
				 $ls_sql=" INSERT INTO cxp_solicitudes(
									codemp, numsol, cod_pro, ced_bene, 
									codfuefin, tipproben, fecemisol, 
									fecpagsol, consol, estprosol, 
									monsol, obssol, procede, numcmp, 
									feccmp, estaprosol, fecaprosol, 
									usuaprosol, numpolcon, fechaconta, 
									fechaanula, estapesolpag, numordpagmin,
									 codtipfon, repcajchi, 
									conanusol, nombenaltcre,proc_reg,anosolic)
							VALUES ('".$this->ls_codemp."', '".$this->NUMSOL."', '".$this->Solicitud['cod_pro']."', '".$this->Solicitud['ced_bene']."', 
							        '--', '".$this->Solicitud['tipproben']."', '".$this->ano_apr."-01-01', 
									'1900-01-01', '".$this->Solicitud['consol']."', 'C', 
									'".$this->MontoSolicitud."', '".$this->Solicitud['obssol']."', 'CXPSOP','".$this->Solicitud['numcmp']."',  
									'1900-01-01', 1, '".$this->ano_apr."-01-01',
									'TRASPASO', 0, '".$this->ano_apr."-01-01',  
									'1900-01-01', '0', '-',
									'----', '0',  
									NULL, '','TRACXP-".$this->ano_apr."',".$this->Solicitud['ano'].");";
									
				 $rs_perdes=$this->io_sql_destino->select($ls_sql);
				 if($rs_perdes===false){	   
					$this->io_conexiones->mensajes_ajax("CLASE->".get_class($this)." MÉTODO->InsertSolic ERROR->".$this->io_sql_destino->message);
					echo $this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->InsertSolic ERROR->".$this->io_sql_destino->message);
					return false;						
				 }	
				 
				 return true;
		}
		
		
		function InsertDtSolic($param=array()){
				 
				 $ls_sql="  SELECT * 
				            FROM cxp_dt_solicitudes
							WHERE cxp_dt_solicitudes.codemp='".$this->ls_codemp."'
							AND cxp_dt_solicitudes.numsol = '".$this->NUMSOL."'
							AND cxp_dt_solicitudes.numrecdoc = '".$this->NUMRECDOC."'
							AND cxp_dt_solicitudes.codtipdoc = '".$this->CODTIPDOC."'
							AND cxp_dt_solicitudes.ced_bene = '".$this->Solicitud['ced_bene']."'
							AND cxp_dt_solicitudes.cod_pro = '".$this->Solicitud['cod_pro']."' ";
				 $rs_perdes=$this->io_sql_destino->select($ls_sql);
				 if($rs_perdes===false){	   
					$this->io_conexiones->mensajes_ajax("CLASE->".get_class($this)." MÉTODO->InsertDtSolic ERROR->".$this->io_sql_destino->message);
					return false;						
				 }	
				 //echo $rs_perdes->RecordCount();
				 if($rs_perdes->RecordCount()){
				        if($this->SobreEscribir){
							 $elim = $this->EliminaDtSolic(); 
							 if($elim===false){return false;}
						}
						else{return true;}						
				 }
				 			
				 
				 $ls_sql=" INSERT INTO cxp_dt_solicitudes ( codemp, numsol, numrecdoc, codtipdoc, ced_bene, cod_pro, monto,proc_reg)
							VALUES ('".$this->ls_codemp."', '"
							          .$this->NUMSOL."', '"
									  .$this->NUMRECDOC."', '"
									  .$this->CODTIPDOC."', '"
									  .$this->Solicitud['ced_bene']."', '"
									  .$this->Solicitud['cod_pro']."', '"
									  .$this->MontoSolicitud."', 
									  'TRACXP-".$this->ano_apr."');";
									
				 $rs_perdes=$this->io_sql_destino->select($ls_sql);
				 if($rs_perdes===false){	   
					$this->io_conexiones->mensajes_ajax("CLASE->".get_class($this)." MÉTODO->InsertDtSolic ERROR->".$this->io_sql_destino->message);
					echo $this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->InsertDtSolic ERROR->".$this->io_sql_destino->message);
					return false;						
				 }	
				 
				 return true;
		}
		
		function InsertHistSolic($param=array()){
				 
					 
				 $ls_sql="  SELECT * 
				            FROM cxp_historico_solicitud
							WHERE cxp_historico_solicitud.codemp='".$this->ls_codemp."'
							AND cxp_historico_solicitud.numsol = '".$this->NUMSOL."'
							AND cxp_historico_solicitud.fecha = '".$this->ano_apr."-01-01'
							AND cxp_historico_solicitud.estprodoc = 'C' ";
				 $rs_perdes=$this->io_sql_destino->select($ls_sql);
				 if($rs_perdes===false){	   
					$this->io_conexiones->mensajes_ajax("CLASE->".get_class($this)." MÉTODO->InsertHistSolic ERROR->".$this->io_sql_destino->message);
					return false;						
				 }	
				 //echo $rs_perdes->RecordCount();
				 if($rs_perdes->RecordCount()){
				        if($this->SobreEscribir){
							 $elim = $this->EliminaHistSolic(); 
							 if($elim===false){return false;}
						}
						else{return true;}						
				 }
				 			
				 
				 $ls_sql=" INSERT INTO cxp_historico_solicitud ( codemp, numsol, fecha, estprodoc,proc_reg)
							VALUES ('".$this->ls_codemp."', '"
							          .$this->NUMSOL."', '"
									  .$this->ano_apr."-01-01', 
									  'C','TRACXP-".$this->ano_apr."');";
									
				 $rs_perdes=$this->io_sql_destino->select($ls_sql);
				 if($rs_perdes===false){	   
					$this->io_conexiones->mensajes_ajax("CLASE->".get_class($this)." MÉTODO->InsertHistSolic ERROR->".$this->io_sql_destino->message);
					return false;						
				 }	
				 
				 return true;
		}
		
		
		function EliminaHistSolic($param=array()){
				$ls_sql="  DELETE FROM cxp_historico_solicitud
							WHERE cxp_historico_solicitud.codemp='".$this->ls_codemp."'
							AND cxp_historico_solicitud.numsol = '".$this->NUMSOL."'
							AND cxp_historico_solicitud.fecha = '".$this->ano_apr."-01-01'
							AND cxp_historico_solicitud.estprodoc = 'C' ";
				  
				  if($this->EliminarTraspasos){
					$ls_sql=" DELETE FROM cxp_historico_solicitud 
							  WHERE cxp_historico_solicitud.codemp='".$this->ls_codemp."' 
							  AND cxp_historico_solicitud.proc_reg ILIKE'TRACXP-%' ";
				  }
				  
				  $rs=$this->io_sql_destino->select($ls_sql);
				  if($rs===false){	   
					$this->io_conexiones->mensajes_ajax("CLASE->".get_class($this)." MÉTODO->EliminaHistSolic ERROR->".$this->io_sql_destino->message);
					return false;						
				 }	
				 
				 return true;
		
		}
		
		
		function EliminaSolic($param=array()){
				 $ls_sql="  DELETE FROM cxp_solicitudes
							WHERE cxp_solicitudes.codemp='".$this->ls_codemp."'
							AND cxp_solicitudes.numsol = '".$this->NUMSOL."' ";
				  
				  if($this->EliminarTraspasos){
					$ls_sql=" DELETE FROM cxp_solicitudes 
							  WHERE cxp_solicitudes.codemp='".$this->ls_codemp."' 
							  AND cxp_solicitudes.proc_reg ILIKE'TRACXP-%' ";
				  }
				  
				  $rs=$this->io_sql_destino->select($ls_sql);
				  if($rs===false){	   
					$this->io_conexiones->mensajes_ajax("CLASE->".get_class($this)." MÉTODO->EliminaSolic ERROR->".$this->io_sql_destino->message);
					return false;						
				 }	
				 
				 return true;
		
		}

		function EliminaRecepDocSCG($param=array()){
				$ls_sql="  DELETE FROM cxp_rd_scg
							WHERE cxp_rd_scg.codemp='".$this->ls_codemp."'
							AND cxp_rd_scg.numrecdoc = '".$this->NUMRECDOC."'
							AND cxp_rd_scg.codtipdoc = '".$this->CODTIPDOC."'
							AND cxp_rd_scg.ced_bene = '".$this->Solicitud['ced_bene']."'
							AND cxp_rd_scg.cod_pro = '".$this->Solicitud['cod_pro']."' ";
				  
				  if($this->EliminarTraspasos){
					$ls_sql=" DELETE FROM cxp_rd_scg 
							  WHERE cxp_rd_scg.codemp='".$this->ls_codemp."' 
							  AND cxp_rd_scg.proc_reg ILIKE'TRACXP-%' ";
				  }
				  
				  $rs=$this->io_sql_destino->select($ls_sql);
				  if($rs===false){	   
					$this->io_conexiones->mensajes_ajax("CLASE->".get_class($this)." MÉTODO->EliminaRecepDoc ERROR->".$this->io_sql_destino->message);
					echo $this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->EliminaRecepDoc ERROR->".$this->io_sql_destino->message);
					return false;						
				 }	
				 
				 return true;
		
		}
		
		
		function EliminaRecepDoc($param=array()){
				 $ls_sql=" DELETE FROM cxp_rd 
							WHERE cxp_rd.codemp='".$this->ls_codemp."'
							AND cxp_rd.numrecdoc = '".$this->NUMRECDOC."'
							AND cxp_rd.codtipdoc = '".$this->CODTIPDOC."'
							AND cxp_rd.ced_bene = '".$this->Solicitud['ced_bene']."'
							AND cxp_rd.cod_pro = '".$this->Solicitud['cod_pro']."'; ";
				  
				  if($this->EliminarTraspasos){
					$ls_sql=" DELETE FROM cxp_rd 
							  WHERE cxp_rd.codemp='".$this->ls_codemp."' 
							  AND cxp_rd.proc_reg ILIKE'TRACXP-%' ";
				  }
				  
				  $rs_perdes=$this->io_sql_destino->select($ls_sql);
				  if($rs_perdes===false){	   
					$this->io_conexiones->mensajes_ajax("CLASE->".get_class($this)." MÉTODO->EliminaRecepDocSCG ERROR->".$this->io_sql_destino->message);
					return false;						
				 }	
				 
				 return true;
		
		}
		
		function EliminaDtSolic($param=array()){
				$ls_sql=" DELETE FROM cxp_dt_solicitudes 
							WHERE cxp_dt_solicitudes.codemp='".$this->ls_codemp."'
							AND cxp_dt_solicitudes.numsol = '".$this->NUMSOL."'
							AND cxp_dt_solicitudes.numrecdoc = '".$this->NUMRECDOC."'
							AND cxp_dt_solicitudes.codtipdoc = '".$this->CODTIPDOC."'
							AND cxp_dt_solicitudes.ced_bene = '".$this->Solicitud['ced_bene']."'
							AND cxp_dt_solicitudes.cod_pro = '".$this->Solicitud['cod_pro']."' ";
							
				  if($this->EliminarTraspasos){
					$ls_sql=" DELETE FROM cxp_dt_solicitudes 
							  WHERE cxp_dt_solicitudes.codemp='".$this->ls_codemp."' 
							  AND cxp_dt_solicitudes.proc_reg ILIKE'TRACXP-%' ";
				  }
				  
				  
				  $rs_perdes=$this->io_sql_destino->select($ls_sql);
				  if($rs_perdes===false){	   
					$this->io_conexiones->mensajes_ajax("CLASE->".get_class($this)." MÉTODO->EliminaDtSolic ERROR->".$this->io_sql_destino->message);
					return false;						
				 }	
				 
				 return true;
		
		}
		
		
		function ActualizarProveedor($param=array()){
					
					 if($this->Solicitud['cod_pro']=='----------'){return true;}
					
					 $ls_sql="SELECT *
							  FROM rpc_proveedor
							  WHERE  cod_pro ='".$this->Solicitud['cod_pro']."'";
					 $rsexiste=$this->io_sql_destino->select($ls_sql);
					 if($rsexiste===false){	   
						$this->io_conexiones->mensajes_ajax("CLASE->".get_class($this)." MÉTODO->ActualizarProveedor ERROR->".$this->io_sql_destino->message);
						return false;						
					 }	
					
					 if($rsexiste->RecordCount()){						
						return true;
					  }
					 
					 
					 $ls_sql="SELECT *
							  FROM rpc_proveedor							 
							   WHERE  cod_pro ='".$this->Solicitud['cod_pro']."'";
					 $rsProv=$this->io_sql_origen->select($ls_sql);
					 if($rsProv===false){	   
						$this->io_conexiones->mensajes_ajax("CLASE->".get_class($this)." MÉTODO->ActualizarProveedor ERROR->".$this->io_sql_origen->message);
						return false;						
					 }
					 
					 //$this->SCG_PRO = $rsProv->fields['sc_cuenta'];
				 
				     $ls_sql="INSERT INTO rpc_proveedor(
								codemp, cod_pro, nompro, dirpro, telpro, faxpro, nacpro, rifpro, 
								nitpro, fecreg, capital, sc_cuenta, obspro, estpro, estcon, estaso, 
								ocei_fec_reg, ocei_no_reg, monmax, cedrep, nomreppro, emailrep, 
								carrep, registro, nro_reg, tomo_reg, folreg, fecregmod, regmod, 
								nummod, tommod, folmod, inspector, foto, codbansig, codban, codmon, 
								codtipoorg, codesp, ctaban, numlic, fecvenrnc, numregsso, fecvensso, 
								numregince, fecvenince, estprov, pagweb, email, codpai, codest, 
								codmun, codpar, graemp, tipconpro, sc_cuentarecdoc, sc_ctaant, 
								tipperpro, ageviapro, aerolipro)
						VALUES ('".$this->ls_codemp."', '".$rsProv->fields['cod_pro']."', '".$rsProv->fields['nompro']."', '".$rsProv->fields['dirpro']."', '".$rsProv->fields['telpro']."', '".$rsProv->fields['faxpro']."', '".$rsProv->fields['nacpro']."', '".$rsProv->fields['rifpro']."', 
								'".$rsProv->fields['nitpro']."', '".$rsProv->fields['fecreg']."', '".$rsProv->fields['capital']."', '".$rsProv->fields['sc_cuenta']."', '".$rsProv->fields['obspro']."', '".$rsProv->fields['estpro']."', '".$rsProv->fields['estcon']."', '".$rsProv->fields['estaso']."', 
								'".$rsProv->fields['ocei_fec_reg']."', '".$rsProv->fields['ocei_no_reg']."', '".$rsProv->fields['monmax']."', '".$rsProv->fields['cedrep']."', '".$rsProv->fields['nomreppro']."', '".$rsProv->fields['emailrep']."', 
								'".$rsProv->fields['carrep']."', '".$rsProv->fields['registro']."', '".$rsProv->fields['nro_reg']."', '".$rsProv->fields['tomo_reg']."', '".$rsProv->fields['folreg']."', '".$rsProv->fields['fecregmod']."', '".$rsProv->fields['regmod']."', 
								'".$rsProv->fields['nummod']."', '".$rsProv->fields['tommod']."', '".$rsProv->fields['folmod']."', '".$rsProv->fields['inspector']."', '".$rsProv->fields['foto']."', '".$rsProv->fields['codbansig']."', '".$rsProv->fields['codban']."', '".$rsProv->fields['codmon']."', 
								'".$rsProv->fields['codtipoorg']."', '".$rsProv->fields['codesp']."', '".$rsProv->fields['ctaban']."', '".$rsProv->fields['numlic']."', '".$rsProv->fields['fecvenrnc']."', '".$rsProv->fields['numregsso']."', '".$rsProv->fields['fecvensso']."', 
								'".$rsProv->fields['numregince']."', '".$rsProv->fields['fecvenince']."', '".$rsProv->fields['estprov']."', '".$rsProv->fields['pagweb']."', '".$rsProv->fields['email']."', '".$rsProv->fields['codpai']."', '".$rsProv->fields['codest']."', 
								'".$rsProv->fields['codmun']."', '".$rsProv->fields['codpar']."', '".$rsProv->fields['graemp']."', '".$rsProv->fields['tipconpro']."', '".$rsProv->fields['sc_cuentarecdoc']."', '".$rsProv->fields['sc_ctaant']."', 
								'".$rsProv->fields['tipperpro']."', '".$rsProv->fields['ageviapro']."', '".$rsProv->fields['aerolipro']."');";
					 $rs_perdes=$this->io_sql_destino->select($ls_sql);
					 if($rs_perdes===false){	   
						$this->io_conexiones->mensajes_ajax("CLASE->".get_class($this)." MÉTODO->ActualizarProveedor ERROR->".$this->io_sql_destino->message);
						return false;						
					 }	
					 
					 return true;			
	
		}
		
		
		
		function ActualizarBenef($param=array()){
					
					 if($this->Solicitud['ced_bene']=='----------'){return true;}
					 					
					 $ls_sql="SELECT *
							  FROM rpc_beneficiario
							  WHERE  ced_bene ='".$this->Solicitud['ced_bene']."'";
					 $rsexiste=$this->io_sql_destino->select($ls_sql);
					 if($rsexiste===false){	   
						$this->io_conexiones->mensajes_ajax("CLASE->".get_class($this)." MÉTODO->ActualizarBenef ERROR->".$this->io_sql_destino->message);
						return false;						
					 }	
				
					 if($rsexiste->RecordCount()){return true;}
					 
					 
					 $ls_sql="SELECT codemp, ced_bene, codpai, codest, codmun, codpar, codtipcta, 
								   rifben, nombene, apebene, dirbene, telbene, celbene, email, sc_cuenta, 
								   codbansig, codban, ctaban, foto, fecregben, nacben, numpasben, 
								   tipconben, tipcuebanben, sc_cuentarecdoc
							  FROM rpc_beneficiario							 
							   WHERE  ced_bene ='".$this->Solicitud['ced_bene']."'";
					 $rsBene=$this->io_sql_origen->select($ls_sql);
					 if($rsBene===false){	   
						$this->io_conexiones->mensajes_ajax("CLASE->".get_class($this)." MÉTODO->ActualizarBenef ERROR->".$this->io_sql_origen->message);
						return false;						
					 }
					 
					 //$this->SCG_BENEF = $rsBene->fields['sc_cuenta'];
				 
				     $ls_sql="INSERT INTO rpc_beneficiario(
								codemp, ced_bene, codpai, codest, codmun, codpar, codtipcta, 
								rifben, nombene, apebene, dirbene, telbene, celbene, email, sc_cuenta, 
								codbansig, codban, ctaban, foto, fecregben, nacben, numpasben, 
								tipconben, tipcuebanben, sc_cuentarecdoc)
						VALUES ('".$this->ls_codemp."', '".$rsBene->fields['ced_bene']."', '".$rsBene->fields['codpai']."', '".$rsBene->fields['codest']."', '".$rsBene->fields['codmun']."', '".$rsBene->fields['codpar']."', '".$rsBene->fields['codtipcta']."', 
								'".$rsBene->fields['rifben']."', '".$rsBene->fields['nombene']."', '".$rsBene->fields['apebene']."', '".$rsBene->fields['dirbene']."', '".$rsBene->fields['telbene']."', '".$rsBene->fields['celbene']."', '".$rsBene->fields['email']."', '".$rsBene->fields['sc_cuenta']."', 
								'".$rsBene->fields['codbansig']."', '".$rsBene->fields['codban']."', '".$rsBene->fields['ctaban']."', '".$rsBene->fields['foto']."', '".$rsBene->fields['fecregben']."', '".$rsBene->fields['nacben']."', 
								'".$rsBene->fields['numpasben']."', '".$rsBene->fields['tipconben']."', '".$rsBene->fields['tipcuebanben']."', '".$rsBene->fields['sc_cuentarecdoc']."');";
					 $rs_perdes=$this->io_sql_destino->select($ls_sql);
					 if($rs_perdes===false){	   
						$this->io_conexiones->mensajes_ajax("CLASE->".get_class($this)." MÉTODO->ActualizarBenef ERROR->".$this->io_sql_destino->message);
						return false;						
					 }	
					 
					 return true;			
	
		}
		
		function EliminaContabilizarSolic($param=array()){
				
				
				$ls_sql="   DELETE FROM scg_dt_cmp 
							WHERE scg_dt_cmp.codemp='".$this->ls_codemp."'
							AND scg_dt_cmp.procede = 'CXPSOP'
							AND scg_dt_cmp.comprobante = '".$this->NUMSOL."'
							AND scg_dt_cmp.fecha = '".$this->ano_apr."-01-01'
							AND scg_dt_cmp.codban = '---'
							AND scg_dt_cmp.ctaban = '-------------------------';  
							
						    DELETE FROM sigesp_cmp
							WHERE sigesp_cmp.codemp='".$this->ls_codemp."'
							AND sigesp_cmp.procede = 'CXPSOP'
							AND sigesp_cmp.comprobante = '".$this->NUMSOL."'
							AND sigesp_cmp.fecha = '".$this->ano_apr."-01-01'
							AND sigesp_cmp.codban = '---'
							AND sigesp_cmp.ctaban = '-------------------------';
						 
						 
						 ";
				
				 if($this->EliminarTraspasos){
					$ls_sql=" DELETE FROM scg_dt_cmp 
							  WHERE scg_dt_cmp.codemp='".$this->ls_codemp."' 
							  AND scg_dt_cmp.proc_reg ILIKE'TRACXP-%'; 
							  
							  DELETE FROM sigesp_cmp 
							  WHERE sigesp_cmp.codemp='".$this->ls_codemp."' 
							  AND sigesp_cmp.proc_reg ILIKE'TRACXP-%'; 
							
							";
				 }
				
				
				
				  $rs_perdes=$this->io_sql_destino->select($ls_sql);
				  if($rs_perdes===false){	   
					$this->io_conexiones->mensajes_ajax("CLASE->".get_class($this)." MÉTODO->EliminaDtSolic ERROR->".$this->io_sql_destino->message);
					return false;						
				 }	
				 
				 return true;
		
		}
		
		function ContabilizarSolic($param=array()){
				 
			 $ls_sql="  SELECT * 
				            FROM sigesp_cmp cmp
							WHERE cmp.codemp='".$this->ls_codemp."'
							AND cmp.procede = 'CXPSOP'
							AND cmp.comprobante = '".$this->NUMSOL."'
							AND cmp.fecha = '".$this->ano_apr."-01-01'
							AND cmp.codban = '---'
							AND cmp.ctaban = '-------------------------' ";
				 $rsSCG=$this->io_sql_destino->select($ls_sql);
				 if($rsSCG===false){	   
					$this->io_conexiones->mensajes_ajax("CLASE->".get_class($this)." MÉTODO->ContabilizarSolic ERROR->".$this->io_sql_destino->message);
					echo $this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->ContabilizarSolic ERROR->".$this->io_sql_destino->message);					
					return false;						
				 }	
				 
				 if($rsSCG->RecordCount()){
				        if($this->SobreEscribir){
								$elim = $this->EliminaContabilizarSolic(); 
								if($elim===false){return false;}
						}
						else{return true;}						
				 }				 

				 $ls_sql="  INSERT INTO sigesp_cmp(
									codemp, procede, comprobante, fecha, 
									codban, ctaban, descripcion, 
									tipo_comp, tipo_destino, cod_pro, ced_bene, 
									total, numpolcon, 
									esttrfcmp, estrenfon, codfuefin, codusu, proc_reg)
							VALUES ('".$this->ls_codemp."', 'CXPSOP', '".$this->NUMSOL."', '".$this->ano_apr."-01-01', 
							        '---', '-------------------------', '".$this->Solicitud['consol']."', 
									1, '".$this->Solicitud['tipproben']."', '".$this->Solicitud['cod_pro']."', '".$this->Solicitud['ced_bene']."', 
									'".$this->MontoSolicitud."', 0, 
									0, '0', '--', 'TRASPASOCXP','TRACXP-".$this->ano_apr."');
									
							INSERT INTO scg_dt_cmp(
									codemp, procede, comprobante, fecha, codban, ctaban, sc_cuenta, 
									procede_doc, documento, debhab, descripcion, monto, orden, proc_reg)
							VALUES ('".$this->ls_codemp."', 'CXPSOP', '".$this->NUMSOL."', '".$this->ano_apr."-01-01', 
							        '---', '-------------------------', '".$this->SCG_PROBEN."', 
									'CXPSOP', '".$this->NUMRECDOC."', 'D', 'TRASPASOCXP - ".$this->Solicitud['consol']."', '".$this->MontoSolicitud."', 0,'TRACXP-".$this->ano_apr."');		
							
							INSERT INTO scg_dt_cmp(
									codemp, procede, comprobante, fecha, codban, ctaban, sc_cuenta, 
									procede_doc, documento, debhab, descripcion, monto, orden, proc_reg)
							VALUES ('".$this->ls_codemp."', 'CXPSOP', '".$this->NUMSOL."', '".$this->ano_apr."-01-01', 
							        '---', '-------------------------', '".$this->SCG_PROBEN."', 
									'CXPSOP', '".$this->NUMRECDOC."', 'H', 'TRASPASOCXP - ".$this->Solicitud['consol']."', '".$this->MontoSolicitud."', 1,'TRACXP-".$this->ano_apr."');	
							 ";
									
				 $rs_perdes=$this->io_sql_destino->select($ls_sql);
				 if($rs_perdes===false){	   
					$this->io_conexiones->mensajes_ajax("CLASE->".get_class($this)." MÉTODO->ContabilizarSolic ERROR->".$this->io_sql_destino->message);
                                        echo $this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->ContabilizarSolic ERROR->".$this->io_sql_destino->message);
					return false;						
				 }	
				 
				 return true;
		}
		
		
		
		function ReleaseAPRCXP($param=array()){				
				
				$this->fundb->columna = 'proc_reg';
				$this->fundb->BdObjetivo='destino';
				
				$this->fundb->tabla = 'sigesp_cmp';				
				$existe = $this->fundb->SelectColumna();
				if(!$existe){$resp = $this->ReleaseProcRegCXP(); if($resp===false){return false;}}			
							
				$this->fundb->tabla = 'scg_dt_cmp';
				$existe = $this->fundb->SelectColumna();
				if(!$existe){$resp = $this->ReleaseProcRegCXP(); if($resp===false){return false;}}				
				
				$this->fundb->tabla = 'cxp_rd';
				$existe = $this->fundb->SelectColumna();
				if(!$existe){$resp = $this->ReleaseProcRegCXP(); if($resp===false){return false;}}				
				
				$this->fundb->tabla = 'cxp_rd_scg';
				$existe = $this->fundb->SelectColumna();
				if(!$existe){$resp = $this->ReleaseProcRegCXP(); if($resp===false){return false;}}		
				
				$this->fundb->tabla = 'cxp_dt_solicitudes';
				$existe = $this->fundb->SelectColumna();
				if(!$existe){$resp = $this->ReleaseProcRegCXP(); if($resp===false){return false;}}
				
				$this->fundb->tabla = 'cxp_historico_solicitud';
				$existe = $this->fundb->SelectColumna();
				if(!$existe){$resp = $this->ReleaseProcRegCXP(); if($resp===false){return false;}}
				
				$this->fundb->tabla = 'cxp_solicitudes';
				$existe = $this->fundb->SelectColumna();
				if(!$existe){$resp = $this->ReleaseProcRegCXP(); if($resp===false){return false;}}
				
				$this->fundb->columna = 'anosolic';
				$this->fundb->BdObjetivo='origen';
				$this->fundb->tabla = 'cxp_solicitudes';
				$existe = $this->fundb->SelectColumna();
				if(!$existe){$resp = $this->ReleaseAnoSolicCXP(); if($resp===false){return false;}}

				$this->fundb->BdObjetivo='destino';
				$existe = $this->fundb->SelectColumna();
				if(!$existe){$resp = $this->ReleaseAnoSolicCXP(); if($resp===false){return false;}}
				
				return true;
				
		}
		
		function ReleaseProcRegCXP($param=array()){
				 
				 if(!$this->fundb->tabla){return true;}
				 		 
				 $ls_sql = " ALTER TABLE ".$this->fundb->tabla." ADD COLUMN proc_reg character varying(15) default 'SISTEMA';";
				 
				 if($this->fundb->BdObjetivo=='destino'){$rs_data=$this->io_sql_destino->select($ls_sql); $this->sql_msg = $this->io_sql_destino->message;}
	  	         else{$rs_data=$this->io_sql_origen->select($ls_sql); $this->sql_msg = $this->io_sql_origen->message;}

				 if($rs_data===false){	   
					$this->io_conexiones->mensajes_ajax("CLASE->".get_class($this)." MÉTODO->ReleaseProcRegCXP ERROR->".$this->sql_msg);
					return false;						
				 }	
				 
				 return true;
		
		}
		
		function ReleaseAnoSolicCXP($param=array()){
						 
				 $ls_sql = " ALTER TABLE cxp_solicitudes ADD COLUMN anosolic integer DEFAULT 1900;
				             UPDATE cxp_solicitudes SET anosolic = substr(fecemisol::text,1,4)::integer WHERE anosolic=1900 OR anosolic IS NULL;
							 ";
				 
				 if($this->fundb->BdObjetivo=='destino'){$rs_data=$this->io_sql_destino->select($ls_sql); $this->sql_msg = $this->io_sql_destino->message;}
	  	         else{$rs_data=$this->io_sql_origen->select($ls_sql); $this->sql_msg = $this->io_sql_origen->message;}
				 
				 if($rs_data===false){					   
					$this->io_conexiones->mensajes_ajax("CLASE->".get_class($this)." MÉTODO->ReleaseAnoSolicCXP ERROR->".$this->sql_msg);
					return false;						
				 }	
				 
				 return true;
		
		}
		
		function SelecTipoDoc($param=array()){
		
			$ls_sql="SELECT codtipdoc, dentipdoc, estpre
					  FROM cxp_documento
					 WHERE estcon= 1
					   AND (estpre = 2 OR estpre = 3 OR estpre = 4) ORDER BY estpre DESC";
								   
			 $rs=$this->io_sql_origen->select($ls_sql);
			 if($rs===false){	   
				$this->io_conexiones->mensajes_ajax("CLASE->".get_class($this)." MÉTODO->SelecTipoDoc ERROR->".$this->io_sql_origen->message);
				return false;						
			 }
			 
			 return $rs;
	
	    }	
		
		
		function ComboTipoDoc($opciones=array()){
											
				$resp = $this->SelecTipoDoc();
				if($resp===false){return false;}
				
				$combo = '<select name="select_TipDoc" id="select_TipDoc" onChange="CambiarTipoTransferencia(this.value);">';			              
				
				foreach($resp as $dato) { 				
					$combo .= '<option value="'.$dato["codtipdoc"].'-'.$dato["estpre"].'">'.$dato["dentipdoc"].'</option>';								
				}
				$combo .= '</select>';
																							
				return $combo;
		}
		
}


?>
