diff --git a/exemplos/consulta-config-uf.php b/exemplos/consulta-config-uf.php new file mode 100644 index 0000000..a46135e --- /dev/null +++ b/exemplos/consulta-config-uf.php @@ -0,0 +1,84 @@ +setEnvironment(1); +$config->setReceita(100099); +$config->setEstado('PR'); + +$webService = new Sped\Gnre\Webservice\Connection($minhaConfiguracao, $config->getHeaderSoap(), $config->toXml()); + +$consulta = $webService->doRequest($config->soapAction()); +echo '
';
+echo htmlspecialchars($consulta);
diff --git a/lib/Sped/Gnre/Sefaz/ConfigUf.php b/lib/Sped/Gnre/Sefaz/ConfigUf.php
new file mode 100644
index 0000000..116ba3a
--- /dev/null
+++ b/lib/Sped/Gnre/Sefaz/ConfigUf.php
@@ -0,0 +1,127 @@
+
+ * @license     http://www.gnu.org/licenses/gpl-howto.html GPL
+ * @version     1.0.0
+ */
+class ConfigUf extends ConsultaConfigUf
+{
+    
+    /**
+     * @var int
+     */
+    private $ambienteDeTeste = false;
+
+    /**
+     * Retorna o header da requisição SOAP
+     * @return array
+     */
+    public function getHeaderSoap()
+    {
+        $action = $this->ambienteDeTeste ?
+            'http://www.testegnre.pe.gov.br/webservice/GnreConfigUF' :
+            'http://www.gnre.pe.gov.br/webservice/GnreConfigUF';
+
+        return array(
+            'Content-Type: application/soap+xml;charset=utf-8;action="' . $action . '"',
+            'SOAPAction: consultar'
+        );
+    }
+
+    /**
+     * Retorna a action da requisição SOAP
+     * @return string
+     */
+    public function soapAction()
+    {
+        return $this->ambienteDeTeste ?
+            'https://www.testegnre.pe.gov.br/gnreWS/services/GnreConfigUF' :
+            'https://www.gnre.pe.gov.br/gnreWS/services/GnreConfigUF';
+    }
+
+    /**
+     * Retorna o XML que será enviado na requisição SOAP
+     * @return string
+     */
+    public function toXml()
+    {
+        $gnre = new \DOMDocument('1.0', 'UTF-8');
+        $gnre->formatOutput = false;
+        $gnre->preserveWhiteSpace = false;
+
+        $consulta = $gnre->createElement('TConsultaConfigUf');
+        $consulta->setAttribute('xmlns', 'http://www.gnre.pe.gov.br');
+
+        $ambiente = $gnre->createElement('ambiente', $this->getEnvironment());
+        $estado   = $gnre->createElement('uf', $this->getEstado());
+        $receita  = $gnre->createElement('receita', $this->getReceita());
+
+        $consulta->appendChild($ambiente);
+        $consulta->appendChild($estado);
+        $consulta->appendChild($receita);
+
+        $this->getSoapEnvelop($gnre, $consulta);
+
+        return $gnre->saveXML();
+    }
+
+    /**
+     * Retorna o envelope que sera enviado na requisicao SOAP
+     * @return string
+     */
+    public function getSoapEnvelop($gnre, $consulta)
+    {
+        $soapEnv = $gnre->createElement('soap12:Envelope');
+        $soapEnv->setAttribute('xmlns:soap12', 'http://www.w3.org/2003/05/soap-envelope');
+        $soapEnv->setAttribute('xmlns:gnr', 'http://www.gnre.pe.gov.br/webservice/GnreConfigUF');
+
+        $gnreCabecalhoSoap = $gnre->createElement('gnr:gnreCabecMsg');
+        $gnreCabecalhoSoap->appendChild($gnre->createElement('gnr:versaoDados', '1.00'));
+
+        $soapHeader = $gnre->createElement('soap12:Header');
+        $soapHeader->appendChild($gnreCabecalhoSoap);
+
+        $soapEnv->appendChild($soapHeader);
+        $gnre->appendChild($soapEnv);
+
+        $gnreDadosMsg = $gnre->createElement('gnr:gnreDadosMsg');
+        $gnreDadosMsg->appendChild($consulta);
+
+        $soapBody = $gnre->createElement('soap12:Body');
+        $soapBody->appendChild($gnreDadosMsg);
+
+        $soapEnv->appendChild($soapBody);
+    }
+
+    /**
+     * Define se será utilizado o ambiente de testes ou não
+     * @param boolean $ambiente Ambiente
+     */
+    public function utilizarAmbienteDeTeste($ambiente = false)
+    {
+        $this->ambienteDeTeste = $ambiente;
+    }
+    
+}
diff --git a/lib/Sped/Gnre/Sefaz/ConsultaConfigUf.php b/lib/Sped/Gnre/Sefaz/ConsultaConfigUf.php
new file mode 100644
index 0000000..4f654b0
--- /dev/null
+++ b/lib/Sped/Gnre/Sefaz/ConsultaConfigUf.php
@@ -0,0 +1,105 @@
+
+ * @license     http://www.gnu.org/licenses/gpl-howto.html GPL
+ * @version     1.0.0
+ */
+abstract class ConsultaConfigUf implements ObjetoSefaz
+{
+    
+    /**
+     * O número representa qual ambiente deve ser realizada a consulta
+     * 1 - produção 2 - homologação
+     * @var int
+     */
+    private $environment;
+
+    /**
+     * UF do estado
+     * @var string 
+     */
+    private $estado;
+    
+    /**
+     * Código da receita
+     * @var int
+     */
+    private $receita;
+
+    /**
+     * Retorna a UF que deve ser consultada
+     * @return string
+     */
+    public function getEstado()
+    {
+        return $this->estado;
+    }
+
+    /**
+     * Define a UF que deve ser consultada
+     * @param string $uf UF
+     */
+    public function setEstado($estado)
+    {
+        $this->estado = $estado;
+    }
+
+    /**
+     * Retorna a receita que deve ser consultada
+     * @return int
+     */
+    public function getReceita()
+    {
+        return $this->receita;
+    }
+
+    /**
+     * Define a receita que deve ser consultada
+     * @param int $receita Código da receita
+     */
+    public function setReceita($receita)
+    {
+        $this->receita = $receita;
+    }
+
+    /**
+     * Retorna em qual ambiente deve ser consultado
+     * @return  int
+     */
+    public function getEnvironment()
+    {
+        return $this->environment;
+    }
+
+    /**
+     * Define em qual ambiente deve ser consultado
+     * @param  int  $environment  O número do ambiente que se deseja consultar. 1 = produção - 2 = homologação
+     */
+    public function setEnvironment($environment)
+    {
+        $this->environment = $environment;
+    }
+    
+}