savio.varsalle/laravel-giss-online

Serviço de comunicação via api com a plataforma do GissOnline.

dev-master / 1.x-dev 2025-02-05 20:43 UTC

This package is auto-updated.

Last update: 2025-07-05 21:34:08 UTC


README

Instalação

Usando o Composer:

composer require savio.varsalle/laravel-giss-online

Configuração

No arquivo .env defina as seguintes variáveis:

//Código IBGE do município onde o prestador do serviço está localizado.
GISS_COD_MUNICIPIO_PRESTADOR=

//Usuário da plataforma
GISS_USERNAME=

//Senha da plataforma
GISS_PASSWORD=

Exemplo

    $service = new GissOnline;
    /**
     * Pega o Token e o ID da Empresa
     */
    $token = $service->auth()->token();
    dump($token);

    /**
     * Pega os dados do usuario
     */
    $usuario = $service->usuario([
        'token' => $token->access_token
    ])->get();
    dump($usuario);

    /**
     * Pega os dados do Prestador do Serviço (A Empresa)
     */
    $prestador = $service->prestador([
        'token' => $token->access_token,
        'idEmpresa' => $token->idEmpresa
    ])->get();
    dump($prestador);

    /**
     * Pega os serviços realizados pelo Prestador(A Empresa)
     */
    $servicos = $service->servico([
        'token' => $token->access_token,
        'dataServico' => today()->format('d/m/Y'),
        'idEmpresa' => $token->idEmpresa
    ])->get();
    dump($servicos);

    /**
     * Pega os dados do Tomador do serviço(O Cliente)
     */
    $tomador = $service->tomador([
        'token' => $token->access_token,
        'cnpjCpf' => '48.379.643/0001-14',
        'idEmpresa' => $token->idEmpresa
    ])->get();
    dump($tomador);

    /**
     * Realiza o cadastro do Tomador(O Cliente)
     */
    $cadastro = $service->tomador([
        'token' => $token->access_token,
        'apelido'   => 'João',
        'cnpjCpf'   => '11111111111',
        'email' => 'email@email.com',
        'bairro' => 'bairro',
        'cep' => '00000000',
        'cidade' => 'cidade',
        'complemento' => 'complemento',
        'estado' => 'estado',
        'idIbge' => 000000,
        'idUfIbge' => 'MG',
        'logradouro' => 'logradouro',
        'numero' => '100',
        'tipoLogradouro' => 'RUA',
        'exterior' => false,
        'idEmpresa' => 'idEmpresa',//Id da empresa emitente da nota
        'nomeFantasia' => 'nomeFantasia',
        'razaoSocial' => 'razaoSocial',
        'simplesNacional' => false,
        'inscricaoEstadual' =>  'inscricaoEstadual',
        'inscricaoMunicipal' => 'inscricaoMunicipal',
        'codigoArea' => 32,
        'telefone' => '999999999',
        'mei' => false,
        'ativo' => true
    ])->create();
    dump($cadastro);

    /**
     * edita o cadastro do Tomador(O Cliente)
     */
    $editar = $service->tomador([
        'token' => $token->access_token,
        'idTomador' => 11111,
        'ativo' => true,
        'apelido'   => 'João',
        'cnpjCpf'   => '11111111111',
        'email' => 'email@email.com',
        'bairro' => 'bairro',
        'cep' => '00000000',
        'cidade' => 'cidade',
        'complemento' => 'complemento',
        'estado' => 'estado',
        'idIbge' => 000000,
        'idUfIbge' => 'MG',
        'logradouro' => 'logradouro',
        'numero' => '100',
        'tipoLogradouro' => 'RUA',
        'exterior' => false,
        'idEmpresa' => 'idEmpresa',//Id da empresa emitente da nota
        'nomeFantasia' => 'nomeFantasia',
        'razaoSocial' => 'razaoSocial',
        'simplesNacional' => false,
        'inscricaoEstadual' =>  'inscricaoEstadual',
        'inscricaoMunicipal' => 'inscricaoMunicipal',
        'codigoArea' => 32,
        'telefone' => '999999999',
        'mei' => false
    ])->update();
    dump($editar);

    /**
     * Realiza a emissão da Nota
     */
    $nota = $service->nota([
        'token'                 =>  $token->access_token,
        'idEmpresa'             =>  $token->idEmpresa,
        'notaTipo'              =>  1,
        'tipoPrestador'         =>  "1",
        'tipoEmpresa'           =>  "1",
        'idTomador'             =>  $tomador->conteudo->idEmpresa, // Caso o tomador seja consumidor final não passar
        //'cpfTomador'          =>  '11111111111', - Caso o tomador seja consumidor final passar o numero do CPF
        //'simplificada'        =>  true, - Caso o tomador seja consumidor final
        'tipoTomador'           =>  $tomador->conteudo->tipoInscricao,
        'idServico'             =>  $servicos->conteudo->servicoAtividade[0]->idServico,
        'idAtividade'           =>  $servicos->conteudo->servicoAtividade[0]->idAtividade,
        'dataCompetencia'       =>  today()->format('d/m/Y'),
        'discriminacaoServico'  =>  "Emissão de teste com pacote no laravel",
        'outrasRetencoes'       =>  0,
        'valorServico'          =>  1.5,
        'exportacao'            =>  false,
        'issRetido'             =>  false,
        'municipioPrestacao'    =>  3143906,
        'aliquota'              =>  3,
        'pis'                   =>  0,
        'cofins'                =>  0,
        'ir'                    =>  0,
        'inss'                  =>  0,
        'csll'                  =>  0,
    ])->emitir();
    dump($nota);

    /**
     * Consulta e retorna os dados da nota
     */
    $consulta = $service->nota([
        'token'                 =>  $token->access_token,
        'idEmpresa'             =>  $token->idEmpresa,
        'notaNumero'            =>  $nota->conteudo->numero,
     
    ])->get();
    dump($consulta);
     

    /**
     * Realiza o download do PDF no local designado
     */
    $pdfDownload = $service->nota([
        'token' => $token->access_token,
        'idNota' => $nota->conteudo->idNota,
        'localDownload' => '/home/dev2/Projects/MLC/'
    ])->getPdf();
    dump($pdfDownload);

    /**
     * Realiza o download do XML no local designado
     */
    $xmlDownload = $service->nota([
        'token' => $token->access_token,
        'idNota' => $nota->conteudo->idNota,
        'localDownload' => '/home/dev2/Projects/MLC/'
    ])->getXml();
    dump($pdfDownload);

    /**
     * Pega os Motivos de Cancelamento disponiveis para o municipio
     */
    $motivoCancelamento = $service->motivoCancelamento([
        'token' => $token->access_token
    ])->list();
    dump($motivoCancelamento);

    /**
     * Cancelar a Nota
     */
    $cancelar = $service->nota([
        'token'                 =>  $token->access_token,
        'idEmpresa'             =>  $token->idEmpresa,
        'notaTipo'              => $nota->conteudo->notaTipo,
        'notaNumero'            => $nota->conteudo->numero,
        'idMotivoCancelamento'  => $motivoCancelamento->conteudo[3]->idMotivoCancelamento
    ])->cancelar();
    dump($cancelar);