NAME
Net::TinyERP::NotaFiscalServicos - Nota Fiscal de Serviços Eletrônica (NFSe) via TinyERP
MÉTODOS
pesquisar( \%params )
my $res = $tiny->nota_servicos->pesquisar({
dataInicial => '13/02/2018',
dataFinal => '03/11/2018',
});
foreach my $nf (@{ $res->{notas_servico} }) {
say $nf->{nota_servico}{numero};
say $nf->{nota_servico}{nome};
}
Para mais informações sobre os parâmetros, consulte a documentação do 'pesquisar' na API.
obter( $id )
Obtém dados sobre uma Nota de Serviços incluida no sistema do TinyERP (via incluir()
).
my $res = $tiny->nota_servicos->obter( 354040217 );
if ($res->{status} eq 'OK') {
my $nf = $res->{nota_servico};
say $nf->{data_emissao};
say $nf->{cliente}{cep};
say $nf->{servico}{descricao};
}
Para mais informações sobre os parâmetros, consulte a documentação do 'obter' na API.
consultar( $id )
Parecida com obter()
, esse método consulta na prefeitura o andamento de uma Nota de Serviços com situação 4 (Lote não processado). Note que essa consulta é síncrona, então chamadas a essa API podem demorar e até mesmo gerar timeouts, caso o serviço da sua prefeitura esteja com problemas de comunicação com a Tiny.
my $res = $tiny->nota_servicos->consultar( 354040217 );
if ($res->{status} eq 'OK') {
my $nf = $res->{nota_servico};
say $nf->{id};
say $nf->{situacao};
}
Para mais informações sobre os parâmetros, consulte a documentação do 'consultar' na API.
emitir( $id )
emitir( \%params )
Envia a Nota de Serviços selecionada à SEFAZ associada, criando uma NFSe com valor fiscal.
# equivalente a $tiny->nota_servicos->emitir({ id => '354040217' });
my $res = $tiny->nota_fiscal->emitir( '354040217' );
if ($res->{status} eq 'OK') {
my $nf = $res->{nota_servico};
say $nf->{situacao};
say $nf->{link_impressao};
}
Para mais informações sobre os parâmetros, consulte a documentação do 'emitir' na API. Note que a Tiny chama de "enviar", mas para mantermos consistência com a interface de NFe, mantemos o nome "emitir".
incluir( \%params )
Adiciona uma nova Nota de Serviços ao sistema do Tiny. Note que, após a inclusão, você ainda precisa emitir()
a nota para que ela tenha valor fiscal.
my $res = $api->nota_servicos->incluir({
data_emissao => '21/04/2019',
cliente => {
nome => 'Maria Silva',
atualizar_cliente => 'N',
},
servico => {
descricao => 'Assinatura do plano PRO',
valor_servico => 29.95,
codigo_lista_servico => '10.02.01',
},
descontar_iss_total => 'N',
});
if ($res->{status} eq 'OK') {
say $res->{registros}[0]{registro}{status};
say $res->{registros}[0]{registro}{id};
say $res->{registros}[0]{registro}{numeroRPS};
}
Para mais informações sobre os parâmetros, consulte a documentação do 'incluir' na API.