The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

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.

VEJA TAMBÉM

Net::TinyERP