<?php
  include("include.php");
  require_once "lib/nusoap/nusoap.php";
  //ini_set ('display_errors', 0);
  /*include('adodb5/adodb-error.inc.php');
  include('adodb5/lang/adodb-es.inc.php');
  include('adodb5/adodb.inc.php');*/
  
  ini_set("memory_limit","4096M");//128
  ini_set("max_execution_time","1000");//300
  $ver_php = (float)phpversion();
  $carpeta=basename(getcwd());
  $ip_s = getHostByName(php_uname('n')); //$_SERVER['SERVER_ADDR'];
  global $cnn, $cnn5, $cnn2;   
  
  function mayus($dato)
  {                                  
    //$dato= strtr(strtoupper($dato), "àáâãäåæçèéêëìíîïðñòóôõöøùüú", "ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÜÚ"); # HOLA TÍO
    //echo $dato."<br>";
    $dato=mb_strtoupper($dato, 'iso-8859-1');//mb_strtoupper($dato, 'UTF-8');
    //echo $dato1."<br>";
    return $dato; 
  }

  function ultimodiames($elAnio,$elMes) 
  {
    return date("d",(mktime(0,0,0,$elMes+1,1,$elAnio)-1));
  }
  
  function comparaFecha($fecha,$fecha1)
  {
    if($fecha1!=NULL)
    {
      $fech=explode("-",$fecha);
      $fech1=explode("-",$fecha1);
	    //var $fec =[];
	    //var $fec1 =[];
	    $fec[0]=$fech[2];
	    $fec[1]=$fech[1];
	    $fec[2]=$fech[0];
	    $fec1[0]=$fech1[2];
	    $fec1[1]=$fech1[1];
	    $fec1[2]=$fech1[0];
	    //fec=fecha.split("/");
      //fec1=fecha1.split("/");
	    //alert(fec[0]+"--"+fec1[0]);
	
 	    if($fec[2]>$fec1[2])
	    {
	      return 1;
	    }
	    else if($fec[2]<$fec1[2])
	    {
	      return -1;
	    }
	    else
	    {
	      if($fec[1]>$fec1[1])
	      {
	        return 1;
	      }
	      else if($fec[1]<$fec1[1])
	      {  
		      return -1;
	      }
	      else
	      {
		      if($fec[0]>$fec1[0])
		      {
		        return 1;
		      }
		      else if($fec[0]<$fec1[0])
		      {
		        return -1;
		      }
		      else
	  	    {
		        return 0;
		      }
	      }
	    }
	  }
	  else
	  {
	    return -2;  
	  }
	  //Esta funcion te devuelve 0 en caso de que sean iguales 1 en caso de que fecha sea mayor que fecha1 , -1 cuando fecha sea menor que fecha1 y -2 cuando fecha1 es NULL.
  }

  /*if(!extension_loaded("soap"))
  {
      dl("php_soap.dll");
  }
 
  //ini_set("soap.wsdl_cache_enabled","0");
  ini_set('soap.wsdl_cache_enabled', '0');
  ini_set('soap.wsdl_cache_ttl', '0'); 
  $server = new SoapServer("aritmetica.wsdl");
 
  function consultar($cedula)
  {
    $sql="select t.codigo,t.nombre from ubicacionespoliticas u, territorios t  where u.trtrio_codigo_pertenece_a='22' and u.trtrio_codigo=t.codigo 
    union all
    select t.codigo,t.nombre from territorios t  where t.codigo in ('1116','1484','1731','1715','1733','1092','1719','2547','1717','2545','2551','2487','1720','1426')
    order by nombre ";
    $res=$cnn2->Execute($sql);//pg_query($cnn,$sql);
    //$row=pg_fetch_array($result);
    //echo $sql;
	  //echo $res->fields[1];    
	  $x=0;
    while (!$res->EOF)//while ($r = pg_fetch_row($result)) 
    { 
      $vec[$x]=utf8_encode($res->fields[1]);
	    $x++;
	    $res->moveNext();	
	    //echo "loginuser: $row[0]  password: $row[1] loginregistro: $row[2] fechasys: $row[3]";
      //echo "\n\n";
    }
    return $vec;
  }
  
  function sumar($operando1,$operando2){
      return $operando1+$operando2;
  }
 
  function restar($operando1,$operando2)
  {
      return $operando1-$operando2;  
  }
  
  $server->AddFunction("consultar");
  $server->AddFunction("sumar");
  $server->AddFunction("restar");
  $server->handle();*/
  
  //header("Content-type: text/xml");
  //require_once "lib/nusoap/nusoap.php";
      
  /*function getProd($categoria) 
  {
    if ($categoria == "libros") 
	  {
	    $sql="select t.codigo,t.nombre from ubicacionespoliticas u, territorios t  where u.trtrio_codigo_pertenece_a='22' and u.trtrio_codigo=t.codigo 
      union all
      select t.codigo,t.nombre from territorios t  where t.codigo in ('1116','1484','1731','1715','1733','1092','1719','2547','1717','2545','2551','2487','1720','1426')
      order by nombre ";
      $res=$cnn2->Execute($sql);//pg_query($cnn,$sql);
      //$row=pg_fetch_array($result);
      //echo $sql;
	    //echo $res->fields[1];    
	    $x=0;
	    $datos2 = array();
      while (!$res->EOF)//while ($r = pg_fetch_row($result)) 
      { 
	      if($x==0)
		    {
          $datos='"'.$res->fields[1].'"';
	    	}
		    else
		    {
		      $datos=$datos.',"'.$res->fields[1].'"';	
	      }
		    //$datos2[$x]= utf8_decode($res->fields[1]);
		    array_push($datos2, array('id' => intval($res->fields[0]), 'name' => $res->fields[1]));
		    $x++;
	      $res->moveNext();	
	      //echo "loginuser: $row[0]  password: $row[1] loginregistro: $row[2] fechasys: $row[3]";
        //echo "\n\n";
      }	
	  	//echo $datos;
		  return array("result" => true, "notary_array" => $datos2);
      //return join(",", $datos2);
	    /*array(utf8_encode($datos)
                )
		  "El señor de los anillos",
                "Los límites de la Fundación",
                "The Rails Way"*/
      /*    }
      else 
    	{
      return "No hay productos de esta categoria";
    }
  }
      
  $server = new soap_server();
  $server->configureWSDL("consulta_cliente", "http://10.1.1.4:8090/consulta_cliente");//urn:consulta_cliente
  $server->soap_defencoding = 'utf-8';
  
  $server->register("getProd",
  array("categoria" => "xsd:string"),
  array("return" => "xsd:string"),
        "http://10.1.1.4:8090/consulta_cliente",
        "urn:consulta_cliente#getProd",
        "rpc",
        "encoded",
        "Nos da una lista de productos de cada categoría");
      
  $server->service($HTTP_RAW_POST_DATA);*/
  
  
  //ejemplo 2
  
  /*// Complex Array Keys and Types ++++++++++++++++++++++++++++++++++++++++++
  $server->wsdl->addComplexType('notaryConnectionData','complexType','struct','all','',
        array(
                'id' => array('name'=>'id','type'=>'xsd:int'),
                'name' => array('name'=>'name','type'=>'xsd:string')
        )
  );
  // *************************************************************************

  // Complex Array ++++++++++++++++++++++++++++++++++++++++++
  $server->wsdl->addComplexType('notaryConnectionArray','complexType','array','','SOAP-ENC:Array',
        array(),
        array(
            array(
                'ref' => 'SOAP-ENC:arrayType',
                'wsdl:arrayType' => 'tns:notaryConnectionData[]'
            )
        )
  );
  // *************************************************************************

  // This is where I register my method and use the notaryConnectionArray
  $server->register("listNotaryConnections",
                array('token' => 'xsd:string'),
                array('result' => 'xsd:bool', 'notary_array' => 'tns:notaryConnectionArray', 'error' => 'xsd:string'),
                'urn:closingorder',
                'urn:closingorder#listNotaryConnections',
                'rpc',
                'encoded',
                'Use this service to list notaries connected to the signed-in title company.');

  // In my function, I query the data and do:
  $list = array();
  
  $sql="select t.codigo,t.nombre from ubicacionespoliticas u, territorios t  where u.trtrio_codigo_pertenece_a='22' and u.trtrio_codigo=t.codigo 
      union all
      select t.codigo,t.nombre from territorios t  where t.codigo in ('1116','1484','1731','1715','1733','1092','1719','2547','1717','2545','2551','2487','1720','1426')
      order by nombre ";
      $res=$cnn2->Execute($sql);//pg_query($cnn,$sql);
      //$row=pg_fetch_array($result);
      //echo $sql;
	  //echo $res->fields[1];    
	  $x=0;
	  //$datos2 = array();
      while (!$res->EOF)//while ($r = pg_fetch_row($result)) 
      { 	    
		//$datos2[$x]= utf8_decode($res->fields[1]);
		array_push($list, array('id' => intval($res->fields[0]), 'name' => $res->fields[1]));
		$x++;
	    $res->moveNext();	
	    //echo "loginuser: $row[0]  password: $row[1] loginregistro: $row[2] fechasys: $row[3]";
        //echo "\n\n";
      }	
  /*$results = mysql_query($query);
  while($row = mysql_fetch_assoc($results)) {
    array_push($list, array('id' => intval($row['na_id']), 'name' => $row['agency_name']));
  }*/

  //return array("result" => true, "notary_array" => $list);
  
  //ejemplo 3
  
  /* $server->configureWSDL("consulta_cliente", "http://10.1.1.4:8090/consulta_cliente");//urn:consulta_cliente
  $server->soap_defencoding = 'utf-8';
  
  $server->register("getProd",
  array("categoria" => "xsd:string"),
  array("return" => "xsd:string"),
        "http://10.1.1.4:8090/consulta_cliente",
        "urn:consulta_cliente#getProd",
        "rpc",
        "encoded",
        "Nos da una lista de productos de cada categoría");
      
  $server->service($HTTP_RAW_POST_DATA);*/
  
  /*$sql="select t.codigo,t.nombre from ubicacionespoliticas u, territorios t  where u.trtrio_codigo_pertenece_a='22' and u.trtrio_codigo=t.codigo 
      union all
      select t.codigo,t.nombre from territorios t  where t.codigo in ('1116','1484','1731','1715','1733','1092','1719','2547','1717','2545','2551','2487','1720','1426')
      order by nombre ";
      $res=$cnn2->Execute($sql);//pg_query($cnn,$sql);
      //$row=pg_fetch_array($result);
      echo $sql;
	  //echo $res->fields[1];    
	  $x=0;
	  //$datos2 = array();
      while (!$res->EOF)//while ($r = pg_fetch_row($result)) 
      { 
	    echo $res->fields[1]."<br>";
		//$datos2[$x]= utf8_decode($res->fields[1]);
		//array_push($list, array('id' => intval($res->fields[0]), 'name' => $res->fields[1]));
		$x++;
	    $res->moveNext();	
	    //echo "loginuser: $row[0]  password: $row[1] loginregistro: $row[2] fechasys: $row[3]";
        //echo "\n\n";
  }	*/
  
  //asignamos nombre del archivo log y usuario
  //el usuario es opcional si no se coloca se tomara el nickname por defecto
  $log1= new log('solicitar_certificado_webservice'); //$nom:log esel nombre del archivo a dar al log
  //mensage a egistrar
  $log1->logs("Inicio Proceso Webservice Solicitar Certificado ");

  $server = new soap_server();
  // Initialize WSDL support
  $server->configureWSDL('solicitar_certificado', 'http://190.60.232.235:8090/solicitar_certificado');
  $server->configureWSDL('solicitar_certificado', 'http://190.60.232.235:8090/solicitar_certificado');

  //$server->configureWSDL('solicitar_certificado', 'http://10.1.1.4:8090/solicitar_certificado');  
  // Character encoding
  //$server->soap_defencoding = 'utf-8';
  //$server->encode_utf8 = false;
  //$server->decode_utf8 = false;
  //-------------------------------------------------
  //Register InsertData function
  /*$server->register(
    'InsertData',
    array('FirstName' => 'xsd:string', 'LastName' => 'xsd:string'),
          array('return' =>'xsd:boolean'),
          'urn:MyServicewsdl',
          'urn:MyServicewsdl#InsertData',
          'rpc',
          'literal',
          'Some comments about function'
          );*/
  //Register GetData function
  /*$NAMESPACE='http://10.1.1.4:8090/consulta_cliente';
  $server->wsdl->schemaTargetNamespace = $NAMESPACE;
  $server->wsdl->addComplexType(
            'Person',
            'complexType',
            'struct',
            'all',
            '',
            array(                       
            'personId'=>array('name'=>'personId','type'=>'xsd:int'),
            'firstName'=>array('name'=>'firstName','type'=>'xsd:string'),
            'lastName'=>array('name'=>'lastName','type'=>'xsd:string')
            ));*/
  //$c_s,$cedula,$email,$tipo_c,$tipo_u,$def_e,$def_p,$est_p,$fecha_ini,$fecha_fin
  /*$server->register('solicitar',
                     array('c_s' => 'xsd:string','cedula' => 'xsd:long','email' => 'xsd:string','tipo_c' => 'xsd:string',
                     'tipo_u' => 'xsd:string','def_e' => 'xsd:string','def_p' => 'xsd:string','est_p' => 'xsd:string',
                     'fecha_ini' => 'xsd:string','fecha_fin' => 'xsd:string'),
                     array('return' =>'xsd:string'),
                     'http://10.1.1.4:8090/solicitar_certificado',
                     'urn:solicitar_certificado#solicitar',
                     'rpc',
                     'literal',
                     'Some comments about function 2'
                    );*/
  $server->register('solicitar',
                     array('c_s' => 'xsd:string',
                     'cedula' => 'xsd:long',
                     'email' => 'xsd:string',
                     'tipo_c' => 'xsd:string',
                     'tipo_u' => 'xsd:string',
                     'def_e' => 'xsd:string',
                     'def_p' => 'xsd:string',
                     'est_p' => 'xsd:string',
                     'fecha_ini' => 'xsd:string',
                     'fecha_fin' => 'xsd:string',
                     'tipo_s' => 'xsd:string'),
                     array("return" => 'xsd:string'), // output parameters
                     'http://190.60.232.235:8090/solicitar_certificado',//'ws_wservice', // namespace
                     'urn:solicitar_certificado#solicitar',//false, // soapaction
                     'rpc', // style
                     'encoded', // use
                     'Servicio que retorna si la solicitud es viable o no' // documentation
                    ); 

  $server->register('verificar',
                     array('consecutivo' => 'xsd:string',//'cedula' => 'xsd:long',
                     'hash' => 'xsd:string',
                     'fecha' => 'xsd:string'),
                     array("return" => 'xsd:string'), // output parameters
                     'http://190.60.232.235:8090/solicitar_certificado',//'ws_wservice', // namespace
                     'urn:solicitar_certificado#verificar',//false, // soapaction
                     'rpc', // style
                     'encoded', // use
                     'Servicio que retorna si el Certificado es Original o ha Sido Modificado' // documentation
                    ); 
    
  $server->register('verificar2',
                    array('consecutivo' => 'xsd:string',
                    'fecha' => 'xsd:string'),
                    array("return" => 'xsd:string'), // output parameters
                    'http://190.60.232.235:8090/solicitar_certificado',//'ws_wservice', // namespace
                    'urn:solicitar_certificado#verificar2',//false, // soapaction
                    'rpc', // style
                    'encoded', // use
                    'Servicio que retorna el Certificado Solicitado en pdf' // documentation
                   ); 
  /*$server->register('getPerson',
            array('personId'=>'xsd:int'),
            array('return'=>'tns:Person'),
            $NAMESPACE,
            $NAMESPACE . '#' . 'getPerson',
            'rpc',
            'encoded',
            'Returns a pserson by ID'
  );

  function getPerson($personId)
  {
    if($personId==0||$personId=='') 
	  {
      return new
      soap_fault('Client', '', 'Must supply a person id.');
    }
    else 
	  {
      $aPerson = array(                                                      
      'personId'=>$personId,                                                      
      'firstName'=>'Bart',                                                      
      'lastName'=>'Simpson'                                                      
      );
      return $aPerson;
    }
  }*/

  /*$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ?
  $HTTP_RAW_POST_DATA : '';

  $server->service($HTTP_RAW_POST_DATA);*/
   //-------------------------------------------------
   //Body InsterData function
   /*function InsertData($FirstName, $LastName) 
   {
     $connect = mysql_pconnect("Host","UserName","UserPassword");
     if ($connect) 
	 {
       if(mysql_select_db("DatabaseName", $connect)) 
	   {
         mysql_query("INSERT INTO MyUser SET FirstName='$FirstName', LastName='$LastName'");
         return true;
       }
     }
     return false;
  }*/
   
  //Unauthenticated clients are not allowed to access functionality
  function doAuthenticate() 
  {
    if (isset($_SERVER['PHP_AUTH_USER']) and isset($_SERVER['PHP_AUTH_PW'])) 
	  {
      //if ($_SERVER['PHP_AUTH_USER'] == "fidelizacion" && $_SERVER['PHP_AUTH_PW'] == "7d1a5cf3") es es la real pero puede cambiar
      if ($_SERVER['PHP_AUTH_USER'] == "certificados_consuerte_web123" && $_SERVER['PHP_AUTH_PW'] == "A2XP7NLQ")
        return true;
      else
        return false;
    }
  }
 
  //Body GetData function
  function solicitar($c_s,$cedula,$email,$tipo_c,$tipo_u,$def_e,$def_p,$est_p,$fecha_ini,$fecha_fin,$tipo_s) 
  { 
    global $cnn, $cnn5, $cnn2, $log1;
    $log1->logs("Entra Funcion Solicitar ");
   	  
	  //$fecha2=date("Y-m-d");
	  $list = array();
	  if (!doAuthenticate())
	  {
	    array_push($list, array('Error' => "Invalido Usuario o Password"));
			 
       //return "Invalid username or password";
	    return json_encode($list);
	  }
	  else
	  {  //2015-11-13
	    /*$cnn2 = &ADONewConnection('oci8'); # eg 'mysql' o 'postgres'
       //base de datos real
      $cstr = "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.1.1.12)(PORT=1521))(CONNECT_DATA=(SID=gamble)))";
      $cnn2->Connect($cstr, 'cp86069529', 'esclaflow123');
	    //$sql="select t.codigo,t.nombre from territorios t  where t.codigo in ('1116','1484','1731','1715','1733','1092','1719','2547','1717','2545','2551','2487','1720','1426') order by nombre ";
      $fecha=trim($fecha);*/
	    //echo $fecha;
	   
	    /*array_push($list, array('id' => $fecha, 'vendedor' => "", 'pventa' => "", 'juego' => "", 'producto' => "", 'valor' => "", 'fecha' => "", 'hora' => ""));
	    $rta= new soapval('return', 'xsd:string',$contenido );

       //return $rta; 
	    //return json_encode(array("cmd" => "LOGIN","status" => "LOGINOK","fullname" => "John Smith", "phone" => "0987654321", "credit" => "5600", "session" => "ID24324343434"));
	    return json_encode($list);*/
      $nickname="CP86069529";
      $cedula=trim($cedula);//cedula solicitante
      $email=trim($email);//email del solicitante
      $c_s=trim($c_s);//0=si es el mismo usuario que lo solicita 1= si es un usuario con permiso para solicitar a terceros
      $tipo_u=trim($tipo_u);//0=administrativos 1=asesora solo para empleados
      $tipo_c=trim($tipo_c);//0=empleados 1=proveedores
      $def_e=trim($def_e);//si es ultimo contrato o anterior
      $def_p=trim($def_p);//0,0,0 si es 0 aplica para retefuente,reteica yreteiva
      $est_p=trim($est_p);//0=individual 1=agrupado
      $fecha_ini=trim($fecha_ini);//fecha de inicio del cetificado solo para proveedores
      $fecha_fin=trim($fecha_fin);//fecha de fin del certificado solo para provedores
      $tipo_s=trim($tipo_s);//0=con salario 1=sin salario
      $def_e="0";//solo para el ultimo contranto que alla tenido.
      $zona2=0;
      /*if($tipo_c==0)//empleado
      {
        $rest=" and vinemplea='1'";
      } 
      else//contratista
      {
        $rest=" and vinemplea!='1'";
      } */
      
      /*$sql0="SELECT trim(vincedula),trim(vinnombre),trim(vinemail),trim(vinactivo) 
      from manager.vinculado where trim(vincedula)='$cedula' $rest ";*/
      /*$sql0="SELECT trim(vincedula),trim(vinnombre),trim(vinemail),trim(vinactivo) 
      from manager.vinculado where trim(vincedula)='$cedula'";*/
      $sql0="SELECT trim(vincedula),trim(vinnombre),trim(vinemail),trim(to_char(vinfecret,'YYYY-MM-DD'))
      ,trim(vinemplea)
      from manager.vinculado where trim(vincedula)='$cedula' ";
      //$dato= $sql0."<br>\n";
      $res0=$cnn5->_Execute($sql0);//pg_query($cnn,$sql);  ///and c.fechafinal is null
      //$num_rows=$res0->RecordCount();

      if($res0->RecordCount()!=0)
      {  
        $email2=trim($res0->fields[2]);
        $fecha_r=trim($res0->fields[3]);//fecha retiro
        $vinemplea=trim($res0->fields[4]);//si esta como empleado=1 si no es =0

		    if($vinemplea=="1")
		    {
		      if($fecha_r=="9999-12-31")
		      {
		        $activo="0";//activo	
	  	    }
		      else
		      {
		        $activo="1";//inactivo
		      }
		    }
		    else
		    {
	  	    $sql01="SELECT fechafinal from contratosventa c,    
		      (select max(fechainicio) as fechainicio, prs_documento from contratosventa c,
	        (select max(fechasys) as fecsys from contratosventa where prs_documento='$cedula') r
	        where c.prs_documento='$cedula' and c.fechasys=r.fecsys group by c.prs_documento) r2
	        where c.prs_documento=r2.prs_documento and c.fechainicio=r2.fechainicio ";
		      $res01=$cnn2->_Execute($sql01);//pg_query($cnn,$sql);  ///and c.fechafinal is null
		      //$num_rows=$res0->RecordCount();
				   
		      if($res01->RecordCount()!=0)
		      {
			      if($res01->fields[0]==null)
		      	{
			        $activo="0";//activo
			      }
			      else
			      {			
			        $activo="1";//inactivo	
			      }    	
		      }
		      else
		      {
			      $activo="1";//inactivo   
		      }
		    }			

        //consulta si es empleado y si tiene seleciono la opcion correta de contrato
				$c_oc=0;//si tiene otros contratos 
				if($tipo_c==0)//certificado empreados
				{						  
					if($tipo_u==1)//si selecciono asesora
					{
						if($def_e==0)//contrato actual
						{
							$sql3="SELECT grpvtas_codigo from contratosventa c,
							(SELECT max(fechainicio) as fecha, prs_documento as doc from contratosventa 
							where prs_documento='$cedula' group by prs_documento) f 
							where c.prs_documento=f.doc and c.fechainicio=f.fecha ";
							// echo $sql3."<br>\n\n";
							$res3=$cnn2->_Execute($sql3);//pg_query($cnn,$sql);
				 
							if($res3->RecordCount()!=0)
							{
								$grv=$res3->fields[0];
					
								if($grv==4)
								{
								  $tipo_u="0";//administrativo
									 //echo $tipo_u."<br>\n";
								}
              }
              else
              {
                $tipo_u="0";//administrativo
              } 
						}
						else //if es contrato anterior
						{
							$sql3="SELECT grpvtas_codigo,to_char(fechainicio,'YYYY-MM-DD'),to_char(fechafinal,'YYYY-MM-DD') 
							from contratosventa where prs_documento='$cedula' order by to_char(fechainicio,'YYYY-MM-DD') desc";
							//echo $sql3."<br>\n\n";
							$res3=$cnn2->_Execute($sql3);//pg_query($cnn,$sql);
							$g_v=0;
							$x=0;
							$y=0;
							if($res3->RecordCount()!=0)
							{ 
								while(!$res3->EOF)
								{                        
									if($x==0)
									{
										$g_v=trim($res3->fields[0]);    
									}

									if($g_v==4 && $g_v==trim($res3->fields[0]) && $y==0)//vendedoras con contrato  a nomina
									{
										if($x!=0)
										{
											$d_df=verdias(array(trim($res3->fields[2]),$v_ca[$x-1][1] ));//$d_df=verdias(array(trim($res3->fields[2]),$v_ca[$x-1][1] )); //comparaFecha($v_ca[$x-1][1],trim($res3->fields[2]));  
											//echo "dias entre fechas=".$d_df."<br>\n";
											$d_df=str_replace("+","",$d_df);
											if($d_df<=15 )
											{
												$v_ca[0][1]=trim($res3->fields[1]);//fechaini contrato<
											}
											else
											{	
												$f_ic=trim($res3->fields[1]);//fechaini contrato<												
												$y++;
												break;
											}
										}                   
								 
										if($x==0)
										{
											$v_ca[$x][0]=trim($res3->fields[0]);//grupo ventas
											$v_ca[$x][1]=trim($res3->fields[1]);//fechaini contrato<
											$v_ca[$x][2]=trim($res3->fields[2]);//fechafin contrato<
											$x++;
										}
										//break;
									}
									else if($g_v==58 && $g_v==trim($res3->fields[0]) && $y==0)//comision prestacional
									{
										if($x!=0)
										{
											$d_df=verdias(array(trim($res3->fields[2]),$v_ca[$x-1][1] ));//$d_df=verdias(array(trim($res3->fields[2]),$v_ca[$x-1][1] )); //comparaFecha($v_ca[$x-1][1],trim($res3->fields[2]));  
											//echo "dias entre fechas=".$d_df."<br>\n";
											$d_df=str_replace("+","",$d_df);
											if($d_df<=15 )
											{
												$v_ca[0][1]=trim($res3->fields[1]);//fechaini contrato<
											}
											else
											{
												$f_ic=trim($res3->fields[1]);//fechaini contrato<	
												$y++;
												break;
											}
										}                   
									 
										if($x==0)
										{
											$v_ca[$x][0]=trim($res3->fields[0]);//grupo ventas
											$v_ca[$x][1]=trim($res3->fields[1]);//fechaini contrato<
											$v_ca[$x][2]=trim($res3->fields[2]);//fechafin contrato<
											$x++;
										}   
									}
									else if($g_v!=4 && $g_v!=58 && $g_v==trim($res3->fields[0]) && $y==0)//vendedoras comision
									{
										if($x!=0)
										{
											//echo "fechas calcular dias=".$v_ca[$x-1][1]."--".trim($res3->fields[2])."<br>\n";   
											$d_df=verdias(array(trim($res3->fields[2]),$v_ca[$x-1][1] )); //comparaFecha($v_ca[$x-1][1],trim($res3->fields[2]));  
											//echo "dias entre fechas=".$d_df."<br>\n";
											$d_df=str_replace("+","",$d_df);
											if($d_df<=15 )
											{
												$v_ca[0][1]=trim($res3->fields[1]);//fechaini contrato<
											}
											else
											{
												$f_ic=trim($res3->fields[1]);//fechaini contrato<	
												$y++; 
												break; 
											}
										}                   
									 
										if($x==0)
										{
											$v_ca[$x][0]=trim($res3->fields[0]);//grupo ventas
											$v_ca[$x][1]=trim($res3->fields[1]);//fechaini contrato<
											$v_ca[$x][2]=trim($res3->fields[2]);//fechafin contrato<
											$x++;
										}
									}
									else if($y==0)
									{
										$f_ic=trim($res3->fields[1]);//fechaini contrato<	
										$g_v=trim($res3->fields[0]);//0;
										$y++;  
										break;  
									}                    
								
									$res3->moveNext();
								}
							} 
							//echo "grupo_ventas=".$g_v." y=".$y."<br>\n";
							if($g_v==4 && $y>=1)//asesora nomina
							{
								//echo "asesora nomina";
								$tipo_u="0";
							}
							else if($y>=1)//si tiene otros contratos
							{
								//echo "asesora si tiene otros contratos";
								$c_oc=0;  
							}
							else //no tiene otros contratos
							{
								//echo "asesora no tiene otros contratos";
								$c_oc=1;   
							}
						}//fin contrato anterior
            //}//fin asesoras
            /*else if($tipo_u==2)//otros usuarios que no tienen contrato en gamble se toman como administrativos
				  	{
            $tipo_u="0";
            }//fin otros */
				    //}//fin para consultar si es asesora 

            if($tipo_u==1)//si son asesoras
				    {
              /*$sql01="SELECT t.doc,t.fechai,d.codigo,d.nombre from estadocontratoventas e, datos d,
					    (SELECT c.prs_documento as doc,max(e.fechainicio) as fechai
					    from contratosventa c, estadocontratoventas e,
					    (SELECT max(fechainicio) as fecha, prs_documento as doc from contratosventa 
					    where prs_documento='$cedula' group by prs_documento) f 
					    where c.prs_documento=f.doc and c.fechainicio=f.fecha and c.prs_documento=e.contvta_prs_documento 
					    and c.fechainicio=e.contvta_fechainicio	and c.grpvtas_codigo=e.contvta_grpvtas_codigo  
					    group by c.prs_documento) t
              where t.doc=e.contvta_prs_documento and t.fechai=e.fechainicio and e.dat_dto_codigo=d.codigo ";*/
              /*$sql01="SELECT t.doc,e.fechainicio,d.codigo,d.nombre from estadocontratoventas e, datos d,
					    (SELECT c.prs_documento as doc,c.fechainicio,max(e.fechafinal)  keep (dense_rank first order by e.fechafinal desc nulls first) as fechaf
					    from contratosventa c, estadocontratoventas e,
					    (SELECT max(fechainicio) as fecha, prs_documento as doc from contratosventa 
					    where prs_documento='$cedula' group by prs_documento) f 
					    where c.prs_documento=f.doc and c.fechainicio=f.fecha and c.prs_documento=e.contvta_prs_documento 
					    and c.fechainicio=e.contvta_fechainicio	and c.grpvtas_codigo=e.contvta_grpvtas_codigo  
					    group by c.prs_documento,c.fechainicio) t
					    where t.doc=e.contvta_prs_documento and (case when to_char(t.fechaf) is null then '0' else to_char(t.fechaf) end)=(case when to_char(e.fechafinal) is null then '0' else to_char(e.fechafinal) end)
              and e.dat_dto_codigo=d.codigo and t.fechainicio=e.contvta_fechainicio"; */
              
              $sql01="SELECT t.doc,e.fechainicio,d.codigo,d.nombre 
		          from estadocontratoventas e, datos d,
		          (SELECT c.prs_documento as doc,c.fechainicio,max(e.fechainicio) as fec_ini
		          from contratosventa c, estadocontratoventas e,
		          (SELECT max(fechainicio) as fecha, prs_documento as doc from contratosventa 
		          where prs_documento='$cedula' group by prs_documento) f 
		          where c.prs_documento=f.doc and c.fechainicio=f.fecha and c.prs_documento=e.contvta_prs_documento 
		          and c.fechainicio=e.contvta_fechainicio	and c.grpvtas_codigo=e.contvta_grpvtas_codigo  
		          group by c.prs_documento,c.fechainicio) t
		          where t.doc=e.contvta_prs_documento and e.dat_dto_codigo=d.codigo 
			        and t.fechainicio=e.contvta_fechainicio and t.fec_ini=e.fechainicio
		          ";
              $res01=$cnn2->_Execute($sql01);//pg_query($cnn,$sql);  ///and c.fechafinal is null
              //$num_rows=$res0->RecordCount();
			 
              if($res01->RecordCount()!=0)
              { 
						    $nom_act=trim($res01->fields[3]);
						    if(trim($res01->fields[2])==1) //activo
					    	{
                  $activo="0";
						    } 
						    else if(trim($res01->fields[2])==3) //suspendido la persona no esta a paz y salvo por lo tanto no se le puede generar certificado
					    	{
                  $activo="2";
					    	}
						    else if(trim($res01->fields[2])==90) //terminado
						    {
                  $activo="1";
					  	  }
              }
            }//fin verificacion estado asesoras    
          }//fin datos asesoras          
		    }//fin consulta datos empreados
          //$dato=$activo;
				if($activo!=2)
				{
          if($email==$email2)
          {   //$dato=$email;       
            /*if($c_s==0)
            {
              $rest2=" and tipo_usu='$tipo_u' and def_e='$def_e'";	
            }	
            else
            {*/
            if($tipo_c==0)
            {	
          	  $rest2=" and tipo_usu='$tipo_u' and def_e='$def_e' and lleva_salario='$tipo_s'";
            }
            else if($tipo_c==1)//proeveedores
            {
              $rest2=" and def_p='$def_p' and est_p='$est_p' and fecha_ini='$fecha_ini' and fecha_fin='$fecha_fin'  ";	
            }
            else if($tipo_c==2)//ganador premios
            {
              $rest2=" and fecha_ini='$fecha_ini' and fecha_fin='$fecha_fin'  ";	
            }	
					  //}				
            
						$f_l=date('Y-m');	
						$f_li=$f_l."-01";
						$dia_f=ultimodiames(date('Y'),date('m')); 
						//$f_lim=calcularfecha("-".$dia_f);
            $f_lf=$f_l."-".$dia_f;
            
						$sql = "SELECT id,tipo_cer,tipo_usu,def_p,fecha_ini,fecha_fin,estado
						from certificados_solicitados 
            where cedula='$cedula' and tipo_cer='$tipo_c' and email='$email' and cast(fecha_sys as date)>='$f_li' 
            and cast(fecha_sys as date)<='$f_lf' $rest2 ";
            $dato=$sql."<br>\n";						
            //echo $sql."<br>\n";
	          $res = $cnn->_Execute($sql);//pg_query($cnn,$query);
				
						$c_cr=0; 
            if($res->RecordCount()==0)
						{ 
              $c_cr=0;
						}
						else
						{
							if($res->fields[6]==0 || $res->fields[6]==1)//estado
							{
								$c_cr=1; 	
							}
							else
							{
								$c_cr=0; 	
							}
            }
            //$dato=$c_cr."algo";
            if($c_cr==0)
						{	
              $dat_ins="";      
       	      if($def_e=="" || $def_e==null)
       	      {
                //$def_e=null;
                $dat_ins .=",null";
       	      }
       	      else
       	      {
       	        $dat_ins .=",'".$def_e."'";	
       	      } 
       	      if($def_p=="")
       	      {
                //$def_p=null;
                $dat_ins .=",null";
       	      }
       	      else
       	      {
       	        $dat_ins .=",'".$def_p."'";	
       	      } 
       	      if($est_p=="")
       	      {
                //$est_p=null;
       	        $dat_ins .=",null";
       	      }
       	      else
       	      {
       	        $dat_ins .=",'".$est_p."'";	
       	      } 
       	      if($fecha_ini=="" || $fecha_ini=="undefined")
       	      {
                //$fecha_ini=null;
       	        $dat_ins .=",null";	
       	      } 
       	      else
       	      {
       	        $dat_ins .=",'".$fecha_ini."'";	
       	      } 
       	      if($fecha_fin=="" || $fecha_fin=="undefined")
       	      {
                //$fecha_fin=null;
       	        $dat_ins .=",null";
       	      }
       	      else
       	      {
       	        $dat_ins .=",'".$fecha_fin."'";	
              }
              if($tipo_s=="")//con o sin salario
       	      {
                //$def_p=null;
                $dat_ins .=",null";
       	      }
       	      else
       	      {
       	        $dat_ins .=",'".$tipo_s."'";	
       	      } 
						  //$dato=$c_oc;
						  if($c_oc==0)//control para entrar a hacer la operacion
					  	{	
                $c_i="0";             
                /*if($tipo_c==0)//certificado empreados
	              {
	                if($tipo_u==0)//administrativos
	                {
                    $sql1 = "SELECT p.ubcntrtrio_codigo_compuesto_de as zona from contratopersonas p,
                    (SELECT max(fechainicio) as fecha from contratopersonas where prs_documento='$cedula') t 
                    where p.prs_documento='$cedula' and p.fechainicio=t.fecha";
	                }
	                else//asesoras
	                {
                    $sql1 = "SELECT p.ubcneg_trtrio_codigo as zona from contratosventa p,
                    (SELECT max(fechainicio) as fecha from contratosventa where prs_documento='$cedula ) t 
                    where p.prs_documento='$cedula' and p.fechainicio=t.fecha";
	      
	                } 
	                $res01 = $cnn2->_Execute($sql1);//pg_query($cnn,$query);
                  //se verifica que tenga contrato
                  if($res01->RecordCount()!=0)
                  { 
                    $zona2=trim($res01->fields[0]);
                  
                    $c_i="0"; 

                  }	
                  else //if($tipo==1)no se encontro
                  {
									  $c_i="1";
                    $dato="No se Puede Generar Certificado ya que la Cedula Digitada no Tiene Contratos con la Empresa."; //echo "2";//no tiene contrato
									}										
										
								}
								else//para proveedores
								{
                  $c_i="0";   
								}*/
									
								if($c_i=="0")//control insert
								{    
                  $query = "INSERT INTO certificados_solicitados (usuario,cedula,c_s,tipo_cer,tipo_usu,email,activo,def_e,def_p,est_p,fecha_ini,
	  	            fecha_fin,lleva_salario,estado) 
	                VALUES('$nickname','$cedula','$c_s','$tipo_c','$tipo_u','$email','$activo' $dat_ins,'0') 
	                returning id;";
	                $res = $cnn->_Execute($query);//pg_query($cnn,$query);
	    	
	                //echo $query;
	     
	                $id=$res->fields[0];
	         
	                //echo $query;
 	                $log="Se Registro la Solicitud de Certificado del Empleado: ".$cedula;
	     	
	                /*$query = "INSERT INTO log_general (tipo,descripcion,id_dato,usuario,ip,fecha) VALUES 
	                ('244','$log','$id','$nickname','$REMOTE_ADDR',current_timestamp)";*/
			$host_remoto=$_SERVER['REMOTE_ADDR'];
			 $log1->logs("host_remoto: ".$host_remoto);
			$query = "INSERT INTO log_general (tipo,descripcion,id_dato,usuario,ip,fecha) VALUES 
	                ('244','$log','$id','$nickname','$host_remoto',current_timestamp)";
			
			
                  $res1 = $cnn->_Execute($query);//pg_query($cnn,$query);
                  //echo $query;
                  //cambiar para produccion 
                  //$ruta="/var/www/consuertepruebas";//getcwd(); 
                  $ruta="/var/www/php56/consuerteinventarios";
                  //$ruta="../consuerteinventarios";
                  $path = $ruta."/certificados/"; 
                  $ruta2=$ruta."/generar_certificacion.php";
                  $copy=$ruta."/generar_certificacion.sh";
                  //$strImport = 'sh "'.$copy.'"  "'.$bdd.'" "'.$datos_tabla.'" "'.$archivo4.'"';
                  //$strImport ='/usr/bin/nohup sh '.$copy.' "'.$ruta2.'" "'.$nickname.'" "'.$id.'" >> '.$ruta.'/logs/generar_certificacion.log 2>&1 &';
		  //$strImport ='/usr/bin/nohup sh '.$copy.' '.$ruta2.' '.$nickname.' '.$id.' >> '.$ruta.'/logs/generar_certificacion.log 2>&1 &';
                  $strImport ='/usr/bin/nohup /usr/bin/sh '.$copy.' '.$ruta2.' '.$nickname.' '.$id.' >> '.$ruta.'/logs/generar_certificacion.log 2>&1 &';
                  //$strImport ='/usr/bin/nohup sh '.$copy.' "'.$ruta2.'" "'.$nickname.'" "'.$id.'" 2>&1 >> /var/www/consuertepruebas/logs/generar_certificacion.log &';
                  $log1->logs("Ejecuta Solicitud Generar Certificado: ".$strImport);

                  //$query = "UPDATE certificados_solicitados set certificado='$strImport' where id='$id'";
                  //$res1 = $cnn->_Execute($query);
                  $log1->logs("Ejecutamos Shell: ".shell_exec($strImport));	
                  //$dato=$strImport;
                  //$dato=shell_exec($strImport);			 
	                $dato="Certificado Solicitado con Exito, Entre 5 a 30 Minutos Recibira su Certificado en su Email.";//echo "1|".$id;

                  $log1->logs("Fin Solicitar Certificado Webservice.");
                }

						  }
						  else//no tiene contratos anteriores
						  {
							  $dato="No Tiene Contratos Anteriores.";//echo "8";//no tiene contratos anteriores
						  }		
	          }
	          else//if ya tiene una solicitud de certificado activa para este mes
	          {
              $dato= "Ya Tiene un Certificado Generado en Este Mes, Por Favor Solicitelo el Proximo Mes.";//echo "4";
					  }
					  
	        } 
	        else//if los emails no coinciden
	        {
            $dato= "El Email Digitado No Coincide con el de la Base de Datos.";//"5";
					}
				}//fin si estado contrato es diferente de 2
				else
				{
          $dato= "Su Contrato se Encuentra ".$nom_act." Por tal Motivo no se Puede Generar el Certificado."; // "9|".$nom_act; 
        }	
      }
      else//no se encondro la cedula o nit en manager
      {
        $dato= "No se Encontro la Cedula o Nit en la Base de Datos, Por Favor Verifiquelo.";//"6";
      } 
      //array_push($list, array('id' => $res->fields[1].$res->fields[2], 'vendedor' => $res->fields[0], 'pventa' => $res->fields[3], 'juego' => $res->fields[7], 'producto' => $res->fields[10], 'valor' => $res->fields[11], 'fecha' => $res->fields[4], 'hora' => $res->fields[5]));
      array_push($list, array('id' => $dato));
        
      //$rta= new soapval('return', 'xsd:string',$contenido );
	    return json_encode($list);
	    /*$controlfecha=comparaFecha($fecha,$fecha2);
	    if($controlfecha==0)
	    {
		    $sql="select f.prs_documento,f.serie,f.numero,f.ubcneg_trtrio_codigo,f.fecha,f.hora, f.codigo_tipojuego,j.nombre, d.prdlot_ltry_codigo, d.prdlot_product_codigo,p.nombre, d.valorpagado,d.numeroapostado  
         from formularios f, detalleformularios d , tipojuegos j, productos p
         where  f.cliente='$cedula' and f.fecha=to_date('$fecha', 'YYYY-MM-DD') and f.serie=d.frm_serie and f.numero=d.frm_numero and f.dat_dto_codla_elaboracion_para!='18'
         and f.codigo_tipojuego=j.codigo and d.prdlot_product_codigo=p.codigo and f.codigo_tipojuego in ('1','11','33','34','35','36','37','38') order by f.fecha,f.hora";
	       
	    }
	 
	    $res=$cnn2->Execute($sql);//pg_query($cnn,$sql);
       //$row=pg_fetch_array($result);*/
       //echo $sql;
	    //echo $res->fields[1];    
	    /*$x=0;
	    //$datos2 = array();*/
	    /*$contenido='<?xml version="1.0" encoding="iso-8859-1"?> <afiliado>'; */
	   
      /*while (!$res->EOF)//while ($r = pg_fetch_row($result)) 
      { 
	      //echo $res->fields[1];
		    //echo $res->fields[1];
		    //$datos2[$x]= utf8_decode($res->fields[1]);
		    //return $res->fields[0]."-".$res->fields[1];
		    //array_push($list, array('id' => intval($res->fields[0]), 'name' => $res->fields[1]));
	      array_push($list, array('id' => $res->fields[1].$res->fields[2], 'vendedor' => $res->fields[0], 'pventa' => $res->fields[3], 'juego' => $res->fields[7], 'producto' => $res->fields[10], 'valor' => $res->fields[11], 'fecha' => $res->fields[4], 'hora' => $res->fields[5]));
		    /*$contenido.=' <miembro>';
         $contenido.='<id>'.$res->fields[0].'</id>';//'.$res->fields[0].'
         $contenido.='<nombre>'.$res->fields[1].'</nombre>';//'.$res->fields[1].'
         //$contenido.='<parentesco>'.$rowAfiliado["pare_descripcion"].'</parentesco>';
         $contenido.=' </miembro>';*/
	    /*  $x++;
	      $res->moveNext();	
	      //echo "loginuser: $row[0]  password: $row[1] loginregistro: $row[2] fechasys: $row[3]";
         //echo "\n\n";
      }	   
	    //$contenido.=' </afiliado>';
      //$contenido=base64_encode($contenido);
      $rta= new soapval('return', 'xsd:string',$contenido );

      //return $rta; 
	    //return json_encode(array("cmd" => "LOGIN","status" => "LOGINOK","fullname" => "John Smith", "phone" => "0987654321", "credit" => "5600", "session" => "ID24324343434"));
	    return json_encode($list);*/
	  }//fin registro
	  //cd log	return array("result" => true, "notary_array" => $list);
	  /*            return join(",", array("El señor de los anillos",
                "Los límites de la Fundación",
                "The Rails Way"));*/
	    /*array(utf8_encode($datos)
                )
		"El señor de los anillos",
                "Los límites de la Fundación",
                "The Rails Way"*/
					
  }//fin consulta
  //-------------------------------------------------
  
  function verificar($consecutivo,$hash,$fecha)//cedula,hash pdf y fecha de creacion 
  { 
    global $cnn, $cnn5, $cnn2;      
    //$fecha2=date("Y-m-d");
    $list = array();
    if (!doAuthenticate())
    {
      array_push($list, array('Error' => "Invalido Usuario o Password"));
       
       //return "Invalid username or password";
      return json_encode($list);
    }
    else
    {  //2015-11-13
      $consecutivo=mayus(utf8_decode(trim($consecutivo)));//$cedula=trim($cedula);
      $hash=trim($hash);
      $fecha=trim($fecha);
      /*$sql1 = "SELECT hash_certificado,estado from certificados_solicitados 
      where cedula='$cedula' and cast(fecha_sys as date)='$fecha'";*/

      $sql1 = "SELECT hash_certificado,estado from certificados_solicitados 
      where consecutivo='$consecutivo' and cast(fecha_sys as date)='$fecha'";
      //echo $sql1."<br>\n"; 
      $res01 = $cnn->_Execute($sql1);//pg_query($cnn,$query);
                
      if($res01->RecordCount()!=0)
      { 
        $hash_bd=trim($res01->fields[0]);
        $est=trim($res01->fields[1]);

        if($hash_bd==$hash)
        {
          $dato="Se Confirma Que su Certificado no ha Sufrido Modificaciones y es una Copia Exata del Original Emitido por Consuerte. ";//1;//los hash coinciden
        }
        else if($est==1)
        {
          $dato="Su Certificado no Coincide con el Certificado Original o ha Sido Alterado.";//2;//son diferentes pero si se genero el certificado
        }
        else
        {
          $dato="No Se Genero el Certificado, Comuniquese con Soporte para Registrar el Caso. ";//3;//son diferentes pero no se genero el certificado
        }
      } 
      else
      {
        $dato="No se Encontro el Certificado Solicitado, Por Favor Verifique los Datos Suministrados.";//4;//no se encontro
      }  
 

      array_push($list, array('id' => $dato));
        
      //$rta= new soapval('return', 'xsd:string',$contenido );
      return json_encode($list);
    }
  } 
  //permite descargar el pdf del certificado
  function verificar2($consecutivo,$fecha) 
  { 
    global $cnn, $cnn5, $cnn2;      
    //$fecha2=date("Y-m-d");
    $list = array();
    if (!doAuthenticate())
    {
      array_push($list, array('Error' => "Invalido Usuario o Password"));
       
       //return "Invalid username or password";
      return json_encode($list);
    }
    else
    {  //2015-11-13

      $consecutivo=mayus(utf8_decode(trim($consecutivo)));
      $fecha=trim($fecha);
      //cambiar para produccion 
      //$ruta="/var/www/consuertepruebas";//getcwd(); 
      $ruta="/var/www/php56/consuerteinventarios";
      //$ruta="../consuerteinventarios";
      $path = $ruta."/certificados/"; 
      $sql1 = "SELECT certificado,estado from certificados_solicitados 
      where consecutivo='$consecutivo' and cast(fecha_sys as date)='$fecha'";
      //echo $sql1."<br>\n"; 
      $res01 = $cnn->_Execute($sql1);//pg_query($cnn,$query);
                
      $base64="";
      if($res01->RecordCount()!=0)
      { 
        $cer=trim($res01->fields[0]);
        $est=trim($res01->fields[1]);

        if($est==1)
        {

          $dato="Certificado Encontrado con Exito.";//1;//certificado generado
          $data = file_get_contents($path.$cer);
          $base64 = base64_encode($data);
  
        }
        else
        {
          $dato="El Certificado no se Genero, Por favor Reporte en Soporte el Caso.";//2;//no se genero el certificado
        }
      } 
      else
      {
        $dato="No se Encontro el Certificado Solicitado, Por Favor Verifique los Datos Subministrados.";//3;//no se encontro
      }   

      array_push($list, array('id' => $dato,'nom'=>$cer,'archivo'=>$base64));
        
      //$rta= new soapval('return', 'xsd:string',$contenido );
      return json_encode($list);
    }
  }
  //para php5.3
  if($ver_php<'5.6') 
  {
    $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
    $server->service($HTTP_RAW_POST_DATA);
  }
  else //para php 5.6 y php 7.4
  {
    $server->service(file_get_contents("php://input"));
  }

   /*class Soap_wrapper extends soap_server
   {
      var $script_uri;
       function __construct()
        {
            //$page = $_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
            //$page = substr($page,0,strrpos($page,'/'));
           $this->script_uri= 'http://10.1.1.4:8090/consulta_cliente';//'http://'.$page; 
          parent::nusoap_server();  
          $this->configureWSDL('consulta_cliente',$this->script_uri);//'urn:'
          $this->wsdl->addComplexType("ArrayOfString",
                 "complexType",
                 "array",
                 "",
                 "SOAP-ENC:Array",
                 array(),
                 array(array("ref"=>"SOAP-ENC:arrayType","wsdl:arrayType"=>"xsd:string[]")),
                 "xsd:string"); 
 
          $this->wsdl->schemaTargetNamespace=$this->script_uri;
          $this->register('authenticate',
                    array('client'=>'xsd:string','key'=>'xsd:string'),
                    array('return'=>'xsd:string'),
                    'urn:'.$this->script_uri,
                    'urn:'.$this->script_uri.'#authenticate'
 
                    );
		}
       function service_start($data)
        {
 
           if(!empty($data))
		   {
 
                /***********parsing header for authentication********/
              //parse header for username and password    
	/*		  $parser = new nusoap_parser($data);
           /*$AuthenticationInfo = array();
           $doc = new DOMDocument("1.0","utf8");
           $doc->loadXML($data);
           $xpath = new DOMXpath($doc);
           $usernameList = $xpath->query("//username");
           if($usernameList->length>0)
		   {
             $AuthenticationInfo["username"] = $usernameList->item(0)->nodeValue;
           }
           $passwordList = $xpath->query("//password");
           if($passwordList->length>0)
		   {
             $AuthenticationInfo["password"] = $passwordList->item(0)->nodeValue;
           } */
           /*********************************************************/  
 
          /*$this->validateUser($authHeaders); // function to validate the user
 
            $this->service($data); */
			
	/*		if( $this->validateUser($authHeaders) )
			{
              $this->service($data);
            }
          }
          else
		  {
            $this->service($data); 
		  }
        }
       function validateUser($auth)
        {
           if(!empty($auth[username])&& !empty($auth[password]))
                authenticate($auth[username],$auth[password]); //this function check the authentication from db
           else  $server->fault(401,'Authentication failed!');           
        }
 
  }*/
  
  /*require_once('soap_wrapper.cls.php');
  
  $server = new Soap_wrapper();
  
  
 /*********************************************************/ 
 /*$HTTP_RAW_POST_DATA=isset($HTTP_RAW_POST_DATA)?$HTTP_RAW_POST_DATA:'';
 $server->service_start($HTTP_RAW_POST_DATA);*/
  

?>
