PageSourceSearch

https://ixc.masternetrs.com.br/central_assinante_web/controller/faturas/faturas.js

js masternetrs.com.br collected 2026-09-25 03:24:28 UTC 18,215 bytes, 438 lines download raw bytes

1buscarFaturasHTML();
2buscarPagamentosHTML();
3recorrenciaVindiHTML();
4
5var funcoes_faturas = {
6
7    enviarFaturaSMS(tipo, id_receber) {
8        var hs_web = new HotsiteWeb();
9        hs_web.enviarFaturaSMS(tipo, id_receber);
10    },
11    enviarFaturaEMAIL(id_receber) {
12        var hs_web = new HotsiteWeb();
13        hs_web.enviarFaturaEMAIL(id_receber);
14    },
15    imprimirFatura(id_receber,alt_gateway = false) {
16        app.modal_url = '';
17        app.modal_nome = 'Fatura - ' + id_receber;
18        var hs_web = new HotsiteWeb();
19        hs_web.imprimirFatura(id_receber,undefined,alt_gateway);
20    },
21    imprimirPix(id_receber) {
22        app.modal_url = '';
23        var hs_web = new HotsiteWeb();
24        hs_web.imprimirPix(id_receber);
25    },
26    carregarMaisFaturas() {
27        SLICE_FATURA = SLICE_FATURA + 5;
28        app.loading = true;
29        var hs_web = new HotsiteWeb();
30        hs_web.buscarFaturas(SLICE_FATURA, false, true);
31    },
32    carregarCincoFaturas() {
33        SLICE_FATURA = 5;
34        app.loading = true;
35        var hs_web = new HotsiteWeb();
36        hs_web.buscarFaturas(SLICE_FATURA, false, true);
37    },
38    getCarteiraAndPagarFatura(id_receber, parcelas, numero_cartao, mes, ano, dv, cartaoNome, captcha_cad) {
39        app.loading=true;
40
41        var hs_web = new HotsiteWeb();
42        if (captcha_cad === ""){
43            app.loading = false;
44            hs_web.criarToast('5000', 'Erro!', 'Preencha o captcha!', 'fas fa-exclamation-circle', 'red', 'id_erro');
45            return 0;
46        }
47
48        let captchaRequestData = {
49            text: captcha_cad,
50            cacheKey: document.getElementById('captchaKey').value
51        }
52        $.get('/api-module/auth/validate-captcha', captchaRequestData, (response) => {
53            if (response.status === 'error') {
54                hs_web.refreshCaptchaImage('captchaPaymentImage')
55                hs_web.criarToast('5000', 'Erro!', 'Captchas diferentes!', 'fas fa-exclamation-circle', 'red', 'id_erro');
56                document.getElementById('input_captcha').value = '';
57                app.loading = false;
58                return 0;
59            } else if (response.status === 'success') {
60                hs_web.getDadosCarteira(id_receber, (data) => {
61                    let dadosCarteira = (JSON.parse(data)).data;
62                    this.pagarFatura(
63                        id_receber, parcelas, numero_cartao, mes, ano, dv, cartaoNome, dadosCarteira.creditCard_ambiente,
64                        dadosCarteira.creditcard_gateway, dadosCarteira.gerencia_identificador_conta, response.data.captchaValidationHash);
65                });
66            }
67        }).fail((response) => {
68            if (response.status === 498) {
69                hs_web.refreshCaptchaImage('captchaPaymentImage')
70                hs_web.criarToast('3000', 'Erro!', 'O tempo para o CAPTCHA expirou. Realize a operação novamente.', 'fas fa-exclamation-circle', 'yellow', 'id_erro')
71                document.getElementById('input_captcha').value = '';
72                app.loading = false;
73                return 0;
74            }
75        })
76    },
77
78    getCarteiraAndAtivarRecorrenciaVindi(id_contrato, numero_cartao, mes, ano, dv, cartaoNome, captcha_cad) {
79        app.loading=true;
80
81        var hs_web = new HotsiteWeb();
82        if (captcha_cad === ""){
83            app.loading = false;
84            hs_web.criarToast('5000', 'Erro!', 'Preencha o captcha!', 'fas fa-exclamation-circle', 'red', 'id_erro');
85            return 0;
86        }
87
88        let captchaRequestData = {
89            text: captcha_cad,
90            cacheKey: document.getElementById('captchaKey').value
91        }
92        $.get('/api-module/auth/validate-captcha', captchaRequestData, (response) => {
93            if (response.status === 'error') {
94                hs_web.criarToast('5000', 'Erro!', 'Captchas diferentes!', 'fas fa-exclamation-circle', 'red', 'id_erro');
95                document.getElementById('input_captcha').value = '';
96                app.loading = false;
97                return 0;
98            } else if (response.status === 'success') {
99                hs_web.getDadosCarteira(id_receber, (data) => {
100                    let dadosCarteira = (JSON.parse(data)).data;
101                    this.pagarFatura(id_receber, parcelas, numero_cartao, mes, ano, dv, cartaoNome, dadosCarteira.creditCard_ambiente, dadosCarteira.creditcard_gateway, dadosCarteira.gerencia_identificador_conta, response.data.captchaValidationHash);
102                });
103            }
104        }).fail((response) => {
105            if (response.status === 498) {
106                hs_web.refreshCaptchaImage('captchaPaymentImage')
107                hs_web.criarToast('3000', 'Erro!', 'O tempo para o CAPTCHA expirou. Realize a operação novamente.', 'fas fa-exclamation-circle', 'yellow', 'id_erro')
108                document.getElementById('input_captcha').value = '';
109                app.loading = false;
110                return 0;
111            }
112        })
113
114        let error = "";
115
116        this.is_invalid_card = false;
117        this.is_invalid_cvv = false;
118        this.is_invalid_date = false;
119
120        if(numero_cartao.toString().replaceAll(" ","").length < 16){
121            app.loading=false;
122            this.is_invalid_card = true;
123            error += "Número do cartão inválido. O formato deve ser <b>0000 0000 0000 0000</b></br>"
124
125        }
126        if(dv.toString().replaceAll(" ","").length < 3){
127            this.is_invalid_cvv = true;
128            app.loading=false;
129            error += "Código de segurança inválido. O formato deve ser <b>000</b></br>"
130        }
131        if(mes.length != 9 && ano.length != 9){
132            this.is_invalid_date = true;
133            app.loading=false;
134            error += "Data de validade inválida. O formato deve ser <b>00 / 0000</b>"
135        }
136        if(error !== ""){
137            app.loading=false;
138            return  hs_web.criarToast(5000, 'Ops!',  error, 'fas fa-exclamation-circle', 'red', 'id_erro', false);
139        }
140        const cardType = window.CardType.cardType;
141        mes = mes.split('/', 1)[0].trim();
142        ano = ano.split('/').pop().trim();
143        const bandeira = cardType(numero_cartao);
144
145        hs_web.ativarRecorrenciaVindi(id_contrato, numero_cartao, mes, ano, dv, cartaoNome, bandeira);
146    },
147
148    pagarFatura(id_receber, parcelas, numero_cartao, mes, ano, cvv,cartaoNome,creditCardAmbiente,creditcardGateway,gerenciaIdentificadorConta, captchaCheck) {
149        this.is_invalid_card = false;
150        this.is_invalid_cvv = false;
151        this.is_invalid_date = false;
152        const hs_web = new HotsiteWeb();
153        const validacvv = ['5209','4716','6062']
154
155        let error = "";
156
157        setCountdownBotaoPagarFatura();
158
159        if(validacvv.includes(numero_cartao.toString().replaceAll(" ","").substring(0, 4))){
160            if(numero_cartao.toString().replaceAll(" ","").length < 16){
161                app.loading=false;
162                this.is_invalid_card = true;
163                error += "Número do cartão inválido. O formato deve ser <b>0000 0000 0000 0000</b></br>"
164            }
165            if(cvv.toString().replaceAll(" ","").length != 3 ){
166                this.is_invalid_cvv = true;
167                app.loading=false;
168                error += "Código de segurança inválido. O formato deve ser <b>000</b></br>"
169            }
170        }
171
172        if(mes.length != 9 && ano.length != 9){
173            this.is_invalid_date = true;
174            app.loading=false;
175            error += "Data de validade inválida. O formato deve ser <b>00 / 0000</b>"
176        }
177        if(error !== ""){
178            app.loading=false;
179            return  hs_web.criarToast(5000, 'Ops!',  error, 'fas fa-exclamation-circle', 'red', 'id_erro', false);
180        }
181        hs_web.criarToast(50000, 'Atenção', 'Seu pagamento está sendo processado, não saia da página até ter um retorno!', 'fas fa-exclamation-circle', 'blue', 'id_erro', false, 'processandoPagamento');
182        const cardType = window.CardType.cardType;
183
184        parcelas === 'Escolha a forma de pagamento...' ? parcelas = 0 : parcelas = parcelas;
185        mes = mes.split('/', 1)[0].trim();
186        ano = ano.split('/').pop().trim();
187        const bandeira = cardType(numero_cartao);
188        const recorrente = router.history.current.matched[0].instances.default.recorrente;
189
190        hs_web.pagarFatura(
191            id_receber, parcelas, numero_cartao, mes, ano, bandeira, cvv, recorrente,cartaoNome,creditCardAmbiente,
192            creditcardGateway,gerenciaIdentificadorConta, '', '', captchaCheck
193        );
194    },
195
196    montarModalConsultaFatura(fatura) {
197        var hs_web = new HotsiteWeb();
198        hs_web.montarModalConsultaFatura(fatura);
199    },
200    montarModalSelecionarBanco(fatura,tamanho) {
201        var hs_web = new HotsiteWeb();
202        hs_web.montarModalSelecionarBanco(fatura,tamanho);
203    },
204    imprimirFaturaComSelecaoDeBanco(dadosReceber,dadosCarteira){
205        let hs_web = new HotsiteWeb();
206        hs_web.imprimirFaturaComSelecaoDeBanco(dadosReceber,dadosCarteira);
207    },
208    copiarCodigoBarras(linha_digitavel) {
209        linha_digitavel = linha_digitavel.replaceAll(".","").replaceAll(" ","");
210
211        if(window.ReactNativeWebView){
212            return postMessageMobile("copy_bar_code", JSON.stringify({dados: linha_digitavel}))
213                .then((retorno)=>funcoes_faturas.validateReturnCopyBarCode(JSON.parse(retorno.data).retorno))
214                .catch(()=>funcoes_faturas.validateReturnCopyBarCode(false));
215        }
216
217        navigator.clipboard.writeText(linha_digitavel)
218            .then(()=>funcoes_faturas.validateReturnCopyBarCode(true))
219            .catch(()=>funcoes_faturas.validateReturnCopyBarCode(false));
220    },
221    validateReturnCopyBarCode(successful){
222        const hs_web = new HotsiteWeb();
223        if (successful) {
224            hs_web.criarToast(4000, 'Sucesso!', 'Código copiado para área de transferência.', 'fas fa-check', 'green', 'id_sucesso');
225        } else {
226            hs_web.criarToast(4000, 'Erro!', 'Não foi possível copiar o código.', 'fas fa-exclamation-circle', 'red', 'id_erro');
227        }
228    },
229    haveSomeOverdueInvoices(invoices) {
230        return invoices.some(invoice => invoice.status_color === "status_red");
231    },
232};
233
234function setCountdownBotaoPagarFatura() {
235    let button = document.getElementById("btn_pagar_fatura");
236    let buttonCountdown = document.getElementById("btn_pagar_fatura_countdown");
237    let tempoCowntdown = 10;
238
239    buttonCountdown.innerHTML = '(10)';
240    button.setAttribute('disabled', 'disabled');
241    let countdownTimer = setInterval(function() {
242        if (tempoCowntdown <= 1) {
243            button.removeAttribute('disabled');
244            buttonCountdown.innerHTML = '';
245            clearInterval(countdownTimer);
246        } else {
247            tempoCowntdown--;
248            buttonCountdown.innerHTML = `(${tempoCowntdown})`;
249            button.setAttribute('disabled', 'disabled');
250        }
251    }, 1000);
252}
253
254function buscarPagamentosHTML() {
255    try {
256        $.get(__SERVER__ + "/view/faturas/pagamentos.vue", function (resposta) {
257            __ROTAS__.push({
258                path: '/central_assinante_web/faturas/pagamentos/:protocolo',
259                name: 'pagamentos',
260                component: {
261                    template: resposta,
262                    data() {
263                        return {
264                            pagamentos: '',
265                            loading: false,
266                            recorrente: false,
267                            permite_recorrencia: false,
268                            contrato_recorrente: false,
269                            cartao_numero: '',
270                            cartao_nome: '',
271                            cartao_data: '',
272                            cartao_codigo: '',
273                            cartao_parcelamento: 'Escolha a forma de pagamento...',
274                            cartao_parcelas: [],
275                            captcha_pagamento: '',
276                            is_invalid_card: false,
277                            is_invalid_cvv: false,
278                            is_invalid_date: false
279                        }
280                    },
281                    methods: funcoes_faturas,
282                    computed: {
283                        allowPayment() {
284                            let installmentSelected = Number(this.cartao_parcelamento.trim());
285                            let installmentBelongsToOptions = this.cartao_parcelas.some(installment => Number(installment.vezes) === installmentSelected);
286
287                            return (
288                                this.cartao_numero.trim()
289                                && this.cartao_nome.trim()
290                                && this.cartao_data.trim()
291                                && this.cartao_codigo.trim()
292                                && this.captcha_pagamento.trim()
293                                && installmentSelected
294                                && installmentBelongsToOptions
295                            );
296                        }
297                    },
298                    watch: {
299                        'cartao_data' : function (val) {
300                            if(/\S\/\S/.test(val)){
301                                this.cartao_data = val.trim().replace(/\//g, " / ");
302                            }
303
304                            if (this.is_invalid_date && val.length === 9) {
305                                this.is_invalid_date = false;
306                            }
307                        }
308                    }
309                }
310            });
311            PAGE_PAGAMENTOS = true;
312            verificaPages();
313        })
314    } catch (e) {
315        console.log("Error Message -> " + e);
316    }
317}
318
319function buscarFaturasHTML() {
320
321    try {
322        $.ajax({
323            url: __SERVER__ + "/view/faturas/faturas.vue",
324            type: "GET",
325            data: "",
326            dataType: 'html'
327        }).done(function (resposta) {
328            __ROTAS__.push({
329                path: '/central_assinante_web/faturas',
330                name: 'faturas',
331                component: {
332                    template: resposta,
333                    data() {
334                        return {
335                            mostrar_cinco_faturas: false,
336                            codigo_de_barras: '',
337                            loading: true,
338                            busca: '',
339                            faturas: {
340                                faturas: [],
341                                vencidas: [],
342                                pendentes: [],
343                                abertas: [],
344                                pagas: [],
345                                canceladas: [],
346                                notifi_dash: [],
347                                num_notificacoes: 0,
348                                num_faturas: 0,
349                                total_apagar_faturas: 0.00
350                            },
351                            url_fatura: '',
352                            sms_fatura: 'N',
353                            email_fatura: 'N',
354                            tamanho: $(window).width(),
355                            is_safari: false
356                        };
357                    },
358                    methods: funcoes_faturas,
359                    computed: {
360                        filteredList() {
361                            let arrayFaturas = Object.values(this.faturas.faturas)
362
363                            return arrayFaturas.filter(contrato => {
364                                return contrato.descricao.toLowerCase().includes(this.busca.toLowerCase())
365                            })
366                        },
367                        isGenerationByInvoice() {
368                            return this.faturas.geracao_por_fatura === 'S';
369                        }
370                    },
371                },
372
373
374            });
375
376            PAGE_FATURAS = true;
377            verificaPages();
378        });
379    } catch (e) {
380        console.log("Error Message -> " + e);
381    }
382}
383
384function recorrenciaVindiHTML() {
385
386    try {
387        $.get(__SERVER__ + "/view/faturas/recorrencia_vindi.vue", function (resposta) {
388            __ROTAS__.push({
389                path: '/central_assinante_web/faturas/recorrencia_vindi/:id_contrato',
390                name: 'recorrencia_vindi',
391                component: {
392                    template: resposta,
393                    data() {
394                        return {
395                            pagamentos: '',
396                            loading: false,
397                            cartao_numero: '',
398                            cartao_nome: '',
399                            cartao_data: '',
400                            cartao_codigo: '',
401                            captcha_pagamento: '',
402                            is_invalid_card: false,
403                            is_invalid_cvv: false,
404                            is_invalid_date: false
405                        }
406                    },
407                    methods: funcoes_faturas,
408                    computed: {
409                        allowPayment() {
410                            return (
411                                this.cartao_numero.trim()
412                                && this.cartao_nome.trim()
413                                && this.cartao_data.trim()
414                                && this.cartao_codigo.trim()
415                                && this.captcha_pagamento.trim()
416                            );
417                        }
418                    },
419                    watch: {
420                        'cartao_data' : function (val) {
421                            if(/\S\/\S/.test(val)){
422                                this.cartao_data = val.trim().replace(/\//g, " / ");
423                            }
424
425                            if (this.is_invalid_date && val.length === 9) {
426                                this.is_invalid_date = false;
427                            }
428                        }
429                    }
430                }
431            });
432            PAGE_RECORRENCIA_VINDI = true;
433            verificaPages();
434        })
435    } catch (e) {
436        console.log("Error Message -> " + e);
437    }
438}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.