PessoaFisica.js
3.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
(function($) {
$(document).ready(function() {
var $form = $j('#formcadastro');
var $submitButton = $j('#btn_enviar');
var $cpfField = $j('#id_federal');
var $cpfNotice = $j('<span>').html('')
.addClass('error resource-notice')
.hide()
.width($j('#nm_pessoa').outerWidth() - 12)
.appendTo($cpfField.parent());
var handleGetPersonByCpf = function(dataResponse) {
handleMessages(dataResponse.msgs);
$cpfNotice.hide();
var pessoaId = dataResponse.id;
if (pessoaId && pessoaId != $j('#cod_pessoa_fj').val()) {
$cpfNotice.html(stringUtils.toUtf8('CPF já utilizado pela pessoa código ' + pessoaId + ', ')).slideDown('fast');
$j('<a>').addClass('decorated')
.attr('href', '/intranet/atendidos_cad.php?cod_pessoa_fj=' + pessoaId)
.attr('target', '_blank')
.html('acessar cadastro.')
.appendTo($cpfNotice);
$j('body').animate({ scrollTop: $j('body').offset().top }, 'fast');
}
else if ($j(document).data('submit_form_after_ajax_validation'))
formUtils.submit();
}
var getPersonByCpf = function(cpf) {
var options = {
url : getResourceUrlBuilder.buildUrl('/module/Api/pessoa', 'pessoa'),
dataType : 'json',
data : { cpf : cpf },
success : handleGetPersonByCpf,
// forçado requisições sincronas, evitando erro com requisições ainda não concluidas,
// como no caso, onde o usuário pressiona cancelar por exemplo.
async : false
};
getResource(options);
}
// hide or show #pais_origem_nome by #tipo_nacionalidade
var checkTipoNacionalidade = function() {
if ($j.inArray($j('#tipo_nacionalidade').val(), ['2', '3']) > -1)
$j('#pais_origem_nome').show();
else
$j('#pais_origem_nome').hide();
}
var validatesCpf = function() {
var valid = true;
var cpf = $cpfField.val();
$cpfNotice.hide();
if (cpf && ! validationUtils.validatesCpf(cpf)) {
$cpfNotice.html(stringUtils.toUtf8('O CPF informado é inválido')).slideDown('fast');
// não usado $cpfField.focus(), pois isto prenderia o usuário a página,
// caso o mesmo tenha informado um cpf invalido e clique em cancelar
$j('body').animate({ scrollTop: $j('body').offset().top }, 'fast');
valid = false;
}
return valid;
}
var validatesUniquenessOfCpf = function() {
var cpf = $cpfField.val();
if(cpf && validatesCpf())
getPersonByCpf(cpf);
}
var submitForm = function(event) {
if ($cpfField.val()) {
$j(document).data('submit_form_after_ajax_validation', true);
validatesUniquenessOfCpf();
}
else
formUtils.submit();
}
// style fixup
$('#pais_origem_nome').css('width', '150px');
// bind events
checkTipoNacionalidade();
$j('#tipo_nacionalidade').change(checkTipoNacionalidade);
$cpfField.focusout(function() {
$j(document).removeData('submit_form_after_ajax_validation');
validatesUniquenessOfCpf();
});
$submitButton.removeAttr('onclick');
$submitButton.click(submitForm);
}); // ready
})(jQuery);