public function sefazCCe($chNFe = '', $tpAmb = '2', $xCorrecao = '', $nSeqEvento = 1, &$aRetorno = array())
{
//limpa chave
$chNFe = preg_replace('/[^0-9]/', '', $chNFe);
$xCorrecao = Strings::cleanString($xCorrecao);
$nSeqEvento = (int) $nSeqEvento;
if (strlen($chNFe) != 44) {
$msg = "A chave deve ter 44 dígitos!!";
throw new Exception\InvalidArgumentException($msg);
}
if (strlen($xCorrecao) < 15 || strlen($xCorrecao) > 1000) {
$msg = "A correção deve ter entre 15 e 1000 caracteres!!";
throw new Exception\InvalidArgumentException($msg);
}
if ($nSeqEvento < 1 || $nSeqEvento > 20) {
$msg = "O número sequencial do evento deve ser entre 1 e 20!!";
throw new Exception\InvalidArgumentException($msg);
}
if ($tpAmb == '') {
$tpAmb = $this->aConfig['tpAmb'];
}
$siglaUF = $this->zGetSigla(substr($chNFe, 0, 2));
$tpEvento = '110110';
$xCondUso = "A Carta de Correcao e disciplinada pelo paragrafo " . "1o-A do art. 7o do Convenio S/N, de 15 de dezembro de 1970 " . "e pode ser utilizada para regularizacao de erro ocorrido " . "na emissao de documento fiscal, desde que o erro nao esteja " . "relacionado com: I - as variaveis que determinam o valor " . "do imposto tais como: base de calculo, aliquota, diferenca " . "de preco, quantidade, valor da operacao ou da prestacao; " . "II - a correcao de dados cadastrais que implique mudanca " . "do remetente ou do destinatario; " . "III - a data de emissao ou de saida.";
$tagAdic = "<xCorrecao>{$xCorrecao}</xCorrecao><xCondUso>{$xCondUso}</xCondUso>";
$retorno = $this->zSefazEvento($siglaUF, $chNFe, $tpAmb, $tpEvento, $nSeqEvento, $tagAdic);
$aRetorno = $this->aLastRetEvent;
return $retorno;
}