Um erro ocorreu enquanto processava o modelo.
Java method "com.liferay.journal.model.impl.JournalArticleImpl.getContent()" threw an exception when invoked on com.liferay.journal.model.impl.JournalArticleImpl object "{\"mvccVersion\": 2, \"ctCollectionId\": 0, \"uuid\": \"19f9c574-5a3e-8922-4b0a-51b45cfb8606\", \"id\": 105975294, \"resourcePrimKey\": 36873727, \"groupId\": 20125, \"companyId\": 20102, \"userId\": 44841, \"userName\": \"API Integração\", \"createDate\": \"2021-08-28 02:39:54.293\", \"modifiedDate\": \"2025-07-07 21:50:13.589\", \"externalReferenceCode\": \"36873725\", \"folderId\": 42112, \"classNameId\": 0, \"classPK\": 0, \"treePath\": \"/42112/\", \"articleId\": \"36873725\", \"version\": 7.5, \"urlTitle\": \"curso-tecnico-em-eventos\", \"DDMStructureKey\": \"41004\", \"DDMTemplateKey\": \"2186668\", \"defaultLanguageId\": \"pt_BR\", \"layoutUuid\": \"\", \"displayDate\": null, \"expirationDate\": null, \"reviewDate\": null, \"indexable\": true, \"smallImage\": false, \"smallImageId\": 0, \"smallImageURL\": \"\", \"lastPublishDate\": null, \"status\": 0, \"statusByUserId\": 44841, \"statusByUserName\": \"API Integração\", \"statusDate\": \"2025-07-07 21:50:13.589\"}"; see cause exception in the Java stack trace. ---- FTL stack trace ("~" means nesting-related): - Failed at: document = saxReaderUtil.read(journal... [in template "20102#20129#438394" at line 2629, column 7] ----
1<#assign
2 isEditMode = themeDisplay.getURLCurrent()?contains('p_l_mode=edit')
3/>
4<!-- Essa verificação é necessária para que não encaminhe erros de freemarker ao KIBANA ao acessar a página de edição dos componentes -->
5<#if isEditMode >
6 <h3>Modo de edição identificado</h3>
7<#else>
8
9<style>
10
11 .ssp:not(.liferay-instance) .ssp-como-me-matricular__passo-passo-card {
12 background: white;
13 width: 100%;
14 padding: 32px 52px;
15 box-shadow: 2px 5px 12px #00000040;
16 border-radius: 20px;
17 display: flex;
18 flex-wrap: nowrap;
19 justify-content: space-between;
20 align-items: center;
21 }
22
23 .ssp:not(.liferay-instance) .ssp-como-me-matricular__passo-passo-card .item-passo-icone {
24 max-width: 100%;
25 height: 72px;
26 margin-bottom: 10px;
27 }
28
29 .ssp:not(.liferay-instance) .ssp-como-me-matricular__section {
30 background: #472247;
31 border-top: 18px solid #792F7A;
32 text-align: center;
33 padding-bottom: 60px;
34 }
35
36 .ssp:not(.liferay-instance) .ssp-como-me-matricular__section .title-section-white::after {
37
38
39 display: none;
40
41
42 }
43
44 .ssp:not(.liferay-instance) .ssp-como-me-matricular__section .title-section-white {
45 color: white;
46 font-size: 44px !important;
47 margin-bottom: 32px !important;
48 text-align:unset;
49 }
50
51 .ssp:not(.liferay-instance) .ssp-como-me-matricular__passo-passo-card .item-passo-title {
52 font-size: 28px;
53 color: #B767C2;
54 font-weight: bold;
55 line-height: 28px;
56 margin: 0;
57 margin-bottom:.5rem;
58 }
59
60
61.ssp:not(.liferay-instance) .ssp-card-modal-forma-pagamento__icon-credit-card::after {
62
63 font-size: 18px;
64
65}
66
67.ssp:not(.liferay-instance) .ssp-card-modal-forma-pagamento__icon-boleto::after {
68
69 font-size: 18px;
70
71}
72
73.ssp:not(.liferay-instance) .ssp-card-modal-forma-pagamento__header {
74 align-items:center;
75 color:#454F63;
76}
77
78.ssp:not(.liferay-instance) .ssp-card-modal-forma-pagamento__btn-close::after {
79 font-family: "Font Awesome 6 Pro";
80 font-weight: normal;
81 content: "\f00d";
82 font-style: normal;
83 font-size:30px;
84 cursor: pointer;
85}
86
87.ssp:not(.liferay-instance) .ssp-card-modal-forma-pagamento__body {
88
89 padding:0 15px;
90}
91
92.ssp-card-modal-forma-pagamento__tipos-content p {
93
94 color: #454F63!important;
95 font-size: 14px!important;
96}
97
98.ssp-card-modal-forma-pagamento__tipos-content strong {
99
100 font-weight: bold!important;
101}
102
103.txt-desconto-oito{
104
105 font-weight: 600!important;
106 border: 1px solid #f2f2f2;
107 border-right: 0;
108 border-left: 0;
109 padding: 10px 0;
110}
111
112.next-mobile{
113 color: white;
114 display: flex;
115 align-items: center;
116 text-decoration: none!important;
117}
118
119.next-mobile:hover{
120 color: white;
121 font-weight: normal!important;
122}
123
124.next-mobile::before{
125 font-family: "Montserrat", sans-serif;
126 content: "Próxima";
127 font-size: 14px;
128 font-weight: 600;
129 display: block;
130 margin-right: 9px;
131 color: white;
132}
133
134.next-mobile.slick-arrow.slick-disabled{
135 opacity: 0.4;
136}
137
138
139/* Prev Mobile button */
140
141
142.prev-mobile{
143 color: white;
144 display: flex;
145 align-items: center;
146 text-decoration: none;
147 text-decoration: none!important;
148}
149
150.prev-mobile:hover{
151 color: white;
152 font-weight: normal!important;
153}
154
155.prev-mobile::after{
156 font-family: "Montserrat", sans-serif;
157 content: "Anterior";
158 font-weight: 600;
159 font-size: 14px;
160 display: block;
161 margin-left: 9px;
162 color: white;
163}
164
165.prev-mobile.slick-arrow.slick-disabled{
166 opacity: 0.4;
167}
168
169
170.icon-ao-vivo{
171 font-size: 15px!important;
172 margin: 0 3px;
173}
174
175.ssp-card-detalhe-curso__tag-ao-vivo{
176 font-family: "Montserrat";
177 font-size: 19px;
178 letter-spacing: 0px;
179 color: #F77A3B;
180}
181
182.selecione-unidade-title-custom{
183
184 width:100%!important;
185
186}
187
188.recalcular{
189 background:#F6921E!important;
190 border: solid 1px #F6921E!important;
191}
192
193.ssp-card-detalhe-curso__description{
194
195 font-family: "Montserrat";
196 max-width: 800px;
197 font-size: 20px;
198 font-weight: 500;
199 font-stretch: normal;
200 font-style: normal;
201 line-height: 1.23;
202 letter-spacing: normal;
203 margin: 10px 0;
204 text-align: left;
205 color: #4f596f;
206
207}
208
209/* nova formatação para registro de interesse */
210.ssp:not(.liferay-instance) .ssp-aviso-novas-turmas__content {
211 display: flex;
212 flex-wrap: nowrap;
213 justify-content: center;
214 align-items: center;
215 padding: 10px 0;
216}
217
218/* Novas tags para formato de curso */
219
220.ssp-card-detalhe-curso__tag-formato{
221
222 font-size:18px;
223 font-weight:600;
224
225}
226
227.icon-formato{
228 margin-right:7px;
229}
230
231.online-aovivo{
232 position:relative;
233
234}
235
236.icon-small-wifi {
237 font-size: 13px;
238 position: absolute;
239 left: -12px;
240 top: -5px;
241}
242
243.ssp-desconto-2022 .modal-extensao_txteconomiza {
244 font-size: 14px !important;
245 font-weight: 100 !important;
246}
247.ssp-desconto-2022 .ssp-card-oferta-curso__desconto-content .ssp-card-oferta-curso__valor-desconto {
248 font-weight: 100 !important;
249}
250.ssp-desconto-2022 .modal-extensao-btn-conheca {
251 border: 1px solid #474F61 !important;
252 border-radius: 4px;
253 color: #474F61 !important;
254 font-size: 15px;
255 height: 50px;
256 margin-left: 0;
257 display: flex;
258 align-items: center;
259 justify-content: center;
260}
261
262.ssp-card-modal-forma-pagamento.ssp-desconto-2022 {
263 color: #454F63;
264}
265.ssp-card-oferta-curso__item-valor-investimento.ssp-desconto-2022 {
266 font-size: 22px !important;
267}
268.ssp-card-oferta-curso__item-valor-investimento.ssp-desconto-2022 span {
269 font-size: 13px !important;
270}
271.ssp-desconto-2022 span {
272 padding: 0 !important;
273}
274
275.ssp:not(.liferay-instance) .ssp-card-registro-interesse__select {
276 appearance: none !important;
277 -webkit-appearance: none !important;
278 -moz-appearance: none !important;
279
280 background-size: 25px 25px !important;
281 background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOTIgNTEyIj48IS0tIEZvbnQgQXdlc29tZSBQcm8gNS4xNS40IGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlIChDb21tZXJjaWFsIExpY2Vuc2UpIC0tPjxwYXRoIGQ9Ik0xODcuOCAyNjQuNUw0MSA0MTIuNWMtNC43IDQuNy0xMi4zIDQuNy0xNyAwTDQuMiAzOTIuN2MtNC43LTQuNy00LjctMTIuMyAwLTE3TDEyMi43IDI1NiA0LjIgMTM2LjNjLTQuNy00LjctNC43LTEyLjMgMC0xN0wyNCA5OS41YzQuNy00LjcgMTIuMy00LjcgMTcgMGwxNDYuOCAxNDhjNC43IDQuNyA0LjcgMTIuMyAwIDE3eiIvPjwvc3ZnPg==);
282 background-repeat: no-repeat !important;
283 background-position-x: 99% !important;
284 background-position-y: 50% !important;
285}
286
287@media only screen and (max-width: 768px){
288
289 .ssp-card-detalhe-curso__tag-ao-vivo{
290 font-size: 14px;
291 display: none;
292 }
293 .ssp:not(.liferay-instance) .ssp-aviso-novas-turmas__content {
294
295 flex-wrap: wrap!important;
296
297}
298.ssp-card-modal-forma-pagamento__tipos-content p {
299
300 font-size: 12px!important;
301}
302
303
304 .ssp:not(.liferay-instance) .ssp-section-selecione-unidade {
305 padding: 30px 0!important;
306 padding-bottom: 30px !important;
307 background-color: #2a2e43;
308 }
309
310 .ssp:not(.liferay-instance) .ssp-aviso-novas-turmas__title {
311 padding-bottom: 1.25rem !important;
312 }
313
314 .selecione-unidade-title-custom{
315 width:100%!important;
316
317 }
318
319 .ssp-card-detalhe-curso__description{
320 width: 100%;
321 font-size: 15px;
322
323 }
324 .ssp-como-me-matricular__passo-passo-card {
325 padding: 30px 24px!important;
326
327 }
328
329 .emed-select-group {
330 box-shadow: none!important;
331 border: none !important;
332 border-bottom: 1px solid #6E6E6E!important;
333 border-radius: 0 !important;
334 padding: 0 !important;
335 margin: 1rem 0 !important;
336 }
337
338 .emed .ssp-card-registro-interesse__title-modal{
339 font-size: 20px!important;
340 }
341 .emed .ssp-card-registro-interesse__title-section-itens {
342 font-size: 15px!important;
343 margin-top: 0px!important;
344 margin-bottom: 0px!important;
345 color: #2a2e43;
346 }
347 .ssp-card-registro-interesse.emed [type="checkbox"] {
348 transform: scale(0.6);
349 margin-left: 2px;
350 }
351
352 .ssp-card-registro-interesse.emed label {
353 margin-left: 0px;
354 margin-right: 3px;
355 }
356}
357
358.ssp-card-oferta-curso__local-realizacao-content__title {
359 font-family: "Open Sans", sans-serif;
360 font-size: 10pt;
361 font-weight: normal;
362 color: #00488c;
363 font-weight: bold;
364 text-decoration: none!important;
365 padding-left: 10px;
366}
367
368 @media screen and (min-width: 767px){
369
370 .ssp-modal-local-realizacao{
371 width: 480px!important;
372 }
373 .ssp-card-modal-forma-pagamento__header {
374 margin-bottom: 20px;
375 }
376
377 .ssp-modal-local-realizacao__title{
378 color:#01488C !important;
379 text-align: center!important;
380 margin-left: -23px!important;
381 }
382
383 .ssp:not(.liferay-instance) .ssp-modal-local-realizacao__title {
384 font-size: 14pt;
385 }
386 .ssp:not(.liferay-instance) [data-info="data-para-matricula"] {
387 font-size: 14px !important;
388 text-align: left;
389 }
390 .ssp-modal-emed-txt-desconto-oito {
391 padding: 10px 0 0px!important;
392 }
393 .ssp:not(.liferay-instance) .ssp-modal-emed-info-valor-matricula {
394 color: #4F596F;
395 font-size: 15px!important;
396 text-align: center;
397 font-weight: 500!important;
398 }
399}
400
401@media screen and (max-width: 767px){
402 .ssp:not(.liferay-instance) .ssp-modal-local-realizacao {
403 width: 347px;
404 padding: 22px;
405 }
406 .ssp-modal {
407 padding-top: 72px!important;
408 }
409 .ssp-card-modal-forma-pagamento {
410 max-width: 335px!important;
411 }
412 .ssp-card-modal-forma-pagamento__body {
413 padding: 0px!important;
414 }
415 .ssp-modal-emed-txt-desconto-oito {
416 font-size: 12px !important;
417 }
418 .ssp-card-modal-forma-pagamento__header {
419 margin-bottom: 20px!important;
420 }
421 .txt-desconto-oito i {
422 font-size: 12px!important;
423 padding-top: 3px;
424 }
425 .txt-pague-vista {
426 font-size: 12px!important;
427 }
428 .txt-ganhe-mais {
429 font-size: 12px!important;
430 }
431 .ssp-modal-emed-info-valor-matricula {
432 color: #2A2E43!important;
433 font-size: 12px!important;
434 font-weight: 500!important;
435 }
436 .ssp:not(.liferay-instance) [data-info="data-para-matricula"] {
437 font-size: 12px !important;
438 line-height: 1.5;
439 text-align: left;
440 }
441
442 .ssp-desconto-2022 .txt-desconto-oito {
443 font-size: 14px !important;
444 }
445}
446
447@media screen and (max-width: 767px){
448 .ssp:not(.liferay-instance) .ssp-modal-local-realizacao__title {
449 font-size: 16pt;
450 }
451}
452
453.container-local-realizacao{
454 padding: 6px;
455 border: 0.5pt solid #cdd0d8;
456 border-radius: 5px;
457 width: 260px;
458 margin: 10px auto;
459 box-shadow: 1px 1px 1px #0000000F;
460}
461
462.idioma-online{
463 border:0!important;
464 box-shadow:none!important;
465}
466
467.btn-idiomas__aula-online .fa-wifi{
468 margin-right: 7px
469}
470
471.ssp-modal-local-realizacao__title{
472 color:#01488C !important;
473 text-align: center!important;
474}
475
476h6.ssp-modal-local-realizacao__title::after {
477 content: "";
478 display: block;
479 width: 20%;
480 padding-top: 10px;
481 border-bottom: 1px solid #01488C;
482 transition: .5s;
483 margin:auto;
484}
485
486.ssp:not(.liferay-instance) .ssp-card-oferta-curso__local-realizacao-content__icon-wifi::after {
487 font-family: "Font Awesome 5 Free";
488 content: '\f1eb';
489 font-weight: 600;
490 color: #00488c;
491 font-size: 8px;
492 font-style: normal;
493 margin-left: 2px;
494}
495
496.ssp:not(.liferay-instance) .ssp-card-oferta-curso__local-realizacao-content__icon-chalkboard-teacher::after {
497 font-family: "Font Awesome 5 Free";
498 content: '\f51c';
499 font-weight: 600;
500 color: #00488c;
501 font-size: 13px;
502 font-style: normal;
503}
504
505.ssp-card-oferta-curso__local-realizacao-content__icon-wifi{
506 display: flex;
507 margin-top: 0px;
508 margin-bottom: -10px;
509}
510
511.ssp:not(.liferay-instance) .ssp-modal__local-realizacao-content__icon-wifi::after {
512 font-family: "Font Awesome 5 Free";
513 content: '\f1eb';
514 font-weight: 600;
515 color: #00488c;
516 font-size: 9pt;
517 font-style: normal;
518 margin-right: 10px;
519}
520
521.ssp:not(.liferay-instance) .ssp-modal__local-realizacao-content__icon-chalkboard-teacher::after {
522 font-family: "Font Awesome 5 Free";
523 content: '\f51c';
524 font-weight: 600;
525 color: #00488c;
526 font-size: 16pt;
527 font-style: normal;
528 margin-left: -16px;
529}
530
531.ssp-modal__local-realizacao-content__icon-wifi{
532 display: flex;
533 margin-right: 2px
534}
535
536.ssp-modal-local-realizacao__texto{
537 text-align:center!important;
538}
539
540.texto-modal-emed{
541 text-align:left;
542}
543
544.nextPrevOpacity{
545 opacity: 0.3;
546}
547
548
549 .modal-extensao {
550 display: block;
551 position: fixed;
552 z-index: 2000;
553 padding-top: 100px;
554 left: 0;
555 top: 0;
556 width: 100%;
557 height: 100%;
558 overflow: auto;
559 background-color: black;
560 background-color: rgba(0, 0, 0, 0.6);
561 font-family: Montserrat;
562 }
563 .modal-extensao_content {
564 max-width: 700px;
565 width: 100%;
566 background: white;
567 border-radius: 12px;
568 padding: 30px 60px;
569 position: relative;
570 text-align: center;
571 margin: auto;
572 -webkit-animation-name: animatetop;
573 -webkit-animation-duration: 0.4s;
574 animation-name: animatetop;
575 animation-duration: 0.4s;
576 }
577 .modal-extensao-condicoes__title {
578 color: #000!important;
579 text-transform: uppercase!important;
580 font-size: 18px!important;
581
582 }
583 .modal-extensao-condicoes__subtitle {
584 color: #000!important;
585 font-size: 18px!important;
586 margin-bottom: 0px!important;
587
588 }
589 .modal-extensao__btn {
590 background-color: #5ACC75!important;
591 font-size: 14px;
592 float: right;
593 color: #ffffff;
594 min-width: 165px;
595 }
596 .modal-extensao__btn:hover {
597 background-color: #3fb25c!important;
598 border-color: transparent;
599 color: #ffffff;
600 }
601 .modal-extensao_subtitle {
602 font-size: 13.7px!important;
603 color: #2A2E43!important;
604 font-family: Montserrat, semi-bold!important;
605 font-weight: 600!important;
606 }
607 .modal-extensao_subtitle::after {
608 content: " ";
609 display: block;
610 width: 126px;
611 height: 2px;
612 background: #707070;
613 margin: 0 auto;
614 margin-top: 5px;
615 }
616 .modal-extensao_preco {
617 color: #454F63;
618 font-size: 25px;
619 font-family: Montserrat;
620 font-weight: bold;
621 }
622 .modal-extensao_ctboleto {
623 width: 50%;
624 float: left;
625 border-color: #D7D7DB;
626 border-style: solid;
627 border-width: 1px;
628 border-left: none;
629 font-size: 21px;
630 color: #454F63
631
632 }
633 .modal-extensao_ctcard {
634 width: 50%;
635 float: left;
636 border-color: #D7D7DB;
637 border-style: solid;
638 border-width: 1px;
639 border-right: none;
640 border-left: none;
641 font-size: 21px;
642 color: #454F63;
643 }
644
645 .modal-extensao_txtPag {
646 color:#2A2E43;
647 font-size: 9px;
648 font-family: Montserrat;
649 font-weight: 600;
650 display: block;
651 }
652 .modal-extensao_txteconomiza {
653 display: block;
654 font-size: 12px;
655 }
656 .modal-extensao_txtverde {
657 color: #5ACC75;
658 }
659 .modal-extensao_txtParcela {
660 color:#2A2E43;
661 font-size: 12px;
662 font-family: Montserrat;
663 font-weight: normal;
664 display: block;
665 }
666 .modal-extensao_txtporcent{
667 font-size: 9px;
668 color: #5ACC75;
669 font-weight: 600;
670 }
671 .modal-extensao-btn-conheca {
672 color: #2967F4 !important;
673 background-color: transparent;
674 border-color: #2967F4 !important;
675 box-shadow: none !important;
676 font-size: 14px !important;
677 margin-left: 10px;
678 transition: 0.3s;
679 float: left;
680 }
681 .modal-extensao-btn-conferir {
682 color: #2967F4 !important;
683 background-color: transparent;
684 border-color: #2967F4 !important;
685 box-shadow: none !important;
686 font-size: 14px !important;
687 margin-left: 10px;
688 transition: 0.3s;
689 min-width: 330px;
690 min-height: 50px;
691 }
692 .modal-extensao-btn-conferir:hover {
693 color: #ffffff!important;
694 }
695
696 .modal-extensao-btn-conheca:hover, .modal-extensao-btn-conheca:focus {
697 color: #ffffff!important;
698 }
699 .modal-extensao-btn-aluno-sim-nao {
700 color: #000000;
701 background-color: transparent;
702 border-color: #000000 !important;
703 box-shadow: none !important;
704 font-size: 14px !important;
705 margin-left: 10px;
706 transition: 0.3s;
707 min-width: 95px;
708 }
709 .modal-extensao-btn-aluno-sim-ativo {
710 color: #ffffff!important;
711 background-color: #3969EB!important;
712 border-color: #3969EB !important;
713 }
714 .modal-extensao-btn-aluno-sim-nao:hover {
715 background-color: transparent;
716 border-color: #3969EB !important;
717 color: #3969EB!important; }
718 .modal-extensao-voltar-icon,.modal-extensao-fechar {
719 font-size: 13px;
720 position: absolute;
721 top: 30px;
722 right: 20px;
723 cursor: pointer;
724 color: #000;
725 }
726
727 .modal-extensao-voltar-txticon {
728 color: #000;
729 font-size: 9px;
730 font-family: Montserrat;
731 font-weight: 600;
732 padding-left: 5px;
733 }
734 .modal-extensao-ico-check {
735 color: #5ACC75;
736 font-size: 65px;
737 }
738 .modal-extensao-aluno_txtcontent {
739 font-size: 18px!important;
740 color: #000;
741 }
742 .modal-extensao-aluno__btn {
743 background-color: #5ACC75!important;
744 font-size: 14px;
745 color: #ffffff;
746 min-width: 330px;
747 text-transform: uppercase;
748 min-height: 50px;
749 }
750 .modal-extensao-aluno__btn:hover {
751 color: #fff;
752 background-color: #3fb25c!important;
753 border-color: transparent;
754 color: #ffffff;
755 }
756 .modal-extensao-ico-percent {
757 background-color: blue;
758 color: #fff;
759 font-size: 48px;
760 border-radius: 50%;
761 padding: 10px 18px;
762 }
763
764 .btn-preco-ex-aluno,.btn-preco-padrao{
765
766 background:none;
767 border: none;
768 width: 100%;
769 display: flex;
770 align-items: center;
771 justify-content: space-between;
772 text-align: left;
773 font-size: 14px;
774 }
775
776 .custom-icon-right{
777 transform: rotate(0);
778 transition: all 0.5s;
779 }
780
781 .custom-icon-right-active{
782 transform: rotate(90deg);
783 }
784
785 .ssp-divisor{
786 width: 100%;
787 color: #D7D7DB;
788 margin: 15px 0;
789 }
790
791
792 @media only screen and (max-width: 768px){
793
794 .modal-extensao_content{
795 width:336px;
796 padding: 60px 20px 20px 20px;
797 }
798
799 .modal-extensao__btn{
800 width: 100%;
801 }
802
803 .modal-extensao-modal-extensao__btn {
804 float: initial;
805 width: 234px;
806 }
807 .modal-extensao-btn-conheca {
808 float: initial;
809 width: 100%;
810 margin-left: 0px;
811 }
812 .modal-extensao-aluno__btn {
813 min-width: 234px;
814 }
815 .modal-extensao-btn-conferir{
816 min-width: 234px;
817 margin-left: 0px;
818 }
819 }
820
821
822/* Emed */
823.ssp-btn-emed__voltar-curso {
824 border: 1px solid #474F61;
825 color: #474F61;
826 max-width: 372px;
827 margin-left: 60px;
828 height: 50px;
829 padding: 12px!important;
830}
831
832@media (max-width: 768px) {
833 .ssp-btn-emed__voltar-curso {
834 font-size: 14px;
835 margin-left: 0px!important;
836 }
837}
838
839@media only screen and (max-width: 767px){
840 .ssp:not(.liferay-instance) .ssp-emed-visita-text {
841 margin: 0;
842 transform: none;
843 margin-left: 10px;
844 }
845}
846
847.ssp:not(.liferay-instance) .icon-map-adress::after {
848 padding: 0 8px 0 0;
849}
850
851.ssp:not(.liferay-instance) .ssp-card-oferta-curso__mensagem-legal {
852 margin: 5px 0;
853}
854
855.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-info-investimento .btn-card-investimento {
856 width: 100%;
857 color: white !important;
858 font-size: 15px;
859 font-weight: 600;
860 margin: 10px 0;
861}
862
863.ssp-modal-emed-info-txt-matricula {
864 display: inline-block;
865}
866.ssp:not(.liferay-instance) .btn-card-investimento.--inscreva-se.disabled, .ssp:not(.liferay-instance) a.btn.btn-success.disabled.manutencao {
867 background: #BFC3C9 !important;
868 color: #454F63!important;
869 opacity: 1!important;
870 font-size: 14px;
871 border:none;
872}
873
874.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-info-investimento .btn-card-investimento.--bolsas.disabled {
875 background: #E5E8ED;
876 color: #454F63!important;
877 opacity: 1;
878 font-size: 14px;
879}
880
881.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-info-investimento .btn-card-investimento.--inscreva-se {
882 background-color: #5acc75;
883 text-transform: none;
884}
885
886.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-info-investimento .link-descontos-parcelamentos {
887 font-weight: 600;
888}
889
890.ssp:not(.liferay-instance) .ssp-card-oferta-curso__sem-vaga-title {
891 margin: 0;
892}
893
894.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-container {
895
896 padding: 0;
897
898}
899
900.ssp:not(.liferay-instance) .ssp-ofertas-emed__filtro-content {
901 padding: 40px 0;
902}
903
904.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-info-investimento .txt-boleto-cartao {
905 text-align: center;
906}
907.ssp-card-modal-emed-lineou {
908height: 1px;
909 background-color: #FC7834;
910 text-align: center;
911 width: 50%;
912 margin: 0px auto;
913 margin-bottom: 15px;
914}
915.ssp-card-modal-emed-lineou span {
916background-color: white;
917 position: relative;
918 top: -0.8em;
919 padding: 0 19px;
920 font-weight: bold;
921 color: #2A2E43;
922 font-size: 15px;
923}
924.ssp-modal-emed-txtValor {
925 font-size: 16px;
926 color: #04488C;
927 font-weight: bold;
928}
929.ssp-card-modal-emed-centralizaPagtos{
930max-width: 285px;margin:0 auto; margin-top: 18px!important;
931}
932.ssp-card-modal-forma-pagamento__tipos-content p {
933 font-weight: 500!important;
934}
935.textoCartoesAceitos {
936 font-weight: 500!important;
937}
938.ssp-card-modal-emed-valorObs {
939 color: #004A8C;
940 display: flex;
941 justify-content: center;
942 font-weight: 500;
943 padding-top: 11px;
944 font-size: 14px;
945}
946.ssp-card-modal-emed-boxDesconto{
947 border: 0!important;
948 font-weight: 500!important;
949 background-color: #F7F7F7;
950 border-radius: 13px;
951 padding: 20px 40px!important;
952 margin-bottom: 0!important;
953}
954.ssp-modal-emed-boxoito {
955 padding: 5px 45px!important;
956 text-align: center;
957 border-bottom: 0px!important;
958}
959.ssp-modal-emed-btfechar {
960 position: absolute;
961 right: 0;
962 display: flex;
963 flex-direction: column;
964 text-align: center;
965 line-height: 0.9;
966 top: -48px;
967 color: #E4E8F0;
968 font-weight: 500;
969 font-size: 14px;
970}
971.ssp-card-modal-forma-pagamento__btn-close:hover {
972 opacity: .6;
973}
974.ssp-card-modal-emed-ano {
975 font-weight: 500;
976 font-size: 22px;
977 color: #454F63;
978}
979.ssp:not(.liferay-instance) [data-info="msg-20-desconto"] {
980 font-weight: 500!important;
981
982}
983.ssp-card-modal-emed-valorObs i {
984 padding-top: 2px;
985 padding-right: 3px;
986}
987button[id^="btnComprarEmedModal_"] {
988 height: 50px;
989 font-weight: 600;
990 max-width: 372px;
991 width: 100%;
992 margin: 0 auto;
993 /* margin-left: 60px; */
994 display: block;
995 height: 50px;
996 padding: 12px !important;
997
998}
999.obsspan {
1000 justify-content: left;
1001 padding-bottom: 10px;
1002}
1003
1004.emed_transferencia_texto{
1005 font-size:20px!important;;
1006}
1007
1008
1009@media only screen and (max-width: 767px){
1010
1011 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__mensagem-legal {
1012 width: 100%;
1013 }
1014
1015 .ssp-card-modal-emed-valorObs {
1016 font-size: 12px;
1017 }
1018 .obsspan {
1019 justify-content: left;
1020 margin-left: -14px!important;
1021 }
1022 .ssp-modal-emed-boxoito {
1023 padding: 5px 0px!important;
1024 }
1025 .ssp-modal-emed-info-txt-matricula {
1026 display: inherit;
1027 }
1028 .ssp-card-modal-emed-boxDesconto{
1029 padding: 20px 20px!important;
1030 font-size: 12px!important;
1031 }
1032 .ssp:not(.liferay-instance) [data-info="msg-20-desconto"] {
1033 font-size: 12px !important;
1034 font-weight: 500!important;
1035 }
1036 .ssp-modal-emed-btfechar {
1037 font-size: 12px;
1038
1039 }
1040 button[id^="btnComprarEmedModal_"] {
1041 height: 50px;
1042 padding: 10px;
1043 border-radius: 4px;
1044 margin-left: 0px!important
1045 }
1046 button[id^="btnComprarEmedModal_"] span {
1047 font-size: 15px;
1048 font-weight: 600;
1049 }
1050 .ssp-btn-emed__voltar-curso_0 {
1051 font-weight: 600!important;
1052 height: 50px;
1053 border-radius: 4px!important;
1054 padding: 14px!important;
1055 }
1056
1057 .emed_transferencia_texto{
1058 font-size:16px!important;
1059 }
1060
1061}
1062
1063@media screen and (min-width: 1200px){
1064 .ssp-col-lg-without {
1065 flex: unset;
1066 width: unset;
1067 }
1068}
1069@media screen and (max-width: 1199px){
1070 .ssp-desconto-2022 .modal-extensao_txteconomiza {
1071 font-size: 12px !important;
1072 }
1073 .ssp-filters-px {
1074 padding: 0 !important;
1075 }
1076 .ssp-switch-label {
1077 margin: auto 0 !important;
1078 }
1079 .ssp-switch-label-message {
1080 margin-top: 10px;
1081 margin-bottom: 10px;
1082 padding-right: 0 !important;
1083 padding-left: 0 !important;
1084 }
1085 .ssp-container-selecione-unidade [name="unidades-ofertas"] {
1086 max-width: 316px!important;
1087 }
1088 .ssp-detalhe-curso-titulo-filter {
1089 font-size: 16px !important;
1090 }
1091}
1092
1093
1094.ssp-filters-px {
1095 padding: 0 80px;
1096}
1097/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */
1098/* !!!!!!! CSS Destinado ao switch(toggle) !!!!!!! */
1099/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */
1100.ssp-switch {
1101 position: relative;
1102 display: inline-block;
1103 width: 63px;
1104 height: 32px;
1105}
1106
1107.ssp-switch input {
1108 opacity: 0;
1109 width: 0;
1110 height: 0;
1111}
1112
1113.ssp-switch-label {
1114 margin: auto 15px;
1115 font: normal normal 600 16px/19px Montserrat;
1116 letter-spacing: 0px;
1117 color: #FFFFFF;
1118 white-space: nowrap;
1119}
1120
1121.ssp-switch-label-section {
1122 font: normal normal 600 18px/22px Montserrat;
1123 margin-bottom: 11px;
1124}
1125
1126.ssp-switch-label-message {
1127 font: normal normal medium 16px/19px Montserrat !important;
1128 letter-spacing: 0px;
1129 color: #FFFFFF;
1130 margin-top: 16px;
1131 padding-left: 25px;
1132 padding-right: 25px;
1133}
1134
1135.ssp-switch-divider {
1136 border-bottom: 1px solid #4a4d5f;
1137 width: 100%;
1138}
1139
1140.ssp:not(.liferay-instance) .ssp-detalhe-curso-titulo-filter.ssp-detalhe-curso-titulo-filter {
1141 font-size: 21px;
1142}
1143
1144.ssp-switch-slider {
1145 position: absolute;
1146 cursor: pointer;
1147 top: 0;
1148 left: 0;
1149 right: 0;
1150 bottom: 0;
1151 background-color: #00000000;
1152 border: 1px solid #FFFFFF;
1153 -webkit-transition: .4s;
1154 transition: .4s;
1155}
1156
1157.ssp-switch-slider:before {
1158 position: absolute;
1159 content: "";
1160 height: 21px;
1161 width: 21px;
1162 left: 4px;
1163 bottom: 4px;
1164 background-color: white;
1165 -webkit-transition: .4s;
1166 transition: .4s;
1167}
1168
1169input:checked + .ssp-switch-slider {
1170 background-color: #5ACC75;
1171 border: 1px solid #5ACC75;
1172}
1173input:checked + .ssp-switch-slider-secondary {
1174 background-color: #2967F4;
1175 border: 1px solid #2967F4;
1176}
1177
1178input:focus + .ssp-switch-slider {
1179 box-shadow: 0 0 1px #5ACC75;
1180}
1181input:focus + .ssp-switch-slider-secondary {
1182 box-shadow: 0 0 1px #2967F4;
1183}
1184
1185input:checked + .ssp-switch-slider:before {
1186 -webkit-transform: translateX(33px);
1187 -ms-transform: translateX(33px);
1188 transform: translateX(33px);
1189}
1190
1191/* Rounded sliders */
1192.ssp-switch-slider.round {
1193 border-radius: 34px;
1194}
1195
1196.ssp-switch-slider.round:before {
1197 border-radius: 50%;
1198}
1199
1200/*Utilizado no modal de registro de interesse #9309*/
1201option[value=""][disabled] {
1202 display: none;
1203}
1204/* Css para botao de idiomas online */
1205
1206.btn-idiomas__aula-online{
1207 background:#5382FF;
1208 color:white!important;
1209 text-decoration:none!important;
1210 padding:11px 14px;
1211 border-radius:4px;
1212 font-size:13px;
1213 font-weight:600;
1214 transition:.3s;
1215}
1216
1217.btn-idiomas__aula-online:hover{
1218 background:#5275D1;
1219 font-weight:600!important;
1220}
1221
1222.title-idioma-online__modal,.icon-wifi-title__modal{
1223 color:#5382FF!important;
1224 font-size:25px!important;
1225 margin:0!important;
1226 margin-right:5px!important;
1227}
1228
1229.btn-modal-entendi__idioma-online{
1230 font-size:16px!important;
1231 font-weight:600!important;
1232 color:#5382FF!important;
1233 border:#5382FF 1px solid!important;
1234 padding:15px 142px;
1235 width:auto!important;
1236}
1237
1238.btn-modal-entendi__idioma-online:hover{
1239 font-size:16px!important;
1240 font-weight:600!important;
1241 color:#5382FF!important;
1242 border:#5382FF 1px solid!important;
1243 background:white!important;
1244}
1245
1246@media only screen and (max-width: 768px){
1247
1248 .title-idioma-online__modal,.icon-wifi-title__modal{
1249 color:#5382FF!important;
1250 font-size:21px!important;
1251 margin:0!important;
1252 margin-right:5px!important;
1253 }
1254
1255 .btn-modal-entendi__idioma-online{
1256 font-size:16px!important;
1257 font-weight:600!important;
1258 color:#5382FF!important;
1259 border:#5382FF 1px solid!important;
1260 padding:12px 30%;
1261 width:auto!important;
1262 }
1263
1264}
1265
1266.btn-emed-lista-espera{
1267 background-color:#C560C7!important;
1268}
1269
1270.ssp:not(.liferay-instance) .ssp-container__form-select {
1271 max-width: 430px;
1272 width:100%;
1273}
1274
1275
1276@media (max-width: 768px){
1277 .ssp:not(.liferay-instance) .ssp-ofertas-emed__card {
1278 margin: 10px 20px;
1279 max-width: 335px;
1280 }
1281}
1282
1283/* css EMED Registro de interesse */
1284
1285.emed #periodo-registro-interesse,.emed #turmas-registro-interesse{
1286
1287 display: flex;
1288 align-items: center;
1289 padding: 0.625rem 0;
1290 width: 85%;
1291 justify-content: space-between;
1292 margin: 0 auto;
1293
1294}
1295
1296.ssp-card-registro-interesse__title-section-itens{
1297 margin: 10px 0 11.5px 0 !important;
1298 font-size: 20px;
1299 flex-basis: 120px;
1300}
1301
1302.ssp-card-registro-interesse__check-itens-content {
1303 display: flex!important;
1304 justify-content: center!important;
1305 flex: 0 1 90%!important;
1306}
1307.ssp-card-registro-interesse__check-item {
1308 display: flex;
1309 align-items: center;
1310 flex-basis: 100px;
1311}
1312
1313.ssp-card-registro-interesse label {
1314 margin-right: 0!important;
1315}
1316
1317.ssp-card-registro-interesse [type="checkbox"] {
1318box-shadow: 0px 0px 6px #00000029;
1319}
1320
1321#cursos-registro-interesse,#unidades-registro-interesse{
1322padding: 10px 0;
1323}
1324
1325.emed-select-group{
1326
1327box-shadow: 0px 0px 12px #00000010;
1328border: 1px solid #6E6E6E;
1329border-radius: 4px;
1330padding: 1.0rem 1.125rem;
1331margin: 1rem 0;
1332
1333}
1334
1335.ssp:not(.liferay-instance) .ssp-card-registro-interesse__add-mais > a {
1336 color: #457eff !important;
1337 }
1338
1339.emed .ssp-card-registro-interesse__btn-enviar {
1340background-color: #C560C7 !important;
1341}
1342
1343.ssp-card-registro-interesse__title-modal{
1344color:#C560C7 !important;
1345font-size: 35px !important;
1346font-weight: bold !important;
1347margin: 0 !important;
1348}
1349
1350#msg-transferencia-emed{
1351display: flex;
1352justify-content: center;
1353flex: wrap;
1354flex-direction: column;
1355align-items: center;
1356padding: 1rem 0;
1357}
1358
1359.transferencia-emed-title {
1360 color: #d266d4;
1361 display: flex;
1362 gap: 10px;
1363 font-size: 16px;
1364 font-weight: bold;
1365 align-items:center;
1366}
1367
1368.transferencia-emed-title p {
1369 margin: 0 !important;
1370 font-weight: bold !important;
1371 font-size: 16px!important;
1372}
1373
1374.transferencia-emed-link a{
1375 font-size: 15px;
1376 font-weight: 500!important;
1377 color: #792F7A;
1378 display: block;
1379 text-align: center;
1380}
1381
1382.transferencia-emed-link a:hover {
1383 font-weight: 500!important;
1384 color: #792F7A;
1385}
1386
1387.emed .ssp-card-registro-interesse__label-curso-selecionado{
1388color:#2A2E43!important;
1389font-weight: bold!important;
1390font-size: 28px;
1391}
1392
1393
1394/* css para registro de interesse atual */
1395
1396#periodo-registro-interesse,#dias-registro-interesse{
1397padding: .625rem 0;
1398}
1399
1400/* css card sem turma e registro de interesse emed*/
1401
1402.slick-area-emed {
1403 display: -webkit-box !important;
1404 display: -ms-flexbox !important;
1405 display: flex !important;
1406 -webkit-box-align: center;
1407 -ms-flex-align: center;
1408 align-items: center;
1409 -webkit-box-pack: center;
1410 -ms-flex-pack: center;
1411 justify-content: center;
1412 font-size: 0;
1413 -ms-flex-wrap: nowrap;
1414 flex-wrap: nowrap;
1415 }
1416
1417 .slick-area-emed .slick-track, .slick-area-emed .slick-list {
1418 width: 100%;
1419 }
1420
1421 @media only screen and (max-width: 1199px) and (min-width: 768px) {
1422 .slick-area-emed--md-bleed {
1423 width: 100vw;
1424 left: calc(-1 * calc(50vw - (740px / 2) + 37px))!important;
1425 }
1426 .slick-area-emed--md-bleed .slick-list {
1427 padding-left: calc(calc(50vw - (768px / 2) + 37px));
1428 padding-right: calc(calc(50vw - (768px / 2) + 37px));
1429 }
1430 .slick-area-emed--md-bleed .slick-arrow {
1431 display: none !important;
1432 }
1433 }
1434
1435 @media only screen and (min-width: 376px) and (max-width: 1024px) {
1436 .slick-area-emed--md-bleed {
1437 width: 100vw;
1438 left: calc(-1 * (calc(100vw / 2) - calc(310px / 2) - 3px));
1439 }
1440 .slick-area-emed--md-bleed .slick-list {
1441 padding-left: 2px;
1442 }
1443 .slick-area-emed--md-bleed .slick-arrow {
1444 display: none !important;
1445 }
1446 }
1447
1448 @media only screen and (max-width: 375px) {
1449
1450 .ssp-emed__card-slider-body {
1451 padding: 25px 30px;
1452 }
1453
1454
1455 .slick-area-emed--md-bleed {
1456 width: 100vw;
1457 left: calc(-1 * (calc(100vw / 2) - calc(310px / 2) - 3px));
1458 }
1459 /* .slick-area-emed--md-bleed .slick-list {
1460 padding-left: 20px;
1461
1462 } */
1463 .slick-area-emed--md-bleed .slick-arrow {
1464 display: none !important;
1465 }
1466 }
1467
1468 .slick-area__item {
1469 display: flex;
1470 flex-basis: auto;
1471 }
1472
1473 .ssp-emed__section__textCard {
1474 margin: 20px 0 0 0;
1475}
1476
1477 .ssp-emed__card-slider-body {
1478 padding: 25px 50px;
1479 min-height: 350px;
1480 display: flex;
1481 flex-direction: column;
1482 }
1483
1484 .slick-area__item {
1485 display: flex;
1486 flex-basis: auto;
1487 }
1488
1489 .ssp-emed__card-slider-body a {
1490 text-decoration: none!important;
1491 font-weight: normal;
1492 color: #78849E
1493 }
1494
1495 .ssp-emed__card-slider-body a:hover {
1496 font-weight: bold!important;
1497 color: #2a2e43
1498 }
1499
1500 .ssp-emed__card-slider {
1501 border-radius: 12px;
1502 background: transparent;
1503 -webkit-box-shadow: 0 0 12px 0 rgb(0 0 0 / 16%);
1504 box-shadow: 0 0 12px 0 rgb(0 0 0 / 16%);
1505 margin: 12px;
1506 position: relative;
1507 overflow: hidden;
1508 color: #ffffff!important;
1509 border: 1px solid #fff;
1510 min-height: 350px;
1511 }
1512
1513 .slick-initialized .slick-track {
1514 display: flex;
1515 }
1516
1517 .slick-initialized .slick-slide {
1518 height: inherit!important;
1519 display: flex;
1520 }
1521
1522 .ssp-emed__section__titleCard {
1523 font-size: 28px !important;
1524 color: #ffffff !important;
1525 margin: 0 !important;
1526 display: flex !important;
1527 justify-content: flex-start !important;
1528 flex-direction: row !important;
1529 align-items: start !important;
1530 flex-basis: 60px;
1531}
1532
1533.ssp-emed__section__titleCard i {
1534 font-size: 28px;
1535 color: #ffffff;
1536 margin: 0 0.85rem 0 0;
1537 line-height: 30px;
1538}
1539
1540.ssp-emed__section__titleCard i.fa-envelope {
1541 margin-top: 0px;
1542}
1543
1544.ssp-emed__section__titleCard i.fa-users-class {
1545 margin-top:2px;
1546}
1547
1548.ssp-emed__section__titleCard div {
1549 text-decoration: underline;
1550 font-size: 28px !important;
1551 font-weight: bold;
1552 margin: 0!important;
1553 transform:translateY(-2px)
1554}
1555
1556 .ssp-emed__section__introCard {
1557 display: block;
1558 font: 28px/30px 'Montserrat';
1559 font-weight: 600;
1560 margin: 20px 0;
1561 color: #ffffff;
1562 }
1563
1564 .ssp-emed__section__introCardCTA {
1565 font: 34px/36px 'Montserrat';
1566 font-weight: bold;
1567 display: block;
1568 margin: 20px 0;
1569 color: #ffffff;
1570 }
1571
1572 .ssp-emed__section__textCard {
1573 font: 22px/30px 'Montserrat';
1574 color: #ffffff;
1575 display: block;
1576 margin: 20px 0 0 0;
1577 position: relative;
1578 }
1579
1580 .ssp-emed__iconWrapper {
1581 display: inline-block;
1582 width: 50px;
1583 color: #B053B2;
1584 position: absolute;
1585 bottom: 0;
1586 right: 0;
1587 }
1588
1589 .ssp-emed__btn {
1590 background-color: #B053B2 ;
1591 color: #fff!important;
1592 font: normal normal 600 18px/22px Montserrat;
1593 box-shadow: 0px 4px 16px #455B6314;
1594 width: 100%;
1595 transition: .3s;
1596 padding:10px!important;
1597 }
1598
1599 .ssp-emed__btn:hover {
1600 opacity: 0.7;
1601 }
1602
1603 /*mobile emed*/
1604 @media only screen and (max-width: 1024px) {
1605 .slick-area-emed .slick-dots li.slick-active button:before {
1606 opacity: .75;
1607 color: #707070;
1608 }
1609
1610 .slick-area-emed .slick-dots li button:before {
1611 color: blue;
1612 }
1613
1614 .ssp-card-detalhe-curso__secundary-info-carga-horaria {
1615 min-width: 35%;
1616 text-align: end;
1617 }
1618 }
1619
1620 @media only screen and (max-width: 1199px) and (min-width: 768px) {
1621 .slick-area-emed--md-bleed {
1622 width: 100vw;
1623 left: calc(-1 * calc(50vw - (740px / 2) + 37px))!important;
1624 }
1625 .slick-area-emed--md-bleed .slick-list {
1626 padding-left: calc(calc(50vw - (768px / 2) + 37px));
1627 padding-right: calc(calc(50vw - (768px / 2) + 37px));
1628 }
1629 .slick-area-emed--md-bleed .slick-arrow {
1630 display: none !important;
1631 }
1632 }
1633
1634 @media only screen and (min-width: 375px) and (max-width: 1024px) {
1635 .slick-area-emed--md-bleed {
1636 width: 100vw;
1637 left: calc(-1 * (calc(100vw / 2) - calc(310px / 2) - 3px));
1638 }
1639 .slick-area-emed--md-bleed .slick-list {
1640 padding-left: 2px;
1641 }
1642 .slick-area-emed--md-bleed .slick-arrow {
1643 display: none !important;
1644 }
1645 .ssp-emed__section__titleCard {
1646 align-items: start !important;
1647 }
1648
1649 .ssp-emed__section__titleCard div {
1650 font-weight: bold !important;
1651 }
1652
1653 .ssp-emed__section__titleCard i {
1654 font-weight: 300 !important;
1655 font-size: 28px !important;
1656 margin: 3px 0.85rem 0 0;
1657 }
1658
1659 .transferencia-emed-title {
1660 font-size: 12px;
1661 }
1662
1663 .ssp:not(.liferay-instance) .ssp-card-registro-interesse__select {
1664 background-size: 15px 15px !important;
1665 padding: 0 10px;
1666 }
1667 }
1668
1669 @media only screen and (max-width: 550px) {
1670
1671 .ssp-emed__section__introCardCTA{
1672 font-size: 28px;
1673 }
1674
1675 #msg-transferencia-emed{
1676 gap:12px;
1677 }
1678
1679
1680
1681 .ssp-emed__card-slider {
1682 width:335px;
1683 min-height: 440px;
1684 }
1685
1686 .slick-initialized .slick-track {
1687 display: flex;
1688 }
1689
1690 .slick-initialized .slick-slide {
1691 height: inherit!important;
1692 display: flex;
1693 min-height: 440px;
1694 }
1695
1696 .ssp-emed__card-slider-body {
1697 padding: 25px 30px;
1698 }
1699
1700 .ssp-emed__section__titleCard div {
1701 transform: translateY(-5%);
1702 font-size: 24px!important;
1703 }
1704
1705 .slick-area-emed--md-bleed {
1706 width: 100vw;
1707 left: calc(-1 * (calc(100vw / 2) - calc(310px / 2) - 3px));
1708 }
1709 .slick-area-emed--md-bleed .slick-list {
1710 padding-left: 20px;
1711 }
1712 .slick-area-emed--md-bleed .slick-arrow {
1713 display: none !important;
1714 }
1715
1716 .ssp-card-registro-interesse__title-section-itens {
1717 flex-basis: 80px;
1718 }
1719
1720 .emed #periodo-registro-interesse, .emed #turmas-registro-interesse {
1721 width: 95%;
1722 }
1723
1724 .emed .ssp:not(.liferay-instance) .ssp-card-registro-interesse label {
1725 margin: 0!important;
1726 }
1727
1728 .emed .ssp-card-registro-interesse.emed [type="checkbox"] {
1729 margin-left: 0!important;
1730 }
1731
1732 .emed .ssp-card-registro-interesse__check-item {
1733 flex-basis: 100px;
1734 }
1735 }
1736
1737 .emed-select-group {
1738 box-shadow: 0px 0px 12px #00000010;
1739 border: 1px solid #6E6E6E;
1740 border-radius: 4px;
1741 margin: 1rem 0;
1742}
1743
1744.emed-select-group h4 {
1745 margin: 15px 0 10px 0;
1746}
1747.ssp-emed__section__textCard {
1748 margin: 20px 0 0 0;
1749}
1750
1751.ssp-card-msg-sucesso__btn{
1752 font-size: 20px;
1753}
1754
1755.ssp:not(.liferay-instance) .ssp-card-oferta-curso {
1756 height:fit-content;
1757}
1758
1759.ssp-card-duvida__bolsa-estudo{
1760
1761background:#DCE8FF;
1762padding: 30px;
1763max-width: 683px;
1764width: 100%;
1765border-radius: 14px;
1766display:flex;
1767justify-content:center;
1768align-items: center;
1769gap: 20px;
1770margin: 1rem auto;
1771
1772}
1773
1774.ssp-card-duvida__bolsa-estudo p{
1775
1776font-size: 16px!important;
1777font-weight: bold!important;
1778color: #2967F4!important;
1779margin: 0!important;;
1780
1781}
1782
1783.ssp-card-duvida__bolsa-estudo a{
1784
1785border:1px solid #2967F4!important;
1786font-size: 14px!important;
1787font-weight: 600;
1788text-decoration: none!important;
1789color: #2967F4!important;
1790padding:14px 27px;
1791border-radius:6px;
1792transition: .3s;
1793
1794}
1795
1796.ssp:not(.liferay-instance) .ssp-card-duvida__bolsa-estudo a:hover{
1797
1798font-size: 14px!important;
1799font-weight: 600!important;
1800background: #2967F4!important;
1801color:white !important;
1802opacity:1!important;
1803
1804}
1805
1806@media only screen and (max-width: 768px){
1807
1808.ssp-card-duvida__bolsa-estudo{
1809
1810 background:#DCE8FF;
1811 padding: 20px;
1812 flex-flow: column;
1813 width:90%;
1814
1815}
1816
1817.ssp-card-duvida__bolsa-estudo p{
1818
1819 max-width:200px;
1820 text-align: center;
1821
1822}
1823
1824.ssp-card-duvida__bolsa-estudo a{
1825
1826 padding:16px 27px;
1827
1828}
1829
1830}
1831
1832/* Novo Card de Oferta */
1833
1834 /* ajustes no card existente */
1835
1836 .ssp:not(.liferay-instance) .ssp-card-oferta__info-turma{
1837 margin-bottom: 30px;
1838 }
1839
1840 .ssp:not(.liferay-instance) .ssp-card-oferta__info-turma-content {
1841 margin-bottom: 5px;
1842 }
1843
1844 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__item-data-periodo{
1845 margin: 5px 0 10px 0;
1846 }
1847
1848 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__dia-hora-item {
1849 border-radius: 0;
1850 background-color: unset;
1851 padding: 0;
1852 max-width: 100%;
1853 width: 100%;
1854 margin: 0;
1855 }
1856
1857 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__dia-hora_content{
1858 margin:0;
1859 opacity: 0;
1860 transition: 0.3s;
1861 }
1862
1863 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__dia-hora-item__dia {
1864 margin: 0;
1865 font-size: 17px;
1866 font-weight: bold;
1867 font-stretch: normal;
1868 font-style: normal;
1869 line-height: 1.23;
1870 letter-spacing: normal;
1871 text-align: center;
1872 }
1873
1874 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__dia-hora-item__hora {
1875 margin: 0;
1876 font-size: 17px;
1877 font-weight: bold;
1878 font-stretch: normal;
1879 font-style: normal;
1880 line-height: 1.3;
1881 letter-spacing: normal;
1882 text-align: center;
1883 }
1884
1885 .modal-extensao_txteconomiza{
1886 font-size: 14px;
1887 color: #454F63;
1888 font-weight: 400;
1889 }
1890
1891 .btn.btn-lg {
1892 padding:.7rem;
1893
1894 }
1895
1896 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__desconto-content p{
1897 font-size: 17px;
1898 }
1899
1900 .ssp-card-oferta-curso__item-valor-investimento{
1901 font-size: 38px;
1902 }
1903
1904 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__formas-pagamento-content .ssp-card-oferta-curso__formas-pagamento-content__title{
1905 color: #454F63;
1906 font-weight: bold!important;
1907 font-size: 14px;
1908}
1909
1910.ssp:not(.liferay-instance) .ssp-card-oferta-curso__formas-pagamento-content .ssp-card-oferta-curso__formas-pagamento-content__icon-credit-card::after{
1911 color: #454F63!important;
1912 font-size: 14px;
1913}
1914
1915.ssp-card-modal-forma-pagamento__icon-boleto-e-cartao{
1916 font-size: 18px!important;
1917 margin-right: 15px!important;
1918}
1919
1920
1921.ssp:not(.liferay-instance) .ssp-card-oferta-curso__formas-pagamento-content span{
1922 color:#454F63;
1923 font-size: 14px;
1924 font-weight: 400;
1925}
1926
1927.ssp:not(.liferay-instance) .ssp-card-oferta-curso__formas-pagamento-content {
1928 padding-bottom: 0;
1929}
1930
1931 /* local realizacao */
1932
1933 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__local-realizacao-content__title {
1934 font-size: 13px;
1935 color: #00488C;
1936 font-weight: 600;
1937 text-decoration: none!important;
1938 border: 1px solid #00488C;
1939 padding: 11px 14px;
1940 transition:.3s;
1941 border-radius: 4px;
1942 display: flex;
1943 gap: 5px;
1944 align-items: center;
1945 }
1946
1947 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__local-realizacao-content__title:hover {
1948 color: white;
1949 font-weight: 600!important;
1950 background: #08488C;
1951 }
1952
1953 .container-local-realizacao {
1954 padding:0;
1955 border:0;
1956 border-radius: unset;
1957 width: 100%;
1958 margin: 10px 0 0 0;
1959 box-shadow: none;
1960 display: flex;
1961 justify-content:center;
1962 align-items: flex-end;
1963 }
1964
1965 .icon-local-realizacao{
1966 color: #00488C;
1967 font-size: 13px;
1968 }
1969
1970
1971 @media only screen and (max-width: 768px){
1972
1973 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__dia-hora-item__dia {
1974 font-size: 16px;
1975 }
1976
1977 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__title-item {
1978 font-size: 14px!important;
1979 }
1980
1981 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__valor-desconto{
1982 font-size: 15px;
1983 }
1984
1985 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__item-valor-investimento {
1986 font-size: 33px;
1987 }
1988
1989 .icon-local-realizacao {
1990 font-size: 12px;
1991 }
1992
1993 .modal-extensao_txteconomiza {
1994 font-size: 12px;
1995 }
1996
1997 .content-valores-descontos {
1998 padding-bottom: 8px!important;
1999 }
2000
2001 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__desconto-content p{
2002 font-size: 14px!important;
2003 }
2004
2005
2006 }
2007
2008
2009
2010
2011/* final ajustes no card existente */
2012
2013
2014/* Novos elementos */
2015
2016.content-data-dias{
2017 padding:20px;
2018 padding-top:0;
2019 border-bottom: none !important;
2020}
2021
2022.content-valores-descontos{
2023 padding:20px 0 0 0;
2024 opacity: 1;
2025 height:auto;
2026 transition: 0.3s;
2027 overflow: hidden;
2028 border-top: 1px #E4E8F0 solid;
2029}
2030
2031.content-valores-descontos.hide-price{
2032
2033 padding:0;
2034 opacity: 0;
2035 height:0;
2036
2037}
2038
2039.content-btn-bolsa{
2040
2041 border-top: 1px #E4E8F0 solid;
2042 padding-top:20px;
2043
2044}
2045
2046.content-btn-bolsa.modifier-content-show{
2047
2048 padding-bottom: 20px;
2049
2050}
2051
2052.content-btn-bolsa.modifier-content-show .ou-separator-desconto{
2053 display:none;
2054}
2055
2056.content-btn-bolsa.modifier-content-show .btn-show-price{
2057 display:none;
2058}
2059
2060.content-buttons{
2061
2062 padding:20px 0 0 0;
2063
2064}
2065
2066.block-valor-desconto{
2067
2068 background-color:#F2F6FF;
2069 padding: 30px 10px 15px 10px;
2070 border-radius:12px;
2071 position: relative;
2072
2073}
2074
2075.block-valor-desconto .ssp-card-oferta-curso__item-valor-investimento span {
2076 font-size: 18px;
2077}
2078
2079.block-valor-total{
2080
2081 background-color:#F2F6FF;
2082 padding:15px 10px;
2083 border-radius:12px;
2084 position: relative;
2085
2086}
2087
2088.block-valor-total .ssp-card-oferta-curso__title-item{
2089 font-size: 16px!important;
2090 color: #454F63!important;
2091 font-weight:500!important;
2092}
2093
2094.block-valor-total .ssp-card-oferta-curso__item-valor-investimento{
2095 font-size:22px;
2096}
2097
2098.block-valor-total .ssp-card-oferta-curso__item-valor-investimento span{
2099 font-size:11px;
2100}
2101
2102.block-valor-total .ssp-card-oferta-curso__desconto-content p{
2103 font-size:14px;
2104 font-weight: 500;
2105}
2106
2107.tag-label-desconto{
2108
2109background-color:#B6FDCF;
2110border-radius: 15px;
2111padding:5px;
2112margin: -50px 20px 10px 20px;
2113
2114}
2115
2116.tag-label-desconto span, .tag-label-desconto small{
2117font-size: 16px!important;
2118font-weight: bold!important;
2119color: #454F63!important;
2120}
2121
2122
2123
2124.ou-separator-desconto{
2125 font-size: 16px;
2126 color: #454F63;
2127 font-weight: bold;
2128 display:flex;
2129 flex-wrap: nowrap;
2130 align-items: center;
2131 justify-content:space-between;
2132 gap: 15px;
2133 padding:20px 0;
2134}
2135
2136.ou-separator-desconto::after{
2137 content: "";
2138 height:2px;
2139 background-color:#E4E8F0;
2140 width: 100%;
2141 display: block;
2142}
2143
2144.ou-separator-desconto::before{
2145 content: "";
2146 height:2px;
2147 background-color:#E4E8F0;
2148 width: 100%;
2149 display: block;
2150}
2151
2152.btn-show-price{
2153
2154 background: unset;
2155 border: 0;
2156 font-size: 14px!important;
2157 color: #454F63!important;
2158
2159}
2160
2161.btn-show-price p{
2162 margin: 0 !important;
2163}
2164
2165.btn-show-price span{
2166 text-decoration: underline;
2167 font-weight: bold;
2168}
2169
2170@media only screen and (max-width: 768px){
2171
2172 .content-data-dias{
2173
2174 padding:20px 0;
2175
2176 }
2177
2178 .ssp-card-oferta-curso__local-realizacao-content__title {
2179
2180 font-size: 14px;
2181 display:flex;
2182 align-items: center;
2183 gap: 5px;
2184 padding: 10px 13px;
2185 }
2186
2187 .ssp-card-oferta-curso__local-realizacao-content__title i{
2188
2189 font-size: 11px;
2190 }
2191
2192 .tag-label-desconto span, .tag-label-desconto small {
2193 font-size: 13px!important;
2194 }
2195
2196 .tag-label-desconto {
2197 padding: 5px;
2198 margin: -50px 12px 10px 12px;
2199 }
2200
2201 .block-valor-desconto .ssp-card-oferta-curso__item-valor-investimento span {
2202 font-size: 18px;
2203 }
2204
2205 .content-buttons {
2206 padding: 10px 0 0 0;
2207 }
2208
2209
2210}
2211
2212/*final Novo card de ofertas*/
2213
2214/* form aprendizagem */
2215
2216[data-modal="modal"]{
2217 background-color: rgba(0,0,0,0.7);
2218 backdrop-filter: blur(10px);
2219 display:none;
2220}
2221
2222[data-modal="close-form-modal"]{
2223
2224 font-size: 22px;
2225 background: unset!important;
2226 color: white!important;
2227 display: flex;
2228 align-items: center;
2229 margin: 0;
2230 padding: 0;
2231 position:absolute;
2232 right:0;
2233 border:0;
2234 gap:5px;
2235 right: 2%;
2236 top: -2%;
2237
2238}
2239
2240[data-modal="close-form-modal"] i{
2241
2242 font-size:43px;
2243 height:fit-content;
2244
2245}
2246
2247.open-modal-form{
2248 position: fixed;
2249 top: 0;
2250 width: 100%;
2251 height: 100%;
2252 z-index: 100;
2253 display: flex;
2254 justify-content: center;
2255 align-items: center;
2256 overflow:auto;
2257
2258}
2259
2260.open-modal-form .ssp_ct_form_programe{
2261 animation-name: animatetop;
2262 animation-duration: .4s;
2263 position:relative;
2264}
2265
2266label .reference-mark {
2267color:#78849e;
2268}
2269.lexicon-icon-asterisk {
2270 color:#78849e;
2271}
2272.lexicon-icon-reload {
2273 margin-left:10px;
2274}
2275.ssp_title_form_programe{
2276 font-size: 42px!important;
2277 color: #ffffff!important;
2278 font-family: "Montserrat",sans-serif;
2279 font-weight:600;
2280 text-align:left;
2281}
2282.ssp_subtitle_form_programe {
2283 margin-top:0px!important;
2284
2285}
2286.ssp_subtitle_form_programe{
2287 font-size: 20px!important;
2288 color: #ffffff!important;
2289 font-family: "Montserrat",sans-serif;
2290 font-weight:600;
2291 text-align:left;
2292}
2293.lfr-ddm-form-page {
2294background-color: #fff;
2295border-radius: 12px 12px 0px 0px;
2296padding: 35px 15px!important;
2297}
2298.ssp:not(.liferay-instance) .form-group label {
2299 color: #78849E;
2300 font: normal normal 600 16px/19px Montserrat;
2301 padding-bottom: 10px;
2302}
2303.lfr-ddm-form-page-description {
2304display: none!important;
2305}
2306.lfr-ddm-form-page-title {
2307display: none!important;
2308}
2309.lfr-ddm-form-submit {
2310background-color: #0380F0;
2311 text-align: center;
2312 float: none!important;
2313 border: 1px solid #0380F0;
2314 border-radius: 6px;
2315 font-size: 16px;
2316 width: 245px;
2317 height: 50px;
2318}
2319.lfr-ddm-form-pagination-controls {
2320background-color: #fff;
2321 text-align: center;
2322 border-radius: 0px 0px 12px 12px;
2323 padding-bottom: 25px;
2324}
2325.ddm-form-name {
2326display: none!important;
2327}
2328.ddm-form-description {
2329display: none!important;
2330}
2331.ddm-form-builder-app {
2332margin-top:35px;
2333}
2334.taglib-captcha {
2335 display: flex;
2336}
2337.input-text-wrapper {
2338 left: 20px;
2339}
2340.lfr-ddm-form-pagination-controls {
2341 padding-top:0px!important;
2342 display:flex;
2343 justify-content:center;
2344 align-items: center;
2345 flex-flow:column;
2346}
2347@media only screen and (max-width: 1024px) {
2348
2349.open-modal-form{
2350
2351 align-items: flex-start;
2352
2353}
2354
2355.ddm-form-builder-app {
2356 margin-top: 15px;
2357}
2358
2359.ssp_title_form_programe{
2360font-size: 34px!important;
2361line-height: 1.2!important;
2362}
2363.ssp_subtitle_form_programe{
2364font-size:18px!important;
2365}
2366.taglib-captcha {
2367 display:block;
2368}
2369.input-text-wrapper {
2370 left:0;
2371}
2372.ssp_ct_form_programe {
2373 padding:0px;
2374 max-width:100%;
2375 padding:40px 20px;
2376}
2377
2378[data-modal="close-form-modal"]{
2379
2380 right: 20px;
2381 top: 0;
2382
2383}
2384
2385}
2386
2387.ssp:not(.liferay-instance) a.btn.btn-success.disabled{
2388 pointer-events: none;
2389 opacity: 0.5 !important;
2390 color: #FFF !important;
2391 background-color: #4CBF69 !important;
2392 cursor: not-allowed;
2393 border: none !important;
2394 font-size: 0.9rem !important;
2395}
2396
2397.slick-list.draggable {
2398 height: auto !important;
2399}
2400
2401.ssp:not(.liferay-instance) .ssp-image-opacity {
2402
2403 opacity: 1;
2404 object-fit: cover;
2405 object-position: center;
2406
2407}
2408
2409.ssp-option-group {
2410 text-align: left;
2411 font: normal normal 600 15px/19px Montserrat;
2412 letter-spacing: 0px;
2413 color: #004A8C;
2414}
2415.ssp-option {
2416 text-align: left;
2417 font: normal normal normal 15px/19px Montserrat;
2418 letter-spacing: 0px;
2419 color: #656565;
2420}
2421@media only screen and (max-width: 768px){
2422 .ssp-option-group {
2423 font: normal normal 600 15px/19px Montserrat;
2424 }
2425 .ssp-option {
2426 font: normal normal normal 15px/19px Montserrat;
2427 }
2428}
2429
2430.open-modal-form.lfr-ddm__default-page-header{
2431 display:none;
2432}
2433
2434/* css para funcionalidade de híbrido */
2435
2436.ssp-emed__vantagens-content.livre span{
2437 color: #FF9057!important;
2438}
2439.ssp-emed__vantagens-content.livre a:hover {
2440 color: white;
2441 background-color: #FF9057!important;;
2442 border: 1px solid #FF9057!important;;
2443}
2444.ssp-emed__vantagens-content.tecnico span{
2445 color: #F7BD23!important;
2446}
2447.ssp-emed__vantagens-content.tecnico a:hover {
2448 color: white;
2449 background-color: #F7BD23!important;;
2450 border: 1px solid #F7BD23!important;;
2451}
2452.ssp-emed__vantagens-content.ensino-medio-tecnico span{
2453 color: #C761CB!important;
2454}
2455.ssp-emed__vantagens-content.ensino-medio-tecnico a:hover{
2456 color: white;
2457 background-color: #C761CB!important;;
2458 border: 1px solid #C761CB!important;;
2459}
2460.ssp-emed__vantagens-content.extensao span{
2461 color: #3ECCA6!important;
2462}
2463.ssp-emed__vantagens-content.extensao a:hover{
2464 color: white;
2465 background-color: #3ECCA6!important;
2466 border: 1px solid #3ECCA6!important;
2467}
2468
2469/* Transferencias EMED */
2470
2471.emed-transferencias-space{
2472 max-width: 772px;
2473}
2474
2475.card-transferencias-emed {
2476 text-align: left;
2477}
2478
2479.card-transferencias-emed .ssp-emed__card-slider-body{
2480 padding: 30px;
2481}
2482
2483.card-pre-inscricao {
2484 text-align: center;
2485}
2486
2487.card-pre-inscricao .ssp-emed__card-slider-body{
2488 justify-content: space-evenly;
2489}
2490
2491.footer-card-card-pre-inscricao{
2492 margin-top: 48px;
2493 }
2494
2495.card-transferencias-emed, .card-pre-inscricao{
2496 span, strong{
2497 font-size: 24px;
2498 }
2499 span{
2500 font-weight: 500;
2501 }
2502 strong{
2503 font-weight: 700;
2504 }
2505 .transferencias-emed-rodape{
2506 margin-top:25px;
2507 span{
2508 font-size:0.9rem;
2509 font-weight: 400;
2510 }
2511 }
2512}
2513
2514@media only screen and (max-width: 768px){
2515 .card-pre-inscricao {
2516 text-align: left;
2517 }
2518
2519 .footer-card-card-pre-inscricao{
2520 margin-top: 24px;
2521 }
2522
2523 .footer-card-card-pre-inscricao strong{
2524 margin-top: 24px;
2525 font-size: 24px!important;
2526 }
2527
2528 .card-pre-inscricao .ssp-emed__card-slider {
2529 width: 100%;
2530 max-width: 329px;
2531 min-height: 390px;
2532 margin: 0;
2533 }
2534
2535 .card-pre-inscricao .ssp-emed__card-slider:nth-child(n+2){
2536 margin: 12px;
2537 }
2538
2539 .card-transferencias-emed, .card-pre-inscricao{
2540 span, strong{
2541 font-size: 16px;
2542 }
2543 .ssp-emed__section__titleCard{
2544 flex-basis: 0;
2545 margin-bottom: 24px!important;
2546 align-items: center!important;
2547 }
2548
2549 .ssp-emed__section__titleCard i{
2550 font-size: 24px!important;
2551 }
2552
2553 .ssp-emed__section__titleCard div{
2554 font-size: 20px !important;
2555 }
2556 }
2557
2558 .slick-area__item.card-pre-inscricao{
2559 min-height: 390px!important;
2560 }
2561
2562 .card-transferencias-emed .ssp-emed__card-slider{
2563 margin: 0;
2564 }
2565
2566 .card-transferencias-emed .ssp-emed__card-slider{
2567 margin: 0;
2568 min-height: 300px;
2569 }
2570
2571 .card-transferencias-emed .col-md-12{
2572 padding: 0;
2573 }
2574
2575 .card-transferencias-emed .transferencias-emed-rodape span{
2576 font-size: 12px;
2577 }
2578
2579 .ssp-ofertas-emed__filtro-content .btn-filtro{
2580 width:156px !important;
2581 font-size:14px !important;
2582 }
2583
2584 #titulo-emed{
2585 text-transform: uppercase;
2586 }
2587
2588 .emed-transferencias-space div:nth-child(n+2){
2589 padding-left:0;
2590 }
2591
2592 .emed-transferencias-space .slick-area-emed--md-bleed{
2593 position: inherit;
2594 }
2595
2596}
2597
2598</style>
2599
2600
2601 <#assign
2602
2603 prefix = "ssp"
2604 nomeVocabularioTipoCurso = 'tipo-de-curso'
2605
2606
2607 nomeVocabularioUnidades = 'unidades'
2608
2609 nomeVocabularioFormato = 'formato'
2610
2611 nomeFormato = ""
2612 nomeVocabularioModalidade = 'modalidade'
2613
2614 nomeModalidade = ""
2615
2616 normalizer = serviceLocator.findService("com.liferay.portal.kernel.util.FriendlyURLNormalizer")
2617
2618 journalArticle = getJournalArticle()
2619 />
2620
2621 <#if journalArticle?contains("#erro#")>
2622 erro
2623 <#else>
2624
2625 <#assign
2626
2627 categories = getCategorias(journalArticle.getResourcePrimKey())
2628
2629 document = saxReaderUtil.read(journalArticle.getContent()).getRootElement()
2630
2631 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='dataEfetivaFTFieldSet']")
2632 dataEfetivaFTFieldSet = xPathSelector.selectSingleNode(document)
2633
2634 xPathSelector = saxReaderUtil.createXPath("//dynamic-element[@field-reference='dataEfetivaFT']")
2635 dataEfetiva = xPathSelector.selectSingleNode(document)
2636
2637 dataEfetivaSTR = dataEfetiva.elementText("dynamic-content")?string
2638
2639 articleId = journalArticle.getArticleId()
2640
2641 codigoFT = getStringValue(document,'codigoFT')
2642
2643 tituloComercial = journalArticle.getTitle()
2644
2645 objetivo = getStringValue(dataEfetivaFTFieldSet, 'objetivoComercial')
2646
2647 cargaHoraria = getStringValue(dataEfetivaFTFieldSet, 'cargaHorariaTotalFT')
2648
2649 oQueVouAprenderComercial = getStringValue(dataEfetivaFTFieldSet, 'oQueVouAprenderComercial')
2650
2651 comoVouAprenderComercial = getStringValue(dataEfetivaFTFieldSet, 'comoVouAprenderComercial')
2652
2653 possoFazerEsteCursoComercial = getStringValue(dataEfetivaFTFieldSet, 'possoFazerEsteCursoComercial')
2654
2655 tereiCertificadoComercial = getStringValue(dataEfetivaFTFieldSet, 'tereiCertificadoComercial')
2656
2657 tereiDiplomaComercial = getStringValue(dataEfetivaFTFieldSet, 'tereiDiplomaComercial')
2658
2659 precisoEstagiarComercial = getStringValue(dataEfetivaFTFieldSet, 'precisoEstagiarComercial')
2660
2661 comoMeMatricularComercial = getStringValue(dataEfetivaFTFieldSet, 'comoMeMatricularComercial')
2662
2663 oQueMaisPrecisoSaberComercial = getStringValue(dataEfetivaFTFieldSet, 'oQueMaisPrecisoSaberComercial')
2664
2665 normalizedModalidadeName = ""
2666
2667 />
2668
2669 <div style="display: none;">ElasticSearchNaoRetornarFiltro </div>
2670 <input type="hidden" name="codigoFT" value="${codigoFT}" />
2671 <input type="hidden" name="articleId" value="${articleId}" />
2672
2673 <input type="hidden" name="dataEfetivaSTR" value="${dataEfetivaSTR}" />
2674
2675 <input type="hidden" name="codUnidadeSelecionada" value="" />
2676
2677 <#list categories as category>
2678
2679 <#assign
2680 vocabulary = getVocabulary(category.getVocabularyId())
2681 />
2682
2683 <#if normalizer.normalize(vocabulary.getName()) == nomeVocabularioTipoCurso>
2684
2685 <#assign
2686 categoriaTipoCurso = category
2687 normalizedCategoryName = normalizer.normalize(category.getName())
2688 />
2689
2690 <input type="hidden" name="tipoCurso" value="${normalizedCategoryName}" />
2691
2692 <#elseif normalizer.normalize(vocabulary.getName()) == nomeVocabularioUnidades>
2693
2694 <input type="hidden" name="unidades" value="${category.getCategoryId()}" data-unidade="${category.getName()}" />
2695
2696 <#elseif normalizer.normalize(vocabulary.getName()) == nomeVocabularioModalidade>
2697
2698 <#assign
2699 categoriaModalidade = category
2700 normalizedModalidadeName = normalizer.normalize(category.getName())
2701
2702 />
2703
2704 <input type="hidden" name="modalidades" value="${normalizedModalidadeName}" />
2705
2706 <#elseif normalizer.normalize(vocabulary.getName()) == nomeVocabularioFormato>
2707 <#assign
2708 nomeFormato = category.getName()
2709 />
2710
2711
2712 <#assign idFormato = category.getCategoryId() />
2713 <#if nomeFormato == "Presencial + EAD" >
2714 <input type="hidden" name="formato" value="${category.getCategoryId()}" data-formato="Presencial + EAD" />
2715 <#else>
2716 <input type="hidden" name="formato" value="${category.getCategoryId()}" data-formato="${category.getName()}" />
2717 </#if>
2718 </#if>
2719 </#list>
2720
2721 <#assign xPathSelector = saxReaderUtil.createXPath("//dynamic-element[@field-reference='imagemComercial']")>
2722
2723 <#if xPathSelector.selectSingleNode(dataEfetivaFTFieldSet)?? >
2724
2725 <#assign imagemStr = xPathSelector.selectSingleNode(dataEfetivaFTFieldSet).getStringValue()>
2726 <#if imagemStr?contains("{") >
2727 <#attempt>
2728 <#assign
2729 imagemJson = jsonFactoryUtil.createJSONObject(imagemStr)
2730 imagemId = getterUtil.getInteger(imagemJson.get('fileEntryId'))
2731 dl = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppService")
2732 dlURLHelper = serviceLocator.findService("com.liferay.document.library.util.DLURLHelper")
2733 fileEntry = dl.getFileEntry(imagemId)
2734 imagemAlt = imagemJson.get('alt')
2735 imagemUrl = dlURLHelper.getDownloadURL(fileEntry, fileEntry.getFileVersion(), themeDisplay,null)
2736 />
2737 <#recover>
2738 <#assign
2739 imagemAlt = ""
2740 imagemUrl = ""
2741 />
2742 </#attempt>
2743 <#else>
2744 <#assign imagemUrl = "">
2745 </#if>
2746
2747 <#else>
2748 <#assign imagemUrl = "">
2749 </#if>
2750
2751
2752 <#assign
2753
2754 URLCodec = staticUtil["com.liferay.portal.kernel.util.URLCodec"]
2755 HtmlUtil = staticUtil["com.liferay.portal.kernel.util.HtmlUtil"]
2756 StringPool = staticUtil["com.liferay.petra.string.StringPool"]
2757 dlFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")
2758
2759 xPathSelector = saxReaderUtil.createXPath("//dynamic-element[@field-reference='quaisMateriaisComercial']")
2760 quaisMateriaisComercialPDFStr = xPathSelector.selectSingleNode(dataEfetivaFTFieldSet).getStringValue()
2761 />
2762
2763 <#if quaisMateriaisComercialPDFStr?contains('classPK') >
2764
2765 <#assign
2766
2767 PDFJson = jsonFactoryUtil.createJSONObject(quaisMateriaisComercialPDFStr)
2768 classPKNumber = PDFJson.classPK?number
2769 fileEntry = dlFileEntryLocalService.getDLFileEntry(classPKNumber)
2770 folderId = fileEntry.getFolderId()
2771 title = fileEntry.getTitle()
2772
2773 quaisMateriaisComercialPDFUrl = themeDisplay.getPortalURL() + themeDisplay.getPathContext() + "/documents/" + themeDisplay.getScopeGroupId() + StringPool.SLASH + folderId + StringPool.SLASH + URLCodec.encodeURL(HtmlUtil.unescape(title))
2774 />
2775
2776 <#else>
2777 <#assign quaisMateriaisComercialPDFUrl = "">
2778 </#if>
2779
2780 <#function getFirstArticleStructure categoryId structureName>
2781 <#attempt>
2782 <#assign searchImpl = serviceLocator.findService("br.senac.search.api.Search")>
2783 <#assign companyId = themeDisplay.getCompanyId()>
2784 <#assign groupId = themeDisplay.getScopeGroupId()>
2785 <#assign articles = searchImpl.findArticlesByCategoryIds(companyId, groupId, structureName, (categoryId gt 0)?then([categoryId],[]), true, 0, 1)>
2786 <#if articles?size gt 0>
2787 <#return articles?first>
2788 </#if>
2789 <#return ''>
2790 <#recover>
2791 <#return ''>
2792 </#attempt>
2793 </#function>
2794
2795
2796 <#assign
2797 nomeTipoCurso = categoriaTipoCurso.getName()
2798 nomeCategoriaTipoCurso = categoriaTipoCurso.getName()
2799 idTipoCurso = categoriaTipoCurso.getCategoryId()
2800 />
2801 <input type="hidden" name="nomeCategoriaTipoCurso" value="${nomeCategoriaTipoCurso}" />
2802
2803 <#if nomeTipoCurso?contains("Ensino Médio Técnico")>
2804
2805 <#assign
2806 nomeTipoCurso = categoriaTipoCurso.getName()
2807 />
2808
2809 <input type="hidden" name="idTipoCurso" value="${idTipoCurso}" />
2810
2811 <#elseif (nomeTipoCurso?contains("cnico") && !nomeTipoCurso?contains("EAD") ) || nomeTipoCurso?contains("Livre") >
2812
2813 <#assign
2814 nomeTipoCurso = "Cursos "+ categoriaTipoCurso.getName() + "s"
2815 />
2816
2817 <#else>
2818 <#assign
2819 nomeTipoCurso = categoriaTipoCurso.getName()
2820 />
2821 <#assign nomeTipoCurso = categoriaTipoCurso.getName()/>
2822
2823 </#if>
2824
2825 <#-- Caso o curso seja do formato hibrido, busca o webcontent da pasta Onde as aulas vão acontecer - hibrido -->
2826 <#if nomeFormato == "Presencial + EAD">
2827 <#assign
2828 hibridoStructure = getFirstArticleStructure(idFormato,"formato-hibrido")
2829 documentHibrido = saxReaderUtil.read(hibridoStructure.getContent())
2830 rootElement = documentHibrido.getRootElement()
2831 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='textoFormatoHibrido']")
2832 />
2833 <#if xPathSelector.selectSingleNode(rootElement)?? >
2834 <#assign txtHibrido = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim />
2835 <input type="hidden" name="textoFormatoHibrido" value="${txtHibrido}"/>
2836 </#if>
2837 </#if>
2838
2839
2840 <#-- dados de compartilhamento -->
2841 <@liferay_util["html-top"]>
2842 <meta name="image" property="og:image" content="${imagemUrl}">
2843 <meta property="og:image:width" content="1024">
2844 </@>
2845 <#-- dados de compartilhamento -->
2846
2847
2848 <#assign
2849 webContentServiceUtil = serviceLocator.findService("br.senac.services.service.WebContentServiceUtil")
2850
2851 temasMercadologicos = webContentServiceUtil.getTemasPorArticleId(themeDisplay.getScopeGroupId(), journalArticle)
2852 categoriesIdiomas = temasMercadologicos?filter(c -> c.getName()?lower_case?contains("idioma"))
2853 hasIdiomas = categoriesIdiomas?has_content
2854 hasEMED = normalizedModalidadeName?contains("ensino-medio")
2855 />
2856
2857 <#function getManutencao>
2858
2859 <#assign manutencaoStructure = getFirstArticleStructure(idTipoCurso,"manutencoes") />
2860 <#if manutencaoStructure == "">
2861 <#return {"bolsa":"", "compra":"", "rodape":""} />
2862 </#if>
2863 <#assign
2864 txtBolsa = ""
2865 txtCompra = ""
2866 txtRodape = ""
2867 content = saxReaderUtil.read(manutencaoStructure.getContent())
2868 rootElement = content.getRootElement()
2869 />
2870 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='chkManutencaoBolsa']") />
2871 <#if xPathSelector.selectSingleNode(rootElement).getStringValue()?trim == "true" >
2872 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='txtManutencaoBolsa']") />
2873 <#assign txtBolsa = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim />
2874 </#if>
2875 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='chkManutencaoCompra']") />
2876 <#if xPathSelector.selectSingleNode(rootElement).getStringValue()?trim == "true" >
2877 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='txtManutencaoCompra']") />
2878 <#assign txtCompra = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim />
2879 </#if>
2880 <#if txtCompra != "" || txtBolsa != "">
2881 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='txtManutencaoRodape']") />
2882 <#assign txtRodape = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim />
2883 </#if>
2884
2885 <#return {"bolsa": txtBolsa, "compra": txtCompra, "rodape": txtRodape} />
2886
2887 </#function>
2888
2889 <#assign manutencao = getManutencao() />
2890 <input type="hidden" id="manutencao-compra" value="${manutencao.compra}" />
2891 <input type="hidden" id="manutencao-bolsa" value="${manutencao.bolsa}" />
2892
2893 <div class="${prefix}-header-curso__image">
2894 <#if imagemUrl?contains(".webp")>
2895 <#-- Remove midias adaptaveis -->
2896 <picture>
2897 <img class="ssp-image-opacity" src="${imagemUrl}" <#if imagemAlt?length != 0> alt="${imagemAlt}"</#if> loading="lazy">
2898 </picture>
2899 <#else>
2900 <img class="ssp-image-opacity" src="${imagemUrl}" <#if imagemAlt?length != 0> alt="${imagemAlt}"</#if> loading="lazy">
2901 </#if>
2902 <div class="${prefix}-header-curso__tag-formato bg-nivel-${normalizedCategoryName}">
2903 <#if hasIdiomas>
2904 <span>${nomeTipoCurso}</span>
2905 <#else>
2906 <span>${nomeTipoCurso} | ${nomeFormato}</span>
2907 </#if>
2908 </div>
2909 </div>
2910
2911 <section id="curso-info">
2912 <div class="ssp-card-detalhe-curso__container">
2913
2914 <div class="ssp-card-detalhe-curso">
2915
2916 <div class="ssp-card-detalhe-curso__tag-color-tipo bg-nivel-${normalizedCategoryName}"></div>
2917
2918 <div class="container">
2919
2920 <#if nomeFormato?contains("ao-vivo") >
2921 <span class="ssp-card-detalhe-curso__tag-ao-vivo">Senac Online<i class="fas fa-signal-stream icon-ao-vivo" aria-hidden="true"></i>ao vivo</span>
2922
2923 </#if>
2924
2925 <div class="ssp-card-detalhe-curso__content">
2926 <div>
2927
2928 <!-- <#if nomeTipoCurso?contains("Ensino Médio Técnico")>
2929
2930 <p class="ssp-txt-emed__inscricoes-aberta">Inscrições abertas</p>
2931
2932 </#if> -->
2933
2934 <!-- rever a lógica da chama de inscricoes abertas -->
2935
2936 <h1 class="ssp-card-detalhe-curso__title">${tituloComercial}</h1>
2937 <input type="hidden" name="tituloComercial" value="${tituloComercial}" />
2938
2939 <div class="ssp-card-detalhe-curso__description">${objetivo}</div>
2940 </div>
2941 <div class="ssp-card-detalhe-curso__secunday-info-content">
2942
2943 <#if nomeFormato?contains("ao-vivo") >
2944 <span class="d-md-none">
2945 <a class="ssp-card-detalhe-curso__secunday-info-back-link" href="#" style="color: #ff9057;">${categoriaTipoCurso.getName()}</a>
2946 <#if !hasIdiomas>
2947 <span> | ${nomeFormato}</span>
2948 </#if>
2949 </span>
2950
2951 <#else>
2952 <span class="d-md-none">
2953 <a class="ssp-card-detalhe-curso__secunday-info-back-link" href="#">${categoriaTipoCurso.getName()}</a>
2954 <#if !hasIdiomas>
2955 <span> | ${nomeFormato}</span>
2956 </#if>
2957 </span>
2958
2959 </#if>
2960
2961 <p class="ssp-card-detalhe-curso__secundary-info-carga-horaria">${cargaHoraria} horas</p>
2962 </div>
2963 </div>
2964 <div class="ssp-saiba-mais-curso-accordion">
2965
2966 <#if (possoFazerEsteCursoComercial?length > 0)>
2967 <div class="ssp-saiba-mais-curso-accordion__body">
2968 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Posso fazer este curso?</div>
2969 <div class="ssp-saiba-mais-curso-accordion__contents">${possoFazerEsteCursoComercial}</div>
2970 </div>
2971
2972 </#if>
2973
2974 <#if (oQueVouAprenderComercial?length > 0) >
2975 <div class="ssp-saiba-mais-curso-accordion__body">
2976 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">O que vou aprender?</div>
2977 <div class="ssp-saiba-mais-curso-accordion__contents" id="plano-curso">${oQueVouAprenderComercial}</div>
2978 </div>
2979 </#if>
2980
2981 <#if (comoVouAprenderComercial?length > 0)>
2982 <div class="ssp-saiba-mais-curso-accordion__body">
2983 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Como vou aprender?</div>
2984 <div class="ssp-saiba-mais-curso-accordion__contents">${comoVouAprenderComercial}</div>
2985 </div>
2986 </#if>
2987
2988
2989 <div class="ssp-saiba-mais-curso-accordion__body">
2990 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Quais materiais vou precisar?</div>
2991 <#if nomeTipoCurso?contains("Ensino Médio Técnico") >
2992 <div class="ssp-saiba-mais-curso-accordion__contents">
2993 Desenvolvemos os materiais e disponibilizamos tudo para você!<br/><br/>Também temos bibliotecas físicas e virtuais, além de parceria com a Microsoft, que garante acesso à plataforma Teams para conferir aulas, avisos e materiais da sua turma.
2994 </div>
2995 <#else>
2996 <#if (quaisMateriaisComercialPDFUrl?length > 0)>
2997 <div class="ssp-saiba-mais-curso-accordion__contents">
2998 <a href="${quaisMateriaisComercialPDFUrl}" target="_blank"><i class="fa fa-download" aria-hidden="true"></i> Confira os materiais que você precisará.</a>
2999 </div>
3000 <#else>
3001 <div class="ssp-saiba-mais-curso-accordion__contents">Inicialmente, não há lista de materiais para este curso. Mas confirme em aula se será necessário comprar algum item.</div>
3002 </#if>
3003 </#if>
3004 </div>
3005
3006 <#if (tereiDiplomaComercial?length > 0)>
3007 <div class="ssp-saiba-mais-curso-accordion__body">
3008 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Terei diploma?</div>
3009 <div class="ssp-saiba-mais-curso-accordion__contents">${tereiDiplomaComercial}</div>
3010 </div>
3011 </#if>
3012
3013 <#if (tereiCertificadoComercial?length > 0)>
3014 <div class="ssp-saiba-mais-curso-accordion__body">
3015 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Terei certificado?</div>
3016 <div class="ssp-saiba-mais-curso-accordion__contents">${tereiCertificadoComercial}</div>
3017 </div>
3018 </#if>
3019
3020 <#if (comoMeMatricularComercial?length > 0)>
3021 <div class="ssp-saiba-mais-curso-accordion__body">
3022 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Como me matricular?</div>
3023 <div class="ssp-saiba-mais-curso-accordion__contents">${comoMeMatricularComercial}</div>
3024 </div>
3025 </#if>
3026
3027 <#if (precisoEstagiarComercial?length > 0)>
3028 <div class="ssp-saiba-mais-curso-accordion__body">
3029 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Preciso estagiar?</div>
3030 <div class="ssp-saiba-mais-curso-accordion__contents">${precisoEstagiarComercial}</div>
3031 </div>
3032 </#if>
3033
3034
3035 <#if (oQueMaisPrecisoSaberComercial?length > 0)>
3036 <div class="ssp-saiba-mais-curso-accordion__body">
3037 <#if nomeTipoCurso?contains("Ensino Médio Técnico") >
3038 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Estudo em outra escola, como funciona a transferência?</div>
3039 <#else>
3040 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">O que mais preciso saber?</div>
3041 </#if>
3042 <div class="ssp-saiba-mais-curso-accordion__contents">${oQueMaisPrecisoSaberComercial}</div>
3043 </div>
3044 </#if>
3045
3046 <!-- Info para EMED -->
3047
3048 <#if nomeTipoCurso?contains("Ensino Médio Técnico") >
3049
3050 <div class="ssp-emed__vantagens-content">
3051
3052 <p>Conheça <span>mais vantagens</span> do Ensino Médio Técnico no Senac.</p>
3053 <a href="/ensino-medio-tecnico" class="btn">Saiba mais</a>
3054
3055 </div>
3056
3057 <#elseif nomeFormato?contains("Presencial") && nomeFormato?contains("EAD") && !nomeTipoCurso?contains("Idioma")>
3058
3059 <!-- Info para híbrido -->
3060
3061 <div class="ssp-emed__vantagens-content ${normalizedCategoryName}">
3062
3063 <p>Quer saber mais sobre nossos <span>cursos com aulas presenciais e a distância</span>?</p>
3064 <a href="/presencial-ead" class="btn">Saiba mais</a>
3065
3066 </div>
3067
3068 <#else>
3069
3070 <!-- <div class="ssp-emed__vantagens-content ${normalizedCategoryName}">
3071
3072 <p>Conheça <span>mais vantagens</span>?</p>
3073 <a href="#" class="btn">Saiba mais</a>
3074
3075 </div> -->
3076
3077 </#if>
3078
3079
3080 <!-- Slider para cursos de Cozinheiro e Garçom -->
3081
3082 <#if codigoFT=="14125">
3083
3084 <div>
3085
3086 <h6 style="font-family: Montserrat;font-size: 20px;font-weight: 600;color: #2a2e43;padding: 15px;border-top: 1px solid #e7e7e7;">Quer participar do processo seletivo? Confira todas as etapas:</h6>
3087
3088
3089 <div class="slider-passo-passo__cursos-cozinha">
3090
3091 <div class="ssp-passo-passo-cozinheiro_card">
3092
3093 <div>
3094
3095 <h6 class="ssp-passo-passo-cozinheiro_card-title">Abertura do processo</h6>
3096
3097 <p class="ssp-passo-passo-cozinheiro_card-txt">Primeiro, confirme se você atende aos pré-requisitos para se inscrever em <a class="ssp-passo-passo-cozinheiro_card-link" href="/bolsas-de-estudo">bolsas de estudo</a>. Depois, confira no campo "Como me matricular?" o cronograma de abertura das inscrições do processo seletivo. </p>
3098
3099 </div>
3100
3101
3102 </div>
3103
3104 <div class="ssp-passo-passo-cozinheiro_card">
3105
3106 <div>
3107
3108 <h6 class="ssp-passo-passo-cozinheiro_card-title">Inscrições</h6>
3109
3110 <p class="ssp-passo-passo-cozinheiro_card-txt">Quando o processo seletivo abrir, faça login no site, acesse a página do curso, selecione a unidade e realize a inscrição, que é gratuita. As inscrições podem ser encerradas antes da data divulgada, quando alcançarmos 10 inscrições por vaga.</p>
3111
3112 </div>
3113
3114 </div>
3115
3116 <div class="ssp-passo-passo-cozinheiro_card">
3117
3118 <div>
3119
3120 <h6 class="ssp-passo-passo-cozinheiro_card-title">Convocação para entrevista</h6>
3121
3122 <p class="ssp-passo-passo-cozinheiro_card-txt">
3123 Ao finalizar sua inscrição no processo seletivo, você receberá uma confirmação no e-mail que cadastrou no nosso site. Também vamos enviar para o seu e-mail o convite para a entrevista e as orientações sobre envio dos documentos necessários.
3124 </p>
3125
3126
3127 </div>
3128
3129 </div>
3130
3131 <div class="ssp-passo-passo-cozinheiro_card">
3132
3133 <div>
3134
3135 <h6 class="ssp-passo-passo-cozinheiro_card-title">Entrevista</h6>
3136
3137 <p class="ssp-passo-passo-cozinheiro_card-txt">A entrevista será realizada presencialmente nos hotéis-escola Senac. Se você não participar, sua inscrição é cancelada automaticamente. Lembre-se: antes da entrevista, envie por e-mail os documentos necessários.
3138 </p>
3139
3140
3141 </div>
3142
3143 </div>
3144
3145 <div class="ssp-passo-passo-cozinheiro_card">
3146
3147 <div>
3148
3149 <h6 class="ssp-passo-passo-cozinheiro_card-title">Resultado</h6>
3150
3151 <p class="ssp-passo-passo-cozinheiro_card-txt">
3152 Até 7 dias depois de ter feito a entrevista, você receberá a resposta por e-mail sobre o resultado do processo seletivo.
3153 </p>
3154
3155 </div>
3156
3157 </div>
3158
3159 <div class="ssp-passo-passo-cozinheiro_card">
3160
3161 <div>
3162
3163 <h6 class="ssp-passo-passo-cozinheiro_card-title">Matrícula</h6>
3164
3165 <p class="ssp-passo-passo-cozinheiro_card-txt">
3166 Se receber a aprovação, a próxima etapa é fazer a matrícula. Lembre-se de enviar os documentos, inclusive os exames solicitados no e-mail.
3167 </p>
3168
3169 </div>
3170
3171 </div>
3172
3173 <div class="ssp-passo-passo-cozinheiro_card">
3174
3175 <div>
3176
3177 <h6 class="ssp-passo-passo-cozinheiro_card-title">Início do curso!</h6>
3178
3179 <p class="ssp-passo-passo-cozinheiro_card-txt">
3180 Teve aprovação em todas as etapas? Parabéns!
3181
3182 Sua jornada de transformação profissional
3183
3184 começará com o início das aulas. Mas se não
3185
3186 conseguiu dessa vez, não desanime. Sempre estamos com
3187
3188 vagas abertas para diversos cursos.
3189 </p>
3190
3191 </div>
3192
3193 </div>
3194
3195
3196 </div>
3197
3198 </div>
3199
3200 <#elseif codigoFT=="15390" >
3201
3202 <div>
3203
3204 <h6 style="font-family: Montserrat;font-size: 20px;font-weight: 600;color: #2a2e43;padding: 15px;border-top: 1px solid #e7e7e7;">Quer participar do processo seletivo? Confira todas as etapas:</h6>
3205
3206 <div class="slider-passo-passo__cursos-cozinha">
3207
3208 <div class="ssp-passo-passo-cozinheiro_card">
3209
3210 <div>
3211
3212 <h6 class="ssp-passo-passo-cozinheiro_card-title">Abertura do processo</h6>
3213
3214 <p class="ssp-passo-passo-cozinheiro_card-txt">Primeiro, confirme se você atende aos pré-requisitos para se inscrever em <a class="ssp-passo-passo-cozinheiro_card-link" href="/bolsas-de-estudo">bolsas de estudo</a>. Depois, confira no campo "Como me matricular?" o cronograma de abertura das inscrições do processo seletivo. </p>
3215
3216 </div>
3217
3218
3219 </div>
3220
3221 <div class="ssp-passo-passo-cozinheiro_card">
3222
3223 <div>
3224
3225 <h6 class="ssp-passo-passo-cozinheiro_card-title">Inscrições</h6>
3226
3227 <p class="ssp-passo-passo-cozinheiro_card-txt">Quando o processo seletivo abrir, faça login no site, acesse a página do curso, selecione a unidade e realize a inscrição, que é gratuita. As inscrições podem ser encerradas antes da data divulgada, quando alcançarmos 10 inscrições por vaga.</p>
3228
3229 </div>
3230
3231 </div>
3232
3233 <div class="ssp-passo-passo-cozinheiro_card">
3234
3235 <div>
3236
3237 <h6 class="ssp-passo-passo-cozinheiro_card-title">Convocação para entrevista</h6>
3238
3239 <p class="ssp-passo-passo-cozinheiro_card-txt">
3240 Ao finalizar sua inscrição no processo seletivo, você receberá uma confirmação no e-mail que cadastrou no nosso site. Também vamos enviar para o seu e-mail o convite para a entrevista e as orientações sobre envio dos documentos necessários.
3241 </p>
3242
3243
3244 </div>
3245
3246 </div>
3247
3248 <div class="ssp-passo-passo-cozinheiro_card">
3249
3250 <div>
3251
3252 <h6 class="ssp-passo-passo-cozinheiro_card-title">Entrevista</h6>
3253
3254 <p class="ssp-passo-passo-cozinheiro_card-txt">A entrevista será realizada presencialmente nos hotéis-escola Senac. Se você não participar, sua inscrição é cancelada automaticamente. Lembre-se: antes da entrevista, envie por e-mail os documentos necessários.
3255 </p>
3256
3257
3258 </div>
3259
3260 </div>
3261
3262 <div class="ssp-passo-passo-cozinheiro_card">
3263
3264 <div>
3265
3266 <h6 class="ssp-passo-passo-cozinheiro_card-title">Resultado</h6>
3267
3268 <p class="ssp-passo-passo-cozinheiro_card-txt">
3269 Até 7 dias depois de ter feito a entrevista, você receberá a resposta por e-mail sobre o resultado do processo seletivo.
3270 </p>
3271
3272 </div>
3273
3274 </div>
3275
3276 <div class="ssp-passo-passo-cozinheiro_card">
3277
3278 <div>
3279
3280 <h6 class="ssp-passo-passo-cozinheiro_card-title">Matrícula</h6>
3281
3282 <p class="ssp-passo-passo-cozinheiro_card-txt">
3283 Se receber a aprovação, a próxima etapa é fazer a matrícula. Lembre-se de enviar os documentos, inclusive os exames solicitados no e-mail.
3284 </p>
3285
3286 </div>
3287
3288 </div>
3289
3290 <div class="ssp-passo-passo-cozinheiro_card">
3291
3292 <div>
3293
3294 <h6 class="ssp-passo-passo-cozinheiro_card-title">Início do curso!</h6>
3295
3296 <p class="ssp-passo-passo-cozinheiro_card-txt">
3297 Teve aprovação em todas as etapas? Parabéns!
3298
3299 Sua jornada de transformação profissional
3300
3301 começará com o início das aulas. Mas se não
3302
3303 conseguiu dessa vez, não desanime. Sempre estamos com
3304
3305 vagas abertas para diversos cursos.
3306 </p>
3307
3308 </div>
3309
3310 </div>
3311
3312
3313 </div>
3314
3315 </div>
3316
3317 </#if>
3318
3319 <!-- Final Slider para cursos de Cozinheiro e Garçom -->
3320
3321 </div>
3322 </div>
3323 </div>
3324 </div>
3325 </section>
3326 <#assign
3327 dNoneSelectUnidade = ''
3328 mostrarUnidades = !nomeFormato?contains("ao-vivo")
3329 isEMED = normalizedCategoryName?contains("ensino-medio-tecnico")
3330 isAprendizagem = normalizedCategoryName?contains("jovem-aprendiz")
3331 />
3332
3333 <#if nomeFormato?contains("ao-vivo") >
3334 <#assign dNoneSelectUnidade = 'd-none' />
3335 </#if>
3336
3337 <#-- Obter data matricula emed -->
3338 <#if isEMED>
3339 <#function getMatriculaEMED >
3340 <#assign emedTags = getFirstArticleStructure(0,"emed-tags")
3341 document = saxReaderUtil.read(emedTags.getContent())
3342 rootElement = document.getRootElement()
3343 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='dataInicioPeriodoMatricula']") />
3344 <#if xPathSelector.selectSingleNode(rootElement)?? >
3345 <#assign dataInicio = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim />
3346 </#if>
3347 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='horaInicioMatricula']") />
3348 <#if xPathSelector.selectSingleNode(rootElement)?? >
3349 <#assign horaInicio = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim />
3350 </#if>
3351
3352 <#setting time_zone="America/Sao_Paulo">
3353 <#assign today = .now?datetime />
3354 <#assign emeddatetime = (dataInicio + " " + horaInicio)?datetime["yyyy-MM-dd HH:mm"] />
3355 <#assign matriculaAberta = today gt emeddatetime />
3356
3357 <#return {"dataInicio" : dataInicio, "horaInicio" : horaInicio, "aberta" : matriculaAberta}>
3358 </#function>
3359
3360 <#assign matriculaEMED = getMatriculaEMED() />
3361
3362 </#if>
3363
3364 <#if isEMED || isAprendizagem>
3365 <section class="ssp-section-selecione-unidade ssp-section ${dNoneSelectUnidade}" style="background:#2B2E41">
3366 <div class="container">
3367
3368 <div class="ssp-container-selecione-unidade" style="max-width: 815px; margin: auto;">
3369 <div class="ssp-container_ofertas__title">
3370 <h3 class="ssp-aviso-novas-turmas__title selecione-unidade-title-custom">
3371
3372 Selecione uma unidade para conhecer as próximas turmas:
3373
3374 </h3>
3375 </div>
3376
3377 <div class="ssp-container__form-select">
3378 <select id="unidades-ofertas" class="form-control" name="unidades-ofertas">
3379 <option value="">Selecione uma unidade</option>
3380 </select>
3381 </div>
3382
3383 </div>
3384
3385 <div class="ssp-ofertas__box-endereco-unidade">
3386 <i class="icon-map-adress"></i>
3387 <a href="" target="_blank" class="ssp-ofertas__endereco-unidade"></a>
3388 </div>
3389
3390 </div>
3391
3392 </section>
3393 <#else>
3394 <section class="ssp-section-selecione-unidade ssp-section" style="background:#2B2E41">
3395 <div class="container">
3396 <div class="ssp-container-selecione-unidade ${dNoneSelectUnidade} row no-gutters mb-lg-8">
3397 <div class="ssp-container_ofertas__title">
3398 <h2 class="ssp-aviso-novas-turmas__title selecione-unidade-title-custom ssp-detalhe-curso-titulo-filter">Escolha a unidade e conheça as turmas disponíveis:</h2>
3399 </div>
3400 </div>
3401 <div class="row ssp-filters-px justify-content-center">
3402 <div class="col-12 col-lg ${dNoneSelectUnidade} px-md-0 order-1">
3403 <div class="ssp-container-selecione-unidade row no-gutters">
3404 <div class="col-12">
3405 <div class="ssp-container__form-select mx-auto">
3406 <label for="unidades-ofertas" class="ssp-switch-label ssp-switch-label-section mx-0 d-none d-lg-block">Selecione uma unidade:</label>
3407 <select id="unidades-ofertas" class="form-control" name="unidades-ofertas"></select>
3408 </div>
3409 </div>
3410 </div>
3411 </div>
3412
3413 <div id="ssp-alternadores" class="col mt-5 mt-lg-0 ${(isEMED || isAprendizagem)?then('d-none', '')} px-md-0 order-3 order-lg-2" style="max-width: 480px; display: none;">
3414 <div class="row no-gutters ssp-switch-label ssp-switch-label-section mx-0">Filtre por:</div>
3415 <div class="row no-gutters mt-4">
3416 <#assign
3417 mostrarFiltroInscricao = (nomeTipoCurso?contains("Técnico") && !nomeTipoCurso?contains("Ensino Médio")) || nomeTipoCurso?contains("Livre") || nomeTipoCurso?contains("Extensão")
3418 mostrarFiltroBolsa = (nomeTipoCurso?contains("Técnico") && !nomeTipoCurso?contains("Ensino Médio")) || nomeTipoCurso?contains("Livre")
3419 />
3420
3421
3422 <#if mostrarFiltroInscricao && mostrarFiltroBolsa>
3423 <div class="ssp-switch-divider d-md-none my-4"></div>
3424 </#if>
3425
3426 <#if mostrarFiltroInscricao>
3427 <div class="col-12 col-lg">
3428 <div class="d-flex justify-content-between justify-content-lg-start">
3429 <label class="ssp-switch order-2 order-lg-1">
3430 <input type="checkbox" id="chkInscricao">
3431 <span class="ssp-switch-slider round"></span>
3432 </label>
3433 <label for="chkInscricao" class="ssp-switch-label order-1 order-lg-2">Comprar agora</label>
3434 </div>
3435 </div>
3436 </#if>
3437
3438
3439 <#if mostrarFiltroBolsa>
3440 <div class="col-12 col-lg">
3441 <div class="d-flex justify-content-between justify-content-lg-start">
3442 <label class="ssp-switch order-2 order-lg-1">
3443 <input type="checkbox" id="chkBolsa">
3444 <span class="ssp-switch-slider ssp-switch-slider-secondary round"></span>
3445 </label>
3446 <label for="chkBolsa" class="ssp-switch-label order-1 order-lg-2">Bolsas de estudo</label>
3447 </div>
3448 </div>
3449 </#if>
3450 </div>
3451 </div>
3452
3453 <div class="col-12 order-2 order-lg-3">
3454 <div class="row ${mostrarUnidades?then('text-center text-lg-left', 'text-center')}">
3455 <div id="msgFiltroAplicado" class="col-12 ssp-switch-label-message" style="display: none;">
3456 <div class="row no-gutters">
3457 <span class="col-12 ssp-col-lg-without ${mostrarUnidades?then('', 'ml-auto')}">Filtro aplicado com sucesso. </span>
3458 <span class="col-12 ssp-col-lg-without ${mostrarUnidades?then('', 'mr-auto')}">Confira o resultado.</span>
3459 </div>
3460 </div>
3461 </div>
3462 </div>
3463 </div>
3464
3465 <div class="ssp-ofertas__box-endereco-unidade ${dNoneSelectUnidade}">
3466 <i class="icon-map-adress"></i>
3467 <a href="" target="_blank" class="ssp-ofertas__endereco-unidade"></a>
3468 </div>
3469
3470 </div>
3471
3472 </section>
3473 </#if>
3474
3475
3476 <!-- EMED -->
3477 <section class="ssp-ofertas-emed__section d-none">
3478
3479 <h2 class="title-section-white" id="titulo-emed"></h2>
3480
3481 <div class="ssp-ofertas-emed__filtro-content container">
3482
3483 <button type="button" value="0010" class="btn btn-filtro btn--filtro-ativo">Turmas - 1º ano</button>
3484
3485 <button type="button" value="0" class="btn btn-filtro">Transferências</button>
3486
3487 </div>
3488
3489 <div class="ssp-ofertas-emed__card-container">
3490
3491 <div class="ssp-slick-ofertas-emed">
3492
3493 </div>
3494
3495 </div>
3496
3497 </section>
3498
3499 <!-- FIM EMED -->
3500
3501 <section id="ssp-section-response" class="ssp-section" style="background: #2a2e43; position: relative;">
3502
3503 <div id="turmas-container" class="container">
3504
3505 <div id="informe-novas-turmas">
3506 <div style="display: flex; flex-wrap: nowrap;">
3507
3508 <a class="prev-mobile d-lg-none d-xl-none nextPrevOpacity" href="#" >
3509 <i class="fas fa-chevron-left"></i>
3510 </a>
3511
3512 <h2 id="ssp-h3-turmas" class="ssp-section-title ssp-card-oferta-curso__section-title text-capitalize" style="font-weight: bold;text-transform: uppercase; display: none;">Turmas</h2>
3513
3514 <a href="#" class="next-mobile d-lg-none d-xl-none" >
3515 <i class="fas fa-chevron-right"></i>
3516 </a>
3517
3518 </div>
3519
3520
3521 <div class="oferta-slick-area oferta-slick-area--md-bleed slider-container">
3522
3523 </div>
3524 </div>
3525
3526 <#if !isEMED>
3527 <div class="ssp-card-oferta-curso__sem-vaga d-none" style="margin: auto;">
3528
3529 <h2 class="ssp-card-oferta-curso__sem-vaga-title">
3530 Estude com a gente na próxima turma!
3531 </h2>
3532
3533 <p class="ssp-card-oferta-curso__sem-vaga-description">
3534 Registre seu interesse e avisaremos você quando surgirem novas vagas.
3535 </p>
3536 </div>
3537 <#else>
3538
3539 <div class="card-transferencias-emed container p-0 d-none emed-transferencias-space">
3540 <div>
3541 <div class="col-md-12 col-xs-12 pb-10">
3542 <div>
3543 <div class="slick-area__item">
3544
3545 <div class="ssp-emed__card-slider">
3546
3547 <div class="ssp-emed__card-slider-body">
3548 <h2 class="ssp-emed__section__titleCard">
3549 <i class="fal fa-users-class"></i>
3550 <div>Turmas</div>
3551 </h2>
3552 <div style="display:grid;gap:20px;">
3553 <span class="emed_transferencia_texto">Para saber mais sobre vagas de transferências para 1º e 2º ano para estudantes do Senac e de outras escolas, entre em contato com a unidade de interesse para checar a disponibilidade.</span>
3554 <span></span>
3555 </div>
3556 </div>
3557
3558 </div>
3559
3560 </div>
3561 </div>
3562 </div>
3563 </div>
3564 </div>
3565
3566 <#if matriculaEMED.aberta> <div class="sem-vaga-emed container p-0 d-none">
3567 <#else> <div class="sem-vaga-emed container p-0 d-none emed-transferencias-space">
3568 </#if>
3569 <div>
3570 <div class="col-md-12 col-xs-12 pb-10">
3571
3572 <!--slick slider-->
3573 <div class="slick-area-emed slick-area-emed--md-bleed">
3574
3575 <#if matriculaEMED.aberta>
3576 <div class="slick-area__item">
3577
3578 <div class="ssp-emed__card-slider">
3579
3580 <div class="ssp-emed__card-slider-body">
3581 <h2 class="ssp-emed__section__titleCard">
3582 <i class="fal fa-users-class"></i>
3583 <div><lfr-editable type="rich-text">Turmas</lfr-editable></div>
3584 </h2>
3585 <lfr-editable type="rich-text">
3586 <div class="ssp-emed__section__introCard"><strong>Estude com a gente na próxima turma!</strong></div>
3587 <div class="ssp-emed__section__textCard">
3588 <span class="texto">
3589 Registre seu interesse e avisaremos você sobre a abertura das inscrições para o próximo ano.
3590 </span>
3591 <span class="ssp-emed__iconWrapper animate__animated animate__fadeOutRight animate__infinite"><i
3592 class="fas fa-chevron-right"></i></span>
3593 </div>
3594 </lfr-editable>
3595 </a>
3596 </div>
3597
3598 </div>
3599
3600 </div>
3601
3602 <div class="slick-area__item">
3603
3604 <div class="ssp-emed__card-slider">
3605 <div class="ssp-emed__card-slider-body">
3606
3607 <h2 class="ssp-emed__section__titleCard">
3608 <i class="far fa-envelope"></i>
3609 <div><lfr-editable id="emed-precos-title" type="rich-text">Registro de Interesse</lfr-editable></div>
3610 </h2>
3611 <lfr-editable id="txt_emed_boleto" type="rich-text">
3612 <div class="ssp-emed__section__introCardCTA">
3613 Quer receber um aviso sobre as turmas do próximo ano?
3614 </div>
3615 </lfr-editable>
3616 </a>
3617 <a class="ssp-emed__btn btn btn-lg w-100 mt-3 ssp-card-modal-selecionar-outro__btn-close_10"
3618 id="btnOptin" href="javascript:;">Sim, me avise.</a>
3619 </div>
3620 </div>
3621 </div>
3622 <#else>
3623 <#-- pre inscricao emed -->
3624 <div class="slick-area__item card-pre-inscricao">
3625
3626 <div class="ssp-emed__card-slider">
3627
3628 <div class="ssp-emed__card-slider-body">
3629 <h2 class="ssp-emed__section__titleCard">
3630 <i class="fal fa-users-class"></i>
3631 <div><h4 class="ssp-h4" data-lfr-editable-id="ssp-transf-text" data-lfr-editable-type="rich-text">Confira as datas das próximas turmas</h4></div>
3632 </h2>
3633 <lfr-editable type="rich-text" style="text-align: left;">
3634 <div class="ssp-emed__section__introCard" style="margin: 0;"><strong class="ssp-p-g" style="font-weight: 700;">Inscrições para bolsas</strong></div>
3635 <div class="ssp-emed__section__textCard" style="margin: 0!important;">
3636 <span class="ssp-p-g texto">
3637 A partir de 4/8, às 12h
3638 </span>
3639 </lfr-editable>
3640 <hr style="margin: 24px 0; background: #FFF;"/>
3641 <lfr-editable type="rich-text" style="text-align: left;">
3642 <div class="ssp-emed__section__introCard" style="margin: 0;"><strong class="ssp-p-g" style="font-weight: 700;">Matrículas</strong></div>
3643 <div class="ssp-emed__section__textCard" style="margin: 0!important;">
3644 <span class="ssp-p-g texto">
3645 A partir de 18/8, às 12h
3646 </span>
3647 </div>
3648 </lfr-editable>
3649 </a>
3650 </div>
3651
3652 </div>
3653 <!-- <div class="ssp-emed__card-slider">
3654
3655 <div class="ssp-emed__card-slider-body">
3656 <h2 class="ssp-emed__section__titleCard">
3657 <i class="fal fa-users-class"></i>
3658 <div><lfr-editable id="emed-aulas-title" type="rich-text">Turmas</lfr-editable></div>
3659 </h2>
3660 <lfr-editable id="txt_emed_aulas" type="rich-text">
3661 <div>
3662 <strong>Matrículas e inscrições para bolsas de estudo:</strong><br/>
3663 <span style="font-weight: 400;">
3664 a partir de ${matriculaEMED.dataInicio?split("-")?reverse?join("/")}, às ${matriculaEMED.horaInicio?split(":")?first} horas
3665 <#if matriculaEMED.horaInicio?split(":")?last != "00">
3666 e ${matriculaEMED.horaInicio?split(":")?last} minutos
3667 </#if>
3668 </span>
3669 </div>
3670
3671 <div class="footer-card-card-pre-inscricao">
3672 <strong>
3673 Estude com a gente na próxima turma!<br/>
3674 Esperamos por você!
3675 </strong>
3676 </div>
3677 </lfr-editable>
3678 </a>
3679 </div> -->
3680
3681 </div>
3682
3683 </div>
3684
3685 </#if>
3686
3687 </div>
3688 <!--/slick slider-->
3689
3690 </div>
3691 </div>
3692 </div>
3693
3694 </#if>
3695 <div class="oferta-slick-area_modal">
3696 </div>
3697
3698 <#if manutencao.rodape != "">
3699 <p class="ssp-card-oferta-curso__mensagem-legal">${manutencao.rodape}</p>
3700 <#else>
3701 <#if isEMED>
3702 <p class="ssp-card-oferta-curso__mensagem-legal">O Senac reserva-se o direito de alterar o número de vagas, datas, horários ou cancelar o programa.</p>
3703 <#else>
3704 <p class="ssp-card-oferta-curso__mensagem-legal">A turma pode ser cancelada ou ter alterações do número de vagas, datas e horários.</p>
3705 </#if>
3706 </#if>
3707
3708 </div>
3709
3710 <div id="ssp-abrir-pagina-bolsa" class="ssp-card-duvida__bolsa-estudo d-none" style="margin-top: 44px;">
3711
3712 <p>Tem dúvidas sobre bolsas de estudo?</p>
3713 <a href="/bolsas-de-estudo">Saiba como funciona</a>
3714
3715 </div>
3716
3717
3718 </section>
3719
3720 <section id="section-registro-interesse" class="ssp-section-novas-turmas">
3721
3722 <div class="container">
3723
3724 <div class="ssp-aviso-novas-turmas__content">
3725
3726 <!-- <div class="pb-sm-5 pb-md-5" > -->
3727 <div>
3728
3729 <p class="ssp-aviso-novas-turmas__title">Receba um aviso por e-mail se abrirem novas turmas.</p>
3730 <!-- p class="ssp-aviso-novas-turmas__description">Selecione a unidade e registre seu interesse.</p -->
3731
3732 </div>
3733
3734 <!--
3735 <div class="ssp-container__form-select">
3736
3737 <select class="form-control select-large select-registro-interesse" id="select-registro-interesse">
3738 <option value="">Selecione uma unidade</option>
3739 </select>
3740
3741 </div>
3742 -->
3743 <div class="ssp-btn-group__content-teste">
3744
3745 <button type="button" class="btn btn-primary btn-custom" id="btn-aviso-novas-turmas">Registrar interesse</button>
3746
3747 </div>
3748
3749
3750
3751 </div>
3752
3753
3754 </div>
3755
3756
3757 </section>
3758
3759 <section id="modal-backpack-error" class="ssp-modal-registro-interesse d-none">
3760
3761 <div class="ssp-card-msg-erro">
3762
3763 <div class="ssp-card-msg-sucesso__content">
3764 <i class="fas fa-exclamation-circle" style="color: #ec3a3a;"></i>
3765 <p>Houve um erro ao inserir curso na mochila!</p>
3766 <p>Por favor, tente novamente!</p>
3767 </div>
3768
3769 <div>
3770 <button id="btn-voltar-modal-backpack-error" class="btn btn-nivel ssp-card-msg-sucesso__btn">Voltar</button>
3771 </div>
3772
3773 </div>
3774
3775 </section>
3776
3777 <section id="modal-backpack-success" class="ssp-modal-registro-interesse d-none">
3778
3779 <div class="ssp-modal-mochila-curso">
3780
3781 <div class="ssp-modal-mochila-curso__header">
3782
3783 <button class="modal-btn-close" type="button">
3784
3785 <i class="fal fa-times"></i>
3786
3787 </button>
3788
3789 <h2 class="modal-title">Curso adicionado à mochila!</h2>
3790 <p class="modal-subtitle">Você incluiu na sua mochila de compras o curso
3791 <span id="modal-backpack-success__nome-curso"></span>
3792 </p>
3793
3794 </div>
3795
3796 <div class="ssp-modal-mochila-curso__body">
3797
3798 <p>A sua vaga só é garantida nesta turma quando você finaliza a
3799 compra. Deseja concluir agora?</p>
3800
3801 </div>
3802
3803 <div class="ssp-modal-mochila-curso__block-btn-items block-btn-items">
3804
3805 <a class="btn-finalizar-compra btn-mochila-finalizar-compra-success" href="#">
3806 Finalizar compra
3807 </a>
3808
3809 <button class="btn-continuar-site btn-mochila-continuar-site-success">
3810 Continuar no site
3811 </button>
3812
3813 </div>
3814
3815
3816 </div>
3817
3818 </section>
3819
3820</#if>
3821
3822<#if nomeTipoCurso?has_content && nomeTipoCurso?contains("Ensino Médio Técnico") >
3823 <!-- Agende a sua visita -->
3824 <#assign searchImpl = serviceLocator.findService("br.senac.search.api.Search") />
3825 <#assign articles = searchImpl.search("EMED - Agende sua visita", {}, themeDisplay.getCompanyId(), themeDisplay.getScopeGroupId(), themeDisplay.getUserId(), false) />
3826
3827 <section id="ssp-emed-visita-sector">
3828 <div class="container py-5 pt-lg-0" style="display:none;">
3829 <div data-emed="ssp-emed-visita-wrapper" class="ssp-emed-visita-wrapper">
3830 <#list articles![] as article>
3831 <#assign document = saxReaderUtil.read(article.getContent()) />
3832 <#assign rootElement = document.getRootElement() />
3833
3834 <#assign
3835 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='textoDoBotao']")
3836 textoDoBotao = xPathSelector.selectSingleNode(rootElement).getStringValue()
3837
3838 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='linkBotao']")
3839 linkBotao = xPathSelector.selectSingleNode(rootElement).getStringValue()
3840
3841 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='ativarBotao']")
3842 ativarBotao = xPathSelector.selectSingleNode(rootElement).getStringValue()
3843 />
3844
3845 <#if ativarBotao?trim == "true">
3846 <script>$('#ssp-emed-visita-sector').children().show()</script>
3847 <div data-emed="ssp-emed-visita-text" class="ssp-emed-visita-text">
3848
3849 <a href="${linkBotao}">${textoDoBotao}</a>
3850
3851 </div>
3852 <div class="ssp-emed-visita-icon">
3853 <i class="fas fa-route"></i>
3854 </div>
3855 </#if>
3856 </#list>
3857 </div>
3858 </div>
3859 </section>
3860
3861
3862 <!-- Como me matricular EMED -->
3863
3864 <section class="ssp-como-me-matricular__section">
3865
3866 <h2 class="title-section-white">Como me matricular?</h2>
3867
3868 <div class="container">
3869
3870 <div class="ssp-como-me-matricular__passo-passo-card">
3871
3872 <div class="item-passo">
3873 <img class="item-passo-icone" src="/o/senac-theme/images/icon-escolha-curso.svg" alt="">
3874 <p class="item-passo-title">Escolha o curso</p>
3875 <span>Selecione o curso, a unidade do seu interesse e confira as turmas disponíveis.</span>
3876 </div>
3877
3878 <img class="item-passo-icone-seta" src="/o/senac-theme/images/icon-seta-passo.svg" alt="">
3879
3880 <div class="item-passo">
3881 <img class="item-passo-icone" src="/o/senac-theme/images/icon-realize-inscricao.svg" alt="">
3882 <p class="item-passo-title">Adicione à Mochila</p>
3883 <span>Faça login ou crie uma conta em nosso site e continue a compra.</span>
3884 </div>
3885
3886 <img class="item-passo-icone-seta" src="/o/senac-theme/images/icon-seta-passo.svg" alt="">
3887
3888 <div class="item-passo">
3889 <img class="item-passo-icone" src="/o/senac-theme/images/icon-aguarde-contato.svg" alt="">
3890 <p class="item-passo-title">Faça a matrícula</p>
3891 <span>Todas as etapas são on-line. Para garantir a vaga, preencha todas as informações.</span>
3892 </div>
3893
3894 </div>
3895
3896
3897 </div>
3898
3899 </section>
3900
3901 </#if>
3902
3903
3904 <div class="ssp-section ssp-section-lg-bottom-slider d-none" id="section-cursos-voce-pode-gostar" style="background-color: #f2f2f2">
3905 <div class="container">
3906 <h2 class="ssp-section-title">
3907 <lfr-editable id="cursos-voce-pode-gostar-title" type="rich-text">
3908 Cursos que você pode gostar
3909 </lfr-editable>
3910 </h2>
3911
3912 <div id="slider-curso">
3913
3914 </div>
3915
3916 </div>
3917 </div>
3918
3919
3920
3921
3922 <#-- Section para o item de curso-->
3923 <div id="curso-item-template" class="d-none slick-area__item">
3924
3925 <div class="ssp-card-curso" style="height: 288px;">
3926
3927 <a class="ssp-absolute-link ck-curso" href="#a"></a>
3928
3929 <div class="ssp-card-curso__image">
3930
3931 <div class="ssp-image-container">
3932 <img src="" />
3933
3934 </div>
3935
3936 </div>
3937
3938 <div class="ssp-card-curso__body">
3939
3940 <div class="ssp-card-curso__color-tag-modalidade"></div>
3941
3942 <div class="ssp-card-curso__tags">
3943
3944 <span class="ssp-card-curso__tag-formato-title"></span>
3945
3946 <span class="tag-modalidade-title__senac-online d-none">Senac Online - ao vivo</span>
3947
3948 </div>
3949
3950 <h6 class="ssp-card-curso__title">
3951
3952 </h6>
3953
3954 <div class="ssp-card-curso__info">
3955
3956 <span class="ssp-tag bg-white border-nivel-extensao text-nivel-extensao mr-1 btn-inscricoes-abertas">Inscrições abertas</span>
3957 <span class="ssp-tag bg-white border-primary text-primary btn-bolsas">Bolsas</span>
3958
3959 </div>
3960
3961 </div>
3962
3963 </div>
3964
3965 </div>
3966
3967 <#function getJournalArticle>
3968
3969
3970 <#assign journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
3971 <#assign friendlyURL = themeDisplay.getURLCurrent()?split("/")?last?split("?")?first>
3972 <#assign groupId = themeDisplay.getSiteGroupId()>
3973 <#attempt>
3974
3975 <#if !friendlyURL?contains("fragment_collections") >
3976
3977 <#return journalArticleService.getArticleByUrlTitle(groupId,friendlyURL)>
3978 <#else>
3979
3980 <#return '#erro#'>
3981 </#if>
3982
3983 <#recover>
3984
3985 <#return '#erro#'>
3986 </#attempt>
3987 </#function>
3988
3989 <#function getCategorias primaryKey>
3990
3991 <#assign categoryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") />
3992 <#attempt>
3993
3994 <#return categoryService.getCategories("com.liferay.journal.model.JournalArticle", primaryKey)>
3995
3996 <#recover>
3997
3998 <#return '#erro#'>
3999 </#attempt>
4000 </#function>
4001
4002 <#function getVocabulary vocabularyId>
4003
4004 <#assign vocabularyService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyService") />
4005 <#attempt>
4006
4007 <#return vocabularyService.getVocabulary(vocabularyId)>
4008
4009 <#recover>
4010
4011 <#return '#erro#'>
4012 </#attempt>
4013 </#function>
4014
4015 <#function getStringValue dom name>
4016 <#assign
4017 seletorSTR = "dynamic-element[@field-reference='"+name+"']"
4018 xPathSelector = saxReaderUtil.createXPath(seletorSTR)
4019 />
4020 <#if xPathSelector.selectSingleNode(dom)?? >
4021 <#assign
4022 valueSTR = xPathSelector.selectSingleNode(dom).getStringValue()?trim
4023 />
4024 <#return valueSTR>
4025 </#if>
4026 <#return ''>
4027 </#function>
4028
4029 <!--Modal de Login -->
4030
4031 <section id="modal-login" class="ssp-modal-registro-interesse d-none">
4032
4033 <div class="dropdown-menu-modal dropdown-menu-right" id="js-login-dropdown-menu-2" style="width: 340px; max-width: 340px; display: block;">
4034
4035 <div class="px-5">
4036 <i id="btn-close-loginModal" class="fas fa-times btn-close__modal-login"></i>
4037 <div class="text-darker-gray py-3">Faça login na sua conta</div>
4038 </div>
4039
4040 <div class="dropdown-divider"></div>
4041
4042 <div class="dropdown-menu-arrow"></div>
4043
4044 <form id="login_form" class="px-5 py-4" method="post">
4045
4046 <div class="alert alert-danger py-3 d-none" id="mensagem-erro-login" style="background:#f8d7da;border-color:#f5c6cb; color:#a94442"></div>
4047
4048 <div class="form-group">
4049
4050 <label for="login-email">E-mail</label>
4051 <div class="input-group mb-2">
4052 <div class="input-group-prepend">
4053 <span class="input-group-text"><i class="icon-envelope"></i></span>
4054 </div>
4055 <input type="text" class="form-control" id="login-email-modal" name="_com_liferay_login_web_portlet_LoginPortlet_login" placeholder="Digite seu e-mail" aria-label="Email" aria-describedby="login-email">
4056 </div>
4057
4058 </div>
4059
4060 <div class="form-group">
4061
4062 <label for="login-password">Senha</label>
4063 <div class="input-group mb-2">
4064 <div class="input-group-prepend">
4065 <span class="input-group-text"><i class="icon-key"></i></span>
4066 </div>
4067 <input type="password" class="form-control" id="login-password-modal" name="_com_liferay_login_web_portlet_LoginPortlet_password" placeholder="Digite sua senha" aria-label="Password" aria-describedby="login-password">
4068 </div>
4069
4070 </div>
4071
4072 <div class="pt-1 pb-3">
4073 <small><a href="http://www.sp.senac.br/login-unico/SendPassword" target="_blank">Esqueceu sua senha?</a></small>
4074 </div>
4075
4076 <button type="button" class="btn btn-primary w-100" id="btnLogin" data-login="btnLogin">Entrar</button>
4077 </form>
4078
4079 <div class="dropdown-divider"></div>
4080
4081 <div class="px-5 pb-4">
4082 <div class="text-darker-gray py-3">Não tem cadastro?</div>
4083 <a href="https://www.sp.senac.br/usuario-unico/InsertUser?destino=${themeDisplay.getPortalURL()+themeDisplay.getURLCurrent()}" target="_blank" class="btn bg-btn-cadastre btn-nivel-livre text-white w-100 ">Cadastre-se</a>
4084 </div>
4085
4086
4087 </div>
4088
4089 </section>
4090
4091 <!-- modal registro interesse -->
4092
4093
4094 <section id="modal-registro-interesse" class="ssp-modal-registro-interesse d-none">
4095
4096 <#if !isEMED>
4097 <div class="ssp-card-registro-interesse">
4098
4099 <i id="btn-close-Modal-registro-interesse" class="fas fa-times btn-close__modal-login"></i>
4100
4101 <p class="ssp-card-registro-interesse__label-curso-selecionado">Curso selecionado:</p>
4102 <h3 class="ssp-card-registro-interesse__nome-curso"></h3>
4103
4104 <div id="unidades-registro-interesse">
4105
4106 <h4 class="ssp-card-registro-interesse__title-section-itens">Unidade:</h4>
4107
4108 <div id="select-unidades-registro-interesse">
4109 <select class="ssp-card-registro-interesse__select unidades" id="select_0"><option value="" disabled="" selected="">Selecione uma unidade</option></select>
4110 </div>
4111
4112 <div class="ssp-card-registro-interesse__add-mais">
4113 <a class="" id="add-unidade-regsitro-interesse" href="#a"><i class="fas fa-plus mr-1"></i>Adicionar unidade</a>
4114
4115
4116
4117 <a class="" id="remove-unidade-regsitro-interesse" href="#a"><i class="fas fa-times mr-1"></i>Remover unidade</a>
4118 </div>
4119
4120 </div>
4121
4122 <div id="dias-registro-interesse">
4123 <h4 class="ssp-card-registro-interesse__title-section-itens text-center">Dias da Semana</h4>
4124
4125 <div class="ssp-card-registro-interesse__week-content">
4126 <span id="todosDias" class="ssp-week-day">Todos</span>
4127 <span class="ssp-week-day">Seg</span>
4128 <span class="ssp-week-day">Ter</span>
4129 <span class="ssp-week-day">Qua</span>
4130 <span class="ssp-week-day">Qui</span>
4131 <span class="ssp-week-day">Sex</span>
4132 <span class="ssp-week-day">Sab</span>
4133 </div>
4134
4135 </div>
4136
4137 <div id="periodo-registro-interesse">
4138
4139 <h4 class="ssp-card-registro-interesse__title-section-itens text-center">Período:</h4>
4140
4141 <div class="ssp-card-registro-interesse__check-itens-content periodos-registro-interesse">
4142
4143 <div class="ssp-card-registro-interesse__check-item" id="div-campo-todos">
4144 <input type="checkbox" name="" value="" id="check-todos-periodos">
4145 <label for="check-todos-periodos">Todos</label>
4146 </div>
4147
4148 <div class="ssp-card-registro-interesse__check-item">
4149 <input type="checkbox" name="" value="M" id="periodo-m">
4150 <label for="periodo-m">Manhã</label>
4151 </div>
4152
4153 <div class="ssp-card-registro-interesse__check-item">
4154 <input type="checkbox" name="" value="T" id="periodo-t">
4155 <label for="periodo-t">Tarde</label>
4156 </div>
4157
4158 <div class="ssp-card-registro-interesse__check-item">
4159 <input type="checkbox" name="" value="N" id="periodo-n">
4160 <label for="periodo-n" "="">Noite</label>
4161 </div>
4162
4163
4164 </div>
4165
4166 </div>
4167
4168 <div class="ssp-card-registro-interesse__card-politica">
4169
4170
4171 <p class="ssp-card-registro-interesse__card-politica-title">
4172 <strong>Política de Privacidade do Senac São Paulo </strong>
4173 </p>
4174
4175 <p>Data de publicação 06/08/2024</p>
4176
4177 <p class="ssp-card-registro-interesse__card-politica-text">
4178 O Serviço Nacional de Aprendizagem Comercial - Senac,
4179 Administração no Estado de São Paulo (Senac SP) zela pela privacidade e proteção dos dados pessoais de todos aqueles
4180 com quem se relaciona.
4181 </p>
4182
4183 <p class="ssp-card-registro-interesse__card-politica-text">
4184
4185 A presente Política de Privacidade tem o objetivo de informar sobre quais dados pessoais a seu respeito são
4186 coletados; por qual motivo os coletamos; com quem os compartilhamos; por quanto tempo os mantemos conosco; quais as
4187 medidas de segurança que adotamos; e quais os direitos que você tem.
4188 <br><br>
4189 É importante que você leia esta Política com atenção, bem como a consulte periodicamente para verificar possíveis
4190 alterações no que diz respeito ao tratamento de seus dados pessoais.
4191 <br><br>
4192 Em caso de dúvidas, entre em contato via e-mail indicado no final deste documento.
4193 <br><br>
4194 <b>1. Quem somos nós?</b><br>
4195 O Senac SP é a Administração Regional do Senac no Estado de São Paulo. O Senac SP está inscrito no CNPJ sob o nº
4196 03.709.814/0001-98 e tem sede à Rua Dr. Vila Nova, 228, 7º andar, na cidade de São Paulo, Estado de São Paulo. Para
4197 fins da Lei Geral de Proteção de Dados Pessoais (Lei nº 13.709/2018, LGPD) e desta Política, o Senac SP é
4198 controlador dos dados pessoais.
4199 <br><br>
4200 <b>2. O que você precisa saber antes de ler esta política?</b>
4201 <br>
4202 Dados pessoais são todas as informações que identificam ou permitam a sua identificação. Por exemplo, seu nome, CPF,
4203 e-mail, endereço, dados de contato, dados de conta bancária, entre outros. Incluem-se nesse conceito os dados
4204 pessoais sensíveis, conforme definição a seguir:
4205 <br><br>
4206 Dados pessoais sensíveis são as informações que revelam ou cujo tratamento venha revelar origem racial ou étnica,
4207 convicção religiosa, opinião política, filiação à sindicato ou à organização de caráter religioso, filosófico ou
4208 político, dados de saúde ou sobre a vida sexual, dado genético ou biométrico.
4209 <br><br>
4210 Encarregado é o seu canal de contato sobre assuntos relacionados à privacidade e à proteção de dados pessoais. Se
4211 você tiver qualquer dúvida sobre como os seus dados pessoais ou de seus dependentes/beneficiários são tratados por
4212 nós, é ele quem vai ajudar.
4213 <br><br>
4214 Titular é a pessoa física a quem se referem os dados pessoais objeto do tratamento.
4215 <br><br>
4216 Tratamento significa qualquer operação realizada com dados pessoais, tais como coleta, produção, classificação,
4217 utilização, acesso, processamento, armazenamento, eliminação, modificação, compartilhamento, transferência, entre
4218 outros.
4219 <br><br>
4220 Sempre que houver menção aos "Termos de Uso do Senac SP", "Nós" ou "Nossos", estaremos nos referindo à instituição
4221 descrita no tópico "Quem somos nós". Da mesma forma, toda vez que mencionarmos "você", "seu" ou "sua", estamos nos
4222 referindo a você, titular de dados pessoais, que possui relação com o Senac SP na qualidade de pessoa interessada,
4223 candidato a aluno, aluno e/ou ex-aluno, terceiros relacionados a candidatos ou alunos usuário de nossa rede wi-fi.
4224 <br><br>
4225 <b>3. Quais dados pessoais são tratados e por quê?</b>
4226 <br>
4227 O Senac SP realiza, a depender de sua relação conosco, o tratamento dos dados pessoais a seguir identificados para
4228 atendimento às finalidades ora descritas, conforme aplicável:
4229 <br><br>
4230 <b>Visitante / Interessado</b>
4231 <br>
4232 <b>Atividade: Navegação</b>
4233 <br>
4234 Dados pessoais: Endereço de IP com data e hora, informações sobre o dispositivo utilizado para a navegação e tipo de
4235 navegador utilizado, localização do dispositivo, sequência de cliques, termos pesquisados no Portal Senac SP, origem
4236 do tráfego.
4237 <br><br>
4238 Finalidade: Os dados pessoais são utilizados para permitir a análise do tráfego do Portal Senac SP; viabilizar o
4239 envio de anúncios, ofertas e/ou informações sobre cursos, eventos e/ou benefícios de acordo com seus interesses;
4240 aprimorar as funcionalidades do Portal Senac SP; monitorar fraudes e segurança, inclusive detectando e prevenindo
4241 ataques cibernéticos ou tentativas de roubo de identidade; atender exigências legais.
4242 <br><br>
4243 </p>
4244
4245 <hr>
4246
4247 <p class="ssp-card-registro-interesse__card-politica-text">
4248 <br>
4249 <b>Atividade: Cadastro</b><br>
4250 Dados pessoais: Nome, nome social, CPF, data de nascimento, sexo, documento de identificação civil, endereço,
4251 telefone.
4252 <br><br>
4253 Finalidade: Os dados pessoais são utilizados para cadastro na base de dados do Senac SP, havendo validação do
4254 cadastro por duplo fator de autenticação.
4255 <br>
4256 </p>
4257
4258 <hr>
4259
4260 <p class="ssp-card-registro-interesse__card-politica-text">
4261 <br>
4262 <b>Atividade: Inscrição em eventos</b><br>
4263 Dados pessoais: Nome, nome social/afetivo, estado civil, RG, CPF, e-mail, telefone, endereço, raça, evento
4264 pretendido, dado sobre deficiência, formação acadêmica, e situação profissional.
4265 <br><br>
4266 Finalidade: Os dados pessoais são utilizados para viabilizar sua inscrição e participação em eventos promovidos pelo
4267 Senac SP que não tenham participação restrita a alunos matriculados em nossos cursos.
4268 <br>
4269 </p>
4270
4271 <hr>
4272
4273 <p class="ssp-card-registro-interesse__card-politica-text">
4274 <br>
4275 <b>Atividade: Comunicação e Marketing</b><br>
4276 Dados pessoais: Nome, telefone, e-mail, empresa para qual trabalha, cidade, informações fornecidas voluntariamente
4277 em mensagens nos nossos canais de atendimento e redes sociais.
4278 <br><br>
4279 Finalidade: Os dados pessoais são utilizados para responder perguntas, dúvidas, sugestões, elogios ou reclamações;
4280 realizar estudos para entender demandas e necessidades relacionadas aos nossos cursos/eventos; viabilizar o envio de
4281 anúncios, ofertas e/ou informações sobre cursos, eventos e/ou benefícios de acordo com seus interesses.
4282 <br>
4283 </p>
4284
4285 <hr>
4286
4287 <p class="ssp-card-registro-interesse__card-politica-text">
4288 <br>
4289 <b>Candidato a aluno</b><br>
4290 <b>Atividade: Processo seletivo</b><br>
4291 Dados pessoais: Nome, nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo,
4292 número de inscrição, RG/RNE/Passaporte, CPF, filiação, formação acadêmica, experiência profissional, informação
4293 sobre deficiência, resultados de provas, dados tornados manifestamente públicos em plataformas como LinkedIn e
4294 Lattes, dentre outros, conforme exigido a depender do processo seletivo.
4295 <br><br>
4296 Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsáveis legais em caso de candidato a aluno
4297 menor de idade.
4298 <br><br>
4299 Finalidade: Os dados pessoais são utilizados, conforme necessário para cada processo seletivo, para fins de
4300 viabilizar sua inscrição e participação em processos seletivos; permitir a seleção de alunos conforme critérios
4301 previamente informados em editais e exigido em leis/normas setoriais aplicáveis; enviar informações sobre o processo
4302 seletivo, inclusive lembrete da proximidade da data de realização de provas; disponibilizar lista de classificação;
4303 responder perguntas, dúvidas, sugestões, elogios ou reclamações; enviar anúncios, ofertas e/ou informações sobre
4304 cursos, eventos e/ou benefícios de acordo com seus interesses.
4305 <br>
4306 </p>
4307
4308 <hr>
4309
4310 <p class="ssp-card-registro-interesse__card-politica-text">
4311 <br>
4312 <b>Atividade: Bolsas de estudo</b><br>
4313 Dados pessoais: Nome, nome social/afetivo, estado civil, RG, CPF, e-mail, telefone, endereço, raça, curso
4314 pretendido, dado sobre deficiência, formação acadêmica, e situação profissional, familiar e domiciliar (incluindo
4315 renda bruta de pessoas do mesmo grupo familiar identificadas pelo nome).
4316 <br><br>
4317 Finalidade: Os dados pessoais são utilizados para selecionar candidatos para o recebimento de bolsas de estudo, em
4318 particular do Programa Senac de Gratuidade (PSG).
4319 <br>
4320 </p>
4321
4322 <hr>
4323
4324 <p class="ssp-card-registro-interesse__card-politica-text">
4325 <br>
4326 <b>Aluno</b><br>
4327 <b>Atividade: Matrícula</b><br>
4328 Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades
4329 de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome,
4330 nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF,
4331 número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência,
4332 resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de
4333 cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual
4334 trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros,
4335 constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP.
4336 <br><br>
4337 Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos
4338 responsáveis legais do aluno se menor de idade.
4339 <br><br>
4340 Finalidade: Os dados pessoais são utilizados para viabilizar a celebração de contrato com você e, consequentemente,
4341 a prestação dos serviços contratados; liberar acesso a sistemas e áreas restritas; cobrar valores decorrentes do seu
4342 contrato conosco; e outras finalidades relacionadas.
4343 <br>
4344 </p>
4345
4346 <hr>
4347
4348 <p class="ssp-card-registro-interesse__card-politica-text">
4349 <br>
4350
4351 <b>Atividade: Jornada Acadêmica</b><br>
4352 Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades
4353 de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome,
4354 nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF,
4355 número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência,
4356 resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de
4357 cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual
4358 trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros,
4359 constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP.
4360 <br><br>
4361 Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos
4362 responsáveis legais do aluno se menor de idade.
4363 <br><br>
4364 Finalidade: Os dados pessoais são utilizados para registrar e acompanhar o desenvolvimento acadêmico e profissional
4365 do aluno; permitir o contato do Senac SP, por qualquer meio; viabilizar apoio pedagógico e psicopedagógico;
4366 responder suas perguntas, dúvidas, sugestões, elogios ou reclamações; enviar comunicações administrativas como, por
4367 exemplo, sobre alterações em nossas políticas; monitorar o desenvolvimento de atividades de estágio; permitir a
4368 realização de intercâmbio acadêmico.
4369 <br>
4370 </p>
4371
4372 <hr>
4373
4374 <p class="ssp-card-registro-interesse__card-politica-text">
4375 <br>
4376 <b>Atividade: Bolsas de estudo</b><br>
4377 Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades
4378 de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome,
4379 nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF,
4380 número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência,
4381 resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de
4382 cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual
4383 trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros,
4384 constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP.
4385 <br><br>
4386 Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos
4387 responsáveis legais do aluno se menor de idade.
4388 <br><br>
4389 Finalidade: Os dados pessoais são utilizados para avaliar e monitorar o cumprimento de requisitos para o
4390 fornecimento de bolsas de estudo.
4391 <br>
4392 </p>
4393
4394 <hr>
4395
4396 <p class="ssp-card-registro-interesse__card-politica-text">
4397 <br>
4398
4399
4400 <b>Atividade: Benefícios</b><br>
4401 Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades
4402 de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome,
4403 nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF,
4404 número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência,
4405 resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de
4406 cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual
4407 trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros,
4408 constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP.
4409 <br><br>
4410 Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos
4411 responsáveis legais do aluno se menor de idade.
4412 <br><br>
4413 Finalidade: Os dados pessoais são utilizados para fins de oferecer benefícios ligados ao objeto do seu contrato
4414 educacional com o Senac SP, como, por exemplo, o download gratuito de programas de computador devidamente
4415 licenciados, descontos em serviços prestados por nossos parceiros ou para aquisição de obras da Editora Senac, entre
4416 outros; enviar anúncios, ofertas e/ou informações sobre cursos, eventos e/ou benefícios de acordo com seus
4417 interesses; viabilizar análises e estudos relacionados ao interesse por e utilização de determinados benefícios,
4418 inclusive para aperfeiçoamento das nossas parcerias comerciais.
4419 <br>
4420 </p>
4421
4422 <hr>
4423
4424 <p class="ssp-card-registro-interesse__card-politica-text">
4425 <br>
4426 <b>Atividade: Procedimentos internos</b><br>
4427 Finalidade: Os dados pessoais são utilizados para fins de gestão da oferta, qualidade e aprimoramento dos serviços
4428 prestados pelo Senac SP, inclusive por meio do envio de pesquisas; viabilizar estratégia de aprendizagem remota e
4429 presencial; fornecer serviços de suporte; realizar estudos para entender demandas e necessidades relacionadas aos
4430 nossos produtos/serviços; preparar e disponibilizar relatórios de auditoria e gerenciais; fornecer segunda via e/ou
4431 cópia de documentos como diploma e histórico escolar; criar grupos de representantes de alunos para facilitar o
4432 diálogo e endereçamento de demandas; informar sobre a possibilidade de participação em processos acadêmicos e de
4433 pesquisa.
4434 <br>
4435 </p>
4436
4437 <hr>
4438
4439 <p class="ssp-card-registro-interesse__card-politica-text">
4440 <br>
4441
4442
4443 <b>Atividade: Obrigações legais e exercícios de direito</b><br>
4444 Finalidade: Os dados pessoais são utilizados para atender políticas públicas, como as assistenciais e de transporte
4445 escolar; viabilizar a condução do censo escolar; realizar as divulgações exigidas por normas legais ou de interesse
4446 do Senac SP, como lista de aprovados e conquistas obtidas; enviar dados ao MEC; inscrever estudantes para, por
4447 exemplo, realizar o Exame Nacional de Desempenho de Estudantes (Enade); colaborar com o cumprimento de ordem
4448 judicial, de autoridade competente ou de órgão fiscalizador.
4449 <br>
4450 </p>
4451
4452 <hr>
4453
4454 <p class="ssp-card-registro-interesse__card-politica-text">
4455 <br>
4456
4457 <b>Atividade: Pesquisas e desenvolvimento</b><br>
4458 Finalidade: Os dados pessoais poderão ser utilizados para entrar em contato e conduzir pesquisas para identificar
4459 pontos de melhoria nos produtos e serviços, permitir a mensuração de qualidade dos cursos, permitir a execução do
4460 programa de trabalho do Senac SP, bem como para conduzir pesquisas que decorram de lei e/ou regulamento ao qual o
4461 Senac SP está sujeito.
4462 <br>
4463 </p>
4464
4465 <hr>
4466
4467 <p class="ssp-card-registro-interesse__card-politica-text">
4468 <br>
4469
4470 <b>Atividade: Monitoramento</b><br>
4471 Finalidade: Os dados pessoais são utilizados para fins de monitorar a segurança dos ambientes de ensino e
4472 aprendizagem; prevenir fraudes, prática de condutas ilícitas e incidentes de segurança; cumprir exigências, por
4473 exemplo, de registro de acesso às aplicações estabelecidas no Marco Civil da Internet - Lei nº 12.965/2014.
4474 <br>
4475 </p>
4476
4477 <hr>
4478
4479 <p class="ssp-card-registro-interesse__card-politica-text">
4480 <br>
4481
4482 <b>Ex-aluno</b><br>
4483 <b>Atividade: Relacionamento, pesquisa, obrigações legais e exercício de direitos</b><br>
4484 Dados pessoais: Nome, telefone, e-mail, endereço, CPF, número de matrícula, formação acadêmica, histórico acadêmico,
4485 fotos, dentre outros, a depender da modalidade de ensino realizada no Senac SP.
4486 <br><br>
4487 Finalidade: Os dados pessoais são utilizados para atender obrigações do Senac SP de manutenção de registros
4488 escolares; acompanhar o seu desenvolvimento (por exemplo, com a análise da sua empregabilidade em decorrência da
4489 formação recebida); responder perguntas, dúvidas, sugestões, elogios ou reclamações; enviar anúncios, ofertas e/ou
4490 informações sobre cursos, eventos e/ou benefícios de acordo com seus interesses; entrar em contato e conduzir
4491 pesquisas com fins de identificar motivação para realização de cursos e inserção produtiva no mercado, bem como para
4492 conduzir pesquisas que decorram de lei e/ou regulamento ao qual o Senac SP está sujeito; garantir o cumprimento de
4493 obrigação legal ou regulatória e/ou o exercício de direitos do Senac SP, inclusive em processos judiciais,
4494 administrativos e arbitrais; atender consulta de terceiros acerca do seu relacionamento com o Senac SP; colaborar
4495 com o cumprimento de ordem judicial, de autoridade competente, órgão fiscalizador ou com pedido de entidade de
4496 fornecimento de dados sobre você no caso de, por exemplo, concursos públicos.
4497 <br>
4498 </p>
4499
4500 <hr>
4501
4502 <p class="ssp-card-registro-interesse__card-politica-text">
4503 <br>
4504 <b>Terceiros relacionados a candidatos e/ou alunos</b><br>
4505 <b>Atividade: Atuação de responsável legal e pagamento pelo responsável financeiro. Seleção de bolsistas</b><br>
4506 Dados pessoais: Nome, estado civil, RG, CPF, e-mail, telefone, endereço, renda bruta, grau de parentesco com
4507 aluno/candidato a aluno, dados de pagamento, dados de utilização de portais do Senac SP (endereço de IP, login).
4508 <br><br>
4509 Finalidade: Os dados pessoais são utilizados para permitir a celebração de contratos com menores e a gestão da vida
4510 escolar por responsável legal; viabilizar operações de pagamento, pelo responsável financeiro; permitir a seleção de
4511 candidatos para oferta de bolsas de estudos; atender requisições de autoridades e exercício regular de direito pelo
4512 Senac SP.
4513 <br>
4514 </p>
4515
4516 <hr>
4517
4518 <p class="ssp-card-registro-interesse__card-politica-text">
4519 <br><br>
4520 <b>Usuário Wi-Fi</b><br>
4521 <b>Atividade: Uso da rede wi-fi CONECTA SENAC</b><br>
4522 Dados pessoais: Nome, e-mail, CPF, endereço de IP com data e hora, informações sobre o dispositivo utilizado para a
4523 navegação e tipo de navegador utilizado (inclusive endereço MAC), localização do dispositivo.
4524 <br><br>
4525 Finalidade: Os dados pessoais são utilizados para viabilizar o uso da rede wi-fi "Conecta_Senac"; atender leis e
4526 outros normativos aplicáveis, bem como ordem de autoridades, em particular em casos de investigação; avaliar
4527 desempenho da rede e realizar diagnóstico de problemas, solucionando-os; comunicar sobre manutenção da rede e/ou
4528 outras informações relevantes; proteger você, terceiros e o Senac.
4529 <br><br>
4530
4531
4532 Os dados pessoais acima elencados podem ser coletados primordialmente das seguintes fontes: (a) diretamente de você
4533 ou da pessoa autorizada por você; (b) fornecedores do Senac SP, como empresas prestadoras de serviços; (c) sistemas
4534 de monitoramento de ambientes Senac SP; (d) autoridades públicas, judiciais e administrativas. Você é a única pessoa
4535 responsável pela exatidão, veracidade e autenticidade das informações fornecidas diretamente fornecidas.
4536 <br><br>
4537 Trataremos os dados pessoais conforme hipóteses autorizadoras listadas na LGPD, notadamente: (i) cumprimento de
4538 obrigação legal ou regulatória, (ii) execução de contrato, (iii) exercício regular de direitos, e (iv) legítimo
4539 interesse do Senac SP ou de terceiros. Para os casos em que a lei exija a obtenção de seu consentimento e/ou de seu
4540 responsável legal, atuaremos de modo a garantir que você seja devidamente informado acerca da necessidade da
4541 autorização e consequências da sua recusa, para que você possa manifestar livremente a sua decisão.
4542 <br><br>
4543 O Senac SP utilizará os seus dados pessoais para finalidades compatíveis com as informadas nesta Política e sempre
4544 que entender haver base legal para o tratamento posterior nos termos da LGPD.
4545 <br><br>
4546
4547
4548 <b>4. Com quem compartilhamos os seus dados pessoais?</b><br>
4549 Poderemos compartilhar os seus dados pessoais com entidades que compõem a nossa estrutura organizacional
4550 (Administração Nacional e as demais Administrações Regionais), com empresas com as quais mantemos algum tipo de
4551 relação comercial, com seu responsável legal e/ou financeiro ou, ainda, com órgãos públicos, tais como parceiros
4552 comerciais, instituições bancárias, escritórios de advocacia, empresas de suporte aos nossos sistemas, bureaus de
4553 crédito, consultorias contábeis, órgãos públicos e o Poder Judiciário. Os seus dados pessoais podem ser
4554 compartilhados para finalidades legítimas da seguinte maneira:
4555 <br><br>
4556 - Para condução das atividades de tratamento de dados pessoais descritas nesta Política e/ou decorrentes de seu
4557 relacionamento e contrato de prestação de serviços conosco;
4558 <br><br>
4559 - Para permitir que terceiros forneçam serviços para o Senac SP e/ou acompanhem a prestação de serviços contratada,
4560 conforme aplicável;
4561 <br><br>
4562 - Para obedecer as nossas obrigações legais, regulatórias ou contratuais, ou responder a um processo judicial ou
4563 administrativo, auditoria ou solicitações legais por autoridades competentes, quando entendermos que estamos
4564 legalmente obrigados a fazê-lo ou, ainda, para fins de atendimento a ofícios relacionados a processos seletivos e/ou
4565 concursos públicos dos quais você participa. As categorias de destinatários incluem, por exemplo, contrapartes em
4566 contratos, órgãos judiciais e governamentais;
4567 <br><br>
4568 - Para exercício legítimo de direito em processo judicial, administrativo ou arbitral, inclusive prevenindo lesão ou
4569 ameaça a direito;
4570 <br><br>
4571 - Quando for necessário para proteger você, o Senac SP e seus interesses legítimos e/ou terceiros;
4572 <br><br>
4573 - Como parte de due diligence corporativa e/ou due diligence relativa à fusão, aquisição, alteração societária, ou
4574 em casos de recuperação judicial ou falência, nós podemos divulgar os seus dados pessoais ao potencial vendedor ou
4575 comprador, novo prestador de serviços e respectivos assessores, na medida do quanto necessário e adequado para o
4576 atingimento da aludida finalidade;
4577 <br><br>
4578 - Com o seu consentimento legalmente obtido, isto é dado de forma voluntária e sem que você sofra qualquer
4579 consequência adversa de sua decisão que negar ou revogar o seu consentimento.
4580 <br><br>
4581
4582
4583 Informações agregadas e anonimizadas poderão ser livremente compartilhadas.
4584 <br><br>
4585 Para resguardar a sua privacidade, utilizamos instrumentos contratuais e auditorias para assegurar que os terceiros
4586 que recebam os seus dados pessoais confiram a ele a mesma proteção que nós proporcionamos.
4587 <br><br>
4588 Atualmente, apenas compartilhamos os seus dados pessoais em território nacional. Caso haja transferência dos seus
4589 dados pessoais para fora do Brasil, nos certificaremos de que essa transferência ocorra em observância à legislação
4590 brasileira e que você seja informado de tal compartilhamento, sempre que exigido pela legislação aplicável.
4591 <br><br>
4592 Você pode ter mais informações sobre os terceiros com quem compartilhamos os seus dados pessoais por meio de
4593 requisição específica, conforme indicado no tópico que trata sobre os seus direitos.
4594 <br><br>
4595
4596
4597 <b>5. Por quanto tempo tratamos os seus dados pessoais?</b><br>
4598 Os seus dados pessoais serão tratados pelo tempo que for necessário para cumprir a finalidade para a qual eles foram
4599 coletados, a menos que um período de retenção mais longo seja necessário para cumprir obrigações legais, resolver
4600 disputas, proteger nossos ativos ou cumprir acordos judiciais/extrajudiciais.
4601 <br><br>
4602 Para determinar o período de retenção de seus dados pessoais, além do critério acima indicado, baseamo-nos nos
4603 seguintes critérios:
4604 <br><br>
4605 - Existência de uma obrigação legal ou contratual de reter os dados pessoais;
4606 <br><br>
4607 - Necessidade dos dados pessoais para investigação, auditoria ou exercício regular de nossos direitos em processos
4608 judiciais, administrativos ou arbitrais;
4609 <br><br>
4610 - Utilidade dos dados pessoais para fins de manutenção de registros precisos, especialmente financeiros e
4611 educacionais.
4612 <br><br>
4613 Podemos manter os seus dados pessoais, de forma anonimizada, ou seja, que não mais se refere a você pessoalmente,
4614 para fins estatísticos, sem limite de tempo, na medida em que tenhamos interesse legítimo e respaldo legal.
4615 <br><br>
4616
4617
4618 <b>6. Como mantemos seus dados pessoais seguros?</b><br>
4619 Adotamos medidas administrativas e técnicas, continuamente monitoradas e revisadas, de acordo com os avanços
4620 tecnológicos, aptas a manter os seus dados pessoais sob nossa responsabilidade protegidos de acessos não autorizados
4621 e de situações acidentais ou ilícitas de destruição, perda, alteração, comunicação ou qualquer outra forma de
4622 tratamento inadequado ou ilícito.
4623 <br><br>
4624 Nossos sistemas eletrônicos e arquivos físicos atendem aos padrões de segurança da informação adequados, tais como:
4625 <br><br>
4626 - Controle restrito de acesso interno;
4627 <br><br>
4628 - Proteção contra acessos não autorizados com a utilização de instrumentos de dupla autenticação, senha e chaves;
4629 <br><br>
4630 - Manutenção de inventário dos acessos, com o momento, a duração, a identificação do responsável pelo acesso e dados
4631 acessados.
4632 <br><br>
4633 Quaisquer comunicações legalmente exigidas sobre eventuais incidentes de segurança que possam acarretar perdas de
4634 disponibilidade, confidencialidade ou integridade dos dados pessoais sob nossa responsabilidade serão notificadas
4635 adequadamente às autoridades competentes e aos titulares afetados.
4636 <br><br>
4637
4638
4639 <b>7. Quais são os seus direitos?</b><br>
4640 Você, enquanto titular de dados pessoais, possui os seguintes direitos relativos aos seus dados pessoais:
4641 <br><br>
4642 <b>Direito X Explicação</b><br>
4643 1. Confirmação da existência de tratamento de seus dados pessoais<br>
4644 Esse direito permite que você solicite a confirmação acerca da existência de tratamento dos seus dados pessoais.
4645 <br><br>
4646 2. Acesso aos dados pessoais<br>
4647 Esse direito permite que você solicite uma cópia dos seus dados pessoais.
4648 <br><br>
4649 3. Correção de dados pessoais incompletos, inexatos ou desatualizados<br>
4650 Esse direito permite que você solicite a correção e/ou retificação dos seus dados pessoais, caso identifique que
4651 estão incompletos, inexatos ou desatualizados.
4652 <br><br>
4653 4. Anonimização, bloqueio ou eliminação de dados pessoais<br>
4654 Esse direito permite que você solicite a anonimização, o bloqueio ou a eliminação dos seus dados pessoais, se
4655 desnecessários, excessivos ou tratados de forma incorreta.
4656 <br><br>
4657 É possível, ainda, que você solicitea eliminação dos dados pessoais tratados com o seu consentimento e desde que
4658 ausente outra finalidade legitimadora de sua conservação, como a existência de obrigação legal ou regulatória a ser
4659 por nós atendida.
4660 <br><br>
4661 <br><br>
4662 O exercício desse direito também dependerá da nossa possibilidade técnica de atender o pedido.
4663 <br><br>
4664 <b>5. Portabilidade dos dados pessoais</b><br>
4665 Esse direito permite que você solicite o envio de seus dados pessoais para outras entidades, desde que não haja
4666 violação da nossa propriedade intelectual.
4667 <br><br>
4668 A requisição de exercício desse direito não implica na eliminação de dados pessoais.
4669 <br><br>
4670 <b>6. Não fornecimento ou revogação do consentimento</b><br>
4671 Esse direito permite que você não forneça ou revogue o seu consentimento, o que não afetará a legalidade de qualquer
4672 tratamento de dados pessoais anteriormente.
4673 <br><br>
4674 Você possui, ainda, os direitos de; (i) obter informações completas sobre as entidades públicas ou privadas com as
4675 quais compartilhamos seus dados pessoais; (ii) opor-se ao tratamento de dados pessoais ante ao não cumprimento da
4676 legislação aplicável; (iii) solicitar a revisão de decisão baseada no tratamento automatizado de dados pessoais e;
4677 (iv) reclamar uma possível violação de seus dados pessoais para a Autoridade Nacional de Proteção de Dados Pessoais
4678 (ANPD).
4679 <br><br>
4680 Para exercer quaisquer dos direitos acima listados, você deverá entrar em contato conosco aqui.
4681 <br><br>
4682 Envidaremos nossos melhores esforços para atender o seu pedido de forma clara, célere e segura.
4683 <br><br>
4684
4685
4686 <b>8. Políticas de terceiros e atualizações desta política</b><br>
4687 Não somos responsáveis pelas práticas de privacidade de terceiros. Portanto, sempre quando você for direcionado a
4688 outro domínio que não o Portal Senac SP e/ou tenha acesso, em decorrência de sua relação conosco, a serviços de
4689 terceiros por nós não controlados, recomendamos que você analise as suas respectivas declarações de privacidade,
4690 entrando diretamente em contato com o terceiro responsável em caso de dúvidas.
4691 <br><br>
4692 Poderemos, ocasionalmente, atualizar a presente Política. Sempre quando ocorrer alguma alteração material
4693 significativa, como sobre a finalidade para a qual tratamos os seus dados pessoais, bem como a forma e duração do
4694 tratamento, utilizaremos esforços razoáveis para que você tenha ciência das modificações.
4695 <br><br>
4696
4697
4698 <b>9. Dúvidas?</b><br>
4699 Se você tiver quaisquer dúvidas sobre esta Política ou como tratamos os seus dados pessoais, entre em contato pelo
4700 e-mail privacidade@sp.senac.br.
4701 <br><br>
4702 <b>Encarregado de Dados do Senac (DPO):</b><br>
4703 Fernando Sátiro Pereira<br>
4704 Gerente de Tecnologia da Informação do Senac São Paulo<br>
4705 Contato: privacidade@sp.senac.br
4706 <br><br>
4707 <a href="https://www.sp.senac.br/documents/d/guest/politica_de_privacidade_senac_sp_julho2020_site" target="_blank">Confira a versão anterior da nossa política</a>
4708 <br><br>
4709
4710 </p>
4711
4712
4713 </div>
4714
4715 <div class="ssp-card-registro-interesse__check-item">
4716 <input type="checkbox" name="" value="" id="check-politica-privacidade">
4717 <label for="check-politica-privacidade">Aceito a Política de Privacidade</label>
4718 </div>
4719
4720 <div class="text-center mt-5">
4721
4722 <button class="btn btn-nivel ssp-card-registro-interesse__btn-enviar btn-with-loading" href="#a" id="enviar-registro-interesse-btn" disabled="disabled">Enviar</button>
4723
4724 <p class="ssp-card-registro-interesse__aviso"><strong>Importante:</strong> O registro de interesse não garante a vaga.</p>
4725
4726 </div>
4727
4728 </div>
4729
4730 <#else>
4731
4732 <div class="ssp-card-registro-interesse emed">
4733
4734 <i id="btn-close-Modal-registro-interesse" class="fas fa-times btn-close__modal-login"></i>
4735
4736 <p class="ssp-card-registro-interesse__label-curso-selecionado">Curso selecionado:</p>
4737
4738 <div class="emed-select-group">
4739
4740 <h3 class="ssp-card-registro-interesse__title-modal"></h3>
4741
4742 <div id="unidades-registro-interesse">
4743
4744 <h4 class="ssp-card-registro-interesse__title-section-itens">Escolha uma unidade</h4>
4745
4746 <div id="select-unidades-registro-interesse">
4747 <select class="ssp-card-registro-interesse__select unidades" id="select_0"><option value="" disabled="" selected="">Selecione uma unidade</option></select>
4748 </div>
4749
4750 <div class="ssp-card-registro-interesse__add-mais">
4751 <a class="" id="add-unidade-regsitro-interesse" href="#a"><i class="fas fa-plus mr-1"></i>Adicionar unidade</a>
4752
4753
4754
4755 <a class="" id="remove-unidade-regsitro-interesse" href="#a"><i class="fas fa-times mr-1"></i>Remover unidade</a>
4756 </div>
4757
4758 </div>
4759
4760 </div>
4761
4762
4763 <div id="periodo-registro-interesse">
4764
4765 <p class="ssp-card-registro-interesse__title-section-itens">Período:</p>
4766
4767 <div class="ssp-card-registro-interesse__check-itens-content periodos-registro-interesse">
4768 <div class="ssp-card-registro-interesse__check-item">
4769 <input type="checkbox" name="" value="M" id="periodo-m">
4770 <label for="periodo-m">Manhã</label>
4771 </div>
4772
4773 <div class="ssp-card-registro-interesse__check-item">
4774 <input type="checkbox" name="" value="T" id="periodo-t">
4775 <label for="periodo-t">Tarde</label>
4776 </div>
4777
4778 <div class="ssp-card-registro-interesse__check-item" id="div-campo-todos">
4779 <input type="checkbox" name="" value="" id="check-todos-periodos">
4780 <label for="check-todos-periodos">Todos</label>
4781 </div>
4782
4783 </div>
4784
4785 </div>
4786
4787 <div id="turmas-registro-interesse">
4788
4789 <p class="ssp-card-registro-interesse__title-section-itens">Turma:</p>
4790
4791 <div class="ssp-card-registro-interesse__check-itens-content turmas-registro-interesse">
4792
4793 <div class="ssp-card-registro-interesse__check-item">
4794 <input type="checkbox" name="" value="1" id="primeiro">
4795 <label for="primeiro">1º ano</label>
4796 </div>
4797
4798 <div class="ssp-card-registro-interesse__check-item">
4799 <input type="checkbox" name="" value="2" id="segundo">
4800 <label for="segundo">2º ano</label>
4801 </div>
4802
4803 <div class="ssp-card-registro-interesse__check-item">
4804 <input type="checkbox" name="" value="3" id="terceiro">
4805 <label for="terceiro">3º ano</label>
4806 </div>
4807
4808 </div>
4809
4810 </div>
4811
4812 <div id="msg-transferencia-emed">
4813
4814 <div class="transferencia-emed-title">
4815 <i class="fas fa-comment-exclamation"></i>
4816 <p>Quer se transferir de escola?</p>
4817 </div>
4818
4819 <div class="transferencia-emed-link">
4820 <a href="#">Fale direto com a unidade de interesse.</a>
4821 </div>
4822
4823 </div>
4824
4825 <div class="ssp-card-registro-interesse__card-politica">
4826
4827 <p class="ssp-card-registro-interesse__card-politica-title">
4828 <strong>Política de Privacidade do Senac São Paulo </strong>
4829 </p>
4830
4831 <p>Data de publicação 06/08/2024</p>
4832
4833 <p class="ssp-card-registro-interesse__card-politica-text">
4834 O Serviço Nacional de Aprendizagem Comercial - Senac,
4835 Administração no Estado de São Paulo (Senac SP) zela pela privacidade e proteção dos dados pessoais de todos aqueles
4836 com quem se relaciona.
4837 </p>
4838
4839 <p class="ssp-card-registro-interesse__card-politica-text">
4840
4841 A presente Política de Privacidade tem o objetivo de informar sobre quais dados pessoais a seu respeito são
4842 coletados; por qual motivo os coletamos; com quem os compartilhamos; por quanto tempo os mantemos conosco; quais as
4843 medidas de segurança que adotamos; e quais os direitos que você tem.
4844 <br><br>
4845 É importante que você leia esta Política com atenção, bem como a consulte periodicamente para verificar possíveis
4846 alterações no que diz respeito ao tratamento de seus dados pessoais.
4847 <br><br>
4848 Em caso de dúvidas, entre em contato via e-mail indicado no final deste documento.
4849 <br><br>
4850 <b>1. Quem somos nós?</b><br>
4851 O Senac SP é a Administração Regional do Senac no Estado de São Paulo. O Senac SP está inscrito no CNPJ sob o nº
4852 03.709.814/0001-98 e tem sede à Rua Dr. Vila Nova, 228, 7º andar, na cidade de São Paulo, Estado de São Paulo. Para
4853 fins da Lei Geral de Proteção de Dados Pessoais (Lei nº 13.709/2018, LGPD) e desta Política, o Senac SP é
4854 controlador dos dados pessoais.
4855 <br><br>
4856 <b>2. O que você precisa saber antes de ler esta política?</b>
4857 <br>
4858 Dados pessoais são todas as informações que identificam ou permitam a sua identificação. Por exemplo, seu nome, CPF,
4859 e-mail, endereço, dados de contato, dados de conta bancária, entre outros. Incluem-se nesse conceito os dados
4860 pessoais sensíveis, conforme definição a seguir:
4861 <br><br>
4862 Dados pessoais sensíveis são as informações que revelam ou cujo tratamento venha revelar origem racial ou étnica,
4863 convicção religiosa, opinião política, filiação à sindicato ou à organização de caráter religioso, filosófico ou
4864 político, dados de saúde ou sobre a vida sexual, dado genético ou biométrico.
4865 <br><br>
4866 Encarregado é o seu canal de contato sobre assuntos relacionados à privacidade e à proteção de dados pessoais. Se
4867 você tiver qualquer dúvida sobre como os seus dados pessoais ou de seus dependentes/beneficiários são tratados por
4868 nós, é ele quem vai ajudar.
4869 <br><br>
4870 Titular é a pessoa física a quem se referem os dados pessoais objeto do tratamento.
4871 <br><br>
4872 Tratamento significa qualquer operação realizada com dados pessoais, tais como coleta, produção, classificação,
4873 utilização, acesso, processamento, armazenamento, eliminação, modificação, compartilhamento, transferência, entre
4874 outros.
4875 <br><br>
4876 Sempre que houver menção aos "Termos de Uso do Senac SP", "Nós" ou "Nossos", estaremos nos referindo à instituição
4877 descrita no tópico "Quem somos nós". Da mesma forma, toda vez que mencionarmos "você", "seu" ou "sua", estamos nos
4878 referindo a você, titular de dados pessoais, que possui relação com o Senac SP na qualidade de pessoa interessada,
4879 candidato a aluno, aluno e/ou ex-aluno, terceiros relacionados a candidatos ou alunos usuário de nossa rede wi-fi.
4880 <br><br>
4881 <b>3. Quais dados pessoais são tratados e por quê?</b>
4882 <br>
4883 O Senac SP realiza, a depender de sua relação conosco, o tratamento dos dados pessoais a seguir identificados para
4884 atendimento às finalidades ora descritas, conforme aplicável:
4885 <br><br>
4886 <b>Visitante / Interessado</b>
4887 <br>
4888 <b>Atividade: Navegação</b>
4889 <br>
4890 Dados pessoais: Endereço de IP com data e hora, informações sobre o dispositivo utilizado para a navegação e tipo de
4891 navegador utilizado, localização do dispositivo, sequência de cliques, termos pesquisados no Portal Senac SP, origem
4892 do tráfego.
4893 <br><br>
4894 Finalidade: Os dados pessoais são utilizados para permitir a análise do tráfego do Portal Senac SP; viabilizar o
4895 envio de anúncios, ofertas e/ou informações sobre cursos, eventos e/ou benefícios de acordo com seus interesses;
4896 aprimorar as funcionalidades do Portal Senac SP; monitorar fraudes e segurança, inclusive detectando e prevenindo
4897 ataques cibernéticos ou tentativas de roubo de identidade; atender exigências legais.
4898 <br><br>
4899 </p>
4900
4901 <hr>
4902
4903 <p class="ssp-card-registro-interesse__card-politica-text">
4904 <br>
4905 <b>Atividade: Cadastro</b><br>
4906 Dados pessoais: Nome, nome social, CPF, data de nascimento, sexo, documento de identificação civil, endereço,
4907 telefone.
4908 <br><br>
4909 Finalidade: Os dados pessoais são utilizados para cadastro na base de dados do Senac SP, havendo validação do
4910 cadastro por duplo fator de autenticação.
4911 <br>
4912 </p>
4913
4914 <hr>
4915
4916 <p class="ssp-card-registro-interesse__card-politica-text">
4917 <br>
4918 <b>Atividade: Inscrição em eventos</b><br>
4919 Dados pessoais: Nome, nome social/afetivo, estado civil, RG, CPF, e-mail, telefone, endereço, raça, evento
4920 pretendido, dado sobre deficiência, formação acadêmica, e situação profissional.
4921 <br><br>
4922 Finalidade: Os dados pessoais são utilizados para viabilizar sua inscrição e participação em eventos promovidos pelo
4923 Senac SP que não tenham participação restrita a alunos matriculados em nossos cursos.
4924 <br>
4925 </p>
4926
4927 <hr>
4928
4929 <p class="ssp-card-registro-interesse__card-politica-text">
4930 <br>
4931 <b>Atividade: Comunicação e Marketing</b><br>
4932 Dados pessoais: Nome, telefone, e-mail, empresa para qual trabalha, cidade, informações fornecidas voluntariamente
4933 em mensagens nos nossos canais de atendimento e redes sociais.
4934 <br><br>
4935 Finalidade: Os dados pessoais são utilizados para responder perguntas, dúvidas, sugestões, elogios ou reclamações;
4936 realizar estudos para entender demandas e necessidades relacionadas aos nossos cursos/eventos; viabilizar o envio de
4937 anúncios, ofertas e/ou informações sobre cursos, eventos e/ou benefícios de acordo com seus interesses.
4938 <br>
4939 </p>
4940
4941 <hr>
4942
4943 <p class="ssp-card-registro-interesse__card-politica-text">
4944 <br>
4945 <b>Candidato a aluno</b><br>
4946 <b>Atividade: Processo seletivo</b><br>
4947 Dados pessoais: Nome, nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo,
4948 número de inscrição, RG/RNE/Passaporte, CPF, filiação, formação acadêmica, experiência profissional, informação
4949 sobre deficiência, resultados de provas, dados tornados manifestamente públicos em plataformas como LinkedIn e
4950 Lattes, dentre outros, conforme exigido a depender do processo seletivo.
4951 <br><br>
4952 Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsáveis legais em caso de candidato a aluno
4953 menor de idade.
4954 <br><br>
4955 Finalidade: Os dados pessoais são utilizados, conforme necessário para cada processo seletivo, para fins de
4956 viabilizar sua inscrição e participação em processos seletivos; permitir a seleção de alunos conforme critérios
4957 previamente informados em editais e exigido em leis/normas setoriais aplicáveis; enviar informações sobre o processo
4958 seletivo, inclusive lembrete da proximidade da data de realização de provas; disponibilizar lista de classificação;
4959 responder perguntas, dúvidas, sugestões, elogios ou reclamações; enviar anúncios, ofertas e/ou informações sobre
4960 cursos, eventos e/ou benefícios de acordo com seus interesses.
4961 <br>
4962 </p>
4963
4964 <hr>
4965
4966 <p class="ssp-card-registro-interesse__card-politica-text">
4967 <br>
4968 <b>Atividade: Bolsas de estudo</b><br>
4969 Dados pessoais: Nome, nome social/afetivo, estado civil, RG, CPF, e-mail, telefone, endereço, raça, curso
4970 pretendido, dado sobre deficiência, formação acadêmica, e situação profissional, familiar e domiciliar (incluindo
4971 renda bruta de pessoas do mesmo grupo familiar identificadas pelo nome).
4972 <br><br>
4973 Finalidade: Os dados pessoais são utilizados para selecionar candidatos para o recebimento de bolsas de estudo, em
4974 particular do Programa Senac de Gratuidade (PSG).
4975 <br>
4976 </p>
4977
4978 <hr>
4979
4980 <p class="ssp-card-registro-interesse__card-politica-text">
4981 <br>
4982 <b>Aluno</b><br>
4983 <b>Atividade: Matrícula</b><br>
4984 Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades
4985 de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome,
4986 nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF,
4987 número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência,
4988 resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de
4989 cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual
4990 trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros,
4991 constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP.
4992 <br><br>
4993 Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos
4994 responsáveis legais do aluno se menor de idade.
4995 <br><br>
4996 Finalidade: Os dados pessoais são utilizados para viabilizar a celebração de contrato com você e, consequentemente,
4997 a prestação dos serviços contratados; liberar acesso a sistemas e áreas restritas; cobrar valores decorrentes do seu
4998 contrato conosco; e outras finalidades relacionadas.
4999 <br>
5000 </p>
5001
5002 <hr>
5003
5004 <p class="ssp-card-registro-interesse__card-politica-text">
5005 <br>
5006
5007 <b>Atividade: Jornada Acadêmica</b><br>
5008 Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades
5009 de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome,
5010 nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF,
5011 número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência,
5012 resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de
5013 cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual
5014 trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros,
5015 constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP.
5016 <br><br>
5017 Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos
5018 responsáveis legais do aluno se menor de idade.
5019 <br><br>
5020 Finalidade: Os dados pessoais são utilizados para registrar e acompanhar o desenvolvimento acadêmico e profissional
5021 do aluno; permitir o contato do Senac SP, por qualquer meio; viabilizar apoio pedagógico e psicopedagógico;
5022 responder suas perguntas, dúvidas, sugestões, elogios ou reclamações; enviar comunicações administrativas como, por
5023 exemplo, sobre alterações em nossas políticas; monitorar o desenvolvimento de atividades de estágio; permitir a
5024 realização de intercâmbio acadêmico.
5025 <br>
5026 </p>
5027
5028 <hr>
5029
5030 <p class="ssp-card-registro-interesse__card-politica-text">
5031 <br>
5032 <b>Atividade: Bolsas de estudo</b><br>
5033 Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades
5034 de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome,
5035 nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF,
5036 número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência,
5037 resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de
5038 cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual
5039 trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros,
5040 constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP.
5041 <br><br>
5042 Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos
5043 responsáveis legais do aluno se menor de idade.
5044 <br><br>
5045 Finalidade: Os dados pessoais são utilizados para avaliar e monitorar o cumprimento de requisitos para o
5046 fornecimento de bolsas de estudo.
5047 <br>
5048 </p>
5049
5050 <hr>
5051
5052 <p class="ssp-card-registro-interesse__card-politica-text">
5053 <br>
5054
5055
5056 <b>Atividade: Benefícios</b><br>
5057 Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades
5058 de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome,
5059 nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF,
5060 número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência,
5061 resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de
5062 cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual
5063 trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros,
5064 constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP.
5065 <br><br>
5066 Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos
5067 responsáveis legais do aluno se menor de idade.
5068 <br><br>
5069 Finalidade: Os dados pessoais são utilizados para fins de oferecer benefícios ligados ao objeto do seu contrato
5070 educacional com o Senac SP, como, por exemplo, o download gratuito de programas de computador devidamente
5071 licenciados, descontos em serviços prestados por nossos parceiros ou para aquisição de obras da Editora Senac, entre
5072 outros; enviar anúncios, ofertas e/ou informações sobre cursos, eventos e/ou benefícios de acordo com seus
5073 interesses; viabilizar análises e estudos relacionados ao interesse por e utilização de determinados benefícios,
5074 inclusive para aperfeiçoamento das nossas parcerias comerciais.
5075 <br>
5076 </p>
5077
5078 <hr>
5079
5080 <p class="ssp-card-registro-interesse__card-politica-text">
5081 <br>
5082 <b>Atividade: Procedimentos internos</b><br>
5083 Finalidade: Os dados pessoais são utilizados para fins de gestão da oferta, qualidade e aprimoramento dos serviços
5084 prestados pelo Senac SP, inclusive por meio do envio de pesquisas; viabilizar estratégia de aprendizagem remota e
5085 presencial; fornecer serviços de suporte; realizar estudos para entender demandas e necessidades relacionadas aos
5086 nossos produtos/serviços; preparar e disponibilizar relatórios de auditoria e gerenciais; fornecer segunda via e/ou
5087 cópia de documentos como diploma e histórico escolar; criar grupos de representantes de alunos para facilitar o
5088 diálogo e endereçamento de demandas; informar sobre a possibilidade de participação em processos acadêmicos e de
5089 pesquisa.
5090 <br>
5091 </p>
5092
5093 <hr>
5094
5095 <p class="ssp-card-registro-interesse__card-politica-text">
5096 <br>
5097
5098
5099 <b>Atividade: Obrigações legais e exercícios de direito</b><br>
5100 Finalidade: Os dados pessoais são utilizados para atender políticas públicas, como as assistenciais e de transporte
5101 escolar; viabilizar a condução do censo escolar; realizar as divulgações exigidas por normas legais ou de interesse
5102 do Senac SP, como lista de aprovados e conquistas obtidas; enviar dados ao MEC; inscrever estudantes para, por
5103 exemplo, realizar o Exame Nacional de Desempenho de Estudantes (Enade); colaborar com o cumprimento de ordem
5104 judicial, de autoridade competente ou de órgão fiscalizador.
5105 <br>
5106 </p>
5107
5108 <hr>
5109
5110 <p class="ssp-card-registro-interesse__card-politica-text">
5111 <br>
5112
5113 <b>Atividade: Pesquisas e desenvolvimento</b><br>
5114 Finalidade: Os dados pessoais poderão ser utilizados para entrar em contato e conduzir pesquisas para identificar
5115 pontos de melhoria nos produtos e serviços, permitir a mensuração de qualidade dos cursos, permitir a execução do
5116 programa de trabalho do Senac SP, bem como para conduzir pesquisas que decorram de lei e/ou regulamento ao qual o
5117 Senac SP está sujeito.
5118 <br>
5119 </p>
5120
5121 <hr>
5122
5123 <p class="ssp-card-registro-interesse__card-politica-text">
5124 <br>
5125
5126 <b>Atividade: Monitoramento</b><br>
5127 Finalidade: Os dados pessoais são utilizados para fins de monitorar a segurança dos ambientes de ensino e
5128 aprendizagem; prevenir fraudes, prática de condutas ilícitas e incidentes de segurança; cumprir exigências, por
5129 exemplo, de registro de acesso às aplicações estabelecidas no Marco Civil da Internet - Lei nº 12.965/2014.
5130 <br>
5131 </p>
5132
5133 <hr>
5134
5135 <p class="ssp-card-registro-interesse__card-politica-text">
5136 <br>
5137
5138 <b>Ex-aluno</b><br>
5139 <b>Atividade: Relacionamento, pesquisa, obrigações legais e exercício de direitos</b><br>
5140 Dados pessoais: Nome, telefone, e-mail, endereço, CPF, número de matrícula, formação acadêmica, histórico acadêmico,
5141 fotos, dentre outros, a depender da modalidade de ensino realizada no Senac SP.
5142 <br><br>
5143 Finalidade: Os dados pessoais são utilizados para atender obrigações do Senac SP de manutenção de registros
5144 escolares; acompanhar o seu desenvolvimento (por exemplo, com a análise da sua empregabilidade em decorrência da
5145 formação recebida); responder perguntas, dúvidas, sugestões, elogios ou reclamações; enviar anúncios, ofertas e/ou
5146 informações sobre cursos, eventos e/ou benefícios de acordo com seus interesses; entrar em contato e conduzir
5147 pesquisas com fins de identificar motivação para realização de cursos e inserção produtiva no mercado, bem como para
5148 conduzir pesquisas que decorram de lei e/ou regulamento ao qual o Senac SP está sujeito; garantir o cumprimento de
5149 obrigação legal ou regulatória e/ou o exercício de direitos do Senac SP, inclusive em processos judiciais,
5150 administrativos e arbitrais; atender consulta de terceiros acerca do seu relacionamento com o Senac SP; colaborar
5151 com o cumprimento de ordem judicial, de autoridade competente, órgão fiscalizador ou com pedido de entidade de
5152 fornecimento de dados sobre você no caso de, por exemplo, concursos públicos.
5153 <br>
5154 </p>
5155
5156 <hr>
5157
5158 <p class="ssp-card-registro-interesse__card-politica-text">
5159 <br>
5160 <b>Terceiros relacionados a candidatos e/ou alunos</b><br>
5161 <b>Atividade: Atuação de responsável legal e pagamento pelo responsável financeiro. Seleção de bolsistas</b><br>
5162 Dados pessoais: Nome, estado civil, RG, CPF, e-mail, telefone, endereço, renda bruta, grau de parentesco com
5163 aluno/candidato a aluno, dados de pagamento, dados de utilização de portais do Senac SP (endereço de IP, login).
5164 <br><br>
5165 Finalidade: Os dados pessoais são utilizados para permitir a celebração de contratos com menores e a gestão da vida
5166 escolar por responsável legal; viabilizar operações de pagamento, pelo responsável financeiro; permitir a seleção de
5167 candidatos para oferta de bolsas de estudos; atender requisições de autoridades e exercício regular de direito pelo
5168 Senac SP.
5169 <br>
5170 </p>
5171
5172 <hr>
5173
5174 <p class="ssp-card-registro-interesse__card-politica-text">
5175 <br><br>
5176 <b>Usuário Wi-Fi</b><br>
5177 <b>Atividade: Uso da rede wi-fi CONECTA SENAC</b><br>
5178 Dados pessoais: Nome, e-mail, CPF, endereço de IP com data e hora, informações sobre o dispositivo utilizado para a
5179 navegação e tipo de navegador utilizado (inclusive endereço MAC), localização do dispositivo.
5180 <br><br>
5181 Finalidade: Os dados pessoais são utilizados para viabilizar o uso da rede wi-fi "Conecta_Senac"; atender leis e
5182 outros normativos aplicáveis, bem como ordem de autoridades, em particular em casos de investigação; avaliar
5183 desempenho da rede e realizar diagnóstico de problemas, solucionando-os; comunicar sobre manutenção da rede e/ou
5184 outras informações relevantes; proteger você, terceiros e o Senac.
5185 <br><br>
5186
5187
5188 Os dados pessoais acima elencados podem ser coletados primordialmente das seguintes fontes: (a) diretamente de você
5189 ou da pessoa autorizada por você; (b) fornecedores do Senac SP, como empresas prestadoras de serviços; (c) sistemas
5190 de monitoramento de ambientes Senac SP; (d) autoridades públicas, judiciais e administrativas. Você é a única pessoa
5191 responsável pela exatidão, veracidade e autenticidade das informações fornecidas diretamente fornecidas.
5192 <br><br>
5193 Trataremos os dados pessoais conforme hipóteses autorizadoras listadas na LGPD, notadamente: (i) cumprimento de
5194 obrigação legal ou regulatória, (ii) execução de contrato, (iii) exercício regular de direitos, e (iv) legítimo
5195 interesse do Senac SP ou de terceiros. Para os casos em que a lei exija a obtenção de seu consentimento e/ou de seu
5196 responsável legal, atuaremos de modo a garantir que você seja devidamente informado acerca da necessidade da
5197 autorização e consequências da sua recusa, para que você possa manifestar livremente a sua decisão.
5198 <br><br>
5199 O Senac SP utilizará os seus dados pessoais para finalidades compatíveis com as informadas nesta Política e sempre
5200 que entender haver base legal para o tratamento posterior nos termos da LGPD.
5201 <br><br>
5202
5203
5204 <b>4. Com quem compartilhamos os seus dados pessoais?</b><br>
5205 Poderemos compartilhar os seus dados pessoais com entidades que compõem a nossa estrutura organizacional
5206 (Administração Nacional e as demais Administrações Regionais), com empresas com as quais mantemos algum tipo de
5207 relação comercial, com seu responsável legal e/ou financeiro ou, ainda, com órgãos públicos, tais como parceiros
5208 comerciais, instituições bancárias, escritórios de advocacia, empresas de suporte aos nossos sistemas, bureaus de
5209 crédito, consultorias contábeis, órgãos públicos e o Poder Judiciário. Os seus dados pessoais podem ser
5210 compartilhados para finalidades legítimas da seguinte maneira:
5211 <br><br>
5212 - Para condução das atividades de tratamento de dados pessoais descritas nesta Política e/ou decorrentes de seu
5213 relacionamento e contrato de prestação de serviços conosco;
5214 <br><br>
5215 - Para permitir que terceiros forneçam serviços para o Senac SP e/ou acompanhem a prestação de serviços contratada,
5216 conforme aplicável;
5217 <br><br>
5218 - Para obedecer as nossas obrigações legais, regulatórias ou contratuais, ou responder a um processo judicial ou
5219 administrativo, auditoria ou solicitações legais por autoridades competentes, quando entendermos que estamos
5220 legalmente obrigados a fazê-lo ou, ainda, para fins de atendimento a ofícios relacionados a processos seletivos e/ou
5221 concursos públicos dos quais você participa. As categorias de destinatários incluem, por exemplo, contrapartes em
5222 contratos, órgãos judiciais e governamentais;
5223 <br><br>
5224 - Para exercício legítimo de direito em processo judicial, administrativo ou arbitral, inclusive prevenindo lesão ou
5225 ameaça a direito;
5226 <br><br>
5227 - Quando for necessário para proteger você, o Senac SP e seus interesses legítimos e/ou terceiros;
5228 <br><br>
5229 - Como parte de due diligence corporativa e/ou due diligence relativa à fusão, aquisição, alteração societária, ou
5230 em casos de recuperação judicial ou falência, nós podemos divulgar os seus dados pessoais ao potencial vendedor ou
5231 comprador, novo prestador de serviços e respectivos assessores, na medida do quanto necessário e adequado para o
5232 atingimento da aludida finalidade;
5233 <br><br>
5234 - Com o seu consentimento legalmente obtido, isto é dado de forma voluntária e sem que você sofra qualquer
5235 consequência adversa de sua decisão que negar ou revogar o seu consentimento.
5236 <br><br>
5237
5238
5239 Informações agregadas e anonimizadas poderão ser livremente compartilhadas.
5240 <br><br>
5241 Para resguardar a sua privacidade, utilizamos instrumentos contratuais e auditorias para assegurar que os terceiros
5242 que recebam os seus dados pessoais confiram a ele a mesma proteção que nós proporcionamos.
5243 <br><br>
5244 Atualmente, apenas compartilhamos os seus dados pessoais em território nacional. Caso haja transferência dos seus
5245 dados pessoais para fora do Brasil, nos certificaremos de que essa transferência ocorra em observância à legislação
5246 brasileira e que você seja informado de tal compartilhamento, sempre que exigido pela legislação aplicável.
5247 <br><br>
5248 Você pode ter mais informações sobre os terceiros com quem compartilhamos os seus dados pessoais por meio de
5249 requisição específica, conforme indicado no tópico que trata sobre os seus direitos.
5250 <br><br>
5251
5252
5253 <b>5. Por quanto tempo tratamos os seus dados pessoais?</b><br>
5254 Os seus dados pessoais serão tratados pelo tempo que for necessário para cumprir a finalidade para a qual eles foram
5255 coletados, a menos que um período de retenção mais longo seja necessário para cumprir obrigações legais, resolver
5256 disputas, proteger nossos ativos ou cumprir acordos judiciais/extrajudiciais.
5257 <br><br>
5258 Para determinar o período de retenção de seus dados pessoais, além do critério acima indicado, baseamo-nos nos
5259 seguintes critérios:
5260 <br><br>
5261 - Existência de uma obrigação legal ou contratual de reter os dados pessoais;
5262 <br><br>
5263 - Necessidade dos dados pessoais para investigação, auditoria ou exercício regular de nossos direitos em processos
5264 judiciais, administrativos ou arbitrais;
5265 <br><br>
5266 - Utilidade dos dados pessoais para fins de manutenção de registros precisos, especialmente financeiros e
5267 educacionais.
5268 <br><br>
5269 Podemos manter os seus dados pessoais, de forma anonimizada, ou seja, que não mais se refere a você pessoalmente,
5270 para fins estatísticos, sem limite de tempo, na medida em que tenhamos interesse legítimo e respaldo legal.
5271 <br><br>
5272
5273
5274 <b>6. Como mantemos seus dados pessoais seguros?</b><br>
5275 Adotamos medidas administrativas e técnicas, continuamente monitoradas e revisadas, de acordo com os avanços
5276 tecnológicos, aptas a manter os seus dados pessoais sob nossa responsabilidade protegidos de acessos não autorizados
5277 e de situações acidentais ou ilícitas de destruição, perda, alteração, comunicação ou qualquer outra forma de
5278 tratamento inadequado ou ilícito.
5279 <br><br>
5280 Nossos sistemas eletrônicos e arquivos físicos atendem aos padrões de segurança da informação adequados, tais como:
5281 <br><br>
5282 - Controle restrito de acesso interno;
5283 <br><br>
5284 - Proteção contra acessos não autorizados com a utilização de instrumentos de dupla autenticação, senha e chaves;
5285 <br><br>
5286 - Manutenção de inventário dos acessos, com o momento, a duração, a identificação do responsável pelo acesso e dados
5287 acessados.
5288 <br><br>
5289 Quaisquer comunicações legalmente exigidas sobre eventuais incidentes de segurança que possam acarretar perdas de
5290 disponibilidade, confidencialidade ou integridade dos dados pessoais sob nossa responsabilidade serão notificadas
5291 adequadamente às autoridades competentes e aos titulares afetados.
5292 <br><br>
5293
5294
5295 <b>7. Quais são os seus direitos?</b><br>
5296 Você, enquanto titular de dados pessoais, possui os seguintes direitos relativos aos seus dados pessoais:
5297 <br><br>
5298 <b>Direito X Explicação</b><br>
5299 1. Confirmação da existência de tratamento de seus dados pessoais<br>
5300 Esse direito permite que você solicite a confirmação acerca da existência de tratamento dos seus dados pessoais.
5301 <br><br>
5302 2. Acesso aos dados pessoais<br>
5303 Esse direito permite que você solicite uma cópia dos seus dados pessoais.
5304 <br><br>
5305 3. Correção de dados pessoais incompletos, inexatos ou desatualizados<br>
5306 Esse direito permite que você solicite a correção e/ou retificação dos seus dados pessoais, caso identifique que
5307 estão incompletos, inexatos ou desatualizados.
5308 <br><br>
5309 4. Anonimização, bloqueio ou eliminação de dados pessoais<br>
5310 Esse direito permite que você solicite a anonimização, o bloqueio ou a eliminação dos seus dados pessoais, se
5311 desnecessários, excessivos ou tratados de forma incorreta.
5312 <br><br>
5313 É possível, ainda, que você solicitea eliminação dos dados pessoais tratados com o seu consentimento e desde que
5314 ausente outra finalidade legitimadora de sua conservação, como a existência de obrigação legal ou regulatória a ser
5315 por nós atendida.
5316 <br><br>
5317 <br><br>
5318 O exercício desse direito também dependerá da nossa possibilidade técnica de atender o pedido.
5319 <br><br>
5320 <b>5. Portabilidade dos dados pessoais</b><br>
5321 Esse direito permite que você solicite o envio de seus dados pessoais para outras entidades, desde que não haja
5322 violação da nossa propriedade intelectual.
5323 <br><br>
5324 A requisição de exercício desse direito não implica na eliminação de dados pessoais.
5325 <br><br>
5326 <b>6. Não fornecimento ou revogação do consentimento</b><br>
5327 Esse direito permite que você não forneça ou revogue o seu consentimento, o que não afetará a legalidade de qualquer
5328 tratamento de dados pessoais anteriormente.
5329 <br><br>
5330 Você possui, ainda, os direitos de; (i) obter informações completas sobre as entidades públicas ou privadas com as
5331 quais compartilhamos seus dados pessoais; (ii) opor-se ao tratamento de dados pessoais ante ao não cumprimento da
5332 legislação aplicável; (iii) solicitar a revisão de decisão baseada no tratamento automatizado de dados pessoais e;
5333 (iv) reclamar uma possível violação de seus dados pessoais para a Autoridade Nacional de Proteção de Dados Pessoais
5334 (ANPD).
5335 <br><br>
5336 Para exercer quaisquer dos direitos acima listados, você deverá entrar em contato conosco aqui.
5337 <br><br>
5338 Envidaremos nossos melhores esforços para atender o seu pedido de forma clara, célere e segura.
5339 <br><br>
5340
5341
5342 <b>8. Políticas de terceiros e atualizações desta política</b><br>
5343 Não somos responsáveis pelas práticas de privacidade de terceiros. Portanto, sempre quando você for direcionado a
5344 outro domínio que não o Portal Senac SP e/ou tenha acesso, em decorrência de sua relação conosco, a serviços de
5345 terceiros por nós não controlados, recomendamos que você analise as suas respectivas declarações de privacidade,
5346 entrando diretamente em contato com o terceiro responsável em caso de dúvidas.
5347 <br><br>
5348 Poderemos, ocasionalmente, atualizar a presente Política. Sempre quando ocorrer alguma alteração material
5349 significativa, como sobre a finalidade para a qual tratamos os seus dados pessoais, bem como a forma e duração do
5350 tratamento, utilizaremos esforços razoáveis para que você tenha ciência das modificações.
5351 <br><br>
5352
5353
5354 <b>9. Dúvidas?</b><br>
5355 Se você tiver quaisquer dúvidas sobre esta Política ou como tratamos os seus dados pessoais, entre em contato pelo
5356 e-mail privacidade@sp.senac.br.
5357 <br><br>
5358 <b>Encarregado de Dados do Senac (DPO):</b><br>
5359 Fernando Sátiro Pereira<br>
5360 Gerente de Tecnologia da Informação do Senac São Paulo<br>
5361 Contato: privacidade@sp.senac.br
5362 <br><br>
5363 <a href="https://www.sp.senac.br/documents/d/guest/politica_de_privacidade_senac_sp_julho2020_site" target="_blank">Confira a versão anterior da nossa política</a>
5364 <br><br>
5365
5366 </p>
5367
5368 </div>
5369
5370 <div class="ssp-card-registro-interesse__check-item">
5371 <input type="checkbox" name="" value="" id="check-politica-privacidade">
5372 <label for="check-politica-privacidade">Aceito a Política de Privacidade</label>
5373 </div>
5374
5375 <div class="text-center mt-5">
5376
5377 <button class="btn btn-nivel ssp-card-registro-interesse__btn-enviar btn-with-loading" href="#a" id="enviar-registro-interesse-btn" disabled="disabled">Enviar</button>
5378
5379 <p class="ssp-card-registro-interesse__aviso"><strong>Importante:</strong> O registro de interesse não garante a vaga.</p>
5380
5381 </div>
5382
5383 </div>
5384
5385 </#if>
5386 </section>
5387
5388 <section id="modal-registro-interesse-sucesso" class="ssp-modal-registro-interesse d-none">
5389
5390 <div class="ssp-card-msg-sucesso">
5391
5392 <div class="ssp-card-msg-sucesso__content">
5393 <i class="fas fa-exclamation-circle"></i>
5394 <p>Obrigado por registrar seu interesse!</p>
5395 <p>Acompanhe seu e-mail para ficar por dentro das novidades!</p>
5396 </div>
5397
5398 <div>
5399 <a class="btn btn-nivel ssp-card-msg-sucesso__btn" href="#" id="btn-voltar-home">Voltar para a home</a>
5400 </div>
5401
5402 </div>
5403
5404 </section>
5405
5406 <section id="modal-registro-interesse-erro" class="ssp-modal-registro-interesse d-none">
5407
5408 <div class="ssp-card-msg-erro">
5409
5410 <div class="ssp-card-msg-sucesso__content">
5411 <i class="fas fa-exclamation-circle" style="color: #ec3a3a;"></i>
5412 <p>Houve um erro ao registrar seu interesse!</p>
5413 <p>Por favor, tente novamente!</p>
5414 </div>
5415
5416 <div>
5417 <a class="btn btn-nivel ssp-card-msg-sucesso__btn" href="#">Voltar para a home</a>
5418 </div>
5419
5420 </div>
5421
5422 </section>
5423
5424 <!-- Aviso para curso de aprendizagem -->
5425
5426 <div id="aviso-curso-aprendizagem" class="ssp-bolsa-formulario__card-aviso-atencao d-none" style="width: 100%;">
5427
5428 <i class="fas fa-exclamation-circle ssp-bolsa-formulario__card-aviso-atencao-icon" aria-hidden="true"></i>
5429
5430 <div class="ssp-bolsa-formulario__card-aviso-texto">
5431 <p>Para contratar aprendiz, preencha o formulário e entraremos em contato.</p>
5432 </div>
5433
5434 </div>
5435
5436 <!-- modal form de aprendizagem -->
5437
5438 <#if isAprendizagem>
5439
5440 <#assign formId = 48097883 />
5441 <!-- formInstanceId é variável de acordo com o ID do formulário -->
5442 <#assign formPreferences = {"displayDepth": "1", "portletSetupPortletDecoratorId": "barebone", "formInstanceId": "formId"}/>
5443
5444 <section data-lfr-background-image-id="bg-programe-form" class="ssp-section ssp-section-lg-bottom" data-modal="modal">
5445
5446 <div class="container ssp_ct_form_programe">
5447
5448 <button type="button" data-modal="close-form-modal">
5449 fechar
5450 <i class="fas fa-times"></i>
5451 </button>
5452
5453 <@liferay_portlet["runtime"]
5454 portletName="com_liferay_dynamic_data_mapping_form_web_portlet_DDMFormPortlet"
5455 defaultPreferences=freeMarkerPortletPreferences.getPreferences(formPreferences)
5456 />
5457
5458 </div>
5459
5460 </section>
5461
5462 </#if>
5463
5464 <div id="avisoTrampolim" class="ssp-bolsa-formulario__card-aviso-atencao container text-left d-none" style="width: 100%;">
5465 <i class="fas fa-exclamation-circle ssp-bolsa-formulario__card-aviso-atencao-icon" aria-hidden="true"></i>
5466 <div class="ssp-bolsa-formulario__card-aviso-texto"><p>Para informações sobre preço do curso e matrícula, entre em contato a unidade.</p>
5467 </div>
5468
5469 </div>
5470
5471
5472 <!--modal forma pagto extensao-->
5473 <section id="modalFormaPagtoExt" class="modal-extensao ssp-modal">
5474 <div class="modal-extensao_content">
5475 <i class="fas fa-undo modal-extensao-voltar-icon"><span class="modal-extensao-voltar-txticon">Voltar</span></i>
5476 <h1 class="modal-extensao-condicoes__title">Descontos e Parcelamento</h1>
5477 <div class="row">
5478
5479 <!-- <button class="btn-preco-padrao d-xs-flex d-sm-flex d-lg-none d-xl-none">
5480 Preço Padrão
5481 <i class="fas fa-chevron-right custom-icon-right"></i>
5482 </button> -->
5483
5484 <div class="col-lg-6 col-sm-12 col-xs-12">
5485
5486 <h2 class="modal-extensao_subtitle">Investimento</h2>
5487
5488 <span class="modal-extensao_preco">R$ <span class="precoVendaOferta"></span></span>
5489 <span class="modal-extensao_txteconomiza">.<b class="modal-extensao_txtverde"></b></span>
5490 <div class="modal-extensao_ctboleto pt-2 pb-2 mb-3">
5491 <i class="fas fa-barcode" aria-hidden="true"></i>
5492 <span class="modal-extensao_txtPag">Boleto Bancário</span>
5493 <span class="modal-extensao_txtParcela"><b><span class="numParcelaBoleto"></span>x de R$ <span class="precoParcelaBoleto"></span></b></span>
5494 <span class="modal-extensao_txtParcela">sem juros</span>
5495 </div>
5496 <div class="modal-extensao_ctcard pt-2 pb-2 mb-3">
5497 <i class="far fa-credit-card" aria-hidden="true"></i>
5498 <span class="modal-extensao_txtPag">Cartão de Crédito</span>
5499 <span class="modal-extensao_txtParcela"><b><span class="numParcelaCartoes"></span>x de R$ <span class="precoParcelaCartoes"></span></b></span>
5500 <span class="modal-extensao_txtParcela">sem juros</span>
5501 </div>
5502 <p class="modal-extensao_txtParcela pt-5"><b>À vista:</b> R$ <span class="precoAVistaPadraoExt"></span> <span class="modal-extensao_txtporcent">(-8%)</span></p>
5503 </div>
5504
5505 <!-- <hr class="ssp-divisor d-xs-block d-sm-block d-lg-none d-xl-none"> -->
5506
5507 <!-- <button class="btn-preco-ex-aluno d-xs-flex d-sm-flex d-lg-none d-xl-none">
5508 Preço para Contribuintes,<br>alunos e ex-alunos*
5509 <i class="fas fa-chevron-right custom-icon-right"></i>
5510 </button> -->
5511
5512 <div class="col-lg-6 col-sm-12 col-xs-12">
5513 <h2 class="modal-extensao_subtitle mt-4">Valor com 20% de desconto para alunos, ex-alunos e contribuintes Senac</h2>
5514 <span class="modal-extensao_preco">R$ <span class="precoContrExt"></span></span>
5515 <span class="modal-extensao_txteconomiza">Você economiza <b class="modal-extensao_txtverde">R$ <span class="economiaExt"></span> (-20%)</b></span>
5516 <div class="modal-extensao_ctboleto pt-2 pb-2 mb-3">
5517 <i class="fas fa-barcode" aria-hidden="true"></i>
5518 <span class="modal-extensao_txtPag">Boleto Bancário</span>
5519 <span class="modal-extensao_txtParcela"><b><span class="numParcelaBoleto"></span>x de R$ <span class="precoParcelaBoletoExt"></span></b></span>
5520 <span class="modal-extensao_txtParcela">sem juros</span>
5521 </div>
5522 <div class="modal-extensao_ctcard pt-2 pb-2 mb-3">
5523 <i class="far fa-credit-card" aria-hidden="true"></i>
5524 <span class="modal-extensao_txtPag">Cartão de Crédito</span>
5525 <span class="modal-extensao_txtParcela"><b><span class="numParcelaCartoes"></span>x de R$ <span class="precoParcelaCartoesExt"></span></b></span>
5526 <span class="modal-extensao_txtParcela">sem juros</span>
5527 </div>
5528 <p class="modal-extensao_txtParcela pt-5"><b>À vista:</b> R$ <span class="precoAVistaContrExt"></span> <span class="modal-extensao_txtporcent">(-8%)</span></p>
5529 </div>
5530 <div class="col-lg-6 col-sm-12 col-xs-12">
5531 <a target="_blank" href="#">
5532 <button class="btn modal-extensao__btn mt-3 text-uppercase">Comprar</button>
5533 </a>
5534 </div>
5535 <div class="col-lg-6 col-sm-12 col-xs-12">
5536 <button class="btn btn-primary modal-extensao-btn-conheca mt-3" >Conheça os descontos</button>
5537 </div>
5538 </div>
5539 </div>
5540
5541 <div class="modal-extensao_content modal-pergunta-aluno-ext d-none">
5542
5543 <i class="fal fa-times modal-extensao-voltar-icon" style="font-size:25px;"></i>
5544 <h1 class="modal-extensao-condicoes__title">Você é nosso aluno?</h1>
5545 <div class="row">
5546 <div class="col-6 text-right">
5547
5548 <button class="btn btn-primary modal-extensao-btn-aluno-sim-nao sim mt-3">Sim</button>
5549
5550 </div>
5551 <div class="col-6 text-left">
5552
5553 <button class="btn btn-primary modal-extensao-btn-aluno-sim-nao nao mt-3">Não</button>
5554
5555 </div>
5556 </div>
5557 <div class="row d-none msg-alunoSim">
5558 <div class="col-12 text-center mt-10">
5559 <i class="fas fa-check-circle modal-extensao-ico-check"></i>
5560 <h2 class="modal-extensao-condicoes__subtitle">Boa notícia!</h2>
5561 <p class="modal-extensao-aluno_txtcontent">Você tem 20% de desconto neste curso.<br> Faça seu login e preencha os dados solicitados.</p>
5562 <p class="mb-0">
5563 <a target="_blank" href="#">
5564 <button class="btn modal-extensao-aluno__btn ok mt-3">Fazer Inscrição</button>
5565 </a>
5566 </p>
5567 <p class="mt-0">
5568 <a href="https://www.sp.senac.br/descontos-e-parcelamentos/pos-e-extensao-universitaria">
5569 <button class="btn btn-primary modal-extensao-btn-conferir mt-3" id="btn-conferir-regras">Conferir Regras</button>
5570 </a>
5571 </p>
5572 </div>
5573 </div>
5574 <div class="row d-none msg-alunoNao">
5575 <div class="col-12 text-center mt-10">
5576 <i class="fas fa-percentage modal-extensao-ico-percent"></i>
5577 <h2 class="modal-extensao-condicoes__subtitle">Poxa! Não fique triste...</h2>
5578 <p class="modal-extensao-aluno_txtcontent">Você não tem direito ao desconto de 20% neste curso. Mas você tem direito ao desconto de pontualidade (melhorar texto)</p>
5579 <p class="mb-0">
5580 <a target="_blank" href="#">
5581 <button class="btn modal-extensao-aluno__btn not mt-3">Fazer Inscrição</button>
5582 </a>
5583 </p>
5584 <p class="mt-0">
5585 <a href="https://www.sp.senac.br/descontos-e-parcelamentos/pos-e-extensao-universitaria">
5586 <button class="btn btn-primary modal-extensao-btn-conferir mt-3" id="btn-conferir-regras">Conferir Regras</button>
5587 </a>
5588 </p>
5589 </div>
5590 </div>
5591 </div>
5592 </section>
5593
5594
5595 <!-- Modal Descontos e Parcelamento EMED -->
5596 <div id="modalPagtoEmed" class="ssp-modal">
5597
5598 <div class="ssp-card-modal-forma-pagamento">
5599
5600 <div class="ssp-card-modal-forma-pagamento__header">
5601 <h6 class="ssp-card-modal-forma-pagamento__header-title font-weight-bold text-center" style="color:#454F63">Descontos e parcelamentos</h6>
5602 <div class="ssp-modal-emed-btfechar">
5603 <i class="ssp-card-modal-forma-pagamento__btn-close ssp-card-modal-forma-pagamento__btn-close_0"></i>
5604 <span>Fechar</span>
5605 </div>
5606 </div>
5607
5608 <div class="ssp-card-modal-forma-pagamento__body">
5609
5610 <p class="ssp-modal-emed-info-valor-matricula"><span class="ssp-modal-emed-info-txt-matricula">1ª parcela de R$ <span class="precoParcelaEmedModal"></span> <span>+ <span class="numParcelaEmedModal"></span> mensalidades de R$ <span class="precoParcelaEmedModal"></span></span></p>
5611
5612 <p class="ssp-card-modal-forma-pagamento__valor-desconto ssp-modal-emed-valor-total-txt"> <span class="ssp-modal-emed-txtValor">Valor total:</span> <span class="precoVendaOferta ssp-modal-emed-valor-total">R$ 414,40</span>
5613 <span class="ssp-card-modal-emed-ano">/ano</span></p>
5614
5615 <p class="txt-desconto-oito ssp-modal-emed-txt-desconto-oito text-center" style="border-bottom: 0px;"><i class="fas fa-badge-percent"></i> <span class="txt-pague-vista">Pague à vista e</span> <span class="txt-ganhe-mais" style="color:#FC7834;font-weight:bold"> ganhe mais 8% de desconto.</span></p>
5616 <div class="ssp-card-modal-emed-lineou"><span>ou</span></div>
5617
5618 <small class="ssp-card-oferta-curso__title-item font-weight-bold" style="margin:0;font-size:14px;text-align: center;">Ganhe fôlego: parcele seu curso!</small>
5619
5620 <div class="ssp-card-modal-forma-pagamento__tipos">
5621
5622 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start ssp-card-modal-emed-centralizaPagtos" style="margin:0 auto" >
5623 <i class="ssp-card-modal-forma-pagamento__icon-boleto-cartao"></i>
5624 <div class="ssp-card-modal-forma-pagamento__info-cartao">
5625 <p><strong>Cartão de Crédito +</strong></p>
5626 <p><strong>Boleto Bancário</strong></p>
5627 <!-- <p>1ª parcela em <span>até 4x de R$ <span class="valorParcelaEntradaCartoesBoleto">265,50</span></span> sem juros no cartão</p> -->
5628 <p>1ª parcela no cartão</p>
5629 <p>Valor restante em <span>até <span class="numParcelaCartoesBoleto"></span>x de <br>R$ <span class="precoParcelaCartoesBoleto"></span></span> sem juros no boleto</p>
5630 </div>
5631 </div>
5632
5633
5634 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start ssp-card-modal-emed-centralizaPagtos" style="margin:0 auto" >
5635 <i class="ssp-card-modal-forma-pagamento__icon-credit-card"></i>
5636 <div class="ssp-card-modal-forma-pagamento__info-cartao">
5637 <p><strong>Cartão de Crédito</strong></p>
5638 <p>(<span class="textoCartoesAceitos">Mastercard, Visa, Elo, American Express, Hipercard</span>)</p>
5639 <p>Em até <span><span class="numParcelaCartoes">12</span>x de R$ <span class="precoParcelaCartoes">34,53</span></span> sem juros</p>
5640 </div>
5641 </div>
5642
5643 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start mt-4 ssp-card-modal-emed-centralizaPagtos" style="margin:0 auto" id="content_boleto_0">
5644 <i class="ssp-card-modal-forma-pagamento__icon-boleto"></i>
5645 <div class="ssp-card-modal-forma-pagamento__info-cartao">
5646 <p><strong>Boleto Bancário</strong></p>
5647 <p>Em até <span><span class="numParcelaBoleto">12</span>x de R$ <span class="precoParcelaBoleto">34,53</span></span> sem juros</p>
5648 </div>
5649 </div>
5650
5651 <p class="txt-desconto-oito ssp-modal-emed-txt-desconto-oito ssp-modal-emed-boxoito" data-info="data-para-matricula"><span class="ssp-card-modal-emed-valorObs obsspan"><i class="fas fa-exclamation-circle"></i>As vagas são limitadas e por ordem de chegada!</span>Garanta seu lugar! Matricule-se agora.</p>
5652
5653 <p class="txt-desconto-oito ssp-modal-emed-txt-desconto-oito ssp-card-modal-emed-boxDesconto" data-info="msg-20-desconto"><strong>E você ainda tem</strong><span style="color:#FC7834;font-weight:bold"> 20% desconto na mensalidade se:</span><br>
5654 - Estuda ou estudou no Senac<br>
5655 - É dependente de quem trabalha em empresa contribuinte do Senac<br>
5656 - Estuda ou estudou na rede pública de ensino
5657 </p>
5658
5659 </div>
5660
5661 </div>
5662
5663
5664 <a href="#a" class="btn btn-lg w-100 ssp-btn-emed__voltar-curso" style="margin-top: 20px;font-weight:600" id="" data-espaco-ex="true" data-unidade="" data-evento="" data-destino-compra="" data-index=""><span class="">Voltar para página do curso</span></a>
5665
5666
5667
5668 </div>
5669 </div>
5670
5671 <#if isEMED>
5672 <div id="modalAntesCompraEmed" class="ssp-modal">
5673 <div class="ssp-modal-local-realizacao">
5674 <div class="ssp-modal-local-realizacao__title-content">
5675 <h6 class="ssp-modal-local-realizacao__title" style="padding-left:10%;">IMPORTANTE!</h6>
5676 <i class="ssp-card-modal-antes-compra__btn-close ssp-card-modal-forma-pagamento__btn-close"></i>
5677 </div>
5678 <div class="ssp-modal-local-realizacao__texto">
5679 <p class="texto-modal-emed textoEmedModalAntesCompra0010 d-none">
5680
5681 Esta matrícula é válida apenas para a compra do curso de acordo com a escola e o horário já selecionados.<br/>
5682
5683 </p>
5684 <p class="texto-modal-emed textoEmedModalAntesCompra0010Espera d-none">
5685
5686 Saiba como funciona a inscrição para a lista de espera:<br/><br/>
5687 - É válida somente para a <b>compra do curso</b><br/>
5688 - Não garante vaga para o estudante<br/>
5689 - É válida apenas para o curso, horário e escola selecionados<br/>
5690 - Caso surjam vagas, você receberá um e-mail para fazer a matrícula<br/>
5691
5692 </p>
5693 <p class="texto-modal-emed textoEmedModalAntesCompra0020e0030 d-none">
5694
5695 - Essa inscrição é para uma lista de espera de transferência para 2º ou 3º ano do Ensino Médio Técnico, por isso, ao realizá-la não garantimos a vaga<br/><br/>
5696 - A inscrição só pode ser solicitada para quem deseja estudar no Senac realizando a compra do curso<br/><br/>
5697 - Se a turma escolhida tiver vagas, você receberá um e-mail com orientações sobre a entrega de documentos e as formas de pagamento para efetivar a transferência
5698
5699 </p>
5700 <div class="btn ssp-modal-local-realizacao__btn-content">
5701 <button class="btn btn-lg btn-success w-100 mt-3" offercode="" id="btnCompraLocalEmed">Continuar para compra</button>
5702 <a class="ssp-modal-local-realizacao__btn btn btn-lg w-100 mt-3 ssp-card-modal-selecionar-outro__btn-close" href="#a">Voltar para o curso</a>
5703 </div>
5704 </div>
5705 </div>
5706 </div>
5707
5708 </#if>
5709
5710
5711
5712
5713 <script>
5714 let showedFilters = false
5715 var groupId = themeDisplay.getScopeGroupId();
5716
5717 var urlSearchCursosPorCategory = '/o/senac-curso-services/cursosPorCategoryIds/{groupId}?categoryIds={categoryId}&start=0&end={limit}';
5718
5719 var urlSearchOferta = '/o/senac-oferta-services/ofertasPorCategoryIds/' + groupId
5720
5721 var urlSearchUnidade = '/o/senacsearch/Unidade/{companyId}/{groupId}/{userId}?q=codigoUnidade_pt_BR:{codigoUnidade}';
5722 var urlUnidadeInfoDetalhe = '/o/senac-content-services/unidadeInfoDetalhe/{companyId}/{codigoUnidade}';
5723 var urlSearchCursosPodeGostar = '/o/senac-content-services/cursosVocePodeGostar/{companyId}/{groupId}/{userId}/{articleId}/{limit}';
5724 var urlSearchCursoInfo = '/o/senac-content-services/cursosInfoDetalhe/{groupId}/{cursosInfo}?inscricaoAberta={inscricaoAberta}&bolsaAberta={bolsaAberta}&buscarUnidadesComOferta={buscarUnidadesComOferta}';
5725 var urlRegistroInteresse = '/o/senac-content-services/registroInteresse/';
5726 var urlRegistroInteresseEmailInteressado = '/o/senac-content-services/envioEmailRegistroInteresse/';
5727 var cntSelectUnidades = 1;
5728 var urlPlanoCurso = 'https://www.sp.senac.br/jsp/includeMatdid.jsp?file=/ha1shared/projects/matdid/{codigoFT}-{dataEfetiva}.html';
5729 var urlGetServerT = '/o/senac-content-services/getServerTime';
5730 var urlSearchCursosPodeGostarEmed = '/o/senac-curso-services/cursosPorCategoryIdsFilterAndOr/{groupId}/?categoryIdsOr={tiposDeCurso}&start=0&end={limit}&articleId={articleId}';
5731 var todayG = '';
5732 var codigoFTCursoAprendizagem = 18984;
5733 var globalGroupId = Liferay.ThemeDisplay.getCompanyGroupId();
5734 var isAoVivo = 0;
5735 var nomeFormatoAoVivoDxp = 'Senac Online - ao vivo';
5736 var ofertaUnidadeMap = new Map();
5737 var ultimaUnidade = 0;
5738 var regIndex = new RegExp('\{index\}', 'g');
5739 var linkBotaoCompra = 'http://www.sp.senac.br/login/Login?destino=/ecommerceFrontEnd/?vcw_unidade={codigoUnidade}&vcw_evento={codigoOferta}';
5740 var carregouUltimaOferta = false;
5741 var ofertasMap = new Map();
5742 var codUnidadeSenacAoVivo = '108';
5743 var ofertasComBolsa = false;
5744
5745 //funcao para pegar host do ambiente, se eh teste ou prod (utilizado no servico da bolsa)- 9546
5746 function getServiceEnvironmentHost(){
5747 if(!isAmbienteTeste())
5748 return window.location.origin
5749 else
5750 return 'https://gesportal.sp.senac.br'
5751 }
5752
5753 var hostBolsa = getServiceEnvironmentHost()
5754
5755 // Montar object push - google tag manager - 1
5756 let itensEcommerce = null;
5757 let ofertaSelecionada = null;
5758
5759 const today = new Date;
5760
5761 //categoryId -> cod unidade
5762 var mapUnidadesIds = new Map();
5763 var objsTela = {
5764 unidades: [],
5765 unidadesRegistroInteresse: [],
5766 categoriesIds:[],
5767 ofertasAoVivoTodasUnidades: [],
5768 primeiroChange: true
5769 };
5770 var startOfertaParam = 0;
5771 var endOfertaParam = 25;
5772
5773 var ehCursoTrampolim = false;
5774
5775 const isHibrido = $('input[name="formato"]').data('formato') === 'Presencial + EAD';
5776
5777 var textoFormatoHibrido = "";
5778 var temTextoParaFormatoHibrido = false;
5779
5780 //Validar se o campo textoFormatoHibrido existe e se não está vazio
5781 if(isHibrido){
5782 textoFormatoHibrido = $('input[name="textoFormatoHibrido"]').val();
5783 if(typeof textoFormatoHibrido !== 'undefined'){
5784 if (textoFormatoHibrido.trim() !== '' ) {
5785 temTextoParaFormatoHibrido = true;
5786 textoFormatoHibrido += '<br>';
5787 }
5788 }
5789 }
5790
5791 const HOST = window.location.origin;
5792 const URLGeral = window.location.href;
5793
5794 //EMED
5795 const anoTurmaEmed = '2026';
5796
5797 const tipoCursoNome = function(){ return $('.ssp-header-curso__tag-formato').text().trim(); }
5798
5799 const isEmed = (tipoCursoNome().indexOf('Ensino Médio Técnico') > -1);
5800
5801 const statusEmed = Object.freeze({
5802 NAO_ENCONTRADA: 0,
5803 INSCRICAO: 1,
5804 ESPERA: 2,
5805 ESGOTADO: 3
5806 });
5807
5808 let unidadesToURL = []
5809
5810 const localLivreOnline = function(textoLocal){
5811 textoLocal = textoLocal || ''
5812 textoLocal = textoLocal.replaceAll('online', 'on-line')
5813
5814 const textoOnline = 'Nesta turma, todas as aulas serão on-line e ao vivo pela plataforma digital Microsoft Teams';
5815
5816 return textoLocal.toUpperCase().includes(textoOnline.toUpperCase());
5817 }
5818
5819 const linkBolsa = function(oferta){
5820
5821 let tiposCurso = new Map();
5822 tiposCurso.set('livre', 'L');
5823 tiposCurso.set('tecnico', 'T');
5824 tiposCurso.set('aprendizagem', 'A');
5825 let letraTipoCurso = tiposCurso.get($('[name="tipoCurso"]').val()) || '';
5826
5827 // verifica o campo destinoBolsa da oferta - 9546
5828 var destinoBolsa = ""
5829 if(oferta.destinoBolsa){
5830 destinoBolsa = parseInt(oferta.destinoBolsa,10)
5831 }
5832
5833 return hostBolsa+'/login/Login?origem=bolsas&destino=/jsp/default.jsp?template=2464.dwt&testeira=1540&idcourse='+
5834 $('[name="codigoFT"]').val()+
5835 '&cod_evento='+
5836 oferta.codigoOferta+
5837 '&cod_u='+
5838 codigoUnidade+
5839 '&nvg='+
5840 oferta.qtdeTotalVagasPSG+
5841 '&type='+
5842 letraTipoCurso+
5843 '&sel_unit=&ft=y'+
5844 (destinoBolsa ? '&destino='+destinoBolsa : '');
5845 }
5846
5847
5848 $('.ssp-ofertas-emed__filtro-content .btn').on('click', function(){
5849
5850 var classAtivo = 'btn--filtro-ativo';
5851
5852 if(!$(this).hasClass(classAtivo)){
5853
5854 $(this).siblings().removeClass(classAtivo);
5855
5856 $(this).addClass(classAtivo);
5857
5858 const $cardTransferencias = $('.card-transferencias-emed');
5859
5860 if($(this).val() == '0'){
5861 hideCardSemTurmas(true);
5862 $('.ssp-slick-ofertas-emed').empty();
5863 if(!$('.ssp-slick-ofertas-emed').hasClass('d-none')) $('.ssp-slick-ofertas-emed').addClass('d-none');
5864 $('.prev-mobile, .next-mobile').addClass('d-none');
5865 $cardTransferencias.removeClass('d-none');
5866 } else{
5867 if(!$cardTransferencias.hasClass('d-none')) $cardTransferencias.addClass('d-none');
5868 $('.ssp-slick-ofertas-emed').removeClass('d-none');
5869 populaOfertas(objsTela.ofertas);
5870 }
5871
5872 }
5873
5874 });
5875
5876 //Cronometro
5877 var hidden, visibilityChange;
5878 var restartTimeout = null;
5879 var interval01, interval15;
5880
5881 if (typeof document.hidden !== "undefined") { // Opera 12.10 and Firefox 18 and later support
5882 hidden = "hidden";
5883 visibilityChange = "visibilitychange";
5884 } else if (typeof document.msHidden !== "undefined") {
5885 hidden = "msHidden";
5886 visibilityChange = "msvisibilitychange";
5887 } else if (typeof document.webkitHidden !== "undefined") {
5888 hidden = "webkitHidden";
5889 visibilityChange = "webkitvisibilitychange";
5890 }
5891
5892 // Verifica suporte a Visibility API
5893 if (typeof document.addEventListener === "undefined" || hidden === undefined) {
5894 console.log("Navegador incompativel com page visibility api");
5895 } else {
5896 // Evento para quando a visibilidade da pagina mudar
5897 document.addEventListener(visibilityChange, handleVisibilityChange, false);
5898 }
5899
5900 $(".ssp-saiba-mais-curso-accordion").on("click", ".ssp-saiba-mais-curso-accordion__heading", function() {
5901
5902 $(this).toggleClass("active").next().slideToggle();
5903
5904 $(".sp-saiba-mais-curso-accordion__contents").not($(this).next()).slideUp(300);
5905
5906 $(this).siblings().removeClass("active");
5907 });
5908
5909 function loadUnidadesRegistroInteresse(urlCursoInfo) {
5910 if(objsTela.unidadesRegistroInteresse && objsTela.unidadesRegistroInteresse.length)
5911 return
5912
5913 let urlUnidades = new URL(window.location.origin + urlCursoInfo)
5914 let paramsUnidades = new URLSearchParams(urlUnidades.search)
5915 paramsUnidades.delete('inscricaoAberta')
5916 paramsUnidades.delete('bolsaAberta')
5917 paramsUnidades.delete('buscarUnidadesComOferta')
5918 urlUnidades.search = '?' + paramsUnidades.toString()
5919 urlUnidades = urlUnidades.href
5920
5921 $.ajax({
5922 url: urlUnidades,
5923 method:'get',
5924 async: false
5925 }).done(function(data){
5926 if(data.length > 0){
5927 const cursoInfo = JSON.parse(data);
5928 const unidadesOfertantes = cursoInfo.unidadesOfertantes;
5929
5930 $.each(unidadesOfertantes, function(k,item){
5931 var unidade = {};
5932 unidade['categoryId'] = item['categoryId'];
5933 unidade['codigoUnidade'] = item['codigoUnidade'];
5934 unidade['nome'] = item['nomeUnidade'];
5935 unidade['enderecoUnidade'] =item['enderecoUnidade'];
5936 unidade['numero'] =item['numEnderecoUnidade'];
5937 unidade['complemento'] = item['complementoEnderecoUnidade'];
5938 unidade['bairro'] = item['bairroUnidade'];
5939 unidade['googlemapsUnidade'] = item['googlemapsUnidade'];
5940 unidade['friendlyURL'] = item['friendlyURL'];
5941 unidade['selecionado'] = false;
5942 unidade['selectSelecionado'] = "";
5943 unidade['ofertas'] = [];
5944
5945 if(!objsTela.unidadesRegistroInteresse.filter(uni => uni['categoryId'] == unidade['categoryId']).length)
5946 objsTela.unidadesRegistroInteresse.push(unidade)
5947 });
5948 }
5949 });
5950 }
5951
5952 function loadUnidades(showOptions, unidadeValue){
5953 //Busca as unidades do curso
5954 let buscarUnidadesComOferta = false;
5955
5956 if( !isEmed && ( !$('#chkInscricao').prop('checked') && !$('#chkBolsa').prop('checked')))
5957 buscarUnidadesComOferta = true;
5958
5959 const urlCursoInfo = urlSearchCursoInfo
5960 .replace('\{groupId\}', groupId)
5961 .replace('\{cursosInfo\}', $('[name="articleId"]').val())
5962 .replace('\{inscricaoAberta\}', $('#chkInscricao').prop('checked'))
5963 .replace('\{bolsaAberta\}', $('#chkBolsa').prop('checked'))
5964 .replace('\{buscarUnidadesComOferta\}', buscarUnidadesComOferta);
5965
5966 loadUnidadesRegistroInteresse(urlCursoInfo)
5967
5968 $.ajax({
5969 url:urlCursoInfo,
5970 method:'get',
5971 async: false,
5972 beforeSend: function () {
5973 loading('.oferta-slick-area');
5974 }
5975 }).done(
5976 function(data){
5977
5978 if(data.length > 0){
5979
5980 const cursoInfo = JSON.parse(data);
5981
5982 const unidades = buscarUnidadesComOferta ? cursoInfo.unidadesComOferta : cursoInfo.unidadesOfertantes;
5983
5984 if(!isAoVivo && (!buscarUnidadesComOferta || unidades.length > 0))
5985 $('.ssp-container-selecione-unidade').removeClass('d-none')
5986
5987 objsTela.unidades = []
5988 mapUnidadesIds = new Map();
5989
5990 $.each(unidades, function(k,item){
5991
5992 var unidade = cloneObj(item)
5993 unidade['nome'] = item['nomeUnidade'];
5994 unidade['numero'] =item['numEnderecoUnidade'];
5995 unidade['complemento'] = item['complementoEnderecoUnidade'];
5996 unidade['bairro'] = item['bairroUnidade'];
5997 unidade['ofertas'] = [];
5998
5999 objsTela.unidades.push(unidade);
6000
6001 mapUnidadesIds.set(unidade['categoryId'], unidade['codigoUnidade']);
6002
6003 objsTela.unidades.forEach(unidade => unidadesToURL.filter(u => u.friendlyURL == unidade.friendlyURL).length ? '' : unidadesToURL.push(unidade))
6004 });
6005
6006
6007 populaSelectUnidades(undefined, showOptions, unidadeValue);
6008
6009 }
6010 });
6011
6012 }
6013
6014function getOfertaObjectFromJson(ofertaJSON,index){
6015
6016
6017 var oferta = {};
6018 var xml = $($.parseXML(ofertaJSON.content));
6019 oferta['ordenar'] = paramOrdem(xml);
6020 oferta['vagasTotal'] = xml.find('[name="vagasTotal"]').text().trim();
6021 var dataInicio = xml.find('[name="dataInicioOferta"]').text().split('-');
6022 var dataFim =xml.find('[name="dataFimOferta"]').text().split('-');
6023 oferta['dataInicio'] = dataInicio[2].trim()+'/'+dataInicio[1].trim()+'/'+dataInicio[0].trim();
6024 oferta['dataFim'] = dataFim[2].trim()+'/'+dataFim[1].trim()+'/'+dataFim[0].trim();
6025 oferta['horaInicio'] = xml.find('[name="horaInicioOferta"]').text();
6026 oferta['codigoOferta'] = xml.find('[name="codigoOferta"]').text().trim();
6027 var dias = [];
6028 oferta['horaFimOferta'] = xml.find('[name="horaFimOferta"]').text().trim();
6029 xml.find('[name="diasDaSemanaOferta"]').find('option').each(function(index,dia){
6030 dias.push($(dia).text());
6031 });
6032 oferta['diasDaSemanaOferta'] = dias;
6033 oferta['periodoDiaOferta'] = xml.find('[name="periodoDiaOferta"]').text().trim();
6034 oferta['precoCheioOferta'] = xml.find('[name="precoCheioOferta"]').text().trim();
6035 oferta['precoVendaOferta'] = xml.find('[name="precoVendaOferta"]').text().trim();
6036 oferta['numeroMaxParcelasOferta'] = xml.find('[name="numeroMaxParcelasOferta"]').text().trim();
6037
6038 oferta['textoCartoesAceitos'] = pegarTextoCartoesAceitos(xml.find('[name="formaDePagamentoCartaoOferta"]').text().trim());
6039 oferta['numParcelaCartoes'] = pegaNumParcela(xml.find('[name="formaDePagamentoCartaoOferta"]').text().trim());
6040 oferta['precoParcelaCartoes'] = pegaValorParcela(xml.find('[name="formaDePagamentoCartaoOferta"]').text().trim());
6041 oferta['numParcelaBoleto'] = pegaNumParcela(xml.find('[name="formaDePagamentoBoletoOferta"]').text().trim());
6042 oferta['precoParcelaBoleto'] = pegaValorParcela(xml.find('[name="formaDePagamentoBoletoOferta"]').text().trim());
6043
6044 oferta['precoVendaMaxParcelaOferta'] = xml.find('[name="precoVendaMaxParcelaOferta"]').text().trim();
6045 oferta['formaDePagamentoOferta'] = xml.find('[name="formaDePagamentoOferta"]').text().trim();
6046 oferta['botaoCompraOferta'] = xml.find('[name="botaoCompraOferta"]').text().trim();
6047 oferta['vagasParaCompraOferta'] = xml.find('[name="vagasParaCompraOferta"]').text().trim();
6048 oferta['botaoBolsaOferta'] = xml.find('[name="botaoBolsaOferta"]').text().trim();
6049 oferta['vagasBolsaOferta'] = xml.find('[name="vagasBolsaOferta"]').text().trim();
6050 oferta['dataAberturaBolsaOferta'] = xml.find('[name="dataAberturaBolsaOferta"]').text().trim();
6051 oferta['horaAberturaBolsaOferta'] = xml.find('[name="horaAberturaBolsaOferta"]').text().trim();
6052 oferta['espacoExterno'] = xml.find('[name="espacoExterno"]').text().trim();
6053 oferta['localEspacoExterno'] = xml.find('[name="localEspacoExterno"]').text().trim();
6054 oferta['ruaEspacoExterno'] = xml.find('[name="ruaEspacoExterno"]').text().trim();
6055 oferta['numeroEspacoExterno'] = xml.find('[name="numeroEspacoExterno"]').text().trim();
6056 oferta['complementoEspacoExterno'] = xml.find('[name="complementoEspacoExterno"]').text().trim();
6057 oferta['bairroEspacoExterno'] = xml.find('[name="bairroEspacoExterno"]').text().trim();
6058 oferta['cidadeEspacoExterno'] = xml.find('[name="cidadeEspacoExterno"]').text().trim();
6059 oferta['ufEspacoExterno'] = xml.find('[name="ufEspacoExterno"]').text().trim();
6060 oferta['cepEspacoExterno'] = xml.find('[name="cepEspacoExterno"]').text().trim();
6061 oferta['qtdeTotalVagas'] = xml.find('[name="qtdeTotalVagas"]').text().trim();
6062 oferta['qtdeTotalVagasPSG'] = xml.find('[name="qtdeTotalVagasPSG"]').text().trim();
6063 oferta['horariosAllOferta'] = xml.find('[name="horariosAllOferta"]').text().trim();
6064 oferta['formaDePagamentoCartaoOferta'] = xml.find('[name="formaDePagamentoCartaoOferta"]').text().trim();
6065 oferta['formaDePagamentoBoletoOferta'] = xml.find('[name="formaDePagamentoBoletoOferta"]').text().trim();
6066 oferta['dtLimiteMatricula'] = xml.find('[name="dtLimiteMatricula"]').text().trim();
6067 oferta['dataAberturaMatricula'] = xml.find('[name="dataAberturaMatricula"]').text().trim();
6068 oferta['etapa'] = xml.find('[name="etapa"]').text().trim();
6069 oferta['destinoCompra'] = xml.find('[name="destinoCompra"]').text().trim();
6070 //adicao do destinoBolsa na oferta - 9546 - 11/07/2022
6071 oferta['destinoBolsa'] = xml.find('[name="destinoBolsa"]').text().trim();
6072
6073 // 18/07/2025 - Removido o dataAberturaBolsaOferta recebendo o dataAberturaMatricula
6074 // devido a mudança de regra que recebemos da área
6075
6076 return oferta;
6077 }
6078
6079 const getStatusEmed = (oferta) => {
6080
6081 const urlStatusEsperaEmed = () => {
6082 let url = (isAmbienteTeste()) ?
6083 'https://hinscricao-educacional-backend.sp.senac.br/api/lista-espera/'
6084 : 'https://inscricao-educacional-ms.sp.senac.br/api/lista-espera/';
6085
6086 return url + oferta.codigoOferta;
6087 }
6088
6089 const callTl = async () => {
6090 if(getCookie('tl') == null){
6091 return await $.ajax({
6092 url: '/o/senac-content-services/geraTokenServicosSenac',
6093 method: 'GET'
6094 });
6095 }
6096 return getCookie('tl');
6097 }
6098
6099 const callListaEspera = async () => {
6100 var tl = '';
6101 try{
6102 tl = await callTl();
6103 if(getCookie('tl') == null){
6104 tl = JSON.parse(tl).token;
6105 writeCookie('tl', tl, 6, '');
6106 }
6107 }catch(err){
6108 console.error(err);
6109 return {};
6110 }
6111
6112 return $.ajax({
6113 url: urlStatusEsperaEmed(),
6114 method: 'GET',
6115 beforeSend: function (xhr) {
6116 xhr.setRequestHeader("Authorization", tl);
6117 }
6118 })
6119 }
6120
6121 return new Promise(async function (resolve, reject) {
6122 const resp = await callListaEspera();
6123 if(typeof resp !== 'object') resp = JSON.parse(resp);
6124 let status = resp.STATUS;
6125 resolve(status);
6126 });
6127
6128 }
6129
6130 function getOfertasAoVivo(codigoFT, dataEfetivaOferta, categoryIds){
6131
6132 if(categoryIds && categoryIds.length) {
6133 var params = new URLSearchParams();
6134 params.set('codigoFTOferta',codigoFT)
6135 params.set('dataEfetivaOferta',dataEfetivaOferta)
6136 params.set('categoryIds',categoryIds)
6137 params.set('start',startOfertaParam)
6138 params.set('end',endOfertaParam)
6139 params.set('inscricaoAberta', $('#chkInscricao').prop('checked'))
6140 params.set('bolsaAberta', $('#chkBolsa').prop('checked'))
6141 params.set('cursoArticleId', $('[name="articleId"]').val() || '');
6142
6143 if($('#chkBolsa').prop('checked')){
6144 params.set('considerarDataBolsaFutura', true)
6145 }
6146 const url = urlSearchOferta + '?' + params.toString()
6147
6148 $.ajax({
6149 url:url,
6150 method:'get',
6151 dataType:'json',
6152 async: false
6153 }).done(
6154 function(data){
6155
6156 if(data.length > 0){
6157 $('#ssp-alternadores').show()
6158 showedFilters = true
6159
6160 objsTela.ofertasAoVivoTodasUnidades = []
6161
6162 data.forEach(function(ofertaJSON,index){
6163
6164 var oferta = getOfertaObjectFromJson(ofertaJSON,index);
6165
6166 //guardo em um map a oferta e qual unidade é, para utilizar depois no populaOferta para o aoVivo
6167 ofertaUnidadeMap.set(oferta['codigoOferta'],mapUnidadesIds.get(parseInt(ofertaJSON.unidadeCategoryIds)));
6168 objsTela.ofertasAoVivoTodasUnidades.push(oferta);
6169
6170 });
6171 } else {
6172 loadAlternadores(data)
6173 }
6174
6175 populaOfertas(objsTela.ofertasAoVivoTodasUnidades);
6176 addEventBolsa()
6177 }
6178 ).fail(function(e) {
6179 console.error(e)
6180 populaOfertas(objsTela.ofertasAoVivoTodasUnidades = []);
6181 })
6182 } else {
6183 loadAlternadores([])
6184 populaOfertas(objsTela.ofertasAoVivoTodasUnidades = [])
6185 }
6186
6187 if(isAoVivo) {
6188 if(objsTela.ofertasAoVivoTodasUnidades && objsTela.ofertasAoVivoTodasUnidades.length)
6189 hideCardSemTurmas(true)
6190 else
6191 hideCardSemTurmas(false)
6192 }
6193 }
6194
6195 function mudouToggleOferta(ofertas) {
6196 const oferta = ofertas && ofertas[0]
6197 if(!oferta)
6198 return true
6199
6200 const selecaoInscricao = $('#chkInscricao').prop('checked')
6201 const selecaoBolsa = $('#chkBolsa').prop('checked')
6202
6203 return oferta.selecaoInscricao != selecaoInscricao || oferta.selecaoBolsa != selecaoBolsa
6204 }
6205
6206 function loadAlternadores(ofertas) {
6207 if(showedFilters) {
6208 $('#ssp-alternadores').show()
6209 return
6210 }
6211
6212 if($('#unidades-ofertas').is(":hidden") || $('#unidades-ofertas option').length <= 1) {
6213 if(isAoVivo) {
6214 if(ofertas && ofertas.length)
6215 $('#ssp-alternadores').show()
6216 else {
6217 if(!$('#chkInscricao').prop('checked') && !$('#chkBolsa').prop('checked'))
6218 $('#ssp-alternadores').hide()
6219 else
6220 $('#ssp-alternadores').show()
6221 }
6222 } else {
6223 if(!$('#chkInscricao').prop('checked') && !$('#chkBolsa').prop('checked'))
6224 $('#ssp-alternadores').hide()
6225 else
6226 $('#ssp-alternadores').show()
6227 }
6228 } else
6229 $('#ssp-alternadores').show()
6230
6231 showedFilters = showedFilters || $('#ssp-alternadores').is(":visible")
6232 }
6233
6234 function getOfertas(codigoFT, dataEfetivaOferta, categoryId){
6235
6236 var indiceUnidade = -1;
6237 const selecaoInscricao = $('#chkInscricao').prop('checked')
6238 const selecaoBolsa = $('#chkBolsa').prop('checked')
6239
6240 for(var i = 0; i < objsTela.unidades.length; i++)
6241 if(objsTela.unidades[i].categoryId == categoryId)
6242 indiceUnidade = i;
6243
6244 ultimaUnidade = indiceUnidade;
6245
6246 if( !objsTela.categoriesIds.includes(categoryId) || mudouToggleOferta(objsTela.unidades[indiceUnidade]['ofertas'])){
6247 objsTela.unidades[indiceUnidade]['ofertas'] = []
6248
6249 var params = new URLSearchParams();
6250 params.set('codigoFTOferta',codigoFT)
6251 params.set('dataEfetivaOferta',dataEfetivaOferta)
6252 params.set('categoryIds',categoryId)
6253 params.set('start',startOfertaParam)
6254 params.set('end',endOfertaParam)
6255 params.set('inscricaoAberta', $('#chkInscricao').prop('checked'))
6256 params.set('bolsaAberta', $('#chkBolsa').prop('checked'))
6257 params.set('cursoArticleId', $('[name="articleId"]').val() || '');
6258
6259 if($('#chkBolsa').prop('checked')){
6260 params.set('considerarDataBolsaFutura', true)
6261 }
6262
6263 const url = urlSearchOferta + '?' + params.toString()
6264
6265 $.ajax({
6266 url:url,
6267 method:'get',
6268 dataType:'json',
6269 async: false
6270 }).done(
6271 function(data){
6272
6273 if(data.length > 0){
6274 $('#ssp-alternadores').show()
6275 showedFilters = true
6276
6277 $('.ssp-container-selecione-unidade').show();
6278
6279 data.forEach(function(ofertaJSON,index){
6280
6281 var oferta = getOfertaObjectFromJson(ofertaJSON,index);
6282
6283 //Preenche as ofertas da unidade
6284 objsTela.unidades[indiceUnidade]['ofertas'].push(oferta);
6285 objsTela.unidades[indiceUnidade]['ofertas'].forEach(o => {
6286 o.selecaoInscricao = selecaoInscricao
6287 o.selecaoBolsa = selecaoBolsa
6288 })
6289
6290 });
6291 } else {
6292 loadAlternadores()
6293 }
6294 objsTela.categoriesIds.push(categoryId);
6295 populaOfertas(objsTela.unidades[indiceUnidade]['ofertas']);
6296 addEventBolsa()
6297 }
6298 )
6299
6300 //Se estiver na cache, valida as ofertas
6301 }else{
6302
6303 populaOfertas(objsTela.unidades[indiceUnidade]['ofertas']);
6304
6305 }
6306 }
6307
6308 function populaSelectUnidades(unidades, showOptions, unidadeValue){
6309 var unidadePreSelecionada = false;
6310 var categoryIdUnidadePreSelecionada = '';
6311
6312 //Oredenacao
6313 objsTela.unidades.sort(function (a, b) {
6314 return ordenar(a, b, 'nome');
6315 });
6316
6317 objsTela.unidadesRegistroInteresse.sort(function (a, b) {
6318 return ordenar(a, b, 'nome');
6319 });
6320
6321 //console.log(objsTela.unidades);
6322
6323 $.each(objsTela.unidades, function(k,item){
6324
6325 if(getURLData().includes('/'+item.friendlyURL+'/')){
6326 unidadePreSelecionada= true;
6327 categoryIdUnidadePreSelecionada = item['categoryId'];
6328 }
6329 });
6330
6331 //console.log('Unidade Pre '+unidadePreSelecionada);
6332
6333 if(objsTela.unidades.length == 0){
6334 if(!showOptions)
6335 $('.ssp-container-selecione-unidade').addClass('d-none');
6336 $('.oferta-slick-area').empty();
6337 $('.prev-mobile').addClass('d-none');
6338 $('.next-mobile').addClass('d-none');
6339 //EMED remove msg registro interesse
6340 //if(isEmed) $('.ssp-card-oferta-curso__sem-vaga-description').addClass('d-none');
6341 }
6342
6343 if(isAoVivo){
6344
6345 const codigoFT = $('[name="codigoFT"]').val();
6346 const dataEfetivaOferta = $('[name="dataEfetivaSTR"]').val();
6347
6348 var unidadesCategoryAll = '';
6349
6350 $.each(objsTela.unidades, function(k,unidade){
6351 unidadesCategoryAll += unidade['categoryId']+',';
6352 });
6353
6354 //tirando ultima virgula
6355 unidadesCategoryAll = unidadesCategoryAll.substring(0,unidadesCategoryAll.length - 1);
6356
6357 getOfertasAoVivo(codigoFT, dataEfetivaOferta, unidadesCategoryAll);
6358
6359 }else{
6360 $('#unidades-ofertas').empty()
6361
6362 if(objsTela.unidades && objsTela.unidades.length){
6363 if(isEmed)
6364 $('#unidades-ofertas').append($('<option value="">Selecione uma unidade</option>'))
6365 else
6366 $('#unidades-ofertas').append($('<option value="">Clique na unidade de interesse</option>'))
6367
6368 } else
6369 $('#unidades-ofertas').append($('<option value="">Nenhum resultado encontrado</option>'))
6370
6371 let unidadeFounded = criarOptionUnidadesPorRegiao(objsTela.unidades)
6372
6373 //Dispara o evento para primeira unidade ou pela friendlyURl da unidade
6374 if(unidadeValue) {
6375 $('#unidades-ofertas').val(unidadeValue);
6376 $('#unidades-ofertas').change();
6377 } else if(unidadeFounded){
6378 $('#unidades-ofertas').val(unidadeFounded['categoryId']+"@"+unidadeFounded['codigoUnidade']);
6379 $('#unidades-ofertas').change();
6380 } else if(!unidadePreSelecionada) {
6381 $('#unidades-ofertas').change();
6382 }
6383
6384 $('.ssp-card-registro-interesse__select.unidades').empty()
6385 $('.ssp-card-registro-interesse__select.unidades').append('<option value="" disabled selected>Selecione uma unidade</option>')
6386 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
6387
6388 $('.ssp-card-registro-interesse__select.unidades').append('<option value="'+unidade['codigoUnidade']+'">'+unidade['nome']+'</option>');
6389 });
6390 }
6391
6392 }
6393
6394
6395 function mudarUnidade(ev){
6396 startOfertaParam = 0;
6397 endOfertaParam = 25;
6398 carregouUltimaOferta = false;
6399
6400 var elem = $(ev.target);
6401 var unidades = objsTela.unidades;
6402
6403 //verifica se selecionou alguma unidade
6404 if(!elem.val()){
6405 $('#informe-novas-turmas, .ssp-ofertas-emed__section, .ssp-ofertas__box-endereco-unidade').addClass('d-none');
6406
6407 if(isEmed)
6408 $('#ssp-section-response').addClass('d-none')
6409
6410 hideCardSemTurmas($('#unidades-ofertas option').length > 1)
6411
6412 elem.val('')
6413 habilitarRegistroInteresse(false)
6414 //Zera variável que controla existência de ofertas com bolsa
6415 ofertasComBolsa = false;
6416 controlaPaginaBolsa();
6417
6418 return;
6419 }
6420
6421 $('#informe-novas-turmas, .ssp-ofertas__box-endereco-unidade').removeClass('d-none');
6422 hideCardSemTurmas(true)
6423 if(isEmed){
6424 $('.ssp-ofertas-emed__section').removeClass('d-none');
6425 $('#ssp-section-response').removeClass('d-none')
6426 $('.ssp-card-oferta-curso__section-title').addClass('d-none');
6427 $('.prev-mobile, .next-mobile').addClass('d-none');
6428 var nomeUnidade = $('#unidades-ofertas option:selected').text();
6429 let tamScreen = $(window).width();
6430
6431 if(tamScreen < 1024)
6432 $('#titulo-emed').text('Turmas ' + anoTurmaEmed );
6433 else
6434 $('#titulo-emed').text('Turmas ' + anoTurmaEmed + ' - ' + nomeUnidade);
6435
6436 }
6437
6438 const codigoFT = $('[name="codigoFT"]').val();
6439 const dataEfetivaOferta = $('[name="dataEfetivaSTR"]').val();
6440
6441 //colocamos dentro do option categoryId@codUnidade
6442 splitted = elem.val().split("@");
6443 var categoryIdUnidade = splitted[0];
6444 var codUnidade = splitted[1];
6445
6446 for(var i = 0; unidades.length > i ; i++){
6447
6448 if(unidades[i].categoryId == categoryIdUnidade){
6449
6450 var unidade = unidades[i];
6451
6452 //Exibe o endereco da unidade
6453 const urlBuscaUnidade = urlUnidadeInfoDetalhe
6454 .replace('\{companyId\}',themeDisplay.getCompanyId())
6455 .replace('\{codigoUnidade\}', unidade.codigoUnidade);
6456
6457 $.ajax({
6458 url : urlBuscaUnidade,
6459 type : 'get',
6460 dataType: 'json',
6461 success: function( unidadeInfo ) {
6462 if(unidadeInfo != null && typeof unidadeInfo !== 'undefined'){
6463
6464 var endereco = concatSTR(unidadeInfo.enderecoUnidade,unidadeInfo.numEnderecoUnidade,', ');
6465 endereco = concatSTR(endereco,unidadeInfo.complementoEnderecoUnidade, ' - ');
6466 endereco = concatSTR(endereco,unidadeInfo.bairroUnidade, ' - ');
6467
6468 $('.ssp-ofertas__endereco-unidade').text(endereco);
6469 $('.ssp-ofertas__endereco-unidade').attr('href',unidadeInfo.googlemapsUnidade);
6470 }
6471 },
6472 error: function(data){
6473 $('.ssp-ofertas__endereco-unidade').text('');
6474 $('.ssp-ofertas__endereco-unidade').attr('href','#a');
6475 console.log('Unidade não encontrada');
6476 }
6477 })
6478
6479 getOfertas(codigoFT, dataEfetivaOferta, unidades[i].categoryId);
6480
6481 habilitarRegistroInteresse(!!(unidades && unidades.length));
6482
6483 }
6484 }
6485 }
6486
6487 function pegarTextoCartoesAceitos(campo){
6488 indice = campo.indexOf(' em até ');
6489 inicio = 0;
6490 fim = indice;
6491
6492 return campo.substring(inicio, fim);
6493 }
6494
6495 function pegaNumParcela(campo){
6496
6497 indice = campo.indexOf('até ');
6498 inicio = indice + 4;
6499 fim = indice + 6;
6500
6501 return campo.substring(inicio, fim);
6502
6503 }
6504
6505 function pegaValorParcela(campo){
6506
6507 indice = campo.indexOf('R$');
6508 inicio = indice+2;
6509 valorAmericano = campo.substring(inicio)
6510
6511 return formataValor(valorAmericano);
6512
6513 }
6514
6515 function montaHTMLOferta(oferta, index, codigoUnidade, posLoad){
6516
6517 var retornoDiasHorarios = processaDiasHorariosOferta(oferta.horariosAllOferta);
6518 diasSemanaHTML = "";
6519
6520 for(var diaDaOferta of retornoDiasHorarios){
6521 diasSemanaHTML += htmlSlickAreaDiasSemana.replace('\{diasSemana\}',diaDaOferta.dias);
6522 diasSemanaHTML = diasSemanaHTML.replace('\{horasSemana\}',diaDaOferta.horario)
6523 }
6524
6525 var ofertaHTML = "";
6526
6527 if(isEmed){
6528
6529 ofertaHTML = htmlSlickAreaEmed(oferta);
6530 $('[name="codUnidadeSelecionada"]').val(codigoUnidade);
6531
6532 if(!posLoad) $('.ssp-slick-ofertas-emed').append(ofertaHTML)
6533 else $('.ssp-slick-ofertas-emed').slick('slickAdd', ofertaHTML);
6534 }else{
6535
6536
6537 ofertaHTML = htmlSlickArea(index, oferta, diasSemanaHTML, codigoUnidade)
6538
6539 if(!posLoad)
6540 $('.oferta-slick-area').append(ofertaHTML);
6541 else
6542 $('.oferta-slick-area').slick('slickAdd', ofertaHTML);
6543
6544 ajustaTextoDiasHorarioOferta(oferta.codigoOferta);
6545
6546 }
6547
6548 if(turmasIniciadas(oferta.dataInicio))
6549 $("#aviso-turma-iniciada-"+index).show();
6550
6551 //remove os botões/itens de compra/bolsa caso seja preciso
6552 $('.oferta-slick-area').find('.d-none-btn').remove();
6553 }
6554
6555
6556 //RECEBE A STRING DE HORARIOS E RETORNA UMA LISTA DE OBJETOS COM OS DIAS E HORARIOS FORMATADOS
6557 //@horariosAllOferta String com os dias da semana em sigla seguido do horario da aula e separados por virgula EX: "Qui 12h às 13, Sex 12h às 13h"
6558 function processaDiasHorariosOferta(horariosAllOferta){
6559
6560 var dias = horariosAllOferta.trim().split(',');
6561 let arrayDiasSemana = [{"Seg":"Segunda"},{"Ter":"Terça"},{"Qua":"Quarta"},{"Qui":"Quinta"},{"Sex":"Sexta"},{"Sab":"Sábado"},{"Dom":"Domingo"}]
6562
6563 var arrayDia = [];
6564 if(dias.length >= 1){
6565 for(var k=0; dias.length > k; k++){
6566 var diasSplit = dias[k].trim().split(' ');
6567 var diasSemana = diasSplit.shift()
6568 var ultimaPos = diasSplit.length-1;
6569 var horasStr = diasSplit[0] + ' às ' + diasSplit[ultimaPos]
6570 arrayDia.push({horasStr,diasSemana});
6571 }
6572 }
6573
6574 arrayDia = groupByArray(arrayDia, 'horasStr','diasSemana');
6575 arrayDia = orderByArray(arrayDia,arrayDiasSemana);
6576
6577 var ret = diaHorarioOfertaFormatado(arrayDia,arrayDiasSemana);
6578 return ret;
6579 }
6580
6581 //cria um array de objetos Agrupando de acordo ao campo informado como chave.
6582 //@arr = Array multidimensional que tenha os campos key e valueAdd
6583 //@key = campo que será chave nesse array
6584 //@valueAdd = campo que será agrupado caso tenha a mesma informação passada no campo key
6585 const groupByArray = (arr, key,valueAdd) => {
6586 const initialValue = [];
6587 const retornoValue = [];
6588 arr.forEach((acc, cval) => {
6589 const myAttribute = cval[key];
6590 acc[key] in retornoValue ? retornoValue[acc[key]].push(acc[valueAdd]):retornoValue[acc[key]]=[acc[valueAdd]];
6591 return acc;
6592 }, initialValue);
6593 return retornoValue;
6594 };
6595
6596
6597 //Cria um array de objetos a partir do primeiro array inserido e ordenados de acordo a ordem do segundo array informado.
6598 //@arrayOrdena = Array de objetos que tenha os campos que precisa ser ordenados
6599 //@ordem = array com a sequencia que queira ordenar - ex: seg, ter, qua, qua
6600 const orderByArray = (arrayOrdena, ordem) => {
6601
6602 let diasSem = [];
6603 const arrayOrdenado = [];
6604 let controle;
6605
6606 //percorre cada campo existente no ordem e busca o mesmo no arrayOrdena, encontrando insere no arrayOrdenado
6607 for(let campo of ordem){
6608 Object.entries(arrayOrdena).forEach(([key, value]) => {
6609 for(let diaOferta of value){
6610 if(diaOferta===Object.keys(campo)[0]){
6611 arrayOrdenado[key]=arrayOrdena[key];
6612 }
6613 }
6614 })
6615 }
6616 return arrayOrdenado;
6617 };
6618
6619 //retorna o valor de um objeto dentro de um array
6620 //@objetoBusca = array de objetos que sera buscado o valor
6621 //@keyBusca = nome do campo a ser buscada no objeto para pegar o seu valor
6622 function findValueInObject(objetoBusca, keyBusca){
6623 var retorno = "";
6624 Object.entries(objetoBusca).forEach(([horario, dias]) => {
6625 Object.entries(dias).forEach(([key,val]) => {
6626 if(key.trim()==keyBusca.trim()){
6627 retorno = val;
6628 }
6629 });
6630 });
6631 return retorno;
6632 }
6633
6634 //Recebe um objeto com valores dos dias da semana e define se sao dias seguidos ou alternados.
6635 //@arrayComDiasDaSemana = array com os dias da semana a serem validados - exemplo ['Qua','Qui','Sex']
6636 //@keyBusca = nome do campo a ser buscada no objeto para pegar o seu valor
6637 function diasSequenciaisOuAlternados(arrayComDiasDaSemana, arrayDiasDaSemana){
6638
6639 let arrayValidador = [];
6640
6641 //cria um array com o index dos dias das semanas encontrados [0 = seg, 1 = ter ... 6 = dom]
6642 for(let diaOferta of arrayComDiasDaSemana){
6643 for(let i = 0; i < arrayDiasDaSemana.length; i++){
6644 if(diaOferta === Object.keys(arrayDiasDaSemana[i])[0]){
6645 arrayValidador[i] = true;
6646 }
6647 }
6648 }
6649
6650 let keyCompair = 99;
6651 var sequencial = true;
6652
6653 //verifica quais posições foram criadas no array, e se os valores delas estão em sequencia.
6654 for(let keyValidator of Object.keys(arrayValidador)){
6655 keyValidator = parseInt(keyValidator);
6656 if(keyCompair!==99){
6657 if(keyValidator===keyCompair){
6658 sequencial = true;
6659 }else{
6660 sequencial = false;
6661 break;
6662 }
6663 }
6664 keyCompair = keyValidator+1;
6665 }
6666 return sequencial;
6667 }
6668
6669
6670 //Exibe as informações de dia e horario de oferta de acordo a sua estrutura
6671 //Caso os dias sejam sequenciais exibe a primeiro e ultimo dia da semana ligados com a letra 'a' Ex: Segunda a Quinta
6672 //Caso os dias Nao sejam sequenciais exibem todos os dias separados por virgula Ex: Segunda, terça, sexta e domingo
6673 //@arrayAgrupadoEOrdenado = array de objetos que sera exibido
6674 //@arrayDiasDaSemana = array com os dias da semana, sendo chave a sigla da semana (ex: Qua) e o valor o nome esperado (ex: Quarta)
6675 function diaHorarioOfertaFormatado(arrayAgrupadoEOrdenado, arrayDiasDaSemana){
6676
6677 var stringAux = "";
6678 var listRetorno = [];
6679
6680 Object.entries(arrayAgrupadoEOrdenado).forEach(([key, value]) => {
6681
6682 var sequencial = diasSequenciaisOuAlternados(value, arrayDiasDaSemana);
6683 var stringAux = "";
6684 var diaOferta = {};
6685
6686 if(sequencial){
6687 switch (value.length) {
6688 case 1:
6689 stringAux = stringAux+findValueInObject(arrayDiasDaSemana,value[0])+": ";
6690 diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula
6691 diaOferta.horario = key;
6692 break;
6693 case 2:
6694 stringAux = stringAux+findValueInObject(arrayDiasDaSemana,value[0])+" e "+findValueInObject(arrayDiasDaSemana,value[value.length-1])+": ";
6695 diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula
6696 diaOferta.horario = key;
6697 break;
6698 default:
6699 stringAux = stringAux+findValueInObject(arrayDiasDaSemana,value[0])+" a "+findValueInObject(arrayDiasDaSemana,value[value.length-1])+": ";
6700
6701 diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula
6702 diaOferta.horario = key;
6703 break;
6704 }
6705 }else{
6706 switch (value.length) {
6707 case 2:
6708 stringAux = stringAux+findValueInObject(arrayDiasDaSemana,value[0])+" e "+findValueInObject(arrayDiasDaSemana,value[value.length-1])+": ";
6709 diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula
6710 diaOferta.horario = key;
6711 break;
6712 default:
6713 var ct = 0;
6714 var stringDias="";
6715 for(let v of value){
6716 ct++;
6717 ct==value.length ? stringDias=stringDias.substring(0,stringDias.length - 2)+" e "+findValueInObject(arrayDiasDaSemana,v) : stringDias+=findValueInObject(arrayDiasDaSemana,v)+", ";
6718 }
6719 stringAux = stringAux+stringDias+": ";
6720 diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula
6721 diaOferta.horario = key;
6722 break;
6723 }
6724 }
6725
6726 listRetorno.push(diaOferta);
6727 })
6728 return listRetorno;
6729 };
6730
6731
6732 //Distribui dia e horario com quebra de linha entre eles ou nao dependendo da resolução de tela e tamanho da string
6733 function ajustaTextoDiasHorarioOferta(codOferta){
6734
6735 var classOferta = ".codigoOferta_"+codOferta;
6736 let oferta = $(classOferta);
6737
6738 let ofertaDiasSemana = $(oferta).find('*[data-dia-hora="dias-semana"]');
6739
6740 let widthDevice = window.screen.width;
6741 let tamLimDesktop = 185;
6742
6743 if(widthDevice <= 1024){
6744 tamLimDesktop = 180;
6745 }
6746
6747 ofertaDiasSemana.each(function(index){
6748
6749
6750 let widthDiaSemana = $(this).width();
6751
6752 let contentDiaHora = $(this).parent().parent().parent();
6753
6754 if(!(widthDiaSemana <= tamLimDesktop)){
6755 $(this).css("display","block");
6756 }
6757
6758 if(ofertaDiasSemana.length == parseInt(index+1)){
6759 contentDiaHora.css("opacity","1");
6760 }
6761
6762 })
6763 }
6764
6765 function getObjBtnComprar(oferta){
6766 let obj = {};
6767 obj['dataEspacoEx'] = (oferta.espacoExterno == 'true' || (isHibrido && temTextoParaFormatoHibrido)) ? 'true' : 'false';
6768 if($('#manutencao-compra').val()){
6769 obj['classeBotao'] = 'disabled manutencao';
6770 obj['textoBotao'] = $('#manutencao-compra').val();
6771 }
6772 else{
6773 obj['classeBotao'] = oferta.botaoCompraOferta == 'true' ? (oferta.vagasParaCompraOferta == 'true' ? '' : 'disabled') : 'd-none-btn';
6774 obj['textoBotao'] = oferta.vagasParaCompraOferta == 'true' ? 'COMPRAR' : 'Vagas esgotadas para compra';
6775 }
6776 return obj;
6777 }
6778
6779 function getObjFormaPagto(oferta,index,tipoCurso,codigoUnidade){
6780
6781 var formaPagtoObj = {};
6782
6783 var regNumMaxParce = new RegExp('\{numeroMaxParcelasOferta\}', 'g');
6784 var regPrecMaxParce = new RegExp('\{precoVendaMaxParcelaOferta\}', 'g')
6785
6786 formaPagtoObj['regIndex'] = index;
6787 formaPagtoObj['precoCheioOferta'] = formataValor(oferta.precoCheioOferta);
6788 formaPagtoObj['textoCartoesAceitos'] = oferta.textoCartoesAceitos;
6789
6790 formaPagtoObj['numParcelaCartoes'] = oferta.numParcelaCartoes;
6791 formaPagtoObj['precoParcelaCartoes'] = oferta.precoParcelaCartoes;
6792 formaPagtoObj['numParcelaBoleto'] = oferta.numParcelaBoleto;
6793 formaPagtoObj['precoParcelaBoleto'] = oferta.precoParcelaBoleto;
6794 formaPagtoObj['precoVendaOferta'] = formataValor(oferta.precoVendaOferta);
6795
6796 formaPagtoObj['economia'] = formataValor(parseFloat(oferta.precoCheioOferta).toFixed(2) - parseFloat(oferta.precoVendaOferta).toFixed(2));
6797 formaPagtoObj['espacoExterno'] = oferta.espacoExterno == 'true' ? 'true' : 'false';
6798 formaPagtoObj['dataUnidade'] = codigoUnidade;
6799 formaPagtoObj['dataEvento'] = oferta.codigoOferta;
6800 formaPagtoObj['destinoCompra '] = oferta.destinoCompra;
6801
6802 //EMED nao restringe o botao
6803 if(isEmed){
6804 let manutencao = $('#manutencao-compra').val();
6805 formaPagtoObj['textoBotaoComprar'] = manutencao || 'COMPRAR';
6806 formaPagtoObj['classeBotaoComprar'] = manutencao ? 'disabled manutencao' : '';
6807 }else{
6808 let btnComprar = getObjBtnComprar(oferta);
6809 formaPagtoObj['textoBotaoComprar'] = btnComprar.textoBotao;
6810 formaPagtoObj['classeBotaoComprar'] = btnComprar.classeBotao;
6811 }
6812
6813 formaPagtoObj['regNumMaxParce'] = oferta.numeroMaxParcelasOferta;
6814 formaPagtoObj['regPrecMaxParce'] = formataValor(oferta.precoVendaMaxParcelaOferta);
6815
6816 //valores extensao - como o modal de livre e tec nao tem as classes especificas de extensao, nao há problema criar os valores abaixo para qualquer tipo de curso
6817 formaPagtoObj['precoAVistaPadraoExt'] = formataValor(oferta.precoVendaOferta);
6818 var precoContribuinteExtensao = (parseFloat(oferta.precoVendaOferta).toFixed(2) * 0.80).toFixed(2);
6819 formaPagtoObj['precoContrExt'] = formataValor(precoContribuinteExtensao);
6820 formaPagtoObj['economiaExt'] = formataValor(parseFloat(oferta.precoVendaOferta).toFixed(2) - precoContribuinteExtensao);
6821 formaPagtoObj['precoParcelaBoletoExt'] = formataValor( (precoContribuinteExtensao / oferta.numParcelaBoleto).toFixed(2));
6822 formaPagtoObj['precoParcelaCartoesExt'] = formataValor( (precoContribuinteExtensao / oferta.numParcelaCartoes).toFixed(2));
6823 formaPagtoObj['precoAVistaContrExt'] = formataValor( (precoContribuinteExtensao * 0.92).toFixed(2));
6824
6825 return formaPagtoObj;
6826 }
6827
6828 function calculaPrecoAvista(precoVendaOferta){
6829 return (parseFloat(precoVendaOferta).toFixed(2) * 0.92).toFixed(2);
6830 }
6831
6832 function getParcelasEntradaCartao(dataInicioCurso){
6833
6834 const dCurso = new Date(dataInicioCurso.split("/").reverse().join("-"));
6835 const dHoje = new Date();
6836
6837 let diffAnos = dCurso.getUTCFullYear() - dHoje.getUTCFullYear();
6838 let diffMeses = dCurso.getUTCMonth() - dHoje.getUTCMonth();
6839 diffMeses = diffAnos * 12 + diffMeses;
6840
6841 return (diffMeses > 4) ? 4 : ((diffMeses<=0) ? 1 : diffMeses);
6842
6843 }
6844
6845 function createModalFormaPagto(formaPagtoObj, oferta, index) {
6846 let temDesconto = possuiCriteriosDesconto2022(oferta.dataInicio)
6847 temDesconto = temDesconto && !possuiMensalidade99(oferta)
6848
6849 result = `
6850 <div id="modalFormaPagto" class="ssp-modal">
6851 <div class="ssp-card-modal-forma-pagamento ` + (temDesconto ? 'ssp-desconto-2022' : '') + `">
6852 <div class="ssp-card-modal-forma-pagamento__header" style="border: 0; margin-bottom: 0 !important;">
6853 <h6 class="ssp-card-modal-forma-pagamento__header-title font-weight-bold" style="color:#454F63">Descontos e ` + (temDesconto ? 'pagamento' : 'parcelamento') + `</h6>
6854 <i class="ssp-card-modal-forma-pagamento__btn-close ssp-card-modal-forma-pagamento__btn-close_` + index + `"></i>
6855 </div>
6856 `
6857 + (temDesconto ? '' : '<div class="ssp-card-oferta-curso__line-divider mt-0 mb-5 mb-md-8"></div>') +
6858 `
6859 <div class="ssp-card-modal-forma-pagamento__body">
6860 `
6861 if(temDesconto) {
6862 result = result + `
6863 <div>
6864 <p class="my-0"><strong>Valor com </strong>
6865 <span class="ssp-card-oferta-curso__valor-desconto mt-0 mb-0">50% de desconto*</span>
6866 </p>
6867 </div>
6868 <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(ajustarCasasDecimaisSemArredondar((strToFloat(oferta.precoVendaOferta)/strToFloat(oferta.numeroMaxParcelasOferta))/2, 2)) + `*</h6>`
6869
6870 if($('[name="tipoCurso"]').val() == 'extensao') {
6871 result = result + `<p class="modal-extensao_txteconomiza my-0">*Desconto válido para quem tem ou trabalha em empresa do setor de comércio e serviços, estudantes ou ex-estudantes de cursos técnicos no Senac ou para quem já finalizou o Ensino Médio Técnico no Senac.</p>`
6872 } else {
6873 result = result + `<p class="modal-extensao_txteconomiza my-0">*Desconto válido para quem tem ou trabalha em empresa do setor de comércio e serviços.</p>`
6874 }
6875
6876
6877 result = result + `
6878 <div class="ssp-card-oferta-curso__line-divider mb-5 mb-md-2 mt-2"></div>
6879 <p class="my-0"><strong>Valor:</strong></p>
6880 <h6 class="ssp-card-oferta-curso__item-valor-investimento ` + (temDesconto ? 'ssp-desconto-2022' : '') + `"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(oferta.precoVendaMaxParcelaOferta) + `</h6>
6881 <p class="mt-0 mb-0"><strong>Valor Total: </strong> ` + formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaOferta), 2)) + `</p>
6882 <div class="ssp-card-oferta-curso__line-divider mt-4 mb-md-3 mb-4"></div>
6883 <p class="my-0"><strong>Parcele e garanta mais tempo para pagar:</strong></p>
6884 `
6885 } else {
6886 if(formaPagtoObj.precoCheioOferta == formaPagtoObj.precoVendaOferta) {
6887 result = result + `
6888 <p class="ssp-card-modal-forma-pagamento__valor-desconto mt-n3">R$ <span class="precoVendaOferta">` + formaPagtoObj.precoVendaOferta + `</span></p>
6889 <p class="txt-desconto-oito">Pague à vista e <span style="color:#FC7834;font-weight:bold"> ganhe mais 8% de desconto.</span></p>
6890 <small class="ssp-card-oferta-curso__title-item font-weight-bold" style="margin:0;font-size:16px">Se preferir, parcele e garanta muito mais tempo para pagar:</small>
6891 </div>
6892 `
6893 } else {
6894 const textoDesc = temDesconto ? 'Valor com 30% de desconto:' : 'Valor com desconto:'
6895
6896 result = result + `
6897 <small class="ssp-card-oferta-curso__title-item font-weight-bold" style="margin:0;font-size:16px;">` + textoDesc + `</small>
6898 <p class="ssp-card-modal-forma-pagamento__valor-cheio">R$ <span class="precoCheioOferta">` + formaPagtoObj.precoCheioOferta + `</span></p>
6899 <p class="ssp-card-modal-forma-pagamento__valor-desconto">R$ <span class="precoVendaOferta">` + formaPagtoObj.precoVendaOferta + `</span></p>
6900 <p class="ssp-card-modal-forma-pagamento__total-economia">Você economiza <span>R$ <span class="economia">` + formaPagtoObj.economia + `</span></span></p>
6901 <p class="txt-desconto-oito">Pague à vista e <span style="color:#FC7834;font-weight:bold"> ganhe mais 8% de desconto.</span></p>
6902 <small class="ssp-card-oferta-curso__title-item font-weight-bold" style="margin:0;font-size:16px">Se preferir, parcele e garanta muito mais tempo para pagar:</small>
6903 </div>
6904 `
6905 }
6906 }
6907
6908 let textoParcelaCartoes, textoParcelaBoleto, textoParcelaCartaoComBoleto
6909 if(temDesconto) {
6910 const precoParcelaCartoes = formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(formaPagtoObj.precoParcelaCartoes)/2, 2))
6911 const precoParcelaBoleto = formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(formaPagtoObj.precoParcelaBoleto)/2, 2))
6912
6913 if(formaPagtoObj.numParcelaCartoes)
6914 textoParcelaCartoes = `<p>Em até <span><span class="numParcelaCartoes">` + formaPagtoObj.numParcelaCartoes + `</span>x</span> sem juros</p>`
6915
6916 if(formaPagtoObj.numParcelaBoleto)
6917 textoParcelaBoleto = `<p>Em até <span><span class="numParcelaBoleto">` + formaPagtoObj.numParcelaBoleto + `</span>x</span> sem juros</p>`
6918
6919 } else {
6920 if(formaPagtoObj.numParcelaCartoes)
6921 textoParcelaCartoes = `<p>Em até <span><span class="numParcelaCartoes">` + formaPagtoObj.numParcelaCartoes + `</span>x de R$ <span class="precoParcelaCartoes">` + formaPagtoObj.precoParcelaCartoes + `</span></span> sem juros</p>`
6922
6923 if(formaPagtoObj.numParcelaBoleto)
6924 textoParcelaBoleto = `<p>Em até <span><span class="numParcelaBoleto">` + formaPagtoObj.numParcelaBoleto + `</span>x de R$ <span class="precoParcelaBoleto">` + formaPagtoObj.precoParcelaBoleto + `</span></span> sem juros</p>`
6925
6926 }
6927
6928 if(formaPagtoObj.numParcelaBoleto){
6929 textoParcelaCartaoComBoleto = `<p>1ª parcela em até <span><span class="numParcelaCartoes">` + getParcelasEntradaCartao(oferta.dataInicio) + `</span>x</span> sem juros no cartão + valor </p>`;
6930 textoParcelaCartaoComBoleto += `<p>restante em até <span><span class="numParcelaBoleto">` + (parseInt(formaPagtoObj.numParcelaBoleto) - 1) + `</span>x</span> sem juros no boleto bancário </p>`;
6931 }
6932
6933 if(temDesconto) {
6934 result = result + `
6935 <div class="ssp-card-modal-forma-pagamento__tipos">`
6936
6937 if(textoParcelaBoleto)
6938 result = result + `
6939 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start">
6940 <i class="ssp-card-modal-forma-pagamento__icon-boleto"></i>
6941 <div class="ssp-card-modal-forma-pagamento__info-cartao">
6942 <p><strong>Boleto Bancário</strong></p>`
6943 + textoParcelaBoleto +
6944 `</div>
6945 </div>`
6946
6947 if(textoParcelaCartoes)
6948 result = result + `
6949 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start mt-4">
6950 <i class="ssp-card-modal-forma-pagamento__icon-credit-card"></i>
6951 <div class="ssp-card-modal-forma-pagamento__info-cartao">
6952 <p><strong>Cartões</strong></p>
6953 <p>(<span class="textoCartoesAceitos">` + formaPagtoObj.textoCartoesAceitos + `</span>)</p>`
6954 + textoParcelaCartoes +
6955 `</div>
6956 </div>
6957 </div>
6958 `
6959 if(textoParcelaCartaoComBoleto)
6960 result = result + `
6961 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start">
6962 <i class="ssp-card-modal-forma-pagamento__icon-boleto-e-cartao fa-solid fa-money-check-dollar"></i>
6963 <div class="ssp-card-modal-forma-pagamento__info-cartao">
6964 <p><strong>Cartão + boleto bancário</strong></p>`
6965 + textoParcelaCartaoComBoleto +
6966 `</div>
6967 </div>`
6968 } else {
6969 result = result + `
6970 <div class="ssp-card-modal-forma-pagamento__tipos">`
6971
6972 if(textoParcelaCartoes)
6973 result = result + `
6974 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start">
6975 <i class="ssp-card-modal-forma-pagamento__icon-credit-card"></i>
6976 <div class="ssp-card-modal-forma-pagamento__info-cartao">
6977 <p><strong>Cartões</strong></p>
6978 <p>(<span class="textoCartoesAceitos">` + formaPagtoObj.textoCartoesAceitos + `</span>)</p>`
6979 + textoParcelaCartoes +
6980 `</div>
6981 </div>`
6982
6983 if(textoParcelaBoleto)
6984 result = result + `
6985 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start mt-4">
6986 <i class="ssp-card-modal-forma-pagamento__icon-boleto"></i>
6987 <div class="ssp-card-modal-forma-pagamento__info-cartao">
6988 <p><strong>Boleto Bancário</strong></p>`
6989 + textoParcelaBoleto +
6990 `</div>
6991 </div>
6992 </div>
6993 `
6994
6995 if(textoParcelaCartaoComBoleto)
6996 result = result + `
6997 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start">
6998 <i class="ssp-card-modal-forma-pagamento__icon-boleto-e-cartao fa-solid fa-money-check-dollar"></i>
6999 <div class="ssp-card-modal-forma-pagamento__info-cartao">
7000 <p><strong>Cartão + boleto bancário</strong></p>`
7001 + textoParcelaCartaoComBoleto +
7002 `</div>
7003 </div>`
7004 }
7005
7006
7007
7008 if(temDesconto) {
7009 result = result + `
7010 <p class="txt-desconto-oito my-0">Pague à vista e ganhe <span style="color:#5ACC75;font-weight:bold">8% de desconto.</span></p>
7011 `
7012 }
7013
7014 result = result + `
7015 <a href="#a" class="btn btn-lg btn-success w-100" style="margin-top: 20px;font-weight:600"><span class="textoBotaoComprar">` + formaPagtoObj.textoBotaoComprar + `</span></a>`
7016
7017 if(temDesconto) {
7018 result = result + `
7019 <a class="btn btn-primary modal-extensao-btn-conheca mt-3" href="/descontos-e-parcelamentos" target="_blank">Conheça os descontos</a>
7020 `
7021 }
7022
7023 result = result + `
7024 </div>
7025 </div>
7026 `
7027
7028 return result;
7029 }
7030
7031 function montaHTMLModalFormaPgto(oferta, index, codigoUnidade){
7032
7033 var tipoCurso = $('[name="tipoCurso"]').val();
7034
7035 var formaPagtoObj = getObjFormaPagto(oferta,index,tipoCurso,codigoUnidade);
7036
7037 var modalFormaPagto
7038 if(tipoCurso == 'extensao' && !possuiCriteriosDesconto2022(oferta.dataInicio)) {
7039 modalFormaPagto = $('#modalFormaPagtoExt').clone();
7040
7041 $.each(formaPagtoObj, function(k,v){
7042 if(modalFormaPagto.find('.'+k).length > 0)
7043 modalFormaPagto.find('.'+k).text(v);
7044 })
7045 } else if(isEmed) {
7046 modalFormaPagto = $('#modalPagtoEmed').clone();
7047
7048 $.each(formaPagtoObj, function(k,v){
7049 if(modalFormaPagto.find('.'+k).length > 0)
7050 modalFormaPagto.find('.'+k).text(v);
7051 })
7052 } else
7053 modalFormaPagto = $(createModalFormaPagto(formaPagtoObj, oferta, index));
7054
7055 modalFormaPagto.removeAttr('id');
7056 modalFormaPagto.removeClass('d-none');
7057 modalFormaPagto.attr('id','myModal_'+index);
7058
7059 if(tipoCurso == 'extensao' && !possuiCriteriosDesconto2022(oferta.dataInicio)){
7060
7061 var botoaoCompraOk = modalFormaPagto.find('.modal-extensao-aluno__btn.ok');
7062 botoaoCompraOk.attr('id','btnComprarConhecaDescontoOk_'+index);
7063
7064 botoaoCompraOk.attr('data-espaco-ex', formaPagtoObj.espacoExterno);
7065 botoaoCompraOk.attr('data-unidade', formaPagtoObj.dataUnidade);
7066 botoaoCompraOk.attr('data-evento', formaPagtoObj.dataEvento);
7067 botoaoCompraOk.attr('data-destino-compra', formaPagtoObj.destinoCompra);
7068 botoaoCompraOk.attr('data-index', index);
7069 botoaoCompraOk.addClass(formaPagtoObj.classeBotaoComprar);
7070
7071 var botoaoCompraNot =modalFormaPagto.find('.modal-extensao-aluno__btn.not');
7072 botoaoCompraNot.attr('id','btnComprarConhecaDescontoNot_'+index);
7073
7074 botoaoCompraNot.attr('data-espaco-ex', formaPagtoObj.espacoExterno);
7075 botoaoCompraNot.attr('data-unidade', formaPagtoObj.dataUnidade);
7076 botoaoCompraNot.attr('data-evento', formaPagtoObj.dataEvento);
7077 botoaoCompraNot.attr('data-destino-compra', formaPagtoObj.destinoCompra);
7078 botoaoCompraNot.attr('data-index', index);
7079 botoaoCompraNot.addClass(formaPagtoObj.classeBotaoComprar);
7080
7081 modalFormaPagto.find('.modal-extensao-btn-aluno-sim-nao.sim').attr('id','btn-aluno-sim_'+index);
7082 modalFormaPagto.find('.modal-extensao-btn-aluno-sim-nao.nao').attr('id','btn-aluno-nao_'+index);
7083
7084 modalFormaPagto.find('.modal-extensao-voltar-icon').addClass('ssp-card-modal-forma-pagamento__btn-close_'+index);
7085
7086 modalFormaPagto.find('.modal-extensao-btn-conheca').attr('id','btnModalExtConheca_'+index);
7087
7088 modalFormaPagto.find('.modal-pergunta-aluno-ext').attr('id','modalExtAluno_'+index);
7089
7090 modalFormaPagto.find('.msg-alunoSim').attr('id','msg-alunoSim_'+index);
7091 modalFormaPagto.find('.msg-alunoNao').attr('id','msg-alunoNao_'+index);
7092
7093 var botaoCompra = modalFormaPagto.find('.modal-extensao__btn.mt-3');
7094
7095 }else{
7096
7097 modalFormaPagto.find('.mt-4').attr('id','content_boleto_'+index);
7098 modalFormaPagto.find('.ssp-card-modal-forma-pagamento__btn-close').addClass('ssp-card-modal-forma-pagamento__btn-close_'+index);
7099
7100 var botaoCompra = modalFormaPagto.find('.btn.w-100');
7101
7102 }
7103
7104 if(isEmed){
7105
7106 var elementoPai = modalFormaPagto.find('.ssp-card-modal-forma-pagamento');
7107
7108 //Cria botao inscreva-se ajustado ao modal
7109 var dadosAbertura = calculaTempoAberturaBolsa(oferta.dataAberturaMatricula, oferta.horaAberturaBolsaOferta);
7110 if($('#manutencao-compra').val()){
7111 textoBotao = $('#manutencao-compra').val();
7112 classeBotao = 'disabled manutencao';
7113 }else{
7114 if(oferta.permiteListaEspera == statusEmed.ESPERA && dadosAbertura.bolsaJaAberta){
7115 textoBotao = 'Lista de espera';
7116 classeBotao = 'btn-emed-lista-espera';
7117 }else{
7118 if (dadosAbertura.bolsaJaAberta || !oferta.dataAberturaMatricula || oferta.dataAberturaMatricula == ''){
7119 if(oferta.etapa == '0020' || oferta.etapa == '0030'){
7120 textoBotao = 'Lista de espera';
7121 classeBotao = 'btn-emed-lista-espera';
7122 }else{
7123 textoBotao = 'Fazer matrícula';
7124 classeBotao = '';
7125 }
7126 }else{
7127 textoBotao = 'Matrícula em '+formataDataAberturaBolsa(oferta.dataAberturaMatricula, oferta.horaAberturaBolsaOferta);
7128 classeBotao = 'disabled';
7129 }
7130 }
7131 }
7132 criaBotaoInscreverEmedModal(oferta, textoBotao, classeBotao, 'btnComprarEmedModal_' + index, elementoPai, index);
7133 preencheDadosEmedModal(oferta, modalFormaPagto);
7134
7135 }else{
7136 botaoCompra.attr('id', "btnComprarFormaPgto_"+index);
7137 botaoCompra.attr('data-espaco-ex', formaPagtoObj.espacoExterno);
7138 botaoCompra.attr('data-unidade', formaPagtoObj.dataUnidade);
7139 botaoCompra.attr('data-evento', formaPagtoObj.dataEvento);
7140 botaoCompra.attr('data-destino-compra', formaPagtoObj.destinoCompra);
7141 botaoCompra.attr('data-index', index);
7142 botaoCompra.addClass(formaPagtoObj.classeBotaoComprar);
7143 }
7144
7145 $('.oferta-slick-area_modal').append(modalFormaPagto);
7146 $('.oferta-slick-area_modal').find('.d-none-btn').remove();
7147
7148 //Evita o erro de exibição de Nan
7149 if(oferta.numParcelaBoleto.length == 0){
7150 $('#content_boleto_'+index).remove();
7151 }
7152 }
7153
7154
7155 function montaHTMLModalLocalRealizacao(oferta, index){
7156
7157 var tituloLocalRealizacao = (localLivreOnline(oferta.localEspacoExterno) && !isHibrido) ?
7158 '<i class="fas fa-wifi icon-wifi-title__modal"></i> <h6 class="title-idioma-online__modal"> Aulas Online - ao vivo</h6>'
7159 : '<i class="ssp-modal__local-realizacao-content__icon-wifi"></i> <i class="ssp-modal__local-realizacao-content__icon-chalkboard-teacher"></i> <h6 class="ssp-modal-local-realizacao__title"> ONDE AS AULAS VÃO ACONTECER?</h6>';
7160
7161 if(textoFormatoHibrido.length>0 && oferta.espacoExterno=="true")
7162 textoFormatoHibrido += '</br>';
7163
7164 var localRealizacaoHTMLModal = htmlModalLocalRealizacao
7165 .replace('\{nomeUnidade\}',$('#unidades-ofertas option:selected').text())
7166 .replace('\{textoFormatoHibrido\}', textoFormatoHibrido )
7167 .replace('\{localEspacoExterno\}', oferta.espacoExterno=="true"? oferta.localEspacoExterno: "" )
7168 .replace('\{classeTextoInfoLocalRealizacao\}', (oferta.ruaEspacoExterno != "" && !isHibrido) ? "" : "d-none")
7169 .replace('\{classeEnderecoRealizacao\}',oferta.ruaEspacoExterno != "" ? "" : "d-none")
7170 .replace('\{ruaEspacoExterno\}',oferta.ruaEspacoExterno)
7171 .replace('\{numeroEspacoExterno\}',oferta.numeroEspacoExterno)
7172 .replace('\{complementoEspacoExterno\}',oferta.complementoEspacoExterno)
7173 .replace('\{classeBairroRealizacao\}', oferta.bairroEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
7174 .replace('\{bairroEspacoExterno\}',oferta.bairroEspacoExterno)
7175 .replace('\{classeCidadeRealizacao\}', oferta.cidadeEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
7176 .replace('\{cidadeEspacoExterno\}',oferta.cidadeEspacoExterno)
7177 .replace('\{classeCepRealizacao\}', oferta.cepEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
7178 .replace('\{cepEspacoExterno\}',oferta.cepEspacoExterno)
7179 .replace(regIndex, index)
7180 .replace('\{tituloLocalRealizacao\}', tituloLocalRealizacao)
7181 .replace('\{classeEntendi\}', (localLivreOnline(oferta.localEspacoExterno)) ? "btn-modal-entendi__idioma-online" : "");
7182
7183 $('.oferta-slick-area_modal').append(localRealizacaoHTMLModal);
7184 $('.oferta-slick-area_modal').find('.d-none-btn').remove();
7185
7186 if(oferta.ruaEspacoExterno == "")
7187 $('.localEspacoExternoTexto_'+index).removeClass('ssp-modal-local-realizacao__subtitle');
7188 }
7189
7190 function montaHTMLModalAntesCompra(oferta, index, codigoUnidade){
7191
7192 if(isEmed){
7193
7194 $('#modalAntesCompraEmed_' + oferta.indice).remove();
7195 const antesCompraHTMLModal = $('#modalAntesCompraEmed').clone();
7196 antesCompraHTMLModal.attr('id', 'modalAntesCompraEmed_' + oferta.indice);
7197 antesCompraHTMLModal.find('.ssp-card-modal-antes-compra__btn-close').addClass('ssp-card-modal-antes-compra__btn-close_'+oferta.indice);
7198 antesCompraHTMLModal.find('.ssp-card-modal-selecionar-outro__btn-close').addClass('ssp-card-modal-selecionar-outro__btn-close_'+oferta.indice);
7199 antesCompraHTMLModal.insertAfter('#modalAntesCompraEmed');
7200
7201 if(oferta.etapa == '0010'){
7202 if(oferta.permiteListaEspera == statusEmed.ESPERA){
7203 antesCompraHTMLModal.find('.textoEmedModalAntesCompra0010Espera').removeClass('d-none');
7204 antesCompraHTMLModal.find('#btnCompraLocalEmed').text('Ir para lista de espera');
7205 }else{
7206 antesCompraHTMLModal.find('.textoEmedModalAntesCompra0010').removeClass('d-none');
7207 }
7208 }else{
7209 antesCompraHTMLModal.find('.textoEmedModalAntesCompra0020e0030').removeClass('d-none');
7210 }
7211
7212 const btnCompra = antesCompraHTMLModal.find('#btnCompraLocalEmed');
7213 btnCompra.attr('id', 'btnCompraLocalEmed_' + oferta.indice);
7214 btnCompra.attr('offercode', oferta.codigoOferta);
7215
7216 btnCompra.on('click', function(ev){
7217 ev.preventDefault();
7218 execCompraEmed(oferta);
7219 });
7220
7221 }else{
7222
7223 var dataEfetivaFormat = formataDataComBarra($('[name="dataEfetivaSTR"]').val());
7224
7225
7226 var antesCompraHTMLModal = htmlModalAntesCompra
7227 .replace('\{nomeUnidade\}',$('#unidades-ofertas option:selected').text())
7228 .replace('\{textoFormatoHibrido\}', textoFormatoHibrido )
7229 .replace('\{localEspacoExterno\}', oferta.espacoExterno=="true"? oferta.localEspacoExterno:"" )
7230 .replace('\{classeTextoInfoLocalRealizacao\}', (oferta.ruaEspacoExterno != "" && !isHibrido) ? "" : "d-none")
7231 .replace('\{classeEnderecoRealizacao\}', oferta.ruaEspacoExterno != "" ? "" : "d-none")
7232 .replace('\{ruaEspacoExterno\}',oferta.ruaEspacoExterno)
7233 .replace('\{numeroEspacoExterno\}',oferta.numeroEspacoExterno)
7234 .replace('\{complementoEspacoExterno\}',oferta.complementoEspacoExterno)
7235 .replace('\{classeBairroRealizacao\}', oferta.bairroEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
7236 .replace('\{bairroEspacoExterno\}',oferta.bairroEspacoExterno)
7237 .replace('\{classeCidadeRealizacao\}', oferta.cidadeEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
7238 .replace('\{cidadeEspacoExterno\}',oferta.cidadeEspacoExterno)
7239 .replace('\{classeCepRealizacao\}', oferta.cepEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
7240 .replace('\{cepEspacoExterno\}',oferta.cepEspacoExterno)
7241 .replace('\{componentBuyConfirmation\}', componentBuyConfirmation(codigoUnidade, oferta, dataEfetivaFormat))
7242 .replace('\{linkBtnBolsa\}', linkBolsa(oferta))
7243 .replace(regIndex, index);
7244
7245 $('.oferta-slick-area_modal').append(antesCompraHTMLModal);
7246 $('.oferta-slick-area_modal').find('.d-none-btn').remove();
7247 }
7248 }
7249
7250 async function populaOfertas(ofertas){
7251
7252 //Zera variável que controla existência de ofertas com bolsa
7253 ofertasComBolsa = false;
7254
7255 objsTela.ofertas = ofertas;
7256
7257 if(ofertas && ofertas.length)
7258 $('#ssp-h3-turmas').show()
7259 else
7260 $('#ssp-h3-turmas').hide()
7261
7262 if(ofertas && ofertas.length > 1){
7263 //remove dupl
7264 const ofertasDistintas = [];
7265 ofertas.forEach(oferta => {
7266 if(ofertasDistintas.filter(dist => dist.codigoOferta == oferta.codigoOferta).length == 0){
7267 ofertasDistintas.push(oferta);
7268 }
7269 });
7270 ofertas = ofertasDistintas;
7271 }
7272
7273 if(isEmed){
7274
7275 $('.btn-filtro[value="0"]').attr('disabled','');
7276 $('.ssp-slick-ofertas-emed').empty();
7277 // executa a class do slick slider
7278 $('.ssp-slick-ofertas-emed').removeClass('slick-initialized slick-slider slick-dotted');
7279 ofertas = filtraOfertasEtapa(getEtapaSelecionadaEmed(), ofertas);
7280
7281 }
7282
7283 if(ofertas.length == 0){
7284
7285 if($('#unidades-ofertas').val() || $('#chkInscricao').prop('checked') || $('#chkBolsa').prop('checked'))
7286 hideCardSemTurmas(false)
7287
7288 $('.oferta-slick-area').empty();
7289 $('.prev-mobile, .next-mobile').addClass('d-none');
7290
7291 //Mostrar section registro interesse quando nao tiver oferta
7292 habilitarRegistroInteresse(true);
7293
7294 controlaPaginaBolsa()
7295 if(isEmed) $('.btn-filtro[value="0"]').removeAttr('disabled');
7296 return;
7297 }
7298 hideCardSemTurmas(true)
7299 if(!isEmed) $('.prev-mobile, .next-mobile').removeClass('d-none');
7300 habilitarRegistroInteresse(false);
7301
7302 $('.oferta-slick-area').empty();
7303 $('.oferta-slick-area_modal').empty();
7304 ofertas = ofertas.sort(function(a, b){
7305 return ordenar(a, b, 'ordenar');
7306 });
7307 // executa a class do slick slider
7308 $('.oferta-slick-area').removeClass('slick-initialized slick-slider slick-dotted');
7309
7310 //busca o codigoUnidade para o link do ecommerce
7311 if(!isAoVivo){
7312 var selectedUnidade = $('#unidades-ofertas').val().split('@')[0];
7313 for(var i=0;objsTela.unidades.length > i ;i++){
7314 if(selectedUnidade == objsTela.unidades[i].categoryId)
7315 codigoUnidade = objsTela.unidades[i].codigoUnidade;
7316 }
7317 }
7318
7319 // Montar object push - google tag manager - 2
7320 itensEcommerce = criaItensEcommerce(ofertas);
7321 sendEventEcommerce("view_item_list", Array.from(itensEcommerce.values()));
7322
7323 for(var i=0;ofertas.length > i ;i++){
7324
7325 var oferta = ofertas[i];
7326
7327 //guardando a oferta no map para chamar ajax com infos de bolsa em tempo real
7328 oferta['indice'] = i;
7329 ofertasMap.set(oferta.codigoOferta, oferta);
7330
7331 if(isAoVivo)
7332 codigoUnidade = ofertaUnidadeMap.get(oferta.codigoOferta);
7333
7334 if(isEmed && oferta.etapa == '0010'){
7335 try{
7336 let status = await getStatusEmed(oferta);
7337 oferta['permiteListaEspera'] = status;
7338 }catch(err){
7339 console.log(err);
7340 }
7341 }
7342 montaHTMLOferta(oferta, i, codigoUnidade, false);
7343 montaHTMLModalFormaPgto(oferta, i, codigoUnidade);
7344 montaHTMLModalLocalRealizacao(oferta, i);
7345 montaHTMLModalAntesCompra(oferta, i, codigoUnidade);
7346 verificaBotaoBolsaSS(oferta);
7347 verificaCursoAprendizagem(i);
7348 verificaCursoTrampolim(i, oferta.codigoOferta);
7349
7350 associaEventoBtnFormaPagamento(i);
7351 associaEventoBtnComprar(i);
7352 associaEventoBtnComprarDentroFormaPgto(i);
7353 associaEventoBtnLocalRealizacao(i);
7354 associaEventosFecharModal(i);
7355
7356 if($('[name="tipoCurso"]').val() == 'extensao'){
7357 associaEventoBtnConheca(i);
7358 associaEventoBtnComprarConhecaDescontoOk(i);
7359 associaEventoBtnComprarConhecaDescontoNot(i);
7360 associaEventoBtnAlunoNao(i);
7361 associaEventoBtnAlunoSim(i);
7362 }
7363
7364 }
7365
7366 if(isEmed){
7367 sliderOfertasEmed();
7368 $('.btn-filtro[value="0"]').removeAttr('disabled');
7369 }
7370 else sliderOfertas();
7371
7372 controlaPaginaBolsa()
7373
7374 }
7375
7376 function hideCardSemTurmas(hide){
7377 if(!isEmed){
7378 if(hide)
7379 $('.ssp-card-oferta-curso__sem-vaga').addClass('d-none');
7380 else
7381 $('.ssp-card-oferta-curso__sem-vaga').removeClass('d-none');
7382 } else {
7383
7384
7385 if(hide || getEtapaSelecionadaEmed() == "0"){
7386 $('.sem-vaga-emed').addClass('d-none');
7387 }else{
7388 $('.sem-vaga-emed').removeClass('d-none');
7389 if($('.sem-vaga-emed.emed-transferencias-space:not(.d-none)').length ) return;
7390 var tamScreen = $(window).width();
7391 if(tamScreen < 768){
7392 $('.slick-area-emed').slick({
7393 slidesToShow: 2,
7394 slidesToScroll: 2,
7395 autoplay: false,
7396 infinite: false,
7397 dots: false,
7398 arrows: false,
7399 centerPadding: 0,
7400 centerMode: false,
7401 responsive: [
7402 {
7403 breakpoint: 768,
7404 settings: {
7405 slidesToShow: 1,
7406 slidesToScroll: 1,
7407 variableWidth: false,
7408 infinite: false,
7409 centerPadding: 0,
7410 centerMode: false,
7411 dots: true,
7412 }
7413 }
7414 ]
7415 });
7416 }
7417 }
7418 }
7419 }
7420
7421 function verificaCursoAprendizagem(i){
7422
7423 //Esconde elementsos quando o curso é aprendizagem
7424 if($('[name="codigoFT"]').val() == codigoFTCursoAprendizagem){
7425 $('#btnComprar_'+i).remove();
7426 $('#container_investimento_'+i).remove();
7427 $('#container_forma_pgto_'+i).remove();
7428
7429 var avisoAprendizagem = $('#aviso-curso-aprendizagem').clone();
7430 let btnFormAprendizagem = '<button class="btn btn-lg btn-success w-100 mt-3 btnModalAprendizagem" data-modal="open-modal" style="font-size:16px;background:#1FC923;font-weight: 600;">Preencher formulário</button>'
7431 avisoAprendizagem.removeAttr('id');
7432 avisoAprendizagem.removeClass('d-none');
7433 $('.card_oferta_'+i+ ' .ssp-card-oferta-curso').append(avisoAprendizagem);
7434 $('.card_oferta_'+i+ ' .ssp-card-oferta-curso').append(btnFormAprendizagem);
7435 }
7436 }
7437
7438 function verificaCursoTrampolim(i, codOferta){
7439 if(ehCursoTrampolim){
7440 $('#btnComprar_'+i).remove();
7441 $('#container_investimento_'+i).remove();
7442 $('#container_forma_pgto_'+i).remove();
7443 $('.ssp-card-oferta-curso .codigoOferta_'+codOferta).hide();
7444
7445 var avisoTrampolim = $('#avisoTrampolim').clone();
7446 avisoTrampolim.removeAttr('id');
7447 avisoTrampolim.removeClass('d-none');
7448 $('.card_oferta_'+i+ ' .ssp-card-oferta-curso').append(avisoTrampolim);
7449 }
7450 }
7451
7452 function verificaBotoesEmed(dadosOferta, verificaBolsa) {
7453
7454 var elementoPai = $('.codigoOferta_' + dadosOferta.codigoOferta + ' .ssp-ofertas-emed__card-info-investimento');
7455
7456 //INICIO - Logica para Matricula
7457
7458 //adicionamos uma nova variável em 18/07/2025 quando surgiu a necessidade de uma data diferente de matricula em relação a data de bolsa
7459 var dadosAberturaMatricula = calculaTempoAberturaBolsa(dadosOferta.dataAberturaMatricula, dadosOferta.horaAberturaBolsaOferta);
7460
7461 var textoBotaoMatricula = '';
7462 var exibirBotaoMatricula = true;
7463 var classeBotaoMatricula = '';
7464 var htmlBotaoMatricula = '';
7465
7466 if (dadosAberturaMatricula.exibirContador) {
7467 textoBotaoMatricula = dadosAberturaMatricula.textoContador;
7468 exibirBotaoMatricula = false;
7469 }
7470
7471 //exibe o botão sem cronômetro
7472 if (exibirBotaoMatricula) {
7473 if ($('#manutencao-compra').val()) {
7474 textoBotaoMatricula = $('#manutencao-compra').val();
7475 classeBotaoMatricula = 'disabled manutencao';
7476 } else {
7477
7478 if (dadosOferta.permiteListaEspera == statusEmed.ESPERA && dadosAberturaMatricula.bolsaJaAberta) {
7479 textoBotaoMatricula = 'Lista de espera';
7480 classeBotaoMatricula = 'btn-emed-lista-espera';
7481 } else {
7482 classeBotaoMatricula = '';
7483 if (dadosAberturaMatricula.bolsaJaAberta || !dadosOferta.dataAberturaMatricula || dadosOferta.dataAberturaMatricula == '') {
7484 textoBotaoMatricula = 'Fazer matrícula';
7485
7486 if (dadosOferta.etapa == '0020' || dadosOferta.etapa == '0030') {
7487 textoBotaoMatricula = 'Lista de espera';
7488 classeBotaoMatricula = 'btn-emed-lista-espera';
7489 }
7490 } else {
7491 textoBotaoMatricula = 'Matrícula em ' + formataDataAberturaBolsa(dadosOferta.dataAberturaMatricula, dadosOferta.horaAberturaBolsaOferta);
7492 }
7493 if (!dadosAberturaMatricula.bolsaJaAberta)
7494 classeBotaoMatricula = 'disabled';
7495 }
7496 }
7497
7498 criaBotaoInscreverEmed(dadosOferta, textoBotaoMatricula, classeBotaoMatricula, 'btnComprarEmed_' + dadosOferta.indice, elementoPai);
7499
7500 } else { //exibe o cronometro para matricula
7501
7502 //codigoOferta como index para usar o ofertasMap
7503 htmlBotaoMatricula = '<button id="btnContadorComprar_' + dadosOferta.indice + '" data-index="' + dadosOferta.codigoOferta + '" class="btn btn-card-investimento --inscreva-se">Matrícula em <span>' + textoBotaoMatricula + '</span></button>';
7504 elementoPai.append(htmlBotaoMatricula);
7505 }
7506
7507 //INICIO - Logica para Botão Bolsa
7508
7509 if (!verificaBolsa || !dadosOferta.dataAberturaBolsaOferta || dadosOferta.dataAberturaBolsaOferta == '') {
7510 dadosOferta.vagasBolsaOferta = false;
7511 dadosOferta.botaoBolsaOferta = false;
7512 }
7513
7514 //calcula o tempo até abertura da bolsa, se houver (apenas depois das 08hrs)
7515 var dadosAberturaBolsa = calculaTempoAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta);
7516
7517 var textoBotaoBolsa = '';
7518 var classeBotaoBolsa = '';
7519 var exibirBotaoBolsa = false;
7520 var exibirContadorBolsa = false;
7521 var htmlBotaoBolsa = '';
7522
7523 //verifica se o botão de concorrer a bolsa deve aparecer
7524 //Oferta EMED possui bolsa apenas no 1o ano
7525 if (dadosOferta.etapa == '0010' && dadosOferta.botaoBolsaOferta && !dadosAberturaBolsa.exibirContador) {
7526 exibirBotaoBolsa = true;
7527 if ($('#manutencao-bolsa').val()) {
7528 classeBotaoBolsa = 'disabled manutencao';
7529 textoBotaoBolsa = $('#manutencao-bolsa').val();
7530 } else {
7531 if (dadosOferta.vagasBolsaOferta) {
7532 classeBotaoBolsa = dadosAberturaBolsa.bolsaJaAberta ? '' : 'disabled';
7533 textoBotaoBolsa = dadosAberturaBolsa.bolsaJaAberta ? 'Bolsa de estudo' : 'Bolsa em ' + formataDataAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta);
7534 } else {
7535 classeBotaoBolsa = 'disabled';
7536 textoBotaoBolsa = 'Bolsas de Estudo Esgotadas';
7537 }
7538 }
7539 }
7540
7541 //Verifica se o botão do cronômetro deve aparecer
7542 if (dadosAberturaBolsa.exibirContador) {
7543 textoBotao = dadosAberturaBolsa.textoContador;
7544 textoBotaoBolsa = dadosAberturaBolsa.textoContador;
7545 exibirContadorBolsa = true;
7546 exibirBotaoBolsa = false;
7547 }
7548
7549 if (exibirBotaoBolsa) {
7550
7551 if (!ofertasComBolsa) ofertasComBolsa = true;
7552
7553 criaBotaoBolsaEmed(dadosOferta, textoBotaoBolsa, classeBotaoBolsa);
7554
7555 } else if (exibirContadorBolsa) {
7556
7557 if (!ofertasComBolsa && dadosOferta.etapa == '0010') ofertasComBolsa = true;
7558
7559 if (dadosOferta.etapa == '0010' && dadosOferta.botaoBolsaOferta) {
7560 htmlBotaoBolsa = '<button id="btnContadorBolsa_' + dadosOferta.indice + '" data-index="' + dadosOferta.codigoOferta + '" class="btn btn-card-investimento --bolsas">Bolsa em <span>' + textoBotaoBolsa + '</span></button>';
7561 elementoPai.append(htmlBotaoBolsa);
7562 }
7563 }
7564 }
7565
7566 function criaBotaoInscreverEmedModal(oferta, textoBotao, classeBotao, idBotao, elementoPai, index){
7567 criaBotaoInscreverEmed(oferta, textoBotao, classeBotao, idBotao, elementoPai);
7568 var btnInscr = elementoPai.find('#btnComprarEmedModal_' + index);
7569 btnInscr.removeClass(btnInscr.classList);
7570 btnInscr.addClass('btn btn-lg btn-success w-100');
7571 btnInscr.attr('style', 'margin-top: 20px;font-weight:600');
7572
7573 //Reposiciona o botao voltar
7574 var btnVoltar = elementoPai.find('.ssp-btn-emed__voltar-curso');
7575 elementoPai.find('.ssp-btn-emed__voltar-curso').remove();
7576 elementoPai.append(btnVoltar);
7577 btnVoltar.addClass('ssp-btn-emed__voltar-curso_'+index);
7578 btnVoltar.click(() => {
7579 $('[id^="myModal_"]').each(function(index,modal){
7580 modal.style.display = "none";
7581 })
7582 });
7583 }
7584
7585 function preencheDadosEmedModal(oferta,$modal){
7586 const parcelaEntrada = 1;
7587 $modal.find('.numParcelaCartoesBoleto').text(oferta.numeroMaxParcelasOferta - parcelaEntrada);
7588 $modal.find('.precoParcelaCartoesBoleto').text(formataValor(oferta.precoVendaMaxParcelaOferta));
7589 $modal.find('.numParcelaEmedModal').text(oferta.numeroMaxParcelasOferta - parcelaEntrada);
7590 $modal.find('.precoParcelaEmedModal').text(formataValor(oferta.precoVendaMaxParcelaOferta));
7591 }
7592
7593
7594 function criaBotaoInscreverEmed(oferta, textoBotao, classeBotao, idBotao, elementoPai){
7595 if(oferta.permiteListaEspera && oferta.permiteListaEspera == statusEmed.NAO_ENCONTRADA) return;
7596 var htmlBotao = '<button id="'+ idBotao +'" data-index="'+ oferta.indice +'" class="btn btn-card-investimento --inscreva-se '+ classeBotao +'"><span>'+textoBotao+'</span></button>';
7597 elementoPai.append(htmlBotao);
7598
7599 if(!classeBotao.includes('disabled')){
7600
7601 elementoPai.on("click", '#'+ idBotao, function(ev){
7602 ev.preventDefault();
7603 const _modal = $('#modalAntesCompraEmed_'+$(this).data('index'));
7604 _modal.css('display','flex');
7605
7606
7607 });
7608
7609 }
7610
7611 }
7612
7613 function criaBotaoBolsaEmed(oferta, textoBotaoBolsa, classeBotaoBolsa=""){
7614
7615 var htmlBotao = '<a id="btnBolsa_'+ oferta.indice +'" data-index="'+ oferta.indice +'" class="btn btn-card-investimento --bolsas '+ classeBotaoBolsa +'">'+ textoBotaoBolsa +'</a>';
7616 $('.codigoOferta_'+oferta.codigoOferta+' .ssp-ofertas-emed__card-info-investimento').append(htmlBotao);
7617
7618 if(!classeBotaoBolsa.includes('disabled')){
7619 // Associa o evento de clique no botão de bolsa
7620 $('#btnBolsa_'+oferta.indice).attr('href', linkBolsa(oferta));
7621 $('#btnBolsa_'+oferta.indice).attr('target', '_blank');
7622 //$('#btnBolsa_'+oferta.indice).attr('style', 'text-transform:uppercase;');
7623
7624 }
7625 }
7626
7627 function criaBotaoBolsa(oferta, textoBotaoBolsa, classeBotaoBolsa=""){
7628
7629 const botao = $('<a>'+ textoBotaoBolsa +'</a>');
7630 botao.attr('id', 'btnBolsa_' + oferta.indice);
7631 botao.attr('data-index', oferta.indice);
7632 botao.attr('class', 'btn btn-lg btn-info w-100 mt-3 ' + (classeBotaoBolsa || ''));
7633 botao.css('font-size', '14px');
7634 botao.css('font-weight', '600');
7635 botao.css('background-color', '#004EFF');
7636 if(!classeBotaoBolsa.includes('disabled')){
7637 if(oferta.espacoExterno == 'true' || (isHibrido && temTextoParaFormatoHibrido)){
7638 botao.attr('data-espaco-ex', 'true');
7639 botao.click((ev)=>{
7640 ev.preventDefault();
7641 $('#btnCompraLocal_'+oferta.indice).hide();
7642 $('#btnBolsaLocal_'+oferta.indice).show();
7643 const _modal = $('#modalAntesCompra_'+oferta.indice);
7644 _modal.css('display','flex');
7645 });
7646 }else{
7647 botao.attr('href', linkBolsa(oferta));
7648 botao.attr('target', '_blank');
7649 }
7650 }
7651
7652 return botao;
7653
7654 }
7655
7656 function verificaBotaoBolsaSS(oferta, codigoUnidade){
7657
7658
7659 if(!isEmed && (!oferta.dataAberturaBolsaOferta || oferta.dataAberturaBolsaOferta == '') ) return;
7660
7661 if(!ehCursoTrampolim){
7662 $.ajax({
7663 url : getUrlConsultaBolsa(oferta),
7664 type : 'get',
7665 dataType: 'json',
7666 beforeSend: function (xhr) {
7667 xhr.setRequestHeader ("Authorization", "KGG4KMW5s0CVowr7d6y6Ww==");
7668 },
7669 })
7670 .done(function(infosBolsa){
7671
7672
7673 if(infosBolsa != null && typeof infosBolsa !== 'undefined'){
7674
7675 var codigoOfertaRetornoBolsa = infosBolsa.DATA[0].COD_EVENTO;
7676 var retornoOfertaBolsaSenac = infosBolsa.DATA[0];
7677
7678 //Sobrescreve as flags de bolsa com o retorno do serviço SS
7679 ofertasMap.get(codigoOfertaRetornoBolsa).vagasBolsaOferta = retornoOfertaBolsaSenac.TEM_VAGA_BOLSA;
7680 ofertasMap.get(codigoOfertaRetornoBolsa).botaoBolsaOferta = retornoOfertaBolsaSenac.BOTAO_BOLSA;
7681
7682 var dadosOferta = ofertasMap.get(codigoOfertaRetornoBolsa);
7683
7684 //calcula o tempo até abertura da bolsa, se houver (apenas depois das 08hrs)
7685 var dadosAberturaBolsa = calculaTempoAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta, dadosOferta.botaoBolsaOferta);
7686 var textoBotaoBolsa = '';
7687 var classeBotaoBolsa = '';
7688 var textoBotaoContadorBolsa = '';
7689 var exibirBotaoBolsa = false;
7690 var exibirContadorBolsa = false;
7691
7692 //EMED
7693 if(isEmed){
7694 verificaBotoesEmed(ofertasMap.get(codigoOfertaRetornoBolsa), true);
7695 return;
7696 }
7697
7698 //Verifica o texto do botão de bolsa
7699 if($('#manutencao-bolsa').val()) textoBotaoBolsa = $('#manutencao-bolsa').val();
7700 else{
7701
7702 if(retornoOfertaBolsaSenac.TEM_VAGA_BOLSA){
7703
7704 if(dadosAberturaBolsa.bolsaJaAberta)
7705 textoBotaoBolsa = "Inscrever para bolsa de estudo";
7706
7707 else
7708 textoBotaoBolsa = "Inscrições para bolsas a partir de "+formataDataAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta);
7709
7710 if(!ofertasComBolsa){ ofertasComBolsa = true;
7711 }
7712 }else
7713 textoBotaoBolsa = "Vagas esgotadas para bolsas de estudo";
7714 }
7715
7716 //verifica se o botão de concorrer a bolsa deve aparecer
7717 if(retornoOfertaBolsaSenac.BOTAO_BOLSA && !dadosAberturaBolsa.exibirContador){
7718
7719 exibirBotaoBolsa = true;
7720
7721 if(!ofertasComBolsa) ofertasComBolsa = true;
7722
7723 if(retornoOfertaBolsaSenac.TEM_VAGA_BOLSA && dadosAberturaBolsa.bolsaJaAberta && !$('#manutencao-bolsa').val()){
7724 classeBotaoBolsa = '';
7725 }else{
7726 classeBotaoBolsa = 'disabled';
7727 }
7728 }
7729
7730 //Verifica se o botão do cronômetro deve aparecer
7731 if(dadosAberturaBolsa.exibirContador && !$('#manutencao-bolsa').val()){
7732 textoBotaoContadorBolsa = dadosAberturaBolsa.textoContador;
7733 exibirContadorBolsa = true;
7734 }
7735
7736 if(exibirBotaoBolsa)
7737 $('.codigoOferta_'+codigoOfertaRetornoBolsa+' .ssp-card-oferta-curso .ssp-container-botao-bolsa').append( criaBotaoBolsa(dadosOferta, textoBotaoBolsa, classeBotaoBolsa) )
7738 else if(exibirContadorBolsa)
7739 $('.codigoOferta_'+codigoOfertaRetornoBolsa+' .ssp-card-oferta-curso .ssp-container-botao-bolsa').append('<a id="btnContadorBolsa_'+dadosOferta.indice+'" data-index="'+dadosOferta.indice+'" class="btn btn-lg btn-info w-100 mt-3" >Você poderá se inscrever para bolsa em <span>'+textoBotaoContadorBolsa+'</span></a>')
7740 else {
7741 $('.codigoOferta_'+codigoOfertaRetornoBolsa+'.content-btn-bolsa').hide()
7742 $('.show-price-content.codigoOferta_'+oferta.codigoOferta + ' .ou-separator-desconto').hide()
7743 }
7744
7745 }else{
7746 //EMED
7747 if(isEmed){
7748 verificaBotoesEmed(oferta, false);
7749 }
7750 }
7751
7752 controlaPaginaBolsa()
7753 })
7754 .fail(function(){
7755 $('.content-btn-bolsa.codigoOferta_'+oferta.codigoOferta).hide()
7756 $('.show-price-content.codigoOferta_'+oferta.codigoOferta + ' .ou-separator-desconto').hide()
7757
7758 //EMED
7759 if(isEmed){
7760 verificaBotoesEmed(oferta, false);
7761 }
7762 });
7763
7764
7765 }
7766
7767 }
7768
7769 function controlaPaginaBolsa(){
7770 if(ofertasComBolsa)
7771 $("#ssp-abrir-pagina-bolsa").removeClass("d-none")
7772 else
7773 $("#ssp-abrir-pagina-bolsa").addClass("d-none")
7774 }
7775
7776 function associaEventoBtnFormaPagamento(i){
7777 var modal = document.getElementById("myModal_"+i);
7778
7779 var btn = document.getElementById("myBtn_"+i);
7780
7781 if(btn!=null){
7782 btn.onclick = function(ev) {
7783 event.preventDefault()
7784
7785 $('#modalExtAluno_'+i).addClass('d-none');
7786
7787 var elem = $(ev.target);
7788 var _modal = document.getElementById(
7789 'myModal_'+elem.data('index'));
7790 _modal.style.display = "block";
7791 $('#myModal_'+i).find('.modal-extensao_content:first-child').removeClass('d-none');
7792
7793 }
7794 }
7795
7796
7797
7798
7799 }
7800
7801
7802 function actionBtnComprar(elem){
7803
7804 // Montar object push - google tag manager - 3
7805 ofertaSelecionada = itensEcommerce.get(elem.attr('data-evento'))
7806 sendEventEcommerce("select_item", ofertaSelecionada);
7807 sendEventEcommerce("view_item", ofertaSelecionada);
7808
7809 //Verifica se deve exibir o modal com a localização
7810 if(elem.attr('data-espaco-ex') == 'true'){
7811 $('#btnCompraLocal_'+elem.data('index')).show();
7812
7813 //Limpa onclicks para nao repetir execucao
7814 $('#modalAntesCompra_'+elem.data('index')).off('click', '#btnCompraLocal_'+elem.data('index'))
7815 $('#modalAntesCompra_'+elem.data('index')).on('click', '#btnCompraLocal_'+elem.data('index'), function () {
7816 // Montar object push - google tag manager - 4
7817 sendEventEcommerce("add_to_cart", ofertaSelecionada);
7818 if( elem.attr('data-destino-compra') != '2' )
7819 sendEventEcommerce("begin_checkout", ofertaSelecionada);
7820 })
7821 $('#btnBolsaLocal_'+elem.data('index')).hide();
7822 const _modal = $('#modalAntesCompra_'+elem.data('index'));
7823 _modal.css('display','flex');
7824 }else{
7825 var urlCompra = linkBotaoCompra.replace('\{codigoUnidade\}', elem.attr('data-unidade')).replace('\{codigoOferta\}', elem.attr('data-evento'));
7826
7827 if( elem.attr('data-destino-compra') == '2' ){
7828 var dataEfetivaFormat = formataDataComBarra($('[name="dataEfetivaSTR"]').val());
7829
7830 addItemBackpack(elem.attr('data-evento'), '#' + elem.attr('id'),elem.attr('data-unidade'), dataEfetivaFormat);
7831
7832 }else{
7833 window.open(urlCompra, '_blank');
7834 }
7835 }
7836
7837
7838
7839 }
7840
7841 function associaEventoBtnComprar(i){
7842 var btnComprar = document.getElementById("btnComprar_"+i);
7843
7844 if(btnComprar != null && !btnComprar.classList.contains('disabled')){
7845 btnComprar.onclick = function(ev) {
7846
7847 ev.preventDefault()
7848 var elem = $(ev.target);
7849 actionBtnComprar(elem);
7850
7851 }
7852 }
7853 }
7854
7855 function associaEventoBtnComprarDentroFormaPgto(i){
7856 var btnComprarFormaPgto = document.getElementById("btnComprarFormaPgto_"+i);
7857
7858 if(btnComprarFormaPgto != null && !btnComprarFormaPgto.classList.contains('disabled')){
7859 btnComprarFormaPgto.onclick = function(ev) {
7860 event.preventDefault()
7861 var elem = $('#btnComprarFormaPgto_'+i);
7862 actionBtnComprar(elem);
7863 }
7864 }
7865 }
7866
7867 function associaEventoBtnComprarConhecaDescontoOk(i){
7868 var btnComprarConhecaDescontoOk = document.getElementById("btnComprarConhecaDescontoOk_"+i);
7869
7870 if(btnComprarConhecaDescontoOk != null){
7871 btnComprarConhecaDescontoOk.onclick = function(ev) {
7872 event.preventDefault()
7873 var elem = $(ev.target);
7874 actionBtnComprar(elem);
7875 }
7876 }
7877 }
7878
7879 function associaEventoBtnComprarConhecaDescontoNot(i){
7880 var btnComprarConhecaDescontoNot = document.getElementById("btnComprarConhecaDescontoNot_"+i);
7881
7882 if(btnComprarConhecaDescontoNot != null){
7883 btnComprarConhecaDescontoNot.onclick = function(ev) {
7884 event.preventDefault()
7885 var elem = $(ev.target);
7886 actionBtnComprar(elem);
7887 }
7888 }
7889 }
7890
7891 function associaEventoBtnAlunoNao(i){
7892 var btnAlunoNao = document.getElementById("btn-aluno-nao_"+i);
7893
7894 if(btnAlunoNao != null){
7895 btnAlunoNao.onclick = function(ev) {
7896 event.preventDefault()
7897 var elem = $(ev.target);
7898 elem.addClass('modal-extensao-btn-aluno-sim-ativo'),
7899 elem.closest('.sim').removeClass('modal-extensao-btn-aluno-sim-ativo');
7900 elem.parent().siblings().find('button').removeClass('modal-extensao-btn-aluno-sim-ativo')
7901 $('#msg-alunoNao_'+i).removeClass('d-none');
7902 $('#msg-alunoSim_'+i).addClass('d-none');
7903 }
7904 }
7905 }
7906
7907 function associaEventoBtnAlunoSim(i){
7908 var btnAlunoSim = document.getElementById("btn-aluno-sim_"+i);
7909
7910 if(btnAlunoSim != null){
7911 btnAlunoSim.onclick = function(ev) {
7912 event.preventDefault()
7913 var elem = $(ev.target);
7914 elem.addClass('modal-extensao-btn-aluno-sim-ativo'),
7915 elem.closest('.nao').removeClass('modal-extensao-btn-aluno-sim-ativo');
7916 elem.parent().siblings().find('button').removeClass('modal-extensao-btn-aluno-sim-ativo')
7917 $('#msg-alunoSim_'+i).removeClass('d-none');
7918 $('#msg-alunoNao_'+i).addClass('d-none');
7919
7920 }
7921 }
7922 }
7923
7924 function associaEventoBtnConheca(i){
7925 var btnModalExtConheca = document.getElementById("btnModalExtConheca_"+i);
7926
7927 if(btnModalExtConheca != null){
7928 btnModalExtConheca.onclick = function(ev) {
7929 event.preventDefault();
7930 var elem = $(ev.target);
7931 elem.closest('.modal-extensao_content').addClass('d-none');
7932 $('#modalExtAluno_'+i).removeClass('d-none');
7933 $('#msg-alunoSim_'+i).addClass('d-none');
7934 $('#msg-alunoNao_'+i).addClass('d-none');
7935 $('#btn-aluno-sim_'+i).removeClass('modal-extensao-btn-aluno-sim-ativo');
7936 $('#btn-aluno-nao_'+i).removeClass('modal-extensao-btn-aluno-sim-ativo');
7937
7938 }
7939 }
7940 }
7941
7942 function associaEventoBtnLocalRealizacao(i){
7943 var btnLocalRealizacao = document.getElementById("btnLocalRealizacao_"+i);
7944
7945 if(btnLocalRealizacao!=null){
7946 btnLocalRealizacao.onclick = function(ev) {
7947 event.preventDefault();
7948 var elem = $(ev.target);
7949 var _modal = document.getElementById(
7950 'modalLocalRealizacao_'+elem.data('index'));
7951 _modal.style.display = "flex";
7952 }
7953 }
7954 }
7955
7956 function associaEventosFecharModal(i){
7957
7958 var span = document.getElementsByClassName("ssp-card-modal-forma-pagamento__btn-close_"+i);
7959 var closeModalLocalRealizacao = document.getElementsByClassName("ssp-card-modal-local-realizacao__btn-close_"+i)[0];
7960 var closeModalAntesCompra = document.getElementsByClassName("ssp-card-modal-antes-compra__btn-close_"+i)[0];
7961 var closeModalSelecionarOutro = document.getElementsByClassName("ssp-card-modal-selecionar-outro__btn-close_"+i)[0];
7962 var btnEntendiLocalRealizacao = document.getElementsByClassName("ssp-modal-local-realizacao__btn_"+i)[0];
7963 var closeModalBotaoBolsa = document.getElementById("btnBolsaLocal_"+i)
7964
7965 if(isEmed){
7966 var closeModalFormaPagamento = document.getElementsByClassName("ssp-btn-emed__voltar-curso_"+i);
7967 for (const val of closeModalFormaPagamento) {
7968
7969 val.onclick = function() {
7970 $('[id^="myModal_"]').each(function(index,modal){
7971 modal.style.display = "none";
7972 });
7973 }
7974 };
7975 }
7976
7977 //event close modal
7978 for (const val of span) {
7979
7980 val.onclick = function() {
7981 $('[id^="myModal_"]').each(function(index,modal){
7982 modal.style.display = "none";
7983 });
7984 }
7985 };
7986
7987 closeModalLocalRealizacao.onclick = function() {
7988
7989 $('[id^="modalLocalRealizacao_"]').each(function(index,modal){
7990 modal.style.display = "none";
7991
7992 });
7993 }
7994
7995 closeModalAntesCompra.onclick = function() {
7996
7997 $('[id^="modalAntesCompra_"], [id^="modalAntesCompraEmed_"]').each(function(index,modal){
7998 modal.style.display = "none";
7999 });
8000 }
8001
8002 closeModalSelecionarOutro.onclick = function() {
8003
8004 $('[id^="modalAntesCompra_"], [id^="modalAntesCompraEmed_"]').each(function(index,modal){
8005 modal.style.display = "none";
8006 });
8007 }
8008
8009 btnEntendiLocalRealizacao.onclick = function() {
8010
8011 $('[id^="modalLocalRealizacao_"]').each(function(index,modal){
8012 modal.style.display = "none";
8013 });
8014 }
8015
8016 if(closeModalBotaoBolsa != null){
8017 closeModalBotaoBolsa.onclick = function() {
8018
8019 $('[id^="modalAntesCompra_"], [id^="modalAntesCompraEmed_"]').each(function(index,modal){
8020 modal.style.display = "none";
8021 });
8022 }
8023 }
8024
8025 // When the user clicks anywhere outside of the modal, close it
8026 window.onclick = function(event) {
8027
8028 $('[id^="myModal_"]').each(function(index,_modal){
8029 if (event.target == _modal)
8030 _modal.style.display = "none";
8031 });
8032 $('[id^="modalLocalRealizacao_"]').each(function(index,_modal){
8033 if (event.target == _modal)
8034 _modal.style.display = "none";
8035 });
8036
8037 $('[id^="modalAntesCompra_"], [id^="modalAntesCompraEmed_"]').each(function(index,_modal){
8038 if (event.target == _modal)
8039 _modal.style.display = "none";
8040 });
8041 }
8042 }
8043
8044 function turmasIniciadas(dataInicioCurso){
8045
8046 var hoje = new Date();
8047 var dataInicioPartes = dataInicioCurso.split('/');
8048 var dataInicioCursoOferta = new Date(dataInicioPartes[2], dataInicioPartes[1] - 1, dataInicioPartes[0] , hoje.getHours(),hoje.getMinutes(),hoje.getSeconds(),hoje.getMilliseconds());
8049
8050 return dataInicioCursoOferta.getTime() <= hoje.getTime();
8051 }
8052
8053
8054 function concatSTR(str1, str2, separador){
8055
8056 if(str2){
8057
8058 return str1+separador+str2;
8059 }
8060 return str1;
8061 }
8062
8063 //Formata exibicao de datas conforme especificacao GCR
8064 function formataPeriodo(dataInicio, dataFim){
8065
8066 var dtInicioPartes = dataInicio.split('/');
8067 var dtFimPartes = dataFim.split('/');
8068
8069 //Não exibir o número zero antes dos números e o dia 1 como 1º
8070 var dInicioFormatada = (parseInt(dtInicioPartes[0].trim()) == 1 ? '1º' : parseInt(dtInicioPartes[0].trim())) +'/'+parseInt(dtInicioPartes[1].trim())+'/'+dtInicioPartes[2].trim();
8071 var dFimFormatada = (parseInt(dtFimPartes[0].trim()) == 1 ? '1º' : parseInt(dtFimPartes[0].trim())) +'/'+parseInt(dtFimPartes[1].trim())+'/'+dtFimPartes[2].trim();
8072
8073 //Quando um curso inicia e finaliza dentro do mesmo ano: 17/2 a 25/4/2020
8074 if(dtInicioPartes[2].trim() == dtFimPartes[2].trim()){
8075
8076 dInicioFormatada = (parseInt(dtInicioPartes[0].trim()) == 1 ? '1º' : parseInt(dtInicioPartes[0].trim()))+'/'+parseInt(dtInicioPartes[1].trim());
8077
8078 //Quando um curso inicia e finaliza dentro do mesmo mês: 5 a 30/4/2020
8079 if(dtInicioPartes[1].trim() == dtFimPartes[1].trim())
8080 dInicioFormatada = (parseInt(dtInicioPartes[0].trim()) == 1 ? '1º' : parseInt(dtInicioPartes[0].trim()));
8081 }
8082
8083 return dInicioFormatada + ' a ' + dFimFormatada;
8084 }
8085
8086 //Decrementa os contadores de abertudas de bolsa
8087 function atualizaTempoAberturasBolsas() {
8088
8089 var btnsContador = (isEmed) ? $('[id^="btnContadorBolsa_"], [id^="btnContadorComprar_"]') : $('[id^="btnContadorBolsa_"]');
8090
8091 btnsContador.each(function() {
8092
8093 var index = $(this).data('index');
8094 var elId = $(this).attr('id');
8095 var btnContent = $(this).parent('.ssp-btn-group__content');
8096
8097 if(isEmed){
8098 //EMED filtra ofertas e usa outra lista para referenciar as ofertas carregadas
8099 var dadosAberturaBolsa = calculaTempoAberturaBolsa((elId.indexOf('btnContadorBolsa') >= 0) ? ofertasMap.get('' +index).dataAberturaBolsaOferta : ofertasMap.get('' +index).dataAberturaMatricula, ofertasMap.get('' + index).horaAberturaBolsaOferta);
8100 }else{
8101 //calcula o tempo até abertura da bolsa, se houver (apenas depois das 08hrs)
8102 var dadosAberturaBolsa = calculaTempoAberturaBolsa(objsTela.ofertas[index].dataAberturaBolsaOferta, objsTela.ofertas[index].horaAberturaBolsaOferta, objsTela.ofertas[index].botaoBolsaOferta);
8103 }
8104
8105 $(this).find('span').text(dadosAberturaBolsa.hours+':'+dadosAberturaBolsa.minutes+':'+dadosAberturaBolsa.seconds);
8106
8107 //Se esgotou o contador
8108 if(dadosAberturaBolsa.hours == 0 && dadosAberturaBolsa.minutes == 0 && dadosAberturaBolsa.seconds == 0){
8109
8110 //remove o contador
8111 $(this).remove();
8112
8113 //Habilitar inscrição EMED
8114 if(isEmed){
8115 var ofertaEmed = ofertasMap.get('' +index);
8116 var btnIndex = elId.slice(elId.indexOf('_')+1);
8117 var elementoPai = $('.codigoOferta_'+ofertaEmed.codigoOferta+' .ssp-ofertas-emed__card-info-investimento');
8118
8119 if(elId.indexOf('btnContadorBolsa') >= 0){
8120 if($('#manutencao-bolsa').val())
8121 criaBotaoBolsaEmed(ofertaEmed, $('#manutencao-bolsa').val(), 'disabled manutencao');
8122 else if(ofertaEmed.vagasBolsaOferta == true || ofertaEmed.vagasBolsaOferta == "true")
8123 criaBotaoBolsaEmed(ofertaEmed, 'Bolsa de estudo', '');
8124 else
8125 criaBotaoBolsaEmed(ofertaEmed, 'Bolsas de Estudo Esgotadas', 'disabled');
8126 }else if(elId.indexOf('btnContadorComprar') >= 0){
8127
8128 var textoBotao, classeBotao;
8129
8130 textoBotao = $('#manutencao-compra').val() || 'Fazer matrícula';
8131 classeBotao = $('#manutencao-compra').val() ? 'disabled manutencao' : '';
8132
8133 //Garante a ordenação dos botoes (matricula depois bolsa)
8134 const botaoBolsa = document.getElementById('btnBolsa_' + btnIndex) || document.getElementById('btnContadorBolsa_' + btnIndex);
8135
8136 botaoBolsa?.remove(); // Remove se existir
8137
8138 criaBotaoInscreverEmed(ofertaEmed, textoBotao, classeBotao, 'btnComprarEmed_' + ofertaEmed.indice, elementoPai);
8139
8140 if (botaoBolsa) {
8141 elementoPai.append(botaoBolsa);
8142 }
8143
8144 //Altera o botao do modal de pagamento
8145 var modal = $('#myModal_' + btnIndex).find('.ssp-card-modal-forma-pagamento');
8146 var btnModal = modal.find('#btnComprarEmedModal_' + btnIndex);
8147 if(btnModal){
8148 btnModal.remove();
8149 criaBotaoInscreverEmedModal(ofertaEmed, textoBotao, classeBotao, 'btnComprarEmedModal_' + btnIndex, modal, btnIndex);
8150 preencheDadosEmedModal(ofertaEmed,modal);
8151 }
8152
8153
8154 }
8155
8156 }else{
8157
8158 //Checa as condições das vagas do botão de bolsa
8159 var btnBolsaHTML = null;
8160 if($('#manutencao-bolsa').val())
8161 btnBolsaHTML = criaBotaoBolsa(objsTela.ofertas[index], $('#manutencao-bolsa').val(), 'disabled manutencao');
8162 else if(objsTela.ofertas[index].vagasBolsaOferta == true || objsTela.ofertas[index].vagasBolsaOferta == "true")
8163 btnBolsaHTML = criaBotaoBolsa(objsTela.ofertas[index], 'Inscrever para bolsa de estudo');
8164 else
8165 btnBolsaHTML = criaBotaoBolsa(objsTela.ofertas[index], 'Vagas esgotadas para bolsas de estudo', 'disabled');
8166
8167 $('.codigoOferta_'+ objsTela.ofertas[index].codigoOferta +'.ssp-container-botao-bolsa').append(btnBolsaHTML);
8168
8169
8170 }
8171 }
8172
8173 });
8174
8175 }
8176
8177 // Retorna um objeto com o tempo de abertura da bolsa, em horas, minutos e segundos
8178 function calculaTempoAberturaBolsa(dataAberturaBolsa, horaAberturaBolsa, botaoBolsa){
8179
8180 var dadosAberturaBolsa = {
8181 days : '',
8182 hours : '',
8183 minutes : '',
8184 seconds : '',
8185 bolsaJaAberta: false,
8186 exibirContador: false,
8187 textoContador: ''
8188 };
8189
8190 if(dataAberturaBolsa.length == 0 || horaAberturaBolsa.length == 0)
8191 return dadosAberturaBolsa;
8192
8193 var now = todayG;
8194 var dia = now.getDate();
8195 var horarioDia = now.getHours();
8196
8197 var tempoRestante= tempoRestanteAberturaBolsa(dataAberturaBolsa, horaAberturaBolsa);
8198
8199 //console.log('tempo restante '+tempoRestante);
8200
8201 var diaAberturaBolsa = dataAberturaBolsa.split('-')[2];
8202
8203 var delta = tempoRestante / 1000;
8204
8205 var days = Math.floor(delta / 86400);
8206
8207 delta -= days * 86400;
8208
8209 var hours = Math.floor(delta / 3600) % 24;
8210 delta -= hours * 3600;
8211
8212 var minutes = Math.floor(delta / 60) % 60;
8213 delta -= minutes * 60;
8214
8215 var seconds = Math.floor(delta % 60);
8216
8217 //Zerar contador para data que ja passou
8218 if(days < 0){
8219 dadosAberturaBolsa.days = 0;
8220 dadosAberturaBolsa.hours = '00';
8221 dadosAberturaBolsa.minutes = '00';
8222 dadosAberturaBolsa.seconds = '00';
8223 }else{
8224 dadosAberturaBolsa.days = days;
8225 dadosAberturaBolsa.hours = hours < 10 ? '0'+hours : hours;
8226 dadosAberturaBolsa.minutes = minutes < 10 ? '0'+minutes : minutes;
8227 dadosAberturaBolsa.seconds = seconds < 10 ? '0'+seconds : seconds;
8228 }
8229
8230 dadosAberturaBolsa.bolsaAberta = days <= 0 && hours <= 0 && minutes <= 0 && seconds <= 0;
8231 var horaExibeContador = 8;
8232 if(!isEmed && botaoBolsa == false){
8233 dadosAberturaBolsa.exibirContador = false;
8234 }else{
8235 dadosAberturaBolsa.exibirContador = days == 0 && horarioDia >= horaExibeContador && !dadosAberturaBolsa.bolsaAberta && (diaAberturaBolsa == dia);
8236 dadosAberturaBolsa.textoContador = dadosAberturaBolsa.hours + ':' + dadosAberturaBolsa.minutes + ":"+ dadosAberturaBolsa.seconds;
8237 }
8238 dadosAberturaBolsa.bolsaJaAberta = tempoRestante < 0;
8239
8240 return dadosAberturaBolsa;
8241
8242 }
8243
8244 // Verifica se uma oferrta já chegou sua data de abertura
8245 function tempoRestanteAberturaBolsa(dataAberturaBolsa, horaAberturaBolsa){
8246 // console.log(dataAberturaBolsa);
8247 // console.log(horaAberturaBolsa);
8248
8249 //var today = new Date();
8250
8251
8252 //console.log( "TodayG "+ todayG);
8253
8254 //Precisa fazer formatação nos horários pois pode estar como 9h ou 9h30
8255 var partesHora = horaAberturaBolsa.split('h');
8256
8257 var partesHora = partesHora.filter(function (el) {
8258 return el != "";
8259 });
8260
8261 //formato 9h
8262 if(partesHora.length == 1)
8263 var aberturaBolsa = new Date(dataAberturaBolsa+'T'+horaAberturaBolsa.replace('h', '').trim()+":00");
8264
8265 else{
8266
8267 //format 9h3
8268 if(partesHora[1].length == 1)
8269 var aberturaBolsa = new Date(dataAberturaBolsa+'T'+partesHora[0].replace('h', '').trim()+':'+partesHora[1] +'0');
8270
8271 //formato 9h30
8272 else
8273 var aberturaBolsa = new Date(dataAberturaBolsa+'T'+partesHora[0].replace('h', '').trim()+':'+partesHora[1]);
8274 }
8275
8276 // console.log(aberturaBolsa);
8277 return aberturaBolsa - todayG;
8278 }
8279
8280 function formataDataAberturaBolsa(dataAberturaBolsa, horaAberturaBolsa){
8281 var dataPartes = dataAberturaBolsa.split('-');
8282
8283 return dataPartes[2]+'/'+dataPartes[1]+ ' às '+horaAberturaBolsa.replace('h', '').trim()+' horas';
8284
8285 }
8286
8287 function formataValor(valor){
8288
8289 if(!valor.toString().includes(".")){
8290 valor = parseFloat(valor).toLocaleString('pt-BR')+",00";
8291 }else{
8292 valor = parseFloat(valor).toLocaleString('pt-BR');
8293
8294 if(valor.split(",").length == 2){
8295
8296 if(valor.split(",")[1].length == 1)
8297 valor += "0";
8298
8299 }else
8300 valor += ",00";
8301 }
8302
8303 return valor;
8304 }
8305
8306 function ajustarCasasDecimaisSemArredondar(numero, casas) {
8307 const str = numero + ''
8308 const arr = str.split('.')
8309 return parseFloat(arr[0].concat('.').concat(arr[1] ? arr[1].substring(0, casas) : '0'))
8310 }
8311
8312 function possuiCriteriosDesconto2022(dt) {
8313 return dt.substring(dt.lastIndexOf('/') + 1) >= 2022
8314 && (
8315 $('[name="tipoCurso"]').val() == 'livre'
8316 || ($('[name="tipoCurso"]').val() == 'tecnico' && $('[name="modalidades"]').val() == 'espec.-tecnica-de-nivel-medio')
8317 || $('[name="tipoCurso"]').val() == 'extensao'
8318 )
8319 }
8320
8321 function strToFloat(str) {
8322 const separator = str.includes(',') ? ',' : '.'
8323
8324 const numArr = str.split(separator)
8325 const inteiro = numArr[0].replaceAll('.', '').replaceAll(',', '.')
8326 const decimal = numArr[1] ? numArr[1].replaceAll('.', '').replaceAll(',', '.') : ''
8327 return parseFloat(inteiro.concat('.').concat(decimal ? decimal : '0'))
8328 }
8329
8330 function possuiMensalidade99(oferta) {
8331 if(!oferta.precoVendaMaxParcelaOferta
8332 || (oferta.precoVendaMaxParcelaOferta != 99
8333 && parseFloat(oferta.precoParcelaCartoes.replace(',','.')) != 99
8334 && parseFloat(oferta.precoParcelaBoleto.replace(',','.')) != 99))
8335 return false
8336
8337 if($('[name="modalidades"]').val() == 'hab.-tecnica-de-nivel-medio')
8338 return true
8339
8340 if($('[name="modalidades"]').val() == 'espec.-tecnica-de-nivel-medio')
8341 return true
8342
8343 if($('[name="modalidades"]').val() == 'qualificacao-profissional')
8344 return true
8345
8346 return false
8347 }
8348
8349 function htmlSlickArea(index, oferta, diasSemanaHTML, codigoUnidade) {
8350 let temDesconto = possuiCriteriosDesconto2022(oferta.dataInicio)
8351 temDesconto = temDesconto && !possuiMensalidade99(oferta)
8352
8353 const btnLocalReal = function(oferta){
8354
8355 var btn = `<div class="container-local-realizacao ` + ((oferta.espacoExterno == 'true'|| (isHibrido && temTextoParaFormatoHibrido)) ? '' : 'd-none-btn') + (localLivreOnline(oferta.localEspacoExterno) ? ' idioma-online' : '') + `">`;
8356
8357 btn += (localLivreOnline(oferta.localEspacoExterno)) ?
8358 `<a id="btnLocalRealizacao_` + index + `" data-index="` + index + `" class="btn-idiomas__aula-online" href="#">
8359 <i class="fas fa-wifi"></i>Aulas Online - ao vivo</a>`
8360 : `<a id="btnLocalRealizacao_` + index + `" data-index="` + index + `" class="ssp-card-oferta-curso__local-realizacao-content__title" href="#">
8361 <i class="fas fa-user"></i>Onde as aulas vão acontecer?</a>`;
8362
8363 btn += `</div>`;
8364
8365 return btn;
8366
8367 }
8368
8369 // Card Oferta
8370
8371 let result = `
8372 <div class="slick-area__item card_oferta_` + index + ` codigoOferta_` + oferta.codigoOferta + ` ` + (temDesconto ? 'ssp-desconto-2022' : '') + `">
8373
8374 <div class="ssp-card-oferta-curso">
8375
8376 <div class="content-data-dias">
8377
8378 <div class="ssp-card-oferta__info-turma-iniciada" id="aviso-turma-iniciada-` + index + `" style="display:none">
8379 <h6 style="color:white;background-color:#ff7157;border-radius: 5px;padding: 8px 0px;width: 60%;font-size: 12px;margin-top: 0;"><strong>Turma iniciada, comece já!</strong></h6>
8380 </div>
8381
8382
8383 <div>
8384 <small class="ssp-card-oferta-curso__title-item">Período:</small>
8385 <h6 class="ssp-card-oferta-curso__item-data-periodo item-data-periodo_` + index + `">` + formataPeriodo(oferta.dataInicio, oferta.dataFim) + `</h6>
8386 </div>
8387
8388 <div class="content-horario-dias-semana">
8389
8390 <div class="horario">
8391 <small class="ssp-card-oferta-curso__title-item">Horário e dias das aulas:</small>
8392 </div> ` +
8393
8394 `<div class="ssp-card-oferta-curso__dia-hora_content">
8395 ` + diasSemanaHTML + `
8396 </div>
8397
8398 </div>
8399
8400 ` + btnLocalReal(oferta);
8401
8402 result = result + `
8403 </div>
8404 `
8405
8406 //Regra adicionada em 04/01/22 devido aos cursos de Garçon e Cozinheiro. Definimos como regra geral que caso botaoCompra seja falso, não faz sentido mostrar os valores
8407 //Adicionada a validação dos preços da oferta em 07/06/2022 - Tarefa 9498
8408 const estaSemValorOferta = oferta.botaoCompraOferta == ''
8409 || oferta.botaoCompraOferta == 'false'
8410 || !oferta.precoVendaOferta
8411 || !oferta.precoCheioOferta
8412 || !oferta.precoVendaMaxParcelaOferta
8413 || strToFloat(oferta.precoVendaOferta) == 0
8414 || strToFloat(oferta.precoCheioOferta) == 0
8415 || strToFloat(oferta.precoVendaMaxParcelaOferta) == 0
8416
8417 //Trecho inicial do Bolsa de estudo
8418 result += `<div class="content-btn-bolsa codigoOferta_` + oferta.codigoOferta + (estaSemValorOferta ? ' pb-0' : '') + `">
8419 <div class="ssp-card-oferta__info-turma-content">
8420 <h6 class="ssp-card-oferta__info-turma mb-0">Bolsas de estudo</h6>
8421 </div>
8422 <div class="codigoOferta_` + oferta.codigoOferta + ` ssp-container-botao-bolsa"></div>
8423 </div>
8424 `
8425
8426 if(estaSemValorOferta) {
8427 result = result + `
8428 <div class="content-buttons hide">
8429 </div>
8430 `
8431 return result;
8432 }
8433
8434
8435 //Trecho final do Bolsa de estudo e inclusao de botao de expansao do "Valores para compra"
8436 result += ` <div class="show-price-content codigoOferta_` + oferta.codigoOferta + `">
8437 <div class="ou-separator-desconto">Ou</div>
8438 <button type="button" class="btn-show-price">
8439 <p>Saiba mais sobre:</p>
8440 <div onclick="togglePriceCard('codigoOferta_` + oferta.codigoOferta + `')">
8441 <i class="fas fa-money-bill"></i>
8442 <span>Valores para compra</span>
8443 </div>
8444 </button>
8445 </div>
8446 `
8447
8448 result = result + `
8449 <div class="content-valores-descontos hide-price codigoOferta_` + oferta.codigoOferta + `">
8450 `
8451
8452 if( temDesconto && !ehCursoTrampolim ) {
8453 result = result + `
8454 <div class="ssp-card-oferta__info-turma-content">
8455 <h6 class="ssp-card-oferta__info-turma">Valores para compra</h6>
8456 </div>
8457
8458 <div class="block-valor-desconto">
8459
8460 <div class="tag-label-desconto">
8461 <small class="ssp-card-oferta-curso__title-item">Valor com </small>
8462 <span class="ssp-card-oferta-curso__valor-desconto">50% de desconto*</span>
8463 </div>
8464
8465 <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(ajustarCasasDecimaisSemArredondar((strToFloat(oferta.precoVendaOferta)/strToFloat(oferta.numeroMaxParcelasOferta))/2, 2)) + `</h6>
8466
8467 <div class="ssp-card-oferta-curso__desconto-content">
8468 <p>De: <span class="ssp-card-oferta-curso__valor-antigo">R$ ` + formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaOferta), 2)) + `</span></p>
8469 <p>Por: <span class="ssp-card-oferta-curso__valor-desconto">R$ ` + formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaOferta)/2, 2)) + `</span></p>
8470 </div>
8471 `
8472
8473 if($('[name="tipoCurso"]').val() == 'extensao') {
8474 result = result + `<p class="modal-extensao_txteconomiza my-2">* Válido para quem trabalha ou tem sua própria empresa no setor de comércio e serviços, estudantes ou ex-estudantes de cursos técnicos no Senac ou para quem já finalizou o Ensino Médio Técnico no Senac.</p></div>`
8475 } else {
8476 result = result + `<p class="modal-extensao_txteconomiza my-2">*Válido para quem trabalha ou tem sua própria empresa no setor de comércio e serviços.</p></div>`
8477 }
8478
8479 result = result + `
8480 <div class="ou-separator-desconto">Ou</div>
8481
8482 <div class="block-valor-total">
8483
8484 <small class="ssp-card-oferta-curso__title-item">Valor sem desconto:</small>
8485
8486 <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(oferta.precoVendaMaxParcelaOferta) + `</h6>
8487
8488 <div class="ssp-card-oferta-curso__desconto-content">
8489 <p>Valor total: <strong>R$ ` + formataValor(strToFloat(oferta.precoVendaOferta)) + `</strong></p>
8490 </div>
8491
8492 </div>
8493 `
8494 }else{
8495
8496 // itens que são diferentes entre técnico e livres comprado a extensão
8497 if($('[name="tipoCurso"]').val() == 'extensao'){
8498 result = result + `
8499
8500 <div class="block-valor-total">
8501
8502 <div class="investimento" id="container_investimento_` + index + `">
8503
8504 <small class="ssp-card-oferta-curso__title-item">Investimento:</small>
8505
8506 <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaMaxParcelaOferta))) + `</h6>
8507
8508 <div class="ssp-card-oferta-curso__desconto-content">
8509 <p>Ou: <span class="ssp-card-oferta-curso__valor-antigo text-decoration-none">R$ ` + formataValor(oferta.precoVendaOferta) + `</span> à vista</p>
8510 </div>
8511
8512 </div>
8513
8514 </div>
8515 `
8516 } else {
8517 result = result + `
8518 <div class="block-valor-total">
8519 <div class="investimento" id="container_investimento_` + index + `">
8520 `
8521
8522 // Não mostrar mensagem de 30% de desconto em casos especificos
8523 if(temDesconto){
8524 result = result + `
8525 <small class="ssp-card-oferta-curso__title-item font-weight-bold">Valor com 30% de desconto:</small>
8526 `
8527 }
8528
8529 if(oferta.precoCheioOferta == oferta.precoVendaOferta) {
8530 result = result + `
8531 <small class="ssp-card-oferta-curso__title-item">Valor do curso:</small>
8532 <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(oferta.precoVendaMaxParcelaOferta) + `</h6>
8533
8534 <div class="ssp-card-oferta-curso__desconto-content">
8535 <p>Ou <span class="ssp-card-oferta-curso__valor-antigo text-decoration-none">R$ ` + formataValor(oferta.precoVendaOferta) + `</span></p>
8536 </div>
8537 </div>
8538 </div>
8539 `
8540 } else {
8541 result = result + `
8542 <small class="ssp-card-oferta-curso__title-item">Investimento:</small>
8543 <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(oferta.precoVendaMaxParcelaOferta) + `</h6>
8544
8545 <div class="ssp-card-oferta-curso__desconto-content">
8546 <p>De: <span class="ssp-card-oferta-curso__valor-antigo">R$ ` + formataValor(oferta.precoCheioOferta) + `</span></p>
8547 <p>Por: <span class="ssp-card-oferta-curso__valor-desconto">R$ ` + formataValor(oferta.precoVendaOferta) + `</span></p>
8548 </div>
8549 </div>
8550 </div>
8551 `
8552 }
8553 }
8554 }
8555
8556 let dataBtnComprar = getObjBtnComprar(oferta);
8557
8558 // itens que são diferentes entre técnico e livres comprado a extensão
8559 result = result + `
8560
8561 <div class="ssp-card-oferta-curso__formas-pagamento-content" id="container_forma_pgto_` + index + `">
8562
8563 <span>Saiba mais sobre:</span>
8564
8565 <div>
8566 <i class="ssp-card-oferta-curso__formas-pagamento-content__icon-credit-card"></i>
8567 <a id="myBtn_` + index + `" data-index="` + index + `" class="ssp-card-oferta-curso__formas-pagamento-content__title" style="font-weight: 600;" href="#">` + (temDesconto ? 'Descontos e pagamento' : 'Descontos e parcelamento') + `</a>
8568 </div>
8569
8570 </div>
8571
8572 <div class="content-buttons">
8573
8574 <div class="ssp-btn-group__content botoes-oferta-container_` + index + `">
8575
8576 <a href="#a" id="btnComprar_` + index + `" data-espaco-ex="` + dataBtnComprar.dataEspacoEx + `" data-unidade="` + codigoUnidade + `" data-evento="` + oferta.codigoOferta + `" data-destino-compra="` + oferta.destinoCompra + `" data-index="` + index + `" class="btn btn-lg btn-success w-100 mt-3 ` + dataBtnComprar.classeBotao + `" style="font-size:16px;font-weight: 600;">` + dataBtnComprar.textoBotao + `</a>
8577
8578 </div>
8579
8580 </div>
8581
8582 </div>
8583
8584 </div>
8585 `
8586
8587 return result
8588 }
8589
8590 var htmlModalLocalRealizacao = '<div id="modalLocalRealizacao_{index}" class="ssp-modal">'
8591 htmlModalLocalRealizacao += '<div class="ssp-modal-local-realizacao">'
8592 htmlModalLocalRealizacao += '<div class="ssp-modal-local-realizacao__title-content">'
8593
8594 htmlModalLocalRealizacao += '{tituloLocalRealizacao}'
8595
8596 htmlModalLocalRealizacao += '<i class="ssp-card-modal-local-realizacao__btn-close_{index} ssp-card-modal-forma-pagamento__btn-close"></i>'
8597 htmlModalLocalRealizacao += '</div>'
8598 htmlModalLocalRealizacao += '<div class="ssp-modal-local-realizacao__texto">'
8599 htmlModalLocalRealizacao += '<p class="{classeTextoInfoLocalRealizacao}">A unidade {nomeUnidade} realizará as aulas em outro endereço, conforme informações abaixo:</p>'
8600 htmlModalLocalRealizacao += '<p><span class="ssp-modal-local-realizacao__subtitle localEspacoExternoTexto_{index}">{textoFormatoHibrido}{localEspacoExterno}</span></p>'
8601 htmlModalLocalRealizacao += '<address>'
8602 htmlModalLocalRealizacao += '<span id="endereco_realizacao_{index}" class="{classeEnderecoRealizacao}">{ruaEspacoExterno}, {numeroEspacoExterno} {complementoEspacoExterno}<br></span>'
8603 htmlModalLocalRealizacao += '<span id="bairro_realizacao_{index}" class="{classeBairroRealizacao}">Bairro: {bairroEspacoExterno}<br></span>'
8604 htmlModalLocalRealizacao += '<span id="cidade_realizacao_{index}" class="{classeCidadeRealizacao}">Cidade: {cidadeEspacoExterno} - SP<br></span>'
8605 htmlModalLocalRealizacao += '<span id="cep_realizacao_{index}" class="{classeCepRealizacao}">CEP: {cepEspacoExterno}</span>'
8606 htmlModalLocalRealizacao += '</address>'
8607 htmlModalLocalRealizacao += '<div class="btn ssp-modal-local-realizacao__btn-content">'
8608 htmlModalLocalRealizacao += '<a class="btn ssp-modal-local-realizacao__btn {classeEntendi} ssp-modal-local-realizacao__btn_{index}" href="#a">Entendi</a>'
8609 htmlModalLocalRealizacao +='</div>'
8610 htmlModalLocalRealizacao +='</div>'
8611 htmlModalLocalRealizacao +='</div>'
8612 htmlModalLocalRealizacao +='</div>';
8613
8614 var htmlModalAntesCompra = '<div id="modalAntesCompra_{index}" class="ssp-modal">'
8615 htmlModalAntesCompra += '<div class="ssp-modal-local-realizacao">'
8616 htmlModalAntesCompra += '<div class="ssp-modal-local-realizacao__title-content">'
8617 htmlModalAntesCompra += '<h6 class="ssp-modal-local-realizacao__title"> LEMBRETE IMPORTANTE!</h6>'
8618 htmlModalAntesCompra += '<i class="ssp-card-modal-antes-compra__btn-close_{index} ssp-card-modal-forma-pagamento__btn-close"></i>'
8619 htmlModalAntesCompra += '</div>'
8620 htmlModalAntesCompra += '<div class="ssp-modal-local-realizacao__texto">'
8621 htmlModalAntesCompra += '<p class="{classeTextoInfoLocalRealizacao}">A unidade {nomeUnidade} realizará as aulas em outro endereço, conforme informações abaixo:</p>'
8622 htmlModalAntesCompra += '<p><span class="ssp-modal-local-realizacao__subtitle localEspacoExternoTexto_{index}">{textoFormatoHibrido}{localEspacoExterno}</span></p>'
8623 htmlModalAntesCompra += '<address>'
8624 htmlModalAntesCompra += '<span id="endereco_realizacao_{index}" class="{classeEnderecoRealizacao}">{ruaEspacoExterno}, {numeroEspacoExterno} {complementoEspacoExterno}<br></span>'
8625 htmlModalAntesCompra += '<span id="bairro_realizacao_{index}" class="{classeBairroRealizacao}">Bairro: {bairroEspacoExterno}<br></span>'
8626 htmlModalAntesCompra += '<span id="cidade_realizacao_{index}" class="{classeCidadeRealizacao}">Cidade: {cidadeEspacoExterno} - SP<br></span>'
8627 htmlModalAntesCompra += '<span id="cep_realizacao_{index}" class="{classeCepRealizacao}">CEP: {cepEspacoExterno}</span>'
8628 htmlModalAntesCompra += '</address>'
8629 htmlModalAntesCompra += '<div class="btn ssp-modal-local-realizacao__btn-content">'
8630 htmlModalAntesCompra += '{componentBuyConfirmation}'
8631 htmlModalAntesCompra += '<a id="btnBolsaLocal_{index}" class="btn btn-lg btn-info w-100 mt-3" href="{linkBtnBolsa}" target="_blank" style="display:none;">OK, inscrever para bolsa</a>'
8632 htmlModalAntesCompra += '<a class="ssp-modal-local-realizacao__btn btn btn-lg w-100 mt-3 ssp-card-modal-selecionar-outro__btn-close_{index}" href="#a" >Selecionar outra turma</a>'
8633 htmlModalAntesCompra +='</div>'
8634 htmlModalAntesCompra +='</div>'
8635 htmlModalAntesCompra +='</div>'
8636 htmlModalAntesCompra +='</div>';
8637
8638 var htmlSlickAreaDiasSemana = '<div class="ssp-card-oferta-curso__dia-hora-item">'
8639 htmlSlickAreaDiasSemana +='<p class="ssp-card-oferta-curso__dia-hora-item__dia">'
8640 htmlSlickAreaDiasSemana += '<span data-dia-hora="dias-semana">{diasSemana}</span>'
8641 htmlSlickAreaDiasSemana += '<span data-dia-hora="horário">{horasSemana}</span>'
8642 htmlSlickAreaDiasSemana += '</p>'
8643 htmlSlickAreaDiasSemana += '</div>';
8644
8645
8646 //Montar object push - google tag manager - 5
8647 function criaItensEcommerce(ofertas){
8648
8649 let nomeUnidadeSelecionada = objsTela.unidades[ultimaUnidade].nome
8650
8651 let dadosCurso = {
8652 //Pegar do freemarker
8653 tituloComercial : $('[name="tituloComercial"]').val(),
8654 tipoCurso : $('[name="nomeCategoriaTipoCurso"]').val(),
8655 formato : $('[name="formato"]').data("formato")
8656 }
8657
8658 let ecommerceObject = {
8659
8660 item_id: "", //codOferta - oferta,
8661 item_name: "", //Nome do curso - curso,
8662 affiliation: "", //nome da unidade - oferta,
8663 currency: "BRL", //Moeda - "BRL",
8664 discount: "", //desconto - oferta,
8665 index: "", //indice da lista - i,
8666 item_brand: "Senac SP", //"Senac SP",
8667 item_category: "", //categoria do curso - curso,
8668 item_list_id: "", //"60",
8669 item_list_name: "", //"São Carlos" - Oferta,
8670 item_variant: "", //modalidade - curso,
8671 price: "", //preco cheio - oferta,
8672 quantity: 1
8673
8674 }
8675
8676 let itensEcommerce = new Map();
8677
8678 for(var i = 0; i < ofertas.length; i++){
8679
8680 itensEcommerce.set(ofertas[i].codigoOferta, {
8681
8682 item_id: ofertas[i].codigoOferta, //codOferta - oferta,
8683 item_name: dadosCurso.tituloComercial, //Nome do curso - curso,
8684 affiliation: nomeUnidadeSelecionada, //nome da unidade - oferta,
8685 currency: "BRL", //Moeda - "BRL",
8686 discount: parseFloat(ofertas[i].precoCheioOferta - ofertas[i].precoVendaOferta).toFixed(2), //desconto - oferta,
8687 index: i, //indice da lista - i,
8688 item_brand: "Senac SP", //"Senac SP",
8689 item_category: dadosCurso.tipoCurso, //categoria do curso - curso,
8690 item_list_id: objsTela.unidades[ultimaUnidade].codigoUnidade, //"60",
8691 item_list_name: nomeUnidadeSelecionada, //"São Carlos" - Oferta,
8692 item_variant: dadosCurso.formato, //modalidade - curso,
8693 price: parseFloat(ofertas[i].precoCheioOferta).toFixed(2), //preco cheio - oferta,
8694 quantity: 1
8695
8696 }
8697 )
8698 }
8699
8700 return itensEcommerce;
8701 }
8702
8703 //EMED - ELEMENTOS DINAMICOS
8704 const htmlSlickAreaEmed = function(oferta){
8705 var btnid = 'myBtn_' + oferta.indice;
8706 const diasHorarios = function(oferta){
8707 return oferta.diasDaSemanaOferta.join(', ').toLowerCase();
8708
8709 }
8710
8711
8712 return `
8713 <div class="ssp-ofertas-emed__card codigoOferta_`+ oferta.codigoOferta + `">
8714
8715 <div class="ssp-ofertas-emed__card-info-turma">
8716
8717 <div class="item-content">
8718 <i class="fas fa-calendar-alt calendar-icon-turma"></i>
8719 <p class="title-turma">`+ oferta.titulo +`</p>
8720 <span class="text-default" data-info="info-turma">Alunos na turma: <strong>até `+ oferta.qtdeTotalVagas +`</strong></span>
8721 </div>
8722
8723 <div class="content-previsao-inicio-termino">
8724
8725 <div class="item-content">
8726 <span class="text-default">Previsão de início:</span>
8727 <span class="text-default-lg">`+ formatarDataEmed(oferta.dataInicio,oferta.etapa,false) +`</span>
8728 </div>
8729
8730 <div class="item-divisor"></div>
8731
8732 <div class="item-content">
8733 <span class="text-default">Previsão de término:</span>
8734 <span class="text-default-lg">`+ formatarDataEmed(oferta.dataFim,oferta.etapa,true) +`</span>
8735 </div>
8736
8737 </div>
8738
8739
8740 <div class="item-divisor"></div>
8741
8742 <div class="item-content">
8743 <span class="text-default">Dias e horários das aulas:</span>
8744 <span class="text-default-lg" style="text-transform: capitalize;">`+ diasHorarios(oferta) +`</span>
8745 <span class="text-default-lg">`+ oferta.horaInicio.replace(':', 'h') + ' às ' + oferta.horaFimOferta.replace(':', 'h') +`</span>
8746 </div>
8747
8748 </div>
8749
8750 <div class="ssp-ofertas-emed__card-info-investimento">
8751 <p class="title-investimento">Investimento anual:</p>
8752
8753 <div class="item-content-investimento">
8754 <span class="txt-parcelas">Até `+ oferta.numeroMaxParcelasOferta +`x</span>
8755 <span class="txt-valor-parcela">R$ `+ formataValor(oferta.precoVendaMaxParcelaOferta) +`</span>
8756 </div>
8757
8758 <div class="item-content-investimento">
8759 <p class="txt-boleto-cartao">(boleto bancário ou cartão de crédito)</p>
8760 </div>
8761
8762 <div class="item-content-investimento">
8763 <i class="fas fa-credit-card icon-cartao-credito"></i>
8764 <a id="`+ btnid +`" data-index="`+ oferta.indice +`" href="#" class="link-descontos-parcelamentos">Descontos e Parcelamentos</a>
8765 </div>
8766
8767 </div>
8768
8769 </div>
8770
8771 `;
8772 }
8773
8774
8775 function loadCursosVocePodeGostar(){
8776
8777 if(isEmed){
8778 var url = urlSearchCursosPodeGostarEmed
8779 .replace('\{groupId\}', groupId)
8780 .replace('\{tiposDeCurso\}',$('[name="idTipoCurso"]').val())
8781 .replace('\{limit\}', 12)
8782 .replace('\{articleId\}', $('[name="articleId"]').val());
8783 }else{
8784 var url = urlSearchCursosPodeGostar
8785 .replace('\{companyId\}',themeDisplay.getCompanyId())
8786 .replace('\{groupId\}', groupId)
8787 .replace('\{userId\}',themeDisplay.getUserId())
8788 .replace('\{articleId\}',$('[name="articleId"]').val())
8789 .replace('\{limit\}', 12);
8790 }
8791
8792
8793 $.ajax({
8794 url : url,
8795 type : 'get',
8796 beforeSend: function(){
8797 loading('#slider-curso');
8798 }
8799 })
8800 .done(function(cursos){
8801
8802 if(cursos.length > 0){
8803
8804 cursos = JSON.parse(cursos);
8805
8806 if(isEmed) cursos = cursos['cursos'];
8807
8808 if(cursos.length > 0) $('#section-cursos-voce-pode-gostar').removeClass('d-none');
8809 else {
8810 $('#section-cursos-voce-pode-gostar').addClass('d-none');
8811 return;
8812 }
8813
8814 var articles = [];
8815
8816 $.each(cursos, function(k, c){
8817 articles.push(c.articleId);
8818 });
8819
8820 //Verifica a situação dos botoes de inscrições e bolsa
8821 $.ajax({
8822 url : '/o/senac-content-services/verificaBotoesInscricaoEBolsa/'+groupId+'/'+articles.join(','),
8823 type : 'get'
8824 })
8825 .done(function(infoBotoes){
8826
8827 if(infoBotoes.length > 0) {
8828
8829 infoBotoes = JSON.parse(infoBotoes);
8830
8831 $('#slider-curso').empty();
8832
8833 $.each(cursos, function(k, c){
8834 $('#slider-curso').append(buildCardCurso(c, infoBotoes));
8835
8836 });
8837
8838 $('#slider-curso').addClass(
8839 'slick-area slick-area--md-bleed slider-container slick-area-cursos-pode-gostar');
8840
8841 sliderCurso('.slick-area-cursos-pode-gostar');
8842 }
8843 });
8844 }
8845
8846 })
8847 .fail(function(jqXHR, textStatus, msg){
8848 // alert(msg);
8849 });
8850
8851 }
8852
8853 /*
8854 * Armazena a navegação em cookies, se habilitado
8855 */
8856 $(document).on("click", ".ck-curso", function() {
8857
8858 //Verifica se o cookie está habilitado
8859 if(getCookie('portalSenacCookie') != null){
8860
8861 var articleId = $(this).data('ck');
8862 manageCookieArray('ck-cursos', articleId);
8863
8864 }
8865
8866 });
8867
8868
8869
8870
8871
8872 $(function(){
8873
8874 if($('#unidades-ofertas').find('option').length ==0){
8875
8876 $('.ssp-container-selecione-unidade').addClass('d-none')
8877
8878 }
8879
8880 });
8881
8882 function avisoNovasTurmas(){
8883
8884
8885 window.event.preventDefault()
8886
8887 //var unidadeSelecionada = $('#select-registro-interesse').val();
8888 //este select tem 2 valores separados por @ -> categoryId@codUnidade
8889 // var unidadeSelecionada = $('#unidades-ofertas').val();
8890
8891 //Código fixo quando Senac Ao Vivo
8892 var codUnidadeSelectRegInt = (isAoVivo) ? codUnidadeSenacAoVivo : $('#unidades-ofertas').val().split("@")[1];
8893
8894 // if(codUnidadeSelectRegInt && codUnidadeSelectRegInt.length){
8895
8896 //Se ja tiver logado , redireciona para o registro
8897 if(getCookie('ticket') == null){
8898
8899 //Abre modal login
8900 $('#modal-login').removeClass('d-none');
8901
8902 }else{
8903
8904 abrirModalRegistroInteresse(codUnidadeSelectRegInt);
8905
8906 verificaBtnEnviarRegistroInteresseAtivo();
8907 }
8908
8909 window.onclick = function(event) {
8910 $('[id="modal-registro-interesse"]').each(function(index,_modal){
8911 if (event.target == _modal) {
8912 $('#modal-registro-interesse').addClass('d-none');
8913 $("body").removeClass("overflow-hidden")
8914 }
8915 });
8916 }
8917
8918 // }
8919 }
8920 function login(){
8921 var unidadeSelecionada
8922 var codUnidadeSelectRegInt
8923 doLogin({
8924 user: $('#login-email-modal').val(),
8925 pass: $('#login-password-modal').val(),
8926 btnLoadingSelector: '#btnLogin',
8927 before: () => {
8928 $('#mensagem-erro-login').addClass('d-none')
8929
8930 unidadeSelecionada = $('#unidades-ofertas').val();
8931 codUnidadeSelectRegInt = (isAoVivo) ? codUnidadeSenacAoVivo : $('#unidades-ofertas').val().split("@")[1];
8932 },
8933 done: (data) => {
8934 var loginData = JSON.parse(data);
8935
8936 if(loginData.status == 200 || loginData.status == 201){
8937 //Após logar-se, exibe o modal p/registro de interesse
8938 abrirModalRegistroInteresse(codUnidadeSelectRegInt);
8939 verificaBtnEnviarRegistroInteresseAtivo();
8940 //esconde o modal de login
8941 $('#modal-login').addClass('d-none');
8942 }
8943 },
8944 errorMessageSelector: '#mensagem-erro-login',
8945 error: (err) => console.error(err)
8946 })
8947 }
8948
8949 function registroSelecionaTodosDias(){
8950
8951 if($(this).hasClass('ssp-week-day-active')){
8952 $(this).removeClass('ssp-week-day-active')
8953 $('.ssp-week-day').removeClass('ssp-week-day-active')
8954 }else{
8955 $(this).addClass('ssp-week-day-active')
8956 $('.ssp-week-day').addClass('ssp-week-day-active')
8957 }
8958
8959 verificaBtnEnviarRegistroInteresseAtivo();
8960 }
8961
8962 function registroSelecionaTodosPeriodos(){
8963
8964 if($(this).is(':checked')){
8965 $('.ssp-card-registro-interesse__check-itens-content.periodos-registro-interesse input[type=checkbox]').prop('checked', true);
8966 }else{
8967 $('.ssp-card-registro-interesse__check-itens-content.periodos-registro-interesse input[type=checkbox]').prop('checked', false);
8968 }
8969
8970 verificaBtnEnviarRegistroInteresseAtivo();
8971 }
8972 $('.turmas-registro-interesse input[type=checkbox]').on('click', function() {
8973 var $selecionado = $(this);
8974 if ($selecionado.is(":checked")) {
8975 $('.turmas-registro-interesse input[type=checkbox]').prop("checked", false);
8976 $selecionado.prop("checked", true);
8977 } else {
8978 $selecionado.prop("checked", false);
8979 }
8980});
8981 function enviarRegistroInteresse(){
8982
8983 const codigoUsr = getCookie('codigo');
8984
8985 if(codigoUsr == null){
8986 //Sem o cookie refaz o login
8987 $('#modal-registro-interesse').addClass('d-none');
8988 $('body').removeClass('overflow-hidden');
8989 $('#modal-login').removeClass('d-none');
8990 return;
8991 }
8992
8993 var codigoFT = $('[name="codigoFT"]').val();
8994
8995 var unidades = new Set();
8996
8997 var diasSemana = '';
8998
8999 //Senac ao vivo nao tem opçao de dias da semana nem unidades
9000 if(isAoVivo){
9001 unidades.add(codUnidadeSenacAoVivo);
9002 }else{
9003 $.each($('.ssp-week-day').not('#todosDias'), function(k, v){
9004 if($(this).hasClass('ssp-week-day-active')){
9005 diasSemana += $(this).text()+',';
9006 }
9007 });
9008
9009 if(diasSemana.length > 0) diasSemana = diasSemana.slice(0, -1);
9010
9011 $.each($('.ssp-card-registro-interesse__select'), function(k,item){
9012
9013 unidades.add(item.value);
9014 });
9015 }
9016
9017
9018 var periodos = '';
9019
9020 $.each($('.periodos-registro-interesse input[type=checkbox]').not('#check-todos-periodos'), function(k,v){
9021 if($(this).is(':checked')){
9022 periodos += $(this).val()+',';
9023 }
9024 });
9025
9026 var turmas = '';
9027
9028 $.each($('.turmas-registro-interesse input[type=checkbox]').not('#check-todos-periodos'), function(k, v) {
9029 if ($(this).is(':checked')) {
9030 turmas += $(this).val() + ',';
9031 }
9032 });
9033
9034 if (periodos.length > 0) periodos = periodos.slice(0, -1);
9035 if (turmas.length > 0) turmas = turmas.slice(0, -1);
9036
9037 var usuarioNotificado = false;
9038
9039 loadingSubmitButton('#enviar-registro-interesse-btn');
9040
9041 unidades.forEach(function(codigoUnidade) {
9042 var data = {
9043 codigoFT: codigoFT,
9044 codigo: codigoUsr,
9045 diasSemana: diasSemana,
9046 periodos: periodos,
9047 turmas, turmas,
9048 codigoUnidade: codigoUnidade,
9049 interesseBolsa: 'N',
9050 isEmed: isEmed ? 'S' : 'N'
9051 };
9052
9053 const url = urlRegistroInteresse;
9054
9055 $.ajax({
9056 url: url,
9057 method: 'POST',
9058 data: JSON.stringify(data),
9059 headers: {
9060 'Accept': 'application/json',
9061 'Content-Type': 'application/json'
9062 },
9063 }).done(
9064 function(retornoData) {
9065
9066 var retornoData = JSON.stringify(retornoData);
9067
9068 if (retornoData.length > 0) {
9069
9070 cleanLoadingSubmitButton('#enviar-registro-interesse-btn');
9071
9072 var retorno = JSON.parse(retornoData);
9073
9074 if (retorno.status == 200 || retorno.status == 201) {
9075
9076 //Evita que o usuário recebe um email para cada unidade de interesse
9077 if(usuarioNotificado) return;
9078
9079 //Mensagem de sucesso registro interesse
9080 $('#modal-registro-interesse-sucesso').removeClass('d-none');
9081
9082 var prefixUrl = themeDisplay.getLayoutRelativeURL();
9083
9084 if (prefixUrl.indexOf('staging/') > 1)
9085 prefixUrl = prefixUrl.substring(0, prefixUrl.lastIndexOf('staging/') + 8);
9086 else
9087 prefixUrl = HOST;
9088
9089 $('#btn-voltar-home').attr('href', prefixUrl);
9090
9091 //Busca os dados do nome do usuário logado
9092 var username = getCookie('name').split(' ')[0];
9093
9094 //Prioridade para nomeSocial
9095 if (getCookie('nome_social') != null) {
9096 var nomeSocial = getCookie('nome_social').replace(/['"]+/g, '');
9097
9098 if (nomeSocial.length > 0) username = getCookie('nome_social');
9099
9100 }
9101
9102 username = username.replace(/['"]+/g, '');
9103
9104 var unidadesSel = getUnidadesSelecionadasRI();
9105
9106 //Disara um email para o usuário interessado
9107 var data = {
9108 emailInteressado: getCookie('email'),
9109 nomeInteressado: username,
9110 tituloCurso: $('.ssp-card-detalhe-curso__title').text(),
9111 unidades: unidadesSel.unidades,
9112 unidadesPrefix: unidadesSel.unidadesPrefix
9113 };
9114
9115 $.ajax({
9116 url: urlRegistroInteresseEmailInteressado,
9117 method: 'POST',
9118 data: JSON.stringify(data),
9119 headers: {
9120 'Accept': 'application/json',
9121 'Content-Type': 'application/json'
9122 },
9123 }).done(function(retornoData) {});
9124
9125 usuarioNotificado = true;
9126
9127 window.onclick = function(event) {
9128 $('[id="modal-registro-interesse-sucesso"]').each(function(index, _modal) {
9129 if (event.target == _modal){
9130 $('#modal-registro-interesse-sucesso').addClass('d-none');
9131 $('#modal-registro-interesse').addClass('d-none');
9132 $("body").removeClass("overflow-hidden");
9133 }
9134 });
9135 }
9136
9137 } else {
9138 //Mensagem de erro registro interesse
9139 $('#modal-registro-interesse-erro').removeClass('d-none');
9140 }
9141 } else {
9142 //Mensagem de erro registro interesse
9143 $('#modal-registro-interesse-erro').removeClass('d-none');
9144 }
9145 }).fail(function(){
9146 cleanLoadingSubmitButton('#enviar-registro-interesse-btn');
9147 $('#modal-registro-interesse-erro').removeClass('d-none');
9148 });
9149 });
9150 }
9151
9152 function verificaBtnEnviarRegistroInteresseAtivo(){
9153
9154 var diasSemanaSelecionado = false;
9155 var periodoSelecionado = false;
9156 var turmaSelecionada = false;
9157 var politicaPrivacidadeSelecionado = false;
9158
9159
9160 $.each($('.periodos-registro-interesse input[type=checkbox]').not('#check-todos-periodos'), function(k,v){
9161 if($(this).is(':checked'))
9162 periodoSelecionado = true;
9163 });
9164
9165 $.each($('.turmas-registro-interesse input[type=checkbox]').not('#check-todos-periodos'), function(k,v){
9166 if($(this).is(':checked'))
9167 turmaSelecionada = true;
9168 });
9169
9170 if($('#check-politica-privacidade').is(':checked')) politicaPrivacidadeSelecionado = true;
9171
9172 var ativo = true
9173
9174 //Caso tenha algum dos selects de unidade sem uma opção válida selecionada
9175 if(!isAoVivo)
9176 ativo = ativo && !Array.from($('.ssp-card-registro-interesse__select.unidades')).filter(sel => !$(sel).val()).length
9177
9178 ativo = ativo && periodoSelecionado && politicaPrivacidadeSelecionado;
9179
9180 if(!isAoVivo && !isEmed){
9181
9182 $.each($('.ssp-week-day').not('#todosDias'), function(k, v){
9183 if($(this).hasClass('ssp-week-day-active'))
9184 diasSemanaSelecionado = true;
9185 });
9186 ativo = ativo && diasSemanaSelecionado;
9187
9188 }
9189
9190 if(isEmed)
9191 ativo = ativo && turmaSelecionada;
9192
9193 if(ativo)
9194 $('#enviar-registro-interesse-btn').attr("disabled", false);
9195 else
9196 $('#enviar-registro-interesse-btn').attr("disabled", true);
9197 }
9198
9199 function loadPlanoCurso(){
9200
9201 const urlGetPlanoCurso = urlPlanoCurso
9202
9203 .replace('\{codigoFT\}', $('[name="codigoFT"]').val())
9204 .replace('\{dataEfetiva\}', $('[name="dataEfetivaSTR"]').val());
9205
9206 $.ajax({
9207 url:urlGetPlanoCurso,
9208 method:'get',
9209 crossDomain: true,
9210 dataType: 'html',
9211 success: function( data ) {
9212
9213
9214 //Atualiza o link com o plano de curso do servi¿o (ja retorna o texto)
9215 $('#plano-curso').append('<br/>'+data);
9216 },
9217 error: function(data){
9218
9219 console.log('Não existe a URL do plano de curso');
9220
9221 }
9222
9223 });
9224 }
9225
9226 function checkCursoTrampolim(){
9227 return $('[name="codigoFT"]').val() == "24493";
9228 }
9229
9230 /*function verificaOfertaValida(oferta){
9231
9232 if(oferta['precoCheioOferta'] == '' || oferta['precoVendaOferta'] == '' || oferta['numeroMaxParcelasOferta'] == '' || oferta['precoVendaMaxParcelaOferta'] == '')
9233 return false;
9234
9235 var atual = new Date();
9236
9237 var dataOfertaPartes = oferta['dataInicio'].split('/');
9238
9239 var dataOferta = new Date(dataOfertaPartes[2], dataOfertaPartes[1] - 1, dataOfertaPartes[0]);
9240
9241 var dataLimiteMatriculaOfertaPartes = "";
9242 var dataLimiteMatriculaOferta = "";
9243
9244 if(oferta['dtLimiteMatricula'] != ""){
9245 dataLimiteMatriculaOfertaPartes = oferta['dtLimiteMatricula'].split('-');
9246 dataLimiteMatriculaOferta = new Date(dataLimiteMatriculaOfertaPartes[0], dataLimiteMatriculaOfertaPartes[1] - 1, dataLimiteMatriculaOfertaPartes[2] ,atual.getHours(),atual.getMinutes(),atual.getSeconds(),atual.getMilliseconds());
9247
9248 }
9249
9250
9251 //Só deve aparecer ofertas D-1 . Se ela iniciou, aparece se o campo dtLimiteMatr estiver preenchido e com data até o dia de hoje
9252 if(dataOferta <= atual)
9253 if(dataLimiteMatriculaOferta == "" || (dataLimiteMatriculaOferta != "" && atual.getTime() > dataLimiteMatriculaOferta.getTime()))
9254 return false;
9255
9256 return true;
9257 }*/
9258
9259
9260 function loadServerDate(){
9261
9262 $.ajax({
9263 url:urlGetServerT,
9264 method:'get',
9265 dataType: 'json',
9266 cache: 'false',
9267 headers: {
9268 'Cache-Control': 'no-store, no-cache, max-age=0',
9269 'Expires': '0',
9270 'Pragma': 'no-cache'
9271 },
9272 success: function( data ) {
9273 todayG = new Date(data.year,(data.month - 1),data.day,(data.hour),data.minutes,data.seconds);
9274 startTimer();
9275 }
9276 });
9277
9278 }
9279
9280 function handleVisibilityChange() {
9281
9282 if (!document[hidden] ){
9283 restartTimer();
9284 }
9285
9286 }
9287
9288 function restartTimer(){
9289
9290 if(restartTimeout == null){
9291 loadServerDate();
9292 restartTimeout = setTimeout(function(){
9293 restartTimeout = null;
9294 }, 5000);
9295 }
9296
9297 }
9298
9299 function startTimer(){
9300
9301 var mSeconds = todayG.getTime();
9302 if(interval01 != null){
9303 clearInterval(interval01);
9304 }
9305 interval01 = setInterval(function(){
9306 todayG.setTime(todayG.getTime() + 1000);
9307 }, 1000);
9308
9309 if(interval15 != null){
9310 clearInterval(interval15);
9311 }
9312 interval15 = setInterval(function(){
9313 mSeconds = mSeconds + 15000;
9314 todayG.setTime(mSeconds);
9315 }, 15000);
9316
9317 }
9318
9319 function checkIsAoVivo(){
9320 isAoVivo = $("input[name='formato']").attr("data-formato") == nomeFormatoAoVivoDxp;
9321 }
9322
9323
9324 //Ao clicar na setinha next do slider, busca dinamicamente uma proxima oferta
9325 function buscaProximaOferta(){
9326 //Zera variável que controla existência de ofertas com bolsa
9327 //ofertasComBolsa = false;
9328
9329 //Verificamos se a ultima oferta já foi exibida, para evitar de fazer novas buscas
9330 if(carregouUltimaOferta)
9331 return;
9332
9333 //Fazemos o cálculo do que está sendo exibido, para verificar se existe apenas um card 'escondido'. Caso tenha apenas um, a busca deve ser executada, caso contrário não.
9334 var totalOfertasSlick = $('#turmas-container .slick-area__item').length;
9335 //Pegamos o índice da oferta do meio (central)
9336 var currentSliderIndex = parseInt($('.slick-current').attr('data-slick-index'));
9337
9338 var totalOfertasADireita = totalOfertasSlick - currentSliderIndex;
9339
9340 //Se o total de ofertas à direita for maior a 2 não precisa realizar a busca
9341 if(totalOfertasADireita > 2)
9342 return;
9343
9344 startOfertaParam = endOfertaParam;
9345 endOfertaParam += 16;
9346
9347 const codigoFT = $('[name="codigoFT"]').val();
9348 const dataEfetivaOferta = $('[name="dataEfetivaSTR"]').val();
9349
9350 var unidadeCategoryId = '';
9351 var unidadeCodigoSelect = '';
9352
9353 if(isAoVivo){
9354
9355 $.each(objsTela.unidades, function(k,unidade){
9356 unidadeCategoryId += unidade['categoryId']+',';
9357 });
9358
9359 //tirando ultima virgula
9360 unidadeCategoryId = unidadeCategoryId.substring(0,unidadeCategoryId.length - 1);
9361
9362 }else{
9363 var splitted = $('#unidades-ofertas').val().split("@");
9364 unidadeCategoryId = splitted[0];
9365 unidadeCodigoSelect = splitted[1];
9366 }
9367
9368 var params = new URLSearchParams();
9369 params.set('codigoFTOferta',codigoFT)
9370 params.set('dataEfetivaOferta',dataEfetivaOferta)
9371 params.set('categoryIds',unidadeCategoryId)
9372 params.set('start',startOfertaParam)
9373 params.set('end',endOfertaParam)
9374 params.set('inscricaoAberta', $('#chkInscricao').prop('checked'))
9375 params.set('bolsaAberta', $('#chkBolsa').prop('checked'))
9376 params.set('cursoArticleId', $('[name="articleId"]').val() || '');
9377
9378 if($('#chkBolsa').prop('checked')){
9379 params.set('considerarDataBolsaFutura', true)
9380 }
9381
9382 const url = urlSearchOferta + '?' + params.toString()
9383
9384 $.ajax({
9385 url:url,
9386 method:'get',
9387 dataType:'json'
9388 }).done(
9389 function(data){
9390
9391 if(data.length > 0){
9392 var indiceOferta = startOfertaParam;
9393
9394 for (var index = 0; index < data.length; index++) {
9395
9396 var ofertaJSON = data[index];
9397 var oferta = getOfertaObjectFromJson(ofertaJSON,index);
9398
9399 //Verificamos se a oferta buscada já existe na tela (que ocorre quando chega na última oferta)
9400 if($('.codigoOferta_'+oferta.codigoOferta).length > 0){
9401 console.log('Ja tem a oferta '+oferta.codigoOferta);
9402 carregouUltimaOferta = true;
9403 break;
9404 }
9405
9406 //guardo em um map a oferta e qual unidade é, para utilizar depois no populaOferta para o aoVivo
9407 ofertaUnidadeMap.set(oferta['codigoOferta'],mapUnidadesIds.get(parseInt(ofertaJSON.unidadeCategoryIds)));
9408
9409 ofertasMap.set(oferta.codigoOferta, oferta);
9410
9411 if(isAoVivo)
9412 objsTela.ofertasAoVivoTodasUnidades.push(oferta);
9413
9414 //O indice é igual ao ultimo elemento buscado - 1
9415 var i = indiceOferta;
9416 oferta['indice'] = i;
9417
9418 if(isAoVivo)
9419 codigoUnidade = ofertaUnidadeMap.get(oferta.codigoOferta);
9420 else codigoUnidade = unidadeCodigoSelect;
9421
9422
9423 montaHTMLOferta(oferta, i, codigoUnidade, true);
9424 montaHTMLModalFormaPgto(oferta, i, codigoUnidade);
9425
9426 montaHTMLModalLocalRealizacao(oferta, i);
9427 montaHTMLModalAntesCompra(oferta, i, codigoUnidade);
9428 verificaBotaoBolsaSS(oferta);
9429 verificaCursoAprendizagem(i);
9430 verificaCursoTrampolim(i);
9431
9432 associaEventoBtnFormaPagamento(i);
9433 associaEventoBtnComprar(i);
9434 associaEventoBtnComprarDentroFormaPgto(i);
9435 associaEventoBtnLocalRealizacao(i);
9436 associaEventosFecharModal(i);
9437
9438 if($('[name="tipoCurso"]').val() == 'extensao'){
9439 associaEventoBtnConheca(i);
9440 associaEventoBtnComprarConhecaDescontoOk(i);
9441 associaEventoBtnComprarConhecaDescontoNot(i);
9442 associaEventoBtnAlunoNao(i);
9443 associaEventoBtnAlunoSim(i);
9444
9445 }
9446
9447 indiceOferta++;
9448 }
9449
9450 controlaPaginaBolsa();
9451 }
9452 }
9453 );
9454
9455 }
9456
9457 function setUrlParam(key, value) {
9458 const url = new URL(window.location.href)
9459
9460 if(value)
9461 url.searchParams.set(key, value);
9462 else
9463 url.searchParams.delete(key);
9464
9465 window.history.pushState({}, '', url.toString())
9466 }
9467
9468 function selectFilter(paramkey, el) {
9469 setUrlParam(paramkey, el.prop("checked"))
9470 const currentUnidadeFriendlyURLSelected = $('#unidades-ofertas').find('option').filter(':selected').attr('data-unidade-friendly-url')
9471 loadUnidades(!isAoVivo, $('[data-unidade-friendly-url="' + currentUnidadeFriendlyURLSelected + '"]').val())
9472
9473 if($('#chkInscricao').prop("checked") || $('#chkBolsa').prop("checked")) $('#msgFiltroAplicado').show()
9474 else $('#msgFiltroAplicado').hide()
9475 }
9476
9477 function defineCurrentUrl(ev) {
9478 const currentUnidadeFriendlyURLSelected = $(ev.target).find('option').filter(':selected').attr('data-unidade-friendly-url')
9479
9480 const hasPathWeb = window.location.pathname.includes('/web')
9481 const hasPathGuest = window.location.pathname.includes('/guest')
9482
9483 let currentPath = window.location.pathname
9484 currentPath = hasPathWeb ? currentPath.substring(4) : currentPath
9485 currentPath = hasPathGuest ? currentPath.substring(6) : currentPath
9486
9487 objsTela.unidadesRegistroInteresse.forEach(unidade => currentPath = currentPath.replace('/' + unidade.friendlyURL, ''))
9488
9489 currentPath = (currentUnidadeFriendlyURLSelected ? '/' + currentUnidadeFriendlyURLSelected : '') + currentPath
9490 currentPath = hasPathGuest ? '/guest' + currentPath : currentPath
9491 currentPath = hasPathWeb ? '/web' + currentPath : currentPath
9492
9493 if(keepURL())
9494 window.history.replaceState(window.history.state, '', currentPath + window.location.search)
9495 }
9496
9497 let isKeepURL = true
9498 /** Verifica se é para manter a URL atual. Isso deve acontecer somente ao iniciar a página #9674 */
9499 function keepURL() {
9500 const aux = isKeepURL
9501 isKeepURL = false
9502 return !aux
9503 }
9504
9505 loadServerDate();
9506 $(document).ready(function(){
9507
9508 if("${normalizedCategoryName}" == "graduacao" || "${normalizedCategoryName}" == "pos-graduacao"){
9509 document.location.href = '/erro-404'
9510 }
9511
9512 ehCursoTrampolim = checkCursoTrampolim();
9513 checkIsAoVivo();
9514 loadPlanoCurso();
9515 loadCursosVocePodeGostar();
9516
9517 if(!isAoVivo) {
9518 $('#unidades-ofertas').change(ev => {
9519 mudarUnidade(ev)
9520 defineCurrentUrl(ev)
9521 });
9522 }
9523
9524 const urlParams = new URLSearchParams(window.location.search)
9525 $('#chkInscricao').prop("checked", urlParams.get('inscricao') == 'true')
9526 $('#chkInscricao').change(ev => selectFilter('inscricao', $('#chkInscricao')) )
9527
9528 if($('#chkBolsa').length) {
9529 $('#chkBolsa').prop("checked", urlParams.get('bolsa') == 'true')
9530 $('#chkBolsa').change(ev => selectFilter('bolsa', $('#chkBolsa')) )
9531 loadUnidades(!isAoVivo);
9532 } else {
9533 selectFilter('bolsa', $('#chkBolsa'))
9534 }
9535
9536 //Função para Montar breadcrumb Mobile
9537
9538 function breadcrumbMobile(){
9539
9540 const linkEl = $('.ssp-card-detalhe-curso__secunday-info-back-link');
9541
9542 if ( $.trim(linkEl.html()) === 'Técnico'){
9543
9544 linkEl.attr("href", "/cursos-tecnicos");
9545
9546 } else if ( $.trim(linkEl.html()) === 'Livre'){
9547
9548 if(isAoVivo){
9549 linkEl.html('Senac Online<i class="fas fa-signal-stream icon-ao-vivo" aria-hidden="true"></i>ao vivo')
9550 linkEl.attr("href", "/cursos-livres-senac-online-ao-vivo");
9551 }else{
9552 linkEl.attr("href", "/cursos-livres");
9553 }
9554 } else if ( $.trim(linkEl.html()) === 'Aprendizagem'){
9555
9556 linkEl.attr("href", "/jovem-aprendiz");
9557
9558 }else if ( $.trim(linkEl.html()) === 'Extensão Universitária'){
9559
9560 linkEl.attr("href", "/extensao-universitaria");
9561
9562 }else if ( $.trim(linkEl.html()) === 'Ensino Médio Técnico'){
9563
9564 linkEl.attr("href", "/ensino-medio-tecnico");
9565 }
9566
9567 }
9568
9569 breadcrumbMobile()
9570
9571 //Esconde elementos quando o curso é aprendizagem
9572 if($('[name="codigoFT"]').val() == codigoFTCursoAprendizagem){
9573 $('.ssp-section-novas-turmas').remove();
9574 $("div[class^='botoes-oferta-container_']").remove();
9575 }
9576
9577 //retira os itens de dentro do container
9578 $('.bg-').css('background-color','#e4e4e4')
9579 $('.container.py-3').removeClass('container py-3')
9580 //ajuste para versao 7.4
9581 $('.lfr-layout-structure-item-container.container-fluid.container-fluid-max-xl').removeClass()
9582
9583
9584 //Fecha modal registro de interesse
9585
9586 $('#btn-close-Modal-registro-interesse').click(function(){
9587
9588 $('#modal-registro-interesse').addClass('d-none')
9589 $("body").removeClass("overflow-hidden")
9590
9591 })
9592
9593 $( "#modal-registro-interesse" ).click( function(event) {
9594
9595 if(event.target.id==$('#modal-registro-interesse')[0].id){
9596 $(this).addClass('d-none')
9597 }
9598
9599 });
9600
9601
9602 //Aviso sobre interesse em turmas
9603 $('.ssp-card-registro-interesse').on('click', '#enviar-registro-interesse-btn', enviarRegistroInteresse);
9604 if(!isEmed){
9605 $('.ssp-aviso-novas-turmas__content').on('click', '#btn-aviso-novas-turmas', avisoNovasTurmas);
9606 $('.ssp-card-registro-interesse').on('click', '#todosDias', registroSelecionaTodosDias);
9607 } else {
9608 $('.ssp-emed__card-slider-body').on('click', '#btnOptin', avisoNovasTurmas)
9609 }
9610 $('#div-campo-todos').on('change', 'input[type=checkbox]', registroSelecionaTodosPeriodos);
9611
9612 $('#btnLogin').click(function(){
9613
9614 login()
9615
9616 });
9617
9618 $('#btn-close-loginModal').click(function(){
9619 $('#modal-login').addClass('d-none')
9620 });
9621
9622 $('.ssp-week-day').not('#todosDias').click(function(){
9623
9624 $(this).toggleClass('ssp-week-day-active');
9625 verificaBtnEnviarRegistroInteresseAtivo();
9626
9627 });
9628
9629 $('#add-unidade-regsitro-interesse').click(function(e){
9630 var element = $('.ssp-card-registro-interesse__select.unidades').first().clone();
9631 element.empty();
9632 element.append('<option value="" disabled selected>Selecione uma unidade</option>')
9633 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
9634
9635 if(!unidade['selecionado']){
9636 element.append('<option value="'+unidade['codigoUnidade']+'">'+unidade['nome']+'</option>');
9637 }
9638
9639 });
9640 element.change(changeSelectUnidades)
9641
9642
9643 element.css('margin-top', '10px');
9644
9645 if(element.find("option").length > 1 && $('.ssp-card-registro-interesse__select.unidades').length < objsTela.unidadesRegistroInteresse.length){
9646 element.attr("id", "select_" + cntSelectUnidades++)
9647 $('#select-unidades-registro-interesse').append(element);
9648 }
9649
9650 if($('.ssp-card-registro-interesse__select.unidades').length == objsTela.unidadesRegistroInteresse.length){
9651 $('#add-unidade-regsitro-interesse').addClass("d-none")
9652 }
9653
9654 verificaBtnEnviarRegistroInteresseAtivo();
9655 });
9656
9657 $('#remove-unidade-regsitro-interesse').click(function(e){
9658
9659 if($('.ssp-card-registro-interesse__select').length > 1){
9660
9661 var element = $('.ssp-card-registro-interesse__select').last();
9662
9663 var valueSelecionado = element.val();
9664
9665 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
9666
9667 if(unidade['selecionado'] && unidade['codigoUnidade'] == valueSelecionado){
9668 unidade['selecionado'] = false;
9669 unidade['selectSelecionado'] = "";
9670 }
9671
9672 });
9673 element.val("");
9674 cntSelectUnidades--;
9675 element.change()
9676
9677 element.remove();
9678 }
9679
9680 if($('.ssp-card-registro-interesse__select.unidades').length < objsTela.unidadesRegistroInteresse.length){
9681 $('#add-unidade-regsitro-interesse').removeClass("d-none")
9682 }
9683
9684 verificaBtnEnviarRegistroInteresseAtivo();
9685 })
9686
9687 $('.ssp-card-registro-interesse__check-item').on('change', 'input[type=checkbox]', function(){
9688 verificaBtnEnviarRegistroInteresseAtivo();
9689 });
9690
9691 //Contador em ofertas de bolsas proximas
9692 var cancel = setInterval(atualizaTempoAberturasBolsas, 1000);
9693
9694 // Manipua o breadcrumb para as regras do Senac
9695
9696 if($('ol.breadcrumb').find('li:first').text().trim() == "Cursos Pai")
9697 $('ol.breadcrumb').find('li:first').remove();
9698
9699 var li = $('ol.breadcrumb').find('li:first');
9700
9701 if(li.text().trim() == 'Cursos'){
9702
9703 var primeiro = li.clone();
9704 primeiro.html(htmlBreadcrumb('/', 'Cursos', 'Home'));
9705 li.parent().prepend(primeiro);
9706
9707 var tipoCurso = $('.ssp-header-curso__tag-formato').text().trim();
9708 var tipoBreadcrumb = '';
9709
9710 const isPresencialEad = (tipoCurso.toLowerCase().includes("presencial + ead"))
9711
9712 if(tipoCurso.includes("Cursos Livres")){
9713 if(isPresencialEad) {
9714 tipoBreadcrumb = htmlBreadcrumb('/presencial-ead#cursos-livres', tipoCurso);
9715 } else {
9716 tipoBreadcrumb = htmlBreadcrumb(
9717 isAoVivo ? '/cursos-livres-senac-online-ao-vivo' : '/cursos-livres',
9718 isAoVivo ? nomeFormatoAoVivoDxp : tipoCurso);
9719 }
9720 }else if(tipoCurso.includes("Extensão")){
9721 if(isPresencialEad) {
9722 tipoBreadcrumb = htmlBreadcrumb('/presencial-ead#extensao-universitaria', tipoCurso);
9723 } else {
9724 tipoBreadcrumb = htmlBreadcrumb('/extensao-universitaria', tipoCurso);
9725 }
9726 }else if(tipoCurso.includes("Ensino Médio Técnico")){
9727 if(isPresencialEad) {
9728 tipoBreadcrumb = htmlBreadcrumb('/presencial-ead#ensino-medio-tecnico', tipoCurso);
9729 } else {
9730 tipoBreadcrumb = htmlBreadcrumb('/ensino-medio-tecnico', tipoCurso);
9731 }
9732 }else if(tipoCurso.includes("Jovem Aprendiz")){
9733 if(isPresencialEad) {
9734 tipoBreadcrumb = htmlBreadcrumb('/presencial-ead#jovem-aprendiz', tipoCurso);
9735 } else {
9736 tipoBreadcrumb = htmlBreadcrumb('/jovem-aprendiz', tipoCurso);
9737 }
9738 }else{
9739 if(isPresencialEad) {
9740 tipoBreadcrumb = htmlBreadcrumb('/presencial-ead#cursos-tecnicos', tipoCurso);
9741 } else {
9742 tipoBreadcrumb = htmlBreadcrumb('/cursos-tecnicos', tipoCurso);
9743 }
9744 }
9745
9746 li.html(tipoBreadcrumb);
9747
9748 if($('ol.breadcrumb').find('li').length == 4) $('ol.breadcrumb').find('li:last').remove();
9749
9750 }
9751
9752 $('#turmas-container').on('click', 'a.slick-next', function(e){
9753
9754 e.preventDefault();
9755 buscaProximaOferta();
9756
9757 });
9758
9759 $('#turmas-container').on('click', 'button.slick-dots', function(){
9760
9761
9762
9763 });
9764
9765 $(".next-mobile").on("click",function(e){
9766 e.preventDefault();
9767
9768 acoesMobileSliderOfertas("left");
9769 });
9770
9771 $(".prev-mobile").on("click",function(e){
9772 e.preventDefault();
9773
9774 acoesMobileSliderOfertas("right");
9775 });
9776
9777 //ação de drag do card de ofertas no mobile
9778 $('.oferta-slick-area').on('swipe', function(event, slick, direction){
9779 acoesMobileSliderOfertas(direction);
9780 });
9781
9782 loadAlternadores()
9783 let modalFormAprendizagem = document.querySelector('[data-modal="modal"]')
9784 if(modalFormAprendizagem){
9785 // Create dinamic close buttom form
9786 let btnCloseModalForm = document.querySelector('[data-modal="close-form-modal"]')
9787
9788 btnCloseModalForm.addEventListener('click',closeModalFormAprendizagem)
9789
9790 }
9791
9792 $(".oferta-slick-area").on("click", ".btnModalAprendizagem", function (){
9793 openModalFormAprendizagem();
9794 })
9795
9796 });
9797
9798 function htmlBreadcrumb(link, title, display){
9799
9800 return '<a class="breadcrumb-link" href="'+link+'" title="'+title+'"><span class="breadcrumb-text-truncate">'+(display || title)+'</span></a>';
9801
9802 }
9803
9804 function acoesMobileSliderOfertas(direcao){
9805
9806 if(direcao == "right"){
9807 $("a.slick-prev").click();
9808
9809 if($('.slick-current').attr('data-slick-index') == "0")
9810 $('.prev-mobile').addClass('nextPrevOpacity');
9811
9812 if($(".next-mobile").hasClass('nextPrevOpacity'))
9813 $('.next-mobile').removeClass('nextPrevOpacity');
9814 }
9815
9816
9817 if(direcao == "left"){
9818 $("a.slick-next").click();
9819
9820 if($(".prev-mobile").hasClass('nextPrevOpacity'))
9821 $('.prev-mobile').removeClass('nextPrevOpacity');
9822
9823 if(carregouUltimaOferta){
9824 var totalCardOfertas = $('#turmas-container .slick-area__item').length;
9825 var currentSliderIndex = parseInt($('.slick-current').attr('data-slick-index'));
9826
9827 //o card do meio é o último
9828 if(totalCardOfertas == (currentSliderIndex + 1))
9829 $('.next-mobile').addClass('nextPrevOpacity');
9830 }
9831 }
9832 }
9833
9834 //habilitar/desabilitar registro de interesse
9835 function habilitarRegistroInteresse(habilitar){
9836 var sectionRI = $('#section-registro-interesse')
9837
9838 if(isEmed) {
9839 sectionRI.hide()
9840 return;
9841 }
9842
9843 //Redmine #9309 - sempre irá mostrar
9844 habilitar = true
9845
9846 if(habilitar) sectionRI.show()
9847 else sectionRI.hide()
9848 }
9849
9850 function abrirModalRegistroInteresse(codUnidadeSelect){
9851 $('#modal-registro-interesse').removeClass('d-none');
9852 $("body").addClass("overflow-hidden")
9853 if(!isEmed){
9854 $('.ssp-card-registro-interesse__nome-curso').text($('.ssp-card-detalhe-curso__title').text());
9855 } else {
9856 $(".transferencia-emed-link").find('a').attr("href", "/ensino-medio-tecnico#onde-estudar")
9857 $('.ssp-card-registro-interesse__title-modal').text($('.ssp-card-detalhe-curso__title').text());
9858 }
9859
9860 $('.ssp-card-registro-interesse__select:not(#select_0)').remove();
9861 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
9862 if(unidade['codigoUnidade'] == codUnidadeSelect){
9863 unidade['selecionado'] = true;
9864 unidade['selectSelecionado'] = 'select_0';
9865 } else {
9866 unidade['selecionado'] = false;
9867 unidade['selectSelecionado'] = "";
9868 }
9869
9870 });
9871 objsTela.unidadesRegistroInteresse.sort(function (a, b) {
9872 return ordenar(a, b, 'nome');
9873 });
9874
9875 $('#select_0').empty();
9876 $('#select_0').append('<option value="" disabled>Selecione uma unidade</option>')
9877 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
9878
9879 $('#select_0').append('<option value="'+unidade['codigoUnidade']+'" >'+unidade['nome']+'</option>');
9880
9881 });
9882 $('#select_0').val(codUnidadeSelect);
9883
9884 if(isAoVivo){
9885 $('#unidades-registro-interesse, #dias-registro-interesse').addClass('d-none');
9886 }
9887 if(objsTela.unidadesRegistroInteresse.length > 1) {
9888 $('#add-unidade-regsitro-interesse').removeClass("d-none")
9889 $('#add-unidade-regsitro-interesse').show()
9890 $('#remove-unidade-regsitro-interesse').show()
9891 } else {
9892 $('#add-unidade-regsitro-interesse').hide()
9893 $('#remove-unidade-regsitro-interesse').hide()
9894 }
9895 }
9896
9897 $('.ssp-card-registro-interesse__select.unidades').on('change', changeSelectUnidades)
9898
9899 function changeSelectUnidades() {
9900 var codUnidadeSelecionada = $(this).val();
9901 var idSelectSelecionado = $(this).attr('id')
9902 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
9903 if(unidade['codigoUnidade'] == codUnidadeSelecionada){
9904 unidade['selecionado'] = true;
9905 unidade['selectSelecionado'] = idSelectSelecionado;
9906 } else if(unidade['selectSelecionado'] == idSelectSelecionado && unidade['selecionado']){
9907 unidade['selecionado'] = false;
9908 unidade['selectSelecionado'] = "";
9909 }
9910
9911 });
9912
9913 objsTela.unidadesRegistroInteresse.sort(function (a, b) {
9914 return ordenar(a, b, 'nome');
9915 });
9916
9917 $('.ssp-card-registro-interesse__select.unidades:not(#'+idSelectSelecionado+')').each(function() {
9918 var valueSelecionado = $(this).val();
9919 var idActualSelect = $(this).attr('id');
9920 $(this).empty();
9921 $(this).append('<option value="" disabled>Selecione uma unidade</option>')
9922 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
9923
9924 if(unidade['selecionado'] && unidade['codigoUnidade'] == valueSelecionado){
9925 $("#"+idActualSelect).append('<option value="'+unidade['codigoUnidade']+'" >'+unidade['nome']+'</option>');
9926 }else if(!unidade['selecionado']){
9927 $("#"+idActualSelect).append('<option value="'+unidade['codigoUnidade']+'">'+unidade['nome']+'</option>');
9928 }
9929
9930 });
9931 $(this).val(valueSelecionado)
9932 });
9933
9934 verificaBtnEnviarRegistroInteresseAtivo();
9935 }
9936
9937
9938 function ordenar(objA, objB, nomeAtributo){
9939 let a = (nomeAtributo) ? objA[nomeAtributo] : objA;
9940 let b = (nomeAtributo) ? objB[nomeAtributo] : objB;
9941
9942 return a.toString().localeCompare(b.toString());
9943 }
9944
9945 function paramOrdem(xml){
9946 if(isEmed){
9947 var ordemPeriodo = ['MA', 'TA', 'NO'];
9948 return $.inArray(xml.find('[name="periodoDiaOferta"]').text().trim(), ordemPeriodo);
9949 }else{
9950 return xml.find('[name="dataInicioOferta"]').text();
9951 }
9952 }
9953
9954 function getEtapaSelecionadaEmed(){
9955 var btnEtapa = $('.ssp-ofertas-emed__filtro-content .btn--filtro-ativo');
9956 if(!btnEtapa) return '';
9957 return btnEtapa.val();
9958 }
9959
9960 function filtraOfertasEtapa(etapa, ofertas){
9961 if(!etapa) return [];
9962 var ofertasEtapa = [];
9963 var turmas = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'];
9964 var periodos = {['MA'] : 'Manhã', ['TA'] : 'Tarde', ['NO'] : 'Noite'};
9965 var ultimoPeriodo = null, indexPeriodo;
9966 ofertas = ofertas.sort(function(a, b){
9967 return ordenar(a, b, 'periodoDiaOferta');
9968 });
9969
9970 $.each(ofertas, async (index, oferta)=> {
9971 if(oferta['etapa'] == etapa){
9972 if(oferta['periodoDiaOferta'] != ultimoPeriodo) indexPeriodo = 0;
9973 ultimoPeriodo = oferta['periodoDiaOferta'];
9974 oferta['titulo'] = 'Turma ' + turmas[indexPeriodo++] + ' - ' + (periodos[ultimoPeriodo] || '');
9975 ofertasEtapa.push(oferta);
9976 }
9977 });
9978
9979 return ofertasEtapa;
9980 }
9981
9982 function formatarDataEmed(data, etapa, isDataFim){
9983
9984 try{
9985
9986 var splitdata = data.split('/');
9987 var meses = ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'];
9988 var mes = meses[parseInt(splitdata[1])-1];
9989
9990 var ano = splitdata[2];
9991
9992 if(isDataFim){
9993 ano = parseInt(splitdata[2]);
9994 }
9995
9996 return mes + '/' + ano;
9997 }catch(err){
9998 return data;
9999 }
10000
10001 }
10002
10003 //EMED Mobile
10004 function sliderOfertasEmed(){
10005
10006 var tamScreen = $(window).width();
10007 if(tamScreen < 1024){
10008 $('.ssp-slick-ofertas-emed').slick({
10009 slidesToShow: 1,
10010 slidesToScroll: 1,
10011 dots: false,
10012 infinite: false,
10013 adaptiveHeight: true,
10014 prevArrow:'<button class="btn slick-prev" type="button"><i class="fal fa-chevron-left"></i><span class="sr-only">Anterior</span></button>',
10015 nextArrow:'<button class="btn slick-next" type="button"><i class="fal fa-chevron-right"></i><span class="sr-only">Próximo</span></button>',
10016 responsive: [
10017
10018 {
10019 breakpoint: 1200,
10020 settings: {
10021 slidesToShow: 1,
10022 slidesToScroll: 1,
10023 prevArrow: '<button class="btn slick-prev ssp-slider-control-mobile__item-prev"><i class="fal fa-chevron-left mr-1"></i><span>Anterior</span></button>',
10024 nextArrow: '<button class="btn slick-next ssp-slider-control-mobile__item-next"><span>Próximo</span><i class="fal fa-chevron-right ml-1"></i></button>',
10025
10026 }
10027 },
10028 {
10029 breakpoint: 768,
10030 settings: {
10031 slidesToShow: 1,
10032 slidesToScroll: 1,
10033 prevArrow: '<button class="btn slick-prev ssp-slider-control-mobile__item-prev"><i class="fal fa-chevron-left mr-1"></i><span>Anterior</span></button>',
10034 nextArrow: '<button class="btn slick-next ssp-slider-control-mobile__item-next"><span>Próximo</span><i class="fal fa-chevron-right ml-1"></i></button>',
10035 }
10036 }
10037
10038 ]
10039
10040 });
10041
10042 }
10043
10044 }
10045
10046function addItemBackpack(codOferta, originElemSelector, codUnidade, dataEfetiva){
10047
10048 let backpackPostRequest = {};
10049 backpackPostRequest.codOferta = codOferta;
10050 backpackPostRequest.codUnidade = codUnidade;
10051 backpackPostRequest.dt_efetiva = dataEfetiva;
10052
10053
10054 mochila.requestAccess(function(backpackPostRequest){
10055
10056 let urlMochila = '/o/senac-backpack-services/backpack';
10057
10058 if(getCookie("codMochila") != null){
10059 backpackPostRequest.codMochila = getCookie("codMochila");
10060 urlMochila = '/o/senac-backpack-services/updateBackpack';
10061 }
10062 $.ajax({
10063 type: 'POST',
10064 url: urlMochila,
10065 headers: {
10066 "Content-Type":"application/json"
10067 },
10068 beforeSend: function(xhr){
10069 xhr.setRequestHeader("Authorization", "Bearer " + getCookie("tokenMochila"));
10070 loadingSubmitButton(originElemSelector);
10071 $(originElemSelector + ' .loading-icon-button').css('height', 'unset');
10072 if($(window).width() < 1024){
10073 $(originElemSelector + ' .loading-icon-button span').css('margin-left', '10%');
10074 }
10075 },
10076 data : JSON.stringify(backpackPostRequest)
10077 }).done(function(data) {
10078
10079 let domain = '';
10080 if(getAmbiente() == 'hom' || getAmbiente() == 'prod')
10081 domain = '.sp.senac.br';
10082
10083 writeCookie(
10084 'codMochila',
10085 (getCookie("codMochila") == null) ? data.backpackCode : JSON.parse(data).backpackCode,
10086 24,
10087 domain
10088 );
10089 addItemSuccessMochila();
10090
10091 }).fail(function(xhr, status, error) {
10092
10093 $('#modal-backpack-error').removeClass('d-none');
10094
10095 }).always(function(){
10096
10097 cleanLoadingSubmitButton(
10098 originElemSelector,
10099 originElemSelector.indexOf('backpack') > 0 ? 'OK, desejo comprar' : 'COMPRAR'
10100 );
10101 $('[id^="modalAntesCompra_"]').each(function(index, modal) {
10102 modal.style.display = "none";
10103 });
10104
10105 });
10106
10107 }, backpackPostRequest);
10108
10109}
10110
10111function componentBuyConfirmation(codigoUnidade, oferta, dataEfetiva){
10112
10113 var comp = null;
10114
10115 if((oferta.destinoCompra !== null) && oferta.destinoCompra == "2"){
10116
10117 comp = $("<button>")
10118 .addClass("btn btn-lg btn-success w-100 mt-3 btn-backpack")
10119 .attr("offerCode",oferta.codigoOferta)
10120 .attr("unitCode",codigoUnidade)
10121 .attr("effectiveDate",dataEfetiva)
10122 .text("OK, desejo comprar");
10123
10124 }else {
10125
10126 comp = $("<a>")
10127 .addClass("btn btn-lg btn-success w-100 mt-3")
10128 .text("OK, desejo comprar")
10129 .attr("href", linkBotaoCompra.replace('\{codigoUnidade\}', codigoUnidade).replace('\{codigoOferta\}', oferta.codigoOferta))
10130 .attr("target","_blank");
10131 }
10132
10133 comp.attr('id', 'btnCompraLocal_' + oferta.indice);
10134
10135 return comp[0].outerHTML;
10136
10137}
10138
10139function getUnidadesSelecionadasRI(){
10140 var unidadesRI = [];
10141
10142 try{
10143
10144 $('#select-unidades-registro-interesse').find('select').each((i,select) =>{
10145 var unidadeSel = select.selectedOptions[0].innerText;
10146 if(!unidadesRI.includes(unidadeSel)) unidadesRI.push(unidadeSel);
10147 });
10148
10149 var unidadesExt = unidadesRI.join(', ');
10150
10151 const lastIndex = unidadesExt.lastIndexOf(',');
10152
10153 if(lastIndex > 0) unidadesExt = unidadesExt.substring(0, lastIndex) + ' ou ' + unidadesExt.substring(lastIndex + 1);
10154
10155 return {
10156 'unidadesPrefix' : (unidadesRI.length > 1 ? ', nas unidades ' : (unidadesRI.length == 1 ? ', na unidade ' : '')),
10157 'unidades' : unidadesExt
10158 };
10159
10160 }catch(err){
10161
10162 return {
10163 'unidadesPrefix' : '',
10164 'unidades' : ''
10165 };
10166
10167 }
10168
10169 }
10170
10171
10172
10173
10174function addItemSuccessMochila(){
10175
10176 mochila.check();
10177 $('#modal-backpack-success__nome-curso').html($('.ssp-card-detalhe-curso__title').text());
10178 $('#modal-backpack-success').removeClass('d-none');
10179
10180}
10181
10182$(document).on('click', '.btn-backpack', function(e){
10183
10184 addItemBackpack(event.target.getAttribute("offerCode"), '.btn-backpack',event.target.getAttribute("unitCode"),event.target.getAttribute("effectiveDate"));
10185
10186});
10187
10188$('#btn-voltar-modal-backpack-error').click(function () {
10189 $('#modal-backpack-error').addClass('d-none');
10190});
10191
10192$('#btn-voltar-modal-backpack-error').click(function () {
10193 $('#modal-backpack-error').addClass('d-none');
10194});
10195
10196$('.btn-mochila-continuar-site-success, .modal-btn-close').click(function () {
10197 $('#modal-backpack-success').addClass('d-none');
10198});
10199
10200$('.btn-mochila-finalizar-compra-success').click(function () {
10201 // Montar object push - google tag manager - 6
10202 sendEventEcommerce("begin_checkout", ofertaSelecionada);
10203
10204 mochila.verificaLogin();
10205 $('#modal-backpack-success').addClass('d-none');
10206 $('[id^="myModal_"]').each((i,modal)=>modal.style.display = "none");
10207});
10208
10209 function closeModalFormAprendizagem(){
10210 let modal = document.querySelector('[data-modal="modal"]')
10211
10212 modal.classList.remove('open-modal-form')
10213
10214 }
10215
10216
10217 function openModalFormAprendizagem(){
10218 let modal = document.querySelector('[data-modal="modal"]')
10219
10220 modal.classList.add('open-modal-form')
10221
10222 }
10223
10224 function addEventBolsa() {
10225 // Mostra o preco
10226 const btnShowPrices = document.querySelectorAll('.btn-show-price')
10227
10228 btnShowPrices.forEach(btnShowPrice => btnShowPrice.addEventListener('click',togglePriceCard))
10229
10230 if(!$('#chkBolsa').prop('checked'))
10231 togglePriceCard()
10232 }
10233
10234 function togglePriceCard(selector){
10235 if(selector instanceof PointerEvent) return
10236
10237 if(!selector) selector = ''
10238 else selector = '.' + selector
10239
10240 const btnPrices = document.querySelectorAll('.show-price-content'+selector)
10241 const contentPrices = document.querySelectorAll('.content-valores-descontos'+selector)
10242 const contentBtnBolsas = document.querySelectorAll('.content-btn-bolsa'+selector)
10243
10244 btnPrices.forEach(btnPrice => btnPrice.classList.toggle('hide'))
10245 contentBtnBolsas.forEach(contentBtnBolsa => contentBtnBolsa.classList.toggle('modifier-content-show'))
10246 contentPrices.forEach(contentPrice => contentPrice.classList.toggle('hide-price'))
10247 }
10248
10249 function getRegiaoName(key) {
10250 switch (key) {
10251 case "C":
10252 return "Capital";
10253 case "I":
10254 return "Interior";
10255 case "GS":
10256 return "Grande São Paulo e Litoral";
10257 default:
10258 return "Sem Região";
10259 }
10260 }
10261
10262 function criarOptionUnidadesPorRegiao(unidades) {
10263 let regioes = {}
10264 let unidadeFounded
10265
10266 unidades.forEach(unidade => {
10267 if(!regioes[unidade.codRegiaoUnidade || 'N'])
10268 regioes[unidade.codRegiaoUnidade || 'N'] = []
10269
10270 regioes[unidade.codRegiaoUnidade || 'N'].push(unidade)
10271 })
10272
10273 Array.from(['C', 'I', 'GS', 'N'])
10274 .filter(key => Object.keys(regioes).includes(key))
10275 .forEach(key => {
10276 const unidadesDaRegiao = regioes[key]
10277
10278 const optionDisabled = $('<option>')
10279 optionDisabled.attr('label', getRegiaoName(key))
10280 optionDisabled.text(getRegiaoName(key));
10281 optionDisabled.attr('disabled', true)
10282 optionDisabled.addClass('ssp-option-group')
10283 $('#unidades-ofertas').append(optionDisabled)
10284
10285 $.each(unidadesDaRegiao, function(k,unidade){
10286 if($('#unidades-ofertas').find('[value="'+unidade['categoryId']+'"]').length == 0){
10287 var option = $('<option>');
10288 option.val(unidade['categoryId']+"@"+unidade['codigoUnidade']);
10289 option.text(unidade['nome']);
10290 option.attr('data-unidade-friendly-url', unidade.friendlyURL)
10291 option.addClass('ssp-option')
10292
10293 $('#unidades-ofertas').append(option);
10294
10295 unidadeFounded = !unidadeFounded && getURLData().includes('/'+unidade.friendlyURL+'/') ? unidade : unidadeFounded
10296 }
10297 })
10298 })
10299
10300 return unidadeFounded
10301 }
10302
10303 function getURLData() {
10304 return URLGeral.replace(HOST, '')
10305 }
10306
10307 /**
10308 * Copia um objeto JSON
10309 */
10310 function cloneObj(original) {
10311 return JSON.parse(JSON.stringify(original));
10312 }
10313
10314 function getUrlConsultaBolsa(oferta){
10315
10316 let url = '';
10317 if (isAmbienteTeste()) {
10318 if(oferta.destinoBolsa=='1') {
10319 url = 'https://hwse.sp.senac.br/rest/wss/cursos/bolsa/v1/?COD_EVENTO='+oferta.codigoOferta
10320 } else {
10321 url = 'https://hom-wse-bolsas.sp.senac.br/api/cursos/bolsa/v1/'+oferta.codigoOferta;
10322 }
10323 } else {
10324 if(oferta.destinoBolsa=='1') {
10325 url = 'https://wse.sp.senac.br/rest/wss/cursos/bolsa/v1/?COD_EVENTO='+oferta.codigoOferta
10326 } else {
10327 url = 'https://wse-bolsas.sp.senac.br/api/cursos/bolsa/v1/'+oferta.codigoOferta;
10328 }
10329
10330 }
10331
10332 return url;
10333 }
10334
10335 function execCompraEmed(oferta){
10336 let linkInscricaoEmed = '', linkInscricaoEmedHml = '';
10337 if(oferta.etapa == '0010'){
10338 linkInscricaoEmed = 'https://www.sp.senac.br/login/Login?destino=https://inscricao-educacional-ms.sp.senac.br/?oferta={codOferta}';
10339 linkInscricaoEmedHml = 'https://gesportal.sp.senac.br/login/Login?destino=https://hinscricao-educacional-backend.sp.senac.br/?oferta={codOferta}';
10340 }
10341
10342 var ambTeste = ['localhost', 'hom', 'dev'];
10343 var link = linkInscricaoEmed;
10344 $.each(ambTeste, function(i, a){
10345 if(location.hostname.indexOf(a) >= 0){
10346 link = linkInscricaoEmedHml;
10347 return false;
10348 }
10349 });
10350
10351 // Montar object push - google tag manager - 3
10352 ofertaSelecionada = itensEcommerce.get(oferta.codigoOferta)
10353 sendEventEcommerce("select_item", ofertaSelecionada);
10354 sendEventEcommerce("view_item", ofertaSelecionada);
10355 sendEventEcommerce("add_to_cart", ofertaSelecionada);
10356 sendEventEcommerce("begin_checkout", ofertaSelecionada);
10357
10358 var urlCompra = link.replace('\{codOferta\}', oferta.codigoOferta);
10359 window.open(urlCompra, '_blank');
10360 }
10361
10362 function formataDataComBarra(dataInvertidaComTraco){
10363 return dataInvertidaComTraco.split('-').reverse().join('/');
10364 }
10365
10366
10367 let ctrlPressed = false;
10368 $(window).keydown(function (ev) {
10369 if(ev.which == 17){
10370 ctrlPressed = true;
10371 return false;
10372 }
10373 if(ev.which == 82 && ctrlPressed){
10374 return false;
10375 }
10376 return (ev.which != 116); // F5
10377 }).keyup(function(ev) {
10378 if (ev.which == 17){
10379 ctrlPressed = false;
10380 }
10381 return true;
10382 });
10383
10384
10385 </script>
10386
10387</#if>