Ejemplo n.º 1
0
 /**
  * Renderiza o pedido em seu respectivo xml e faz
  * a validação com o xsd
  * @param int $versao
  * @param int $remetenteTipoDoc
  * @param string $remetenteCNPJCPF
  * @param string $transacao
  * @param NFePHP\NFSe\Models\Prodam\Rps|array|null $data
  * @return string
  */
 public function render($versao, $remetenteTipoDoc, $remetenteCNPJCPF, $transacao = 'true', $data = null)
 {
     $xmlRPS = '';
     $method = "PedidoEnvioRPS";
     $content = $this->requestFirstPart($method);
     if (is_object($data)) {
         $xmlRPS .= $this->individual($data);
     } elseif (is_array($data)) {
         if (count($data) == 1) {
             $xmlRPS .= $this->individual($data[0]);
         } else {
             $method = "PedidoEnvioLoteRPS";
             $content = $this->requestFirstPart($method);
             $xmlRPS .= $this->lote($data);
         }
     } else {
         return '';
     }
     $content .= Header::render($versao, $remetenteTipoDoc, $remetenteCNPJCPF, null, null, null, null, $this->dtIni, $this->dtFim, null, $this->qtdRPS, $this->valorTotalServicos, $this->valorTotalDeducoes);
     $content .= $xmlRPS . "</{$method}>";
     $content = $this->signer($content, $method, '', [false, false, null, null]);
     $body = $this->clear($content);
     $this->validar($versao, $body, 'Prodam', $method);
     return $body;
 }
Ejemplo n.º 2
0
 /**
  * Renderiza o pedido em seu respectivo xml
  * @param int $versao
  * @param int $remetenteTipoDoc
  * @param string $remetenteCNPJCPF
  * @param string $transacao
  * @param array $chavesNFSe
  * @param array $chavesRPS
  * @return string
  * @throws InvalidArgumentException
  */
 public function render($versao, $remetenteTipoDoc, $remetenteCNPJCPF, $transacao = '', $chavesNFSe = [], $chavesRPS = [])
 {
     $method = "PedidoConsultaNFe";
     $content = $this->requestFirstPart($method);
     $content .= Header::render($versao, $remetenteTipoDoc, $remetenteCNPJCPF, $transacao);
     //minimo 1 e maximo de 50 objetos podem ser consultados
     $total = count($chavesNFSe) + count($chavesRPS);
     if ($total == 0 || $total > 50) {
         $msg = "Na consulta deve haver pelo menos uma chave e no máximo 50. Fornecido: {$total}";
         throw new InvalidArgumentException($msg);
     }
     //para cada chave montar um detalhe
     foreach ($chavesNFSe as $chave) {
         $content .= "<Detalhe xmlns=\"\">";
         $content .= "<ChaveNFe>";
         $content .= "<InscricaoPrestador>" . $chave['prestadorIM'] . "</InscricaoPrestador>";
         $content .= "<NumeroNFe>" . $chave['numeroNFSe'] . "</NumeroNFe>";
         $content .= "</ChaveNFe>";
         $content .= "</Detalhe>";
     }
     foreach ($chavesRPS as $chave) {
         $content .= "<Detalhe xmlns=\"\">";
         $content .= "<ChaveRPS>";
         $content .= "<InscricaoPrestador>" . $chave['prestadorIM'] . "</InscricaoPrestador>";
         $content .= "<SerieRPS>" . $chave['serieRPS'] . "</SerieRPS>";
         $content .= "<NumeroRPS>" . $chave['numeroRPS'] . "</NumeroRPS>";
         $content .= "</ChaveRPS>";
         $content .= "</Detalhe>";
     }
     $content .= "</{$method}>";
     $content = $this->signer($content, $method, '', [false, false, null, null]);
     $body = $this->clear($content);
     $this->validar($versao, $body, 'Prodam', $method);
     return $body;
 }
Ejemplo n.º 3
0
 /**
  * Renderiza o pedido em seu respectivo xml e faz a validação com o XSD
  * @param int $versao
  * @param int $remetenteTipoDoc
  * @param string $remetenteCNPJCPF
  * @param string $transacao
  * @param string $cnpj
  * @param string $cpf
  * @param string $im
  * @param date $dtInicio
  * @param date $dtFim
  * @param int $pagina
  * @return string
  */
 public function render($versao, $remetenteTipoDoc, $remetenteCNPJCPF, $transacao, $cnpj, $cpf, $im, $dtInicio, $dtFim, $pagina)
 {
     $method = "PedidoConsultaNFePeriodo";
     $content = $this->requestFirstPart($method);
     $content .= Header::render($versao, $remetenteTipoDoc, $remetenteCNPJCPF, $transacao, $cnpj, $cpf, $im, $dtInicio, $dtFim, $pagina);
     $content .= "</{$method}>";
     $content = $this->signer($content, $method, '', [false, false, null, null]);
     $body = $this->clear($content);
     $this->validar($versao, $body, 'Prodam', $method);
     return $body;
 }
Ejemplo n.º 4
0
 public function render($versao, $remetenteTipoDoc, $remetenteCNPJCPF, $transacao, $numeroLote)
 {
     $method = "PedidoConsultaLote";
     $content = $this->requestFirstPart($method);
     $content .= Header::render($versao, $remetenteTipoDoc, $remetenteCNPJCPF, $transacao, null, null, null, null, null, null, null, null, null, $numeroLote);
     $content .= "</{$method}>";
     $content = $this->signer($content, $method, '', [false, false, null, null]);
     $body = $this->clear($content);
     $this->validar($versao, $body, 'Prodam', $method);
     return $body;
 }
Ejemplo n.º 5
0
 /**
  * Renderiza o Pedido de Consulta do CNPJ do contribuinte
  * e faz a validação com o xsd
  * @param int $versao
  * @param string $remetenteTipoDoc
  * @param string $remetenteCNPJCPF
  * @param string $transacao
  * @param string $cnpjContribuinte
  * @return string
  */
 public function render($versao, $remetenteTipoDoc, $remetenteCNPJCPF, $transacao, $cnpjContribuinte)
 {
     $method = 'PedidoConsultaCNPJ';
     $content = $this->requestFirstPart("{$method}");
     $content .= Header::render($versao, $remetenteTipoDoc, $remetenteCNPJCPF, $transacao);
     $content .= "<CNPJContribuinte xmlns=\"\">";
     $content .= "<CNPJ>{$cnpjContribuinte}</CNPJ>";
     $content .= "</CNPJContribuinte>";
     $content .= "</{$method}>";
     $content = $this->signer($content, $method, '', [false, false, null, null]);
     $body = $this->clear($content);
     $this->validar($versao, $body, 'Prodam', $method);
     return $body;
 }
Ejemplo n.º 6
0
 /**
  * Renderiza o xml do Pedido de Cancelamento de NFSe
  * e faz a validação com o xsd
  * @param string $versao
  * @param int $remetenteTipoDoc
  * @param string $remetenteCNPJCPF
  * @param string $transacao '', 'true' ou 'false' como string
  * @param string $prestadorIM
  * @param string $numeroNFSe
  * @return string
  */
 public function render($versao, $remetenteTipoDoc, $remetenteCNPJCPF, $transacao, $prestadorIM, $numeroNFSe)
 {
     $method = "PedidoCancelamentoNFe";
     $content = $this->requestFirstPart($method);
     $content .= Header::render($versao, $remetenteTipoDoc, $remetenteCNPJCPF, $transacao);
     if (is_array($numeroNFSe)) {
         if (count($numeroNFSe) > 50) {
             throw InvalidArgumentException("No máximo pode ser solicitado o cancelamento de 50 NFSe por vez.");
         }
         foreach ($numeroNFSe as $num) {
             $content .= $this->detalhe($prestadorIM, $num);
         }
     } else {
         $content .= $this->detalhe($prestadorIM, $numeroNFSe);
     }
     $content .= "</{$method}>";
     $content = $this->signer($content, $method, '', [false, false, null, null]);
     $body = $this->clear($content);
     $this->validar($versao, $body, 'Prodam', $method);
     return $body;
 }