WSCOMUN  2.0.0
Web Services Comunes para PHP/GVHidra
objCatastro.php
1 <?php
2 namespace WSCOMUN\CATASTRO;
3 use SoapVar;
4 use DateTime;
5 use ArrayObject;
6 
8 {
12  private static $NAMESPACE_SCSP_ESPECIFICO = 'http://intermediacion.redsara.es/scsp/esquemas/datosespecificos';
13  private static $NAMESPACE_CAT_PET = 'http://intermediacion.redsara.es/scsp/esquemas/V3/peticion';
14  private static $NAMESPACE_CAT_SR = 'http://intermediacion.redsara.es/scsp/esquemas/V3/solicitudRespuesta';
15 
16  private $nifEmisor = null;
17  private $nombreEmisor = null;
18  public function setEmisor($nif, $nombre) {
19  $this->nifEmisor = $nif;
20  $this->nombreEmisor = $nombre;
21  }
22 
23  private $codProcedimiento = null;
24  private $nombreProcedimiento = null;
25  public function setProcedimiento($codigo, $nombre) {
26  $this->codProcedimiento = $codigo;
27  $this->nombreProcedimiento = $nombre;
28  }
29 
30  private $nombreCompletoFuncionario = null;
31  private $nifFuncionario = null;
32  public function setFuncionario($nombreCompleto, $nif) {
33  $this->nombreCompletoFuncionario = $nombreCompleto;
34  $this->nifFuncionario = $nif;
35  }
36 
37  private $tipoDocumentacion = null;
38  private $documentacion = null;
39  private $nombreCompleto = null;
40  private $nombre = null;
41  private $apellido1 = null;
42  private $apellido2 = null;
43  public function setTitular($tipoDocumentacion, $documentacion, $nombreCompleto = null, $nombre = null, $apellido1 = null, $apellido2 = null) {
44  $this->tipoDocumentacion = $tipoDocumentacion;
45  $this->documentacion = $documentacion;
46  $this->nombreCompleto = $nombreCompleto;
47  $this->nombre = $nombre;
48  $this->apellido1 = $apellido1;
49  $this->apellido2 = $apellido2;
50  }
51 
52  private $identificadorSolicitante = null;
53  private $nombreSolicitante = null;
54  private $unidadTramitadora = null;
55  private $finalidad = null;
56  private $consentimiento = null;
57  private $idExpediente = null;
58  public function setSolicitante($identificadorSolicitante, $nombreSolicitante, $consentimiento, $finalidad, $unidadTramitadora = null, $idExpediente = null) {
59  $this->identificadorSolicitante = $identificadorSolicitante;
60  $this->nombreSolicitante = $nombreSolicitante;
61  $this->consentimiento = $consentimiento;
62  $this->finalidad = $finalidad;
63  $this->unidadTramitadora = $unidadTramitadora;
64  $this->idExpediente = $idExpediente;
65  }
66 
67  private $oEspecifico = null;
68  public function setEspecifico($oEspecifico) {
69  $this->oEspecifico = $oEspecifico;
70  }
71 
72  public function duplicarCabecera() {
73  $oClon = new objSolicitudTransmision();
74  $oClon->setEmisor($this->nifEmisor, $this->nombreEmisor);
75  $oClon->setProcedimiento($this->codProcedimiento, $this->nombreProcedimiento);
76  $oClon->setFuncionario($this->nombreCompletoFuncionario, $this->nifFuncionario);
77  $oClon->setTitular($this->tipoDocumentacion, $this->documentacion, $this->nombreCompleto, $this->nombre, $this->apellido1, $this->apellido2);
78  $oClon->setSolicitante($this->identificadorSolicitante, $this->nombreSolicitante, $this->consentimiento, $this->finalidad, $this->unidadTramitadora, $this->idExpediente);
79 
80  return $oClon;
81  }
82 
83  public function toSoap($IdPeticion, $CodigoCertificado, $numParcial = null)
84  {
85  // TODO: Sincrona
86  $IdSolicitud = $IdPeticion;
87  if (!is_null($numParcial)) {
88  $IdSolicitud = $IdPeticion . '_' . $numParcial;
89  }
90 
91  // $CodigoCertificado debería ser auto-generado
92  // IdentificadorSolicitante = (Sugerido) CODxxxxxx
93  // Consentimiento = Si | Ley
94  // TipoDocumentacion = NIF | CIF | DNI | Pasaporte | NIE
95 
96  // Emisor
97  $EmisorWSRequest = new ArrayObject();
98  $EmisorWSRequest->append(new SoapVar($this->nifEmisor, XSD_STRING, null, null,'NifEmisor', self::$NAMESPACE_CAT_PET));
99  $EmisorWSRequest->append(new SoapVar($this->nombreEmisor, XSD_STRING, null, null,'NombreEmisor', self::$NAMESPACE_CAT_PET));
100 
101  // Procedimiento
102  $ProcedimientoWSRequest = new ArrayObject();
103  $ProcedimientoWSRequest->append(new SoapVar($this->codProcedimiento, XSD_STRING, null, null,'CodProcedimiento', self::$NAMESPACE_CAT_PET));
104  $ProcedimientoWSRequest->append(new SoapVar($this->nombreProcedimiento, XSD_STRING, null, null,'NombreProcedimiento', self::$NAMESPACE_CAT_PET));
105 
106  // Funcionario
107  $FuncionarioWSRequest = new ArrayObject();
108  $FuncionarioWSRequest->append(new SoapVar($this->nombreCompletoFuncionario, XSD_STRING, null, null,'NombreCompletoFuncionario', self::$NAMESPACE_CAT_PET));
109  $FuncionarioWSRequest->append(new SoapVar($this->nifFuncionario, XSD_STRING, null, null,'NifFuncionario', self::$NAMESPACE_CAT_PET));
110 
111  // Solicitante
112  $SolicitanteWSRequest = new ArrayObject();
113  $SolicitanteWSRequest->append(new SoapVar($this->identificadorSolicitante, XSD_STRING, null, null,'IdentificadorSolicitante', self::$NAMESPACE_CAT_PET));
114  $SolicitanteWSRequest->append(new SoapVar($this->nombreSolicitante, XSD_STRING, null, null,'NombreSolicitante', self::$NAMESPACE_CAT_PET));
115  if (!is_null($this->unidadTramitadora)) {
116  $SolicitanteWSRequest->append(new SoapVar($this->unidadTramitadora, XSD_STRING, null, null,'UnidadTramitadora', self::$NAMESPACE_CAT_PET));
117  }
118  $SolicitanteWSRequest->append(new SoapVar($ProcedimientoWSRequest, SOAP_ENC_OBJECT,null,null,'Procedimiento', self::$NAMESPACE_CAT_PET));
119  $SolicitanteWSRequest->append(new SoapVar($this->finalidad, XSD_STRING, null, null,'Finalidad', self::$NAMESPACE_CAT_PET));
120  $SolicitanteWSRequest->append(new SoapVar($this->consentimiento, XSD_STRING, null, null,'Consentimiento', self::$NAMESPACE_CAT_PET));
121  $SolicitanteWSRequest->append(new SoapVar($FuncionarioWSRequest, SOAP_ENC_OBJECT,null,null,'Funcionario', self::$NAMESPACE_CAT_PET));
122  if (!is_null($this->idExpediente)) {
123  $SolicitanteWSRequest->append(new SoapVar($this->idExpediente, XSD_STRING, null, null,'IdExpediente', self::$NAMESPACE_CAT_PET));
124  }
125 
126  // Titular
127  $TitularWSRequest = new ArrayObject();
128  $TitularWSRequest->append(new SoapVar($this->tipoDocumentacion, XSD_STRING, null, null,'TipoDocumentacion', self::$NAMESPACE_CAT_PET));
129  $TitularWSRequest->append(new SoapVar($this->documentacion, XSD_STRING, null, null,'Documentacion', self::$NAMESPACE_CAT_PET));
130  if (!is_null($this->nombreCompleto)) {
131  $TitularWSRequest->append(new SoapVar($this->nombreCompleto, XSD_STRING, null, null,'NombreCompleto', self::$NAMESPACE_CAT_PET));
132  }
133  if (!is_null($this->nombre)) {
134  $TitularWSRequest->append(new SoapVar($this->nombre, XSD_STRING, null, null,'Nombre', self::$NAMESPACE_CAT_PET));
135  }
136  if (!is_null($this->apellido1)) {
137  $TitularWSRequest->append(new SoapVar($this->apellido1, XSD_STRING, null, null,'Apellido1', self::$NAMESPACE_CAT_PET));
138  }
139  if (!is_null($this->apellido2)) {
140  $TitularWSRequest->append(new SoapVar($this->apellido2, XSD_STRING, null, null,'Apellido2', self::$NAMESPACE_CAT_PET));
141  }
142 
143  // Transmision
144  $TransmisionWSRequest = new ArrayObject();
145  $TransmisionWSRequest->append(new SoapVar($CodigoCertificado, XSD_STRING, null, null,'CodigoCertificado', self::$NAMESPACE_CAT_PET));
146  $TransmisionWSRequest->append(new SoapVar($IdSolicitud, XSD_STRING, null, null,'IdSolicitud', self::$NAMESPACE_CAT_PET));
147 
148  // DatosGenericos
149  $DatosGenericosWSRequest = new ArrayObject();
150  $DatosGenericosWSRequest->append(new SoapVar($EmisorWSRequest, SOAP_ENC_OBJECT,null,null,'Emisor', self::$NAMESPACE_CAT_PET));
151  $DatosGenericosWSRequest->append(new SoapVar($SolicitanteWSRequest, SOAP_ENC_OBJECT,null,null,'Solicitante', self::$NAMESPACE_CAT_PET));
152  $DatosGenericosWSRequest->append(new SoapVar($TitularWSRequest, SOAP_ENC_OBJECT,null,null,'Titular', self::$NAMESPACE_CAT_PET));
153  $DatosGenericosWSRequest->append(new SoapVar($TransmisionWSRequest, SOAP_ENC_OBJECT,null,null,'Transmision', self::$NAMESPACE_CAT_PET));
154 
155  // SolicitudTransmision
156  $SolicitudTransmisionWSRequest = new ArrayObject();
157  $SolicitudTransmisionWSRequest->append(new SoapVar($DatosGenericosWSRequest, SOAP_ENC_OBJECT,null,null,'DatosGenericos', self::$NAMESPACE_CAT_PET));
158 
159 
160  if (!is_null($this->oEspecifico)) {
161  $datosEspecificosSoapVar = $this->oEspecifico->toSoap();
162  $SolicitudTransmisionWSRequest->append($datosEspecificosSoapVar);
163  }
164 
165 
166  // Devuelve la solicitud ya generada
167  return new SoapVar($SolicitudTransmisionWSRequest, SOAP_ENC_OBJECT,null,null,'SolicitudTransmision', self::$NAMESPACE_CAT_PET);
168  }
169 
170 }
171 
172 
174 {
178  private static $NAMESPACE_SCSP_ESPECIFICO = 'http://intermediacion.redsara.es/scsp/esquemas/datosespecificos';
179  private static $NAMESPACE_CAT_PET = 'http://intermediacion.redsara.es/scsp/esquemas/V3/peticion';
180  private static $NAMESPACE_CAT_SR = 'http://intermediacion.redsara.es/scsp/esquemas/V3/solicitudRespuesta';
181 
182 
183  private function _doPeticion($idPeticion, $numElementos, $timestamp, $codigoCertificado, $ns = null) {
184  if (is_null($ns)) {
185  $ns = self::$NAMESPACE_CAT_PET;
186  }
187 
188  // Atributos
189  $AtrWSLvl = new ArrayObject();
190  $AtrWSLvl->append(new SoapVar($idPeticion, XSD_STRING, null, null,'IdPeticion', $ns));
191  $AtrWSLvl->append(new SoapVar($numElementos, XSD_INTEGER , null, null,'NumElementos', $ns));
192  $AtrWSLvl->append(new SoapVar($timestamp->format(DateTime::ATOM), XSD_STRING, null, null,'TimeStamp', $ns));
193  $AtrWSLvl->append(new SoapVar($codigoCertificado, XSD_STRING, null, null,'CodigoCertificado', $ns));
194 
195  return new SoapVar($AtrWSLvl, SOAP_ENC_OBJECT, null, null, 'Atributos', $ns);
196  }
197 
198 
199  public function doGeneral($IdPeticion, $TimeStamp, $CodigoCertificado, $oSolicitud)
200  {
201  // $CodigoCertificado debería ser auto-generado
202  // IdentificadorSolicitante = (Sugerido) CODxxxxxx
203  // Consentimiento = Si | Ley
204  // TipoDocumentacion = NIF | CIF | DNI | Pasaporte | NIE
205 
206  // Atributos
207  $AtrSoapVar = $this->_doPeticion($IdPeticion, 1, $TimeStamp, $CodigoCertificado);
208 
209  // SolicitudTransmision
210  $SolicitudTransmisionSoapVar = $oSolicitud->toSoap($IdPeticion, $CodigoCertificado, null);
211 
212  // Solicitudes
213  $SolicitudesWSRequest = new ArrayObject();
214  $SolicitudesWSRequest->append($SolicitudTransmisionSoapVar);
215 
216  // Body
217  $bodyWSRequest = new ArrayObject();
218  $bodyWSRequest->append($AtrSoapVar);
219  $bodyWSRequest->append(new SoapVar($SolicitudesWSRequest, SOAP_ENC_OBJECT, null, null, 'Solicitudes', self::$NAMESPACE_CAT_PET));
220 
221  return $bodyWSRequest;
222  }//catastro
223 
224 
225 
226  public function catastroBienesPeticion($IdPeticion, $TimeStamp, $CodigoCertificado, $vSolicitudes)
227  {
228  // $CodigoCertificado debería ser auto-generado
229  // IdentificadorSolicitante = (Sugerido) CODxxxxxx
230  // Consentimiento = Si | Ley
231  // TipoDocumentacion = NIF | CIF | DNI | Pasaporte | NIE
232 
233  // Cuenta el numero de solicitudes
234  $NumElementos = count($vSolicitudes);
235 
236  // Solicitudes
237  $SolicitudesWSRequest = new ArrayObject();
238 
239  for ($iPet=0; $iPet < $NumElementos; $iPet++) {
240  $oSolicitud = $vSolicitudes[$iPet];
241 
242  // SolicitudTransmision
243  $SolicitudTransmisionSoapVar = $oSolicitud->toSoap($IdPeticion, $CodigoCertificado, $iPet);
244 
245  // Añade la solicitud de transmision al listado de solicitudes
246  $SolicitudesWSRequest->append($SolicitudTransmisionSoapVar);
247  }
248 
249  // Atributos
250  $AtrSoapVar = $this->_doPeticion($IdPeticion, $NumElementos, $TimeStamp, $CodigoCertificado);
251 
252  // Body
253  $bodyWSRequest = new ArrayObject();
254  $bodyWSRequest->append($AtrSoapVar);
255  $bodyWSRequest->append(new SoapVar($SolicitudesWSRequest, SOAP_ENC_OBJECT,null,null,'Solicitudes', self::$NAMESPACE_CAT_PET));
256 
257  return $bodyWSRequest;
258  }//catastroBienesPeticion
259 
260  public function catastroBienesRespuesta($IdPeticion, $TimeStamp, $CodigoCertificado, $NumElementos)
261  {
262  // Atributos
263  $AtrSoapVar = $this->_doPeticion($IdPeticion, $NumElementos, $TimeStamp, $CodigoCertificado, self::$NAMESPACE_CAT_SR);
264 
265  // Body
266  $bodyWSRequest = new ArrayObject();
267  $bodyWSRequest->append($AtrSoapVar);
268 
269  return $bodyWSRequest;
270  }//catastroBienesRespuesta
271 
272 }
273 
274 
275 
277 
278  private static $NAMESPACE_CAT_ESP = 'http://intermediacion.redsara.es/scsp/esquemas/datosespecificos';
279 
280  private $esRefCatastral = true;
281 
282  private $pc1 = null;
283  private $pc2 = null;
284  private $car = null;
285  private $cc1 = null;
286  private $cc2 = null;
287 
288  private $cp = null;
289  private $cm = null;
290  private $cpo = null;
291  private $cpa = null;
292 
293  private function __construct($esRefCatastral) {
294  $this->esRefCatastral = $esRefCatastral;
295  }
296 
297  static public function referenciaCatastral($pc1, $pc2, $car = null, $cc1 = null, $cc2 = null) {
298  $oEsp = new BienesEspecifico(true);
299 
300  $oEsp->pc1 = $pc1;
301  $oEsp->pc2 = $pc2;
302  $oEsp->car = $car;
303  $oEsp->cc1 = $cc1;
304  $oEsp->cc2 = $cc2;
305 
306  return $oEsp;
307  }
308 
309  static public function referenciaRustica($cp, $cm, $cpo, $cpa = null) {
310  $oEsp = new BienesEspecifico(false);
311 
312  $oEsp->cp = $cp;
313  $oEsp->cm = $cm;
314  $oEsp->cpo = $cpo;
315  $oEsp->cpa = $cpa;
316 
317  return $oEsp;
318  }
319 
320  public function toSoap() {
321  $datosEntradaLvl = null;
322  if ($this->esRefCatastral) {
323  $datosEntradaLvl = $this->_toSoap_RefCatastral();
324  } else {
325  $datosEntradaLvl = $this->_toSoap_RefRustica();
326  }
327 
328  $datosEspLvl = new ArrayObject();
329  $datosEspLvl->append(new SoapVar($datosEntradaLvl, SOAP_ENC_OBJECT, null, null, 'DatosEntrada', self::$NAMESPACE_CAT_ESP));
330 
331  $mainSoapVar = new SoapVar($datosEspLvl, SOAP_ENC_OBJECT, null, null, 'DatosEspecificos', self::$NAMESPACE_CAT_ESP);
332  return $mainSoapVar;
333  /*
334  $mainLvl = new ArrayObject();
335  $mainLvl->append();
336  return $mainLvl;
337  */
338  }
339 
340  private function _toSoap_RefCatastral() {
341  $refCatLvl = new ArrayObject();
342  $refCatLvl->append(new SoapVar($this->pc1, XSD_STRING, null, null, 'pc1', self::$NAMESPACE_CAT_ESP));
343  $refCatLvl->append(new SoapVar($this->pc2, XSD_STRING, null, null, 'pc2', self::$NAMESPACE_CAT_ESP));
344  if (!is_null($this->car)) {
345  $refCatLvl->append(new SoapVar($this->car, XSD_STRING, null, null, 'car', self::$NAMESPACE_CAT_ESP));
346  }
347  if (!is_null($this->cc1)) {
348  $refCatLvl->append(new SoapVar($this->cc1, XSD_STRING, null, null, 'cc1', self::$NAMESPACE_CAT_ESP));
349  }
350  if (!is_null($this->cc2)) {
351  $refCatLvl->append(new SoapVar($this->cc2, XSD_STRING, null, null, 'cc2', self::$NAMESPACE_CAT_ESP));
352  }
353 
354  $datosEntradaLvl = new ArrayObject();
355  $datosEntradaLvl->append(new SoapVar($refCatLvl, SOAP_ENC_OBJECT,null,null, 'referenciaCatastral', self::$NAMESPACE_CAT_ESP));
356 
357  return $datosEntradaLvl;
358  }
359 
360  private function _toSoap_RefRustica() {
361  $loINELvl = new ArrayObject();
362  $loINELvl->append(new SoapVar($this->cp, XSD_STRING, null, null, 'cp', self::$NAMESPACE_CAT_ESP));
363  $loINELvl->append(new SoapVar($this->cm, XSD_STRING, null, null, 'cm', self::$NAMESPACE_CAT_ESP));
364 
365  $cppLvl = new ArrayObject();
366  $cppLvl->append(new SoapVar($this->cpo, XSD_STRING, null, null, 'cpo', self::$NAMESPACE_CAT_ESP));
367  if (!is_null($this->cpa)) {
368  $cppLvl->append(new SoapVar($this->cpa, XSD_STRING, null, null, 'cpa', self::$NAMESPACE_CAT_ESP));
369  }
370 
371  $refRustLvl = new ArrayObject();
372  $refRustLvl->append(new SoapVar($loINELvl, SOAP_ENC_OBJECT, null, null, 'localizacionINE', self::$NAMESPACE_CAT_ESP));
373  $refRustLvl->append(new SoapVar($cppLvl, SOAP_ENC_OBJECT, null, null, 'cpp', self::$NAMESPACE_CAT_ESP));
374 
375  $datosEntradaLvl = new ArrayObject();
376  $datosEntradaLvl->append(new SoapVar($refRustLvl, SOAP_ENC_OBJECT,null,null, 'referenciaRustica', self::$NAMESPACE_CAT_ESP));
377 
378  return $datosEntradaLvl;
379  }
380 
381 }
382 
383 ?>