@credithub/harlan-components 1.6.0 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,6 +2,8 @@ import React, { PropsWithChildren } from "react";
2
2
  import { ParsedResponse } from "./webservice";
3
3
  import { RefinBoaVistaResponse } from "./refinBoaVista/types";
4
4
  import { PefinRefinSerasaResponse } from "./refinSerasa/types";
5
+ import { ImoveisConsultaResponse } from "./imoveis/types";
6
+ import { ScoreResponse } from "./score/types";
5
7
  type QueryType<DataType = any> = {
6
8
  consultaRealizada: boolean;
7
9
  data?: ParsedResponse<DataType> | null;
@@ -9,6 +11,8 @@ type QueryType<DataType = any> = {
9
11
  type ConsultasComplementaresProps = {
10
12
  refinSerasa: QueryType<PefinRefinSerasaResponse>;
11
13
  refinBoaVista: QueryType<RefinBoaVistaResponse>;
14
+ scoreBoaVista: QueryType<ScoreResponse>;
15
+ imoveis: QueryType<ImoveisConsultaResponse>;
12
16
  };
13
17
  export type ConsultasComplementaresContextProps = {
14
18
  consultasComplementares: ConsultasComplementaresProps;
@@ -34,14 +34,20 @@ var ConsultasComplementaresProvider = function (_a) {
34
34
  consultaRealizada: false,
35
35
  },
36
36
  refinSerasa: {
37
- consultaRealizada: false
37
+ consultaRealizada: false,
38
+ },
39
+ scoreBoaVista: {
40
+ consultaRealizada: false,
41
+ },
42
+ imoveis: {
43
+ consultaRealizada: false,
38
44
  },
39
- hasCredits: hasCredits
45
+ hasCredits: hasCredits,
40
46
  }), consultasComplementares = _b[0], setConsultasComplementares = _b[1];
41
47
  return (react_1.default.createElement(exports.ConsultasComplementaresContext.Provider, { value: {
42
48
  consultasComplementares: consultasComplementares,
43
49
  setConsultasComplementares: setConsultasComplementares,
44
- hasCredits: hasCredits
50
+ hasCredits: hasCredits,
45
51
  } }, children));
46
52
  };
47
53
  exports.ConsultasComplementaresProvider = ConsultasComplementaresProvider;
@@ -47,176 +47,193 @@ var string_1 = require("../../../utils/string");
47
47
  var number_1 = require("../../../utils/number");
48
48
  var consultasComplementares_1 = require("../../../components/consultasComplementares");
49
49
  var Summary = function (_a) {
50
- var _b, _c;
50
+ var _b, _c, _d, _e;
51
51
  var finderResponse = _a.finderResponse;
52
52
  var consultasComplementaresContext = (0, react_1.useContext)(consultasComplementares_1.ConsultasComplementaresContext);
53
- var _d = (consultasComplementaresContext && consultasComplementaresContext) || {}, consultasComplementares = _d.consultasComplementares, setConsultasComplementares = _d.setConsultasComplementares, hasCredits = _d.hasCredits;
53
+ var _f = (consultasComplementaresContext && consultasComplementaresContext) || {}, consultasComplementares = _f.consultasComplementares, setConsultasComplementares = _f.setConsultasComplementares, hasCredits = _f.hasCredits;
54
54
  var getField = function (path, formatter) {
55
- var value = xpath_1.default.select("string(".concat(path, ")"), xpath_1.default.select('//cadastro', finderResponse)[0]);
55
+ var value = xpath_1.default.select("string(".concat(path, ")"), xpath_1.default.select("//cadastro", finderResponse)[0]);
56
56
  return formatter ? formatter(value) : value;
57
57
  };
58
- var isPF = !!getField('cpf');
58
+ var isPF = !!getField("cpf");
59
59
  var productsPrices = getProductsPrices(isPF);
60
- var handleOnClick = function (key) { return function () {
61
- var callback = function () { return setConsultasComplementares && setConsultasComplementares(function (prev) {
62
- var _a;
63
- return (__assign(__assign({}, prev), (_a = {}, _a[key] = __assign(__assign({}, prev[key]), { consultaRealizada: true }), _a)));
64
- }); };
65
- return hasCredits ? hasCredits(productsPrices[key] * 1000, callback) : callback();
66
- }; };
67
- var _e = {
68
- cards: [{
69
- title: getField('nome'),
60
+ var handleOnClick = function (key) {
61
+ return function () {
62
+ var callback = function () {
63
+ return setConsultasComplementares &&
64
+ setConsultasComplementares(function (prev) {
65
+ var _a;
66
+ return (__assign(__assign({}, prev), (_a = {}, _a[key] = __assign(__assign({}, prev[key]), { consultaRealizada: true }), _a)));
67
+ });
68
+ };
69
+ return hasCredits
70
+ ? hasCredits(productsPrices[key] * 1000, callback)
71
+ : callback();
72
+ };
73
+ };
74
+ var _g = {
75
+ cards: [
76
+ {
77
+ title: getField("nome"),
70
78
  header: "Nome",
71
79
  },
72
80
  {
73
- title: getField('cpf', string_1.formatCpf),
81
+ title: getField("cpf", string_1.formatCpf),
74
82
  header: "Cpf",
75
83
  },
76
84
  {
77
- title: getField('sexo', function (value) { return isPF && (value == 'M' ? 'Masculino' : 'Feminino') || ''; }),
85
+ title: getField("sexo", function (value) { return (isPF && (value == "M" ? "Masculino" : "Feminino")) || ""; }),
78
86
  header: "Sexo",
79
87
  },
80
88
  {
81
- title: getField('dataNascimento'),
89
+ title: getField("dataNascimento"),
82
90
  header: "Data De Nascimento",
83
91
  },
84
92
  {
85
- title: getField('idade'),
86
- header: "Idade"
93
+ title: getField("idade"),
94
+ header: "Idade",
87
95
  },
88
96
  {
89
- title: isPF && getField('faixaIdade'),
90
- header: "Faixa De Idade"
97
+ title: isPF && getField("faixaIdade"),
98
+ header: "Faixa De Idade",
91
99
  },
92
100
  {
93
- title: getField('signo'),
94
- header: "Signo"
101
+ title: getField("signo"),
102
+ header: "Signo",
95
103
  },
96
104
  {
97
- title: getField('rg'),
98
- header: "Rg"
105
+ title: getField("rg"),
106
+ header: "Rg",
99
107
  },
100
108
  {
101
- title: getField('ufRg'),
102
- header: "Uf Do Rg"
109
+ title: getField("ufRg"),
110
+ header: "Uf Do Rg",
103
111
  },
104
112
  {
105
- title: getField('status'),
106
- header: "Situação"
113
+ title: getField("status"),
114
+ header: "Situação",
107
115
  },
108
116
  {
109
- title: getField('statusData'),
110
- header: "Data Da Situação"
117
+ title: getField("statusData"),
118
+ header: "Data Da Situação",
111
119
  },
112
120
  {
113
- title: getField('maeNome'),
114
- header: "Nome Da Mãe"
121
+ title: getField("maeNome"),
122
+ header: "Nome Da Mãe",
115
123
  },
116
124
  {
117
- title: getField('maeCpf'),
118
- header: "Cpf Da Mãe"
125
+ title: getField("maeCpf"),
126
+ header: "Cpf Da Mãe",
119
127
  },
120
128
  {
121
- title: getField('obitoProvavel'),
122
- header: "Óbito Provável"
129
+ title: getField("obitoProvavel"),
130
+ header: "Óbito Provável",
123
131
  },
124
132
  {
125
- title: getField('tituloEleitoral'),
126
- header: "Titulo Eleitoral"
133
+ title: getField("tituloEleitoral"),
134
+ header: "Titulo Eleitoral",
127
135
  },
128
136
  {
129
- title: getField('grauInstrucao'),
130
- header: "Grau De Instrução"
137
+ title: getField("grauInstrucao"),
138
+ header: "Grau De Instrução",
131
139
  },
132
140
  {
133
- title: getField('dependentes'),
134
- header: "Dependentes"
141
+ title: getField("dependentes"),
142
+ header: "Dependentes",
135
143
  },
136
144
  {
137
- title: getField('estadoCivil'),
138
- header: "Estado Civil"
145
+ title: getField("estadoCivil"),
146
+ header: "Estado Civil",
139
147
  },
140
148
  {
141
- title: getField('renda', number_1.formatMoney),
142
- header: "Renda"
149
+ title: getField("renda", number_1.formatMoney),
150
+ header: "Renda",
143
151
  },
144
152
  {
145
- title: getField('ppe', function (value) { return isPF && (value ? 'Sim' : 'Não') || ''; }),
146
- header: "Pessoa Politicamente Exposta"
153
+ title: getField("ppe", function (value) { return (isPF && (value ? "Sim" : "Não")) || ""; }),
154
+ header: "Pessoa Politicamente Exposta",
147
155
  },
148
156
  {
149
- title: getField('nomeFantasia'),
157
+ title: getField("nomeFantasia"),
150
158
  header: "Nome Fantasia",
151
159
  },
152
160
  {
153
- title: (0, string_1.formatCnpj)(getField('cnpj')),
161
+ title: (0, string_1.formatCnpj)(getField("cnpj")),
154
162
  header: "Cnpj",
155
163
  },
156
164
  {
157
- title: getField('receitaStatus'),
165
+ title: getField("receitaStatus"),
158
166
  header: "Status da Receita",
159
167
  },
160
168
  {
161
- title: getField('dataReceitaStatus'),
169
+ title: getField("dataReceitaStatus"),
162
170
  header: "Data do Status na Receita",
163
171
  },
164
172
  {
165
- title: getField('tipoEmpresa'),
166
- header: "Tipo da Empresa"
173
+ title: getField("tipoEmpresa"),
174
+ header: "Tipo da Empresa",
167
175
  },
168
176
  {
169
- title: getField('cnaeDescricao'),
177
+ title: getField("cnaeDescricao"),
170
178
  header: "Atividade Econômica",
171
179
  },
172
180
  {
173
- title: getField('naturezaJuridica'),
174
- header: 'Natureza Jurídica',
181
+ title: getField("naturezaJuridica"),
182
+ header: "Natureza Jurídica",
175
183
  },
176
184
  {
177
- title: getField('dataAbertura'),
185
+ title: getField("dataAbertura"),
178
186
  header: "Data De Abertura",
179
187
  },
180
188
  {
181
- title: getField('idadeEmpresa'),
189
+ title: getField("idadeEmpresa"),
182
190
  header: "Idade Da Empresa",
183
191
  },
184
192
  {
185
- title: isPF && getField('faixaIdade'),
186
- header: "Faixa De Idade da Empresa"
193
+ title: isPF && getField("faixaIdade"),
194
+ header: "Faixa De Idade da Empresa",
187
195
  },
188
196
  {
189
- title: getField('quantidadeFuncionarios'),
197
+ title: getField("quantidadeFuncionarios"),
190
198
  header: "Quantidade De Funcionários",
191
199
  },
192
200
  {
193
- title: getField('faixaFuncionarios'),
201
+ title: getField("faixaFuncionarios"),
194
202
  header: "Faixa De Funcionários",
195
203
  },
196
204
  {
197
- title: getField('porteEmpresa'),
205
+ title: getField("porteEmpresa"),
198
206
  header: "Porte Da Empresa",
199
207
  },
200
208
  {
201
- title: getField('capitalSocial', number_1.formatMoney),
209
+ title: getField("capitalSocial", number_1.formatMoney),
202
210
  header: "Capital Social",
203
- },].filter(function (card) { return card.title; }),
211
+ },
212
+ ].filter(function (card) { return card.title; }),
204
213
  products: [
214
+ {
215
+ title: 'Consultar Imóveis SP Capital',
216
+ price: productsPrices === null || productsPrices === void 0 ? void 0 : productsPrices.imoveis,
217
+ onclick: handleOnClick('imoveis'),
218
+ hide: !isPF || ((_b = consultasComplementares === null || consultasComplementares === void 0 ? void 0 : consultasComplementares.imoveis) === null || _b === void 0 ? void 0 : _b.consultaRealizada)
219
+ },
205
220
  {
206
221
  title: "Consultar Pefin/Refin Boa Vista",
207
222
  price: productsPrices === null || productsPrices === void 0 ? void 0 : productsPrices.refinBoaVista,
208
- onClick: handleOnClick('refinBoaVista'),
209
- hide: (_b = consultasComplementares === null || consultasComplementares === void 0 ? void 0 : consultasComplementares.refinBoaVista) === null || _b === void 0 ? void 0 : _b.consultaRealizada
223
+ onClick: handleOnClick("refinBoaVista"),
224
+ hide: (_c = consultasComplementares === null || consultasComplementares === void 0 ? void 0 : consultasComplementares.refinBoaVista) === null || _c === void 0 ? void 0 : _c.consultaRealizada,
210
225
  },
211
226
  {
212
227
  title: "Consultar Score Boa Vista",
213
228
  price: productsPrices === null || productsPrices === void 0 ? void 0 : productsPrices.scoreBoaVista,
229
+ onClick: handleOnClick("scoreBoaVista"),
230
+ hide: (_d = consultasComplementares === null || consultasComplementares === void 0 ? void 0 : consultasComplementares.scoreBoaVista) === null || _d === void 0 ? void 0 : _d.consultaRealizada,
214
231
  },
215
232
  {
216
233
  title: "Consultar Pefin/Refin Serasa",
217
234
  price: productsPrices === null || productsPrices === void 0 ? void 0 : productsPrices.refinSerasa,
218
- onClick: handleOnClick('refinSerasa'),
219
- hide: (_c = consultasComplementares === null || consultasComplementares === void 0 ? void 0 : consultasComplementares.refinSerasa) === null || _c === void 0 ? void 0 : _c.consultaRealizada
235
+ onClick: handleOnClick("refinSerasa"),
236
+ hide: (_e = consultasComplementares === null || consultasComplementares === void 0 ? void 0 : consultasComplementares.refinSerasa) === null || _e === void 0 ? void 0 : _e.consultaRealizada,
220
237
  },
221
238
  {
222
239
  title: "Consultar Veículos",
@@ -225,9 +242,9 @@ var Summary = function (_a) {
225
242
  {
226
243
  title: "Consultar SCR",
227
244
  price: productsPrices === null || productsPrices === void 0 ? void 0 : productsPrices.scr,
228
- }
245
+ },
229
246
  ],
230
- }, cards = _e.cards, products = _e.products;
247
+ }, cards = _g.cards, products = _g.products;
231
248
  return (react_1.default.createElement("div", { className: (0, classnames_1.default)("container") },
232
249
  react_1.default.createElement("div", { className: (0, classnames_1.default)("content", "summary-content") },
233
250
  cards.map(function (card, index) { return (react_1.default.createElement(addItem_1.default, { key: index, name: card.header, value: card.title, className: (0, classnames_1.default)("field"), style: { display: "inline-block" } })); }),
@@ -240,6 +257,7 @@ var getProductsPrices = function (isPF) { return ({
240
257
  scoreBoaVista: isPF ? 3 : 6,
241
258
  refinSerasa: 4.2,
242
259
  veiculos: 10,
243
- scr: 7
260
+ scr: 7,
261
+ imoveis: 20,
244
262
  }); };
245
263
  exports.default = exports.Summary;
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ interface ConsultaImoveisProps {
3
+ documento: string;
4
+ }
5
+ declare const ConsultaImoveis: React.FC<ConsultaImoveisProps>;
6
+ export default ConsultaImoveis;
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ var react_1 = __importStar(require("react"));
30
+ var header_1 = __importDefault(require("../interface/header"));
31
+ var addItem_1 = __importDefault(require("../common/addItem"));
32
+ var result_1 = require("../interface/result");
33
+ var webservice_1 = require("../webservice");
34
+ var consultasComplementares_1 = require("../consultasComplementares");
35
+ var number_1 = require("../../utils/number");
36
+ var classnames_1 = __importDefault(require("classnames"));
37
+ var webservice_2 = require("../webservice");
38
+ var ConsultaImoveis = function (_a) {
39
+ var _b;
40
+ var _c, _d, _e, _f, _g;
41
+ var documento = _a.documento;
42
+ var consultasComplementaresContext = (0, react_1.useContext)(consultasComplementares_1.ConsultasComplementaresContext);
43
+ var _h = (0, webservice_1.useQuery)("SELECT FROM 'IMOVEIS'.'CONSULTA'", { documento: documento }, !!((_d = (_c = consultasComplementaresContext === null || consultasComplementaresContext === void 0 ? void 0 : consultasComplementaresContext.consultasComplementares) === null || _c === void 0 ? void 0 : _c.imoveis) === null || _d === void 0 ? void 0 : _d.consultaRealizada)), response = _h.response, isLoading = _h.isLoading, error = _h.error;
44
+ var iptus = ((_e = response === null || response === void 0 ? void 0 : response.document) === null || _e === void 0 ? void 0 : _e.IPTUS) || [];
45
+ var consultaImoveisRef = (0, react_1.useRef)(null);
46
+ var consultaImoveisRealizada = (0, react_1.useMemo)(function () {
47
+ var _a, _b;
48
+ return (_b = (_a = consultasComplementaresContext === null || consultasComplementaresContext === void 0 ? void 0 : consultasComplementaresContext.consultasComplementares) === null || _a === void 0 ? void 0 : _a.imoveis) === null || _b === void 0 ? void 0 : _b.consultaRealizada;
49
+ }, [
50
+ (_g = (_f = consultasComplementaresContext === null || consultasComplementaresContext === void 0 ? void 0 : consultasComplementaresContext.consultasComplementares) === null || _f === void 0 ? void 0 : _f.imoveis) === null || _g === void 0 ? void 0 : _g.consultaRealizada,
51
+ ]);
52
+ var description = isLoading
53
+ ? "Carregando..."
54
+ : error
55
+ ? "Erro ao consultar IPTUs. Tente mais tarde."
56
+ : iptus.length > 0
57
+ ? "Foram encontrados ".concat(iptus.length, " registros de IPTU")
58
+ : "Nenhum registro de IPTU encontrado para o documento informado.";
59
+ (0, react_1.useEffect)(function () {
60
+ var _a;
61
+ (_a = consultaImoveisRef.current) === null || _a === void 0 ? void 0 : _a.scrollIntoView();
62
+ }, []);
63
+ return consultaImoveisRealizada ? (react_1.default.createElement(react_1.default.Fragment, null,
64
+ react_1.default.createElement(header_1.default, { innerRef: consultaImoveisRef, title: "Consulta de IPTU", subtitle: "Registros de IPTU para o documento informado", className: (0, classnames_1.default)((_b = {},
65
+ _b[webservice_2.headerStatus[webservice_2.RequestStatus.Loading]] = isLoading,
66
+ _b[webservice_2.headerStatus[webservice_2.RequestStatus.Error]] = !!error,
67
+ _b[webservice_2.headerStatus[webservice_2.RequestStatus.Success]] = iptus.length > 0,
68
+ _b)), description: description }),
69
+ react_1.default.createElement(result_1.Result, null, iptus.map(function (iptu, index) {
70
+ var _a, _b, _c, _d, _e, _f, _g;
71
+ return (react_1.default.createElement("div", { key: index, className: "container" },
72
+ react_1.default.createElement("div", { className: "content" },
73
+ react_1.default.createElement(addItem_1.default, { name: "Endere\u00E7o", value: iptu.ENDERECO }),
74
+ react_1.default.createElement(addItem_1.default, { name: "Conjunto", value: (_a = iptu.COMPLEMENTO) === null || _a === void 0 ? void 0 : _a.CONJUNTO }),
75
+ react_1.default.createElement(addItem_1.default, { name: "Quadra", value: (_b = iptu.COMPLEMENTO) === null || _b === void 0 ? void 0 : _b.QUADRA }),
76
+ react_1.default.createElement(addItem_1.default, { name: "Lote", value: (_c = iptu.COMPLEMENTO) === null || _c === void 0 ? void 0 : _c.LOTE }),
77
+ react_1.default.createElement(addItem_1.default, { name: "N\u00FAmero", value: iptu.NUMERO }),
78
+ react_1.default.createElement(addItem_1.default, { name: "Bairro", value: iptu.BAIRRO }),
79
+ react_1.default.createElement(addItem_1.default, { name: "CEP", value: iptu.CEP }),
80
+ react_1.default.createElement(addItem_1.default, { name: "\u00C1rea do Terreno", value: "".concat((_d = iptu.AREA) === null || _d === void 0 ? void 0 : _d.TOTAL, " m\u00B2") }),
81
+ react_1.default.createElement(addItem_1.default, { name: "\u00C1rea Constru\u00EDda", value: "".concat((_e = iptu.AREA) === null || _e === void 0 ? void 0 : _e.CONSTRUIDA, " m\u00B2") }),
82
+ react_1.default.createElement(addItem_1.default, { name: "Ano de Constru\u00E7\u00E3o", value: String(iptu.ANO) }),
83
+ react_1.default.createElement(addItem_1.default, { name: "Valor do IPTU", value: (0, number_1.formatMoney)((_f = iptu.VALOR) === null || _f === void 0 ? void 0 : _f.IPTU) }),
84
+ react_1.default.createElement(addItem_1.default, { name: "Valor do Im\u00F3vel", value: (0, number_1.formatMoney)((_g = iptu.VALOR) === null || _g === void 0 ? void 0 : _g.CONSTRUCAO) }))));
85
+ })))) : null;
86
+ };
87
+ exports.default = ConsultaImoveis;
@@ -0,0 +1,24 @@
1
+ export interface ImoveisConsultaResponse {
2
+ IPTUS: IPTUItem[];
3
+ consultaRealizada: unknown[];
4
+ }
5
+ export interface IPTUItem {
6
+ COMPLEMENTO?: {
7
+ CONJUNTO?: string;
8
+ QUADRA?: string;
9
+ LOTE?: string;
10
+ };
11
+ ENDERECO?: string;
12
+ NUMERO?: string;
13
+ BAIRRO?: string;
14
+ CEP?: string;
15
+ AREA?: {
16
+ TOTAL?: number;
17
+ CONSTRUIDA?: number;
18
+ };
19
+ ANO?: number;
20
+ VALOR?: {
21
+ IPTU?: number;
22
+ CONSTRUCAO?: number;
23
+ };
24
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ interface ConsultaScoreProps {
3
+ documento: string;
4
+ }
5
+ declare const ConsultaScore: React.FC<ConsultaScoreProps>;
6
+ export default ConsultaScore;
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ var react_1 = __importStar(require("react"));
30
+ var header_1 = __importDefault(require("../interface/header"));
31
+ var addItem_1 = __importDefault(require("../common/addItem"));
32
+ var result_1 = require("../interface/result");
33
+ var webservice_1 = require("../webservice");
34
+ var consultasComplementares_1 = require("../consultasComplementares");
35
+ var classnames_1 = __importDefault(require("classnames"));
36
+ var webservice_2 = require("../webservice");
37
+ var ConsultaScore = function (_a) {
38
+ var _b;
39
+ var _c, _d, _e, _f, _g;
40
+ var documento = _a.documento;
41
+ var consultasComplementaresContext = (0, react_1.useContext)(consultasComplementares_1.ConsultasComplementaresContext);
42
+ var _h = (0, webservice_1.useQuery)("SELECT FROM 'SPCNet'.'ScoreBoaVista'", { documento: documento }, (_d = (_c = consultasComplementaresContext === null || consultasComplementaresContext === void 0 ? void 0 : consultasComplementaresContext.consultasComplementares) === null || _c === void 0 ? void 0 : _c.scoreBoaVista) === null || _d === void 0 ? void 0 : _d.consultaRealizada), response = _h.response, isLoading = _h.isLoading, error = _h.error;
43
+ var scoreData = (_e = response === null || response === void 0 ? void 0 : response.document) === null || _e === void 0 ? void 0 : _e.score[0];
44
+ var scoreRef = (0, react_1.useRef)(null);
45
+ var consultaRefinRealizada = (0, react_1.useMemo)(function () {
46
+ var _a, _b;
47
+ return (_b = (_a = consultasComplementaresContext === null || consultasComplementaresContext === void 0 ? void 0 : consultasComplementaresContext.consultasComplementares) === null || _a === void 0 ? void 0 : _a.scoreBoaVista) === null || _b === void 0 ? void 0 : _b.consultaRealizada;
48
+ }, [
49
+ (_g = (_f = consultasComplementaresContext === null || consultasComplementaresContext === void 0 ? void 0 : consultasComplementaresContext.consultasComplementares) === null || _f === void 0 ? void 0 : _f.scoreBoaVista) === null || _g === void 0 ? void 0 : _g.consultaRealizada,
50
+ ]);
51
+ var description = isLoading
52
+ ? "Carregando..."
53
+ : error
54
+ ? "Erro ao consultar o Score. Tente mais tarde."
55
+ : scoreData
56
+ ? "Score: ".concat(scoreData.score)
57
+ : "Nenhuma informação de score disponível para este documento.";
58
+ (0, react_1.useEffect)(function () {
59
+ var _a;
60
+ (_a = scoreRef.current) === null || _a === void 0 ? void 0 : _a.scrollIntoView();
61
+ }, [consultaRefinRealizada]);
62
+ return consultaRefinRealizada ? (react_1.default.createElement(react_1.default.Fragment, null,
63
+ react_1.default.createElement(header_1.default, { innerRef: scoreRef, title: "Score Boa Vista", subtitle: "Consulta de Score", className: (0, classnames_1.default)((_b = {},
64
+ _b[webservice_2.headerStatus[webservice_2.RequestStatus.Loading]] = isLoading,
65
+ _b[webservice_2.headerStatus[webservice_2.RequestStatus.Error]] = !!error,
66
+ _b[webservice_2.headerStatus[webservice_2.RequestStatus.Success]] = !!scoreData,
67
+ _b)), description: description }),
68
+ react_1.default.createElement(result_1.Result, null, scoreData && (react_1.default.createElement(react_1.default.Fragment, null,
69
+ react_1.default.createElement(addItem_1.default, { name: "Score", value: String(scoreData.score) }),
70
+ react_1.default.createElement(addItem_1.default, { name: "Probabilidade de Inadimpl\u00EAncia", value: scoreData.provavel }),
71
+ react_1.default.createElement(addItem_1.default, { name: "Classifica\u00E7\u00E3o", value: scoreData.classificacao }),
72
+ react_1.default.createElement(addItem_1.default, { name: "An\u00E1lise", value: scoreData.texto }),
73
+ react_1.default.createElement(addItem_1.default, { name: "Status", value: scoreData.status }),
74
+ documento.length > 11 && (react_1.default.createElement(react_1.default.Fragment, null,
75
+ react_1.default.createElement(addItem_1.default, { name: "Classifica\u00E7\u00E3o N\u00FAmerica", value: scoreData.classificacao_numerica }),
76
+ react_1.default.createElement(addItem_1.default, { name: "Classifica\u00E7\u00E3o Alfab\u00E9tica", value: scoreData.classificacao_alfabetica })))))))) : null;
77
+ };
78
+ exports.default = ConsultaScore;
@@ -0,0 +1,12 @@
1
+ export interface ScoreResponse {
2
+ score: ScoreItem[];
3
+ }
4
+ export interface ScoreItem {
5
+ score: string;
6
+ provavel: string;
7
+ classificacao: string;
8
+ texto: string;
9
+ status?: string;
10
+ classificacao_numerica?: string;
11
+ classificacao_alfabetica?: string;
12
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -6,6 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  var react_1 = __importDefault(require("react"));
7
7
  var _1 = require("./");
8
8
  var consultasComplementares_1 = require("./components/consultasComplementares");
9
+ var scoreService_1 = __importDefault(require("./components/score/scoreService"));
10
+ var imoveisService_1 = __importDefault(require("./components/imoveis/imoveisService"));
9
11
  var ConsultaSimples = function (_a) {
10
12
  var documento = _a.documento, apiKey = _a.apiKey, onClose = _a.onClose, hasCredits = _a.hasCredits;
11
13
  return (react_1.default.createElement(consultasComplementares_1.ConsultasComplementaresProvider, { hasCredits: hasCredits },
@@ -23,7 +25,9 @@ var ConsultaSimples = function (_a) {
23
25
  react_1.default.createElement(_1.Queries.GraficosAnaliticos.Request, { data: { documento: documento } },
24
26
  react_1.default.createElement(_1.CustomChartSection, { documento: documento }),
25
27
  react_1.default.createElement(_1.RefinBoaVista, { documento: documento }),
26
- react_1.default.createElement(_1.RefinSerasa, { documento: documento })),
28
+ react_1.default.createElement(_1.RefinSerasa, { documento: documento }),
29
+ react_1.default.createElement(scoreService_1.default, { documento: documento }),
30
+ react_1.default.createElement(imoveisService_1.default, { documento: documento })),
27
31
  react_1.default.createElement(_1.Protestos, null),
28
32
  react_1.default.createElement(_1.CCF, null),
29
33
  react_1.default.createElement(_1.ProcessosJuridicos, { onClickConsultarProcessoJuridico: console.log })))))))));
@@ -2,6 +2,8 @@ import React, { PropsWithChildren } from "react";
2
2
  import { ParsedResponse } from "./webservice";
3
3
  import { RefinBoaVistaResponse } from "./refinBoaVista/types";
4
4
  import { PefinRefinSerasaResponse } from "./refinSerasa/types";
5
+ import { ImoveisConsultaResponse } from "./imoveis/types";
6
+ import { ScoreResponse } from "./score/types";
5
7
  type QueryType<DataType = any> = {
6
8
  consultaRealizada: boolean;
7
9
  data?: ParsedResponse<DataType> | null;
@@ -9,6 +11,8 @@ type QueryType<DataType = any> = {
9
11
  type ConsultasComplementaresProps = {
10
12
  refinSerasa: QueryType<PefinRefinSerasaResponse>;
11
13
  refinBoaVista: QueryType<RefinBoaVistaResponse>;
14
+ scoreBoaVista: QueryType<ScoreResponse>;
15
+ imoveis: QueryType<ImoveisConsultaResponse>;
12
16
  };
13
17
  export type ConsultasComplementaresContextProps = {
14
18
  consultasComplementares: ConsultasComplementaresProps;
@@ -8,13 +8,19 @@ export var ConsultasComplementaresProvider = function (_a) {
8
8
  consultaRealizada: false,
9
9
  },
10
10
  refinSerasa: {
11
- consultaRealizada: false
11
+ consultaRealizada: false,
12
+ },
13
+ scoreBoaVista: {
14
+ consultaRealizada: false,
15
+ },
16
+ imoveis: {
17
+ consultaRealizada: false,
12
18
  },
13
- hasCredits: hasCredits
19
+ hasCredits: hasCredits,
14
20
  }), consultasComplementares = _b[0], setConsultasComplementares = _b[1];
15
21
  return (React.createElement(ConsultasComplementaresContext.Provider, { value: {
16
22
  consultasComplementares: consultasComplementares,
17
23
  setConsultasComplementares: setConsultasComplementares,
18
- hasCredits: hasCredits
24
+ hasCredits: hasCredits,
19
25
  } }, children));
20
26
  };
@@ -16,178 +16,195 @@ import XPathUtils from "../../../utils/xpath";
16
16
  import Button from "../../../components/common/button";
17
17
  import { formatCnpj, formatCpf } from "../../../utils/string";
18
18
  import { formatMoney } from "../../../utils/number";
19
- import { ConsultasComplementaresContext } from "../../../components/consultasComplementares";
19
+ import { ConsultasComplementaresContext, } from "../../../components/consultasComplementares";
20
20
  export var Summary = function (_a) {
21
- var _b, _c;
21
+ var _b, _c, _d, _e;
22
22
  var finderResponse = _a.finderResponse;
23
23
  var consultasComplementaresContext = useContext(ConsultasComplementaresContext);
24
- var _d = (consultasComplementaresContext && consultasComplementaresContext) || {}, consultasComplementares = _d.consultasComplementares, setConsultasComplementares = _d.setConsultasComplementares, hasCredits = _d.hasCredits;
24
+ var _f = (consultasComplementaresContext && consultasComplementaresContext) || {}, consultasComplementares = _f.consultasComplementares, setConsultasComplementares = _f.setConsultasComplementares, hasCredits = _f.hasCredits;
25
25
  var getField = function (path, formatter) {
26
- var value = XPathUtils.select("string(".concat(path, ")"), XPathUtils.select('//cadastro', finderResponse)[0]);
26
+ var value = XPathUtils.select("string(".concat(path, ")"), XPathUtils.select("//cadastro", finderResponse)[0]);
27
27
  return formatter ? formatter(value) : value;
28
28
  };
29
- var isPF = !!getField('cpf');
29
+ var isPF = !!getField("cpf");
30
30
  var productsPrices = getProductsPrices(isPF);
31
- var handleOnClick = function (key) { return function () {
32
- var callback = function () { return setConsultasComplementares && setConsultasComplementares(function (prev) {
33
- var _a;
34
- return (__assign(__assign({}, prev), (_a = {}, _a[key] = __assign(__assign({}, prev[key]), { consultaRealizada: true }), _a)));
35
- }); };
36
- return hasCredits ? hasCredits(productsPrices[key] * 1000, callback) : callback();
37
- }; };
38
- var _e = {
39
- cards: [{
40
- title: getField('nome'),
31
+ var handleOnClick = function (key) {
32
+ return function () {
33
+ var callback = function () {
34
+ return setConsultasComplementares &&
35
+ setConsultasComplementares(function (prev) {
36
+ var _a;
37
+ return (__assign(__assign({}, prev), (_a = {}, _a[key] = __assign(__assign({}, prev[key]), { consultaRealizada: true }), _a)));
38
+ });
39
+ };
40
+ return hasCredits
41
+ ? hasCredits(productsPrices[key] * 1000, callback)
42
+ : callback();
43
+ };
44
+ };
45
+ var _g = {
46
+ cards: [
47
+ {
48
+ title: getField("nome"),
41
49
  header: "Nome",
42
50
  },
43
51
  {
44
- title: getField('cpf', formatCpf),
52
+ title: getField("cpf", formatCpf),
45
53
  header: "Cpf",
46
54
  },
47
55
  {
48
- title: getField('sexo', function (value) { return isPF && (value == 'M' ? 'Masculino' : 'Feminino') || ''; }),
56
+ title: getField("sexo", function (value) { return (isPF && (value == "M" ? "Masculino" : "Feminino")) || ""; }),
49
57
  header: "Sexo",
50
58
  },
51
59
  {
52
- title: getField('dataNascimento'),
60
+ title: getField("dataNascimento"),
53
61
  header: "Data De Nascimento",
54
62
  },
55
63
  {
56
- title: getField('idade'),
57
- header: "Idade"
64
+ title: getField("idade"),
65
+ header: "Idade",
58
66
  },
59
67
  {
60
- title: isPF && getField('faixaIdade'),
61
- header: "Faixa De Idade"
68
+ title: isPF && getField("faixaIdade"),
69
+ header: "Faixa De Idade",
62
70
  },
63
71
  {
64
- title: getField('signo'),
65
- header: "Signo"
72
+ title: getField("signo"),
73
+ header: "Signo",
66
74
  },
67
75
  {
68
- title: getField('rg'),
69
- header: "Rg"
76
+ title: getField("rg"),
77
+ header: "Rg",
70
78
  },
71
79
  {
72
- title: getField('ufRg'),
73
- header: "Uf Do Rg"
80
+ title: getField("ufRg"),
81
+ header: "Uf Do Rg",
74
82
  },
75
83
  {
76
- title: getField('status'),
77
- header: "Situação"
84
+ title: getField("status"),
85
+ header: "Situação",
78
86
  },
79
87
  {
80
- title: getField('statusData'),
81
- header: "Data Da Situação"
88
+ title: getField("statusData"),
89
+ header: "Data Da Situação",
82
90
  },
83
91
  {
84
- title: getField('maeNome'),
85
- header: "Nome Da Mãe"
92
+ title: getField("maeNome"),
93
+ header: "Nome Da Mãe",
86
94
  },
87
95
  {
88
- title: getField('maeCpf'),
89
- header: "Cpf Da Mãe"
96
+ title: getField("maeCpf"),
97
+ header: "Cpf Da Mãe",
90
98
  },
91
99
  {
92
- title: getField('obitoProvavel'),
93
- header: "Óbito Provável"
100
+ title: getField("obitoProvavel"),
101
+ header: "Óbito Provável",
94
102
  },
95
103
  {
96
- title: getField('tituloEleitoral'),
97
- header: "Titulo Eleitoral"
104
+ title: getField("tituloEleitoral"),
105
+ header: "Titulo Eleitoral",
98
106
  },
99
107
  {
100
- title: getField('grauInstrucao'),
101
- header: "Grau De Instrução"
108
+ title: getField("grauInstrucao"),
109
+ header: "Grau De Instrução",
102
110
  },
103
111
  {
104
- title: getField('dependentes'),
105
- header: "Dependentes"
112
+ title: getField("dependentes"),
113
+ header: "Dependentes",
106
114
  },
107
115
  {
108
- title: getField('estadoCivil'),
109
- header: "Estado Civil"
116
+ title: getField("estadoCivil"),
117
+ header: "Estado Civil",
110
118
  },
111
119
  {
112
- title: getField('renda', formatMoney),
113
- header: "Renda"
120
+ title: getField("renda", formatMoney),
121
+ header: "Renda",
114
122
  },
115
123
  {
116
- title: getField('ppe', function (value) { return isPF && (value ? 'Sim' : 'Não') || ''; }),
117
- header: "Pessoa Politicamente Exposta"
124
+ title: getField("ppe", function (value) { return (isPF && (value ? "Sim" : "Não")) || ""; }),
125
+ header: "Pessoa Politicamente Exposta",
118
126
  },
119
127
  {
120
- title: getField('nomeFantasia'),
128
+ title: getField("nomeFantasia"),
121
129
  header: "Nome Fantasia",
122
130
  },
123
131
  {
124
- title: formatCnpj(getField('cnpj')),
132
+ title: formatCnpj(getField("cnpj")),
125
133
  header: "Cnpj",
126
134
  },
127
135
  {
128
- title: getField('receitaStatus'),
136
+ title: getField("receitaStatus"),
129
137
  header: "Status da Receita",
130
138
  },
131
139
  {
132
- title: getField('dataReceitaStatus'),
140
+ title: getField("dataReceitaStatus"),
133
141
  header: "Data do Status na Receita",
134
142
  },
135
143
  {
136
- title: getField('tipoEmpresa'),
137
- header: "Tipo da Empresa"
144
+ title: getField("tipoEmpresa"),
145
+ header: "Tipo da Empresa",
138
146
  },
139
147
  {
140
- title: getField('cnaeDescricao'),
148
+ title: getField("cnaeDescricao"),
141
149
  header: "Atividade Econômica",
142
150
  },
143
151
  {
144
- title: getField('naturezaJuridica'),
145
- header: 'Natureza Jurídica',
152
+ title: getField("naturezaJuridica"),
153
+ header: "Natureza Jurídica",
146
154
  },
147
155
  {
148
- title: getField('dataAbertura'),
156
+ title: getField("dataAbertura"),
149
157
  header: "Data De Abertura",
150
158
  },
151
159
  {
152
- title: getField('idadeEmpresa'),
160
+ title: getField("idadeEmpresa"),
153
161
  header: "Idade Da Empresa",
154
162
  },
155
163
  {
156
- title: isPF && getField('faixaIdade'),
157
- header: "Faixa De Idade da Empresa"
164
+ title: isPF && getField("faixaIdade"),
165
+ header: "Faixa De Idade da Empresa",
158
166
  },
159
167
  {
160
- title: getField('quantidadeFuncionarios'),
168
+ title: getField("quantidadeFuncionarios"),
161
169
  header: "Quantidade De Funcionários",
162
170
  },
163
171
  {
164
- title: getField('faixaFuncionarios'),
172
+ title: getField("faixaFuncionarios"),
165
173
  header: "Faixa De Funcionários",
166
174
  },
167
175
  {
168
- title: getField('porteEmpresa'),
176
+ title: getField("porteEmpresa"),
169
177
  header: "Porte Da Empresa",
170
178
  },
171
179
  {
172
- title: getField('capitalSocial', formatMoney),
180
+ title: getField("capitalSocial", formatMoney),
173
181
  header: "Capital Social",
174
- },].filter(function (card) { return card.title; }),
182
+ },
183
+ ].filter(function (card) { return card.title; }),
175
184
  products: [
185
+ {
186
+ title: 'Consultar Imóveis SP Capital',
187
+ price: productsPrices === null || productsPrices === void 0 ? void 0 : productsPrices.imoveis,
188
+ onclick: handleOnClick('imoveis'),
189
+ hide: !isPF || ((_b = consultasComplementares === null || consultasComplementares === void 0 ? void 0 : consultasComplementares.imoveis) === null || _b === void 0 ? void 0 : _b.consultaRealizada)
190
+ },
176
191
  {
177
192
  title: "Consultar Pefin/Refin Boa Vista",
178
193
  price: productsPrices === null || productsPrices === void 0 ? void 0 : productsPrices.refinBoaVista,
179
- onClick: handleOnClick('refinBoaVista'),
180
- hide: (_b = consultasComplementares === null || consultasComplementares === void 0 ? void 0 : consultasComplementares.refinBoaVista) === null || _b === void 0 ? void 0 : _b.consultaRealizada
194
+ onClick: handleOnClick("refinBoaVista"),
195
+ hide: (_c = consultasComplementares === null || consultasComplementares === void 0 ? void 0 : consultasComplementares.refinBoaVista) === null || _c === void 0 ? void 0 : _c.consultaRealizada,
181
196
  },
182
197
  {
183
198
  title: "Consultar Score Boa Vista",
184
199
  price: productsPrices === null || productsPrices === void 0 ? void 0 : productsPrices.scoreBoaVista,
200
+ onClick: handleOnClick("scoreBoaVista"),
201
+ hide: (_d = consultasComplementares === null || consultasComplementares === void 0 ? void 0 : consultasComplementares.scoreBoaVista) === null || _d === void 0 ? void 0 : _d.consultaRealizada,
185
202
  },
186
203
  {
187
204
  title: "Consultar Pefin/Refin Serasa",
188
205
  price: productsPrices === null || productsPrices === void 0 ? void 0 : productsPrices.refinSerasa,
189
- onClick: handleOnClick('refinSerasa'),
190
- hide: (_c = consultasComplementares === null || consultasComplementares === void 0 ? void 0 : consultasComplementares.refinSerasa) === null || _c === void 0 ? void 0 : _c.consultaRealizada
206
+ onClick: handleOnClick("refinSerasa"),
207
+ hide: (_e = consultasComplementares === null || consultasComplementares === void 0 ? void 0 : consultasComplementares.refinSerasa) === null || _e === void 0 ? void 0 : _e.consultaRealizada,
191
208
  },
192
209
  {
193
210
  title: "Consultar Veículos",
@@ -196,9 +213,9 @@ export var Summary = function (_a) {
196
213
  {
197
214
  title: "Consultar SCR",
198
215
  price: productsPrices === null || productsPrices === void 0 ? void 0 : productsPrices.scr,
199
- }
216
+ },
200
217
  ],
201
- }, cards = _e.cards, products = _e.products;
218
+ }, cards = _g.cards, products = _g.products;
202
219
  return (React.createElement("div", { className: cn("container") },
203
220
  React.createElement("div", { className: cn("content", "summary-content") },
204
221
  cards.map(function (card, index) { return (React.createElement(AddItemField, { key: index, name: card.header, value: card.title, className: cn("field"), style: { display: "inline-block" } })); }),
@@ -210,6 +227,7 @@ var getProductsPrices = function (isPF) { return ({
210
227
  scoreBoaVista: isPF ? 3 : 6,
211
228
  refinSerasa: 4.2,
212
229
  veiculos: 10,
213
- scr: 7
230
+ scr: 7,
231
+ imoveis: 20,
214
232
  }); };
215
233
  export default Summary;
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ interface ConsultaImoveisProps {
3
+ documento: string;
4
+ }
5
+ declare const ConsultaImoveis: React.FC<ConsultaImoveisProps>;
6
+ export default ConsultaImoveis;
@@ -0,0 +1,59 @@
1
+ import React, { useContext, useEffect, useMemo, useRef } from "react";
2
+ import Header from "../interface/header";
3
+ import AddItemField from "../common/addItem";
4
+ import { Result } from "../interface/result";
5
+ import { useQuery } from "../webservice";
6
+ import { ConsultasComplementaresContext } from "../consultasComplementares";
7
+ import { formatMoney } from "../../utils/number";
8
+ import classNames from "classnames";
9
+ import { RequestStatus, headerStatus } from "../webservice";
10
+ var ConsultaImoveis = function (_a) {
11
+ var _b;
12
+ var _c, _d, _e, _f, _g;
13
+ var documento = _a.documento;
14
+ var consultasComplementaresContext = useContext(ConsultasComplementaresContext);
15
+ var _h = useQuery("SELECT FROM 'IMOVEIS'.'CONSULTA'", { documento: documento }, !!((_d = (_c = consultasComplementaresContext === null || consultasComplementaresContext === void 0 ? void 0 : consultasComplementaresContext.consultasComplementares) === null || _c === void 0 ? void 0 : _c.imoveis) === null || _d === void 0 ? void 0 : _d.consultaRealizada)), response = _h.response, isLoading = _h.isLoading, error = _h.error;
16
+ var iptus = ((_e = response === null || response === void 0 ? void 0 : response.document) === null || _e === void 0 ? void 0 : _e.IPTUS) || [];
17
+ var consultaImoveisRef = useRef(null);
18
+ var consultaImoveisRealizada = useMemo(function () {
19
+ var _a, _b;
20
+ return (_b = (_a = consultasComplementaresContext === null || consultasComplementaresContext === void 0 ? void 0 : consultasComplementaresContext.consultasComplementares) === null || _a === void 0 ? void 0 : _a.imoveis) === null || _b === void 0 ? void 0 : _b.consultaRealizada;
21
+ }, [
22
+ (_g = (_f = consultasComplementaresContext === null || consultasComplementaresContext === void 0 ? void 0 : consultasComplementaresContext.consultasComplementares) === null || _f === void 0 ? void 0 : _f.imoveis) === null || _g === void 0 ? void 0 : _g.consultaRealizada,
23
+ ]);
24
+ var description = isLoading
25
+ ? "Carregando..."
26
+ : error
27
+ ? "Erro ao consultar IPTUs. Tente mais tarde."
28
+ : iptus.length > 0
29
+ ? "Foram encontrados ".concat(iptus.length, " registros de IPTU")
30
+ : "Nenhum registro de IPTU encontrado para o documento informado.";
31
+ useEffect(function () {
32
+ var _a;
33
+ (_a = consultaImoveisRef.current) === null || _a === void 0 ? void 0 : _a.scrollIntoView();
34
+ }, []);
35
+ return consultaImoveisRealizada ? (React.createElement(React.Fragment, null,
36
+ React.createElement(Header, { innerRef: consultaImoveisRef, title: "Consulta de IPTU", subtitle: "Registros de IPTU para o documento informado", className: classNames((_b = {},
37
+ _b[headerStatus[RequestStatus.Loading]] = isLoading,
38
+ _b[headerStatus[RequestStatus.Error]] = !!error,
39
+ _b[headerStatus[RequestStatus.Success]] = iptus.length > 0,
40
+ _b)), description: description }),
41
+ React.createElement(Result, null, iptus.map(function (iptu, index) {
42
+ var _a, _b, _c, _d, _e, _f, _g;
43
+ return (React.createElement("div", { key: index, className: "container" },
44
+ React.createElement("div", { className: "content" },
45
+ React.createElement(AddItemField, { name: "Endere\u00E7o", value: iptu.ENDERECO }),
46
+ React.createElement(AddItemField, { name: "Conjunto", value: (_a = iptu.COMPLEMENTO) === null || _a === void 0 ? void 0 : _a.CONJUNTO }),
47
+ React.createElement(AddItemField, { name: "Quadra", value: (_b = iptu.COMPLEMENTO) === null || _b === void 0 ? void 0 : _b.QUADRA }),
48
+ React.createElement(AddItemField, { name: "Lote", value: (_c = iptu.COMPLEMENTO) === null || _c === void 0 ? void 0 : _c.LOTE }),
49
+ React.createElement(AddItemField, { name: "N\u00FAmero", value: iptu.NUMERO }),
50
+ React.createElement(AddItemField, { name: "Bairro", value: iptu.BAIRRO }),
51
+ React.createElement(AddItemField, { name: "CEP", value: iptu.CEP }),
52
+ React.createElement(AddItemField, { name: "\u00C1rea do Terreno", value: "".concat((_d = iptu.AREA) === null || _d === void 0 ? void 0 : _d.TOTAL, " m\u00B2") }),
53
+ React.createElement(AddItemField, { name: "\u00C1rea Constru\u00EDda", value: "".concat((_e = iptu.AREA) === null || _e === void 0 ? void 0 : _e.CONSTRUIDA, " m\u00B2") }),
54
+ React.createElement(AddItemField, { name: "Ano de Constru\u00E7\u00E3o", value: String(iptu.ANO) }),
55
+ React.createElement(AddItemField, { name: "Valor do IPTU", value: formatMoney((_f = iptu.VALOR) === null || _f === void 0 ? void 0 : _f.IPTU) }),
56
+ React.createElement(AddItemField, { name: "Valor do Im\u00F3vel", value: formatMoney((_g = iptu.VALOR) === null || _g === void 0 ? void 0 : _g.CONSTRUCAO) }))));
57
+ })))) : null;
58
+ };
59
+ export default ConsultaImoveis;
@@ -0,0 +1,24 @@
1
+ export interface ImoveisConsultaResponse {
2
+ IPTUS: IPTUItem[];
3
+ consultaRealizada: unknown[];
4
+ }
5
+ export interface IPTUItem {
6
+ COMPLEMENTO?: {
7
+ CONJUNTO?: string;
8
+ QUADRA?: string;
9
+ LOTE?: string;
10
+ };
11
+ ENDERECO?: string;
12
+ NUMERO?: string;
13
+ BAIRRO?: string;
14
+ CEP?: string;
15
+ AREA?: {
16
+ TOTAL?: number;
17
+ CONSTRUIDA?: number;
18
+ };
19
+ ANO?: number;
20
+ VALOR?: {
21
+ IPTU?: number;
22
+ CONSTRUCAO?: number;
23
+ };
24
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ interface ConsultaScoreProps {
3
+ documento: string;
4
+ }
5
+ declare const ConsultaScore: React.FC<ConsultaScoreProps>;
6
+ export default ConsultaScore;
@@ -0,0 +1,50 @@
1
+ import React, { useContext, useEffect, useMemo, useRef } from "react";
2
+ import Header from "../interface/header";
3
+ import AddItemField from "../common/addItem";
4
+ import { Result } from "../interface/result";
5
+ import { useQuery } from "../webservice";
6
+ import { ConsultasComplementaresContext } from "../consultasComplementares";
7
+ import classNames from "classnames";
8
+ import { RequestStatus, headerStatus } from "../webservice";
9
+ var ConsultaScore = function (_a) {
10
+ var _b;
11
+ var _c, _d, _e, _f, _g;
12
+ var documento = _a.documento;
13
+ var consultasComplementaresContext = useContext(ConsultasComplementaresContext);
14
+ var _h = useQuery("SELECT FROM 'SPCNet'.'ScoreBoaVista'", { documento: documento }, (_d = (_c = consultasComplementaresContext === null || consultasComplementaresContext === void 0 ? void 0 : consultasComplementaresContext.consultasComplementares) === null || _c === void 0 ? void 0 : _c.scoreBoaVista) === null || _d === void 0 ? void 0 : _d.consultaRealizada), response = _h.response, isLoading = _h.isLoading, error = _h.error;
15
+ var scoreData = (_e = response === null || response === void 0 ? void 0 : response.document) === null || _e === void 0 ? void 0 : _e.score[0];
16
+ var scoreRef = useRef(null);
17
+ var consultaRefinRealizada = useMemo(function () {
18
+ var _a, _b;
19
+ return (_b = (_a = consultasComplementaresContext === null || consultasComplementaresContext === void 0 ? void 0 : consultasComplementaresContext.consultasComplementares) === null || _a === void 0 ? void 0 : _a.scoreBoaVista) === null || _b === void 0 ? void 0 : _b.consultaRealizada;
20
+ }, [
21
+ (_g = (_f = consultasComplementaresContext === null || consultasComplementaresContext === void 0 ? void 0 : consultasComplementaresContext.consultasComplementares) === null || _f === void 0 ? void 0 : _f.scoreBoaVista) === null || _g === void 0 ? void 0 : _g.consultaRealizada,
22
+ ]);
23
+ var description = isLoading
24
+ ? "Carregando..."
25
+ : error
26
+ ? "Erro ao consultar o Score. Tente mais tarde."
27
+ : scoreData
28
+ ? "Score: ".concat(scoreData.score)
29
+ : "Nenhuma informação de score disponível para este documento.";
30
+ useEffect(function () {
31
+ var _a;
32
+ (_a = scoreRef.current) === null || _a === void 0 ? void 0 : _a.scrollIntoView();
33
+ }, [consultaRefinRealizada]);
34
+ return consultaRefinRealizada ? (React.createElement(React.Fragment, null,
35
+ React.createElement(Header, { innerRef: scoreRef, title: "Score Boa Vista", subtitle: "Consulta de Score", className: classNames((_b = {},
36
+ _b[headerStatus[RequestStatus.Loading]] = isLoading,
37
+ _b[headerStatus[RequestStatus.Error]] = !!error,
38
+ _b[headerStatus[RequestStatus.Success]] = !!scoreData,
39
+ _b)), description: description }),
40
+ React.createElement(Result, null, scoreData && (React.createElement(React.Fragment, null,
41
+ React.createElement(AddItemField, { name: "Score", value: String(scoreData.score) }),
42
+ React.createElement(AddItemField, { name: "Probabilidade de Inadimpl\u00EAncia", value: scoreData.provavel }),
43
+ React.createElement(AddItemField, { name: "Classifica\u00E7\u00E3o", value: scoreData.classificacao }),
44
+ React.createElement(AddItemField, { name: "An\u00E1lise", value: scoreData.texto }),
45
+ React.createElement(AddItemField, { name: "Status", value: scoreData.status }),
46
+ documento.length > 11 && (React.createElement(React.Fragment, null,
47
+ React.createElement(AddItemField, { name: "Classifica\u00E7\u00E3o N\u00FAmerica", value: scoreData.classificacao_numerica }),
48
+ React.createElement(AddItemField, { name: "Classifica\u00E7\u00E3o Alfab\u00E9tica", value: scoreData.classificacao_alfabetica })))))))) : null;
49
+ };
50
+ export default ConsultaScore;
@@ -0,0 +1,12 @@
1
+ export interface ScoreResponse {
2
+ score: ScoreItem[];
3
+ }
4
+ export interface ScoreItem {
5
+ score: string;
6
+ provavel: string;
7
+ classificacao: string;
8
+ texto: string;
9
+ status?: string;
10
+ classificacao_numerica?: string;
11
+ classificacao_alfabetica?: string;
12
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -1,6 +1,8 @@
1
1
  import React from "react";
2
2
  import { Section, Contacts, Partners, Dossie, Addresses, CCF, Protestos, ProcessosJuridicos, BankAccounts, WebServiceProvider, Queries, CustomChartSection, RefinSerasa, RefinBoaVista, } from "./";
3
3
  import { ConsultasComplementaresProvider } from "./components/consultasComplementares";
4
+ import ConsultaScore from "./components/score/scoreService";
5
+ import ConsultaImoveis from "./components/imoveis/imoveisService";
4
6
  var ConsultaSimples = function (_a) {
5
7
  var documento = _a.documento, apiKey = _a.apiKey, onClose = _a.onClose, hasCredits = _a.hasCredits;
6
8
  return (React.createElement(ConsultasComplementaresProvider, { hasCredits: hasCredits },
@@ -18,7 +20,9 @@ var ConsultaSimples = function (_a) {
18
20
  React.createElement(Queries.GraficosAnaliticos.Request, { data: { documento: documento } },
19
21
  React.createElement(CustomChartSection, { documento: documento }),
20
22
  React.createElement(RefinBoaVista, { documento: documento }),
21
- React.createElement(RefinSerasa, { documento: documento })),
23
+ React.createElement(RefinSerasa, { documento: documento }),
24
+ React.createElement(ConsultaScore, { documento: documento }),
25
+ React.createElement(ConsultaImoveis, { documento: documento })),
22
26
  React.createElement(Protestos, null),
23
27
  React.createElement(CCF, null),
24
28
  React.createElement(ProcessosJuridicos, { onClickConsultarProcessoJuridico: console.log })))))))));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@credithub/harlan-components",
3
- "version": "1.6.0",
3
+ "version": "1.7.0",
4
4
  "description": "Provide a set of web components to be used in Harlan and other projects",
5
5
  "keywords": [
6
6
  "harlan",