Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Documentação

Documento que descreve comportamento específico da API SnapProperty, para integração com a Imobiliar.

Documentação Imobiliar

http://imobiliar.inf.br:4002/webservice/Imobiliar

Índice

Table of Contents

Métodos de negócio

Métodos de Recebimento

        Métodos que tem como objetivo receber requisições da Imobiliar.

        

ContratoRest.Cancelar()

Descrição: Método responsável por cancelar um contrato de administração ou locação (snap_brok__Contrato__c).

Neste método será possível o cancelamento de um contrato , antes que tenha sido assinado. 

Tipo de parâmetro: Lista de contratos(mesmo que seja apenas um contrato a ser cancelado).

Método Rest: Post

Tipo: Síncrono

Registros por requisição: 1

AssinaturaURLDescriçãoId externohttps://<instância do cliente>/services/apexrest/snap_brk/contrato/cancelar/v1
  • Id externo do contrato no sistema que está cancelando na base do SnapProperty.
  • Informado o Id interno Salesforce do contrato no Salesforce, que pode ter sido obtido em uma busca ou inserção

    Table of Contents

    Documentação

    Documento que descreve comportamento específico da API SnapProperty, para integração com a Imobiliar.


    Documentação Imobiliar


    http://imobiliar.inf.br:4001/webservice/Imobiliar




    Índice


    Métodos de negócio

    Métodos de Recebimento

            Métodos que tem como objetivo receber requisições da Imobiliar.

            

    ContratoRest.cancelar

    Descrição: Método responsável por cancelar um contrato de administração ou locação (snap_brok__Contrato__c).

    Neste método será possível o cancelamento de um contrato , antes que tenha sido assinado. 

    Tipo de parâmetro: Contrato.

    Método Rest: Post

    Tipo: Síncrono

    Máximo de registros por requisição: 1


    AssinaturaURLDescrição
    Id externohttps://<instância do cliente>/services/apexrest/snap_brok/contrato/v1/cancelar
    • Id externo do contrato no sistema que está cancelando na base do SnapProperty.
    • Informado o Id interno Salesforce do contrato no Salesforce, que pode ter sido obtido em uma busca ou inserção.

                    <instância do cliente> : nome de instância da org salesforce que o cliente utiliza. 


    Exemplo: Método
    Post



    Exemplo: Requisição Header
    Content-Typeapplication/json
    AuthorizationOAuth 00Do0000000Kygx!ARUAQNIkRvLZ.uTwqA._wGu.5But


    Exemplo: Requisição body JSONObservações

    {

      "contrato":  {

       "snap_brok__Id_externo__c":"42244000EISSOAI",

       "snap_brok__Motivo_do_cancelamento_op__c": "Outros",

       "snap_brok__Motivo_cancelamento__c": ""

     }


    }

    • Opões de "snap_brok__Motivo_do_cancelamento_op__c":
      • Optou por outro imóvel
      • Alteração de contratantes
      • Alteração de garantia
      • Alteração de condições contratuais
      • Cadastro duplicado
      • Outros
    • "snap_brok__Motivo_cancelamento__c" é: observação, de texto livre.


    Exemplo: Resposta - Sucesso

    Observações

    {
    "Mensagem": "Sucesso",
    "Erro": false,
    "Contrato": {
    "attributes": {
    "type": "snap_brok__Contrato__c",
    "url": "/services/data/v41.0/sobjects/snap_brok__Contrato__c/a3w0b000003DSNFAA4"
    },
    "snap_brok__Ativo__c": false,
    "snap_brok__Motivo_do_cancelamento_op__c": "Outros",
    "snap_brok__Faturar__c": false,
    "snap_brok__Data_encerramento__c": "2019-02-27",
    "snap_brok__Situacao__c": "Cancelado",
    "snap_brok__Motivo_cancelamento__c": "",
    "snap_brok__Cancelado__c": true,
    "Id": "a3w0b000003DSNFAA4",
    "snap_brok__Data_cancelamento__c": "2019-02-27"
    }
    }

    • Retorna campos preenchidos do contrato


    Exemplo: Resposta - Falha

    Observações

    Contrato não localizado.



    Processamento SnapProperty

                    1. SnapProperty realiza busca em contratos(snap_brok__Contrato__c) com base

                        no Id ou Id externo informado.

                    2. Caso não encontrado contrato, retorna mensagem de erro informando que "Contrato não foi localizado".

                   

    <instância do cliente> : nome de instância da org salesforce que o cliente utiliza. Exemplo: MétodoPostExemplo: URLhttps://snap-property.salesforce.com/services/apexrest/snap_brk/contrato/cancelar/v1Exemplo: Requisição HeaderContent-Typeapplication/jsonAuthorizationOAuth 00Do0000000Kygx!ARUAQNIkRvLZ.uTwqA._wGu.5ButExemplo: Requisição body JSONObservações

    {

      "contratos":  {

       "snap_brok__Id_externo__c":"42244000EISSOAI",

       "snap_brok__Motivo_do_cancelamento_op__c": "Outros"

       "snap_brok__Motivo_cancelamento__c": ""

     },

    }

    • Opões de "snap_brok__Motivo_do_cancelamento_op__c":
      • Optou por outro imóvel
      • Alteração de contratantes
      • Alteração de garantia
      • Alteração de condições contratuais
      • Cadastro duplicado
      • Outros
    • "snap_brok__Motivo_cancelamento__c" é: observação, de texto livre.

    Exemplo: Resposta - Sucesso

    Observações

    Exemplo: Resposta - Falha

    Observações

    [{"errorCode":"NOT_FOUND","message":"Provided external ID field does not exist or is not accessible: 123456789"}]

    Processamento SnapProperty

                    1. SnapProperty realiza busca em contratos(snap_brok__Contrato__c) com base

                        no Id ou Id externo informado.

                    2. Caso não encontrado contrato, retorna mensagem de erro informando que "Contrato não foi localizado".

                    3. SnapProperty verifica se contrato já consta como cancelado: snap_brok__Cancelado__c igual a true.

    4. SnapProperty verifica se contrato já consta como assinado: snap_brok__Assinado__c igual a true.

    5. Se contrato já estiver cancelado ou assinado retornara erro, não atualizara o contrato.

    6. Se não houver impedimento para o cancelamento o SnapProperty atualiza contrato: 

         6.1 Situação (Situacao__c) do contrato para "Cancelado".

         6.2 Cancelado (Cancelado__c) para verdadeiro(true).

         6.3 Data do cancelamento (Data_cancelamento__c) para data atual (Today).

         6.4 Demais informações como recebido no request.  

    7. SnapProperty verifica tipo de registro do contrato:

         7.1 Se contrato é de Locação:

                7.1.1 Realiza busca no objeto de proposta (Proposta__c) , com base na proposta

                          do contrato(snap_brok__Proposta__c).

                7.1.2 Caso encontre a Proposta deve cancela-la: com as mesmas atualizações

                  de cancelamento do contrato.

        7.2 Se contrato é de Administração: 

                 7.2.1 Realiza busca no objeto de Captação (Captacao_imovel__c) , com base na proposta

                          do contrato(Captacao_2__c).

                 7.2.2 Caso encontre a Captação deve cancela-la: com as mesmas atualizações

                          de cancelamento do contrato.

    Referências de implementaçãoDescriçãohttps://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_rest_code_sample_restrequest.htmCriação de classe customizadas básicas para requisições Resthttps://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_class_System_Json.htm#apex_System_Json_methodsMétodos para manipulação JSON no Apex

    DistratarContratoAdministracao()

    Descrição: Método responsável por distrato de um contrato de administração (snap_brok__Contrato__c).

    Neste método será possível encerrar um contrato de administração, sem possuir ainda um contrato de Locação criado. 

    Deve ser utilizado, por exemplo, quando o cliente quer encerrar o contrato com a administradora, por ter desistido de locar o imóvel.

    Método Rest: Post

    Tipo de parâmetro: Lista de contratos(mesmo que seja apenas um contrato a ser cancelado).

    Tipo: Síncrono

    Registros por requisição: 200

    AssinaturaURLDescriçãoId externohttps://<instância do cliente>/services/apexrest/API_Imobiliar_distratarContratoAdmIdExt/v1

    Informado o Id externo do contrato de administração no sistema que está distratando o contrato na base do SnapProperty.

    IDhttps://<instância do cliente>/services/apexrest/API_Imobiliar_distratarContratoAdmIdSale/v1

    Informado o Id Salesforce do contrato de administração, que pode ter sido obtido em uma busca ou inserção.

    <instância do cliente> : nome de instância da org salesforce que o cliente utiliza. 

    Exemplo: Método

    Patch

    Exemplo: URL

    https://snap-property.salesforce.com/services/apexrest/API_Imobiliar_distratarContratoAdmIdExt/v1

    Exemplo: Requisição HeaderContent-Typeapplication/jsonAuthorizationOAuth 00Do0000000Kygx!ARUAQNIkRvLZ.uTwqA._wGu.5ButExemplo: Requisição body JSONObservações

    {

      "contratos": [

     {

       "snap_brok__Id_externo__c":"2236262"

     },

     {

       "snap_brok__Id_externo__c":"123456789"

     }

        ]

    }

    Exemplo: Resposta - Sucesso

    Observações

    Exemplo: Resposta - Falha

    Observações

    [{"errorCode":"NOT_FOUND","message":"Provided external ID field does not exist or is not accessible: 123456789"}]

    Processamento SnapProperty

                    1. SnapProperty realiza busca em contratos(snap_brok__Contrato__c) com base

                        no Id[API_Imobiliar_distratarContratoAdmIdSale] ou

    3. SnapProperty verifica se contrato já consta como cancelado: snap_brok__Cancelado__c igual a true.

    4. SnapProperty verifica se contrato já consta como assinado: snap_brok__Assinado__c igual a true.

    5. Se contrato já estiver cancelado ou assinado retornara erro, não atualizara o contrato.

    6. Se não houver impedimento para o cancelamento o SnapProperty atualiza contrato: 

         6.1 Situação (Situacao__c) do contrato para "Cancelado".

         6.2 Cancelado (Cancelado__c) para verdadeiro(true).

         6.3 Data do cancelamento (Data_cancelamento__c) para data atual (Today).

         6.4 Demais informações como recebido no request.  

    7. SnapProperty verifica tipo de registro do contrato:

         7.1 Se contrato é de Locação:

                7.1.1 Cancela-la a locação com as mesmas atualizações  de cancelamento do contrato.

                7.1.2 . Cancela-la a proposta com as mesmas atualizações  de cancelamento do contrato.

        7.2 Se contrato é de Administração: 

                 7.2.1 Cancela-la a captação com as mesmas atualizações de cancelamento do contrato.


    ContratoRest.distratarContratoAdministracao

    Descrição: Método responsável por distrato de um contrato de administração (snap_brok__Contrato__c).

    Neste método será possível encerrar um contrato de administração, sem possuir ainda um contrato de Locação criado. 

    Deve ser utilizado, por exemplo, quando o cliente quer encerrar o contrato com a administradora, por ter desistido de locar o imóvel.

    Método Rest: Post

    Tipo de parâmetro: Contrato.

    Tipo: Síncrono

    Máximo de registros por requisição: 1


    AssinaturaURLDescrição
    Id externohttps://<instância do cliente>/services/apexrest/snap_brok/contrato/v1/distratarContratoAdministracao
    • Informado o Id externo do contrato de administração no sistema que está distratando o contrato na base do SnapProperty.
    • Informado o Id Salesforce do contrato de administração, que pode ter sido obtido em uma busca ou inserção.

    <instância do cliente> : nome de instância da org salesforce que o cliente utiliza. 


    Exemplo: Método

    Post



    Exemplo: Requisição Header
    Content-Typeapplication/json
    AuthorizationOAuth 00Do0000000Kygx!ARUAQNIkRvLZ.uTwqA._wGu.5But


    Exemplo: Requisição body JSONObservações

    {

      "contrato":  {

       "snap_brok__Id_externo__c":"2236262"

      }

    }



    Exemplo: Resposta - Sucesso

    Observações

    {
    "Mensagem": "Sucesso",
    "Erro": false,
    "Contrato": {
    "attributes": {
    "type": "snap_brok__Contrato__c",
    "url": "/services/data/v41.0/sobjects/snap_brok__Contrato__c/a0l0B00001L3thaQAB"
    },
    "snap_brok__Id_externo__c": "TesteDevAdm",
    "snap_brok__Ativo__c": false,
    "snap_brok__Faturar__c": false,
    "snap_brok__Data_encerramento__c": "2019-02-27",
    "snap_brok__Situacao__c": "Distratado",
    "Id": "a0l0B00001L3thaQAB"
    }
    }



    Exemplo: Resposta - Falha

    Observações

    Contrato não encontrado.



    Processamento SnapProperty

                    1. SnapProperty realiza busca em contratos(snap_brok__Contrato__c) com base

                        no Id ou Id externo informado.

                     2. Caso não encontrado contrato, retorna mensagem de erro informando que contrato não foi localizado.

                     3. Se não houver impedimento para o distrato o SnapProperty atualiza contrato: 

                          3.1 "Situação" (snap_brok__Situacao__c) do contrato para "Distratado".

                     4. Pesquisar todos Imóveis do contrato:

                          4.1 Altera a "Situação" (snap_brok__Situacao__c) do imóvel para  "Indisponível". 

                          4.2 Altera o campo "Disponível para locação"(snap_brok__Disponivel_locacao__c) para falso(false).


                       

    Id externo[API_Imobiliar_distratarContratoAdmIdExt] informado.

                     2. Caso não encontrado contrato, retorna mensagem de erro informando que contrato não foi localizado.

                     3. Se não houver impedimento para o distrato o SnapProperty atualiza contrato: 

                          3.1 "Situação" (snap_brok__Situacao__c) do contrato para "Distratado".

                     4. Pesquisar todos Imóveis do contrato:

                          4.1 Altera a "Situação" (snap_brok__Situacao__c) do imóvel para  "Indisponível". 

                          4.2 Altera o campo "Disponível para locação"(snap_brok__Disponivel_locacao__c) para falso(false).

    Referências de implementaçãoDescriçãohttps://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_rest_code_sample_restrequest.htmCriação de classe customizadas básicas para requisições Resthttps://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_class_System_Json.htm#apex_System_Json_methodsMétodos para manipulação JSON no Apex

                          

    desocuparImovel()

    Descrição: Método responsável por desocupação de um imóvel pelo locatário (snap_brok__Contrato__c).

    Neste método será possível desocupar um imóvel, que ocasionará no distrato do contrato de locação

    e disponibilizar um imóvel para uma nova locação.

    Método Rest: Post

    Tipo de parâmetro: Lista de contratos(mesmo que seja apenas um contrato a ser informado a desocupação).

    Tipo: Síncrono

    Registros por requisição: 200

    AssinaturaURLDescriçãoId externohttps://<instância do cliente>/services/apexrest/API_Imobiliar_desocuparImovelIdExterno/v1

    Informado o Id externo do contrato de locação, no sistema que está realizando a desocupação.

    IDhttps://<instância do cliente>/services/apexrest/API_Imobiliar_desocuparImovelIdSales/v1

    Informado o Id Salesforce do contrato de locação, que pode ter sido obtido em uma busca ou inserção.

    <instância do cliente> : nome de instância da org salesforce que o cliente utiliza. 

    Exemplo: Método

    Post

    Exemplo: URL

    https://snap-property.salesforce.com/services/apexrest/API_Imobiliar_desocuparImovelIdExterno/v1

    Exemplo: Requisição HeaderContent-Typeapplication/jsonAuthorizationOAuth 00Do0000000Kygx!ARUAQNIkRvLZ.uTwqA._wGu.5ButExemplo: Requisição body JSONObservações

    {

      "contratos": [

     {

       "snap_brok__Id_externo__c":"2236262"

       "snap_brok__Valor_Condominio__c": ""

       "snap_brok__Valor_IPTU__c":"350.15"

     },

     {

       "snap_brok__Id_externo__c":"123456789"

       "snap_brok__Valor_IPTU__c":"350.15"

     }

        ]

    }

    • Valores monetários devem seguir a seguinte formatação: todo o número junto e o "."(ponto) para separar os centavos. Exemplo: 1200.40(Mil e duzentos reais e quarenta centavos).

    Exemplo: Resposta - Sucesso

    Obervações

    Exemplo: Resposta - Falha

    Observações

    [{"errorCode":"NOT_FOUND","message":"Provided external ID field does not exist or is not accessible: 123456789"}]

    Processamento SnapProperty

                    1. SnapProperty realiza busca em contratos(snap_brok__Contrato__c) com base

                        no Id[API_Imobiliar_desocuparImovelIdSales] ou

                        Id externo[API_Imobiliar_desocuparImovelIdExterno] informado.

     2. Caso não encontrado contrato, retorna mensagem de erro informando que contrato não foi localizado.

                    3. Se não houver impedimento para a desocupação SnapProperty atualiza contrato de locação:

           3.1   

    ContratoRest.desocuparImovel

    Descrição: Método responsável por desocupação de um imóvel pelo locatário (snap_brok__Contrato__c).

    Neste método será possível desocupar um imóvel, que ocasionará no distrato do contrato de locação

    e disponibilizar um imóvel para uma nova locação.

    Método Rest: Post

    Tipo de parâmetro: Contrato.

    Tipo: Síncrono

    Máximo de registros por requisição: 1

    AssinaturaURLDescrição
    Id externohttps://<instância do cliente>/services/apexrest/snap_brok/contrato/v1/desocuparImovel
    • Informado o Id externo do contrato de locação, no sistema que está realizando a desocupação.
    • Informado o Id Salesforce do contrato de locação, que pode ter sido obtido em uma busca ou inserção.

    <instância do cliente> : nome de instância da org salesforce que o cliente utiliza. 


    Exemplo: Método

    Post



    Exemplo: Requisição Header
    Content-Typeapplication/json
    AuthorizationOAuth 00Do0000000Kygx!ARUAQNIkRvLZ.uTwqA._wGu.5But


    Exemplo: Requisição body JSONObservações

    {

      "contrato": 

     {

       "snap_brok__Id_externo__c":"CR123456|CR123456|1",

       "snap_brok__Valor_aluguel_corrigido__c":"350.15"

     }


    }

    • Valores monetários devem seguir a seguinte formatação: todo o número junto e o "."(ponto) para separar os centavos. Exemplo: 1200.40(Mil e duzentos reais e quarenta centavos).


    Exemplo: Resposta - Sucesso

    Obervações

    {
    "Mensagem": "Sucesso",
    "Erro": false,
    "Contrato": {
    "attributes": {
    "type": "snap_brok__Contrato__c",
    "url": "/services/data/v41.0/sobjects/snap_brok__Contrato__c/a0l0B00001JoA23QAF"
    },
    "snap_brok__Id_externo__c": "TesteDevLoc",
    "snap_brok__Valor_aluguel_corrigido__c": 350.15,
    "snap_brok__Ativo__c": false,
    "snap_brok__Faturar__c": false,
    "snap_brok__Data_encerramento__c": "2019-02-27",
    "snap_brok__Situacao__c": "Encerrado",
    "Id": "a0l0B00001JoA23QAF"
    }
    }



    Exemplo: Resposta - Falha

    Observações

    O Contrato deve ser de Locação.


    Processamento SnapProperty

                    1. SnapProperty realiza busca em contratos(snap_brok__Contrato__c) com base

                        no Id ou Id externo informado.

     2. Caso não encontrado contrato, retorna mensagem de erro informando que contrato não foi localizado.

                    3. Se não houver impedimento para a desocupação SnapProperty atualiza contrato de locação:

           3.1 "Situação"(snap_brok__Situacao__c) para "Encerrado".

           3.2 "Ativo" (snap_brok__Ativo__c) igual a falso(false).

           3.3 "Faturar" (snap_brok__Faturar__c) igual a falso(false).

           3.4 Atualiza "Valor do aluguel corrigido" (snap_brok__Valor_aluguel_corrigido__c) para o valor recebido no request.  

           4.3 "Data de encerramento" igual a data do sistema(Today).

      4. Pesquisar todos Imóveis do contrato:

                          4.1 Altera a "Situação" (snap_brok__Situacao__c)

    para

    do imóvel para  "

    Encerrado

    Disponivel". 

                         

     3

    4.2 Altera "

    Ativo

    Disponível para locação"

    (snap_brok__Ativo__c) igual a falso(false).

           3.3 "Faturar" (snap_brok__Faturar__c) igual a falso(false).

           3.4 Atualiza "Valor do condomínio" (snap_brok__Valor_Condominio__c) para o valor recebido no request.

           3.5 Atualiza "Valor mensal do IPTU"

    para verdadeiro (true).               



    ContratoRest.desocuparImovelComDistratoAdm

    Descrição: Método responsável por desocupação de um imóvel e término do contrato de administração(snap_brok__ValorContrato_IPTU__c) para o valor recebido no request.  

           4.3 "Data de encerramento" igual a data do sistema(Today).

      4. Pesquisar todos Imóveis do contrato:

                          4.1 Altera a "Situação" (snap_brok__Situacao__c) do imóvel para  "Disponivel". 

                          4.2 Altera "Disponível para locação" para verdadeiro (true).               

    Referências de implementaçãoDescriçãohttps://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_rest_code_sample_restrequest.htmCriação de classe customizadas básicas para requisições Resthttps://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_class_System_Json.htm#apex_System_Json_methodsMétodos para manipulação JSON no Apex

    desocuparImovelComDistratoAdm()

    Descrição: Método responsável por desocupação de um imóvel e término do contrato de administração(snap_brok__Contrato__c).

    Neste método será possível desocupar um imóvel, que ocasionará no distrato do contrato de locação

    e cancelará também o contrato de administração.

    Método Rest: Post

    Tipo de parâmetro: Lista de contratos( mesmo que seja apenas um contrato a ser informado a desocupação).

    Tipo: Síncrono

    Registros por requisição: 200

    AssinaturaURLDescriçãoId externohttps://<instância do cliente>/services/apexrest/API_Imobiliar_desocuparDistratoAdmIdExt/v1
    • Informado o Id externo do contrato de locação no sistema que está realizando a desocupação.
    IDhttps://<instância do cliente>/services/apexrest/API_Imobiliar_desocuparDistratoAdmIdSale/v1
    • Informado o Id Salesforce do contrato, de locação, que pode ter sido obtido em uma busca ou inserção.

    <instância do cliente> : nome de instância da org salesforce que o cliente utiliza. 

    Exemplo: Método

    Post

    Exemplo: URL

    https://snap-property.salesforce.com/services/apexrest/API_Imobiliar_desocuparDistratoAdmIdExt/v1

    Exemplo: Requisição HeaderContent-Typeapplication/jsonAuthorizationOAuth 00Do0000000Kygx!ARUAQNIkRvLZ.uTwqA._wGu.5ButExemplo: Requisição body JSONObservações

    {

      "contratos": [

     {

       "snap_brok__Id_externo__c":"2236262

     },

     {

       "snap_brok__Id_externo__c":"123456789"

     }

        ]

    }

    • Valores monetários devem seguir a seguinte formatação: todo o número junto e o "."(ponto) para separar os centavos. Exemplo: 1200.40(Mil e duzentos reais e quarenta centavos).

    Exemplo: Resposta - Sucesso

    Obervações

    Exemplo: Resposta - Falha

    Observações[{"errorCode":"NOT_FOUND","message":"Provided external ID field does not exist or is not accessible: 123456789"}]

    _c).

    Neste método será possível desocupar um imóvel, que ocasionará no distrato do contrato de locação

    e cancelará também o contrato de administração.

    Método Rest: Post

    Tipo de parâmetro: Contrato.

    Tipo: Síncrono

    Máximo de registros por requisição: 1

    AssinaturaURLDescrição
    Id externohttps://<instância do cliente>/services/apexrest/snap_brok/contrato/v1/desocuparImovelComDistratoAdm
    • Informado o Id externo do contrato de locação no sistema que está realizando a desocupação.
    • Informado o Id Salesforce do contrato, de locação, que pode ter sido obtido em uma busca ou inserção.

    <instância do cliente> : nome de instância da org salesforce que o cliente utiliza. 


    Exemplo: Método

    Post


    Exemplo: URL

    https://snap-property.salesforce.com/services/apexrest/snap_brok/contrato/v1/desocuparImovelComDistratoAdm


    Exemplo: Requisição Header
    Content-Typeapplication/json
    AuthorizationOAuth 00Do0000000Kygx!ARUAQNIkRvLZ.uTwqA._wGu.5But


    Exemplo: Requisição body JSONObservações

    {

      "contrato": {

       "snap_brok__Id_externo__c":"2236262",

       "snap_brok__Valor_aluguel_corrigido__c":"2500.32"

     }

    }

    • Valores monetários devem seguir a seguinte formatação: todo o número junto e o "."(ponto) para separar os centavos. Exemplo: 1200.40(Mil e duzentos reais e quarenta centavos).


    Exemplo: Resposta - Sucesso

    Obervações

    {
    "Mensagem": "Sucesso",
    "Erro": false,
    "Contrato": {
    "attributes": {
    "type": "snap_brok__Contrato__c",
    "url": "/services/data/v41.0/sobjects/snap_brok__Contrato__c/a0l0B00001JoA23QAF"
    },
    "snap_brok__Id_externo__c": "TesteDevLoc",
    "snap_brok__Ativo__c": false,
    "snap_brok__Faturar__c": false,
    "snap_brok__Data_encerramento__c": "2019-03-27",
    "snap_brok__Situacao__c": "Encerrado",
    "Id": "a0l0B00001JoA23QAF"
    }
    }



    Exemplo: Resposta - Falha

    Observações

    Contrato não localizado.


    Processamento SnapProperty

                    1. SnapProperty realiza busca em contratos(snap_brok__Contrato__c) com base

                        no Id [API_Imobiliar_desocuparDistratoAdmIdSale] ou                     Id externo [API_Imobiliar_desocuparDistratoAdmIdExt] informado.

     2. Caso não encontrado contrato, retorna mensagem de erro informando que contrato não foi localizado.

             3. Se não houver impedimento para a desocupação do imóvel e distrato do contrato de administração

                  o SnapProperty atualiza contrato de locação:

           3.1 "Situação"(snap_brok__Situacao__c) para "Encerrado".

           3.2 "Ativo" (snap_brok__Ativo__c) igual a falso(false).

           3.3 "Faturar" (snap_brok__Faturar__c) igual a falso(false).

           3.4 "Data de encerramento" igual a data do sistema(Today).

      4. Pesquisar todos Imóveis do contrato:

                          4.1 Altera a "Situação" (snap_brok__Situacao__c) do imóvel para  "Indisponivel". 

                          4.2 Altera "Disponível para locação" para falso(false).

                      5. Pesquisa os contratos nos Imóveis do contrato os imóveis, os contratos de administração                       dos Imóveis . Atualiza no do contrato de administração:

                          5.1 Altera Situação(snap_brok__Situacao__c) igual "Distratado".

                                                          

    Criação de classe customizadas básicas para requisições RestclassSystem_Json.htm#apex_System_Json_methods
    Referências de implementaçãoDescriçãohttps://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_rest_code_sample_restrequest.htm
    https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_rest_Métodos para manipulação JSON no Apex

         

                                   

    Métodos de Envio

    Métodos que tem como objetivo enviar requisições para a Imobiliar.

    enviarContratoAdm()

    Descrição: Método responsável por enviar, após o término da captação,

    o contrato de Administração criado para a Imobiliar.

    O contrato de Administração deve ser enviado após ser atualizado para "Arquivado", pois sinaliza que está em vigor.

    Método Rest: Post

    Tipo: Síncrono

    Registros por requisição:

    LucidchartautoSize1macroId2187e7e6-03c9-4440-fdf6-6196b1c56347pageCount1instanceIdb4006761-2d8a-3786-8298-207d44fcadc5pageswidth700documentId62fbe97e-b7b2-4ea3-ad93-c62a1e02d69fdocumentTokenVLDNlCpkGng3VTjxjFXjk4+5HiQClu2OTGV+IP9y1Rw=alignlefttyperichupdated1544461884055height500

    Processamento SnapProperty

                    1. A trigger (after update) de Contrato seleciona o contrato que foi atualizado para "Arquivado".

                    2. Trigger invoca método API_Imobiliar_Envio.enviarConta() informando o contrato selecionado.

                    3. O método enviarConta() deve realizar os seguintes processamentos:

                         3.1 Realiza busca nos Participantes do contrato para obter todos os Participantes daquele contrato.

                         3.2 Realiza busca nos Depositários do contrato para obter todos os Depositários daquele contrato.

                         3.3 Remove possíveis duplicatas de contas entre depositários e participantes.

                         3.4 Com os dados das contas selecionados, realiza composição de payload JSON, para requisição a Imobiliar.

        Mapeamento de campos: Inserção de Conta/Pessoa

    SnapPropertyImobiliarObservaçõesNameNome
    • Se tipo de registro diferente de "Cliente pessoa física".
    FirstName + MiddleName + LastNameNome
    • Se tipo de registro "Cliente pessoa física".
    TipoPessoa
    • Se tipo de registro igual "Cliente pessoa física" enviar "F".
    • Se tipo de registro diferente de "Cliente pessoa física" enviar "J".
    snap_finan__Estado_civil__pcEstadoCivilsnap_finan__Genero__pcSexo
    • Se "Masculino" enviar "M".
    • Se "Feminino" enviar "F".
    • Se "Outros" não enviar.
    snap_finan__Cpf_2__pcCpfCnpj
    • Se tipo de registro igual "Cliente pessoa física".
    snap_finan__CNPJ__cCpfCnpj
    • Se tipo de registro diferente "Cliente pessoa física".
    snap_finan__Numero_documento__pcRG
    • Se tipo "snap_finan__Tipo_documento__c" igual "RG".
    snap_finan__Orgao_emissor__cOrgaoExpedidorsnap_finan__Nome_pai__pcNomePaisnap_finan__Nome_mae__pcNomeMaesnap_finan__Numero_documento__pcPassaporte
    • Se tipo "snap_finan__Tipo_documento__c" igual "Passaporte".
    snap_finan__Numero_documento__pcPIS
    • Se tipo "snap_finan__Tipo_documento__c" igual "PIS".
    snap_finan__Nacionalidade__pcNacionalidadesnap_finan__Naturalidade__pcNaturalidadePersonMobilePhoneCelularIdCodSistAnterior
    • Enviar o Id salesforce da conta que foi inserida.
    EmailEmail

    Contato (?)

    Ativo
    • Enviar "S".
    TipoEnderCobr
    • Enviar "O"
    TipoEnderCorresp
    • Se tipo de registro igual "Cliente pessoa física" enviar "R".
    • Se tipo de registro diferente de "Cliente pessoa física" enviar "C"

    PersonOtherPostalCode,

    snap_finan__Logradouro_cobranca__c

    Enderecos.TipoEnder

    PersonOtherPostalCode,

    snap_finan__Cep_cobranca__c

    Enderecos.CEPEnderecos.TipoLograd
    • Enviar vazio
    snap_finan__numero__cEnderecos.Numero

    snap_finan__Complemento_residencial__pc, 

    snap_finan__Complemento__c

    Enderecos.Complemento

    snap_finan__Bairro_residencial__pc,

    snap_finan__Bairro_cobranca__c

    Enderecos.Bairro

    PersonOtherCity,

    snap_finan__Cidade_cobranca__c

    Enderecos.CidadePersonOtherState,Enderecos.UFPhoneEnderecos.Telefone1snap_finan__Telefone_cobranca__cEnderecos.Telefone2

    Obervação: O endereço deve ser enviado como uma lista. Será enviado duas vezes para os endereços dos layouts de "Cliente pessoa física",

    e uma vez para o endereço do layout de "Cliente pessoa jurídica".

    Utilizando o método "Cadastro_Pessoa_Incluir":
    code_sample_restrequest.htmCriação de classe customizadas básicas para requisições Rest
    https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_class_System_Json.htm#apex_System_Json_methodsMétodos para manipulação JSON no Apex




    ContratoRest.desocuparImovelIDExterno

    Descrição: Método responsável por desocupação de um imóvel pelo locatário (snap_brok__Contrato__c).

    Neste método será possível desocupar um imóvel, que ocasionará no distrato do contrato de locação

    e disponibilizar um imóvel para uma nova locação, utilizando-se do id do imó´vel para essa desocuapação.

    Método Rest: Post

    Tipo de parâmetro: Contrato.

    Tipo: Síncrono

    Máximo de registros por requisição: 1

    AssinaturaURLDescrição
    Id externohttps://<instância do cliente>/services/apexrest/snap_brok/contrato/v1/desocuparImovelIDExterno

    <instância do cliente> : nome de instância da org salesforce que o cliente utiliza. 


    Exemplo: Método

    Post



    Exemplo: Requisição Header
    Content-Typeapplication/json
    AuthorizationOAuth 00Do0000000Kygx!ARUAQNIkRvLZ.uTwqA._wGu.5But


    Exemplo: Requisição body JSONObservações

    {

      "imovel": 

     {

       "snap_brok__ID_externo__c":"CR12345"

     }

    }

    Id externo do imóvel para desocupação como prefixo a base.


    Exemplo: Resposta - Sucesso

    Obervações
    {
        "Mensagem""Sucesso",
        "Imovel": {
            "attributes": {
                "type""snap_brok__Imovel__c",
                "url""/services/data/v50.0/sobjects/snap_brok__Imovel__c/a054P000010zB5JQAU"
            },
            "snap_brok__Administrador_outro_sistema__c"true,
            "snap_brok__ID_externo__c""CRDesocupa1",
            "snap_brok__Vistoria__c"false,
            "snap_brok__Situacao__c""Aguardando aprovação",
            "Id""a054P000010zB5JQAU",
            "snap_brok__Disponivel_locacao__c"false
        },
        "Erro"false
    }


    Exemplo: Resposta - Falha

    Observações
    {
        "Mensagem""O Imóvel não possui contrato de Locação.",
        "Imovel"null,
        "Erro"true
    }

    Processamento SnapProperty

                    1. SnapProperty realiza busca em imóveis(snap_brok__Imovel__c) com base no Id externo informado

                     2. Caso não encontrado imóvel, retorna mensagem de erro informando que imóvel não foi localizado

                     3. Localizando o imóvel

                          3.1 Altera a "Situação" (snap_brok__Situacao__c) do imóvel para  "Aguardando aprovação"

                          3.2 Pesquisa os contratos de locação do imóvel:

                     3.2.1 Se não houver impedimento para a desocupação SnapProperty atualiza contrato de locação:

               3.2.1.1 "Situação"(snap_brok__Situacao__c) para "Encerrado".

               3.2.1.2 "Ativo" (snap_brok__Ativo__c) igual a falso(false).

               3.2.1.3 "Faturar" (snap_brok__Faturar__c) igual a falso(false).

               3.2.1.4 "Data de encerramento" igual a data do sistema(Today)

    ContratoRest.trocarGerente

    Descrição: Método responsável por trocar a gerência do imóvel em um contrato de administração, contrato de locação e no imóvel.

    Método Rest: Post

    Tipo de parâmetro: Contrato.

    Tipo: Síncrono

    Máximo de registros por requisição: 1

    AssinaturaURLDescrição
    Id externohttps://<instância do cliente>/services/apexrest/snap_brok/contrato/v1/trocarGerente

    <instância do cliente> : nome de instância da org salesforce que o cliente utiliza. 


    Exemplo: Método

    Post



    Exemplo: Requisição Header
    Content-Typeapplication/json
    AuthorizationOAuth 00Do0000000Kygx!ARUAQNIkRvLZ.uTwqA._wGu.5But


    Exemplo: Requisição body JSONObservações

    {

      "troca": 

     {

       "gerente_antigo":"3182739",

       "gerente_novo":"174918"

        "id_imovel":"CR01234"

        "id_proprietario":"321654"

     }

    }

    • O parâmetro de gerente novo sempre será obrigatório e deve ser acompanhado de ao menos um parâmetro adicional.
    • Exemplo 1: Se for preenchido o Id do imóvel, será realizado a troca de gerência somente para o imóvel informado, em caso do campo estar vazio (""), será considerado a troca para todos imóveis da gerência antiga.
    • Exemplo 2: Ao enviar vazio ("") no campo gerente_antigo e um id de proprietario, a gerência será alterada em todos os locais onde o proprietario for igual ao id enviado sem levar em consideração a gerência anterior.


    Exemplo: Resposta - Sucesso

    Obervações
    {
        "Mensagem""Troca de gerência realizada com sucesso",
        "Erro"false
    }


    Exemplo: Resposta - Falha

    Observações
    {
        "Mensagem""Não encontrado Id do novo gerente",
        "Imovel"null,
        "Erro"true
    }