Commit e3e0b786e9ee6795b8e728d72439278d562ade7c
1 parent
c66fdfef
Exists in
master
Facilitado preenchimento dos documentos, ao cadastrar nova pessoa fisica closes #6
Showing
38 changed files
with
1622 additions
and
410 deletions
Show diff stats
ieducar/intranet/atendidos_cad.php
1 | 1 | <?php |
2 | 2 | |
3 | +#error_reporting(E_ALL); | |
4 | +#ini_set("display_errors", 1); | |
5 | + | |
3 | 6 | /** |
4 | 7 | * i-Educar - Sistema de gestão escolar |
5 | 8 | * |
... | ... | @@ -40,6 +43,7 @@ require_once 'App/Model/ZonaLocalizacao.php'; |
40 | 43 | require_once 'Portabilis/String/Utils.php'; |
41 | 44 | require_once 'Portabilis/View/Helper/Application.php'; |
42 | 45 | require_once 'Portabilis/Utils/Validation.php'; |
46 | +require_once 'Portabilis/Date/Utils.php'; | |
43 | 47 | |
44 | 48 | /** |
45 | 49 | * clsIndex class. |
... | ... | @@ -125,7 +129,8 @@ class indice extends clsCadastro |
125 | 129 | $this->bairro, $this->logradouro, $this->cep, $this->idlog, $this->idbai, |
126 | 130 | $this->idtlog, $this->sigla_uf, $this->complemento, $this->numero, |
127 | 131 | $this->bloco, $this->apartamento, $this->andar, $this->zona_localizacao, $this->estado_civil, |
128 | - $this->pai_id, $this->mae_id, $this->tipo_nacionalidade, $this->pais_origem, $this->naturalidade | |
132 | + $this->pai_id, $this->mae_id, $this->tipo_nacionalidade, $this->pais_origem, $this->naturalidade, | |
133 | + $this->letra | |
129 | 134 | ) = |
130 | 135 | |
131 | 136 | $objPessoa->queryRapida( |
... | ... | @@ -134,7 +139,7 @@ class indice extends clsCadastro |
134 | 139 | 'url', 'tipo', 'sexo', 'cidade', 'bairro', 'logradouro', 'cep', 'idlog', |
135 | 140 | 'idbai', 'idtlog', 'sigla_uf', 'complemento', 'numero', 'bloco', 'apartamento', |
136 | 141 | 'andar', 'zona_localizacao', 'ideciv', 'idpes_pai', 'idpes_mae', 'nacionalidade', |
137 | - 'idpais_estrangeiro', 'idmun_nascimento' | |
142 | + 'idpais_estrangeiro', 'idmun_nascimento', 'letra' | |
138 | 143 | ); |
139 | 144 | |
140 | 145 | $this->id_federal = is_numeric($this->id_federal) ? int2CPF($this->id_federal) : ''; |
... | ... | @@ -160,39 +165,353 @@ class indice extends clsCadastro |
160 | 165 | $this->url_cancelar = $this->retorno == 'Editar' ? |
161 | 166 | 'atendidos_det.php?cod_pessoa=' . $this->cod_pessoa_fj : 'atendidos_lst.php'; |
162 | 167 | |
168 | + $this->campoCpf('id_federal', 'CPF', $this->id_federal, FALSE); | |
169 | + | |
163 | 170 | $this->campoOculto('cod_pessoa_fj', $this->cod_pessoa_fj); |
164 | 171 | $this->campoTexto('nm_pessoa', 'Nome', $this->nm_pessoa, '50', '255', TRUE); |
165 | 172 | |
166 | - $this->campoCpf('id_federal', 'CPF', $this->id_federal, FALSE); | |
173 | + // sexo | |
174 | + | |
175 | + $options = array( | |
176 | + 'label' => 'Sexo / Estado civil', | |
177 | + 'value' => $this->sexo, | |
178 | + 'resources' => array( | |
179 | + '' => 'Sexo', | |
180 | + 'M' => 'Masculino', | |
181 | + 'F' => 'Feminino' | |
182 | + ), | |
183 | + 'inline' => true | |
184 | + ); | |
185 | + | |
186 | + $this->inputsHelper()->select('sexo', $options); | |
167 | 187 | |
168 | - $this->campoData('data_nasc', 'Data de Nascimento', $this->data_nasc); | |
188 | + // estado civil | |
169 | 189 | |
170 | - $lista_sexos = array(); | |
171 | - $lista_sexos[''] = 'Escolha uma opção...'; | |
172 | - $lista_sexos['M'] = 'Masculino'; | |
173 | - $lista_sexos['F'] = 'Feminino'; | |
174 | - $this->campoLista('sexo', 'Sexo', $lista_sexos, $this->sexo); | |
190 | + $this->inputsHelper()->estadoCivil(array('label' => '')); | |
191 | + | |
192 | + | |
193 | + // data nascimento | |
194 | + | |
195 | + $options = array( | |
196 | + 'label' => 'Data nascimento', | |
197 | + 'value' => $this->data_nasc | |
198 | + ); | |
199 | + | |
200 | + $this->inputsHelper()->date('data_nasc', $options); | |
175 | 201 | |
176 | - $this->inputsHelper()->estadoCivil(array('required' => false)); | |
177 | 202 | |
178 | 203 | // pai, mãe |
179 | 204 | |
180 | - $this->addPaiInput(); | |
181 | - $this->addMaeInput(); | |
205 | + $this->inputPai(); | |
206 | + $this->inputMae(); | |
207 | + | |
208 | + | |
209 | + // documentos | |
210 | + | |
211 | + $documentos = new clsDocumento(); | |
212 | + $documentos->idpes = $this->cod_pessoa_fj; | |
213 | + $documentos = $documentos->detalhe(); | |
214 | + | |
215 | + // rg | |
216 | + | |
217 | + $options = array( | |
218 | + 'required' => false, | |
219 | + 'label' => 'RG / Data emissão', | |
220 | + 'placeholder' => 'Documento identidade', | |
221 | + 'value' => $documentos['rg'], | |
222 | + 'max_length' => 20, | |
223 | + 'size' => 27, | |
224 | + 'inline' => true | |
225 | + ); | |
226 | + | |
227 | + $this->inputsHelper()->integer('rg', $options); | |
228 | + | |
229 | + | |
230 | + // data emissão rg | |
231 | + | |
232 | + $options = array( | |
233 | + 'required' => false, | |
234 | + 'label' => '', | |
235 | + 'placeholder' => 'Data emissão', | |
236 | + 'value' => $documentos['data_exp_rg'], | |
237 | + 'size' => 19 | |
238 | + ); | |
239 | + | |
240 | + $this->inputsHelper()->date('data_emissao_rg', $options); | |
241 | + | |
242 | + | |
243 | + // orgão emissão rg | |
244 | + | |
245 | + $selectOptions = array( null => 'Orgão emissor' ); | |
246 | + $orgaos = new clsOrgaoEmissorRg(); | |
247 | + $orgaos = $orgaos->lista(); | |
248 | + | |
249 | + foreach ($orgaos as $orgao) | |
250 | + $selectOptions[$orgao['idorg_rg']] = $orgao['sigla']; | |
251 | + | |
252 | + $selectOptions = Portabilis_Array_Utils::sortByValue($selectOptions); | |
253 | + | |
254 | + $options = array( | |
255 | + 'required' => false, | |
256 | + 'label' => '', | |
257 | + 'value' => $documentos['idorg_exp_rg'], | |
258 | + 'resources' => $selectOptions, | |
259 | + 'inline' => true | |
260 | + ); | |
261 | + | |
262 | + $this->inputsHelper()->select('orgao_emissao_rg', $options); | |
263 | + | |
264 | + | |
265 | + // uf emissão rg | |
266 | + | |
267 | + $options = array( | |
268 | + 'required' => false, | |
269 | + 'label' => '', | |
270 | + 'value' => $documentos['sigla_uf_exp_rg'] | |
271 | + ); | |
272 | + | |
273 | + $helperOptions = array( | |
274 | + 'attrName' => 'uf_emissao_rg' | |
275 | + ); | |
276 | + | |
277 | + $this->inputsHelper()->uf($options, $helperOptions); | |
278 | + | |
279 | + | |
280 | + // tipo de certidao civil | |
281 | + | |
282 | + $selectOptions = array( | |
283 | + null => 'Tipo certidão civil', | |
284 | + 'certidao_nascimento_novo_formato' => 'Nascimento (novo formato)', | |
285 | + 91 => 'Nascimento (antigo formato)', | |
286 | + 92 => 'Casamento' | |
287 | + ); | |
288 | + | |
289 | + | |
290 | + // caso certidao nascimento novo formato tenha sido informado, | |
291 | + // considera este o tipo da certidão | |
292 | + if (! empty($documentos['certidao_nascimento'])) | |
293 | + $tipoCertidaoCivil = 'certidao_nascimento_novo_formato'; | |
294 | + else | |
295 | + $tipoCertidaoCivil = $documentos['tipo_cert_civil']; | |
296 | + | |
297 | + $options = array( | |
298 | + 'required' => false, | |
299 | + 'label' => 'Tipo certidão civil', | |
300 | + 'value' => $tipoCertidaoCivil, | |
301 | + 'resources' => $selectOptions, | |
302 | + 'inline' => true | |
303 | + ); | |
304 | + | |
305 | + $this->inputsHelper()->select('tipo_certidao_civil', $options); | |
306 | + | |
307 | + | |
308 | + // termo certidao civil | |
309 | + | |
310 | + $options = array( | |
311 | + 'required' => false, | |
312 | + 'label' => '', | |
313 | + 'placeholder' => 'Termo', | |
314 | + 'value' => $documentos['num_termo'], | |
315 | + 'max_length' => 8, | |
316 | + 'inline' => true | |
317 | + ); | |
318 | + | |
319 | + $this->inputsHelper()->integer('termo_certidao_civil', $options); | |
320 | + | |
321 | + | |
322 | + // livro certidao civil | |
323 | + | |
324 | + $options = array( | |
325 | + 'required' => false, | |
326 | + 'label' => '', | |
327 | + 'placeholder' => 'Livro', | |
328 | + 'value' => $documentos['num_livro'], | |
329 | + 'max_length' => 8, | |
330 | + 'size' => 15, | |
331 | + 'inline' => true | |
332 | + ); | |
333 | + | |
334 | + $this->inputsHelper()->text('livro_certidao_civil', $options); | |
335 | + | |
336 | + | |
337 | + // folha certidao civil | |
338 | + | |
339 | + $options = array( | |
340 | + 'required' => false, | |
341 | + 'label' => '', | |
342 | + 'placeholder' => 'Folha', | |
343 | + 'value' => $documentos['num_folha'], | |
344 | + 'max_length' => 4, | |
345 | + 'inline' => true | |
346 | + ); | |
347 | + | |
348 | + $this->inputsHelper()->integer('folha_certidao_civil', $options); | |
349 | + | |
350 | + | |
351 | + // certidao nascimento (novo padrão) | |
352 | + | |
353 | + $options = array( | |
354 | + 'required' => false, | |
355 | + 'label' => '', | |
356 | + 'placeholder' => 'Certidão nascimento', | |
357 | + 'value' => $documentos['certidao_nascimento'], | |
358 | + 'max_length' => 50, | |
359 | + 'size' => 50 | |
360 | + ); | |
361 | + | |
362 | + $this->inputsHelper()->text('certidao_nascimento', $options); | |
363 | + | |
364 | + | |
365 | + // uf emissão certidão civil | |
366 | + | |
367 | + $options = array( | |
368 | + 'required' => false, | |
369 | + 'label' => 'Estado emissão / Data emissão', | |
370 | + 'value' => $documentos['sigla_uf_cert_civil'], | |
371 | + 'inline' => true | |
372 | + ); | |
373 | + | |
374 | + $helperOptions = array( | |
375 | + 'attrName' => 'uf_emissao_certidao_civil' | |
376 | + ); | |
377 | + | |
378 | + $this->inputsHelper()->uf($options, $helperOptions); | |
379 | + | |
380 | + | |
381 | + // data emissão certidão civil | |
382 | + | |
383 | + $options = array( | |
384 | + 'required' => false, | |
385 | + 'label' => '', | |
386 | + 'placeholder' => 'Data emissão', | |
387 | + 'value' => $documentos['data_emissao_cert_civil'] | |
388 | + ); | |
389 | + | |
390 | + $this->inputsHelper()->date('data_emissao_certidao_civil', $options); | |
391 | + | |
392 | + | |
393 | + // cartório emissão certidão civil | |
394 | + | |
395 | + $options = array( | |
396 | + 'required' => false, | |
397 | + 'label' => 'Cartório emissão', | |
398 | + 'value' => $documentos['cartorio_cert_civil'], | |
399 | + 'cols' => 45, | |
400 | + 'max_length' => 150 | |
401 | + ); | |
402 | + | |
403 | + $this->inputsHelper()->textArea('cartorio_emissao_certidao_civil', $options); | |
404 | + | |
405 | + | |
406 | + // carteira de trabalho | |
407 | + | |
408 | + $options = array( | |
409 | + 'required' => false, | |
410 | + 'label' => 'Carteira de trabalho / Série', | |
411 | + 'placeholder' => 'Carteira de trabalho', | |
412 | + 'value' => $documentos['num_cart_trabalho'], | |
413 | + 'max_length' => 7, | |
414 | + 'inline' => true | |
415 | + | |
416 | + ); | |
417 | + | |
418 | + $this->inputsHelper()->integer('carteira_trabalho', $options); | |
419 | + | |
420 | + // serie carteira de trabalho | |
421 | + | |
422 | + $options = array( | |
423 | + 'required' => false, | |
424 | + 'label' => '', | |
425 | + 'placeholder' => 'Série', | |
426 | + 'value' => $documentos['serie_cart_trabalho'], | |
427 | + 'max_length' => 5 | |
428 | + ); | |
429 | + | |
430 | + $this->inputsHelper()->integer('serie_carteira_trabalho', $options); | |
431 | + | |
432 | + | |
433 | + // uf emissão carteira de trabalho | |
434 | + | |
435 | + $options = array( | |
436 | + 'required' => false, | |
437 | + 'label' => 'Estado emissão / Data emissão', | |
438 | + 'value' => $documentos['sigla_uf_cart_trabalho'], | |
439 | + 'inline' => true | |
440 | + ); | |
441 | + | |
442 | + $helperOptions = array( | |
443 | + 'attrName' => 'uf_emissao_carteira_trabalho' | |
444 | + ); | |
445 | + | |
446 | + $this->inputsHelper()->uf($options, $helperOptions); | |
447 | + | |
448 | + | |
449 | + // data emissão carteira de trabalho | |
450 | + | |
451 | + $options = array( | |
452 | + 'required' => false, | |
453 | + 'label' => '', | |
454 | + 'placeholder' => 'Data emissão', | |
455 | + 'value' => $documentos['data_emissao_cart_trabalho'] | |
456 | + ); | |
457 | + | |
458 | + $this->inputsHelper()->date('data_emissao_carteira_trabalho', $options); | |
459 | + | |
460 | + | |
461 | + // titulo eleitor | |
462 | + | |
463 | + $options = array( | |
464 | + 'required' => false, | |
465 | + 'label' => 'Titulo eleitor / Zona / Seção', | |
466 | + 'placeholder' => 'Titulo eleitor', | |
467 | + 'value' => $documentos['num_tit_eleitor'], | |
468 | + 'max_length' => 13, | |
469 | + 'inline' => true | |
470 | + ); | |
471 | + | |
472 | + $this->inputsHelper()->integer('titulo_eleitor', $options); | |
473 | + | |
474 | + | |
475 | + // zona titulo eleitor | |
476 | + | |
477 | + $options = array( | |
478 | + 'required' => false, | |
479 | + 'label' => '', | |
480 | + 'placeholder' => 'Zona', | |
481 | + 'value' => $documentos['zona_tit_eleitor'], | |
482 | + 'max_length' => 4, | |
483 | + 'inline' => true | |
484 | + ); | |
485 | + | |
486 | + $this->inputsHelper()->integer('zona_titulo_eleitor', $options); | |
487 | + | |
488 | + | |
489 | + // seção titulo eleitor | |
490 | + | |
491 | + $options = array( | |
492 | + 'required' => false, | |
493 | + 'label' => '', | |
494 | + 'placeholder' => 'Seção', | |
495 | + 'value' => $documentos['secao_tit_eleitor'], | |
496 | + 'max_length' => 4 | |
497 | + ); | |
498 | + | |
499 | + $this->inputsHelper()->integer('secao_titulo_eleitor', $options); | |
500 | + | |
182 | 501 | |
183 | 502 | // Cor/raça. |
184 | - $opcoes_raca = array('' => 'Selecione'); | |
185 | - $obj_raca = new clsCadastroRaca(); | |
186 | - $lst_raca = $obj_raca->lista(NULL, NULL, NULL, NULL, NULL, NULL, NULL, TRUE); | |
187 | 503 | |
188 | - if ($lst_raca) { | |
189 | - foreach ($lst_raca as $raca) { | |
190 | - $opcoes_raca[$raca['cod_raca']] = $raca['nm_raca']; | |
191 | - } | |
192 | - } | |
504 | + $racas = new clsCadastroRaca(); | |
505 | + $racas = $racas->lista(NULL, NULL, NULL, NULL, NULL, NULL, NULL, TRUE); | |
506 | + $selectOptions = array('' => 'Raça'); | |
507 | + | |
508 | + foreach ($racas as $raca) | |
509 | + $selectOptions[$raca['cod_raca']] = $raca['nm_raca']; | |
510 | + | |
511 | + $selectOptions = Portabilis_Array_Utils::sortByValue($selectOptions); | |
512 | + | |
513 | + $this->campoLista('cor_raca', 'Raça', $selectOptions, $this->cod_raca, '', FALSE, '', '', '', FALSE); | |
193 | 514 | |
194 | - $this->campoLista('cor_raca', 'Raça', $opcoes_raca, | |
195 | - $this->cod_raca, '', FALSE, '', '', '', FALSE); | |
196 | 515 | |
197 | 516 | // nacionalidade |
198 | 517 | |
... | ... | @@ -202,19 +521,31 @@ class indice extends clsCadastro |
202 | 521 | '2' => 'Naturalizado brasileiro', |
203 | 522 | '3' => 'Estrangeiro'); |
204 | 523 | |
205 | - $options = array('label' => 'Nacionalidade', | |
206 | - 'resources' => $tiposNacionalidade, | |
207 | - 'required' => false, | |
208 | - 'inline' => true, | |
209 | - 'value' => $this->tipo_nacionalidade); | |
524 | + $options = array('label' => 'Nacionalidade', | |
525 | + 'resources' => $tiposNacionalidade, | |
526 | + 'required' => false, | |
527 | + 'inline' => true, | |
528 | + 'value' => $this->tipo_nacionalidade); | |
210 | 529 | |
211 | 530 | $this->inputsHelper()->select('tipo_nacionalidade', $options); |
212 | 531 | |
532 | + | |
213 | 533 | // pais origem |
214 | 534 | |
215 | - $options = array('label' => '', 'required' => true); | |
216 | - $helperOptions = array('objectName' => 'pais_origem', | |
217 | - 'hiddenInputOptions' => array('options' => array('value' => $this->pais_origem_id))); | |
535 | + $options = array( | |
536 | + 'label' => '', | |
537 | + 'placeholder' => 'Informe o nome do pais', | |
538 | + 'required' => true | |
539 | + ); | |
540 | + | |
541 | + $hiddenInputOptions = array( | |
542 | + 'options' => array('value' => $this->pais_origem_id) | |
543 | + ); | |
544 | + | |
545 | + $helperOptions = array( | |
546 | + 'objectName' => 'pais_origem', | |
547 | + 'hiddenInputOptions' => $hiddenInputOptions | |
548 | + ); | |
218 | 549 | |
219 | 550 | $this->inputsHelper()->simpleSearchPais('nome', $options, $helperOptions); |
220 | 551 | |
... | ... | @@ -222,6 +553,7 @@ class indice extends clsCadastro |
222 | 553 | // naturalidade |
223 | 554 | |
224 | 555 | $options = array('label' => 'Naturalidade', 'required' => false); |
556 | + | |
225 | 557 | $helperOptions = array('objectName' => 'naturalidade', |
226 | 558 | 'hiddenInputOptions' => array('options' => array('value' => $this->naturalidade_id))); |
227 | 559 | |
... | ... | @@ -230,26 +562,6 @@ class indice extends clsCadastro |
230 | 562 | |
231 | 563 | // Detalhes do Endereço |
232 | 564 | |
233 | - $objTipoLog = new clsTipoLogradouro(); | |
234 | - $listaTipoLog = $objTipoLog->lista(); | |
235 | - $listaTLog = array('0' => 'Selecione'); | |
236 | - | |
237 | - if ($listaTipoLog) { | |
238 | - foreach ($listaTipoLog as $tipoLog) { | |
239 | - $listaTLog[$tipoLog['idtlog']] = $tipoLog['descricao']; | |
240 | - } | |
241 | - } | |
242 | - | |
243 | - $objUf = new clsUf(); | |
244 | - $listauf = $objUf->lista(); | |
245 | - $listaEstado = array('0' => 'Selecione'); | |
246 | - | |
247 | - if ($listauf) { | |
248 | - foreach ($listauf as $uf) { | |
249 | - $listaEstado[$uf['sigla_uf']] = $uf['sigla_uf']; | |
250 | - } | |
251 | - } | |
252 | - | |
253 | 565 | $this->campoOculto('idbai', $this->idbai); |
254 | 566 | $this->campoOculto('idlog', $this->idlog); |
255 | 567 | $this->campoOculto('cep', $this->cep); |
... | ... | @@ -257,153 +569,227 @@ class indice extends clsCadastro |
257 | 569 | $this->campoOculto('ref_idtlog', $this->idtlog); |
258 | 570 | $this->campoOculto('id_cidade', $this->cidade); |
259 | 571 | |
260 | - $zona = App_Model_ZonaLocalizacao::getInstance(); | |
261 | 572 | |
262 | - if ($this->idlog && $this->idbai && $this->cep && $this->cod_pessoa_fj) { | |
263 | - $this->campoCep('cep_', 'CEP', $this->cep, true, '-', | |
264 | - " <img id='lupa' src=\"imagens/lupa.png\" border=\"0\" onclick=\"showExpansivel( 500,500, '<iframe name=\'miolo\' id=\'miolo\' frameborder=\'0\' height=\'100%\' width=\'500\' marginheight=\'0\' marginwidth=\'0\' src=\'educar_pesquisa_cep_log_bairro.php?campo1=bairro&campo2=idbai&campo3=cep&campo4=logradouro&campo5=idlog&campo6=ref_sigla_uf&campo7=cidade&campo8=ref_idtlog&campo9=isEnderecoExterno&campo10=cep_&campo11=sigla_uf&campo12=idtlog&campo13=id_cidade\'></iframe>');\">", | |
265 | - TRUE); | |
573 | + // considera como endereço localizado por CEP quando alguma das variaveis de instancia | |
574 | + // idbai (bairro) ou idlog (logradouro) estão definidas, neste caso desabilita a edição | |
575 | + // dos campos definidos via CEP. | |
576 | + $desativarCamposDefinidosViaCep = ($this->idbai || $this->idlog); | |
266 | 577 | |
267 | - $this->campoLista('idtlog', 'Tipo Logradouro', $listaTLog, $this->idtlog, | |
268 | - FALSE, FALSE, FALSE, FALSE, TRUE); | |
578 | + $this->campoCep( | |
579 | + 'cep_', | |
580 | + 'CEP', | |
581 | + $this->cep, | |
582 | + TRUE, | |
583 | + '-', | |
584 | + " <img id='lupa' src=\"imagens/lupa.png\" border=\"0\" onclick=\"showExpansivel(500, 550, '<iframe name=\'miolo\' id=\'miolo\' frameborder=\'0\' height=\'100%\' width=\'500\' marginheight=\'0\' marginwidth=\'0\' src=\'educar_pesquisa_cep_log_bairro.php?campo1=bairro&campo2=idbai&campo3=cep&campo4=logradouro&campo5=idlog&campo6=ref_sigla_uf&campo7=cidade&campo8=ref_idtlog&campo9=isEnderecoExterno&campo10=cep_&campo11=sigla_uf&campo12=idtlog&campo13=id_cidade&campo14=zona_localizacao\'></iframe>');\">", | |
585 | + $desativarCamposDefinidosViaCep | |
586 | + ); | |
269 | 587 | |
270 | - $this->campoTextoInv('logradouro', 'Logradouro', $this->logradouro, | |
271 | - '50', '255', FALSE); | |
272 | 588 | |
273 | - $this->campoTextoInv('cidade', 'Cidade', $this->cidade, '50', '255', | |
274 | - FALSE); | |
589 | + // estado | |
275 | 590 | |
276 | - $this->campoTextoInv('bairro', 'Bairro', $this->bairro, '50', '255', FALSE); | |
591 | + $options = array( | |
592 | + 'label' => 'Estado / Cidade', | |
593 | + 'value' => $this->sigla_uf, | |
594 | + 'disabled' => $desativarCamposDefinidosViaCep, | |
595 | + 'inline' => true | |
596 | + ); | |
277 | 597 | |
278 | - $this->campoTexto('complemento', 'Complemento', $this->complemento, '50', '255', | |
279 | - FALSE); | |
598 | + $helperOptions = array( | |
599 | + 'attrName' => 'sigla_uf' | |
600 | + ); | |
280 | 601 | |
281 | - $this->campoTexto('numero', 'Número', $this->numero, '10', '10'); | |
602 | + $this->inputsHelper()->uf($options, $helperOptions); | |
282 | 603 | |
283 | - $this->campoTexto('letra', 'Letra', $this->letra, '1', '1', FALSE); | |
284 | 604 | |
285 | - $this->campoTexto('apartamento', 'Número Apartamento', $this->apartamento, '6', '6', | |
286 | - FALSE); | |
605 | + // cidade | |
287 | 606 | |
288 | - $this->campoTexto('bloco', 'Bloco', $this->bloco, '20', '20', FALSE); | |
289 | - $this->campoTexto('andar', 'Andar', $this->andar, '2', '2', FALSE); | |
607 | + $options = array( | |
608 | + 'label' => '', | |
609 | + 'placeholder' => 'Cidade', | |
610 | + 'value' => $this->cidade, | |
611 | + 'max_length' => 60, | |
612 | + 'disabled' => $desativarCamposDefinidosViaCep | |
613 | + ); | |
290 | 614 | |
291 | - $this->campoLista('sigla_uf', 'Estado', $listaEstado, $this->sigla_uf, | |
292 | - FALSE, FALSE, FALSE, FALSE, TRUE); | |
293 | - } | |
294 | - elseif($this->cod_pessoa_fj && $this->cep) { | |
295 | - $this->campoCep('cep_', 'CEP', $this->cep, true, '-', | |
296 | - " <img id='lupa' src=\"imagens/lupa.png\" border=\"0\" onclick=\"showExpansivel( 500,500, '<iframe name=\'miolo\' id=\'miolo\' frameborder=\'0\' height=\'100%\' width=\'500\' marginheight=\'0\' marginwidth=\'0\' src=\'educar_pesquisa_cep_log_bairro.php?campo1=bairro&campo2=idbai&campo3=cep&campo4=logradouro&campo5=idlog&campo6=ref_sigla_uf&campo7=cidade&campo8=ref_idtlog&campo9=isEnderecoExterno&campo10=cep_&campo11=sigla_uf&campo12=idtlog&campo13=id_cidade\'></iframe>');\">", | |
297 | - $disabled); | |
615 | + $this->inputsHelper()->text('cidade', $options); | |
616 | + | |
617 | + | |
618 | + // bairro | |
298 | 619 | |
299 | - $this->campoLista('idtlog', 'Tipo Logradouro', $listaTLog, $this->idtlog); | |
620 | + $options = array( | |
621 | + 'label' => 'Bairro / Zona localização', | |
622 | + 'placeholder' => 'Bairro', | |
623 | + 'value' => $this->bairro, | |
624 | + 'max_length' => 40, | |
625 | + 'disabled' => $desativarCamposDefinidosViaCep, | |
626 | + 'inline' => true | |
627 | + ); | |
300 | 628 | |
301 | - $this->campoTexto('logradouro', 'Logradouro', $this->logradouro, '50', | |
302 | - '255', FALSE); | |
629 | + $this->inputsHelper()->text('bairro', $options); | |
303 | 630 | |
304 | - $this->campoTexto('cidade', 'Cidade', $this->cidade, '50', '255', FALSE); | |
305 | 631 | |
306 | - $this->campoTexto('bairro', 'Bairro', $this->bairro, '50', '255', FALSE); | |
632 | + // zona localização | |
307 | 633 | |
308 | - $this->campoTexto('complemento', 'Complemento', $this->complemento, '50', | |
309 | - '255', FALSE); | |
634 | + $zonas = App_Model_ZonaLocalizacao::getInstance(); | |
635 | + $zonas = $zonas->getEnums(); | |
636 | + $zonas = Portabilis_Array_Utils::insertIn(null, 'Zona localização', $zonas); | |
310 | 637 | |
311 | - $this->campoTexto('numero', 'Número', $this->numero, '10', '10'); | |
638 | + $options = array( | |
639 | + 'label' => '', | |
640 | + 'placeholder' => 'Zona localização', | |
641 | + 'value' => $this->zona_localizacao, | |
642 | + 'disabled' => $desativarCamposDefinidosViaCep, | |
643 | + 'resources' => $zonas | |
644 | + ); | |
312 | 645 | |
313 | - $this->campoTexto('letra', 'Letra', $this->letra, '1', '1', FALSE); | |
646 | + $this->inputsHelper()->select('zona_localizacao', $options); | |
314 | 647 | |
315 | - $this->campoTexto('apartamento', 'Número Apartamento', $this->apartamento, | |
316 | - '6', '6', FALSE); | |
317 | 648 | |
318 | - $this->campoTexto('bloco', 'Bloco', $this->bloco, '20', '20', FALSE); | |
649 | + // tipo logradouro | |
319 | 650 | |
320 | - $this->campoTexto('andar', 'Andar', $this->andar, '2', '2', FALSE); | |
651 | + $options = array( | |
652 | + 'label' => 'Tipo / Logradouro', | |
653 | + 'value' => $this->idtlog, | |
654 | + 'disabled' => $desativarCamposDefinidosViaCep, | |
655 | + 'inline' => true | |
656 | + ); | |
321 | 657 | |
322 | - $this->campoLista('sigla_uf', 'Estado', $listaEstado, $this->sigla_uf); | |
323 | - } | |
324 | - else { | |
325 | - $this->campoCep('cep_', 'CEP', $this->cep, TRUE, '-', | |
326 | - " <img id='lupa' src=\"imagens/lupa.png\" border=\"0\" | |
327 | - onclick=\"showExpansivel(500, 500, '<iframe name=\'miolo\' id=\'miolo\' frameborder=\'0\' height=\'100%\' width=\'500\' marginheight=\'0\' marginwidth=\'0\' src=\'educar_pesquisa_cep_log_bairro.php?campo1=bairro&campo2=idbai&campo3=cep&campo4=logradouro&campo5=idlog&campo6=ref_sigla_uf&campo7=cidade&campo8=ref_idtlog&campo9=isEnderecoExterno&campo10=cep_&campo11=sigla_uf&campo12=idtlog&campo13=id_cidade&campo14=zona_localizacao\'></iframe>');\">", | |
328 | - false | |
329 | - ); | |
658 | + $helperOptions = array( | |
659 | + 'attrName' => 'idtlog' | |
660 | + ); | |
330 | 661 | |
331 | - $this->campoLista('idtlog', 'Tipo Logradouro', $listaTLog, $this->idtlog, | |
332 | - FALSE, FALSE, FALSE, FALSE, FALSE); | |
662 | + $this->inputsHelper()->tipoLogradouro($options, $helperOptions); | |
333 | 663 | |
334 | - $this->campoTexto('logradouro', 'Logradouro', $this->logradouro, | |
335 | - '50', '255'); | |
336 | 664 | |
337 | - $this->campoTexto('cidade', 'Cidade', $this->cidade, '50', '255'); | |
665 | + // logradouro | |
338 | 666 | |
339 | - $this->campoTexto('bairro', 'Bairro', $this->bairro, '50', '255'); | |
667 | + $options = array( | |
668 | + 'label' => '', | |
669 | + 'placeholder' => 'Logradouro', | |
670 | + 'value' => $this->logradouro, | |
671 | + 'max_length' => 150, | |
672 | + 'disabled' => $desativarCamposDefinidosViaCep | |
673 | + ); | |
340 | 674 | |
341 | - $this->campoTexto('complemento', 'Complemento', $this->complemento, | |
342 | - '50', '255', FALSE); | |
675 | + $this->inputsHelper()->text('logradouro', $options); | |
343 | 676 | |
344 | - $this->campoTexto('numero', 'Número', $this->numero, '10', '10'); | |
345 | 677 | |
346 | - $this->campoTexto('letra', 'Letra', $this->letra, '1', '1', FALSE); | |
678 | + // complemento | |
347 | 679 | |
348 | - $this->campoTexto('apartamento', 'Número Apartamento', $this->apartamento, | |
349 | - '6', '6', FALSE); | |
680 | + $options = array( | |
681 | + 'required' => false, | |
682 | + 'value' => $this->complemento, | |
683 | + 'max_length' => 20 | |
684 | + ); | |
350 | 685 | |
351 | - $this->campoTexto('bloco', 'Bloco', $this->bloco, '20', '20', FALSE); | |
686 | + $this->inputsHelper()->text('complemento', $options); | |
352 | 687 | |
353 | - $this->campoTexto('andar', 'Andar', $this->andar, '2', '2', FALSE); | |
354 | 688 | |
355 | - $this->campoLista('sigla_uf', 'Estado', $listaEstado, $this->sigla_uf, | |
356 | - FALSE, FALSE, FALSE, FALSE, FALSE); | |
357 | - } | |
689 | + // numero | |
690 | + | |
691 | + $options = array( | |
692 | + 'required' => false, | |
693 | + 'label' => 'Número / Letra', | |
694 | + 'placeholder' => 'Número', | |
695 | + 'value' => $this->numero, | |
696 | + 'max_length' => 6, | |
697 | + 'inline' => true | |
698 | + ); | |
699 | + | |
700 | + $this->inputsHelper()->integer('numero', $options); | |
701 | + | |
702 | + | |
703 | + // letra | |
358 | 704 | |
359 | - $this->campoLista('zona_localizacao', 'Zona Localização', $zona->getEnums(), | |
360 | - $this->zona_localizacao, FALSE, FALSE, FALSE, FALSE, | |
361 | - ($this->idbai ? TRUE : FALSE) | |
705 | + $options = array( | |
706 | + 'required' => false, | |
707 | + 'label' => '', | |
708 | + 'placeholder' => 'Letra', | |
709 | + 'value' => $this->letra, | |
710 | + 'max_length' => 1, | |
711 | + 'size' => 15 | |
362 | 712 | ); |
363 | 713 | |
364 | - $this->campoTexto('ddd_telefone_1', 'DDD Telefone 1', $this->ddd_telefone_1, | |
365 | - '3', '2', FALSE); | |
714 | + $this->inputsHelper()->text('letra', $options); | |
366 | 715 | |
367 | - $this->campoTexto('telefone_1', 'Telefone 1', $this->telefone_1, '10', | |
368 | - '15', FALSE); | |
369 | 716 | |
370 | - $this->campoTexto('ddd_telefone_2', 'DDD Telefone 2', $this->ddd_telefone_2, | |
371 | - '3', '2', FALSE); | |
717 | + // apartamento | |
372 | 718 | |
373 | - $this->campoTexto('telefone_2', 'Telefone 2', $this->telefone_2, '10', | |
374 | - '15', FALSE); | |
719 | + $options = array( | |
720 | + 'required' => false, | |
721 | + 'label' => 'Nº apartamento / Bloco / Andar', | |
722 | + 'placeholder' => 'Nº apartamento', | |
723 | + 'value' => $this->apartamento, | |
724 | + 'max_length' => 6, | |
725 | + 'inline' => true | |
726 | + ); | |
727 | + | |
728 | + $this->inputsHelper()->integer('apartamento', $options); | |
729 | + | |
730 | + | |
731 | + // bloco | |
375 | 732 | |
376 | - $this->campoTexto('ddd_telefone_mov', 'DDD Celular', | |
377 | - $this->ddd_telefone_mov, '3', '2', FALSE); | |
733 | + $options = array( | |
734 | + 'required' => false, | |
735 | + 'label' => '', | |
736 | + 'placeholder' => 'Bloco', | |
737 | + 'value' => $this->bloco, | |
738 | + 'max_length' => 20, | |
739 | + 'size' => 15, | |
740 | + 'inline' => true | |
741 | + ); | |
742 | + | |
743 | + $this->inputsHelper()->text('bloco', $options); | |
378 | 744 | |
379 | - $this->campoTexto('telefone_mov', 'Celular', $this->telefone_mov, '10', | |
380 | - '15', FALSE); | |
381 | 745 | |
382 | - $this->campoTexto('ddd_telefone_fax', 'DDD Fax', $this->ddd_telefone_fax, | |
383 | - '3', '2', FALSE); | |
746 | + // andar | |
747 | + | |
748 | + $options = array( | |
749 | + 'required' => false, | |
750 | + 'label' => '', | |
751 | + 'placeholder' => 'Andar', | |
752 | + 'value' => $this->andar, | |
753 | + 'max_length' => 2 | |
754 | + ); | |
384 | 755 | |
385 | - $this->campoTexto('telefone_fax', 'Fax', $this->telefone_fax, '10', '15', | |
386 | - FALSE); | |
756 | + $this->inputsHelper()->integer('andar', $options); | |
757 | + | |
758 | + | |
759 | + // contato | |
760 | + | |
761 | + $this->inputTelefone('1', 'Telefone residencial'); | |
762 | + $this->inputTelefone('mov', 'Celular'); | |
763 | + $this->inputTelefone('2', 'Telefone adicional'); | |
764 | + $this->inputTelefone('fax', 'Fax'); | |
387 | 765 | |
388 | 766 | $this->campoTexto('http', 'Site', $this->http, '50', '255', FALSE); |
389 | 767 | |
390 | 768 | $this->campoTexto('email', 'E-mail', $this->email, '50', '255', FALSE); |
391 | 769 | |
392 | - if ($this->cod_pessoa_fj) { | |
770 | + /*if ($this->cod_pessoa_fj) { | |
393 | 771 | $this->campoRotulo('documentos', '<b><i>Documentos</i></b>', |
394 | 772 | "<a href='#' onclick=\"windowUtils.open('adicionar_documentos_cad.php?id_pessoa={$this->cod_pessoa_fj}'); \"><img src='imagens/nvp_bot_ad_doc.png' border='0'></a>"); |
395 | 773 | |
396 | 774 | $this->campoCheck('alterado', 'Alterado', $this->alterado); |
397 | - } | |
775 | + }*/ | |
776 | + | |
777 | + | |
778 | + // after change pessoa pai / mae | |
779 | + | |
780 | + if (isset($_REQUEST['parent_type'])) | |
781 | + $this->inputsHelper()->hidden('parent_type', array('value' => $_REQUEST['parent_type'])); | |
782 | + | |
398 | 783 | |
399 | 784 | $styles = array( |
400 | 785 | '/modules/Portabilis/Assets/Stylesheets/Frontend.css', |
401 | - '/modules/Portabilis/Assets/Stylesheets/Frontend/Resource.css' | |
786 | + '/modules/Portabilis/Assets/Stylesheets/Frontend/Resource.css', | |
787 | + '/modules/Cadastro/Assets/Stylesheets/PessoaFisica.css' | |
402 | 788 | ); |
403 | 789 | |
404 | 790 | Portabilis_View_Helper_Application::loadStylesheet($this, $styles); |
405 | 791 | |
406 | - $script = "/modules/Cadastro/Assets/Javascripts/PessoaFisica.js"; | |
792 | + $script = '/modules/Cadastro/Assets/Javascripts/PessoaFisica.js'; | |
407 | 793 | Portabilis_View_Helper_Application::loadJavascript($this, $script); |
408 | 794 | } |
409 | 795 | |
... | ... | @@ -425,7 +811,7 @@ class indice extends clsCadastro |
425 | 811 | $fisica = new clsFisica(); |
426 | 812 | |
427 | 813 | $fisica->idpes = $idpes; |
428 | - $fisica->data_nasc = dataToBanco($this->data_nasc); | |
814 | + $fisica->data_nasc = Portabilis_Date_Utils::brToPgSQL($this->data_nasc); | |
429 | 815 | $fisica->sexo = $this->sexo; |
430 | 816 | $fisica->ref_cod_sistema = 'NULL'; |
431 | 817 | $fisica->cpf = idFederal2int($this->id_federal); |
... | ... | @@ -438,6 +824,8 @@ class indice extends clsCadastro |
438 | 824 | |
439 | 825 | $fisica->cadastra(); |
440 | 826 | |
827 | + $this->createOrUpdateDocumentos($idpes); | |
828 | + | |
441 | 829 | $objTelefone = new clsPessoaTelefone($idpes, 1, $this->telefone_1, $this->ddd_telefone_1); |
442 | 830 | $objTelefone->cadastra(); |
443 | 831 | |
... | ... | @@ -507,20 +895,21 @@ class indice extends clsCadastro |
507 | 895 | $fisica = new clsFisica(); |
508 | 896 | |
509 | 897 | $fisica->idpes = $this->cod_pessoa_fj; |
510 | - $fisica->data_nasc = dataToBanco($this->data_nasc); | |
898 | + $fisica->data_nasc = Portabilis_Date_Utils::brToPgSQL($this->data_nasc); | |
511 | 899 | $fisica->sexo = $this->sexo; |
512 | 900 | $fisica->ref_cod_sistema = 'NULL'; |
513 | 901 | $fisica->cpf = $this->id_federal ? idFederal2int($this->id_federal) : 'NULL'; |
514 | 902 | $fisica->ideciv = $this->estado_civil_id; |
515 | - | |
516 | - $fisica->idpes_pai = $this->pai_id; | |
517 | - $fisica->idpes_mae = $this->mae_id; | |
903 | + $fisica->idpes_pai = $this->pai_id ? $this->pai_id : "NULL"; | |
904 | + $fisica->idpes_mae = $this->mae_id ? $this->mae_id : "NULL"; | |
518 | 905 | $fisica->nacionalidade = $_REQUEST['tipo_nacionalidade']; |
519 | 906 | $fisica->idpais_estrangeiro = $_REQUEST['pais_origem_id']; |
520 | 907 | $fisica->idmun_nascimento = $_REQUEST['naturalidade_id']; |
521 | 908 | |
522 | 909 | $fisica->edita(); |
523 | 910 | |
911 | + $this->createOrUpdateDocumentos($this->cod_pessoa_fj); | |
912 | + | |
524 | 913 | if ($this->alterado) { |
525 | 914 | $db = new clsBanco(); |
526 | 915 | $db->Consulta("UPDATE cadastro.fisica SET alterado = 'TRUE' WHERE idpes = '$this->cod_pessoa_fj'"); |
... | ... | @@ -593,11 +982,19 @@ class indice extends clsCadastro |
593 | 982 | |
594 | 983 | function afterChangePessoa($id) { |
595 | 984 | Portabilis_View_Helper_Application::embedJavascript($this, " |
596 | - if(window.opener && window.opener.afterChangePessoa) | |
597 | - window.opener.afterChangePessoa(self, $id); | |
985 | + | |
986 | + if(window.opener && window.opener.afterChangePessoa) { | |
987 | + var parentType = \$j('#parent_type').val(); | |
988 | + | |
989 | + if (parentType) | |
990 | + window.opener.afterChangePessoa(self, parentType, $id, \$j('#nm_pessoa').val()); | |
991 | + else | |
992 | + window.opener.afterChangePessoa(self, $id); | |
993 | + } | |
598 | 994 | else |
599 | 995 | document.location = 'atendidos_lst.php'; |
600 | - "); | |
996 | + | |
997 | + ", $afterReady = true); | |
601 | 998 | } |
602 | 999 | |
603 | 1000 | /** |
... | ... | @@ -629,11 +1026,11 @@ class indice extends clsCadastro |
629 | 1026 | return $aluno->detalhe(); |
630 | 1027 | } |
631 | 1028 | |
632 | - protected function addPaiInput() { | |
1029 | + protected function inputPai() { | |
633 | 1030 | $this->addParentsInput('pai'); |
634 | 1031 | } |
635 | 1032 | |
636 | - protected function addMaeInput() { | |
1033 | + protected function inputMae() { | |
637 | 1034 | $this->addParentsInput('mae', 'mãe'); |
638 | 1035 | } |
639 | 1036 | |
... | ... | @@ -646,12 +1043,20 @@ class indice extends clsCadastro |
646 | 1043 | |
647 | 1044 | $parentId = $this->{$parentType . '_id'}; |
648 | 1045 | |
649 | - // mostra uma dica nos casos em que foi informado apenas o nome dos pais, pela antiga interface do cadastro de alunos. | |
1046 | + | |
1047 | + // mostra uma dica nos casos em que foi informado apenas o nome dos pais, | |
1048 | + //pela antiga interface do cadastro de alunos. | |
1049 | + | |
650 | 1050 | if (! $parentId && $this->_aluno['nm_' . $parentType]) { |
651 | - $nome = Portabilis_String_Utils::toLatin1($this->_aluno['nm_' . $parentType], array('transform' => true, 'escape' => false)); | |
652 | - $inputHint = '<b>Dica:</b> Foi informado o nome "' . $nome . '" no cadastro de aluno, tente pesquisar esta pessoa pelo CPF ou RG.'; | |
1051 | + $nome = Portabilis_String_Utils::toLatin1($this->_aluno['nm_' . $parentType], | |
1052 | + array('transform' => true, 'escape' => false)); | |
1053 | + | |
1054 | + $inputHint = '<br /><b>Dica:</b> Foi informado o nome "' . $nome . | |
1055 | + '" no cadastro de aluno,<br />tente pesquisar esta pessoa ' . | |
1056 | + 'pelo CPF ou RG, caso não encontre, cadastre uma nova pessoa.'; | |
653 | 1057 | } |
654 | 1058 | |
1059 | + | |
655 | 1060 | $hiddenInputOptions = array('options' => array('value' => $parentId)); |
656 | 1061 | $helperOptions = array('objectName' => $parentType, 'hiddenInputOptions' => $hiddenInputOptions); |
657 | 1062 | |
... | ... | @@ -686,6 +1091,122 @@ class indice extends clsCadastro |
686 | 1091 | |
687 | 1092 | return $isValid; |
688 | 1093 | } |
1094 | + | |
1095 | + protected function createOrUpdateDocumentos($pessoaId) { | |
1096 | + $documentos = new clsDocumento(); | |
1097 | + $documentos->idpes = $pessoaId; | |
1098 | + | |
1099 | + | |
1100 | + // rg | |
1101 | + | |
1102 | + $documentos->rg = $_REQUEST['rg']; | |
1103 | + | |
1104 | + $documentos->data_exp_rg = Portabilis_Date_Utils::brToPgSQL( | |
1105 | + $_REQUEST['data_emissao_rg'] | |
1106 | + ); | |
1107 | + | |
1108 | + $documentos->idorg_exp_rg = $_REQUEST['orgao_emissao_rg']; | |
1109 | + $documentos->sigla_uf_exp_rg = $_REQUEST['uf_emissao_rg']; | |
1110 | + | |
1111 | + | |
1112 | + // certidão civil | |
1113 | + | |
1114 | + | |
1115 | + // o tipo certidão novo padrão é apenas para exibição ao usuário, | |
1116 | + // não precisa ser gravado no banco | |
1117 | + // | |
1118 | + // quando selecionado um tipo diferente do novo formato, | |
1119 | + // é removido o valor de certidao_nascimento. | |
1120 | + // | |
1121 | + if ($_REQUEST['tipo_certidao_civil'] == 'certidao_nascimento_novo_formato') { | |
1122 | + $documentos->tipo_cert_civil = null; | |
1123 | + $documentos->certidao_nascimento = $_REQUEST['certidao_nascimento']; | |
1124 | + } | |
1125 | + else { | |
1126 | + $documentos->tipo_cert_civil = $_REQUEST['tipo_certidao_civil']; | |
1127 | + $documentos->certidao_nascimento = ''; | |
1128 | + } | |
1129 | + | |
1130 | + $documentos->num_termo = $_REQUEST['termo_certidao_civil']; | |
1131 | + $documentos->num_livro = $_REQUEST['livro_certidao_civil']; | |
1132 | + $documentos->num_folha = $_REQUEST['folha_certidao_civil']; | |
1133 | + | |
1134 | + $documentos->data_emissao_cert_civil = Portabilis_Date_Utils::brToPgSQL( | |
1135 | + $_REQUEST['data_emissao_certidao_civil'] | |
1136 | + ); | |
1137 | + | |
1138 | + $documentos->sigla_uf_cert_civil = $_REQUEST['uf_emissao_certidao_civil']; | |
1139 | + $documentos->cartorio_cert_civil = $_REQUEST['cartorio_emissao_certidao_civil']; | |
1140 | + | |
1141 | + | |
1142 | + | |
1143 | + // carteira de trabalho | |
1144 | + | |
1145 | + $documentos->num_cart_trabalho = $_REQUEST['carteira_trabalho']; | |
1146 | + $documentos->serie_cart_trabalho = $_REQUEST['serie_carteira_trabalho']; | |
1147 | + | |
1148 | + $documentos->data_emissao_cart_trabalho = Portabilis_Date_Utils::brToPgSQL( | |
1149 | + $_REQUEST['data_emissao_carteira_trabalho'] | |
1150 | + ); | |
1151 | + | |
1152 | + $documentos->sigla_uf_cart_trabalho = $_REQUEST['uf_emissao_carteira_trabalho']; | |
1153 | + | |
1154 | + | |
1155 | + // titulo de eleitor | |
1156 | + | |
1157 | + $documentos->num_tit_eleitor = $_REQUEST['titulo_eleitor']; | |
1158 | + $documentos->zona_tit_eleitor = $_REQUEST['zona_titulo_eleitor']; | |
1159 | + $documentos->secao_tit_eleitor = $_REQUEST['secao_titulo_eleitor']; | |
1160 | + | |
1161 | + | |
1162 | + // Alteração de documentos compativel com a versão anterior do cadastro, | |
1163 | + // onde era possivel criar uma pessoa, não informando os documentos, | |
1164 | + // o que não criaria o registro do documento, sendo assim, ao editar uma pessoa, | |
1165 | + // o registro do documento será criado, caso não exista. | |
1166 | + | |
1167 | + $sql = "select 1 from cadastro.documento WHERE idpes = $1 limit 1"; | |
1168 | + | |
1169 | + if (Portabilis_Utils_Database::selectField($sql, $pessoaId) != 1) | |
1170 | + $documentos->cadastra(); | |
1171 | + else | |
1172 | + $documentos->edita(); | |
1173 | + } | |
1174 | + | |
1175 | + // inputs usados em Gerar, | |
1176 | + // implementado estes metodos para não duplicar código | |
1177 | + // uma vez que estes campos são usados várias vezes em Gerar. | |
1178 | + | |
1179 | + protected function inputTelefone($type, $typeLabel = '') { | |
1180 | + if (! $typeLabel) | |
1181 | + $typeLabel = "Telefone {$type}"; | |
1182 | + | |
1183 | + // ddd | |
1184 | + | |
1185 | + $options = array( | |
1186 | + 'required' => false, | |
1187 | + 'label' => "(ddd) / {$typeLabel}", | |
1188 | + 'placeholder' => 'ddd', | |
1189 | + 'value' => $this->{"ddd_telefone_{$type}"}, | |
1190 | + 'max_length' => 3, | |
1191 | + 'size' => 3, | |
1192 | + 'inline' => true | |
1193 | + ); | |
1194 | + | |
1195 | + $this->inputsHelper()->integer("ddd_telefone_{$type}", $options); | |
1196 | + | |
1197 | + | |
1198 | + // telefone | |
1199 | + | |
1200 | + $options = array( | |
1201 | + 'required' => false, | |
1202 | + 'label' => '', | |
1203 | + 'placeholder' => $typeLabel, | |
1204 | + 'value' => $this->{"telefone_{$type}"}, | |
1205 | + 'max_length' => 11 | |
1206 | + ); | |
1207 | + | |
1208 | + $this->inputsHelper()->integer("telefone_{$type}", $options); | |
1209 | + } | |
689 | 1210 | } |
690 | 1211 | |
691 | 1212 | // Instancia objeto de página | ... | ... |
ieducar/intranet/educar_escola_cad.php
... | ... | @@ -402,7 +402,7 @@ class indice extends clsCadastro |
402 | 402 | } |
403 | 403 | else |
404 | 404 | { |
405 | - $this->inputsHelper()->numeric('escola_inep_id', array('label' => 'Código inep', 'required' => false)); | |
405 | + $this->inputsHelper()->integer('escola_inep_id', array('label' => 'Código inep', 'required' => false)); | |
406 | 406 | |
407 | 407 | if( $_POST ) |
408 | 408 | foreach( $_POST AS $campo => $val ) | ... | ... |
ieducar/intranet/include/pessoa/clsDocumento.inc.php
... | ... | @@ -67,7 +67,7 @@ class clsDocumento |
67 | 67 | * @return Object:clsDocumento |
68 | 68 | */ |
69 | 69 | function clsDocumento( $int_idpes = false, $int_rg = false, $str_data_exp_rg = false, $str_sigla_uf_exp_rg = false, $int_tipo_cert_civil = false, $int_num_termo = false, $int_num_livro = false, $int_num_folha = false, $str_data_emissao_cert_civil = false, $str_sigla_uf_cert_civil = false, $str_cartorio_cert_civil = false, $int_num_cart_trabalho = false, $int_serie_cart_trabalho = false, $str_data_emissao_cart_trabalho = false, $str_sigla_uf_cart_trabalho = false, $int_num_tit_eleitor = false, $int_zona_tit_eleitor = false, $int_secao_tit_eleitor = false, $int_idorg_exp_rg = false, $str_certidao_nascimento = null) |
70 | - { | |
70 | + { | |
71 | 71 | $objPessoa = new clsFisica($int_idpes); |
72 | 72 | if($objPessoa->detalhe()) |
73 | 73 | { |
... | ... | @@ -448,16 +448,10 @@ class clsDocumento |
448 | 448 | $set .= $gruda."certidao_nascimento = '{$this->certidao_nascimento}'"; |
449 | 449 | $gruda = ", "; |
450 | 450 | } |
451 | - #else | |
452 | - #{ | |
453 | - # $set .= $gruda."certidao_nascimento = NULL"; | |
454 | - # $gruda = ", "; | |
455 | - #} | |
456 | 451 | |
457 | 452 | if($set) |
458 | 453 | { |
459 | 454 | $db = new clsBanco(); |
460 | -// ECHO "UPDATE {$this->schema}.{$this->tabela} $set WHERE idpes = '$this->idpes'" ;DIE; | |
461 | 455 | $db->Consulta( "UPDATE {$this->schema}.{$this->tabela} $set WHERE idpes = '$this->idpes'" ); |
462 | 456 | return true; |
463 | 457 | } | ... | ... |
ieducar/intranet/include/pessoa/clsFisica.inc.php
... | ... | @@ -193,16 +193,28 @@ class clsFisica |
193 | 193 | { |
194 | 194 | $campos = ""; |
195 | 195 | $valores = ""; |
196 | - if(is_string($this->data_nasc)) | |
197 | - { | |
198 | - $campos .= ", data_nasc"; | |
196 | + | |
197 | + | |
198 | + // data_nasc | |
199 | + | |
200 | + $campos .= ", data_nasc"; | |
201 | + | |
202 | + if($this->data_nasc) | |
199 | 203 | $valores .= ", '{$this->data_nasc}'"; |
200 | - } | |
201 | - if(is_string($this->sexo)) | |
202 | - { | |
203 | - $campos .= ", sexo"; | |
204 | + else | |
205 | + $valores .= ", NULL"; | |
206 | + | |
207 | + | |
208 | + // sexo | |
209 | + | |
210 | + $campos .= ", sexo"; | |
211 | + | |
212 | + if($this->sexo) | |
204 | 213 | $valores .= ", '$this->sexo' "; |
205 | - } | |
214 | + else | |
215 | + $valores .= ", NULL"; | |
216 | + | |
217 | + | |
206 | 218 | if(is_numeric($this->idpes_mae)) |
207 | 219 | { |
208 | 220 | $campos .= ", idpes_mae"; | ... | ... |
ieducar/intranet/scripts/padrao.js
... | ... | @@ -791,6 +791,9 @@ function cv_set_campo(campo1, valor1, campo2, valor2, campo3, valor3, campo4, |
791 | 791 | } |
792 | 792 | |
793 | 793 | window.parent.fechaExpansivel('div_dinamico_' + (parent.DOM_divs.length * 1 - 1)); |
794 | + | |
795 | + if(parent.afterSetSearchFields) | |
796 | + parent.afterSetSearchFields(self); | |
794 | 797 | } |
795 | 798 | |
796 | 799 | function cv_libera_campos(campo1, campo2, campo3, campo4, campo5, campo6, campo7, campo8) |
... | ... | @@ -819,6 +822,9 @@ function cv_libera_campos(campo1, campo2, campo3, campo4, campo5, campo6, campo7 |
819 | 822 | parent.document.getElementById(campo8).disabled = false; |
820 | 823 | parent.document.getElementById(campo8).value = '1'; |
821 | 824 | } |
825 | + | |
826 | + if(parent.afterUnsetSearchFields) | |
827 | + parent.afterUnsetSearchFields(self); | |
822 | 828 | } |
823 | 829 | |
824 | 830 | // Função a ser executada antes de fechar a janela. | ... | ... |
ieducar/lib/Portabilis/Array/Utils.php
... | ... | @@ -128,8 +128,12 @@ class Portabilis_Array_Utils { |
128 | 128 | |
129 | 129 | /* transforma um conjunto de arrays "chave => valor, chave => valor" em um array "id => value", |
130 | 130 | ex: (('id' => 1, 'nome' => 'lucas'), ('id' => 2, 'nome' => 'davila')) |
131 | - é transformado em (1 => 'lucas', 2 => davila), caso uma mesma chave se repita em mais de um array, | |
131 | + é transformado em (1 => 'lucas', 2 => davila), | |
132 | + | |
133 | + caso uma mesma chave se repita em mais de um array, | |
132 | 134 | será mantido a chave => valor do ultimo array que a contem. |
135 | + | |
136 | + o array retornado, será ordenado por valor. | |
133 | 137 | */ |
134 | 138 | public static function setAsIdValue($arrays, $keyAttr, $valueAtt) { |
135 | 139 | if (empty($arrays)) |
... | ... | @@ -143,7 +147,7 @@ class Portabilis_Array_Utils { |
143 | 147 | foreach ($arrays as $array) |
144 | 148 | $idValueArray = self::merge($idValueArray, self::asIdValue($array, $keyAttr, $valueAtt)); |
145 | 149 | |
146 | - return $idValueArray; | |
150 | + return Portabilis_Array_Utils::sortByValue($idValueArray); | |
147 | 151 | } |
148 | 152 | |
149 | 153 | |
... | ... | @@ -164,6 +168,14 @@ class Portabilis_Array_Utils { |
164 | 168 | return $array; |
165 | 169 | } |
166 | 170 | |
171 | + /* ordena array por valor mantendo as chaves associativas, usando função php uasort. */ | |
172 | + public static function sortByValue($array) { | |
173 | + uasort($array, function ($a, $b) { | |
174 | + return Portabilis_Array_Utils::_valueSorter($a, $b); | |
175 | + }); | |
176 | + | |
177 | + return $array; | |
178 | + } | |
167 | 179 | |
168 | 180 | public static function _keySorter($key, $array, $otherArray) { |
169 | 181 | $a = $array[$key]; |
... | ... | @@ -175,6 +187,18 @@ class Portabilis_Array_Utils { |
175 | 187 | return ($a < $b) ? -1 : 1; |
176 | 188 | } |
177 | 189 | |
190 | + public static function _valueSorter($a, $b) { | |
191 | + if (is_string($a)) | |
192 | + $a = Portabilis_String_Utils::unaccent($a); | |
193 | + | |
194 | + if (is_string($b)) | |
195 | + $b = Portabilis_String_Utils::unaccent($b); | |
196 | + | |
197 | + if ($a == $b) | |
198 | + return 0; | |
199 | + | |
200 | + return ($a < $b) ? -1 : 1; | |
201 | + } | |
178 | 202 | |
179 | 203 | /* trim values for a given array */ |
180 | 204 | public static function trim($array) { | ... | ... |
ieducar/lib/Portabilis/Date/Utils.php
... | ... | @@ -48,6 +48,9 @@ class Portabilis_Date_Utils |
48 | 48 | * @param string $date |
49 | 49 | */ |
50 | 50 | public static function brToPgSQL($date) { |
51 | + if (! $date) | |
52 | + return $date; | |
53 | + | |
51 | 54 | // #TODO usar classe nativa datetime http://www.phptherightway.com/#date_and_time ? |
52 | 55 | list($dia, $mes, $ano) = explode("/", $date); |
53 | 56 | return "$ano-$mes-$dia"; |
... | ... | @@ -58,13 +61,23 @@ class Portabilis_Date_Utils |
58 | 61 | * @param string $timestamp |
59 | 62 | */ |
60 | 63 | public static function pgSQLToBr($timestamp) { |
61 | - $format = 'Y-m-d H:i:s'; | |
62 | - $hasMicroseconds = strpos($timestamp, '.') > -1; | |
64 | + $pgFormat = 'Y-m-d'; | |
65 | + $brFormat = 'd/m/Y'; | |
66 | + | |
67 | + $hasTime = strpos($timestamp, ':') > -1; | |
68 | + | |
69 | + if ($hasTime) { | |
70 | + $pgFormat .= ' H:i:s'; | |
71 | + $brFormat .= ' H:i:s'; | |
72 | + | |
73 | + $hasMicroseconds = strpos($timestamp, '.') > -1; | |
74 | + | |
75 | + if ($hasMicroseconds) | |
76 | + $pgFormat .= '.u'; | |
77 | + } | |
63 | 78 | |
64 | - if ($hasMicroseconds) | |
65 | - $format .= '.u'; | |
79 | + $d = DateTime::createFromFormat($pgFormat, $timestamp); | |
66 | 80 | |
67 | - $d = DateTime::createFromFormat($format, $timestamp); | |
68 | - return ($d ? $d->format('d/m/Y H:i:s') : null); | |
81 | + return ($d ? $d->format($brFormat) : null); | |
69 | 82 | } |
70 | 83 | } | ... | ... |
ieducar/lib/Portabilis/String/Utils.php
... | ... | @@ -47,6 +47,7 @@ class Portabilis_String_Utils { |
47 | 47 | return Portabilis_Array_Utils::merge($options, $defaultOptions); |
48 | 48 | } |
49 | 49 | |
50 | + | |
50 | 51 | /* splits a string in a array, eg: |
51 | 52 | |
52 | 53 | $divisors = array('-', ' '); // or $divisors = '-'; |
... | ... | @@ -77,12 +78,14 @@ class Portabilis_String_Utils { |
77 | 78 | return $result; |
78 | 79 | } |
79 | 80 | |
81 | + | |
80 | 82 | /* scapes a string, adding backslashes before characters that need to be quoted, |
81 | 83 | this method is useful to scape values to be inserted via database queries. */ |
82 | 84 | public static function escape($str) { |
83 | 85 | return addslashes($str); |
84 | 86 | } |
85 | 87 | |
88 | + | |
86 | 89 | /* encodes latin1 strings to utf-8, |
87 | 90 | this method is useful to return latin1 strings (with accents) stored in db, in json api's. |
88 | 91 | */ |
... | ... | @@ -96,6 +99,7 @@ class Portabilis_String_Utils { |
96 | 99 | if ($options['transform']) |
97 | 100 | $str = ucwords(mb_strtolower($str)); |
98 | 101 | |
102 | + | |
99 | 103 | $str = utf8_encode($str); |
100 | 104 | |
101 | 105 | if ($options['convert_html_special_chars']) |
... | ... | @@ -104,6 +108,7 @@ class Portabilis_String_Utils { |
104 | 108 | return $str; |
105 | 109 | } |
106 | 110 | |
111 | + | |
107 | 112 | /* encodes utf-8 strings to latin1, |
108 | 113 | this method is useful to store utf-8 string (with accents) get from json api's, in latin1 db's. |
109 | 114 | */ |
... | ... | @@ -117,7 +122,11 @@ class Portabilis_String_Utils { |
117 | 122 | if ($options['transform']) |
118 | 123 | $str = ucwords(mb_strtolower($str)); |
119 | 124 | |
120 | - if (mb_detect_encoding($str, 'utf-8, iso-8859-1') == 'UTF-8') | |
125 | + | |
126 | + // apenas converte para latin1, strings utf-8 | |
127 | + // impedindo assim, converter para latin1 strings que já sejam latin1 | |
128 | + | |
129 | + if (Portabilis_String_Utils::encoding($str) == 'UTF-8') | |
121 | 130 | $str = utf8_decode($str); |
122 | 131 | |
123 | 132 | if ($options['convert_html_special_chars']) |
... | ... | @@ -126,15 +135,27 @@ class Portabilis_String_Utils { |
126 | 135 | return $str; |
127 | 136 | } |
128 | 137 | |
138 | + public static function unaccent($str) { | |
139 | + $fromEncoding = Portabilis_String_Utils::encoding($str); | |
140 | + return iconv($fromEncoding, 'US-ASCII//TRANSLIT', $str); | |
141 | + } | |
142 | + | |
143 | + | |
144 | + public static function encoding($str) { | |
145 | + return mb_detect_encoding($str, 'UTF-8, ISO-8859-1', $strict = true); | |
146 | + } | |
147 | + | |
129 | 148 | public static function camelize($str) { |
130 | 149 | return str_replace(' ', '', ucwords(str_replace('_', ' ', $str))); |
131 | 150 | } |
132 | 151 | |
152 | + | |
133 | 153 | public static function underscore($str) { |
134 | 154 | $words = preg_split('/(?=[A-Z])/', $str, -1, PREG_SPLIT_NO_EMPTY); |
135 | 155 | return strtolower(implode('_', $words)); |
136 | 156 | } |
137 | 157 | |
158 | + | |
138 | 159 | public static function humanize($str) { |
139 | 160 | $robotWords = array('_id', 'ref_cod_', 'ref_ref_cod_'); |
140 | 161 | ... | ... |
ieducar/lib/Portabilis/View/Helper/Input/Core.php
... | ... | @@ -80,8 +80,31 @@ class Portabilis_View_Helper_Input_Core { |
80 | 80 | return $value; |
81 | 81 | } |
82 | 82 | |
83 | + protected function inputPlaceholder($inputOptions) { | |
84 | + return isset($inputOptions['placeholder']) ? $inputOptions['placeholder'] : $inputOptions['label']; | |
85 | + } | |
86 | + | |
87 | + protected function fixupPlaceholder($inputOptions) { | |
88 | + $id = $inputOptions['id']; | |
89 | + $placeholder = $this->inputPlaceholder($inputOptions); | |
90 | + | |
91 | + $script = " | |
92 | + var \$input = \$j('#" . $id . "'); | |
93 | + if (\$input.is(':enabled')) | |
94 | + \$input.attr('placeholder', '" . $placeholder . "'); | |
95 | + "; | |
96 | + Portabilis_View_Helper_Application::embedJavascript($this->viewInstance, $script, $afterReady = true); | |
97 | + } | |
98 | + | |
83 | 99 | |
84 | 100 | protected function loadCoreAssets() { |
101 | + // carrega estilo para feedback messages, devido algumas validações de inuts | |
102 | + // adicionarem mensagens | |
103 | + | |
104 | + $style = "/modules/Portabilis/Assets/Stylesheets/Frontend.css"; | |
105 | + Portabilis_View_Helper_Application::loadStylesheet($this->viewInstance, $style); | |
106 | + | |
107 | + | |
85 | 108 | Portabilis_View_Helper_Application::loadJQueryLib($this->viewInstance); |
86 | 109 | Portabilis_View_Helper_Application::loadJQueryUiLib($this->viewInstance); |
87 | 110 | ... | ... |
... | ... | @@ -0,0 +1,74 @@ |
1 | +<?php | |
2 | + | |
3 | +/** | |
4 | + * i-Educar - Sistema de gestão escolar | |
5 | + * | |
6 | + * Copyright (C) 2006 Prefeitura Municipal de Itajaí | |
7 | + * <ctima@itajai.sc.gov.br> | |
8 | + * | |
9 | + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo | |
10 | + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free | |
11 | + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) | |
12 | + * qualquer versão posterior. | |
13 | + * | |
14 | + * Este programa é distribuído na expectativa de que seja útil, porém, SEM | |
15 | + * NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU | |
16 | + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral | |
17 | + * do GNU para mais detalhes. | |
18 | + * | |
19 | + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto | |
20 | + * com este programa; se não, escreva para a Free Software Foundation, Inc., no | |
21 | + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | |
22 | + * | |
23 | + * @author Lucas D'Avila <lucasdavila@portabilis.com.br> | |
24 | + * @category i-Educar | |
25 | + * @license @@license@@ | |
26 | + * @package Portabilis | |
27 | + * @since Arquivo disponível desde a versão 1.1.0 | |
28 | + * @version $Id$ | |
29 | + */ | |
30 | + | |
31 | +require_once 'Portabilis/View/Helper/Input/Core.php'; | |
32 | +require_once 'Portabilis/Date/Utils.php'; | |
33 | + | |
34 | +/** | |
35 | + * Portabilis_View_Helper_Input_Date class. | |
36 | + * | |
37 | + * @author Lucas D'Avila <lucasdavila@portabilis.com.br> | |
38 | + * @category i-Educar | |
39 | + * @license @@license@@ | |
40 | + * @package Portabilis | |
41 | + * @since Classe disponível desde a versão 1.1.0 | |
42 | + * @version @@package_version@@ | |
43 | + */ | |
44 | +class Portabilis_View_Helper_Input_Date extends Portabilis_View_Helper_Input_Core { | |
45 | + | |
46 | + public function date($attrName, $options = array()) { | |
47 | + $defaultOptions = array('options' => array(), 'objectName' => ''); | |
48 | + | |
49 | + $options = $this->mergeOptions($options, $defaultOptions); | |
50 | + $spacer = ! empty($options['objectName']) && ! empty($attrName) ? '_' : ''; | |
51 | + | |
52 | + $label = ! empty($attrName) ? $attrName : $options['objectName']; | |
53 | + $label = str_replace('_id', '', $label); | |
54 | + | |
55 | + $defaultInputOptions = array('id' => $options['objectName'] . $spacer . $attrName, | |
56 | + 'label' => ucwords($label), | |
57 | + 'value' => null, | |
58 | + 'required' => true, | |
59 | + 'label_hint' => '', | |
60 | + 'inline' => false, | |
61 | + 'callback' => false, | |
62 | + 'disabled' => false); | |
63 | + | |
64 | + $inputOptions = $this->mergeOptions($options['options'], $defaultInputOptions); | |
65 | + | |
66 | + $isDbFormated = strrpos($inputOptions['value'], '-') > -1; | |
67 | + | |
68 | + if ($isDbFormated) | |
69 | + $inputOptions['value'] = Portabilis_Date_Utils::pgSQLToBr($inputOptions['value']); | |
70 | + | |
71 | + call_user_func_array(array($this->viewInstance, 'campoData'), $inputOptions); | |
72 | + $this->fixupPlaceholder($inputOptions); | |
73 | + } | |
74 | +} | ... | ... |
... | ... | @@ -0,0 +1,66 @@ |
1 | +<?php | |
2 | + | |
3 | +/** | |
4 | + * i-Educar - Sistema de gestão escolar | |
5 | + * | |
6 | + * Copyright (C) 2006 Prefeitura Municipal de Itajaí | |
7 | + * <ctima@itajai.sc.gov.br> | |
8 | + * | |
9 | + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo | |
10 | + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free | |
11 | + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) | |
12 | + * qualquer versão posterior. | |
13 | + * | |
14 | + * Este programa é distribuído na expectativa de que seja útil, porém, SEM | |
15 | + * NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU | |
16 | + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral | |
17 | + * do GNU para mais detalhes. | |
18 | + * | |
19 | + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto | |
20 | + * com este programa; se não, escreva para a Free Software Foundation, Inc., no | |
21 | + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | |
22 | + * | |
23 | + * @author Lucas D'Avila <lucasdavila@portabilis.com.br> | |
24 | + * @category i-Educar | |
25 | + * @license @@license@@ | |
26 | + * @package Portabilis | |
27 | + * @since Arquivo disponível desde a versão 1.1.0 | |
28 | + * @version $Id$ | |
29 | + */ | |
30 | + | |
31 | +require_once 'lib/Portabilis/View/Helper/Input/Numeric.php'; | |
32 | + | |
33 | + | |
34 | +/** | |
35 | + * Portabilis_View_Helper_Input_Integer class. | |
36 | + * | |
37 | + * @author Lucas D'Avila <lucasdavila@portabilis.com.br> | |
38 | + * @category i-Educar | |
39 | + * @license @@license@@ | |
40 | + * @package Portabilis | |
41 | + * @since Classe disponível desde a versão 1.1.0 | |
42 | + * @version @@package_version@@ | |
43 | + */ | |
44 | +class Portabilis_View_Helper_Input_Integer extends Portabilis_View_Helper_Input_Numeric { | |
45 | + | |
46 | + protected function fixupValidation($inputOptions) { | |
47 | + // fixup para remover caracteres não numericos | |
48 | + // inclusive pontos '.', não removidos pela super classe | |
49 | + $js = " \$j('#" . $inputOptions['id'] . "').keyup(function(){ | |
50 | + var oldValue = this.value; | |
51 | + | |
52 | + this.value = this.value.replace(/[^0-9\.]/g, ''); | |
53 | + this.value = this.value.replace('.', ''); | |
54 | + | |
55 | + if (oldValue != this.value) | |
56 | + messageUtils.error('Informe apenas números.', this); | |
57 | + | |
58 | + });"; | |
59 | + | |
60 | + Portabilis_View_Helper_Application::embedJavascript($this->viewInstance, $js, $afterReady = false); | |
61 | + } | |
62 | + | |
63 | + public function integer($attrName, $options = array()) { | |
64 | + parent::numeric($attrName, $options); | |
65 | + } | |
66 | +} | ... | ... |
ieducar/lib/Portabilis/View/Helper/Input/Numeric.php
... | ... | @@ -44,6 +44,20 @@ require_once 'lib/Portabilis/View/Helper/Input/Core.php'; |
44 | 44 | */ |
45 | 45 | class Portabilis_View_Helper_Input_Numeric extends Portabilis_View_Helper_Input_Core { |
46 | 46 | |
47 | + protected function fixupValidation($inputOptions) { | |
48 | + // fixup para remover caracteres não numericos | |
49 | + $js = " \$j(#'" . $inputOptions['id'] . "').keyup(function(){ | |
50 | + var oldValue = this.value; | |
51 | + this.value = this.value.replace(/[^0-9\.]/g, ''); | |
52 | + | |
53 | + if (oldValue != this.value) | |
54 | + messageUtils.error('Informe apenas números.', this); | |
55 | + | |
56 | + });"; | |
57 | + | |
58 | + Portabilis_View_Helper_Application::embedJavascript($this->viewInstance, $js, $afterReady = false); | |
59 | + } | |
60 | + | |
47 | 61 | public function numeric($attrName, $options = array()) { |
48 | 62 | $defaultOptions = array('options' => array(), 'objectName' => ''); |
49 | 63 | |
... | ... | @@ -59,7 +73,7 @@ class Portabilis_View_Helper_Input_Numeric extends Portabilis_View_Helper_Input_ |
59 | 73 | 'size' => 15, |
60 | 74 | 'max_length' => 15, |
61 | 75 | 'required' => true, |
62 | - 'label_hint' => '', | |
76 | + 'label_hint' => ' ', | |
63 | 77 | 'input_hint' => '', |
64 | 78 | 'script' => false, |
65 | 79 | 'event' => 'onKeyUp', |
... | ... | @@ -67,7 +81,10 @@ class Portabilis_View_Helper_Input_Numeric extends Portabilis_View_Helper_Input_ |
67 | 81 | 'disabled' => false); |
68 | 82 | |
69 | 83 | $inputOptions = $this->mergeOptions($options['options'], $defaultInputOptions); |
84 | + $inputOptions['label'] = Portabilis_String_Utils::toLatin1($inputOptions['label'], array('escape' => false)); | |
70 | 85 | |
71 | 86 | call_user_func_array(array($this->viewInstance, 'campoNumero'), $inputOptions); |
87 | + $this->fixupPlaceholder($inputOptions); | |
88 | + $this->fixupValidation($inputOptions); | |
72 | 89 | } |
73 | 90 | } | ... | ... |
ieducar/lib/Portabilis/View/Helper/Input/Resource/Beneficio.php
... | ... | @@ -53,7 +53,7 @@ class Portabilis_View_Helper_Input_Resource_Beneficio extends Portabilis_View_He |
53 | 53 | $resources = Portabilis_Array_Utils::setAsIdValue($resources, 'cod_aluno_beneficio', 'nm_beneficio'); |
54 | 54 | } |
55 | 55 | |
56 | - return $this->insertOption(null, "Selecione", $resources); | |
56 | + return $this->insertOption(null, "Beneficio", $resources); | |
57 | 57 | } |
58 | 58 | |
59 | 59 | public function beneficio($options = array()) { | ... | ... |
ieducar/lib/Portabilis/View/Helper/Input/Resource/EstadoCivil.php
... | ... | @@ -53,7 +53,7 @@ class Portabilis_View_Helper_Input_Resource_EstadoCivil extends Portabilis_View_ |
53 | 53 | $resources = Portabilis_Array_Utils::setAsIdValue($resources, 'ideciv', 'descricao'); |
54 | 54 | } |
55 | 55 | |
56 | - return $this->insertOption(null, "Selecione", $resources); | |
56 | + return $this->insertOption(null, "Estado civil", $resources); | |
57 | 57 | } |
58 | 58 | |
59 | 59 | public function estadoCivil($options = array()) { | ... | ... |
ieducar/lib/Portabilis/View/Helper/Input/Resource/Religiao.php
... | ... | @@ -54,7 +54,7 @@ class Portabilis_View_Helper_Input_Resource_Religiao extends Portabilis_View_Hel |
54 | 54 | $resources = Portabilis_Array_Utils::setAsIdValue($resources, 'cod_religiao', 'nm_religiao'); |
55 | 55 | } |
56 | 56 | |
57 | - return $this->insertOption(null, "Selecione", $resources); | |
57 | + return $this->insertOption(null, Portabilis_String_Utils::toLatin1("Religião"), $resources); | |
58 | 58 | } |
59 | 59 | |
60 | 60 | ... | ... |
ieducar/lib/Portabilis/View/Helper/Input/Resource/SimpleSearchAluno.php
... | ... | @@ -50,17 +50,11 @@ class Portabilis_View_Helper_Input_Resource_SimpleSearchAluno extends Portabilis |
50 | 50 | |
51 | 51 | $options = $this->mergeOptions($options, $defaultOptions); |
52 | 52 | |
53 | - $this->placeholderJs($options); | |
54 | - | |
55 | 53 | parent::simpleSearch($options['objectName'], $attrName, $options); |
56 | 54 | } |
57 | 55 | |
58 | - protected function placeholderJs($options) { | |
59 | - $optionsVarName = "simpleSearch" . Portabilis_String_Utils::camelize($options['objectName']) . "Options"; | |
60 | - $js = "if (typeof $optionsVarName == 'undefined') { $optionsVarName = {} }; | |
61 | - $optionsVarName.placeholder = stringUtils.toUtf8('Informe o nome do aluno ou código');"; | |
62 | - | |
63 | - Portabilis_View_Helper_Application::embedJavascript($this->viewInstance, $js, $afterReady = true); | |
56 | + protected function inputPlaceholder($inputOptions) { | |
57 | + return 'Informe o código ou nome do aluno'; | |
64 | 58 | } |
65 | 59 | |
66 | 60 | protected function loadAssets() { | ... | ... |
ieducar/lib/Portabilis/View/Helper/Input/Resource/SimpleSearchMatricula.php
... | ... | @@ -50,17 +50,11 @@ class Portabilis_View_Helper_Input_Resource_SimpleSearchMatricula extends Portab |
50 | 50 | |
51 | 51 | $options = $this->mergeOptions($options, $defaultOptions); |
52 | 52 | |
53 | - $this->placeholderJs($options); | |
54 | - | |
55 | 53 | parent::simpleSearch($options['objectName'], $attrName, $options); |
56 | 54 | } |
57 | 55 | |
58 | - protected function placeholderJs($options) { | |
59 | - $optionsVarName = "simpleSearch" . Portabilis_String_Utils::camelize($options['objectName']) . "Options"; | |
60 | - $js = "if (typeof $optionsVarName == 'undefined') { $optionsVarName = {} }; | |
61 | - $optionsVarName.placeholder = stringUtils.toUtf8('Informe o nome do aluno, código ou código matricula');"; | |
62 | - | |
63 | - Portabilis_View_Helper_Application::embedJavascript($this->viewInstance, $js, $afterReady = true); | |
56 | + protected function inputPlaceholder($inputOptions) { | |
57 | + return 'Informe o nome do aluno, código ou código da matricula'; | |
64 | 58 | } |
65 | 59 | |
66 | 60 | protected function loadAssets() { | ... | ... |
ieducar/lib/Portabilis/View/Helper/Input/Resource/SimpleSearchMunicipio.php
... | ... | @@ -64,16 +64,10 @@ class Portabilis_View_Helper_Input_Resource_SimpleSearchMunicipio extends Portab |
64 | 64 | |
65 | 65 | $options = $this->mergeOptions($options, $defaultOptions); |
66 | 66 | |
67 | - $this->placeholderJs($options); | |
68 | - | |
69 | 67 | parent::simpleSearch($options['objectName'], $attrName, $options); |
70 | 68 | } |
71 | 69 | |
72 | - protected function placeholderJs($options) { | |
73 | - $optionsVarName = "simpleSearch" . Portabilis_String_Utils::camelize($options['objectName']) . "Options"; | |
74 | - $js = "if (typeof $optionsVarName == 'undefined') { $optionsVarName = {} }; | |
75 | - $optionsVarName.placeholder = safeUtf8Decode('Informe o código ou nome da cidade');"; | |
76 | - | |
77 | - Portabilis_View_Helper_Application::embedJavascript($this->viewInstance, $js, $afterReady = true); | |
70 | + protected function inputPlaceholder($inputOptions) { | |
71 | + return 'Informe o código ou nome da cidade'; | |
78 | 72 | } |
79 | 73 | } |
80 | 74 | \ No newline at end of file | ... | ... |
ieducar/lib/Portabilis/View/Helper/Input/Resource/SimpleSearchPais.php
... | ... | @@ -62,16 +62,10 @@ class Portabilis_View_Helper_Input_Resource_SimpleSearchPais extends Portabilis_ |
62 | 62 | |
63 | 63 | $options = $this->mergeOptions($options, $defaultOptions); |
64 | 64 | |
65 | - $this->placeholderJs($options); | |
66 | - | |
67 | 65 | parent::simpleSearch($options['objectName'], $attrName, $options); |
68 | 66 | } |
69 | 67 | |
70 | - protected function placeholderJs($options) { | |
71 | - $optionsVarName = "simpleSearch" . Portabilis_String_Utils::camelize($options['objectName']) . "Options"; | |
72 | - $js = "if (typeof $optionsVarName == 'undefined') { $optionsVarName = {} }; | |
73 | - $optionsVarName.placeholder = safeUtf8Decode('Informe o código ou nome do pais de origem');"; | |
74 | - | |
75 | - Portabilis_View_Helper_Application::embedJavascript($this->viewInstance, $js, $afterReady = true); | |
68 | + protected function inputPlaceholder($inputOptions) { | |
69 | + return 'Informe o código ou nome do pais de origem'; | |
76 | 70 | } |
77 | 71 | } |
78 | 72 | \ No newline at end of file | ... | ... |
ieducar/lib/Portabilis/View/Helper/Input/Resource/SimpleSearchPessoa.php
... | ... | @@ -62,16 +62,10 @@ class Portabilis_View_Helper_Input_Resource_SimpleSearchPessoa extends Portabili |
62 | 62 | |
63 | 63 | $options = $this->mergeOptions($options, $defaultOptions); |
64 | 64 | |
65 | - $this->placeholderJs($options); | |
66 | - | |
67 | 65 | parent::simpleSearch($options['objectName'], $attrName, $options); |
68 | 66 | } |
69 | 67 | |
70 | - protected function placeholderJs($options) { | |
71 | - $optionsVarName = "simpleSearch" . Portabilis_String_Utils::camelize($options['objectName']) . "Options"; | |
72 | - $js = "if (typeof $optionsVarName == 'undefined') { $optionsVarName = {} }; | |
73 | - $optionsVarName.placeholder = safeUtf8Decode('Informe o nome, código, CPF ou RG da pessoa');"; | |
74 | - | |
75 | - Portabilis_View_Helper_Application::embedJavascript($this->viewInstance, $js, $afterReady = true); | |
68 | + protected function inputPlaceholder($inputOptions) { | |
69 | + return 'Informe o nome, código, CPF ou RG da pessoa'; | |
76 | 70 | } |
77 | 71 | } |
78 | 72 | \ No newline at end of file | ... | ... |
ieducar/lib/Portabilis/View/Helper/Input/Resource/TipoLogradouro.php
0 → 100644
... | ... | @@ -0,0 +1,64 @@ |
1 | +<?php | |
2 | +#error_reporting(E_ALL); | |
3 | +#ini_set("display_errors", 1); | |
4 | +/** | |
5 | + * i-Educar - Sistema de gestão escolar | |
6 | + * | |
7 | + * Copyright (C) 2006 Prefeitura Municipal de Itajaí | |
8 | + * <ctima@itajai.sc.gov.br> | |
9 | + * | |
10 | + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo | |
11 | + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free | |
12 | + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) | |
13 | + * qualquer versão posterior. | |
14 | + * | |
15 | + * Este programa é distribuído na expectativa de que seja útil, porém, SEM | |
16 | + * NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU | |
17 | + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral | |
18 | + * do GNU para mais detalhes. | |
19 | + * | |
20 | + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto | |
21 | + * com este programa; se não, escreva para a Free Software Foundation, Inc., no | |
22 | + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | |
23 | + * | |
24 | + * @author Lucas D'Avila <lucasdavila@portabilis.com.br> | |
25 | + * @category i-Educar | |
26 | + * @license @@license@@ | |
27 | + * @package Portabilis | |
28 | + * @since Arquivo disponível desde a versão 1.1.0 | |
29 | + * @version $Id$ | |
30 | + */ | |
31 | + | |
32 | +require_once 'lib/Portabilis/View/Helper/Input/CoreSelect.php'; | |
33 | + | |
34 | + | |
35 | +/** | |
36 | + * Portabilis_View_Helper_Input_Resource_TipoLogradouro class. | |
37 | + * | |
38 | + * @author Lucas D'Avila <lucasdavila@portabilis.com.br> | |
39 | + * @category i-Educar | |
40 | + * @license @@license@@ | |
41 | + * @package Portabilis | |
42 | + * @since Classe disponível desde a versão 1.1.0 | |
43 | + * @version @@package_version@@ | |
44 | + */ | |
45 | + | |
46 | +class Portabilis_View_Helper_Input_Resource_TipoLogradouro extends Portabilis_View_Helper_Input_CoreSelect { | |
47 | + | |
48 | + protected function inputOptions($options) { | |
49 | + $resources = $options['resources']; | |
50 | + | |
51 | + if (empty($options['resources'])) { | |
52 | + $resources = new clsTipoLogradouro(); | |
53 | + $resources = $resources->lista(); | |
54 | + $resources = Portabilis_Array_Utils::setAsIdValue($resources, 'idtlog', 'descricao'); | |
55 | + } | |
56 | + | |
57 | + return $this->insertOption(null, "Tipo logradouro", $resources); | |
58 | + } | |
59 | + | |
60 | + | |
61 | + public function tipoLogradouro($options = array()) { | |
62 | + parent::select($options); | |
63 | + } | |
64 | +} | |
0 | 65 | \ No newline at end of file | ... | ... |
ieducar/lib/Portabilis/View/Helper/Input/Resource/Uf.php
0 → 100644
... | ... | @@ -0,0 +1,64 @@ |
1 | +<?php | |
2 | +#error_reporting(E_ALL); | |
3 | +#ini_set("display_errors", 1); | |
4 | +/** | |
5 | + * i-Educar - Sistema de gestão escolar | |
6 | + * | |
7 | + * Copyright (C) 2006 Prefeitura Municipal de Itajaí | |
8 | + * <ctima@itajai.sc.gov.br> | |
9 | + * | |
10 | + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo | |
11 | + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free | |
12 | + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) | |
13 | + * qualquer versão posterior. | |
14 | + * | |
15 | + * Este programa é distribuído na expectativa de que seja útil, porém, SEM | |
16 | + * NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU | |
17 | + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral | |
18 | + * do GNU para mais detalhes. | |
19 | + * | |
20 | + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto | |
21 | + * com este programa; se não, escreva para a Free Software Foundation, Inc., no | |
22 | + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | |
23 | + * | |
24 | + * @author Lucas D'Avila <lucasdavila@portabilis.com.br> | |
25 | + * @category i-Educar | |
26 | + * @license @@license@@ | |
27 | + * @package Portabilis | |
28 | + * @since Arquivo disponível desde a versão 1.1.0 | |
29 | + * @version $Id$ | |
30 | + */ | |
31 | + | |
32 | +require_once 'lib/Portabilis/View/Helper/Input/CoreSelect.php'; | |
33 | + | |
34 | + | |
35 | +/** | |
36 | + * Portabilis_View_Helper_Input_Resource_Uf class. | |
37 | + * | |
38 | + * @author Lucas D'Avila <lucasdavila@portabilis.com.br> | |
39 | + * @category i-Educar | |
40 | + * @license @@license@@ | |
41 | + * @package Portabilis | |
42 | + * @since Classe disponível desde a versão 1.1.0 | |
43 | + * @version @@package_version@@ | |
44 | + */ | |
45 | + | |
46 | +class Portabilis_View_Helper_Input_Resource_Uf extends Portabilis_View_Helper_Input_CoreSelect { | |
47 | + | |
48 | + protected function inputOptions($options) { | |
49 | + $resources = $options['resources']; | |
50 | + | |
51 | + if (empty($options['resources'])) { | |
52 | + $resources = new clsUf(); | |
53 | + $resources = $resources->lista(); | |
54 | + $resources = Portabilis_Array_Utils::setAsIdValue($resources, 'sigla_uf', 'sigla_uf'); | |
55 | + } | |
56 | + | |
57 | + return $this->insertOption(null, "Estado", $resources); | |
58 | + } | |
59 | + | |
60 | + | |
61 | + public function uf($options = array()) { | |
62 | + parent::select($options); | |
63 | + } | |
64 | +} | |
0 | 65 | \ No newline at end of file | ... | ... |
ieducar/lib/Portabilis/View/Helper/Input/Select.php
... | ... | @@ -61,7 +61,9 @@ class Portabilis_View_Helper_Input_Select extends Portabilis_View_Helper_Input_C |
61 | 61 | 'required' => true, |
62 | 62 | 'multiple' => false); |
63 | 63 | |
64 | - $inputOptions = $this->mergeOptions($options['options'], $defaultInputOptions); | |
64 | + $inputOptions = $this->mergeOptions($options['options'], $defaultInputOptions); | |
65 | + $inputOptions['label'] = Portabilis_String_Utils::toLatin1($inputOptions['label'], array('escape' => false)); | |
66 | + | |
65 | 67 | call_user_func_array(array($this->viewInstance, 'campoLista'), $inputOptions); |
66 | 68 | } |
67 | 69 | } |
68 | 70 | \ No newline at end of file | ... | ... |
ieducar/lib/Portabilis/View/Helper/Input/SimpleSearch.php
... | ... | @@ -95,6 +95,11 @@ class Portabilis_View_Helper_Input_SimpleSearch extends Portabilis_View_Helper_I |
95 | 95 | protected function textInput($objectName, $attrName, $options) { |
96 | 96 | $textHelperOptions = array('objectName' => $objectName); |
97 | 97 | |
98 | + $options['options']['placeholder'] = Portabilis_String_Utils::toLatin1( | |
99 | + $this->inputPlaceholder(), | |
100 | + array('escape' => false) | |
101 | + ); | |
102 | + | |
98 | 103 | $this->inputsHelper()->text($attrName, $options['options'], $textHelperOptions); |
99 | 104 | } |
100 | 105 | |
... | ... | @@ -110,7 +115,7 @@ class Portabilis_View_Helper_Input_SimpleSearch extends Portabilis_View_Helper_I |
110 | 115 | |
111 | 116 | /* |
112 | 117 | all search options (including the option autocompleteOptions, that is passed for jquery autocomplete plugin), |
113 | - can be overwritten adding "var = simpleSearch<ObjectName>Options = { placeholder : '...', optionName : '...' };" | |
118 | + can be overwritten adding "var = simpleSearch<ObjectName>Options = { option : '...', optionName : '...' };" | |
114 | 119 | in the script file for the resource controller. |
115 | 120 | */ |
116 | 121 | ... | ... |
ieducar/lib/Portabilis/View/Helper/Input/Text.php
... | ... | @@ -51,7 +51,7 @@ class Portabilis_View_Helper_Input_Text extends Portabilis_View_Helper_Input_Cor |
51 | 51 | $spacer = ! empty($options['objectName']) && ! empty($attrName) ? '_' : ''; |
52 | 52 | |
53 | 53 | $label = ! empty($attrName) ? $attrName : $options['objectName']; |
54 | - $label = str_replace('_id', '', $label); | |
54 | + $label = str_replace('_id', '', $label); | |
55 | 55 | |
56 | 56 | $defaultInputOptions = array('id' => $options['objectName'] . $spacer . $attrName, |
57 | 57 | 'label' => ucwords($label), |
... | ... | @@ -67,8 +67,10 @@ class Portabilis_View_Helper_Input_Text extends Portabilis_View_Helper_Input_Cor |
67 | 67 | 'event' => 'onKeyUp', |
68 | 68 | 'disabled' => false); |
69 | 69 | |
70 | - $inputOptions = $this->mergeOptions($options['options'], $defaultInputOptions); | |
70 | + $inputOptions = $this->mergeOptions($options['options'], $defaultInputOptions); | |
71 | + $inputOptions['label'] = Portabilis_String_Utils::toLatin1($inputOptions['label'], array('escape' => false)); | |
71 | 72 | |
72 | 73 | call_user_func_array(array($this->viewInstance, 'campoTexto'), $inputOptions); |
74 | + $this->fixupPlaceholder($inputOptions); | |
73 | 75 | } |
74 | 76 | } | ... | ... |
... | ... | @@ -0,0 +1,74 @@ |
1 | +<?php | |
2 | +#error_reporting(E_ALL); | |
3 | +#ini_set("display_errors", 1); | |
4 | +/** | |
5 | + * i-Educar - Sistema de gestão escolar | |
6 | + * | |
7 | + * Copyright (C) 2006 Prefeitura Municipal de Itajaí | |
8 | + * <ctima@itajai.sc.gov.br> | |
9 | + * | |
10 | + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo | |
11 | + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free | |
12 | + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) | |
13 | + * qualquer versão posterior. | |
14 | + * | |
15 | + * Este programa é distribuído na expectativa de que seja útil, porém, SEM | |
16 | + * NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU | |
17 | + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral | |
18 | + * do GNU para mais detalhes. | |
19 | + * | |
20 | + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto | |
21 | + * com este programa; se não, escreva para a Free Software Foundation, Inc., no | |
22 | + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | |
23 | + * | |
24 | + * @author Lucas D'Avila <lucasdavila@portabilis.com.br> | |
25 | + * @category i-Educar | |
26 | + * @license @@license@@ | |
27 | + * @package Portabilis | |
28 | + * @since Arquivo disponível desde a versão 1.1.0 | |
29 | + * @version $Id$ | |
30 | + */ | |
31 | + | |
32 | +require_once 'lib/Portabilis/View/Helper/Input/Core.php'; | |
33 | + | |
34 | + | |
35 | +/** | |
36 | + * Portabilis_View_Helper_Input_TextArea class. | |
37 | + * | |
38 | + * @author Lucas D'Avila <lucasdavila@portabilis.com.br> | |
39 | + * @category i-Educar | |
40 | + * @license @@license@@ | |
41 | + * @package Portabilis | |
42 | + * @since Classe disponível desde a versão 1.1.0 | |
43 | + * @version @@package_version@@ | |
44 | + */ | |
45 | +class Portabilis_View_Helper_Input_TextArea extends Portabilis_View_Helper_Input_Core { | |
46 | + | |
47 | + public function textArea($attrName, $options = array()) { | |
48 | + $defaultOptions = array('options' => array(), 'objectName' => ''); | |
49 | + | |
50 | + $options = $this->mergeOptions($options, $defaultOptions); | |
51 | + $spacer = ! empty($options['objectName']) && ! empty($attrName) ? '_' : ''; | |
52 | + | |
53 | + $label = ! empty($attrName) ? $attrName : $options['objectName']; | |
54 | + $label = str_replace('_id', '', $label); | |
55 | + | |
56 | + $defaultInputOptions = array('id' => $options['objectName'] . $spacer . $attrName, | |
57 | + 'label' => ucwords($label), | |
58 | + 'value' => null, | |
59 | + 'cols' => 49, | |
60 | + 'rows' => 5, | |
61 | + 'required' => true, | |
62 | + 'label_hint' => '', | |
63 | + 'max_length' => '', | |
64 | + 'inline' => false, | |
65 | + 'script' => false, | |
66 | + 'event' => 'onClick', | |
67 | + 'disabled' => false); | |
68 | + | |
69 | + $inputOptions = $this->mergeOptions($options['options'], $defaultInputOptions); | |
70 | + | |
71 | + call_user_func_array(array($this->viewInstance, 'campoMemo'), $inputOptions); | |
72 | + $this->fixupPlaceholder($inputOptions); | |
73 | + } | |
74 | +} | ... | ... |
ieducar/lib/Portabilis/View/Helper/Inputs.php
... | ... | @@ -84,6 +84,14 @@ class Portabilis_View_Helper_Inputs { |
84 | 84 | |
85 | 85 | // input helpers |
86 | 86 | |
87 | + public function input($helperName, $attrName, $inputOptions = array(), $helperOptions = array()) { | |
88 | + $helperClassName = "Portabilis_View_Helper_Input_" . ucfirst($helperName); | |
89 | + | |
90 | + $this->includeHelper($helperClassName); | |
91 | + $helper = new $helperClassName($this->viewInstance, $this); | |
92 | + $helper->$helperName($attrName, $this->mergeInputOptions($inputOptions, $helperOptions)); | |
93 | + } | |
94 | + | |
87 | 95 | public function text($attrNames, $inputOptions = array(), $helperOptions = array()) { |
88 | 96 | if (! is_array($attrNames)) |
89 | 97 | $attrNames = array($attrNames); |
... | ... | @@ -93,42 +101,36 @@ class Portabilis_View_Helper_Inputs { |
93 | 101 | } |
94 | 102 | } |
95 | 103 | |
96 | - public function numeric($attrNames, $inputOptions = array(), $helperOptions = array()) { | |
97 | - if (! is_array($attrNames)) | |
98 | - $attrNames = array($attrNames); | |
99 | - | |
100 | - foreach($attrNames as $attrName) { | |
101 | - $this->input('numeric', $attrName, $inputOptions, $helperOptions); | |
102 | - } | |
104 | + public function numeric($attrName, $inputOptions = array(), $helperOptions = array()) { | |
105 | + $this->input('numeric', $attrName, $inputOptions, $helperOptions); | |
103 | 106 | } |
104 | 107 | |
108 | + public function integer($attrName, $inputOptions = array(), $helperOptions = array()) { | |
109 | + $this->input('integer', $attrName, $inputOptions, $helperOptions); | |
110 | + } | |
105 | 111 | |
106 | 112 | public function select($attrName, $inputOptions = array(), $helperOptions = array()) { |
107 | 113 | $this->input('select', $attrName, $inputOptions, $helperOptions); |
108 | 114 | } |
109 | 115 | |
110 | - | |
111 | 116 | public function search($attrName, $inputOptions = array(), $helperOptions = array()) { |
112 | 117 | $this->input('search', $attrName, $inputOptions, $helperOptions); |
113 | 118 | } |
114 | 119 | |
115 | - | |
116 | 120 | public function hidden($attrName, $inputOptions = array(), $helperOptions = array()) { |
117 | 121 | $this->input('hidden', $attrName, $inputOptions, $helperOptions); |
118 | 122 | } |
119 | 123 | |
120 | - | |
121 | 124 | public function checkbox($attrName, $inputOptions = array(), $helperOptions = array()) { |
122 | 125 | $this->input('checkbox', $attrName, $inputOptions, $helperOptions); |
123 | 126 | } |
124 | 127 | |
128 | + public function date($attrName, $inputOptions = array(), $helperOptions = array()) { | |
129 | + $this->input('date', $attrName, $inputOptions, $helperOptions); | |
130 | + } | |
125 | 131 | |
126 | - public function input($helperName, $attrName, $inputOptions = array(), $helperOptions = array()) { | |
127 | - $helperClassName = "Portabilis_View_Helper_Input_" . ucfirst($helperName); | |
128 | - | |
129 | - $this->includeHelper($helperClassName); | |
130 | - $helper = new $helperClassName($this->viewInstance, $this); | |
131 | - $helper->$helperName($attrName, $this->mergeInputOptions($inputOptions, $helperOptions)); | |
132 | + public function textArea($attrName, $inputOptions = array(), $helperOptions = array()) { | |
133 | + $this->input('textArea', $attrName, $inputOptions, $helperOptions); | |
132 | 134 | } |
133 | 135 | |
134 | 136 | |
... | ... | @@ -196,6 +198,14 @@ class Portabilis_View_Helper_Inputs { |
196 | 198 | $this->resourceInput('turmaTurno', $this->mergeInputOptions($inputOptions, $helperOptions)); |
197 | 199 | } |
198 | 200 | |
201 | + public function uf($inputOptions = array(), $helperOptions = array()) { | |
202 | + $this->resourceInput('uf', $this->mergeInputOptions($inputOptions, $helperOptions)); | |
203 | + } | |
204 | + | |
205 | + public function tipoLogradouro($inputOptions = array(), $helperOptions = array()) { | |
206 | + $this->resourceInput('tipoLogradouro', $this->mergeInputOptions($inputOptions, $helperOptions)); | |
207 | + } | |
208 | + | |
199 | 209 | // protected methods |
200 | 210 | |
201 | 211 | protected function resourceInput($helperName, $options = array()) { | ... | ... |
ieducar/modules/Cadastro/Assets/Javascripts/Aluno.js
... | ... | @@ -83,7 +83,7 @@ var handleGetPersonDetails = function(dataResponse) { |
83 | 83 | |
84 | 84 | else { |
85 | 85 | $j('.pessoa-links .editar-pessoa').attr('href', '/intranet/atendidos_cad.php?cod_pessoa_fj=' + dataResponse.id) |
86 | - .show(); | |
86 | + .show().css('display', 'inline'); | |
87 | 87 | |
88 | 88 | $submitButton.removeAttr('disabled').show(); |
89 | 89 | } |
... | ... | @@ -174,8 +174,8 @@ function afterChangePessoa(targetWindow, pessoaId) { |
174 | 174 | $j('#pessoa_id').val(pessoaId); |
175 | 175 | getPersonDetails(pessoaId); |
176 | 176 | |
177 | - window.setTimeout(function() { $nomeField.removeClass('success'); }, 10000); | |
178 | - $nomeField.focus(); | |
177 | + if ($nomeField.is(':active')) | |
178 | + $nomeField.focus(); | |
179 | 179 | |
180 | 180 | }, 500); |
181 | 181 | } |
... | ... | @@ -209,7 +209,7 @@ function afterChangePessoa(targetWindow, pessoaId) { |
209 | 209 | |
210 | 210 | if (resource.isNew()) { |
211 | 211 | $nomeField.focus(); |
212 | - $j('.pessoa-links .cadastrar-pessoa').show(); | |
212 | + $j('.pessoa-links .cadastrar-pessoa').show().css('display', 'inline'); | |
213 | 213 | } |
214 | 214 | else |
215 | 215 | $nomeField.attr('disabled', 'disabled'); | ... | ... |
ieducar/modules/Cadastro/Assets/Javascripts/AlunoShow.js
... | ... | @@ -87,7 +87,7 @@ var handleGetMatriculas = function(dataResponse) { |
87 | 87 | } |
88 | 88 | |
89 | 89 | $matriculasTable.fadeIn('slow'); |
90 | - $j('body').animate({scrollTop: $j('#matriculas').offset().top }, 900); | |
90 | + $j('body,html').animate({scrollTop: $j('#matriculas').offset().top }, 900); | |
91 | 91 | |
92 | 92 | $matriculasTable.find('tr:even').addClass('even'); |
93 | 93 | } | ... | ... |
ieducar/modules/Cadastro/Assets/Javascripts/Escola.js
ieducar/modules/Cadastro/Assets/Javascripts/PessoaFisica.js
1 | -(function($) { | |
2 | - $(document).ready(function() { | |
3 | 1 | |
4 | - var $form = $j('#formcadastro'); | |
5 | - var $submitButton = $j('#btn_enviar'); | |
6 | - var $cpfField = $j('#id_federal'); | |
7 | - var $cpfNotice = $j('<span>').html('') | |
8 | - .addClass('error resource-notice') | |
9 | - .hide() | |
10 | - .width($j('#nm_pessoa').outerWidth() - 12) | |
11 | - .appendTo($cpfField.parent()); | |
2 | +// before page is ready | |
12 | 3 | |
4 | +function hrefToCreateParent(parentType) { | |
5 | + return '/intranet/atendidos_cad.php?parent_type=' + parentType; | |
6 | +} | |
7 | + | |
8 | +function hrefToEditParent(parentType) { | |
9 | + var id = $j(buildId(parentType + '_id')).val(); | |
10 | + return hrefToCreateParent(parentType) + '&cod_pessoa_fj=' + id; | |
11 | +} | |
12 | + | |
13 | +var pessoaId = $j('#cod_pessoa_fj').val(); | |
14 | +var $form = $j('#formcadastro'); | |
15 | +var $submitButton = $j('#btn_enviar'); | |
16 | +var $cpfField = $j('#id_federal'); | |
17 | +var $cpfNotice = $j('<span>').html('') | |
18 | + .addClass('error resource-notice') | |
19 | + .hide() | |
20 | + .width($j('#nm_pessoa').outerWidth() - 12) | |
21 | + .appendTo($cpfField.parent()); | |
13 | 22 | |
14 | - var handleGetPersonByCpf = function(dataResponse) { | |
15 | - handleMessages(dataResponse.msgs); | |
16 | - $cpfNotice.hide(); | |
17 | 23 | |
18 | - var pessoaId = dataResponse.id; | |
24 | +// links pessoa pai, mãe | |
25 | + | |
26 | +var $paiNomeField = $j('#pai_nome'); | |
27 | +var $paiIdField = $j('#pai_id'); | |
28 | + | |
29 | +var $maeNomeField = $j('#mae_nome'); | |
30 | +var $maeIdField = $j('#mae_id'); | |
31 | + | |
32 | + | |
33 | +var $pessoaPaiActionBar = $j('<span>').html('') | |
34 | + .addClass('pessoa-links pessoa-pai-links') | |
35 | + .width($paiNomeField.outerWidth() - 12) | |
36 | + .appendTo($paiNomeField.parent()); | |
37 | + | |
38 | +var $pessoaMaeActionBar = $pessoaPaiActionBar.clone() | |
39 | + .removeClass('pessoa-pai-links') | |
40 | + .addClass('pessoa-mae-links') | |
41 | + .appendTo($maeNomeField.parent()); | |
19 | 42 | |
20 | - if (pessoaId && pessoaId != $j('#cod_pessoa_fj').val()) { | |
21 | - $cpfNotice.html(stringUtils.toUtf8('CPF já utilizado pela pessoa código ' + pessoaId + ', ')).slideDown('fast'); | |
43 | +var $linkToCreatePessoaPai = $j('<a>').addClass('cadastrar-pessoa-pai decorated') | |
44 | + .attr('href', hrefToCreateParent('pai')) | |
45 | + .attr('target', '_blank') | |
46 | + .html('Cadastrar pessoa') | |
47 | + .appendTo($pessoaPaiActionBar); | |
22 | 48 | |
23 | - $j('<a>').addClass('decorated') | |
24 | - .attr('href', '/intranet/atendidos_cad.php?cod_pessoa_fj=' + pessoaId) | |
25 | - .attr('target', '_blank') | |
26 | - .html('acessar cadastro.') | |
27 | - .appendTo($cpfNotice); | |
49 | +var $linkToEditPessoaPai = $j('<a>').hide() | |
50 | + .addClass('editar-pessoa-pai decorated') | |
51 | + .attr('href', hrefToEditParent('pai')) | |
52 | + .attr('target', '_blank') | |
53 | + .html('Editar pessoa') | |
54 | + .appendTo($pessoaPaiActionBar); | |
28 | 55 | |
29 | - $j('body').animate({ scrollTop: $j('body').offset().top }, 'fast'); | |
30 | - } | |
56 | +var $linkToCreatePessoaMae = $linkToCreatePessoaPai.clone() | |
57 | + .removeClass('cadastrar-pessoa-pai') | |
58 | + .addClass('cadastrar-pessoa-mae') | |
59 | + .attr('href', hrefToCreateParent('mae')) | |
60 | + .appendTo($pessoaMaeActionBar); | |
31 | 61 | |
32 | - else if ($j(document).data('submit_form_after_ajax_validation')) | |
33 | - formUtils.submit(); | |
34 | - } | |
62 | +var $linkToEditPessoaMae = $linkToEditPessoaPai.clone() | |
63 | + .removeClass('editar-pessoa-pai') | |
64 | + .addClass('editar-pessoa-mae') | |
65 | + .attr('href', hrefToEditParent('mae')) | |
66 | + .appendTo($pessoaMaeActionBar); | |
35 | 67 | |
68 | +var handleGetPersonByCpf = function(dataResponse) { | |
69 | + handleMessages(dataResponse.msgs); | |
70 | + $cpfNotice.hide(); | |
36 | 71 | |
37 | - var getPersonByCpf = function(cpf) { | |
38 | - var options = { | |
39 | - url : getResourceUrlBuilder.buildUrl('/module/Api/pessoa', 'pessoa'), | |
40 | - dataType : 'json', | |
41 | - data : { cpf : cpf }, | |
42 | - success : handleGetPersonByCpf, | |
72 | + var pessoaId = dataResponse.id; | |
43 | 73 | |
44 | - // forçado requisições sincronas, evitando erro com requisições ainda não concluidas, | |
45 | - // como no caso, onde o usuário pressiona cancelar por exemplo. | |
46 | - async : false | |
47 | - }; | |
74 | + if (pessoaId && pessoaId != $j('#cod_pessoa_fj').val()) { | |
75 | + $cpfNotice.html(stringUtils.toUtf8('CPF já utilizado pela pessoa código ' + pessoaId + ', ')).slideDown('fast'); | |
48 | 76 | |
49 | - getResource(options); | |
50 | - } | |
77 | + $j('<a>').addClass('decorated') | |
78 | + .attr('href', '/intranet/atendidos_cad.php?cod_pessoa_fj=' + pessoaId) | |
79 | + .attr('target', '_blank') | |
80 | + .html('acessar cadastro.') | |
81 | + .appendTo($cpfNotice); | |
51 | 82 | |
83 | + $j('body,html').animate({ scrollTop: $j('body').offset().top }, 'fast'); | |
84 | + } | |
52 | 85 | |
53 | - // hide or show #pais_origem_nome by #tipo_nacionalidade | |
54 | - var checkTipoNacionalidade = function() { | |
55 | - if ($j.inArray($j('#tipo_nacionalidade').val(), ['2', '3']) > -1) | |
56 | - $j('#pais_origem_nome').show(); | |
57 | - else | |
58 | - $j('#pais_origem_nome').hide(); | |
59 | - } | |
86 | + else if ($j(document).data('submit_form_after_ajax_validation')) | |
87 | + formUtils.submit(); | |
88 | +} | |
60 | 89 | |
61 | 90 | |
62 | - var validatesCpf = function() { | |
63 | - var valid = true; | |
64 | - var cpf = $cpfField.val(); | |
91 | +var getPersonByCpf = function(cpf) { | |
92 | + var options = { | |
93 | + url : getResourceUrlBuilder.buildUrl('/module/Api/pessoa', 'pessoa'), | |
94 | + dataType : 'json', | |
95 | + data : { cpf : cpf }, | |
96 | + success : handleGetPersonByCpf, | |
65 | 97 | |
66 | - $cpfNotice.hide(); | |
98 | + // forçado requisições sincronas, evitando erro com requisições ainda não concluidas, | |
99 | + // como no caso, onde o usuário pressiona cancelar por exemplo. | |
100 | + async : false | |
101 | + }; | |
67 | 102 | |
68 | - if (cpf && ! validationUtils.validatesCpf(cpf)) { | |
69 | - $cpfNotice.html(stringUtils.toUtf8('O CPF informado é inválido')).slideDown('fast'); | |
103 | + getResource(options); | |
104 | +} | |
70 | 105 | |
71 | - // não usado $cpfField.focus(), pois isto prenderia o usuário a página, | |
72 | - // caso o mesmo tenha informado um cpf invalido e clique em cancelar | |
73 | - $j('body').animate({ scrollTop: $j('body').offset().top }, 'fast'); | |
74 | 106 | |
75 | - valid = false; | |
76 | - } | |
107 | +// hide or show #pais_origem_nome by #tipo_nacionalidade | |
108 | +var checkTipoNacionalidade = function() { | |
109 | + if ($j.inArray($j('#tipo_nacionalidade').val(), ['2', '3']) > -1) | |
110 | + $j('#pais_origem_nome').show(); | |
111 | + else | |
112 | + $j('#pais_origem_nome').hide(); | |
113 | +} | |
77 | 114 | |
78 | - return valid; | |
79 | - } | |
115 | +// hide or show *certidao* fields, by #tipo_certidao_civil | |
116 | +var checkTipoCertidaoCivil = function() { | |
117 | + var $certidaoCivilFields = $j('#termo_certidao_civil, #livro_certidao_civil, #folha_certidao_civil'); | |
118 | + var $certidaoNascimentoField = $j('#certidao_nascimento'); | |
119 | + var tipoCertidaoCivil = $j('#tipo_certidao_civil').val(); | |
80 | 120 | |
121 | + $certidaoCivilFields.hide(); | |
122 | + $certidaoNascimentoField.hide(); | |
81 | 123 | |
82 | - var validatesUniquenessOfCpf = function() { | |
83 | - var cpf = $cpfField.val(); | |
124 | + if ($j.inArray(tipoCertidaoCivil, ['91', '92']) > -1) { | |
125 | + $certidaoCivilFields.show(); | |
126 | + $j('#tr_tipo_certidao_civil td:first span').html(stringUtils.toUtf8('Tipo certidão civil / Termo / Livro / Folha')); | |
127 | + } | |
84 | 128 | |
85 | - if(cpf && validatesCpf()) | |
86 | - getPersonByCpf(cpf); | |
87 | - } | |
129 | + else if (tipoCertidaoCivil == 'certidao_nascimento_novo_formato') { | |
130 | + $certidaoNascimentoField.show(); | |
131 | + $j('#tr_tipo_certidao_civil td:first span').html(stringUtils.toUtf8('Tipo certidão civil / Certidão nascimento')); | |
132 | + } | |
88 | 133 | |
134 | +} | |
89 | 135 | |
90 | - var submitForm = function(event) { | |
136 | +var validatesCpf = function() { | |
137 | + var valid = true; | |
138 | + var cpf = $cpfField.val(); | |
91 | 139 | |
92 | - if ($cpfField.val()) { | |
93 | - $j(document).data('submit_form_after_ajax_validation', true); | |
94 | - validatesUniquenessOfCpf(); | |
95 | - } | |
140 | + $cpfNotice.hide(); | |
96 | 141 | |
97 | - else | |
98 | - formUtils.submit(); | |
99 | - } | |
142 | + if (cpf && ! validationUtils.validatesCpf(cpf)) { | |
143 | + $cpfNotice.html(stringUtils.toUtf8('O CPF informado é inválido')).slideDown('fast'); | |
100 | 144 | |
145 | + // não usado $cpfField.focus(), pois isto prenderia o usuário a página, | |
146 | + // caso o mesmo tenha informado um cpf invalido e clique em cancelar | |
147 | + $j('body,html').animate({ scrollTop: $j('body').offset().top }, 'fast'); | |
101 | 148 | |
102 | - // style fixup | |
149 | + valid = false; | |
150 | + } | |
103 | 151 | |
104 | - $('#pais_origem_nome').css('width', '150px'); | |
152 | + return valid; | |
153 | +} | |
105 | 154 | |
106 | 155 | |
107 | - // bind events | |
156 | +var validatesUniquenessOfCpf = function() { | |
157 | + var cpf = $cpfField.val(); | |
108 | 158 | |
109 | - checkTipoNacionalidade(); | |
110 | - $j('#tipo_nacionalidade').change(checkTipoNacionalidade); | |
159 | + $cpfNotice.hide(); | |
111 | 160 | |
112 | - $cpfField.focusout(function() { | |
113 | - $j(document).removeData('submit_form_after_ajax_validation'); | |
114 | - validatesUniquenessOfCpf(); | |
161 | + if(cpf && validatesCpf()) | |
162 | + getPersonByCpf(cpf); | |
163 | +} | |
164 | + | |
165 | + | |
166 | +var submitForm = function(event) { | |
167 | + if ($cpfField.val()) { | |
168 | + $j(document).data('submit_form_after_ajax_validation', true); | |
169 | + validatesUniquenessOfCpf(); | |
170 | + } | |
171 | + | |
172 | + else | |
173 | + formUtils.submit(); | |
174 | +} | |
175 | + | |
176 | +// when page is ready | |
177 | + | |
178 | +$j(document).ready(function() { | |
179 | + $cpfField.focus(); | |
180 | + | |
181 | + changeVisibilityOfLinksToPessoaPai(); | |
182 | + changeVisibilityOfLinksToPessoaMae(); | |
183 | + | |
184 | + // style fixup | |
185 | + | |
186 | + $j('#pais_origem_nome').css('width', '150px'); | |
187 | + | |
188 | + // agrupado zebra por tipo documento, branco => .formlttd, colorido => .formmdtd | |
189 | + | |
190 | + $j('#tr_uf_emissao_certidao_civil td').removeClass('formmdtd'); | |
191 | + $j('#tr_carteira_trabalho td').removeClass('formlttd').addClass('formmdtd'); | |
192 | + | |
193 | + | |
194 | + // remove obrigatoriedade de determinados campos, ao criar pessoa pai ou mãe | |
195 | + // para agilizar o cadastro do filho; | |
196 | + | |
197 | + if ($j.inArray($j('#parent_type').val(), ['pai', 'mae']) > -1) { | |
198 | + var $elements = $j('#sexo, #estado_civil_id, #data_nasc, #cep_, #sigla_uf, #cidade, #bairro,\ | |
199 | + #zona_localizacao, #idtlog, #logradouro').filter('[value=]'); | |
200 | + | |
201 | + $elements.addClass('skip-presence-validation'); | |
202 | + | |
203 | + // remove '*' obrigatório ao lado do label. | |
204 | + $elements.each(function(index, element) { | |
205 | + $j(element).closest('tr').find('.campo_obrigatorio').hide(); | |
206 | + }); | |
207 | + } | |
208 | + | |
209 | + // bind events | |
210 | + | |
211 | + checkTipoNacionalidade(); | |
212 | + $j('#tipo_nacionalidade').change(checkTipoNacionalidade); | |
213 | + | |
214 | + checkTipoCertidaoCivil(); | |
215 | + $j('#tipo_certidao_civil').change(checkTipoCertidaoCivil); | |
216 | + | |
217 | + $cpfField.focusout(function() { | |
218 | + $j(document).removeData('submit_form_after_ajax_validation'); | |
219 | + validatesUniquenessOfCpf(); | |
220 | + }); | |
221 | + | |
222 | + | |
223 | + // ao clicar na lupa de pesquisa de cep, move página para cima, | |
224 | + // pois (exceto no ie), a popup de pesquisa é exibida no topo da página. | |
225 | + if (! $j.browser.msie) { | |
226 | + $j('#cep_').siblings('img').click(function(){ | |
227 | + $j('body,html').animate({ scrollTop: $j('body').offset().top }, 'fast'); | |
115 | 228 | }); |
229 | + } | |
230 | + | |
231 | + $submitButton.removeAttr('onclick'); | |
232 | + $submitButton.click(submitForm); | |
233 | + | |
234 | +}); // ready | |
235 | + | |
236 | + | |
237 | +// pessoa links callbacks | |
238 | + | |
239 | +var changeVisibilityOfLinksToPessoaParent = function(parentType) { | |
240 | + var $nomeField = $j(buildId(parentType + '_nome')); | |
241 | + var $idField = $j(buildId(parentType + '_id')); | |
242 | + var $linkToEdit = $j('.pessoa-' + parentType + '-links .editar-pessoa-' + parentType); | |
243 | + | |
244 | + if($nomeField.val() && $idField.val()) { | |
245 | + $linkToEdit.attr('href', hrefToEditParent(parentType)); | |
246 | + $linkToEdit.show().css('display', 'inline'); | |
247 | + } | |
248 | + else { | |
249 | + $nomeField.val('') | |
250 | + $idField.val(''); | |
251 | + | |
252 | + $linkToEdit.hide(); | |
253 | + } | |
254 | +} | |
255 | + | |
256 | +var changeVisibilityOfLinksToPessoaPai = function() { | |
257 | + changeVisibilityOfLinksToPessoaParent('pai'); | |
258 | +} | |
259 | + | |
260 | +var changeVisibilityOfLinksToPessoaMae = function() { | |
261 | + changeVisibilityOfLinksToPessoaParent('mae'); | |
262 | +} | |
263 | + | |
264 | + | |
265 | +// children callbacks | |
266 | + | |
267 | +var afterSetSearchFields = function() { | |
268 | + $j('body,html').animate({ scrollTop: $j('#btn_enviar').offset().top }, 'fast'); | |
269 | + $j('#complemento').focus(); | |
270 | +}; | |
271 | + | |
272 | +var afterUnsetSearchFields = function() { | |
273 | + $j('body,html').animate({ scrollTop: $j('#btn_enviar').offset().top }, 'fast'); | |
274 | + $j('#cep_').focus(); | |
275 | +}; | |
276 | + | |
277 | +function afterChangePessoa(targetWindow, parentType, parentId, parentName) { | |
278 | + targetWindow.close(); | |
279 | + | |
280 | + var $idField = $j(buildId(parentType + '_id')); | |
281 | + var $nomeField = $j(buildId(parentType + '_nome')); | |
282 | + | |
283 | + // timeout para usuario perceber mudança | |
284 | + window.setTimeout(function() { | |
285 | + messageUtils.success('Pessoa alterada com sucesso', $nomeField); | |
286 | + | |
287 | + $idField.val(parentId); | |
288 | + $nomeField.val(parentId + ' - ' +parentName); | |
289 | + $nomeField.focus(); | |
290 | + | |
291 | + changeVisibilityOfLinksToPessoaParent(parentType); | |
292 | + | |
293 | + }, 500); | |
294 | +} | |
295 | + | |
296 | + | |
297 | +// simple search options | |
298 | + | |
299 | +var simpleSearchPaiOptions = { | |
300 | + autocompleteOptions : { close : changeVisibilityOfLinksToPessoaPai } | |
301 | +}; | |
116 | 302 | |
117 | - $submitButton.removeAttr('onclick'); | |
118 | - $submitButton.click(submitForm); | |
303 | +var simpleSearchMaeOptions = { | |
304 | + autocompleteOptions : { close : changeVisibilityOfLinksToPessoaMae } | |
305 | +}; | |
119 | 306 | |
120 | - }); // ready | |
121 | -})(jQuery); | |
122 | 307 | \ No newline at end of file |
308 | +$paiNomeField.focusout(changeVisibilityOfLinksToPessoaPai); | |
309 | +$maeNomeField.focusout(changeVisibilityOfLinksToPessoaMae); | |
123 | 310 | \ No newline at end of file | ... | ... |
ieducar/modules/Cadastro/Assets/Stylesheets/Aluno.css
... | ... | @@ -5,5 +5,14 @@ |
5 | 5 | } |
6 | 6 | |
7 | 7 | .pessoa-links a { |
8 | + /* | |
9 | + obs: no firefox, ao mostrar o elemento (.show, jquery), é setado display como block, | |
10 | + para reparar isto, após chamar .show(), chamar .css('display', 'inline'); | |
11 | + */ | |
12 | + | |
8 | 13 | margin-right: 5px; |
14 | +} | |
15 | + | |
16 | +#deficiencias_chzn ul { | |
17 | + width: 307px; | |
9 | 18 | } |
10 | 19 | \ No newline at end of file | ... | ... |
ieducar/modules/Cadastro/Assets/Stylesheets/PessoaFisica.css
0 → 100644
... | ... | @@ -0,0 +1,57 @@ |
1 | +/* Por alguma razão, no chrome ao mudar o width dos elementos eles recuam 2px */ | |
2 | +@media screen and (-webkit-min-device-pixel-ratio:0) { | |
3 | + select, | |
4 | + #data_emissao_certidao_civil, | |
5 | + #termo_certidao_civil, | |
6 | + #certidao_nascimento, | |
7 | + #carteira_trabalho, | |
8 | + #data_emissao_carteira_trabalho, | |
9 | + #titulo_eleitor, | |
10 | + #data_nasc, | |
11 | + #complemento { | |
12 | + margin-left: 2px; | |
13 | + } | |
14 | +} | |
15 | + | |
16 | +select { | |
17 | + width: 184px !important; | |
18 | +} | |
19 | + | |
20 | +#estado_civil_id { | |
21 | + width: 133px !important; | |
22 | +} | |
23 | + | |
24 | +#data_emissao_rg, #uf_emissao_rg { | |
25 | + width: 135px !important; | |
26 | +} | |
27 | + | |
28 | +#data_emissao_certidao_civil, #data_emissao_carteira_trabalho, #data_nasc { | |
29 | + width: 98px; | |
30 | +} | |
31 | + | |
32 | +#termo_certidao_civil { | |
33 | + width: 121px !important; | |
34 | +} | |
35 | + | |
36 | +#carteira_trabalho, #titulo_eleitor, #complemento { | |
37 | + width: 170px; | |
38 | +} | |
39 | + | |
40 | +#zona_localizacao { | |
41 | + width: 182px !important; | |
42 | +} | |
43 | + | |
44 | +.pessoa-links { | |
45 | + display: block; | |
46 | + padding: 5px; | |
47 | + margin: 2px; | |
48 | +} | |
49 | + | |
50 | +.pessoa-links a { | |
51 | + /* | |
52 | + obs: no firefox, ao mostrar o elemento (.show, jquery), é setado display como block, | |
53 | + para reparar isto, após chamar .show(), chamar .css('display', 'inline'); | |
54 | + */ | |
55 | + | |
56 | + margin-right: 5px; | |
57 | +} | |
0 | 58 | \ No newline at end of file | ... | ... |
ieducar/modules/Cadastro/Views/AlunoController.php
... | ... | @@ -65,12 +65,12 @@ class AlunoController extends Portabilis_Controller_Page_EditController |
65 | 65 | ), |
66 | 66 | |
67 | 67 | 'mae' => array( |
68 | - 'label' => 'Mãe', | |
68 | + 'label' => 'Mãe', | |
69 | 69 | 'help' => '', |
70 | 70 | ), |
71 | 71 | |
72 | 72 | 'responsavel' => array( |
73 | - 'label' => 'Responsável', | |
73 | + 'label' => 'Responsável', | |
74 | 74 | 'help' => '', |
75 | 75 | ), |
76 | 76 | |
... | ... | @@ -80,27 +80,27 @@ class AlunoController extends Portabilis_Controller_Page_EditController |
80 | 80 | ), |
81 | 81 | |
82 | 82 | 'transporte' => array( |
83 | - 'label' => 'Transporte público', | |
83 | + 'label' => 'Transporte público', | |
84 | 84 | 'help' => '', |
85 | 85 | ), |
86 | 86 | |
87 | 87 | 'id' => array( |
88 | - 'label' => 'Código aluno', | |
88 | + 'label' => 'Código aluno', | |
89 | 89 | 'help' => '', |
90 | 90 | ), |
91 | 91 | |
92 | 92 | 'aluno_inep_id' => array( |
93 | - 'label' => 'Código inep', | |
93 | + 'label' => 'Código inep', | |
94 | 94 | 'help' => '', |
95 | 95 | ), |
96 | 96 | |
97 | 97 | 'aluno_estado_id' => array( |
98 | - 'label' => 'Código rede estadual', | |
98 | + 'label' => 'Código rede estadual', | |
99 | 99 | 'help' => '', |
100 | 100 | ), |
101 | 101 | |
102 | 102 | 'deficiencias' => array( |
103 | - 'label' => 'Deficiências / habilidades especiais', | |
103 | + 'label' => 'Deficiências / habilidades especiais', | |
104 | 104 | 'help' => '', |
105 | 105 | ) |
106 | 106 | ); |
... | ... | @@ -125,19 +125,19 @@ class AlunoController extends Portabilis_Controller_Page_EditController |
125 | 125 | { |
126 | 126 | $this->url_cancelar = '/intranet/educar_aluno_lst.php'; |
127 | 127 | |
128 | - // código rede de ensino municipal | |
128 | + // código aluno | |
129 | 129 | $options = array('label' => $this->_getLabel('id'), 'disabled' => true, |
130 | 130 | 'required' => false, 'size' => 25); |
131 | - $this->inputsHelper()->text('id', $options); | |
131 | + $this->inputsHelper()->integer('id', $options); | |
132 | 132 | |
133 | 133 | |
134 | 134 | // código aluno inep |
135 | - $options = array('label' => $this->_getLabel('aluno_inep_id'), 'required' => false, 'size' => 25); | |
136 | - $this->inputsHelper()->text('aluno_inep_id', $options); | |
135 | + $options = array('label' => $this->_getLabel('aluno_inep_id'), 'required' => false, 'size' => 25, 'max_length' => 14); | |
136 | + $this->inputsHelper()->integer('aluno_inep_id', $options); | |
137 | 137 | |
138 | 138 | // código aluno rede estadual |
139 | - $options = array('label' => $this->_getLabel('aluno_estado_id'), 'required' => false, 'size' => 25); | |
140 | - $this->inputsHelper()->text('aluno_estado_id', $options); | |
139 | + $options = array('label' => $this->_getLabel('aluno_estado_id'), 'required' => false, 'size' => 25, 'max_length' => 9); | |
140 | + $this->inputsHelper()->integer('aluno_estado_id', $options); | |
141 | 141 | |
142 | 142 | // nome |
143 | 143 | $options = array('label' => $this->_getLabel('pessoa'), 'size' => 68); |
... | ... | @@ -164,7 +164,10 @@ class AlunoController extends Portabilis_Controller_Page_EditController |
164 | 164 | // responsável |
165 | 165 | |
166 | 166 | // tipo |
167 | - $tiposResponsavel = array(null => 'Selecione', | |
167 | + | |
168 | + $label = Portabilis_String_Utils::toLatin1($this->_getLabel('responsavel')); | |
169 | + | |
170 | + $tiposResponsavel = array(null => $label, | |
168 | 171 | 'pai' => 'Pai', |
169 | 172 | 'mae' => 'Mãe', |
170 | 173 | 'outra_pessoa' => 'Outra pessoa'); |
... | ... | @@ -185,7 +188,10 @@ class AlunoController extends Portabilis_Controller_Page_EditController |
185 | 188 | |
186 | 189 | |
187 | 190 | // transporte publico |
188 | - $tiposTransporte = array(null => 'Selecione', | |
191 | + | |
192 | + $label = Portabilis_String_Utils::toLatin1($this->_getLabel('transporte')); | |
193 | + | |
194 | + $tiposTransporte = array(null => $label, | |
189 | 195 | 'nenhum' => 'Não utiliza', |
190 | 196 | 'municipal' => 'Municipal', |
191 | 197 | 'estadual' => 'Estadual'); | ... | ... |
ieducar/modules/Portabilis/Assets/Javascripts/Frontend/Inputs/SimpleSearch.js
... | ... | @@ -28,9 +28,6 @@ var defaultSimpleSearchOptions = { |
28 | 28 | attrName : undefined, |
29 | 29 | searchPath : undefined, |
30 | 30 | |
31 | - // options that can be overwritten | |
32 | - placeholder : 'Informe um valor', | |
33 | - | |
34 | 31 | // additional search params to send to api |
35 | 32 | params : {}, |
36 | 33 | |
... | ... | @@ -124,8 +121,6 @@ var simpleSearch = { |
124 | 121 | $input.data('simple-search-options', options); |
125 | 122 | $input.data('hidden-input-id', $hiddenInput); |
126 | 123 | |
127 | - $input.attr('placeholder', options.get('placeholder')); | |
128 | - | |
129 | 124 | $hiddenInput.addClass('simple-search-id'); |
130 | 125 | $hiddenInput.attr('data-for', $input.attr('id')); |
131 | 126 | ... | ... |
ieducar/modules/Portabilis/Assets/Javascripts/Utils.js
... | ... | @@ -2,7 +2,7 @@ |
2 | 2 | // jquery utils |
3 | 3 | |
4 | 4 | function buildId(id) { |
5 | - return typeof(id) == 'string' && id.length > 0 && id[0] != '#' ? '#' + id : id; | |
5 | + return typeof(id) == 'string' && id.length > 0 && id.charAt(0) != '#' ? '#' + id : id; | |
6 | 6 | } |
7 | 7 | |
8 | 8 | |
... | ... | @@ -216,67 +216,57 @@ var messageUtils = { |
216 | 216 | |
217 | 217 | notice : function(msg, targetId) { |
218 | 218 | handleMessages([{type : 'notice', msg : safeUtf8Decode(msg)}], targetId); |
219 | - } | |
220 | -}; | |
219 | + }, | |
221 | 220 | |
222 | -function handleMessages(messages, targetId, useDelayClassRemoval) { | |
223 | - | |
224 | - var $feedbackMessages = $j('#feedback-messages'); | |
225 | - var hasErrorMessages = false; | |
226 | - var hasSuccessMessages = false; | |
227 | - var hasNoticeMessages = false; | |
228 | - var delayClassRemoval = 20000; | |
229 | - | |
230 | - var $targetElement = buildId(targetId); | |
231 | - var $targetElement = $j($targetElement); | |
232 | - | |
233 | - for (var i = 0; i < messages.length; i++) { | |
234 | - if (messages[i].type == 'success') | |
235 | - var delay = 5000; | |
236 | - else if (messages[i].type != 'error') | |
237 | - var delay = 10000; | |
238 | - else | |
239 | - var delay = 20000; | |
240 | - | |
241 | - $j('<p />').hide() | |
242 | - .addClass(messages[i].type) | |
243 | - .html(safeUtf8Decode(messages[i].msg)) | |
244 | - .appendTo($feedbackMessages) | |
245 | - .fadeIn() | |
246 | - .delay(delay) | |
247 | - .fadeOut(function() { $j(this).remove() }) | |
248 | - .data('target_id', targetId); | |
249 | - | |
250 | - if (! hasErrorMessages && messages[i].type == 'error') | |
251 | - hasErrorMessages = true; | |
252 | - else if(! hasSuccessMessages && messages[i].type == 'success') | |
253 | - hasSuccessMessages = true; | |
254 | - else if(! hasNoticeMessages && messages[i].type == 'notice') | |
255 | - hasNoticeMessages = true; | |
256 | - } | |
221 | + removeStyle : function(targetElementOrId, delay) { | |
222 | + // 30 seconds, by default | |
223 | + if (delay == undefined) | |
224 | + delay = 30000; | |
257 | 225 | |
258 | - if($targetElement) { | |
259 | - if (hasErrorMessages) { | |
260 | - $targetElement.addClass('error').removeClass('success').removeClass('notice'); | |
261 | - $targetElement.first().focus(); | |
262 | - } | |
226 | + var $targetElement = $j(buildId(targetElementOrId)); | |
263 | 227 | |
264 | - else if (hasSuccessMessages) | |
265 | - $targetElement.addClass('success').removeClass('error').removeClass('notice'); | |
228 | + window.setTimeout(function() { | |
229 | + $targetElement.removeClass('success').removeClass('error').removeClass('notice'); | |
230 | + }, delay); | |
231 | + | |
232 | + }, | |
266 | 233 | |
267 | - else if (hasNoticeMessages) | |
268 | - $targetElement.addClass('notice').removeClass('error').removeClass('sucess'); | |
234 | + handleMessages : function(messages, targetElementOrId) { | |
269 | 235 | |
270 | - else | |
271 | - $targetElement.removeClass('success').removeClass('error').removeClass('notice'); | |
236 | + var $feedbackMessages = $j('#feedback-messages'); | |
237 | + var $targetElement = $j(buildId(targetElementOrId)); | |
238 | + var messagesType = []; | |
272 | 239 | |
273 | - if (useDelayClassRemoval) { | |
274 | - window.setTimeout(function() { | |
275 | - $targetElement.removeClass('success').removeClass('error').removeClass('notice'); | |
276 | - }, delayClassRemoval); | |
240 | + for (var i = 0; i < messages.length; i++) { | |
241 | + var delay = messages[i].type == 'success' ? 5000 : 10000; | |
242 | + | |
243 | + $j('<p />').hide() | |
244 | + .data('target_id', $targetElement.attr('id')) | |
245 | + .addClass(messages[i].type) | |
246 | + .html(stringUtils.toUtf8(messages[i].msg)) | |
247 | + .appendTo($feedbackMessages) | |
248 | + .fadeIn().delay(delay).fadeOut(function() { | |
249 | + $j(this).remove() | |
250 | + }); | |
251 | + | |
252 | + if (messagesType.indexOf(messages[i].type < 0)) | |
253 | + messagesType.push(messages[i].type); | |
254 | + } | |
255 | + | |
256 | + if ($targetElement) { | |
257 | + $targetElement.removeClass('error').removeClass('success').removeClass('notice'); | |
258 | + | |
259 | + $targetElement.addClass(messagesType.join(' ')); | |
260 | + messageUtils.removeStyle($targetElement); | |
261 | + | |
262 | + if (messagesType.indexOf('error') > -1) | |
263 | + $targetElement.first().focus(); | |
277 | 264 | } |
278 | 265 | } |
279 | -} | |
266 | +}; | |
267 | + | |
268 | +// backward compatibility | |
269 | +var handleMessages = messageUtils.handleMessages; | |
280 | 270 | |
281 | 271 | |
282 | 272 | // when page is ready | ... | ... |
ieducar/modules/Portabilis/Assets/Javascripts/Validator.js
... | ... | @@ -11,11 +11,14 @@ var validationUtils = { |
11 | 11 | var fields = $j("input[id^='data_'][value!=''], input[id^='dt_'][value!='']"); |
12 | 12 | |
13 | 13 | $j.each(fields, function(index, field) { |
14 | - allValid = validationUtils.validatesDate(field.value); | |
15 | - }); | |
14 | + if (! validationUtils.validatesDate(field.value)) { | |
15 | + messageUtils.error('Informe a data corretamente.', field); | |
16 | + allValid = false; | |
16 | 17 | |
17 | - if (! allValid) | |
18 | - messageUtils.error('Informe a data corretamente.', fields.first()); | |
18 | + // break jquery loop | |
19 | + return false; | |
20 | + } | |
21 | + }); | |
19 | 22 | |
20 | 23 | return allValid; |
21 | 24 | }, |
... | ... | @@ -69,7 +72,7 @@ var validationUtils = { |
69 | 72 | |
70 | 73 | function validatesPresenseOfValueInRequiredFields(additionalFields, exceptFields) { |
71 | 74 | var $emptyFields = []; |
72 | - requiredFields = document.getElementsByClassName('obrigatorio'); | |
75 | + requiredFields = $j('.obrigatorio:not(.skip-presence-validation)'); | |
73 | 76 | |
74 | 77 | if (additionalFields) |
75 | 78 | requiredFields = $j.merge(requiredFields, additionalFields); |
... | ... | @@ -78,7 +81,7 @@ function validatesPresenseOfValueInRequiredFields(additionalFields, exceptFields |
78 | 81 | simpleSearch.fixupRequiredFieldsValidation(); |
79 | 82 | |
80 | 83 | for (var i = 0; i < requiredFields.length; i++) { |
81 | - var $requiredField = $j(requiredFields[i]); | |
84 | + var $requiredField = $j(requiredFields[i]); | |
82 | 85 | |
83 | 86 | if ($requiredField.length > 0 && |
84 | 87 | /*$requiredField.css('display') != 'none' &&*/ |
... | ... | @@ -91,6 +94,8 @@ function validatesPresenseOfValueInRequiredFields(additionalFields, exceptFields |
91 | 94 | |
92 | 95 | if (! $requiredField.hasClass('error')) |
93 | 96 | $requiredField.addClass('error'); |
97 | + | |
98 | + messageUtils.removeStyle($requiredField); | |
94 | 99 | } |
95 | 100 | else if ($requiredField.length > 0) |
96 | 101 | $requiredField.removeClass('error'); | ... | ... |
ieducar/modules/Portabilis/Assets/Version.php