INFORMAÇÕES PROPRIETÁRIA
Este documento é de propriedade da Wealth Systems Informática Ltda. Todas as informações contidas aqui são confidenciais e não devem ser copiadas ou divulgadas para quaisquer terceiros sem antes um consentimento formal, por escrito, da Wealth Systems, podendo somente ser divulgada dentro do Cliente para os seus funcionários que estiverem diretamente envolvidos no projeto, o qual este documento relata.
A empresa Cliente será solenemente responsável por assegurar que todos seus funcionários envolvidos estejam de acordo e acatem estas condições e ainda, está intitulado para usar as informações contidas neste documento, somente para propósitos de avaliação. Este documento é versionado e sua estrutura não poderá ser alterada sem o consentimento do Gerente de Projetos da Wealth Systems.
HISTÓRICO DE REVISÃO
Data | Modificado por | Descrição da mudança |
30/09/2022 | Danielly Omori | Criação do documento |
17/10/2022 | William Rodrigues de Mello | Revisão do Documento |
INTRODUÇÃO
1 INTEGRAÇÃO DE DADOS
A integração de dados entre TOTVS SFA e Datasul se dá através de uma API (Application Programming Interface) que utiliza web services com arquitetura REST (Representational State Transfer), tanto para a importação de dados (Datasul → TOTVS SFA) como para a exportação de Pedidos e Clientes (TOTVS SFA → Datasul).
Envie ao Coordenador do Projeto as informações a seguir por ambiente, HOMOLOGAÇÃO E PRODUÇÃO:
1.1 Agendamento De Rotinas
O agendamento varia muito, conforme o poder de processamento de cada servidor, e da quantidade de registros de tráfego.
Foi criado agendamentos padrão nas rotinas de integração, porém, não necessariamente deve ser seguido à risca pelo motivo explicado acima. Nos cenários necessários, agendamos uma carga completa para ser executada durante a noite.
1.2 Importação De Dados
Abaixo estão descritas todas as entidades que são importadas na integração standard entre Datasul e TOTVS SFA, assim como informações relevantes sobre as APIs e transformações desenvolvidas no Pentaho Spoon pelo time de integração da TOTVS.
Método de requisição: GET
URL base: http://{IP}:{PORTA}/dts/datasul-rest/resources/prg/{TIPO}/v1/{ENTIDADE}
A URL base acima é o endereço base de vários serviços, que serão listados mais abaixo como entidade.
As informações do IP e a PORTA dependem da configuração do ambiente do cliente. O campo TIPO se refere as divisões de serviços da API Nativa Datasul que são: cdp, cep, ftp, pdp, qop, finapi.
1.3 Requisições De Autenticação
A autenticação utilizada pelas APIs é a Basic Auth que usa a autenticação por um usuário e senha do Datasul e é convertido em um token base 64 no seguinte modelo:
usuario:senha
Convertendo para base64 temos o seguinte resultado: dXN1YXJpbzpzZW5oYQ==
Adicionando a tag Basic na frente temos o token final:
Basic dXN1YXJpbzpzZW5oYQ==
Esta tag é passada no header Authorization do step do Pentaho ou Postman (se for o caso)
Considerações: de preferência, o usuário e senha deve ser minúsculo e sem nenhum caractere especial.
1.4 Requisições Count
Como o nome já sugere, antes de requisitarmos os dados, contamos os registros que nos retornaram nas chamadas a seguir. Dessa maneira dividimos os registros em páginas, limitando a quantidade total por página (geralmente mil registros por página, mas é possível ser configurado rotina a rotina).
Isso deve ser seguido, pois requisições com um volume de retorno muito grande além gerar lentidão, podem derrubar o serviço do plugin.
Para gerar as paginações fazemos uma primeira requisição com um parâmetro chamado totalCount com o valor true, sendo assim o retorno informa o total de registros na entidade no campo totalHits, conforme mostra o Código 1 para que possamos calcular a quantidade de páginas e o número de registros por requisição.
Segue o exemplo:
URL: http://IP:PORTA/dts/datasul-rest/resources/prg/cdp/v1/cityPublic?totalCount=true
Resultado:
{
"total": 1,
"totalHits": 5595,
"hasNext": true,
"items": [
{
"IBGECode": 5200050,
"regionCode": "CENTRO",
"sigla": "GO246",
"city": "ABADIA DE GOIAS",
"stateCode": "GO",
"countryName": "BRASIL",
"_expandables": [
"state",
"country"
],
"microRegionCode": ""
}
]
}
2 ENTIDADES
Nesta foi realizado um de-para de todas as rotinas executadas em um cliente Datasul. Serão apresentadas informações como tabela e campo de origem do Datasul, qual endpoint e campos utilizados para trazer os dados via API e em quais tabelas e campos do SFA essas informações serão inseridas.
Abaixo será apresentado também como é feita hoje a organização das transformações utilizadas pela integração.
BLOCO | TRANSFORMAÇÕES |
---|---|
Bloco_Default_SFA (Executado somente uma vez, no início do processo de integracação) | TipoFrete, TipoEstoque, ClassificacaoParceiro, PerfilAcesso, TipoPedido, TipoSituacaoPedido, TipoSitPedidoProduto, TipoProduto, TipoSituacaoCadastro, ClassificacaoFinTitulo, TipoEmail, TipoTelefone, Operacao |
Bloco_Commons | Pais_Uf_Cidade (Pais, UnidadeFederativa e Cidade), CondiçãoPagamento, TipoCobranca, TipoNotaFiscal, Moeda (Indexador e ContacaoIndexador), Tipologia, Linha, TipoDocumento e GrupoParceiro. |
Bloco_Filial | Filial (LocalUEM, ParceiroUEM, ParceiroLocalUEM, ParceiroTipoParceiroUEM, LocalTipoLocalUEM, LocalFilialUEM) e Região (Regiao, LocalRegiao). |
Bloco_Vendedor | Vendedor (Usuario, UsuarioTelefone, UsuarioEmail, UsuarioFilial). |
Bloco_Produto | GrupoProduto, UnidadeMedida, Produto (Produto, ProdutoEmbalagem, ProdutoGrupoProduto, ProdutoFilial). |
Bloco_Preco | TabelaPreco, TabelaPrecoProduto. |
Bloco_Estoque | Estoque. |
Bloco_Parceiro | Transportadora (LocalTRA, ParceiroTRA, ParceiroLocalTRA, ParceiroTipoParceiroTRA, LocalTipoLocalTRA, LocalTelefoneTRA), Cliente (ParceiroCLI, LocalCLI, PessoaFisica, PessoaJuridica, ParceiroTipoParceiroCLI, ParceiroTransportador, ParceiroGrupoParceiro, ParceiroLocalCLI, LocalTipoLocalCLI, LocalEmailCLI, LocalTelefoneCLI, LimiteCredito, LocalCondicaoPgto, UsuarioLocal, LocalTipologia, LocalTabelaPreco, Parceiro_NomeAbrev, Parceiro_NaturezaOperacao, LocalENT (LocalENT, LocalTipoLocalENT, ParceiroLocalENT), ClienteContato (ContatoPessoa, ContatoPessoaEmail, ContatoPessoaTelefone)), LocalIdentificacao, Portador. |
Bloco_Pedido | Pedido (Pedido, PedidoProduto, PedidoEntrega). |
Bloco_NotaFiscal | NotaFiscal (NotaFiscal, NotaFiscalProduto), NotaFiscalDevolucao (NotaFiscalDevolucao, NotaFiscalProdutoDevolucao). |
Bloco_Financeiro | FinanceiroTitulo. |
Bloco_Exp_Pedido | Exportação de Pedidos. |
Bloco_Exp_Cliente | Exportação de Clientes. |
Segue um mapeamento de todas entidades integradas pelo Datasul atualmente.
PAIS-UF-CIDADE
Os dados das tabelas cidade, pais e unid-feder do Datasul, são acessados através do endpoint /dts/datasulrest/resources/prg/cdp/v1/cityPublic e são salvos nas tabelas cidade, pais e unidadefederativa do TOTVS SFA com os seguintes campos:
TOTVS SFA | TIPO | DATASUL |
---|---|---|
PAIS.SIGLA | STRING | CASE WHEN countryName(cidade.pais) = 'BRASIL' THEN 'BR' WHEN countryName(cidade.pais) = 'PAIS INDEFINIDO' THEN 'EX' ELSE { CASE WHEN countryName(cidade.pais) = '' (vazio) THEN 'EX' ELSE substr(countryName(cidade.pais), 0, 2) } |
PAIS.DESCRICAO | STRING | countryName(cidade.pais) |
PAIS.NACIONALIDADE | STRING | CASE WHEN countryName(cidade.pais) = 'BRASIL' THEN 'BRASILEIRA' WHEN countryName(cidade.pais) = 'PAIS INDEFINIDO' THEN 'INDEFINIDA' ELSE 'ESTRANGEIRA' |
PAIS.CODIGO | STRING | CASE WHEN countryName(cidade.pais) = 'BRASIL' THEN 'BR' WHEN countryName(cidade.pais) = 'PAIS INDEFINIDO' THEN 'EX' ELSE { CASE WHEN countryName(cidade.pais) = '' THEN 'EX' ELSE substr(countryName(cidade.pais), 0, 2) } |
PAIS.IDNATIVO | INTEGER | FIXO 1 |
PAIS.IDNPADRAO | INTEGER | CASE WHEN countryName(cidade.pais) = 'BRASIL' THEN 1 ELSE 0 |
PAIS.CODIGOERP | STRING | EMPRESA + '#' + countryName (cidade.pais) |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
UNIDADEFEDERATIVA.IDNATIVO | INTEGER | FIXO 1 |
UNIDADEFEDERATIVA.SIGLA | STRING | stateCode(cidade.estado) |
UNIDADEFEDERATIVA.CODIGO | STRING | stateCode(cidade.estado) |
UNIDADEFEDERATIVA.DESCRICAO | STRING | Nome do estado é fixo na integração, baseado no valor do campo stateCode (cidade.estado). EX: stateCode = 'AC' estado ='ACRE' |
UNIDADEFEDERATIVA.IDPAIS | INTEGER | EMPRESA + '#' +PAIS.SIGLA |
UNIDADEFEDERATIVA.CODIGOERP | STRING | EMPRESA + '#' + stateCode(cidade.estado) |
TOTVS SFA | TIPO | DATASUL |
CIDADE.CODIGO | INTEGER | IBGECode(cidade.cdn-munpio-ibge) |
CIDADE.DESCRICAO | STRING | city(cidade.cidade) |
CIDADE.IDNATIVO | INTEGER | FIXO 1 |
CIDADE.IDUNIDADEFEDERATIVA | INTEGER | EMPRESA + '#' + stateCode(cidade.estado) |
CIDADE.CODIGOERP | STRING | EMPRESA + '#' + countryName + '#' + stateCode+ '#'+ city |
CLIENTE
Os dados das tabelas emitente, cidade e loc-entr do Datasul, são acessados através do endpoint /dts/datasul-rest/resources/prg/cdp/v1/customerPublic e são salvos nas tabelas parceiro, local, localtipolocal, parceirolocal, parceirotransportador, parceirogrupoparceiro, pessoafisica, pessoajuridica, localemail, parceirotipoparceiro, limitecredito, localtelefone, usuariolocal, localtipologia, localtabelapreco, localcandicaopagamento, parceiro_nomeAbrev, parceiro_NaturezaOperacao, contatopessoa, contatopessoaemail, contatopessoatelefone e localENT, localTipoLocalENT e parceiroENT, do TOTVS SFA com o seguintes campos:
TOTVS SFA | TIPO | DATASUL |
---|---|---|
TOTVS SFA | TIPO | DATASUL |
PARCEIRO.NOMEPARCEIRO | STRING | customerCode(emitente.cod-emitente)+ '-' +customerName(emitente.nome-emit) |
PARCEIRO.NOMEPARCEIROFANTASIA | STRING | shortName(emitente.nome-abrev) |
PARCEIRO.SGLTIPOPESSOA | STRING | CASE WHEN entityType(emitente.natureza) = 1 THEN 'PF' WHEN entityType(emitente.natureza) = 2 THEN 'PJ' WHEN entityType(emitente.natureza) = 3 THEN 'ES' WHEN entityType(emitente.natureza) = 4 THEN 'TR' ELSE 'ES' END |
PARCEIRO.IDNATIVO | INTEGER | CASE WHEN credit(emitente.ind-cre-cli) = 4 THEN 0 ELSE 1 END |
PARCEIRO.IDNCONTRIBUINTE | INTEGER | FIXO 0 |
PARCEIRO.NUMEROMATRICULA | STRING | customerCode(emitente.cod-emitente) |
PARCEIRO.EMAIL | STRING | email(emitente.e-mail) |
PARCEIRO.HOMEPAGE | STRING | homePage(emitente.home-page) |
PARCEIRO.DATAULTIMAATUALIZACAO | DATE | updateDate(emitente.dt-atualiza) |
PARCEIRO.DATACADASTRO | DATE | implementationDate(emitente.data-implant) |
PARCEIRO.OBSERVACAO | STRING | emitente.observacoes |
PARCEIRO.IDCLASSIFICACAOPARCEIRO | BIGNUMBER | CASE WHEN entityType(emitente.natureza) = 1 THEN 'PF' WHEN entityType(emitente.natureza) = 2 THEN 'PJ' WHEN entityType(emitente.natureza) = 3 THEN 'ES' WHEN entityType(emitente.natureza) = 4 THEN 'TR' ELSE 'ES' END |
PARCEIRO.IDNEXPORTADOERP | DATE | FIXO 1 |
PARCEIRO.CODIGOERP | STRING | 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) |
PARCEIRO.IDTIPOSITUACAOCADASTRO | BIGNUMBER | FIXO 'REG' |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
LOCAL.IDIPI | INTEGER | FIXO 0 |
LOCAL.IDNATIVO | INTEGER | CASE WHEN credit(emitente.ind-cre-cli) = 4 THEN 0 ELSE 1 END |
LOCAL.IDNREQUERDATAENTREGA | INTEGER | FIXO 0 |
LOCAL.IDNREQUERNUMEROPEDIDOCLIENTE | INTEGER | FIXO 0 |
LOCAL.NUMEROMATRICULA | STRING | customerCode(emitente.cod-emitente) |
LOCAL.BAIRRO | STRING | neighborhood(emitente.bairro) ou billingNeighborhood(emitente.bairro-cob) |
LOCAL.CNPJ | STRING | personalId(emitente.cgc) |
LOCAL.CEP | STRING | zipCode(emitente.cep) ou billingZipCode(emitente.cep-cob) |
LOCAL.INSCRICAOESTADUAL | STRING | stateRegistration(emitente.ins-estadual) |
LOCAL.DESCRICAO | STRING | PRI +'#' + address(emitente.endereco) ou COB + '#' + billingAddress(emitente.endereco-cob) |
LOCAL.INSCRICAOMUNICIPIO | STRING | municipalRegistration(emitente.ins-municipal) |
LOCAL.LOGRADOURO | STRING | address(emitente.endereco) ou billingAddress(emitente.endereco-cob) |
LOCAL.DOCUMENTOIDENTIFICACAO | STRING | personalId(emitente.cgc) |
LOCAL.OBSERVACAO | STRING | emitente.observacoes |
LOCAL.DATACADASTRO | DATE | implementationDate(emitente.data-implant) |
LOCAL.DATAULTIMAATUALIZACAO | DATE | updateDate(emitente.dt-atualiza) |
LOCAL.LIMITESUGERIDO | BIGNUMBER | creditLimit(emitente.lim-credito) |
LOCAL.IDCIDADE | BIGNUMBER | EMPRESA + '#' + country(emitente.pais) + '#' + state(emitente.estado) + '#' + city(emitente.cidade) ou EMPRESA + '#' + country(emitente.pais) + '#' + billingState(emitente.estado-cob) + '#' +billingCity(emitente.cidade-cob) |
LOCAL.IDUNIDADEFEDERATIVAFISCAL | BIGNUMBER | state(emitente.estado) || billingState(emitente.estado-cob) |
LOCAL.IDNEXPORTADOERP | INTEGER | FIXO 1 |
LOCAL.CODIGOERP | STRING | (PRI ou COB) + '#' + 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
LOCALTIPOLOCAL.IDLOCAL | INTEGER | (PRI ou COB) + '#' + 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) |
LOCALTIPOLOCAL.IDTIPOLOCAL | INTEGER | 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) |
LOCALTIPOLOCAL.IDNATIVO | INTEGER | CASE WHEN credit(emitente.ind-cre-cli) = 4 THEN 0 ELSE 1 END |
LOCALTIPOLOCAL.IDNPADRAO | INTEGER | CASE WHEN TipoLocal = PRI THEN 1 ELSE 0 END |
LOCALTIPOLOCAL.IDNEXPORTADOERP | INTEGER | FIXO 1 |
LOCALTIPOLOCAL.CODIGOERP | STRING | (PRI ou COB) + '#' + 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
PARCEIROLOCAL.IDPARCEIRO | INTEGER | 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) |
PARCEIROLOCAL.IDLOCAL | INTEGER | (PRI ou COB) + '#' + 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) |
PARCEIROLOCAL.IDNEXPORTADOERP | INTEGER | FIXO 1 |
PARCEIROLOCAL.CODIGOERP | STRING | (PRI ou COB) + '#' + 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
PARCEIROTRANSPORTADOR.IDPARCEIRO | INTEGER | 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) |
PARCEIROTRANSPORTADOR.IDTRANSPORTADOR | INTEGER | 'TRA#' + EMPRESA + '#' + standardCarrierCode(emitente.cod-transp) |
PARCEIROTRANSPORTADOR.IDUSUARIO | INTEGER | EMPRESA + '#' + representativeCode(emitente.cod-rep) |
PARCEIROTRANSPORTADOR.IDNPADRAO | INTEGER | FIXO 1 |
PARCEIROTRANSPORTADOR.CODIGOERP | STRING | 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) + '#' + standardCarrierCode(emitente.cod-transp) + '#' + representativeCode(emitente.cod-rep) |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
PARCEIROGRUPOPARCEIRO.IDPARCEIRO | INTEGER | 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) |
PARCEIROGRUPOPARCEIRO.IDNPADRAO | INTEGER | FIXO 1 |
PARCEIROGRUPOPARCEIRO.CODIGOERP | STRING | EMPRESA + '#' + customerGroup(emitente.cod-gr-cli) + '#' +customerCode(emitente.cod-emitente) |
PARCEIROGRUPOPARCEIRO.IDGRUPOPARCEIRO | INTEGER | EMPRESA + '#' + customerGroup(emitente.cod-gr-cli) |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
PESSOAFISICA.IDPESSOAFISICA | INTEGER | PARCEIRO.IDPARCEIRO |
PESSOAFISICA.CPF | STRING | personalId(emitente.cgc) |
PESSOAFISICA.IDNEXPORTADOERP | INTEGER | FIXO 1 |
PESSOAFISICA.DIANASCIMENTO | INTEGER | birthdate(emitente.dat-nasc) |
PESSOAFISICA.MESNASCIMENTO | INTEGER | birthdate(emitente.dat-nasc) |
PESSOAFISICA.ANONASCIMENTO | INTEGER | birthdate(emitente.dat-nasc) |
PESSOAFISICA.DOCUMENTOIDENTIFICACAO | STRING | personalId(emitente.cgc) |
PESSOAFISICA.IDTIPOIDENTIFICACAO | BIGNUMBER | FIXO 'cpf' |
PESSOAFISICA.CODIGOERP | STRING | 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
PESSOAJURIDICA.IDPESSOAJURIDICA | INTEGER | PARCEIRO.IDPARCEIRO |
PESSOAJURIDICA.DOCUMENTOIDENTIFICACAO | STRING | personalId(emitente.cgc) |
PESSOAJURIDICA.IDTIPOIDENTIFICACAO | INTEGER | FIXO 'cnpj' |
PESSOAJURIDICA.IDNEXPORTADOERP | INTEGER | FIXO 1 |
PESSOAJURIDICA.DATAFUNDACAO | DATE | implementationDate(emitente.data-implant) |
PESSOAJURIDICA.CNPJPRINCIPAL | INTEGER | personalId(emitente.cgc) |
PESSOAJURIDICA.CODIGOERP | INTEGER | 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
LOCALEMAIL.EMAIL | STRING | LOWER(email(emitente.e-mail)) |
LOCALEMAIL.IDNPADRAO | INTEGER | CASE WHEN TipoLocal = PRI THEN 1 ELSE 0 END |
LOCALEMAIL.IDLOCAL | INTEGER | (PRI ou COB) + '#' + 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) |
LOCALEMAIL.IDPARCEIRO | INTEGER | 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) |
LOCALEMAIL.IDNEXPORTADOERP | INTEGER | FIXO 1 |
LOCALEMAIL.IDTIPOEMAIL | INTEGER | FIXO 'PRI' |
LOCALEMAIL.CODIGOERP | STRING | (PRI ou COB) + '#' + 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) + '#' + LOWER(email(emitente.e-mail)) |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
PARCEIROTIPOPARCEIRO.IDTIPOPARCEIRO | INTEGER | entityType(emitente.natureza) |
PARCEIROTIPOPARCEIRO.IDPARCEIRO | INTEGER | 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) |
PARCEIROTIPOPARCEIRO.CODIGOERP | STRING | entityType(emitente.natureza) = '#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
LIMITECREDITO.DATAINICIOVIGENCIA | DATE | FIXO 1900-01-01 |
LIMITECREDITO.DATAFIMVIGENCIA | DATE | FIXO 2099-12-31 |
LIMITECREDITO.SALDOLIMITE | BIGNUMBER(18,6) | creditLimit(emitente.lim-credito) |
LIMITECREDITO.SALDODISPONIVEL | BIGNUMBER(18,6) | creditLimit(emitente.lim-credito) |
LIMITECREDITO.IDPARCEIRO | INTEGER | 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) |
LIMITECREDITO.IDLOCAL | INTEGER | (PRI ou COB) + '#' + 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) |
LIMITECREDITO.CODIGOERP | STRING | (PRI ou COB) + '#' + 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
LOCALTELEFONE.TELEFONE | STRING | phone1(emitente.telefone[1]) ou phone2(emitente.telefone[2]) ou telefax(emitente.telefax) ou telex(emitente.telex) |
LOCALTELEFONE.IDNPADRAO | INTEGER | CASE WHEN phone1(emitente.telefone[1]) IS NOT NULL THEN 1 (para o registro contendo phone1 e 0 para os demais) WHEN phone2(emitente.telefone[2]) IS NOT NULL THEN 1 (para o registro contendo phone2 e 0 para os demais) WHEN telefax(emitente.telefax) IS NOT NULL THEN 1 (para o registro contendo telefax e 0 para os demais) WHEN telex(emitente.telex) IS NOT NULL THEN 1 (para o registro contendo telex e 0 para os demais) ELSE 0 END |
LOCALTELEFONE.IDLOCAL | INTEGER | (PRI ou COB) + '#' + 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) |
LOCALTELEFONE.IDPARCEIRO | INTEGER | 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) |
LOCALTELEFONE.IDNEXPORTADOERP | INTEGER | FIXO 1 |
LOCALTELEFONE.IDTIPOTELEFONE | INTEGER | CASE WHEN phone1(emitente.telefone[1]) IS NOT NULL THEN 'TEL1' WHEN phone2(emitente.telefone[2]) IS NOT NULL THEN 'TEL2' WHEN telefax(emitente.telefax) IS NOT NULL THEN 'LEX' WHEN telex(emitente.telex) IS NOT NULL THEN 'FAX' END |
LOCALTELEFONE.CODIGOERP | STRING | (PRI ou COB) + '#' + 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) + '#' + ('TEL1' ou 'TEL2' ou 'LEX' ou 'FAX') + '#' + (phone1(emitente.telefone[1]) ou phone2(emitente.telefone[2]) ou telefax(emitente.telefax) ou telex(emitente.telex)) |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
USUARIOLOCAL.IDLOCAL | INTEGER | (PRI ou COB) + '#' + 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) |
USUARIOLOCAL.IDUSUARIO | INTEGER | EMPRESA + '#' + representativeCode(emitente.cod-rep) |
USUARIOLOCAL.IDPARCEIRO | INTEGER | 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) |
USUARIOLOCAL.CODIGOERP | STRING | (PRI ou COB) + '#' + 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
LOCALTIPOLOGIA.IDLOCAL | INTEGER | (PRI ou COB) + '#' + 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) |
LOCALTIPOLOGIA.IDTIPOLOGIA | INTEGER | EMPRESA + '#' + salesChannel(emitente.cod-canal-venda) |
LOCALTIPOLOGIA.IDPARCEIRO | INTEGER | 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) |
LOCALTIPOLOGIA.IDNPADRAO | INTEGER | FIXO 0 |
LOCALTIPOLOGIA.CODIGOERP | STRING | (PRI ou COB) + '#' + 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
LOCALTABELAPRECO.IDLOCAL | INTEGER | (PRI ou COB) + '#' + 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) |
LOCALTABELAPRECO.IDTABELAPRECO | INTEGER | EMPRESA + '#' + priceTable(emitente.nr-tabpre) |
LOCALTABELAPRECO.IDPARCEIRO | INTEGER | 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) |
LOCALTABELAPRECO.IDTIPOLOGIA | INTEGER | EMPRESA + '#' + salesChannel(emitente.cod-canal-venda) |
LOCALTABELAPRECO.IDUSUARIO | INTEGER | EMPRESA + '#' + representativeCode(emitente.cod-rep) |
LOCALTABELAPRECO.IDNPADRAO | INTEGER | FIXO 1 |
LOCALTABELAPRECO.CODIGOERP | STRING | (PRI ou COB) + '#' + 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
LOCALCONDICAOPAGAMENTO.IDLOCAL | INTEGER | (PRI ou COB) + '#' + 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) |
LOCALCONDICAOPAGAMENTO.IDCONDICAOPAGAMENTO | INTEGER | EMPRESA + '#'+ paymentTerms(emitente.cod-cond-pag) |
LOCALCONDICAOPAGAMENTO.IDNREGRAESPECIAL | INTEGER | FIXO 0 |
LOCALCONDICAOPAGAMENTO.IDNPADRAO | INTEGER | FIXO 1 |
LOCALCONDICAOPAGAMENTO.IDPARCEIRO | INTEGER | 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) |
LOCALCONDICAOPAGAMENTO.CODIGOERP | STRING | (PRI ou COB) + '#' + 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
CAMPORESPOSTA.RESPOSTA | STRING | shortName(emitente.nome-abrev) |
CAMPORESPOSTA.CODIGOERP | STRING | 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) + '#nomeabrev' |
CAMPORESPOSTA.IDPARCEIRO | INTEGER | 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) |
CAMPORESPOSTA.IDCAMPO | INTEGER | FIXO 'nomeabrev' |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
CAMPORESPOSTA.RESPOSTA | STRING | transactionType(emitente.nat-operacao) |
CAMPORESPOSTA.CODIGOERP | STRING | 'CLI#' + EMPRESA + '#' +customerCode(emitente.cod-emitente) + '#naturezaoperacao' |
CAMPORESPOSTA.IDPARCEIRO | INTEGER | 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) |
CAMPORESPOSTA.IDCAMPO | INTEGER | FIXO 'naturezaoperacao' |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
CONTATOPESSOA.NOME | STRING | customerContacts[0].contactName(cont-emit.nome) |
CONTATOPESSOA.CARGO | STRING | customerContacts[0].office(cont-emit.cargo) |
CONTATOPESSOA.DEPARTAMENTO | STRING | customerContacts[0].contactArea(cont-emit.area) |
CONTATOPESSOA.IDNPADRAO | INTEGER | FIXO 0 |
CONTATOPESSOA.IDNATIVO | INTEGER | CASE WHEN credit(emitente.ind-cre-cli) = 4 THEN 0 ELSE 1 END |
CONTATOPESSOA.DIANASCIMENTO | INTEGER | birthdate(emitente.dat-nasc) |
CONTATOPESSOA.MESNASCIMENTO | INTEGER | birthdate(emitente.dat-nasc) |
CONTATOPESSOA.ANONASCIMENTO | INTEGER | birthdate(emitente.dat-nasc) |
CONTATOPESSOA.DATANASCIMENTO | DATE | birthdate(emitente.dat-nasc) |
CONTATOPESSOA.DOCUMENTOIDENTIFICACAO | STRING | personalId(emitente.cgc) |
CONTATOPESSOA.IDPARCEIRO | BIGNUMBER | 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) |
CONTATOPESSOA.IDNEXPORTADOERP | INTEGER | FIXO 1 |
CONTATOPESSOA.CODIGOERP | STRING | 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) + '#' + customerContacts[0].sequence(cont-emit.cod-emitente) |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
CONTATOPESSOAEMAIL.EMAIL | STRING | customerContacts[0].email(cont-emit.e-mail) |
CONTATOPESSOAEMAIL.IDNPADRAO | INTEGER | FIXO 0 |
CONTATOPESSOAEMAIL.IDCONTATOPESSOA | INTEGER | 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) + '#' + customerContacts[0].sequence(cont-emit.cod-emitente) |
CONTATOPESSOAEMAIL.CODIGOERP | STRING | 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) + '#' + customerContacts[0].sequence(cont-emit.cod-emitente) + '#' + customerContacts[0].email(cont-emit.e-mail) |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
CONTATOPESSOATELEFONE.TELEFONE | STRING | customerContacts[0].phone(cont-emit.telefone) ou customerContacts[0].telephone ou customerContacts[0].telefax(cont-emit.telefax) |
CONTATOPESSOATELEFONE.IDNPADRAO | INTEGER | FIXO 0 |
CONTATOPESSOATELEFONE.IDCONTATOPESSOA | INTEGER | 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) + '#' + customerContacts[0].sequence(cont-emit.cod-emitente) |
CONTATOPESSOATELEFONE.CODIGOERP | STRING | 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) + '#' + customerContacts[0].sequence(cont-emit.cod-emitente) + '#' + customerContacts[0].email (cont-emit.e-mail) |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
LOCAL.IDNATIVO | INTEGER | CASE WHEN credit(emitente.ind-cre-cli) = 4 THEN 0 ELSE 1 END |
LOCAL.NUMEROMATRICULA | STRING | customerCode(emitente.cod-emitente) |
LOCAL.BAIRRO | STRING | deliveryPlaces[0].neighborhood(loc-entr.bairro) |
LOCAL.CNPJ | STRING | personalId(emitente.cgc) |
LOCAL.CEP | STRING | deliveryPlaces[0].zipCode(loc-entr.cep) |
LOCAL.DESCRICAO | STRING | 'ENT#'+ deliveryPlaces[0].address(loc-entr.endereco) |
LOCAL.LOGRADOURO | STRING | deliveryPlaces[0].address(loc-entr.endereco) |
LOCAL.DOCUMENTOIDENTIFICACAO | STRING | personalId(emitente.cgc) |
LOCAL.DATACADASTRO | DATE | implementationDate(emitente.data-implant) |
LOCAL.DATAULTIMAATUALIZACAO | DATE | updateDate(emitente.dt-atualiza) |
LOCAL.IDCIDADE | INTEGER | EMPRESA + '#' + deliveryPlaces[0].country(loc-entr.pais) + '#' + deliveryPlaces[0].state(loc-entr.estado) + '#' + deliveryPlaces[0].city(loc-entr.cidade) |
LOCAL.IDUNIDADEFEDERATIVA | INTEGER | deliveryPlaces[0].state(loc-entr.estado) |
LOCAL.IDNEXPORTADOERP | INTEGER | FIXO 1 |
LOCAL.CODIGOERP | STRING | 'ENT#'+'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) + '#' + deliveryPlaces[0].deliveryCode(loc-entr.cod-entrega) |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
LOCALTIPOLOCAL.IDLOCAL | BIGNUMBER | 'ENT#'+'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) + '#' + deliveryPlaces[0].deliveryCode(loc-entr.cod-entrega) |
LOCALTIPOLOCAL.IDTIPOLOCAL | BIGNUMBER | FIXO 'ENT' |
LOCALTIPOLOCAL.IDNATIVO | INTEGER | CASE WHEN credit(emitente.ind-cre-cli) = 4 THEN 0 ELSE 1 END |
LOCALTIPOLOCAL.IDNPADRAO | INTEGER | FIXO 0 |
LOCALTIPOLOCAL.IDNEXPORTADOERP | INTEGER | FIXO 1 |
LOCALTIPOLOCAL.CODIGOERP | STRING | 'ENT#'+'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) + '#' + deliveryPlaces[0].deliveryCode(loc-entr.cod-entrega) |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
TOTVS SFA | TIPO | DATASUL |
PARCEIROLOCAL.IDPARCEIRO | INTEGER | 'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) |
PARCEIROLOCAL.IDLOCAL | INTEGER | 'ENT#'+'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) + '#' + deliveryPlaces[0].deliveryCode(loc-entr.cod-entrega) |
PARCEIROLOCAL.IDNEXPORTADOERP | INTEGER | FIXO 1 |
PARCEIROLOCAL.CODIGOERP | STRING | 'ENT#'+'CLI#' + EMPRESA + '#' + customerCode(emitente.cod-emitente) + '#' + deliveryPlaces[0].deliveryCode(loc-entr.cod-entrega) |
CONDIÇÃO PAGAMENTO
Os dados da tabela cond-pagto do Datasul são acessados através do endpoint /dts/datasul-rest/resources/prg/cdp/v1/paymentTermsPublic e são salvos na tabela condicaopagamento do TOTVS SFA com os seguintes campos:
TOTVS SFA | TIPO | DATASUL |
CONDICAOPAGAMENTO.IDNATIVO | INTEGER | FIXO 1 |
CONDICAOPAGAMENTO.IDNREQUERDATAENTREGA | INTEGER | FIXO 0 |
CONDICAOPAGAMENTO.IDNDISPPRIMEIROPEDIDO | INTEGER | FIXO 1 |
CONDICAOPAGAMENTO.IDNPADRAO | INTEGER | FIXO 0 |
CONDICAOPAGAMENTO.DESCRICAO | STRING | description(cond-pagto.descricao) |
CONDICAOPAGAMENTO.PERCENTUALDESCONTO | NUMERIC(18,6) | FIXO 0.0 |
CONDICAOPAGAMENTO.PERCENTUALACRESCIMO | NUMERIC(18,6) | FIXO 0.0 |
CONDICAOPAGAMENTO.NUMEROPARCELAS | INTEGER | instNum(cond-pagto.num-parcelas) |
CONDICAOPAGAMENTO.NUMERODIASENTREPARCELAS | STRING | Installment.instTerm[1… 12] (cond-pagto.prazos[extent]) |
CONDICAOPAGAMENTO.CODIGO | STRING | code(cond-pagto.cod-cond-pag) |
CONDICAOPAGAMENTO.CODIGOERP | STRING | EMPRESA + '#' + code(cond-pagto.cod-cond-pag) |
ESTOQUE
Os dados da tabela saldo-estoq do Datasul são acessados através do endpoint /dts/datasul-rest/resources/prg/cep/v1/stockBalancePublic e serão salvos na tabela estoque do TOTVS SFA com os seguintes campos:
TOTVS SFA | TIPO | DATASUL |
ESTOQUE.QUANTIDADE | NUMERIC(18,6) | (qtyAvailBalance - qtyAllocated - qtyAllocOrder - qtyAllocProd) (saldo-estoq.qtidade-atu - saldo-estoq.qt-alocada - saldo-estoq.qt-aloc-ped - saldo-estoq.qt-aloc-prod) |
ESTOQUE.PESOMEDIO | NUMERIC(18,6) | PRODUTO.PESOMEDIO (lookup na tabela Produto) |
ESTOQUE.DATAPOSICAO | DATE | Current_date |
ESTOQUE.HORAPOSICAO | STRING | Current_date |
ESTOQUE.IDLOCALFILIAL | INTEGER | 'EMP#' + EMPRESA + '#' + siteCode(saldo-estoq.cod-estabel) |
ESTOQUE.IDPRODUTO | INTEGER | EMPRESA + '#' + itemCode(saldo-estoq.it-codigo) |
ESTOQUE.IDTIPOESTOQUE | INTEGER | FIXO 'EDI' |
ESTOQUE.CODIGO | STRING | warehouseCode (saldo-estoq.cod-depos) |
ESTOQUE.CODIGOERP | STRING | EMPRESA + '#' + siteCode(saldo-estoq.cod-estabel) + '#' + itemCode(saldo-estoq.it-codigo) + '#' + upper(warehouseCode(saldo-estoq.cod-depos)) |
FILIAL
Os dados das tabelas estabelec e cidade do Datasul são acessados através do endpoint /dts/datasul-rest/resources/prg/cdp/v1/establishmentsPublic e serão salvos nas tabelas parceiro, local, localfilial, parceirolocal, parceirotipoparceiro, localtipolocal do TOTVS SFA na seguinte ordem
TOTVS SFA | TIPO | DATASUL |
---|---|---|
PARCEIRO. NOMEPARCEIRO | STRING | code(estabelec.cod-estabel) + '#' + name(estabelec.nome) |
PARCEIRO.NOMEPARCEIROFANTASIA | STRING | fantasyName(mgadm.estab-compl.nom-fantasia) |
PARCEIRO.SGLTIPOPESSOA | STRING | FIXO 'PJ' |
PARCEIRO.IDNATIVO | INTEGER | FIXO 1 |
PARCEIRO.IDNCONTRIBUINTE | INTEGER | FIXO 0 |
PARCEIRO.NUMEROMATRICULA | STRING | code(estabelec.cod-estabel) |
PARCEIRO.DATAULTIMAATUALIZACAO | DATE | FIXO '2000-01-01' |
PARCEIRO.DATACADASTRO | DATE | FIXO '2000-01-01' |
PARCEIRO.IDNCLASSIFICACAOPARCEIRO | BIGNUMBER(18,6) | FIXO 'PJ' |
PARCEIRO.CNAE | STRING | cnaeCode(mgdis.inf-compl.des-campo) |
PARCEIRO.IDNEXPORTADOERP | INTEGER | FIXO 1 |
PARCEIRO.CODIGOERP | STRING | 'EMP#' + EMPRESA + '#' + code(estabelec.cod-estabel) |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
LOCAL. IDNIPI | INTEGER | FIXO 0 |
LOCAL.IDNATIVO | INTEGER | FIXO 1 |
LOCAL.IDNREQUERDATAENTREGA | INTEGER | FIXO 0 |
LOCAL.IDNREQUERNUMEROPEDIDOCLIENTE | INTEGER | FIXO 0 |
LOCAL.NUMERMATRICULA | STRING | code(estabelec.cod-estabel) |
LOCAL.BAIRRO | STRING | district(estabelec.bairro) |
LOCAL.CNPJ | STRING | cnpj(estabelec.cgc) |
LOCAL.CEP | STRING | zipCode(estabelec.cep) |
LOCAL.INSCRICAOESTADUAL | STRING | stateRegistration(estabelec.ins-estadual) |
LOCAL.DESCRICAO | STRING | name(estabelec.nome) |
LOCAL.INSCRICAOMUNICIPAL | STRING | cityRegistration(estabelec.ins-municipal) |
LOCAL.LOGRADOURO | STRING | address(estabelec.endereco) |
LOCAL.DOCUMENTOIDENTIFICACAO | STRING | cnpj(estabelec.cgc) |
LOCAL.DATACADASTRO | DATE | FIXO '2000-01-01' |
LOCAL.DATAULTIMAATUALIZACAO | DATE | FIXO '2000-01-01' |
LOCAL.IDCIDADE | BIGNUMBER(18,6) | EMPRESA + '#' + country(mgadm.estabelec.pais)+ '#' + state(mgadm.estabelec.estado() + '#' + ibgeCode(cidade.cdn-munpio-ibge) |
LOCAL.IDNEXPORTADOERP | INTEGER | FIXO 1 |
LOCAL.CODIGOERP | STRING | 'EMP#' + EMPRESA + '#' + code(estabelec.cod-estabel) |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
PARCEIROLOCAL.IDPARCEIRO | INTEGER | 'EMP#' + EMPRESA + '#' + code(estabelec.cod-estabel) |
PARCEIROLOCAL.IDLOCAL | INTEGER | 'EMP#' + EMPRESA + '#' + code(estabelec.cod-estabel) |
PARCEIROLOCAL.IDNEXPORTADOERP | INTEGER | FIXO 1 |
PARCEIROLOCAL.CODIGOERP | STRING | 'EMP#' + EMPRESA + '#' + code(estabelec.cod-estabel) |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
PARCEIROTIPOPARCEIRO.IDTIPOPARCEIRO | INTEGER | FIXO 'EMP' |
PARCEIROTIPOPARCEIRO.IDPARCEIRO | INTEGER | 'EMP#' + EMPRESA + '#' + code(estabelec.cod-estabel) |
PARCEIROTIPOPARCEIRO.CODIGOERP | STRING | 'EMP#' + EMPRESA + '#' + code(estabelec.cod-estabel) |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
LOCALTIPOLOCAL.IDLOCAL | INTEGER | 'EMP#' + EMPRESA + '#' + code(estabelec.cod-estabel) |
LOCALTIPOLOCAL.IDTIPOLOCAL | INTEGER | FIXO 'UEM' |
LOCALTIPOLOCAL.IDNATIVO | INTEGER | FIXO 1 |
LOCALTIPOLOCAL.IDNPADRAO | INTEGER | FIXO 1 |
LOCALTIPOLOCAL.IDNEXPORTADOERP | INTEGER | FIXO 1 |
LOCALTIPOLOCAL.CODIGOERP | STRING | 'EMP#' + EMPRESA + '#' + code(estabelec.cod-estabel) |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
LOCALFILIAL.IDLOCAL | INTEGER | 'EMP#' + EMPRESA + '#' + code(estabelec.cod-estabel) |
LOCALFILIAL.IDFILIAL | INTEGER | LOCAL.IDLOCAL |
LOCALFILIAL.SGLTIPOFILIAL | STRING | FIXO 'UEM' |
LOCALFILIAL.IDNPADRAO | INTEGER | FIXO 1 |
LOCALFILIAL.CODIGOERP | STRING | 'EMP#' + EMPRESA + '#' + code(estabelec.cod-estabel) |
GRUPO PRODUTO
Os dados da tabela grup-estoque do Datasul são acessados através do endpoint /dts/datasul-rest/resources/prg/cep/v1/inventoryGroupsPublic e serão salvas na tabela grupoproduto do TOTVS SFA com o os seguintes campos:
TOTVS SFA | TIPO | DATASUL |
GRUPOPRODUTO.IDNATIVO | INTEGER | FIXO 1 |
GRUPOPRODUTO.CODIGO | STRING(80) | code(grup-estoque.ge-codigo) |
GRUPOPRODUTO.CODIGOERP | STRING(80) | EMPRESA + '#' + code(grup-estoque.ge-codigo) |
GRUPOPRODUTO.DESCRICAO | STRING(80) | description(grup-estoque.descricao) |
MOEDA
Os dados das tabelas moeda e cotacao do Datasul são acessados através do endpoint /dts/datasul-rest/resources/prg/cdp/v1/currencyPublic e serão salvos nas tabelas indexador e cotacaoindexador do TOTVS SFA com os seguintes campos:
TOTVS SFA | TIPO | DATASUL |
INDEXADOR.IDNATIVO | INTEGER | FIXO 1 |
INDEXADOR.DESCRICAO | STRING | currency.currencyDescription(moeda.descricao) |
INDEXADOR.ABREVIATURA | STRING | initials(cotacao.cotacao[extent]) |
INDEXADOR.CODIGOERP | STRING | EMPRESA + '#' + currencyCod (cotacao.mo-codigo) + '#' + initials(cotacao.cotacao[extent]) |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
COTACAOINDEXADOR.DATA | DATE | yearPeriod + dayQuote(cotacao.ano-periodo + Não se aplica (De acordo com o dia do mês - 31 dias) |
COTACAOINDEXADOR.VALOR | NUMERIC(18,6) | currencyQuote(cotacao.cotacao[extent]) |
COTACAOINDEXADOR.IDINDEXADOR | INTEGER | EMPRESA + '#' + currencyCode(cotacao.mo-codigo) + '#' + initials(cotacao.cotacao[extent]) |
COTACAOINDEXADOR.CODIGOERP | STRING | EMPRESA + '#' + currencyCode(cotacao.mo-codigo) + '#' + initials(cotacao.cotacao[extent]) + '#' + COTACAOINDEXADOR.DATA |
NOTA FISCAL
Os dados das tabelas nota-fiscal, transporte, it-nota-fisc, natur-oper e item do Datasul são acessados através do endpoint /dts/datasul-rest/resources/prg/ftp/v1/invoicePublic e serão salvos nas tabelas notafiscal e notafiscalproduto do TOTVS SFA com os seguintes campos:
TOTVS SFA | TIPO | DATASUL |
---|---|---|
NOTAFISCAL.IDNCANCELADA | INTEGER | CASE WHEN cancellationDate(nota-fiscal.dt-cancela) IS NOT NULL THEN 1 ELSE 0 END |
NOTAFISCAL.NUMERONOTAFISCAL | STRING | invoiceNumber(nota-fiscal.nr-nota-fis) |
NOTAFISCAL.SERIE | STRING | series(nota-fiscal.serie) |
NOTAFISCAL.DATAEMISSAO | DATE | printDate(nota-fiscal.dt-emis-nota) |
NOTAFISCAL.VALORFATURADO | BIGNUMBER(18,6) | invoiceAmount(nota-fiscal.vl-tot-nota) |
NOTAFISCAL.VALORFRETE | BIGNUMBER(18,6) | freightValue(nota-fiscal.vl-frete) |
NOTAFISCAL.IDLOCALFILIALFATURAMENTO | BIGNUMBER(18,6) | 'EMP#' +EMPRESA+"#"+ siteID(nota-fiscal.cod-estabel) |
NOTAFISCAL.IDLOCALFILIALRETIRADA | BIGNUMBER(18,6) | 'EMP#' +EMPRESA + '#' + siteID(nota-fiscal.cod-estabel) |
NOTAFISCAL.IDLOCALFILIALVENDA | BIGNUMBER(18,6) | 'EMP#' +EMPRESA + '#' + siteID(nota-fiscal.cod-estabel) |
NOTAFISCAL.IDLOCAL | BIGNUMBER(18,6) | 'PRI#CLI#' + EMPRESA + '#' + customerID(nota-fiscal.cod-emitente) |
NOTAFISCAL.IDPARCEIRO | BIGNUMBER(18,6) | 'CLI#' + EMPRESA + '#' + customerID(nota-fiscal.cod-emitente) |
NOTAFISCAL.IDPARCEIROTRANSPORTADORA | BIGNUMBER(18,6) | '%-' + carrierName(nota-fiscal.nome-transp) |
NOTAFISCAL.IDCONDICAOPAGAMENTO | BIGNUMBER(18,6) | EMPRESA + '#' + paymentTerms(nota-fiscal.cod-cond-pag); |
NOTAFISCAL.IDUSUARIO | BIGNUMBER(18,6) | EMPRESA + '#' + representativeCode(nota-fiscal.cod-rep); |
NOTAFISCAL.IDTIPONOTAFISCAL | BIGNUMBER(18,6) | EMPRESA + '#' + transactionTypeID(nota-fiscal.nat-operacao) |
NOTAFISCAL.CODIGOERP | STRING | EMPRESA + '#' + siteID(nota-fiscal.cod-estabel) + '#' + invoiceNumber(nota-fiscal.nr-nota-fis) + '#' + series(nota-fiscal.serie) |
NOTAFISCALQUANTIDADEFATURADA* | BIGNUMBER(18,6) | SUM(nvoiceItem.internalQuantity(it-nota-fisc.qt-faturada[1])) |
NOTAFISCAL.VALORFATURADO* | BIGNUMBER(18,6) | SUM(nvoiceItem.internalQuantity(it-nota-fisc.qt-faturada[1]) * ( CASE WHEN (invoiceItem.itemTotalAmount(it-nota-fisc.vl-tot-item)) = 0 ou (invoiceItem.internalQuantity(it-nota-fisc.qt-faturada[1]) = 0 ) THEN 0 ELSE (invoiceItem.itemTotalAmount(it-nota-fisc.vl-tot-item)/invoiceItem.internalQuantity(it-nota-fisc.qt-faturada[1])) END ) ) |
NOTAFISCAL.VALORSEGURO* | BIGNUMBER(18,6) | SUM(insuranceValue(-)) |
*Atualizados na rotina SNotaFiscalProduto
TOTVS SFA | TIPO | DATASUL |
---|---|---|
TOTVS SFA | TIPO | DATASUL |
NOTAFISCALPRODUTO.QUANTIDADEFATURADA | BIGNUMBER(18,6) | CASE WHEN invoiceItem.internalQuantity(it-nota-fisc.qt-faturada[1]) IS NOT NULL THEN invoiceItem.internalQuantity(it-nota-fisc.qt-faturada[1]) ELSE 0 END |
NOTAFISCALPRODUTO.PRECOFATURADO | BIGNUMBER(18,6) | CASE WHEN(invoiceItem.itemTotalAmount(it-nota-fisc.vl-tot-item)) = 0 ou (invoiceItem.internalQuantity(it-nota-fisc.qt-faturada[1]) = 0 ) THEN 0 ELSE (invoiceItem.itemTotalAmount(it-nota-fisc.vl-tot-item)/invoiceItem.internalQuantity(it-nota-fisc.qt-faturada[1])) END |
NOTAFISCALPRODUTO.PRECOORIGINAL | BIGNUMBER(18,6) | invoiceItem.netPrice(it-nota-fisc.vl-preuni) |
NOTAFISCALPRODUTO.IDNOTAFISCAL | INTEGER | EMPRESA + '#' + siteID(nota-fiscal.cod-estabel) + '#' + invoiceNumber(nota-fiscal.nr-nota-fis) + '#' + series(nota-fiscal.serie) |
NOTAFISCALPRODUTO.IDPEDIDO | INTEGER | EMPRESA + '#' + siteID(nota-fiscal.cod-estabel) + '#' +invoiceItem.customerOrderNumber(it-nota-fisc.it-nota-fisc.nr-pedcli) |
NOTAFISCALPRODUTO.IDPRODUTO | INTEGER | EMPRESA + '#' + invoiceItem.itemCode(it-nota-fisc.it-codigo) + ( CASE WHEN it-nota-fisc.reference(it-nota-fisc.cod-refer) IS NOT NUL THEN('#' + it-nota-fisc.reference(it-nota-fisc.cod-refer)) END ) |
NOTAFISCALPRODUTO.IDTIPONOTAFISCAL | INTEGER | EMPRESA + '#' + invoiceItem.transactionTypeID(it-nota-fisc.nat-operacao) |
NOTAFISCALPRODUTO.VALORIPI | BIGNUMBER(18,6) | invoiceItemTax.vlIpiIt(it-nota-fisc.vl-ipi-it) |
NOTAFISCALPRODUTO.VALORICMS | BIGNUMBER(18,6) | invoiceItemTax.vlIcmsIt(it-nota-fisc.vl-icms-it) |
NOTAFISCALPRODUTO.VALORCSLL | BIGNUMBER(18,6) | invoiceItemTax.vlCsllRet(it-nota-fisc.val-retenc-csll) |
NOTAFISCALPRODUTO.VALORDESPESAACESSORIA | BIGNUMBER(18,6) | invoiceItem.expenseValue(it-nota-fisc.vl-despes-it) |
NOTAFISCALPRODUTO.VALORISS | BIGNUMBER(18,6) | invoiceItemTax.vlIssIt(it-nota-fisc.vl-iss-it) |
NOTAFISCALPRODUTO.VALORFRETE | BIGNUMBER(18,6) | invoiceItem.freightValue(it-nota-fisc.vl-frete-it) |
NOTAFISCALPRODUTO.VALORINSSRETIDO | BIGNUMBER(18,6) | invoiceItemTax.vlInssRf (it-nota-fisc.vl-ir-adic) |
NOTAFISCALPRODUTO.VALORIRRF | BIGNUMBER(18,6) | invoiceItemTax.vlIrfIt(it-nota-fisc.vl-irf-it) |
NOTAFISCALPRODUTO.VALORCONFINS | BIGNUMBER(18,6) | invoiceItemTax.vlCofins |
NOTAFISCALPRODUTO.VALORPIS | BIGNUMBER(18,6) | invoiceItemTax.vlPis(it-nota-fisc.val-retenc-pis) |
NOTAFISCALPRODUTO.VALORFUNRURAL | BIGNUMBER(18,6) | FIXO 0 |
NOTAFISCALPRODUTO.VALORST | BIGNUMBER(18,6) | invoiceItemTax.vlIcmsubIt(it-nota-fisc.vl-icmsub-it) |
NOTAFISCALPRODUTO.ALIQUOTAIPI | BIGNUMBER(18,6) | invoiceItemTax.ipiTaxPercent(it-nota-fisc.aliquota-ipi) |
NOTAFISCALPRODUTO.ALIQUOTAICMS | BIGNUMBER(18,6) | invoiceItemTax.icmsTaxPercent(it-nota-fisc.aliquota-icm) |
NOTAFISCALPRODUTO.ALIQUOTACONFINS | BIGNUMBER(18,6) | invoiceItemTax.cofinsTaxPercent(-) |
NOTAFISCALPRODUTO.ALIQUOTACSLL | BIGNUMBER(18,6) | invoiceItemTax.percRetCsll(-) |
NOTAFISCALPRODUTO.ALIQUOTAPIS | BIGNUMBER(18,6) | invoiceItemTax.pisTaxPercent(-) |
NOTAFISCALPRODUTO.ALIQUOTAFUNRURAL | BIGNUMBER(18,6) | FIXO 0 |
NOTAFISCALPRODUTO.ALIQUOTAINSS | BIGNUMBER(18,6) | FIXO 0 |
NOTAFISCALPRODUTO.ALIQUOTAISS | BIGNUMBER(18,6) | invoiceItemTax.issTaxPercent(it-nota-fisc.aliquota-iss) |
NOTAFISCALPRODUTO.BASERETENCAOICMS | BIGNUMBER(18,6) | invoiceItemTax.vlBsubsIt(it-nota-fisc.vl-bsubs-it) |
NOTAFISCALPRODUTO.BASEICMS | BIGNUMBER(18,6) | invoiceItemTax.vlBicmsIt(it-nota-fisc.vl-bicms-it) |
NOTAFISCALPRODUTO.BASEICMSST | BIGNUMBER(18,6) | invoiceItemTax.vlBsubsIt(it-nota-fisc.vl-bsubs-it) |
NOTAFISCALPRODUTO.BASEIPI | BIGNUMBER(18,6) | invoiceItemTax.vlBipiIt(it-nota-fisc.vl-bipi-it) |
NOTAFISCALPRODUTO.BASEISS | BIGNUMBER(18,6) | invoiceItemTax.vlBissIt(it-nota-fisc.vl-biss-it) |
NOTAFISCALPRODUTO.BASECONFINS | BIGNUMBER(18,6) | invoiceItemTax.vlBCofins(-) |
NOTAFISCALPRODUTO.BASEPIS | BIGNUMBER(18,6) | invoiceItemTax.vlBPis(-) |
NOTAFISCALPRODUTO.BASEFUNRURAL | BIGNUMBER(18,6) | FIXO 0 |
NOTAFISCALPRODUTO.CODIGOERP | STRING | EMPRESA + '#' + siteID(nota-fiscal.cod-estabel) + '#' + invoiceNumber(nota-fiscal.nr-nota-fis) + '#' + series(nota-fiscal.serie) + '#' + invoiceItem.itemCode(it-nota-fisc.it-codigo) + '#' + invoiceItem.sequence(it-nota-fisc.nr-seq-fat) |
NOTAFISCALPRODUTO.IDCFOP | INTEGER | EMPRESA and invoiceItem.transactionTypeID(it-nota-fisc.nat-operacao) (Realizado um stream lookup entre esses dois campos) |
NOTA FISCAL DEVOLUÇÃO
Os dados da tabela devol-cli do Datasul, são acessados através do endpoint dts/datasul-rest/resources/prg/ftp/v1/returnInvoicePublic e serão salvos na tabela notafiscal e notafiscalproduto do TOTVS SFA com os seguintes campos
TOTVS SFA | TIPO | DATASUL |
---|---|---|
NOTAFISCAL.IDNCANCELADA | INTEGER | FIXO 0 |
NOTAFISCAL.NUMERONOTAFISCAL | STRING | invoiceNumber(devol-cli.nr-nota-fis) |
NOTAFISCAL.SERIE | STRING | invoiceSeries(evol-cli.serie) |
NOTAFISCAL.DATAEMISSAO | DATE | returnDate(devol-cli.dt-devol) |
NOTAFISCAL.QUANTIDADEFATURADA | BIGNUMBER(18,6) | SUM(returnQty(devol-cli.qt-devolvida)) |
NOTAFISCAL.VALORFATURADO | BIGNUMBER(18,6) | SUM(returnValue(devol-cli.vl-devol)) |
NOTAFISCAL.IDLOCALFILIALFATURAMENTO | BIGNUMBER(18,6) | 'EMP#' + EMPRESA +"#"+ siteCode(devol-cli.cod-estabel) |
NOTAFISCAL.IDLOCALFILIALRETIRADA | BIGNUMBER(18,6) | 'EMP#' + EMPRESA +"#"+ siteCode(devol-cli.cod-estabel) |
NOTAFISCAL.IDLOCALFILIALVENDA | BIGNUMBER(18,6) | 'EMP#' + EMPRESA +"#"+ siteCode(devol-cli.cod-estabel) |
NOTAFISCAL.IDLOCAL | BIGNUMBER(18,6) | 'PRI#CLI#' + EMPRESA +"#"+ customerCode(devol-cli.cod-emitente) |
NOTAFISCAL.IDPARCEIRO | BIGNUMBER(18,6) | 'CLI#' + EMPRESA +"#"+ customerCode(devol-cli.cod-emitente) |
NOTAFISCAL.IDTIPONOTAFISCAL | BIGNUMBER(18,6) | EMPRESA +"#"+ upper(transactionType(devol-cli.nat-operacao)) |
NOTAFISCAL.CODIGOERP | STRING | 'DEV#' + EMPRESA +"#"+ siteCode(devol-cli.cod-estabel) +"#"+ invoiceNumber(devol-cli.nr-nota-fis) +"#"+ invoiceSeries(evol-cli.serie) |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
NOTAFISCALPRODUTO.QUANTIDADEFATURADA | BIGNUMBER(18,6) | returnQty(devol-cli.qt-devolvida) |
NOTAFISCALPRODUTO.PRECOFATURADO | BIGNUMBER(18,6) | returnValue(devol-cli.vl-devol)/returnQty(devol-cli.qt-devolvida) |
NOTAFISCALPRODUTO.PRECOORIGINAL | BIGNUMBER(18,6) | costValue(devol-cli.vl-custo)/returnQty(devol-cli.qt-devolvida) |
NOTAFISCALPRODUTO.PRECOCUSTO | BIGNUMBER(18,6) | costValue(devol-cli.vl-custo)/returnQty(devol-cli.qt-devolvida) |
NOTAFISCALPRODUTO.IDNOTAFISCAL | BIGNUMBER(18,6) | 'DEV#' + EMPRESA +"#"+ siteCode(devol-cli.cod-estabel) +"#"+ invoiceNumber(devol-cli.nr-nota-fis) +"#"+ invoiceSeries(evol-cli.serie) |
NOTAFISCALPRODUTO.IDNOTAFISCALORIGEM | BIGNUMBER(18,6) | EMPRESA +"#"+ siteCode(devol-cli.cod-estabel)+ '#' + invoiceNumber(devol-cli.nr-nota-fis) + '#' + invoiceSeries(evol-cli.serie) |
NOTAFISCALPRODUTO.IDPRODUTO | BIGNUMBER(18,6) | EMPRESA + '#' + productCode(devol-cli.it-codigo) + ( CASE WHEN referenceCode(devol-cli.cod-refer) IS NOT NUL THEN ('#' + referenceCode(devol-cli.cod-refer)) END ) |
NOTAFISCALPRODUTO.IDTIPONOTAFISCAL | BIGNUMBER(18,6) | EMPRESA +"#"+ upper(transactionType(devol-cli.nat-operacao)) |
NOTAFISCALPRODUTO.IDCFOP | BIGNUMBER(18,6) | EMPRESA and transactionTypeID(transactionType (devol-cli.nat-operacao)) (Realizado um stream lookup entre esses dois campos) |
NOTAFISCALPRODUTO.VALORTOTALBRUTO | BIGNUMBER(18,6) | returnValue(devol-cli.vl-devol) * returnQty(devol-cli.qt-devolvida) |
NOTAFISCALPRODUTO.VALORTOTALLIQUIDO | BIGNUMBER(18,6) | returnValue(devol-cli.vl-devol) * returnQty(devol-cli.qt-devolvida) |
NOTAFISCALPRODUTO.CODIGOERP | STRING | 'DEV#' + EMPRESA +"#"+ siteCode(devol-cli.cod-estabel) +"#"+ invoiceNumber(devol-cli.nr-nota-fis) +"#"+ invoiceSerie (evol-cli.serie) + '#' + productCode(devol-cli.it-codigo) + ( CASE WHEN referenceCode(devol-cli.cod-refer) IS NOT NUL THEN ('#' + referenceCode(devol-cli.cod-refer)) END ) + '# ' + returnInoiceSeq(devol-cli.sequencia) |
PEDIDO
Os dados da tabela pedido do Datasul, são acessados através do endpoint /dts/datasul-rest/resources/prg/pdp/v1/ordersPublic e serão salvos na tabela pedido, pedidoproduto e pedidoentrega do TOTVS SFA com o s seguintes campos:
TOTVS SFA | TIPO | DATASUL |
---|---|---|
PEDIDO.IDNPEDIDOLIDO | INTEGER | FIXO 1 |
PEDIDO.IDNEXPORTADOERP | INTEGER | FIXO 1 |
PEDIDO.NUMEROPEDIDO | STRING | CASE WHEN customerOrderId(ped-venda.nr-pedcli) IS NOT NULL THEN customerOrderId(ped-venda.nr-pedcli) ELSE ('ERP#' + orderId(ped-venda.nr-pedido)) END |
PEDIDO.NUMEROPEDIDOERP | STRING | orderId(ped-venda.nr-pedido) |
PEDIDO.SGLORIGEMPEDIDO | STRING | 'ERP' ou 'SIM3GWEB' ou 'SIM3GAND' |
PEDIDO.HORATRANSMISSAO | STRING | CURRENT_DATE |
PEDIDO.OBSERVACAOPEDIDO | STRING | comments(ped-venda.observacoes) |
PEDIDO.DATATRANSMISSAO | DATE | CURRENT_DATE |
PEDIDO.DATAPEDIDO | DATE | implantationDate(ped-venda.dt-implant) |
PEDIDO.IDLOCALFILIALFATURAMENTO | BIGNUMBER(18,6) | 'EMP#' + EMPRESA + UPPER(branchId(ped-venda.cod-estabel) |
PEDIDO.IDTABELAPRECO | BIGNUMBER(18,6) | EMPRESA + '#' + priceTableOrder(ped-venda.nr-tabpre) |
PEDIDO.IDCONDICAOPAGAMENTO | BIGNUMBER(18,6) | EMPRESA + '#' +paymentTerms(ped-venda.cod-cond-pag) |
PEDIDO.IDTIPOSITUACAOPEDIDO | BIGNUMBER(18,6) | orderSituation(ped-venda.cod-sit-ped) |
PEDIDO.IDTIPOPEDIDO | BIGNUMBER(18,6) | FIXO 'TPV' |
PEDIDO.IDLOCALFILIALVENDA | BIGNUMBER(18,6) | 'EMP#' + EMPRESA + UPPER(branchId(ped-venda.cod-estabel) |
PEDIDO.IDLOCAL | BIGNUMBER(18,6) | 'PRI#CLI#' + EMPRESA + '#' + customerCode(ped-venda.cod-emitente) |
PEDIDO.IDPARCEIRO | BIGNUMBER(18,6) | 'CLI#' + EMPRESA + '#' + customerCode(ped-venda.cod-emitente) |
PEDIDO.IDUSUARIO | BIGNUMBER(18,6) | representativeShortName(ped-venda.no-ab-reppri) |
PEDIDO.IDUSUARIOPROFISSIONAL | BIGNUMBER(18,6) | representativeShortName(ped-venda.no-ab-reppri) |
PEDIDO.IDTIPOLOGIA | BIGNUMBER(18,6) | EMPRESA + '#' +salesChannel(ped-venda.cod-canal-venda) |
PEDIDO.CODIGOERP | STRING | EMPRESA + '#' + UPPER(branchId(ped-venda.cod-estabel) + '#' +orderId(ped-venda.nr-pedido) |
PEDIDO.QUANTIDADETOTAL* | BIGNUMBER(18,6) | SUM(orderItems.quantityRequested (ped-item.qt-pedida)) |
PEDIDO.VALORTOTAL* | BIGNUMBER(18,6) | SUM(orderItems.priceUnitary(ped-item.vl-preuni) * orderItems.quantityRequested (ped-item.qt-pedida)) |
*Atualizados na rotina SPedidoProduto
TOTVS SFA | TIPO | DATASUL |
---|---|---|
PEDIDOPRODUTO.IDPRODUTO | BIGNUMBER(18,6) | EMPRESA + '#' +orderItems.itemCode(ped-item.it-codigo) + ( CASE WHEN orderItems.referenceCode IS NOT NUL THEN ('#' + orderItems.referenceCode(ped-item.cod-refer)) END ) |
PEDIDOPRODUTO.QUANTIDADE | BIGNUMBER(18,6) | orderItems.quantityRequested(ped-item.qt-pedida) |
PEDIDOPRODUTO.QUANTIDADEITENS | BIGNUMBER(18,6) | count(ordemItens) |
PEDIDOPRODUTO.QUANTIDADEPENDENTE | BIGNUMBER(18,6) | orderItems.quantityPending(ped-item.qt-pendente) |
PEDIDOPRODUTO.QUANTIDADEENTREGAR | BIGNUMBER(18,6) | orderItems.quantityRequested(ped-item.qt-pedida) |
PEDIDOPRODUTO.QUANTIDADEFATURADA | BIGNUMBER(18,6) | orderItems.quantityAttentive(ped-item.qt-atendida) |
PEDIDOPRODUTO.PRECOFATURADO | BIGNUMBER(18,6) | orderItems.priceUnitary(ped-item.vl-preuni) |
PEDIDOPRODUTO.PESOMEDIO | BIGNUMBER(18,6) | PRODUTO.PESOMEDIO |
PEDIDOPRODUTO.VALORDESCONTO | BIGNUMBER(18,6) | orderItems.informedDiscount(ped-item.val-desconto-inform) |
PEDIDOPRODUTO.PERCENTUALDESCONTO | BIGNUMBER(18,6) | itemPercentageDiscount(ped-item.per-des-item) |
PEDIDOPRODUTO.PRECOCUSTO | BIGNUMBER(18,6) | PRODUTO.PRECOCUSTO |
PEDIDOPRODUTO.PRECOORIGINAL | BIGNUMBER(18,6) | orderItems.originalPrice(ped-item.vl-preori) |
PEDIDOPRODUTO.PRECOSUGERIDO | BIGNUMBER(18,6) | orderItems.originalPrice(ped-item.vl-preori) |
PEDIDOPRODUTO.PRECOVENDA | BIGNUMBER(18,6) | orderItems.priceUnitary(ped-item.vl-preuni) |
PEDIDOPRODUTO.VALORIPI | BIGNUMBER(18,6) | orderItems.ipiValue(ped-item.val-ipi) |
PEDIDOPRODUTO.NATUREZAOPERACAO | STRING | orderItems.transactionType(ped-item.nat-operacao) |
PEDIDOPRODUTO.IDEMBALAGEM | BIGNUMBER(18,6) | UPPER(orderItems.msrUnit(ped-item.cod-un)) |
PEDIDOPRODUTO.IDTABELAPRECO | BIGNUMBER(18,6) | UPPER(orderItems.priceTable(ped-item.nr-tabpre)) |
PEDIDOPRODUTO.IDPEDIDO | INTEGER | EMPRESA + '#' + UPPER(branchId(ped-venda.cod-estabel) + '#' +orderId(ped-venda.nr-pedido) |
PEDIDOPRODUTO.IDTIPOSITPEDIDOPRODUTO | BIGNUMBER(18,6) | orderItems.orderItemSituation(ped-item.cod-sit-item)? |
PEDIDOPRODUTO.ORDEM | INTEGER | orderItems.sequence(ped-item.nr-sequencia) |
PEDIDOPRODUTO.CODIGOERP | STRING | EMPRESA + '#' + UPPER(branchId(ped-venda.cod-estabel) + '#' +orderId(ped-venda.nr-pedido) + orderItems.itemCode(ped-item.it-codigo) + ( CASE WHEN orderItems.referenceCode IS NOT NUL THEN ('#' + orderItems.referenceCode(ped-item.cod-refer)) END ) + '#' + orderItems.sequence(ped-item.nr-sequencia) |
PEDIDOPRODUTO.OBSERVACAO | STRING | orderItems.comments(ped-item.observacao) |
PEDIDOPRODUTO.NUMEROITEMPEDIDOCLIENTE | STRING | orderItems.purchaseOrder(ped-item.cod-ord-compra) |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
PEDIDOENTREGA.IDPEDIDO | INTEGER | EMPRESA + '#' + UPPER(branchId(ped-venda.cod-estabel) + '#' +orderId(ped-venda.nr-pedido) |
PEDIDOENTREGA.IDTIPOFRETE | BIGNUMBER(18,6) | CASE WHEN cifCity(ped-venda.cidade-cif) IS NOT NUL THEN '1' ELSE '0' END |
PEDIDOENTREGA.IDPEDIDOPRODUTO | BIGNUMBER(18,6) | EMPRESA + '#' + UPPER(branchId (ped-venda.cod-estabel) + '#' +orderId(ped-venda.nr-pedido) + orderItems.itemCode(orderItems.ped-item.it-codigo) + ( CASE WHEN orderItems.referenceCode IS NOT NUL THEN ('#' + orderItems.referenceCode (ped-item.cod-refer)) END ) + '#' + orderItems.sequence(ped-item.nr-sequencia) |
PEDIDOENTREGA.IDLOCALENTREGA | INTEGER | 'PRI#CLI#' + EMPRESA + '#' + customerCode(ped-venda.cod-emitente) |
PEDIDOENTREGA.IDPARCEIROENTREGA | INTEGER | 'CLI#' + EMPRESA + '#' + customerCode(ped-venda.cod-emitente) |
PEDIDOENTREGA.IDPARCEIROTRANSPORTADOR | BIGNUMBER(18,6) | 'TRA#' + EMPRESA + '#' + codeCarrier(transporte.cod-transp) |
PEDIDOENTREGA.IDCIDADE | INTEGER | LOCAL.IDCIDADE |
PEDIDOENTREGA.DATAENTREGA | DATE | orderItems.delireryDate(ped-item.dt-entrega) |
PEDIDOENTREGA.IDNENTREGAFUTURA | INTEGER | FIXO 0 |
PEDIDOENTREGA.QUANTIDADE | BIGNUMBER(18,6) | orderItems.quantityRequested(ped-item.qt-pedida) |
PEDIDOENTREGA.VALORFRETE | BIGNUMBER(18,6) | valueFreight(movdis.ped-venda.val-frete) |
PEDIDOENTREGA.QUANTIDADEITENS | BIGNUMBER(18,6) | count(ordemItens) |
PEDIDOENTREGA.VALORDESPESA | BIGNUMBER(18,6) | valuePacking(movdis.ped-venda.val-embal) |
PEDIDOENTREGA.NOMETRANSPORTADOR | STRING | 'TRA#' + EMPRESA + '#' + codeCarrier(transporte.cod-transp) |
PEDIDOENTREGA.VALORSEGURO | BIGNUMBER(18,6) | valueInsurance(movdis.ped-venda.val-seguro) |
PEDIDOENTREGA.IDPARCEIROREDESPACHO | BIGNUMBER(18,6) | 'TRA#' + EMPRESA + '#' + codeReshipmentTransp(transporte.cod-transp-red) |
PEDIDOENTREGA.IDNEXPORTADOERP | INTEGER | FIXO 1 |
PEDIDOENTREGA.CODIGOERP | STRING | EMPRESA + '#' + UPPER(branchId(ped-venda.cod-estabel) + '#' +orderId(ped-venda.nr-pedido) + orderItems.itemCode(ped-item.it-codigo) + ( CASE WHEN orderItems.referenceCode IS NOT NUL THEN ('#' + orderItems.referenceCode(ped-item.cod-refer)) END ) + '#' + orderItems.sequence(ped-item.nr-sequencia) + '#' + orderItems.delireryDate(ped-item.dt-entrega) |
PEDIDOENTREGA.SGLPEDIDOENTREGA | STRING | FIXO 'PRINCIPAL' |
PRODUTO
Os dados das tabelas item, alternativo, item-caixa e item-uni-estab do Datasul são acessados através do endpoint /dts/datasul-rest/resources/prg/cep/v1/productPublic e serão salvos nas tabelas produto, produtogrupoproduto, produtoembalagem e produtofilial do TOTVS SFA com os seguintes campos:
TOTVS SFA | TIPO | DATASUL |
---|---|---|
PRODUTO.DESCRICAO | STRING | productDescription(item.desc-item) |
PRODUTO.CODIGO | STRING | productCode(item.it-codigo) |
PRODUTO.COMPLEMENTO | STRING | complInformation(item.inform-compl) |
PRODUTO.OBSERVACAO | STRING | comments(item.narrativa) |
PRODUTO.CODIGOADICIONAL | STRING | auxiliaryCode(item.cod-auxiliar) |
PRODUTO.COMENTARIO | STRING | comments(item.narrativa) |
PRODUTO.IDNATIVO | INTEGER | CASE WHEN obsolete(item-uni-estab.cod-obsoleto) != 1||idnativo = 0 THEN 0 ELSE 1 END |
PRODUTO.IDNPERMITEDEVOLUCAO | INTEGER | FIXO 0 |
PRODUTO.IDNREQUERQTDMULTIPLA | INTEGER | FIXO 0 |
PRODUTO.IDNLANCAMENTO | INTEGER | FIXO 0 |
PRODUTO.IDNUTILIZACOTA | INTEGER | FIXO 0 |
PRODUTO.IDNPERMITEVENDAFRACIONADA | INTEGER | FIXO 0 |
PRODUTO.PESOMINIMO | BIGNUMBER(18,6) | netWeight(item.peso-liquido) |
PRODUTO.PESOMAXIMO | BIGNUMBER(18,6) | grossWeight(item.peso-bruto) |
PRODUTO.PESOMEDIO | BIGNUMBER(18,6) | grossWeight(item.peso-bruto) |
PRODUTO.QUANTIDADEAPRESENTACAO | BIGNUMBER(18,6) | netWeight(item.peso-liquido) |
PRODUTO.PRECOCUSTO | BIGNUMBER(18,6) | productSiteCost[0].batchMatValue(item-estab.val-unit-mat-m) + productSiteCost[0].batchMOBValue(item-estab.val-unit-mob-m + productSiteCost[0].batchGGFValue(item-estab.val-unit-ggf-m) |
PRODUTO.IDGRUPOPRODUTO | BIGNUMBER(18,6) | EMPRESA + '#' + inventoryGroup(item.ge-codigo) |
PRODUTO.IDUNIDADEMEDIDAPADRAO | BIGNUMBER(18,6) | EMPRESA+ '#' + measureUnit(item.un) |
PRODUTO.IDUNIDADEMEDIDAVENDA | BIGNUMBER(18,6) | EMPRESA+ '#' + measureUnit(item.un) |
PRODUTO.IDNSERVICO | INTEGER | FIXO 0 |
PRODUTO.CODIGOERP | STRING | EMPRESA + '#' + productCode(item.it-codigo) +( CASE WHEN referenceCode IS NOT NULL THEN '#' + referenceCode END ) |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
PRODUTOGRUPOPRODUTO.IDPRODUTO | INTEGER | EMPRESA + '#' + productCode(item.it-codigo) +( CASE WHEN referenceCode IS NOT NULL THEN '#' + referenceCode END ) |
PRODUTOGRUPOPRODUTO.IDGRUPOPRODUTO | INTEGER | EMPRESA + '#' + inventoryGroup(item.ge-codigo) |
PRODUTOGRUPOPRODUTO.CODIGOERP | STRING | EMPRESA + '#' + productCode(item.it-codigo) +( CASE WHEN referenceCode IS NOT NULL THEN '#' + referenceCode END ) + '#' + inventoryGroup(item.ge-codigo) |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
PRODUTOEMBALAGEM.FATOREMBALAGEMPADRAO | BIGNUMBER(18,6) | FIXO 1.0 |
PRODUTOEMBALAGEM.FATOREMBALAGEM | BIGNUMBER(18,6) | FIXO 1.0 |
PRODUTOEMBALAGEM.IDNEXIBEEMBALAGEM | INTEGER | FIXO 1 |
PRODUTOEMBALAGEM.IDNPADRAO | INTEGER | FIXO 1 |
PRODUTOEMBALAGEM.IDNATIVO | INTEGER | CASE WHEN obsolete(item-uni-estab.cod-obsoleto) != 1||idnativo = 0 THEN 0 ELSE 1 END |
PRODUTOEMBALAGEM.IDPRODUTO | INTEGER | EMPRESA + '#' + productCode(item.it-codigo) +( CASE WHEN referenceCode IS NOT NULL THEN '#' + referenceCode END ) |
PRODUTOEMBALAGEM.IDEMBALAGEM | BIGNUMBER(18,6) | EMPRESA+ '#' + measureUnit(item.un) |
PRODUTOEMBALAGEM.CODIGOERP | STRING | EMPRESA + '#' + productCode(item.it-codigo) +( CASE WHEN referenceCode IS NOT NULL THEN '#' + referenceCode END ) |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
PRODUTOFILIAL.IDPRODUTO | INTEGER | EMPRESA + '#' + productCode(item.it-codigo) +( CASE WHEN referenceCode IS NOT NULL THEN '#' + referenceCode END ) |
PRODUTOFILIAL.IDLOCALFILIAL | INTEGER | 'EMP#' + EMPRESA + '#' + productSite[0].siteCode(item-uni-estab.cod-estabel) |
PRODUTOFILIAL.CODIGOERP | STRING | 'EMP#' + EMPRESA + '#' + productSite[0].siteCode(item-uni-estab.cod-estabel) + '#' + productCode(item.it-codigo) +( CASE WHEN referenceCode IS NOT NULL THEN '#' + referenceCode END ) |
PRODUTOFILIAL.IDNPADRAO | INTEGER | FIXO 1 |
TIPO SITUAÇÃO PEDIDO
A entidade tiposituacaopedido do TOTVS SFA conta com valores fixos:
TOTVS SFA | TIPO | VALORES |
TIPOSITUACAOPEDIDO.IDNATIVO | INTEGER | 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1 |
TIPOSITUACAOPEDIDO.DESCRICAO | STRING | 'NAO FINALIZADO'; 'ABERTO'; 'ATENDIDO PARCIAL', 'ATENDIDO TOTAL'; 'PENDENTE'; 'SUSPENSO'; 'CANCELADO';'FATUR BALCAO'; 'CANCELADO DATASUL'; 'INATIVO'; 'SIMULACAO DE ORCAMENTO'; 'ORCAMENTO FINALIZADO'; 'ORCAMENTO GRAVADO' |
TIPOSITUACAOPEDIDO.SGLTIPOSITUACAOPEDIDO | STRING | 'NF'; 'PA'; 'FP'; 'PF'; 'PP'; 'PS'; 'PC'; 'FB'; 'CD'; 'INI'; 'SO'; 'OF'; 'OR |
TIPOSITUACAOPEDIDO.CODIGOERP | STRING | 'NF'; '1'; '2'; '3'; '4'; '5'; '6'; '7'; 'CD'; 'INI'; 'SO'; 'OF'; 'OR |
TABELA PREÇO
Os dados da tabela tb-preco do Datasul são acessados através do endpoint /dts/datasul-rest/resources/prg/cdp/v1/priceTablePublic e serão salvos na tabela tabelapreco do TOTVS SFA com os seguintes campos:
OTVS SFA | TIPO | DATASUL |
TABELAPRECO.CODIGO | STRING | priceTableCode(tb-preco.nr-tabpre) |
TABELAPRECO.DESCRICAO | STRING(80) | priceTableCode(tb-preco.nr-tabpre) + '-' + priceTableDescription(tb-preco.descricao) |
TABELAPRECO.DATAINICIOVIGENCIA | TIMESTAMP | startDate(tb-preco.dt-inival) |
TABELAPRECO.DATAFIMVIGENCIA | TIMESTAMP | endDate(tb-preco.dt-fimval) |
TABELAPRECO.IDNATIVO | INTEGER | CASE WHEN status(tb-preco.situacao) != 1 THEN 0 ELSE 1 END |
TABELAPRECO.IDNACALCULOANTECIPACAO | INTEGER | FIXO 0 |
TABELAPRECO.IDNLISTAPEDIDO | INTEGER | FIXO 1 |
TABELAPRECO.IDNDISPPRIMEIROPEDIDO | INTEGER | FIXO 0 |
TABELAPRECO.IDINDEXADOR | BIGNUMBER(18,6) | EMPRESA + '#' + CurrencyCode(tb-preco.mo-codigo) |
TABELAPRECO.CODIGOERP | STRING | EMPRESA + '#' +priceTableCode(tb-preco.nr-tabpre) |
TABELA PRECO PRODUTO
Neste adapter deverão ser geradas as informações dos produtos das tabelas de preço. Tabela preco-item e item-uni-estab, são acessados através do endpoint /dts/datasul-rest/resources/prg/cdp/v1/priceItemPublic, e serão salvos na tabela tabelaprecoproduto do TOTVS SFA com os seguintes campos:
TOTVS SFA | TIPO | DATASUL |
TABELAPRECOPRODUTO.IDNCALCULAANTECIPACAO | INTEGER | FIXO 0 |
TABELAPRECOPRODUTO.PRECO | BIGNUMBER(18,6) | salesPrice(preco-item.preco-venda) |
TABELAPRECOPRODUTO.PRECOMINIMO | BIGNUMBER(18,6) | 0.0 |
TABELAPRECOPRODUTO.PRECOMAXIMO | BIGNUMBER(18,6) | 99999.990000 |
TABELAPRECOPRODUTO.FAIXAESCALONAMENTOMINIMO | BIGNUMBER(18,6) | minimumQuantity(preco-item.quant-min) |
TABELAPRECOPRODUTO.FAIXAESCALONAMENTOMAXIMO | BIGNUMBER(18,6) | FIXO 99999.99 ou minimumQuantity(preco-item.quant-min) + 1 |
TABELAPRECOPRODUTO.DATAINICIOVIGENCIA | DATE | startDate(preco-item.dt-inival) |
TABELAPRECOPRODUTO.DATAFIMVIGENCIA | DATE | FIXO 9999-12-31 |
TABELAPRECOPRODUTO.IDNPRECOFIXO | INTEGER | FIXO 0 |
TABELAPRECOPRODUTO.IDNUTILIZALOTE | INTEGER | FIXO 0 |
TABELAPRECOPRODUTO.IDTABELAPRECO | BIGNUMBER(18,6) | EMPRESA + '#' + priceTable(preco-item.nr-tabpre) |
TABELAPRECOPRODUTO.IDPRODUTO | BIGNUMBER(18,6) | EMPRESA + '#' + itemCode(preco-item.it-codigo) ( CASE WHEN referenceCode IS NOT NULL THEN (+ '#' +referenceCode(preco-item.cod-refer) END ) |
TABELAPRECOPRODUTO.CODIGOERP | STRING | EMPRESA + '#' + priceTable(preco-item.nr-tabpre) + EMPRESA + '#' + itemCode(preco-item.it-codigo) ( CASE WHEN referenceCode IS NOT NULL THEN (+ '#' +referenceCode(preco-item.cod-refer) END ) + '#' + startDate(preco-item.dt-inival) + '#' + ordem (calculada baseada na faixa de escalonamento) |
TIPO COBRANÇA
Os dados da tabela cart_bcia do Datasul são acessados através do endpoint /dts/datasul-rest/resources/prg/cdp/v1/portfolioPublic e serão salvos na tabela tipocobranca do TOTVS SFA com os seguintes campos:
OTVS SFA | TIPO | DATASUL |
TIPOCOBRANCAO.IDNATIVO | INTEGER | FIXO 1 |
TIPOCOBRANCAO.IDNREQUERBANCO | INTEGER | FIXO 0 |
TIPOCOBRANCAO.IDNDISPPRIMEIROPEDIDO | INTEGER | FIXO 1 |
TIPOCOBRANCAO.IDREEMBOLSAVEL | INTEGER | FIXO 1 |
TIPOCOBRANCAO.IDNVALIDAVALORLIMITE | INTEGER | FIXO 1 |
TIPOCOBRANCAO.IDNPERMITEALTERARREEMBOLSO | INTEGER | FIXO 1 |
TIPOCOBRANCAO.IDNPADRAO | INTEGER | FIXO 0 |
TIPOCOBRANCAO.DESCRICAO | STRING | portfolioDescription(cart_bcia.des_cart_bcia) |
TIPOCOBRANCAO.CODIGO | STRING | portfolioCode(cart_bcia.cod_cart_bcia) |
TIPOCOBRANCA.CODIGOERP | STRING | EMPRESA + '#' + portfolioCode(cart_bcia.cod_cart_bcia) |
TIPO FRETE
A entidade tipofrete do TOTVS SFA conta com valores fixos:
TOTVS SFA | TIPO | VALORES |
TIPOFRETE.DESCRICAO | STRING | 'CIF - Por conta do fornecedor'; 'CIF - Por conta do fornecedor'; 'OUTROS' |
TIPOFRETE.SGLTIPOFRETE | STRING | 'CIF'; 'FOB'; 'OUTROS' |
TIPOFRETE.IDNATIVO | INTEGER | 1; 1; 1 |
TIPOFRETE.IDNPADRAO | INTEGER | 0; 1; 0 |
TIPOFRETE.IDNSOMARFRETE | INTEGER | 0; 1; 1 |
TIPOFRETE.CODIGOERP | STRING | '1'; '2'; '3' |
TIPO NOTA FISCAL
Os dados da tabela cfop-natur do Datasul são acessados através do endpoint /dts/datasul-rest/resources/prg/cdp/v1/transactionTypesPublic e serão salvos na tabela tiponotafiscal do TOTVS SFA com os seguintes campos:
TOTVS SFA | TIPO | DATASUL |
TIPONOTAFISCAL.IDNATIVO | INTEGER | FIXO 1 |
TIPONOTAFISCAL.CODIGOERP | STRING | EMPRESA + '#' + code(natur-oper.nat-operacao) |
TIPONOTAFISCAL.DESCRICAO | STRING | description(natur-oper.nat-operacao) |
TITULOS À RECEBER
Os dados das tabelas tit-acr e espec_docto do Datasul são acessados através do endpoint /dts/datasul-rest/resources/prg/fin/v1/receivableDocumentPublic e serão salvos na tabela financeirotitulo do TOTVS SFA com os seguintes campos:
TOTVS SFA | TIPO | DATASUL |
---|---|---|
TOTVS SFA | TIPO | DATASUL |
FINANCEIROTITULO.IDLOCAL | BIGNUMBER | 'PRI#CLI#' + EMPRESA +"#"+ customerCode(tit_acr.cdn_cliente) |
FINANCEIROTITULO.IDPARCEIRO | BIGNUMBER | 'CLI#' + EMPRESA +"#"+ customerCode(tit_acr.cdn_cliente) |
FINANCEIROTITULO.DESCRICAO | STRING | documentTypeDescription(espec_docto.ind_tip_espec_docto) |
FINANCEIROTITULO.SGLTIPOTITULO | STRING | CASE WHEN(TIPODOCUMENTO.DESCRICAO = 'Antecipação' ou TIPODOCUMENTO.DESCRICAO = 'Nota de Crédito') THEN 'TC' WHEN(TIPODOCUMENTO.DESCRICAO = 'Nenhum' ou TIPODOCUMENTO.DESCRICAO = 'Normal' ou TIPODOCUMENTO.DESCRICAO = 'Cheques Recebidos' ou TIPODOCUMENTO.DESCRICAO = 'Nota de Débito' ou TIPODOCUMENTO.DESCRICAO = 'Nota Fiscal' ou TIPODOCUMENTO.DESCRICAO = 'Aviso Débito' ou TIPODOCUMENTO.DESCRICAO = 'Nota Promissória' ou TIPODOCUMENTO.DESCRICAO = 'Previsão' ou TIPODOCUMENTO.DESCRICAO = 'Provisão') THEN 'TD' ELSE 'TD' END |
FINANCEIROTITULO.IDNPAGO | INTEGER | CASE WHEN settleDate(tit_acr.dat_liquidac_tit_acr) IS NOT NULL THEN 1 ELSE 0 END |
FINANCEIROTITULO.NUMERODOCUMENTO | STRING | documentNumber(tit_acr.cod_tit_acr) |
FINANCEIROTITULO.NUMEROPARCELA | STRING | CASE WHEN documentParcel(tit_acr.cod_parcela) IS NULL THEN '01' ELSE documentParcel(tit_acr.cod_parcela) END |
FINANCEIROTITULO.DATAMOVIMENTO | DATE | issueDate(tit_acr.dat_emis_docto) |
FINANCEIROTITULO.DATAVENCIMENTO | DATE | dueDate(tit_acr.dat_vencto_tit_acr) |
FINANCEIROTITULO.DATAPAGAMENTO | DATE | settleDate(tit_acr.dat_liquidac_tit_acr) |
FINANCEIROTITULO.PORTADOR | STRING | 'POR#' + EMPRESA +"#"+ holderCode(tit_acr.cod_portador) |
FINANCEIROTITULO.VALORORIGINAL | BIGNUMBER(18,6) | CASE WHEN grossValue(tit_acr.val_origin_tit_acr) ! = 0 THEN grossValue(tit_acr.val_origin_tit_acr) ELSE 0 END |
FINANCEIROTITULO.VALORPAGOPARCIAL | BIGNUMBER(18,6) | CASE WHEN settleDate(tit_acr.dat_liquidac_tit_acr) IS NULL THEN (grossValue(tit_acr.val_origin_tit_acr) - balanceValue(tit_acr.val_sdo_tit_acr)) ELSE 0 END |
FINANCEIROTITULO.VALORDESCONTO | BIGNUMBER(18,6) | discountValue(tit_acr.val_desc_tit_acr) |
FINANCEIROTITULO.VALORJUROS | BIGNUMBER(18,6) | interestValue(tit_acr.val_juro) |
FINANCEIROTITULO.VALORMULTA | BIGNUMBER(18,6) | penaltyValue tit_acr.val_multa_tit_acr) |
FINANCEIROTITULO.OBSERVACAO | STRING | TIPODOCUMENTO.OBSERVACAO |
FINANCEIROTITULO.IDUSUARIO | BIGNUMBER(18,6) | EMPRESA+"#"+represent(tit_acr.cdn_repres) |
FINANCEIROTITULO.IDCLASSIFICACAOFINTITULO | BIGNUMBER(18,6) | CASE WHEN reversal(tit_acr.log_tit_acr_estordo) = TRUE THEN 'Cancelado' WHEN bankStatusDescription(tit_acr.ind_sit_bcia_tit_acr) = 'Protesto' THEN 'Protesto Efetivo' WHEN balanceValue(tit_acr.val_sdo_tit_acr) = 0 THEN 'Baixado' WHEN balanceValue(tit_acr.val_sdo_tit_acr) < grossValue(tit_acr.val_origin_tit_acr) THEN 'Parcialmente Baixado' ELSE 'Normal' END |
FINANCEIROTITULO.IDINDEXADOR | BIGNUMBER(18,6) | EMPRESA +"#"+ currencyCode(tit_acr.cod_indic_econ) |
FINANCEIROTITULO.IDLOCALFILIAL | BIGNUMBER(18,6) | 'EMP# '+ EMPRESA + "#"+ branchCode(tit_acr.cod_estab) |
FINANCEIROTITULO.CODIGOERP | STRING | EMPRESA +"#"+ branchCode(tit_acr.cod_estab) +"#"+ documentNumber(tit_acr.cod_tit_acr)+"#"+ documentPrefix(tit_acr.cod_ser_docto) +"#"+ documentParcel(tit_acr.cod_parcela) +"#"+ documentType(tit_acr.cod_espec_docto)+"#"+ customerCode(tit_acr.cdn_cliente) |
TRANSPORTADORA
Os dados da tabela transporte e cidade do Datasul são acessados através do endpoint /dts/datasul-rest/resources/prg/cdp/v1/carriersPublic e serão salvos nas tabelas parceiro, local, parceirolocal, localtelefone, parceirotipoparceiro, localtipolocal do TOTVS SFA com os seguintes campos:
TOTVS SFA | TIPO | DATASUL |
---|---|---|
PARCEIRO.NOMEPARCEIRO | STRING | code(transporte.cod-transp) + '-' + name(transporte.nome) |
PARCEIRO.NOMEPARCEIROFANTASIA | STRING | code(transporte.cod-transp) + '-' + shortName(transporte.nome-abrev) |
PARCEIRO.SGLTIPOPESSOA | STRING | CASE WHEN descType(transporte.natureza) = 'PESSOA JURÍDICA' THEN 'PJ' WHEN descType(transporte.natureza) = 'PESSOA FÍSICA' THEN 'PF' WHEN descType(transporte.natureza) = 'ESTRANGEIRO' THEN 'ES' WHEN descType(transporte.natureza) = 'TRADING' THEN 'TR' ELSE 'ES' END |
PARCEIRO.IDNATIVO | INTEGER | FIXO 1 |
PARCEIRO.IDNCONTRIBUINTE | INTEGER | FIXO 0 |
PARCEIRO.NUMEROMATRICULA | STRING | code(transporte.cod-transp) |
PARCEIRO.DATAULTIMAATUALIZACAO | DATE | FIXO 2000-01-01 |
PARCEIRO.DATACADASTRO | DATE | FIXO 2000-01-01 |
PARCEIRO.IDCLASSIFICACAOPARCEIRO | BIGNUMBER(18,6) | CASE WHEN descType(transporte.natureza) = 'PESSOA JURÍDICA' THEN 'PJ' WHEN descType(transporte.natureza) = 'PESSOA FÍSICA' THEN 'PF' WHEN descType(transporte.natureza) = 'ESTRANGEIRO' THEN 'ES' WHEN descType(transporte.natureza) = 'TRADING' THEN 'TR' ELSE 'ES' END |
PARCEIRO.IDNEXPORTADOERP | DATE | FIXO 1 |
PARCEIRO.CODIGOERP | STRING | 'TRA#' + EMPRESA + '#' + code(transporte.cod-transp) |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
LOCAL.IDNIPI | INTEGER | FIXO 0 |
LOCAL.IDNATIVO | INTEGER | FIXO 1 |
LOCAL.IDNREQUERDATAENTREGA | INTEGER | FIXO 0 |
LOCAL.IDNREQUERNUMEROPEDIDOCLIENTE | INTEGER | FIXO 0 |
LOCAL.NUMEROMATRICULA | STRING | code(transporte.cod-transp) |
LOCAL.BAIRRO | STRING | district(transporte.bairro) |
LOCAL.CNPJ | STRING | cnpj(transporte.cgc) |
LOCAL.CEP | STRING | zipCode(transporte.cep) |
LOCAL.INSCRICAOESTADUAL | STRING | stateRegistration(transporte.ins-estadual) |
LOCAL.DESCRICAO | STRING | code(transporte.cod-transp) + '-' + name(transporte.nome) |
LOCAL.LOGRADOURO | STRING | address(transporte.endereco) |
LOCAL.DOCUMENTOIDENTIFICACAO | STRING | cnpj(transporte.cgc) |
LOCAL.DATACADASTRO | DATE | FIXO 2000-01-01 |
LOCAL.DATAULTIMAATUALIZACAO | DATE | FIXO 2000-01-01 |
LOCAL.IDCIDADE | BIGNUMBER(18,6) | EMPRESA + '#' + country(transporte.pais) + '#' + stat (transporte.estado) + '#' + city(transporte.cidade) |
LOCAL.IDNEXPORTADOERP | INTEGER | FIXO 1 |
LOCAL.CODIGOERP | STRING | 'TRA#' + EMPRESA + '#' + code(transporte.cod-transp) |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
PARCEIROLOCAL.IDPARCEIRO | BIGNUMBER(18,6) | 'TRA#' + EMPRESA + '#' + code(transporte.cod-transp) |
PARCEIROLOCAL.IDLOCAL | BIGNUMBER(18,6) | 'TRA#' + EMPRESA + '#' + code(transporte.cod-transp) |
PARCEIROLOCAL.IDNEXPORTADOERP | INTEGER | FIXO 1 |
PARCEIROLOCAL.CODIGOERP | STRING | 'TRA#' + EMPRESA + '#' + code(transporte.cod-transp) |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
LOCALTELEFONE.TELEFONE | STRING | phone(transporte.telefone) |
LOCALTELEFONE.IDNPADRAO | INTEGER | FIXO 1 |
LOCALTELEFONE.IDNEXPORTADOERP | INTEGER | FIXO 1 |
LOCALTELEFONE.IDPARCEIRO | BIGNUMBER(18,6) | 'TRA#' + EMPRESA + '#' + code(transporte.cod-transp) |
LOCALTELEFONE.IDLOCAL | BIGNUMBER(18,6) | 'TRA#' + EMPRESA + '#' + code(transporte.cod-transp) |
LOCALTELEFONE.CODIGOERP | STRING | 'TRA#' + EMPRESA + '#' + code(transporte.cod-transp) + '#' + phone(transporte.telefone) |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
PARCEIROTIPOPARCEIRO.IDTIPOPARCEIRO | BIGNUMBER(18,6) | FIXO 'TRA' |
PARCEIROTIPOPARCEIRO.PARCEIRO | BIGNUMBER(18,6) | 'TRA#' + EMPRESA + '#' + code(transporte.cod-transp) |
PARCEIROTIPOPARCEIRO.CODIGOERP | STRING | 'TRA#' + EMPRESA + '#' + code(transporte.cod-transp) |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
LOCALTIPOLOCAL.IDLOCAL | BIGNUMBER(18,6) | 'TRA#' + EMPRESA + '#' + code(transporte.cod-transp) |
LOCALTIPOLOCAL.IDTIPOLOCAL | BIGNUMBER(18,6) | FIXO 'PRI' |
LOCALTIPOLOCAL.IDNATIVO | INTEGER | FIXO 1 |
LOCALTIPOLOCAL.IDNPADRAO | INTEGER | FIXO 0 |
LOCALTIPOLOCAL.IDNEXPORTADOERP | INTEGER | FIXO 1 |
LOCALTIPOLOCAL.CODIGOERP | STRING | 'TRA#' + EMPRESA + '#' + code(transporte.cod-transp) |
UNIDADE MEDIDA
Os dados da tabela tab-unidade do Datasul são acessados através do endpoint /dts/datasul-rest/resources/prg/cdp/v1/unityMeasuresPublic e serão salvos na tabela unidademedida do TOTVS SFA com os seguintes campos:
TOTVS SFA | TIPO | DATASUL |
UNIDADEMEDIDA.IDNATIVO | INTEGER | FIXO 1 |
UNIDADEMEDIDA.IDNDISPONIVELPARACOTA | INTEGER | FIXO 0 |
UNIDADEMEDIDA.DESCRICAO | STRING | UPPER(description(tab-unidade.descricao)) |
UNIDADEMEDIDA.CODIGO | STRING | UPPER(code(tab-unidade.un)) |
UNIDADEMEDIDA.SGLUNIDADEMEDIDA | STRING | UPPER(code(tab-unidade.un)) |
UNIDADEMEDIDA.SGLTIPOUNIDADEMEDIDA | STRING | UPPER(code(tab-unidade.un)) |
UNIDADEMEDIDA.CODIGOERP | STRING | EMPRESA + '#' +UPPER(code(tab-unidade.un)) |
VENDEDOR
Os dados da tabela repres do Datasul são acessados através do endpoint /dts/datasul-rest/resources/prg/cdp/v1/representativesPublic e serão salvos na tabela usuario, usuariotelefone, usuarioemail e usuariofilial do TOTVS SFA com os seguintes campos:
TOTVS SFA | TIPO | DATASUL |
---|---|---|
USUARIO.LOGIN | STRING | shortName(repres.nome-abrev) |
USUARIO.NOME | STRING(80) | code(mgadm.repres.cod-rep) + '-' + name(repres.nome) |
USUARIO.SENHA | STRING(30) | SHA1HEX(Senha Fixa) → Valor é passado fixo na integração |
USUARIO.EMAIL | STRING | email(repres.e-mail) |
USUARIO.TELEFONE | STRING | phone1(repres.telefone) |
USUARIO.DATACADASTRO | DATE | FIXO DataAtual |
USUARIO.IDNATIVO | INTEGER | CASE WHEN status(repres.ind-situacao) = '1' THEN 1 ELSE 0 END |
USUARIO.FAX | STRING | fax(repres.telefax) |
USUARIO.ENDERECO | STRING | address(repres.endereco) |
USUARIO.CEP | STRING | zipCode(repres.cep) |
USUARIO.IDCIDADE | BIGNUMBER(18,6) | EMPRESA + '#' + UPPER(country(repres.pais)) +'#' + UPPER(state(repres.estado)) + '#' + UPPER(city(repres.cidade)) |
USUARIO.BAIRRO | STRING | district(repres.bairro) |
USUARIO.IDPERFILACESSO | BIGNUMBER(18,6) | FIXO 'XML#PV' |
USUARIO.IDNEXIGEALFANUMERICO | INTEGER | FIXO 0 |
USUARIO.IDNPERMITIRINTEGRACAO | INTEGER | FIXO 1 |
USUARIO.IDNHABILITARLDAP | INTEGER | FIXO 0 |
USUARIO.DOCUMENTOIDENTIFICACAO | STRING(80) | cnpj(repres.cgc) |
USUARIO.IDNEXPORTADOERP | INTEGER | FIXO 1 |
USUARIO.DEPARTAMENTO | STRING | FIXO VALOR DA EMPRESA NO KETTLE |
USUARIO.CODIGOERP | STRING | EMPRESA + '#' + code(mgadm.repres.cod-rep) |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
USUARIOTELEFONE.TELEFONE | STRING | phone1(repres.telefone) ou telex(repres.telex) ou fax(repres.telefax) |
USUARIOTELEFONE.IDNPADRAO | INTEGER | CASE WHEN type = 'TEL' THEN 1 ELSE 0 END |
USUARIOTELEFONE.IDUSUARIO | BIGNUMBER(18,6) | EMPRESA + '#' + code(mgadm.repres.cod-rep) |
USUARIOTELEFONE.CODIGOERP | STRING | EMPRESA + '#' + code(mgadm.repres.cod-rep) + '#' +type('TEL' ou 'TLX' ou 'FAX')+'#'+ (phone1(repres.telefone) ou telex(repres.telex) ou fax(repres.telefax)) |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
USUARIOEMAIL.EMAIL | STRING | lower(email(repres.e-mail)) |
USUARIOEMAIL.IDNPADRAO | INTEGER | FIXO 1 |
USUARIOEMAIL.IDUSUARIO | BIGNUMBER(18,6) | EMPRESA + '#' + code(mgadm.repres.cod-rep) |
USUARIOEMAIL.CODIGOERP | STRING(80) | EMPRESA + '#' + code(mgadm.repres.cod-rep) + '#' + lower(email(repres.e-mail)) |
TOTVS SFA | TIPO | DATASUL |
---|---|---|
USUARIOFILIAL.IDUSUARIO | BIGNUMBER(18,6) | EMPRESA + '#' + code(mgadm.repres.cod-rep) |
USUARIOFILIAL.IDLOCALFILIAL | BIGNUMBER(18,6) | local.idlocal (onde local.codigoerp like 'EMP#'%) |
USUARIOFILIAL.IDNPADRAO | INTEGER | FIXO 0 |
USUARIOFILIAL.CODIGOERP | STRING | local.codigoerp(onde local.codigoerp like 'EMP#'%) +'#'+ code(mgadm.repres.cod-rep) |
CFOP
Os dados da tabela cond-pagto do Datasul são acessados através do endpoint /dts/datasul-rest/resources/prg/cdp/v1/paymentTermsPublic e são salvos na tabela CFOP do TOTVS SFA com os seguintes campos:
TOTVS SFA | TIPO | DATASUL |
---|---|---|
CFOP.DESCRICAO | STRING | code(cond-pagto.cod-cond-pag) |
CFOP.DESCRICAOCLASSIFICA | STRING | description(cond-pagto.descricao) |
CFOP.CODIGOCOMPLEMENTO | STRING | type |
CFOP.IDNATIVO | INTEGER | CASE WHEN actv = TRUE THEN 1 ELSE 0 END |
CFOP.CODIGOERP | STRING | EMPRESA + '#' + cfopCode |
CLASSIFICAÇÃO FINANCEIRA TITULO
A entidade classificacaofintitulo do TOTVS SFA conta com valores fixos:
TOTVS SFA | TIPO | VALORES |
CLASSIFICACAOFINTITULO.IDNATIVO | INTEGER | 1; 1; 1; 1; 1; 1; 1; 1; 1 |
CLASSIFICACAOFINTITULO.DESCRICAO | STRING | 'Normal'; 'Cancelado'; 'Protesto Solicitado'; 'Protesto Efetivo'; 'Falencia'; 'Concordata'; 'Incobrável'; 'Baixado'; 'Parcialmente Baixado' |
CLASSIFICACAOFINTITULO.SGLCLASSIFICACAO | STRING | '001'; '002'; '003'; '004'; '005'; '006'; '007'; '008'; '009' |
CLASSIFICACAOFINTITULO.CODIGOERP | STRING | '001'; '002'; '003'; '004'; '005'; '006'; '007'; '008'; '009' |
CLASSIFICAÇÃO PARCEIRO
A entidade classificacaoparceiro do TOTVS SFA conta com valores fixos:
TOTVS SFA | TIPO | VALORES |
CLASSIFICACAOPARCEIRO.IDNATIVO | INTEGER | 1; 1; 1; 1 |
CLASSIFICACAOPARCEIRO.DESCRICAO | STRING | 'PESSOA FÍSICA'; 'PESSOA JURÍDICA'; 'ESTRANGEIRO'; 'TRADING' |
CLASSIFICACAOPARCEIRO.ORDEM | INTEGER | 0; 1; 2; 3 |
CLASSIFICACAOPARCEIRO.CODIGOERP | STRING | 'PF'; 'PJ'; 'ES'; 'TR' |
GRUPO PARCEIRO
Os dados da tabela mgadm.gr do Datasul são acessados através do /dts/datasul-rest/resources/prg/cdp/v1/customerGroupsPublic e são gravados na tabela grupoparceiro do SFA com os seguintes campos.
TOTVS SFA | TIPO | DATASUL |
GRUPOPARCEIRO.DESCRICAO | STRING | description(mgadm.gr-cli.descricao) |
GRUPOPARCEIRO.SGLGRUPOPARCEIRO | STRING | FIXO 'PARCEIRO' |
GRUPOPARCEIRO.IDNATIVO | INTEGER | FIXO 1 |
GRUPOPARCEIRO.CODIGOERP | STRING | EMPRESA + '#' + code(mgadm.gr-cli.cod-gr-cli) |
LINHA
Os dados da tabela familia do Datasul são acessados através do /dts/datasul-rest/resources/prg/cep/v1/materialFamiliesPublic e são gravados na tabela linha do SFA com os seguintes campos.
TOTVS SFA | TIPO | DATASUL |
LINHA.IDNATIVO | INTEGER | FIXO 1 |
LINHA.DESCRICAO | STRING | description(familia.descricao) |
LINHA.CODIGO | STRING | code(familia.fm-codigo) |
LINHA.CODIGOERP | STRING | EMPRESA + '#' + code(familia.fm-codigo) |
LOCAL IDENTIFICACAO
Os dados que serão salvos na tabela localidentificacao são retirados do próprio SFA utilizando a seguinte consulta:
SELECT
p.idparceiro,
p.idnexportadoerp,
'cnpj'
AS
idTipoIdentificacao_,
l.idlocal,
pj.cnpjprincipal
AS
documentoIdentificacao,
l.codigoerp
AS
codigoERPLocal
FROM
parceiro p
INNER
JOIN
pessoajuridica pj
ON
p.idparceiro = pj.idpessoajuridica
AND
pj.cnpjprincipal
IS
NOT
NULL
INNER
JOIN
parceirolocal pl
ON
pl.idparceiro = p.idparceiro
INNER
JOIN
LOCAL
l
ON
l.idlocal = pl.idlocal
INNER
JOIN
LOCALTIPOLOCAL LTL
ON
LTL.IDLOCAL = L.IDLOCAL
INNER
JOIN
TIPOLOCAL TL
ON
TL.IDTIPOLOCAL = LTL.IDTIPOLOCAL
WHERE
TL.SGLTIPOLOCAL <>
'ENT'
AND
L.CODIGOERP
IS
NOT
NULL
UNION
SELECT
p.idparceiro,
p.idnexportadoerp,
'cpf'
AS
idTipoIdentificacao_,
l.idlocal,
pf.cpf
AS
documentoIdentificacao,
l.codigoerp
AS
codigoERPLocal
FROM
parceiro p
INNER
JOIN
pessoafisica pf
ON
p.idparceiro = pf.idpessoafisica
AND
pf.cpf
IS
NOT
NULL
INNER
JOIN
parceirolocal pl
ON
pl.idparceiro = p.idparceiro
INNER
JOIN
LOCAL
l
ON
l.idlocal = pl.idlocal
WHERE
l.codigoERP
IS
NOT
null
UNION
SELECT
p.idparceiro,
p.idnexportadoerp,
'inscricaoestadual'
AS
idTipoIdentificacao_,
l.idlocal,
l.inscricaoestadual
AS
documentoIdentificacao,
l.codigoerp
AS
codigoERPLocal
FROM
parceiro p
INNER
JOIN
parceirolocal pl
ON
pl.idparceiro = p.idparceiro
INNER
JOIN
LOCAL
l
ON
l.idlocal = pl.idlocal
WHERE
l.codigoERP
IS
NOT
NULL
AND
l.inscricaoestadual
IS
NOT
NULL
UNION
SELECT
p.idparceiro,
p.idnexportadoerp,
'inscricaomunicipal'
AS
idTipoIdentificacao_,
l.idlocal,
l.inscricaomunicipal
AS
documentoIdentificacao,
l.codigoerp
AS
codigoERPLocal
FROM
parceiro p
INNER
JOIN
parceirolocal pl
ON
pl.idparceiro = p.idparceiro
INNER
JOIN
LOCAL
l
ON
l.idlocal = pl.idlocal
WHERE
l.codigoERP
IS
NOT
NULL
AND
l.inscricaomunicipal
IS
NOT
NULL
OPERAÇÃO
A entidade operacao do TOTVS SFA conta com valores fixos:
TOTVS SFA | TIPO | VALORES |
OPERACAO.IDNATIVO | INTEGER | 1; 1; 1; 1; 1; 1 |
OPERACAO.DESCRICAO | STRING | 'Desconto 1'; 'Desconto 2'; 'Desconto 3'; 'Desconto 4'; 'Desconto 5'; 'Desconto 6' |
OPERACAO.SGLTIPOOPERACAO | STRING | 'DESCONTO'; 'DESCONTO'; 'DESCONTO'; 'DESCONTO'; 'DESCONTO'; 'DESCONTO' |
OPERACAO.SGLOPERACAO | STRING | 'DESC1'; 'DESC2'; 'DESC3'; 'DESC4'; 'DESC5'; 'DESC6' |
OPERACAO.CODIGOERP | STRING | 'DESC1'; 'DESC2'; 'DESC3'; 'DESC4'; 'DESC5'; 'DESC6' |
PERFIL ACESSO
A entidade perfilacesso do TOTVS SFA conta com valores fixos:
TOTVS SFA | TIPO | VALORES |
PERFILACESSO.IDNADMINISTRADOR | INTEGER | 0; 1 |
PERFILACESSO.IDNATIVO | INTEGER | 1; 1 |
PERFILACESSO.SGLPERFILACESSO | STRING | 'PV'; 'PA' |
PERFILACESSO.DESCRICAO | STRING | 'VENDEDOR'; 'ADMINISTRADOR'; |
PERFILACESSO.IDNPONTOOBRIGATORIO | INTEGER | 0; 0 |
PERFILACESSO.IDNPROMOTOR | INTEGER | 0; 0 |
PERFILACESSO.TIPOPONTO | INTEGER | 0; |
PERFILACESSO.SGLACAOSELECAOCLIENTE | STRING | 'PAINEL'; 'PAINEL' |
PERFILACESSO.CODIGOERP | STRING | 'XML#PV'; 'XML#PA' |
PORTADOR
Os dados da tabela portador do Datasul são acessados através do endpoint /dts/datasul-rest/resources/prg/fin/v1/holderPublic e serão salvos na tabela parceiro do TOTVS SFA com os seguintes campos:
TOTVS SFA | TIPO | DATASUL |
---|---|---|
PARCEIRO.NOMEPARCEIRO | STRING | shortName(portador.nom_abrev) |
PARCEIRO.SGLTIPOPESSOA | STRING | FIXO 'PJ' |
PARCEIRO.IDNATIVO | INTEGER | FIXO 1 |
PARCEIRO.IDNCONTRIBUINTE | INTEGER | FIXO 0 |
PARCEIRO.DATAULTIMAATUALIZACAO | DATE | CURRENT_DATE |
PARCEIRO.DATACADASTRO | DATE | CURRENT_DATE |
PARCEIRO.OBSERVACAO | STRING | FIXO 'MODALIDADE' |
PARCEIRO.IDNEXPORTADOERP | INTEGER | FIXO 1 |
PARCEIRO.CODIGOERP | STRING | 'POR#' + EMPRESA + holderCode(portador.cod_portador) |
REGIÃO
Os dados da tabela mgadm.regiao do Datasul são acessados através do endpoint /dts/datasul-rest/resources/prg/cdp/v1/regionsPublic e serão salvos na tabela regiao e localregiao do TOTVS SFA com os seguintes campos:
TOTVS SFA | TIPO | DATASUL |
REGIAO.DESCRICAO | STRING | name(mgadm.regiao.nome-regiao) |
REGIAO.CODIGO | STRING | code(mgadm.regiao.nome-ab-reg) |
REGIAO.AREAABRANGENCIA | STRING | localization(mgadm.regiao.localizacao) |
REGIAO.IDNATIVO | INTEGER | FIXO 1 |
REGIAO.CODIGOERP | STRING | EMPRESA + '#' + code(mgadm.regiao.nome-ab-reg) |
TOTVS SFA | TIPO | DATASUL |
LOCALREGIAO.IDREGIAO | INTEGER | EMPRESA + '#' + code(mgadm.regiao.nome-ab-reg) |
LOCALREGIAO.IDLOCALFILIAL | INTEGER | local.idlocal(onde local.numeroMatricula = establishment (mgadm.regiao.cod-estabel) e local.codigoerp like 'EMP#'%) |
LOCALREGIAO.IDLOCAL | INTEGER | local.idlocal(onde local.numeroMatricula = establishment (mgadm.regiao.cod-estabel) e local.codigoerp like 'EMP#'%) |
LOCALREGIAO.CODIGOERP | STRING | EMPRESA + '#' + code(mgadm.regiao.nome-ab-reg) + '#' + local.codigoErp |
TIPO DOCUMENTO
Os dados da tabela espec_docto do Datasul são acessados através do /dts/datasul-rest/resources/prg/fin/v1/documentTypePublic e são gravados na tabela tipodocumento do SFA com os seguintes campos.
TOTVS SFA | TIPO | DATASUL |
TIPODOCUMENTO.OBSERVACAOOBTENCAO | STRING | documentType (-) |
TIPODOCUMENTO.DESCRICAO | STRING | description(espec_docto.des_espec_docto) |
TIPODOCUMENTO.OBSERVACAO | STRING | documentTypeDescription(espec_docto.ind_tip_espec_docto) |
TIPODOCUMENTO.CODIGOERP | STRING | EMPRESA + '#' + code(espec_docto.cod_espec_docto) |
TIPODOCUMENTO.SGLTIPODOCUMENTO | STRING | FIXO 'FINANCEIRO' |
TIPODOCUMENTO.IDNATIVO | INTEGER | FIXO 1 |
TIPO EMAIL
A entidade tipoemail do TOTVS SFA conta com valores fixos:
TOTVS SFA | TIPO | VALORES |
TIPOEMAIL.DESCRICAO | STRING | 'PRINCIPAL'; 'NFe' |
TIPOEMAIL.CODIGO | STRING | 'PRI'; 'NFE' |
TIPOEMAIL.IDNATIVO | INTEGER | 1; 1 |
TIPOEMAIL.IDNPADRAO | INTEGER | 1; 0 |
TIPOEMAIL.IDNDISPONIVELCADASTRO | INTEGER | 1; 1 |
TIPOEMAIL.IDNEXPORTADOERP | INTEGER | 1; 1 |
TIPOEMAIL.CODIGOERP | STRING | PRI'; 'NFE' |
TIPO ESTOQUE
A entidade tipoestoque do TOTVS SFA conta com valores fixos:
TOTVS SFA | TIPO | VALORES |
TIPOESTOQUE.DESCRICAO | STRING | 'ESTOQUE DISPONIVEL' |
TIPOESTOQUE.SGLTIPOESTOQUE | STRING | 'EDI' |
TIPOESTOQUE.IDNATIVO | INTEGER | 1 |
TIPOESTOQUE.IDNDISPONIVELPARAPEDIDO | INTEGER | 1 |
TIPOESTOQUE.ORDEM | INTEGER | 1 |
TIPOESTOQUE.CODIGOERP | STRING | 'EDI' |
TIPOLOGIA
Os dados da tabela tipologia do Datasul são acessados através do endpoint /dts/datasul-rest/resources/prg/cdp/v1/salesChannelPublic e são gravados com os seguintes campos.
TOTVS SFA | TIPO | DATASUL |
TIPOLOGIA.CODIGOCANALVENDA | INTEGER | salesChannelCode(canal-venda.cod-canal-venda) |
TIPOLOGIA.DESCRICAO | STRING | salesChannelDesc(canal-venda.descricao) |
TIPOLOGIA.CODIGOERP | STRING | EMPRESA + '#' + salesChannelCode(canal-venda.cod-canal-venda) |
TIPOLOGIA.IDNREQUERBANCO | INTEGER | Fixo 0 |
TIPOLOGIA.IDNDISPPRIMEIROPEDIDO | INTEGER | Fixo 1 |
TIPOLOGIA.IDNREEMBOLSAVEL | INTEGER | Fixo 1 |
TIPOLOGIA.IDNVALIDAVALORLIMITE | INTEGER | Fixo 1 |
TIPOLOGIA.IDNPERMITEALTERARREEMBOLSO | INTEGER | Fixo 1 |
TIPOLOGIA.IDNPADRAO | INTEGER | Fixo 0 |
TIPOLOGIA.IDNATIVO | INTEGER | Fixo 1 |
TIPO PEDIDO
A entidade tipopedido do TOTVS SFA conta com valores fixos:
TOTVS SFA | TIPO | VALORES |
TIPOPEDIDO.IDNATIVO | INTEGER | 1 |
TIPOPEDIDO.DESCRICAO | STRING | 'PEDIDO DE VENDA' |
TIPOPEDIDO.IDNDISPONIVELPARAPEDIDO | INTEGER | 1 |
TIPOPEDIDO.IDNCONSOMEFLEXINTEGRAL | INTEGER | 0 |
TIPOPEDIDO.SGLTIPOPEDIDO | STRING | 'TPV' |
TIPOPEDIDO.IDNPADRAO | INTEGER | 1 |
TIPOPEDIDO.IDNASSINATURAOBRIGATORIA | INTEGER | 0 |
TIPOPEDIDO.IDNMOVIMENTAFLEX | INTEGER | 0 |
TIPOPEDIDO.CODIGO | STRING | 'TPV' |
TIPOPEDIDO.CODIGOERP | STRING | 'TPV' |
TIPO PRODUTO
A entidade tipoproduto do TOTVS SFA conta com valores fixos:
TOTVS SFA | TIPO | VALORES |
TIPOPRODUTO.IDNATIVO | INTEGER | 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1 |
TIPOPRODUTO.DESCRICAO | STRING | 'ATIVO IMBOLIZADO'; 'BENEFICIAMENTO'; 'EMBALAGEM'; 'GARANTIA ESTENDIDA'; 'GASTOS GERAIS'; 'GENERICO'; 'INSUMO AGRICOLA'; 'INSUMOS INDUSTRIAIS'; 'PRODUTOS INDUSTRIAIS'; 'KIT'; 'KIT'; 'MERCADORIA'; 'MATERIAIS MANFRO'; 'MAO DE OBRA'; 'MATERIA PRIMA'; 'OUTROS INSUMOS'; 'PRODUTO ACABADO'; 'PRODUTO INTERMEDIARIO'; 'PRODUTO EM PROCESSO'; 'PRODUTO VEINCULO'; 'SELO DE CONTROLE'; 'SUBPRODUTO'; 'SERVICO' |
TIPOPRODUTO.SGLTIPOPRODUTO | STRING | 'AI', 'BN'; 'EM'; 'GE'; 'GG'; 'GN'; 'IA'; 'II'; 'IN'; 'KT'; 'MC'; 'ME'; 'MM'; ''MO'; 'MP'; 'OI'; 'PA'; 'PI'; 'PP'; 'PV'; 'SL'; 'SP'; 'SV' |
TIPOPRODUTO.CODIGOERP | STRING | 'AI', 'BN'; 'EM'; 'GE'; 'GG'; 'GN'; 'IA'; 'II'; 'IN'; 'KT'; 'MC'; 'ME'; 'MM'; ''MO'; 'MP'; 'OI'; 'PA'; 'PI'; 'PP'; 'PV'; 'SL'; 'SP'; 'SV' |
TIPO SITUACAÇÃO PEDIDO PRODUTO
A entidade tipositpedidoproduto do TOTVS SFA conta com valores fixos:
TOTVS SFA | TIPO | VALORES |
TIPOSITPEDIDOPRODUTO.IDNATIVO | INTEGER | 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1 |
TIPOSITPEDIDOPRODUTO.DESCRICAO | STRING | 'NAO FINALIZADO'; 'ABERTO'; 'ATENDIDO PARCIAL', 'ATENDIDO TOTAL'; 'PENDENTE'; 'SUSPENSO'; 'CANCELADO';'FATUR BALCAO'; 'PRODUTO REMOVIDO'; 'ITEM DELETADO'; 'CANCELADO'; 'NORMAL'; 'PENDENTE' |
TIPOSITPEDIDOPRODUTO.SGLTIPOSITPEDIDOPRODUTO | STRING | 'NF'; 'PA'; 'FP'; 'PF'; 'PP'; 'PS'; 'PC'; 'FB'; 'PR'; 'ITCAN'; 'ITCANPROT'; 'ITNOR'; 'ITPEN' |
TIPOSITPEDIDOPRODUTO.IDNPERMITEEDITAR | INTEGER | 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0 |
TIPOSITPEDIDOPRODUTO.CODIGOERP | STRING | 'NF'; '1'; '2'; '3'; '4'; '5'; '6'; '7'; 'PR'; 'ITCAN'; 'ITCANPROT'; 'ITNOR'; 'ITPEN' |
TIPO SITUAÇÃO CADASTRO
A entidade tiposituacaocadastro do TOTVS SFA conta com valores fixos:
TOTVS SFA | TIPO | VALORES |
TIPOSITUACAOCADASTRO.IDNATIVO | INTEGER | 1; 1; 1; 1; 1 |
TIPOSITUACAOCADASTRO.IDNPADRAO | INTEGER | 1; 0; 0; 0; 0 |
TIPOSITUACAOCADASTRO.DESCRICAO | STRING | 'NOVO'; 'REGULAR'; 'REPROVADO'; 'ATUALIZAÇÃO NEGADA'; 'ATUALIZAÇÃO' |
TIPOSITUACAOCADASTRO.SGLTIPOSITUACAOCADASTRO | STRING | 'NOV'; 'REG'; 'REP'; 'ATUNEG'; 'ATU' |
TIPOSITUACAOCADASTRO.CODIGOERP | STRING | 'NOV'; 'REG'; 'REP'; 'ATUNEG'; 'ATU' |
TIPO TELEFONE
A entidade tipotelefone do TOTVS SFA conta com valores fixos:
TOTVS SFA | TIPO | VALORES |
TIPOTELEFONE.DESCRICAO | STRING | 'PRINCIPAL'; 'TELEFONE 2'; 'TELEX'; 'FAX' |
TIPOTELEFONE.CODIGO | STRING | 'TEL1'; 'TEL2'; 'LEX'; 'FAX' |
TIPOTELEFONE.IDNATIVO | INTEGER | 1; 1; 1; 1 |
TIPOTELEFONE.IDNPADRAO | INTEGER | 1; 0; 0; 0 |
TIPOTELEFONE.IDNDISPONIVELCADASTRO | INTEGER | 1; 1; 1; 1 |
TIPOTELEFONE.IDNEXPORTADOERP | INTEGER | 1; 1; 1; 1 |
TIPOTELEFONE.CODIGOERP | STRING | 'TEL1'; 'TEL2'; 'LEX'; 'FAX' |
TRANSAÇÃO FISCAL
Os dados da tabela cond-pagto do Datasul são acessados através do endpoint /dts/datasul-rest/resources/prg/cdp/v1/paymentTermsPublic e são salvos na tabela TransacaoFiscal do TOTVS SFA com os seguintes campos:
TOTVS SFA | TIPO | DATASUL |
---|---|---|
TRANSACAOFISCAL.DESCRICAO | STRING | description(cond-pagto.descricao) |
TRANSACAOFISCAL.SGLOPERACAO | STRING | CASE WHEN type = '1' THEN 'S' ELSE 'A' END |
TRANSACAOFISCAL.CODIGO | STRING | code(natur-oper.nat-operacao) |
TRANSACAOFISCAL.IDTIPONOTAFISCAL | INTEGER | EMPRESA + '#' + code(natur-oper.nat-operacao) |
TRANSACAOFISCAL.IDCFOP | INTEGER | EMPRESA + '#' + cfopCode |
TRANSACAOFISCAL.CODIGOERP | STRING | EMPRESA + '#' + code(natur-oper.nat-operacao) + '#' + cfopCode |
3 EXPORTAÇÃO DE DADOS
Assim como na importação, o layout de exportação de pedidos e clientes é o mesmo (envio/retorno). Abaixo trataremos da exportação de clientes e pedidos.
CLIENTES
A exportação de clientes consiste em:
Utilizando os seguintes filtros para exportar clientes novos:
Ou esses filtros caso se trate de uma atualização do cliente:
Considerações importantes:
Abaixo segue o DE/PARA dos campos:
TAG | TOTVS SFA | DATASUL |
ENDEREÇO PRINCIPAL E COBRANCA | ||
activityBranch | '' | mgadm.emitente.atividade |
additionalCredit | 0 | mgadm.emitente.lim-adicional |
address | coalesce(( select l.logradouro from local L inner join PARCEIROLOCAL PL on L.IDLOCAL = PL.IDLOCAL inner join LOCALTIPOLOCAL LTL on L.IDLOCAL = LTL.IDLOCAL inner join TIPOLOCAL TL on TL.IDTIPOLOCAL = LTL.IDTIPOLOCAL and TL.SGLTIPOLOCAL = 'PRI' inner join CIDADE C on C.IDCIDADE = L.IDCIDADE where PL.idparceiro = PARCEIRO.IDPARCEIRO limit 1),'') | mgadm.emitente.endereco |
bank | 0 | mgadm.emitente.cod-banco |
bankBranch | '' | mgadm.emitente.agencia |
billingAddress | coalesce((select l.logradouro from local L inner join PARCEIROLOCAL PL on L.IDLOCAL = PL.IDLOCAL inner join LOCALTIPOLOCAL LTL on L.IDLOCAL = LTL.IDLOCAL inner join TIPOLOCAL TL on TL.IDTIPOLOCAL = LTL.IDTIPOLOCAL and TL.SGLTIPOLOCAL = 'COB' inner join CIDADE C on C.IDCIDADE = L.IDCIDADE where PL.idparceiro = PARCEIRO.IDPARCEIRO limit 1),'') | mgadm.emitente.endereco-cob |
billingCity | COALESCE((SELECT DISTINCT C.DESCRICAO FROM LOCAL L INNER JOIN PARCEIROLOCAL PL ON L.IDLOCAL = PL.IDLOCAL INNER JOIN LOCALTIPOLOCAL LTL ON L.IDLOCAL = LTL.IDLOCAL INNER JOIN TIPOLOCAL TL ON TL.IDTIPOLOCAL = LTL.IDTIPOLOCAL AND TL.SGLTIPOLOCAL = 'COB' INNER JOIN CIDADE C ON C.IDCIDADE = L.IDCIDADE WHERE PL.IDPARCEIRO = PARCEIRO.IDPARCEIRO LIMIT 1 ),'') AS "billingCity", | mgadm.emitente.cidade-cob |
billingCompleteAddress | '' | mgadm.emitente.endereco-cob-text |
billingCountry | COALESCE(case when (SELECT 1 FROM LOCAL L INNER JOIN PARCEIROLOCAL PL ON L.IDLOCAL = PL.IDLOCAL INNER JOIN LOCALTIPOLOCAL LTL ON L.IDLOCAL = LTL.IDLOCAL INNER JOIN TIPOLOCAL TL ON TL.IDTIPOLOCAL = LTL.IDTIPOLOCAL AND TL.SGLTIPOLOCAL = 'COB' WHERE PL.IDPARCEIRO = PARCEIRO.IDPARCEIRO LIMIT 1 ) is not null then 'Brasil' else null end,'') | mgadm.emitente.pais-cob |
billingNeighborhood | COALESCE((SELECT DISTINCT SUBSTR(COALESCE(L.BAIRRO,''),1,30) FROM LOCAL L INNER JOIN PARCEIROLOCAL PL ON L.IDLOCAL = PL.IDLOCAL INNER JOIN LOCALTIPOLOCAL LTL ON L.IDLOCAL = LTL.IDLOCAL INNER JOIN TIPOLOCAL TL ON TL.IDTIPOLOCAL = LTL.IDTIPOLOCAL AND TL.SGLTIPOLOCAL = 'COB' WHERE PL.IDPARCEIRO = PARCEIRO.IDPARCEIRO LIMIT 1 ),'') | mgadm.emitente.bairro-cob |
billingPersonalId | COALESCE(case when (SELECT 1 FROM LOCAL L INNER JOIN PARCEIROLOCAL PL ON L.IDLOCAL = PL.IDLOCAL INNER JOIN LOCALTIPOLOCAL LTL ON L.IDLOCAL = LTL.IDLOCAL INNER JOIN TIPOLOCAL TL ON TL.IDTIPOLOCAL = LTL.IDTIPOLOCAL AND TL.SGLTIPOLOCAL = 'COB' WHERE PL.IDPARCEIRO = PARCEIRO.IDPARCEIRO LIMIT 1 ) is not null then coalesce( PF.documentoidentificacao, PJ.documentoidentificacao ) else null end,'') | mgadm.emitente.cgc-cob |
billingState | COALESCE((SELECT DISTINCT SUBSTR(UF.SIGLA,1,2) FROM LOCAL L INNER JOIN PARCEIROLOCAL PL ON L.IDLOCAL = PL.IDLOCAL INNER JOIN LOCALTIPOLOCAL LTL ON L.IDLOCAL = LTL.IDLOCAL INNER JOIN TIPOLOCAL TL ON TL.IDTIPOLOCAL = LTL.IDTIPOLOCAL AND TL.SGLTIPOLOCAL = 'COB' INNER JOIN CIDADE C ON C.IDCIDADE = L.IDCIDADE INNER JOIN UNIDADEFEDERATIVA UF ON C.IDUNIDADEFEDERATIVA = UF.IDUNIDADEFEDERATIVA WHERE PL.IDPARCEIRO = PARCEIRO.IDPARCEIRO LIMIT 1 ),'') | mgadm.emitente.estado-cob |
billingZipCode | COALESCE((SELECT DISTINCT SUBSTR(L.CEP,1,12) FROM LOCAL L INNER JOIN PARCEIROLOCAL PL ON L.IDLOCAL = PL.IDLOCAL INNER JOIN LOCALTIPOLOCAL LTL ON L.IDLOCAL = LTL.IDLOCAL INNER JOIN TIPOLOCAL TL ON TL.IDTIPOLOCAL = LTL.IDTIPOLOCAL AND TL.SGLTIPOLOCAL = 'COB' WHERE PL.IDPARCEIRO = PARCEIRO.IDPARCEIRO LIMIT 1 ),'') | mgadm.emitente.cep-cob |
birthdate | COALESCE(CASE WHEN PESSOAFISICA.ANONASCIMENTO IS null or PESSOAFISICA.ANONASCIMENTO = 0 THEN NULL ELSE CAST(PESSOAFISICA.ANONASCIMENTO AS VARCHAR(4)) ||'-'|| CAST(PESSOAFISICA.MESNASCIMENTO AS VARCHAR(2)) ||'-'||CAST(PESSOAFISICA.DIANASCIMENTO AS VARCHAR(2)) END,'') | mgadm.emitente.dat-nasc |
category | '' | mgadm.emitente.categoria |
checkingAccount | '' | mgadm.emitente.conta-corren |
city | (SELECT DISTINCT C.DESCRICAO FROM LOCAL L INNER JOIN PARCEIROLOCAL PL ON L.IDLOCAL = PL.IDLOCAL INNER JOIN LOCALTIPOLOCAL LTL ON L.IDLOCAL = LTL.IDLOCAL INNER JOIN TIPOLOCAL TL ON TL.IDTIPOLOCAL = LTL.IDTIPOLOCAL AND TL.SGLTIPOLOCAL = 'PRI' INNER JOIN CIDADE C ON C.IDCIDADE = L.IDCIDADE WHERE PL.IDPARCEIRO = PARCEIRO.IDPARCEIRO LIMIT 1 ) | mgadm.emitente.cidade |
comments | COALESCE(PARCEIRO.OBSERVACAO,'') | mgadm.emitente.observacoes |
completeAddress | '' | mgadm.emitente.endereco_text |
country | 'Brasil' | mgadm.emitente.pais |
credit | 1 | mgadm.emitente.ind-cre-cli |
creditLimit | 0 | mgadm.emitente.lim-credito |
creditLimitCurrency | 0 | mgadm.emitente.moeda-libcre |
creditLimitDate | '' | mgadm.emitente.dt-lim-cred |
creditLimitEnd | '' | mgadm.emitente.dt-fim-cred |
customerClassification | 0 | mgadm.emitente.cod-classif-cliente |
customerCode | NULL | mgadm.emitente.cod-emitente |
customerGroup | COALESCE((select cast(split_part(GP.CODIGOERP,'#',2) as INT) from parceirogrupoparceiro PGP inner join GRUPOPARCEIRO GP on GP.idgrupoparceiro = PGP.idgrupoparceiro where PGP.idparceiro = PARCEIRO.idparceiro limit 1),0) | mgadm.emitente.cod-gr-cli |
customerName | COALESCE(upper(SUBSTR(PARCEIRO.NOMEPARCEIRO, 1, 80)), '') | mgadm.emitente.nome-emit |
defaultHolder | 0 | mgadm.emitente.port-prefer |
defaultModality | 0 | mgadm.emitente.mod-prefer |
deliveryCode | '' | mgadm.emitente.cod-entrega |
COALESCE(P.EMAIL, (SELECT DISTINCT LOWER(LE.EMAIL) FROM LOCAL L INNER JOIN PARCEIROLOCAL PL ON L.IDLOCAL = PL.IDLOCAL INNER JOIN LOCALTIPOLOCAL LTL ON L.IDLOCAL = LTL.IDLOCAL INNER JOIN TIPOLOCAL TL ON TL.IDTIPOLOCAL = LTL.IDTIPOLOCAL AND TL.SGLTIPOLOCAL = 'PRI' INNER JOIN LOCALEMAIL LE ON LE.IDLOCAL = L.IDLOCAL INNER JOIN TIPOEMAIL TE ON TE.IDTIPOEMAIL = LE.IDTIPOEMAIL AND TE.CODIGO = 'PRI' WHERE PL.IDPARCEIRO = PARCEIRO.IDPARCEIRO LIMIT 1 ),'') | mgadm.emitente.e-mail | |
entityType | CASE WHEN PARCEIRO.SGLTIPOPESSOA= 'PF' THEN 1 ELSE 2 END | mgadm.emitente.natureza |
extension1 | '' | mgadm.emitente.ramal[1] |
extension2 | '' | mgadm.emitente.ramal[2] |
holder | 0 | mgadm.emitente.portador |
homePage | COALESCE(SUBSTR(PARCEIRO.HOMEPAGE,1,40),'') | mgadm.emitente.home-page |
ICMSTaxpayer | CASE WHEN PARCEIRO.IDNCONTRIBUINTE = 1 THEN 'true' ELSE 'false' END | mgadm.emitente.contrib-icms |
implementationDate | to_char(PARCEIRO.datacadastro, 'YYYY-MM-DD') | mgadm.emitente.data-implant |
interstateTransactionType | '' | mgadm.emitente.nat-ope-ext |
lastSale | '' | mgadm.emitente.dt-ult-venda |
modality | COALESCE((SELECT DISTINCT CAST(TC.CODIGO AS INT) FROM LOCAL L INNER JOIN PARCEIROLOCAL PL ON L.IDLOCAL = PL.IDLOCAL INNER JOIN LOCALTIPOLOCAL LTL ON L.IDLOCAL = LTL.IDLOCAL INNER JOIN TIPOLOCAL TL ON TL.IDTIPOLOCAL = LTL.IDTIPOLOCAL AND TL.SGLTIPOLOCAL = 'PRI' INNER JOIN LOCALTIPOCOBRANCA LTC ON LTC.IDLOCAL = L.IDLOCAL INNER JOIN TIPOCOBRANCA TC ON TC.IDTIPOCOBRANCA = LTC.IDTIPOCOBRANCA WHERE PL.IDPARCEIRO = Parceiro.IDPARCEIRO LIMIT 1 ),1) | mgadm.emitente.modalidade |
monthsInactive | 0 | mgadm.emitente.nr-mesina |
municipalRegistration | COALESCE((SELECT DISTINCT SUBSTR(li.DOCUMENTOIDENTIFICACAO,1,19) FROM LOCAL L INNER JOIN PARCEIROLOCAL PL ON L.IDLOCAL = PL.IDLOCAL INNER JOIN LOCALTIPOLOCAL LTL ON L.IDLOCAL = LTL.IDLOCAL INNER JOIN TIPOLOCAL TL ON TL.IDTIPOLOCAL = LTL.IDTIPOLOCAL AND TL.SGLTIPOLOCAL = 'PRI' INNER JOIN LOCALIDENTIFICACAO LI ON LI.IDLOCAL = L.IDLOCAL INNER JOIN TIPOIDENTIFICACAO TI ON TI.IDTIPOIDENTIFICACAO = LI.IDTIPOIDENTIFICACAO AND TI.SIGLA = 'inscricaomunicipal' WHERE PL.IDPARCEIRO = PARCEIRO.IDPARCEIRO LIMIT 1 ),'ISENTO') | mgadm.emitente.ins-municipal |
neighborhood | Lo(SELECT DISTINCT SUBSTR(L.BAIRRO,1,30) FROM LOCAL L INNER JOIN PARCEIROLOCAL PL ON L.IDLOCAL = PL.IDLOCAL INNER JOIN LOCALTIPOLOCAL LTL ON L.IDLOCAL = LTL.IDLOCAL INNER JOIN TIPOLOCAL TL ON TL.IDTIPOLOCAL = LTL.IDTIPOLOCAL AND TL.SGLTIPOLOCAL = 'PRI' WHERE PL.IDPARCEIRO = PARCEIRO.IDPARCEIRO LIMIT 1 ) | mgadm.emitente.bairro |
NFeEmail | '' | mgadm.emitente.cod-email-nfe |
parentName | (select cr.resposta from camporesposta cr inner join campo c on c.idcampo = cr.idcampo and c.chave = 'nomeabrev' where cr.idparceiro = p.idparceiro limit 1) | mgadm.emitente.nome-matriz |
partialInvoicing | 'true' | mgadm.emitente.ind-fat-par |
paymentTerms | COALESCE((SELECT DISTINCT cast(C.CODIGO AS INT) FROM LOCAL L INNER JOIN PARCEIROLOCAL PL ON L.IDLOCAL = PL.IDLOCAL INNER JOIN LOCALTIPOLOCAL LTL ON L.IDLOCAL = LTL.IDLOCAL INNER JOIN TIPOLOCAL TL ON TL.IDTIPOLOCAL = LTL.IDTIPOLOCAL AND TL.SGLTIPOLOCAL = 'PRI' INNER JOIN LOCALCONDICAOPAGAMENTO LC ON LC.IDLOCAL = L.IDLOCAL INNER JOIN CONDICAOPAGAMENTO C ON C.IDCONDICAOPAGAMENTO = LC.IDCONDICAOPAGAMENTO WHERE PL.IDPARCEIRO = PARCEIRO.IDPARCEIRO LIMIT 1 ),0) | mgadm.emitente.cod-cond-pag |
personalId | COALESCE(coalesce( PESSOAFISICA.documentoidentificacao, PESSOAJURIFICA.documentoidentificacao ),'') | mgadm.emitente.cgc |
phone1 | COALESCE((SELECT DISTINCT LT.TELEFONE FROM LOCAL L INNER JOIN PARCEIROLOCAL PL ON L.IDLOCAL = PL.IDLOCAL INNER JOIN LOCALTIPOLOCAL LTL ON L.IDLOCAL = LTL.IDLOCAL INNER JOIN TIPOLOCAL TL ON TL.IDTIPOLOCAL = LTL.IDTIPOLOCAL AND TL.SGLTIPOLOCAL = 'PRI' INNER JOIN LOCALTELEFONE LT ON LT.IDLOCAL = L.IDLOCAL WHERE PL.IDPARCEIRO = PARCEIRO.IDPARCEIRO LIMIT 1 ),'') | mgadm.emitente.telefone[1] |
phone2 | '' | mgadm.emitente.telefone[2] |
priceTable | COALESCE((SELECT DISTINCT TB.CODIGO FROM LOCAL L INNER JOIN PARCEIROLOCAL PL ON L.IDLOCAL = PL.IDLOCAL INNER JOIN LOCALTIPOLOCAL LTL ON L.IDLOCAL = LTL.IDLOCAL INNER JOIN TIPOLOCAL TL ON TL.IDTIPOLOCAL = LTL.IDTIPOLOCAL AND TL.SGLTIPOLOCAL = 'PRI' INNER JOIN LOCALTABELAPRECO LTB ON LTB.IDLOCAL = L.IDLOCAL INNER JOIN TABELAPRECO TB ON TB.IDTABELAPRECO = LTB.IDTABELAPRECO WHERE PL.IDPARCEIRO = PARCEIRO.IDPARCEIRO LIMIT 1 ),'') | mgadm.emitente.nr-tabpre |
productLine | '' | mgadm.emitente.linha-produt |
registrationINSS | '' | mgadm.emitente.cod-inscr-inss |
representativeCode | coalesce(cast(split_part(U.CODIGOERP,'#',2) as int), (select distinct cast(split_part(U2.CODIGOERP,'#',2) as int) from USUARIO U2 inner join USUARIOLOCAL UL2 on UL2.idusuario = U2.idusuario where parceiro.idparceiro = ul2.idparceiro and ul2.codigoerp is not null limit 1)) | mgadm.emitente.cod-rep |
salesChannel | COALESCE((SELECT DISTINCT CAST(T.CODIGO AS INT) FROM LOCAL L INNER JOIN PARCEIROLOCAL PL ON L.IDLOCAL = PL.IDLOCAL INNER JOIN LOCALTIPOLOCAL LTL ON L.IDLOCAL = LTL.IDLOCAL INNER JOIN TIPOLOCAL TL ON TL.IDTIPOLOCAL = LTL.IDTIPOLOCAL AND TL.SGLTIPOLOCAL = 'PRI' INNER JOIN LOCALTIPOLOGIA LTI ON LTI.IDLOCAL = L.IDLOCAL INNER JOIN TIPOLOGIA T ON T.IDTIPOLOGIA = LTI.IDTIPOLOGIA WHERE PL.IDPARCEIRO = PARCEIRO.IDPARCEIRO LIMIT 1 ),0) | mgadm.emitente.cod-canal-venda |
shortName | (select cr.resposta from camporesposta cr inner join campo c on c.idcampo = cr.idcampo and c.chave = 'nomeabrev' where cr.idparceiro = parceiro.idparceiro limit 1) | mgadm.emitente.nome-abrev |
shortRegion | '' | mgadm.emitente.nome-mic-reg |
standardCarrierCode | 99999 | mgadm.emitente.cod-transp |
state | COALESCE((SELECT DISTINCT UF.SIGLA FROM LOCAL L INNER JOIN PARCEIROLOCAL PL ON L.IDLOCAL = PL.IDLOCAL INNER JOIN LOCALTIPOLOCAL LTL ON L.IDLOCAL = LTL.IDLOCAL INNER JOIN TIPOLOCAL TL ON TL.IDTIPOLOCAL = LTL.IDTIPOLOCAL AND TL.SGLTIPOLOCAL = 'PRI' INNER JOIN CIDADE C ON C.IDCIDADE = L.IDCIDADE INNER JOIN UNIDADEFEDERATIVA UF ON C.IDUNIDADEFEDERATIVA = UF.IDUNIDADEFEDERATIVA WHERE PL.IDPARCEIRO = PARCEIRO.IDPARCEIRO LIMIT 1 ),'') | mgadm.emitente.estado |
stateRegistration | COALESCE((SELECT DISTINCT SUBSTR(li.DOCUMENTOIDENTIFICACAO,1,19) FROM LOCAL L INNER JOIN PARCEIROLOCAL PL ON L.IDLOCAL = PL.IDLOCAL INNER JOIN LOCALTIPOLOCAL LTL ON L.IDLOCAL = LTL.IDLOCAL INNER JOIN TIPOLOCAL TL ON TL.IDTIPOLOCAL = LTL.IDTIPOLOCAL AND TL.SGLTIPOLOCAL = 'PRI' INNER JOIN LOCALIDENTIFICACAO LI ON LI.IDLOCAL = L.IDLOCAL INNER JOIN TIPOIDENTIFICACAO TI ON TI.IDTIPOIDENTIFICACAO = LI.IDTIPOIDENTIFICACAO AND TI.SIGLA = 'inscricaoestadual' WHERE PL.IDPARCEIRO = PARCEIRO.IDPARCEIRO LIMIT 1 ),'ISENTO') | mgadm.emitente.ins-estadual |
supplierGroup | 99 | mgadm.emitente.cod-gr-forn |
tradeName | COALESCE(COALESCE(PARCEIRO.NOMEPARCEIROFANTASIA, PARCEIRO.NOMEPARCEIRO),'') | mgadm.emitente.nom-fantasia |
transactionType | '' | mgadm.emitente.nat-operacao |
type | 1 | mgadm.emitente.identific |
updateDate | to_char(parceiro.dataultimaatualizacao, 'YYYY-MM-DD') | mgadm.emitente.dt-atualiza |
updateTime | TO_CHAR(CURRENT_DATE,'HH:MM') | mgadm.emitente.hra-atualiz |
zipCode | COALESCE((SELECT DISTINCT SUBSTR(L.CEP,1,12) FROM LOCAL L INNER JOIN PARCEIROLOCAL PL ON L.IDLOCAL = PL.IDLOCAL INNER JOIN LOCALTIPOLOCAL LTL ON L.IDLOCAL = LTL.IDLOCAL INNER JOIN TIPOLOCAL TL ON TL.IDTIPOLOCAL = LTL.IDTIPOLOCAL AND TL.SGLTIPOLOCAL = 'PRI' WHERE PL.IDPARCEIRO = PARCEIRO.IDPARCEIRO LIMIT 1 ),'') | mgadm.emitente.cep |
telefax | '' | mgadm.emitente.telefax |
telex | '' | mgadm.emitente.telex |
lastUpdate | to_char(parceiro.dataultimaatualizacao, 'YYYY-MM-DD') | mgadm.emitente-log.dtm-alter |
ENDEREÇO DE ENTREGA (deliveryPlaces) | ||
deliveryCode | coalesce(SPLIT_PART(LOCAL.codigoerp,'#',5),CAST(LOCAL.IDLOCAL as VARCHAR)) | mgadm.loc-entr.cod-entrega |
address | COALESCE(local.logradouro,'') | mgadm.loc-entr.endereco |
mailBox | COALESCE((select le.email from localemail le where le.idlocal = local.idlocal limit 1),'') | mgadm.loc-entr.caixa-postal |
zipCode | COALESCE(local.cep,'') | mgadm.loc-entr.cep |
state | COALESCE(unidadefederativa.sigla,'') | mgadm.loc-entr.estado |
neighborhood | COALESCE(local.bairro,'') | mgadm.loc-entr.bairro |
shortName | (select cr.resposta from camporesposta cr inner join campo c on c.idcampo = cr.idcampo and c.chave = 'nomeabrev' where cr.idparceiro = parceiro.idparceiro limit 1) | mgadm.loc-entr.nome-abrev |
country | 'Brasil' | mgadm.loc-entr.pais |
completeAddress | '' | mgadm.loc-entr.endereco_text |
city | COALESCE(cidade.descricao,'') | mgadm.loc-entr.cidade |
personalId | COALESCE(coalesce(pessoafisica.documentoidentificacao, pessoajuridica.documentoidentificacao ),'') | mgadm.emitente.cgc |
stateRegistration | COALESCE((SELECT DISTINCT SUBSTR(localidentificacao.DOCUMENTOIDENTIFICACAO,1,19) | mgadm.emitente.ins-estadual |
PEDIDO
A exportação de pedidos consiste em:
Utilizando os seguintes filtros para exportar:
Considerações importantes:
Abaixo segue o DE/PARA dos campos:
CABEÇALHO PEDIDO | ||
TAG | TOTVS SFA | DATASUL |
branchId | COALESCE(split_part(FILIALVEN.CODIGOERP,'#',3), '') | movdis.ped-venda.cod-estabel |
cifCity | '' | movdis.ped-venda.cidade-cif |
codeCarrier | COALESCE((SELECT DISTINCT CAST(SPLIT_PART(TRA.CODIGOERP,'#',3) AS INT) FROM PEDIDOENTREGA PE LEFT JOIN PARCEIRO TRA ON TRA.IDPARCEIRO = PE.IDPARCEIROTRANSPORTADOR WHERE PE.IDPEDIDO = PED.IDPEDIDO limit 1), 0) | mgadm.transporte.cod-transp |
codeReshipmentTransp | COALESCE((SELECT DISTINCT CAST(split_part(TRA_REDESP.CODIGOERP,'#',3) AS INT) FROM PEDIDOENTREGA PE LEFT JOIN PARCEIRO TRA_REDESP ON TRA_REDESP.IDPARCEIRO = PE.IDPARCEIROREDESPACHO WHERE PE.IDPEDIDO = PED.IDPEDIDO limit 1), 0) | mgadm.transporte.cod-transp |
customerCode | COALESCE(CAST(split_part(PARCEIRO.CODIGOERP,'#',3) AS INT), 0) | movdis.ped-venda.cod-emitente |
customerOrderId | COALESCE(PED.NUMEROPEDIDO, '') | movdis.ped-venda.nr-pedcli |
deliveryDate | ( SELECT | movdis.ped-venda.dt-entrega |
emissionDate | TO_CHAR(PED.DATAPEDIDO, 'YYYY-MM-DD') | movdis.ped-venda.dt-emissao |
implantationDate | '' | movdis.ped-venda.dt-implant |
orderId | COALESCE(PED.NUMEROPEDIDOERP, '') | movdis.ped-venda.nr-pedido |
orderSituation | COALESCE(CAST(TIPOSITUACAOPEDIDO.CODIGOERP AS INT), 0) | movdis.ped-venda.cod-sit-ped |
paymentTerms | COALESCE(CAST(split_part(CONDICAOPAGAMENTO.CODIGOERP,'#',2) AS INT), 0) | movdis.ped-venda.cod-cond-pag |
priceTableOrder | COALESCE(split_part(TABELAPRECO.CODIGOERP,'#',2), '') | movdis.ped-venda.nr-tabpre |
representativeShortName | COALESCE(USUARIO.LOGIN, '') | movdis.ped-venda.no-ab-reppri |
salesChannel | COALESCE(CAST(split_part(TIPOLOGIA.CODIGOERP,'#',2) AS INT), 0) | movdis.ped-venda.cod-canal-venda |
shortName | COALESCE((select distinct cr.resposta from CAMPO C inner join camporesposta cr on CR.idcampo = C.idcampo and C.chave = 'nomeabrev' where cr.idparceiro = ped.idparceiro), '') | movdis.ped-venda.nome-abrev |
transactionType | '' | movdis.ped-venda.nat-operacao |
valueFreight | COALESCE((SELECT VALORFRETE FROM PEDIDOENTREGA PE WHERE PE.IDPEDIDO = PED.IDPEDIDO and pe.idpedidoproduto is null), 0) | movdis.ped-venda.val-frete |
valueInsurance | COALESCE((SELECT VALORSEGURO FROM PEDIDOENTREGA PE WHERE PE.IDPEDIDO = PED.IDPEDIDO and pe.idpedidoproduto is null), 0) | movdis.ped-venda.val-seguro |
valuePacking | COALESCE((SELECT VALORDESPESA FROM PEDIDOENTREGA PE WHERE PE.IDPEDIDO = PED.IDPEDIDO and pe.idpedidoproduto is null), 0) | movdis.ped-venda.val-embal |
ITENS PEDIDO | ||
TAG | TOTVS SFA | DATASUL |
---|---|---|
delireryDate | '' | movdis.ped-item.dt-entrega |
informedDiscount | CAST(COALESCE(PEDIDOPRODUTO.VALORDESCONTO, 0) AS NUMERIC(18,2)) | movdis.ped-item.val-desconto-inform |
ipivalue | CAST(COALESCE(PEDIDOPRODUTO.VALORIPI, 0) AS NUMERIC(18,2)) | movdis.ped-item.val-ipi |
itemCode | COALESCE(split_part(PRODUTO.CODIGOERP,'#',2), '') | movdis.ped-item.it-codigo |
itemPercentageDiscount | CAST(COALESCE(PEDIDOPRODUTO.PERCENTUALDESCONTO, 0) AS NUMERIC(18,2)) | movdis.ped-item.per-des-item |
msrUnit | COALESCE(EMBALAGEM.CODIGO, '') | movdis.ped-item.cod-un |
orderItemSituation | COALESCE(CAST(TIPOSITPEDIDOPRODUTO.CODIGOERP AS INT), CAST(TIPOSITUACAOPEDIDO.CODIGOERP AS INT)) | movdis.ped-item.cod-sit-item |
originalPrice | COALESCE(CAST(PEDIDOPRODUTO.PRECOORIGINAL AS NUMERIC(18, 4)), 0) | movdis.ped-item.vl-preori |
priceTable | COALESCE(CASE WHEN SPLIT_PART(TABELAPRECOPRODUTO.CODIGOERP,'#',2) IS NOT NULL THEN SPLIT_PART(TABELAPRECOPRODUTO.CODIGOERP,'#',2) ELSE SPLIT_PART(TABELAPRECO.CODIGOERP,'#',2) END, '') | movdis.ped-item.nr-tabpre |
priceUnitary | COALESCE(CAST(PEDIDOPRODUTO.PRECOFATURADO AS NUMERIC(18, 5)), 0) | movdis.ped-item.vl-preuni |
quantityAttentive | COALESCE(CAST(CASE WHEN PEDIDOPRODUTO.QUANTIDADEFATURADA IS NOT NULL AND PEDIDOPRODUTO.QUANTIDADEFATURADA > 0 THEN PEDIDOPRODUTO.QUANTIDADEFATURADA ELSE PEDIDOPRODUTO.QUANTIDADE END AS NUMERIC(18, 4)), 0) | movdis.ped-item.qt-atendida |
quantityBilling | COALESCE(CAST(PEDIDOPRODUTO.QUANTIDADE AS NUMERIC(18, 4)), 0) | movdis.ped-item.qt-un-fat |
quantityPending | COALESCE(CAST(CASE WHEN PEDIDOPRODUTO.QUANTIDADEPENDENTE IS NOT NULL AND PEDIDOPRODUTO.QUANTIDADEPENDENTE > 0 THEN PEDIDOPRODUTO.QUANTIDADEPENDENTE ELSE PEDIDOPRODUTO.QUANTIDADE END AS NUMERIC(18, 4)), 0) | movdis.ped-item.qt-pendente |
quantityRequested | COALESCE(CAST(PEDIDOPRODUTO.QUANTIDADE AS NUMERIC(18, 4)), 0) | movdis.ped-item.qt-pedida |
shortName | COALESCE((select distinct cr.resposta from CAMPO C inner join camporesposta cr on CR.idcampo = C.idcampo and C.chave = 'nomeabrev' where cr.idparceiro = ped.idparceiro), '') | movdis.ped-item.nome-abrev |
sequence | (PEDIDOPRODUTO.ORDEM * 10) | movdis.ped-item.nr-sequencia |
transactionType | COALESCE(PEDIDOPRODUTO.NATUREZAOPERACAO, null) | movdis.ped-item.nat-operacao |
customerOrderId | COALESCE(PEDIDO.NUMEROPEDIDO, '') | movdis.ped-item.nr-pedcli |