01. DADOS GERAIS

Linha de Produto:TOTVS Varejo Lojas
Segmento:Varejo
Módulo:SigaLoja (Controle de Loja)
Função:

RmiEnvPdvSyncObj

Ticket:Não há.
Story:

DVARLOJ1-8248

02. SITUAÇÃO/REQUISITO

Disponibilizar alguma maneira de consultar as notas fiscais de saída, onde seja possível visualizar os itens que já foram devolvidos

03. SOLUÇÃO

Foi disponibilizada API no seguinte caminho:  http://{urlRest}/api/retail/v1/notasaida/lista

A API utiliza o método POST, caso queria informar parâmetros para filtro os mesmos devem ser passados no corpo.

Exemplo:

{
    "dataInicio""20220101",
    "dataFim""20220914",
    "cupom""39",
    "pagina"1
}


Parâmetros de entrada (Request):

ParâmetroTipoObrigatórioObjetivo
dataInicioDataSIM, quando não informado o cupomFiltrar data da venda
dataFimDataSIM, quando não informado o cupomFiltrar data da venda
cpfCnpjStringNPesquisar com base no CPF informado no Cupom ou com base no código do cliente identificado na venda que possui o CPF informado na pesquisa
serieStringNSerie documento fiscal, algo interno do Protheus(F2_SERIE), exemplo: SAT não possui série de documento, possui serial apenas de equipamento. 
cupomStringNNúmero do documento fiscal (não precisa informar a série, se informar apenas o cupom, deverá retornar todos os cupons com o mesmo número, não importa a série).  Não devemos obrigar informar zeros a esquerda se o Protheus gravar com zeros, devemos abstrair essa regra.
IdRetaguardaProdutoStringNId do Produto (mesmo formato que enviamos o produto na integração)
IdRetaguardaLojaCupomStringNId da Loja que emitiu o cupom, será utilizado para pesquisar o documento da SF2 (esse campo será utilizado para identificar o cupom quando for gerar o Crédito/Nota de Entrada)
tipo

Array

String

NPermitir filtrar somente alguns tipos de cupons, exemplo: O PDV OMNISHOP não emite NF-e, ou seja, se passar no filtro que deseja somente NFC-e e SAT, não iremos devolver vendas NF-e gravadas no ERP.
paginaIntNQuando possuir paginação, informar a página.
itensPaginaIntNQuantidade de itens que serão retornados por página.


Retorno:

{
    "data": [
        {
            "idRetaguardaLoja""D PR 02 ",
            "dataHora""2022031116:56",
            "cpfCnpj""26664794000181",
            "valorTotal"503,
            "tipo""SATCE",
            "qtdItens"3,
            "itens": [
                {
                    "descricao""PROD1 LOJA - 10% - ICMS - TEN ",
                    "valorUnitario"300,
                    "qtdVendida"1,
                    "qtdDisponivel"1,
                    "idRetaguardaCupomItem""D PR 02 000039   0  01",
                    "idRetaguardaProduto""LJTEST01       "
                },
                {
                    "descricao""PROD2 LOJA - 12% - ICMS       ",
                    "valorUnitario"200,
                    "qtdVendida"1,
                    "qtdDisponivel"1,
                    "idRetaguardaCupomItem""D PR 02 000039   0  02",
                    "idRetaguardaProduto""LJTEST02       "
                },
                {
                    "descricao""PROD3 LOJA - 17% - ICMS - ALT ",
                    "valorUnitario"3,
                    "qtdVendida"1,
                    "qtdDisponivel"1,
                    "idRetaguardaCupomItem""D PR 02 000039   0  03",
                    "idRetaguardaProduto""LJTEST03       "
                }
            ],
            "serie""0  ",
            "idRetaguardaCupom""D PR 02 000039   0  ",
            "cupom""000039   ",
            "situacao""DISPONÍVEL            "
        }
    ],
    "success"true,
    "hasNext"false,
    "message"""
}

Para o controle de paginação, utilize a tag "hasNext", caso o seu retorno seja true, significa que existe mais registros para serem retornados a partir do filtro informado.

Incremente a tag "pagina",  para solicitar os demais registros.

04. DEMAIS INFORMAÇÕES

Não há

05. ASSUNTOS RELACIONADOS


<style>
div.theme-default .ia-splitter #main {
    margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
    display: none;
}
#main {
    padding-left: 10px;
    padding-right: 10px;
    overflow-x: hidden;
}

.aui-header-primary .aui-nav,  .aui-page-panel {
    margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
    margin-left: 0px !important;
}

.aui-tabs.horizontal-tabs>.tabs-menu>.menu-item.active-tab a::after { 
	background: #FF9900; !important 
}

.menu-item.active-tab { 
	border-bottom: none !important; 
}

</style>