Um erro ocorreu enquanto processava o modelo.
The following has evaluated to null or missing: ==> isEMED [in template "20102#20129#438394" at line 4097, column 15] ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: #if !isEMED [in template "20102#20129#438394" at line 4097, column 9] ----
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 <input type="hidden" name="modalidadeName" value="${normalizedModalidadeName}" />
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") && !normalizedModalidadeName?contains("acoes-educ.-curta-duracao"))
3419 textoFiltroCompra = (nomeTipoCurso?contains("Livre") && normalizedModalidadeName?contains("acoes-educ.-curta-duracao"))?then("Matrículas abertas", "Comprar agora")
3420 />
3421
3422
3423 <#if mostrarFiltroInscricao && mostrarFiltroBolsa>
3424 <div class="ssp-switch-divider d-md-none my-4"></div>
3425 </#if>
3426
3427 <#if mostrarFiltroInscricao>
3428 <div class="col-12 col-lg">
3429 <div class="d-flex justify-content-between justify-content-lg-start">
3430 <label class="ssp-switch order-2 order-lg-1">
3431 <input type="checkbox" id="chkInscricao">
3432 <span class="ssp-switch-slider round"></span>
3433 </label>
3434 <label for="chkInscricao" class="ssp-switch-label order-1 order-lg-2">${textoFiltroCompra}</label>
3435 </div>
3436 </div>
3437 </#if>
3438
3439
3440 <#if mostrarFiltroBolsa>
3441 <div class="col-12 col-lg">
3442 <div class="d-flex justify-content-between justify-content-lg-start">
3443 <label class="ssp-switch order-2 order-lg-1">
3444 <input type="checkbox" id="chkBolsa">
3445 <span class="ssp-switch-slider ssp-switch-slider-secondary round"></span>
3446 </label>
3447 <label for="chkBolsa" class="ssp-switch-label order-1 order-lg-2">Bolsas de estudo</label>
3448 </div>
3449 </div>
3450 </#if>
3451 </div>
3452 </div>
3453
3454 <div class="col-12 order-2 order-lg-3">
3455 <div class="row ${mostrarUnidades?then('text-center text-lg-left', 'text-center')}">
3456 <div id="msgFiltroAplicado" class="col-12 ssp-switch-label-message" style="display: none;">
3457 <div class="row no-gutters">
3458 <span class="col-12 ssp-col-lg-without ${mostrarUnidades?then('', 'ml-auto')}">Filtro aplicado com sucesso. </span>
3459 <span class="col-12 ssp-col-lg-without ${mostrarUnidades?then('', 'mr-auto')}">Confira o resultado.</span>
3460 </div>
3461 </div>
3462 </div>
3463 </div>
3464 </div>
3465
3466 <div class="ssp-ofertas__box-endereco-unidade ${dNoneSelectUnidade}">
3467 <i class="icon-map-adress"></i>
3468 <a href="" target="_blank" class="ssp-ofertas__endereco-unidade"></a>
3469 </div>
3470
3471 </div>
3472
3473 </section>
3474 </#if>
3475
3476
3477 <!-- EMED -->
3478 <section class="ssp-ofertas-emed__section d-none">
3479
3480 <h2 class="title-section-white" id="titulo-emed"></h2>
3481
3482 <div class="ssp-ofertas-emed__filtro-content container">
3483
3484 <button type="button" value="0010" class="btn btn-filtro btn--filtro-ativo">Turmas - 1º ano</button>
3485
3486 <button type="button" value="0" class="btn btn-filtro">Transferências</button>
3487
3488 </div>
3489
3490 <div class="ssp-ofertas-emed__card-container">
3491
3492 <div class="ssp-slick-ofertas-emed">
3493
3494 </div>
3495
3496 </div>
3497
3498 </section>
3499
3500 <!-- FIM EMED -->
3501
3502 <section id="ssp-section-response" class="ssp-section" style="background: #2a2e43; position: relative;">
3503
3504 <div id="turmas-container" class="container">
3505
3506 <div id="informe-novas-turmas">
3507 <div style="display: flex; flex-wrap: nowrap;">
3508
3509 <a class="prev-mobile d-lg-none d-xl-none nextPrevOpacity" href="#" >
3510 <i class="fas fa-chevron-left"></i>
3511 </a>
3512
3513 <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>
3514
3515 <a href="#" class="next-mobile d-lg-none d-xl-none" >
3516 <i class="fas fa-chevron-right"></i>
3517 </a>
3518
3519 </div>
3520
3521
3522 <div class="oferta-slick-area oferta-slick-area--md-bleed slider-container">
3523
3524 </div>
3525 </div>
3526
3527 <#if !isEMED>
3528 <div class="ssp-card-oferta-curso__sem-vaga d-none" style="margin: auto;">
3529
3530 <h2 class="ssp-card-oferta-curso__sem-vaga-title">
3531 Estude com a gente na próxima turma!
3532 </h2>
3533
3534 <p class="ssp-card-oferta-curso__sem-vaga-description">
3535 Registre seu interesse e avisaremos você quando surgirem novas vagas.
3536 </p>
3537 </div>
3538 <#else>
3539
3540 <div class="card-transferencias-emed container p-0 d-none emed-transferencias-space">
3541 <div>
3542 <div class="col-md-12 col-xs-12 pb-10">
3543 <div>
3544 <div class="slick-area__item">
3545
3546 <div class="ssp-emed__card-slider">
3547
3548 <div class="ssp-emed__card-slider-body">
3549 <h2 class="ssp-emed__section__titleCard">
3550 <i class="fal fa-users-class"></i>
3551 <div>Turmas</div>
3552 </h2>
3553 <div style="display:grid;gap:20px;">
3554 <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>
3555 <span></span>
3556 </div>
3557 </div>
3558
3559 </div>
3560
3561 </div>
3562 </div>
3563 </div>
3564 </div>
3565 </div>
3566
3567 <#if matriculaEMED.aberta> <div class="sem-vaga-emed container p-0 d-none">
3568 <#else> <div class="sem-vaga-emed container p-0 d-none emed-transferencias-space">
3569 </#if>
3570 <div>
3571 <div class="col-md-12 col-xs-12 pb-10">
3572
3573 <!--slick slider-->
3574 <div class="slick-area-emed slick-area-emed--md-bleed">
3575
3576 <#if matriculaEMED.aberta>
3577 <div class="slick-area__item">
3578
3579 <div class="ssp-emed__card-slider">
3580
3581 <div class="ssp-emed__card-slider-body">
3582 <h2 class="ssp-emed__section__titleCard">
3583 <i class="fal fa-users-class"></i>
3584 <div><lfr-editable type="rich-text">Turmas</lfr-editable></div>
3585 </h2>
3586 <lfr-editable type="rich-text">
3587 <div class="ssp-emed__section__introCard"><strong>Estude com a gente na próxima turma!</strong></div>
3588 <div class="ssp-emed__section__textCard">
3589 <span class="texto">
3590 Registre seu interesse e avisaremos você sobre a abertura das inscrições para o próximo ano.
3591 </span>
3592 <span class="ssp-emed__iconWrapper animate__animated animate__fadeOutRight animate__infinite"><i
3593 class="fas fa-chevron-right"></i></span>
3594 </div>
3595 </lfr-editable>
3596 </a>
3597 </div>
3598
3599 </div>
3600
3601 </div>
3602
3603 <div class="slick-area__item">
3604
3605 <div class="ssp-emed__card-slider">
3606 <div class="ssp-emed__card-slider-body">
3607
3608 <h2 class="ssp-emed__section__titleCard">
3609 <i class="far fa-envelope"></i>
3610 <div><lfr-editable id="emed-precos-title" type="rich-text">Registro de Interesse</lfr-editable></div>
3611 </h2>
3612 <lfr-editable id="txt_emed_boleto" type="rich-text">
3613 <div class="ssp-emed__section__introCardCTA">
3614 Quer receber um aviso sobre as turmas do próximo ano?
3615 </div>
3616 </lfr-editable>
3617 </a>
3618 <a class="ssp-emed__btn btn btn-lg w-100 mt-3 ssp-card-modal-selecionar-outro__btn-close_10"
3619 id="btnOptin" href="javascript:;">Sim, me avise.</a>
3620 </div>
3621 </div>
3622 </div>
3623 <#else>
3624 <#-- pre inscricao emed -->
3625 <div class="slick-area__item card-pre-inscricao">
3626
3627 <div class="ssp-emed__card-slider">
3628
3629 <div class="ssp-emed__card-slider-body">
3630 <h2 class="ssp-emed__section__titleCard">
3631 <i class="fal fa-users-class"></i>
3632 <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>
3633 </h2>
3634 <lfr-editable type="rich-text" style="text-align: left;">
3635 <div class="ssp-emed__section__introCard" style="margin: 0;"><strong class="ssp-p-g" style="font-weight: 700;">Inscrições para bolsas</strong></div>
3636 <div class="ssp-emed__section__textCard" style="margin: 0!important;">
3637 <span class="ssp-p-g texto">
3638 A partir de 4/8, às 12h
3639 </span>
3640 </lfr-editable>
3641 <hr style="margin: 24px 0; background: #FFF;"/>
3642 <lfr-editable type="rich-text" style="text-align: left;">
3643 <div class="ssp-emed__section__introCard" style="margin: 0;"><strong class="ssp-p-g" style="font-weight: 700;">Matrículas</strong></div>
3644 <div class="ssp-emed__section__textCard" style="margin: 0!important;">
3645 <span class="ssp-p-g texto">
3646 A partir de 18/8, às 12h
3647 </span>
3648 </div>
3649 </lfr-editable>
3650 </a>
3651 </div>
3652
3653 </div>
3654 <!-- <div class="ssp-emed__card-slider">
3655
3656 <div class="ssp-emed__card-slider-body">
3657 <h2 class="ssp-emed__section__titleCard">
3658 <i class="fal fa-users-class"></i>
3659 <div><lfr-editable id="emed-aulas-title" type="rich-text">Turmas</lfr-editable></div>
3660 </h2>
3661 <lfr-editable id="txt_emed_aulas" type="rich-text">
3662 <div>
3663 <strong>Matrículas e inscrições para bolsas de estudo:</strong><br/>
3664 <span style="font-weight: 400;">
3665 a partir de ${matriculaEMED.dataInicio?split("-")?reverse?join("/")}, às ${matriculaEMED.horaInicio?split(":")?first} horas
3666 <#if matriculaEMED.horaInicio?split(":")?last != "00">
3667 e ${matriculaEMED.horaInicio?split(":")?last} minutos
3668 </#if>
3669 </span>
3670 </div>
3671
3672 <div class="footer-card-card-pre-inscricao">
3673 <strong>
3674 Estude com a gente na próxima turma!<br/>
3675 Esperamos por você!
3676 </strong>
3677 </div>
3678 </lfr-editable>
3679 </a>
3680 </div> -->
3681
3682 </div>
3683
3684 </div>
3685
3686 </#if>
3687
3688 </div>
3689 <!--/slick slider-->
3690
3691 </div>
3692 </div>
3693 </div>
3694
3695 </#if>
3696 <div class="oferta-slick-area_modal">
3697 </div>
3698
3699 <#if manutencao.rodape != "">
3700 <p class="ssp-card-oferta-curso__mensagem-legal">${manutencao.rodape}</p>
3701 <#else>
3702 <#if isEMED>
3703 <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>
3704 <#else>
3705 <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>
3706 </#if>
3707 </#if>
3708
3709 </div>
3710
3711 <div id="ssp-abrir-pagina-bolsa" class="ssp-card-duvida__bolsa-estudo d-none" style="margin-top: 44px;">
3712
3713 <p>Tem dúvidas sobre bolsas de estudo?</p>
3714 <a href="/bolsas-de-estudo">Saiba como funciona</a>
3715
3716 </div>
3717
3718
3719 </section>
3720
3721 <section id="section-registro-interesse" class="ssp-section-novas-turmas">
3722
3723 <div class="container">
3724
3725 <div class="ssp-aviso-novas-turmas__content">
3726
3727 <!-- <div class="pb-sm-5 pb-md-5" > -->
3728 <div>
3729
3730 <p class="ssp-aviso-novas-turmas__title">Receba um aviso por e-mail se abrirem novas turmas.</p>
3731 <!-- p class="ssp-aviso-novas-turmas__description">Selecione a unidade e registre seu interesse.</p -->
3732
3733 </div>
3734
3735 <!--
3736 <div class="ssp-container__form-select">
3737
3738 <select class="form-control select-large select-registro-interesse" id="select-registro-interesse">
3739 <option value="">Selecione uma unidade</option>
3740 </select>
3741
3742 </div>
3743 -->
3744 <div class="ssp-btn-group__content-teste">
3745
3746 <button type="button" class="btn btn-primary btn-custom" id="btn-aviso-novas-turmas">Registrar interesse</button>
3747
3748 </div>
3749
3750
3751
3752 </div>
3753
3754
3755 </div>
3756
3757
3758 </section>
3759
3760 <section id="modal-backpack-error" class="ssp-modal-registro-interesse d-none">
3761
3762 <div class="ssp-card-msg-erro">
3763
3764 <div class="ssp-card-msg-sucesso__content">
3765 <i class="fas fa-exclamation-circle" style="color: #ec3a3a;"></i>
3766 <p>Houve um erro ao inserir curso na mochila!</p>
3767 <p>Por favor, tente novamente!</p>
3768 </div>
3769
3770 <div>
3771 <button id="btn-voltar-modal-backpack-error" class="btn btn-nivel ssp-card-msg-sucesso__btn">Voltar</button>
3772 </div>
3773
3774 </div>
3775
3776 </section>
3777
3778 <section id="modal-backpack-success" class="ssp-modal-registro-interesse d-none">
3779
3780 <div class="ssp-modal-mochila-curso">
3781
3782 <div class="ssp-modal-mochila-curso__header">
3783
3784 <button class="modal-btn-close" type="button">
3785
3786 <i class="fal fa-times"></i>
3787
3788 </button>
3789
3790 <h2 class="modal-title">Curso adicionado à mochila!</h2>
3791 <p class="modal-subtitle">Você incluiu na sua mochila de compras o curso
3792 <span id="modal-backpack-success__nome-curso"></span>
3793 </p>
3794
3795 </div>
3796
3797 <div class="ssp-modal-mochila-curso__body">
3798
3799 <p>A sua vaga só é garantida nesta turma quando você finaliza a
3800 compra. Deseja concluir agora?</p>
3801
3802 </div>
3803
3804 <div class="ssp-modal-mochila-curso__block-btn-items block-btn-items">
3805
3806 <a class="btn-finalizar-compra btn-mochila-finalizar-compra-success" href="#">
3807 Finalizar compra
3808 </a>
3809
3810 <button class="btn-continuar-site btn-mochila-continuar-site-success">
3811 Continuar no site
3812 </button>
3813
3814 </div>
3815
3816
3817 </div>
3818
3819 </section>
3820
3821</#if>
3822
3823<#if nomeTipoCurso?has_content && nomeTipoCurso?contains("Ensino Médio Técnico") >
3824 <!-- Agende a sua visita -->
3825 <#assign searchImpl = serviceLocator.findService("br.senac.search.api.Search") />
3826 <#assign articles = searchImpl.search("EMED - Agende sua visita", {}, themeDisplay.getCompanyId(), themeDisplay.getScopeGroupId(), themeDisplay.getUserId(), false) />
3827
3828 <section id="ssp-emed-visita-sector">
3829 <div class="container py-5 pt-lg-0" style="display:none;">
3830 <div data-emed="ssp-emed-visita-wrapper" class="ssp-emed-visita-wrapper">
3831 <#list articles![] as article>
3832 <#assign document = saxReaderUtil.read(article.getContent()) />
3833 <#assign rootElement = document.getRootElement() />
3834
3835 <#assign
3836 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='textoDoBotao']")
3837 textoDoBotao = xPathSelector.selectSingleNode(rootElement).getStringValue()
3838
3839 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='linkBotao']")
3840 linkBotao = xPathSelector.selectSingleNode(rootElement).getStringValue()
3841
3842 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='ativarBotao']")
3843 ativarBotao = xPathSelector.selectSingleNode(rootElement).getStringValue()
3844 />
3845
3846 <#if ativarBotao?trim == "true">
3847 <script>$('#ssp-emed-visita-sector').children().show()</script>
3848 <div data-emed="ssp-emed-visita-text" class="ssp-emed-visita-text">
3849
3850 <a href="${linkBotao}">${textoDoBotao}</a>
3851
3852 </div>
3853 <div class="ssp-emed-visita-icon">
3854 <i class="fas fa-route"></i>
3855 </div>
3856 </#if>
3857 </#list>
3858 </div>
3859 </div>
3860 </section>
3861
3862
3863 <!-- Como me matricular EMED -->
3864
3865 <section class="ssp-como-me-matricular__section">
3866
3867 <h2 class="title-section-white">Como me matricular?</h2>
3868
3869 <div class="container">
3870
3871 <div class="ssp-como-me-matricular__passo-passo-card">
3872
3873 <div class="item-passo">
3874 <img class="item-passo-icone" src="/o/senac-theme/images/icon-escolha-curso.svg" alt="">
3875 <p class="item-passo-title">Escolha o curso</p>
3876 <span>Selecione o curso, a unidade do seu interesse e confira as turmas disponíveis.</span>
3877 </div>
3878
3879 <img class="item-passo-icone-seta" src="/o/senac-theme/images/icon-seta-passo.svg" alt="">
3880
3881 <div class="item-passo">
3882 <img class="item-passo-icone" src="/o/senac-theme/images/icon-realize-inscricao.svg" alt="">
3883 <p class="item-passo-title">Adicione à Mochila</p>
3884 <span>Faça login ou crie uma conta em nosso site e continue a compra.</span>
3885 </div>
3886
3887 <img class="item-passo-icone-seta" src="/o/senac-theme/images/icon-seta-passo.svg" alt="">
3888
3889 <div class="item-passo">
3890 <img class="item-passo-icone" src="/o/senac-theme/images/icon-aguarde-contato.svg" alt="">
3891 <p class="item-passo-title">Faça a matrícula</p>
3892 <span>Todas as etapas são on-line. Para garantir a vaga, preencha todas as informações.</span>
3893 </div>
3894
3895 </div>
3896
3897
3898 </div>
3899
3900 </section>
3901
3902 </#if>
3903
3904
3905 <div class="ssp-section ssp-section-lg-bottom-slider d-none" id="section-cursos-voce-pode-gostar" style="background-color: #f2f2f2">
3906 <div class="container">
3907 <h2 class="ssp-section-title">
3908 <lfr-editable id="cursos-voce-pode-gostar-title" type="rich-text">
3909 Cursos que você pode gostar
3910 </lfr-editable>
3911 </h2>
3912
3913 <div id="slider-curso">
3914
3915 </div>
3916
3917 </div>
3918 </div>
3919
3920
3921
3922
3923 <#-- Section para o item de curso-->
3924 <div id="curso-item-template" class="d-none slick-area__item">
3925
3926 <div class="ssp-card-curso" style="height: 288px;">
3927
3928 <a class="ssp-absolute-link ck-curso" href="#a"></a>
3929
3930 <div class="ssp-card-curso__image">
3931
3932 <div class="ssp-image-container">
3933 <img src="" />
3934
3935 </div>
3936
3937 </div>
3938
3939 <div class="ssp-card-curso__body">
3940
3941 <div class="ssp-card-curso__color-tag-modalidade"></div>
3942
3943 <div class="ssp-card-curso__tags">
3944
3945 <span class="ssp-card-curso__tag-formato-title"></span>
3946
3947 <span class="tag-modalidade-title__senac-online d-none">Senac Online - ao vivo</span>
3948
3949 </div>
3950
3951 <h6 class="ssp-card-curso__title">
3952
3953 </h6>
3954
3955 <div class="ssp-card-curso__info">
3956
3957 <span class="ssp-tag bg-white border-nivel-extensao text-nivel-extensao mr-1 btn-inscricoes-abertas">Inscrições abertas</span>
3958 <span class="ssp-tag bg-white border-primary text-primary btn-bolsas">Bolsas</span>
3959
3960 </div>
3961
3962 </div>
3963
3964 </div>
3965
3966 </div>
3967
3968 <#function getJournalArticle>
3969
3970
3971 <#assign journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
3972 <#assign friendlyURL = themeDisplay.getURLCurrent()?split("/")?last?split("?")?first>
3973 <#assign groupId = themeDisplay.getSiteGroupId()>
3974 <#attempt>
3975
3976 <#if !friendlyURL?contains("fragment_collections") >
3977
3978 <#return journalArticleService.getArticleByUrlTitle(groupId,friendlyURL)>
3979 <#else>
3980
3981 <#return '#erro#'>
3982 </#if>
3983
3984 <#recover>
3985
3986 <#return '#erro#'>
3987 </#attempt>
3988 </#function>
3989
3990 <#function getCategorias primaryKey>
3991
3992 <#assign categoryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") />
3993 <#attempt>
3994
3995 <#return categoryService.getCategories("com.liferay.journal.model.JournalArticle", primaryKey)>
3996
3997 <#recover>
3998
3999 <#return '#erro#'>
4000 </#attempt>
4001 </#function>
4002
4003 <#function getVocabulary vocabularyId>
4004
4005 <#assign vocabularyService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyService") />
4006 <#attempt>
4007
4008 <#return vocabularyService.getVocabulary(vocabularyId)>
4009
4010 <#recover>
4011
4012 <#return '#erro#'>
4013 </#attempt>
4014 </#function>
4015
4016 <#function getStringValue dom name>
4017 <#assign
4018 seletorSTR = "dynamic-element[@field-reference='"+name+"']"
4019 xPathSelector = saxReaderUtil.createXPath(seletorSTR)
4020 />
4021 <#if xPathSelector.selectSingleNode(dom)?? >
4022 <#assign
4023 valueSTR = xPathSelector.selectSingleNode(dom).getStringValue()?trim
4024 />
4025 <#return valueSTR>
4026 </#if>
4027 <#return ''>
4028 </#function>
4029
4030 <!--Modal de Login -->
4031
4032 <section id="modal-login" class="ssp-modal-registro-interesse d-none">
4033
4034 <div class="dropdown-menu-modal dropdown-menu-right" id="js-login-dropdown-menu-2" style="width: 340px; max-width: 340px; display: block;">
4035
4036 <div class="px-5">
4037 <i id="btn-close-loginModal" class="fas fa-times btn-close__modal-login"></i>
4038 <div class="text-darker-gray py-3">Faça login na sua conta</div>
4039 </div>
4040
4041 <div class="dropdown-divider"></div>
4042
4043 <div class="dropdown-menu-arrow"></div>
4044
4045 <form id="login_form" class="px-5 py-4" method="post">
4046
4047 <div class="alert alert-danger py-3 d-none" id="mensagem-erro-login" style="background:#f8d7da;border-color:#f5c6cb; color:#a94442"></div>
4048
4049 <div class="form-group">
4050
4051 <label for="login-email">E-mail</label>
4052 <div class="input-group mb-2">
4053 <div class="input-group-prepend">
4054 <span class="input-group-text"><i class="icon-envelope"></i></span>
4055 </div>
4056 <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">
4057 </div>
4058
4059 </div>
4060
4061 <div class="form-group">
4062
4063 <label for="login-password">Senha</label>
4064 <div class="input-group mb-2">
4065 <div class="input-group-prepend">
4066 <span class="input-group-text"><i class="icon-key"></i></span>
4067 </div>
4068 <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">
4069 </div>
4070
4071 </div>
4072
4073 <div class="pt-1 pb-3">
4074 <small><a href="http://www.sp.senac.br/login-unico/SendPassword" target="_blank">Esqueceu sua senha?</a></small>
4075 </div>
4076
4077 <button type="button" class="btn btn-primary w-100" id="btnLogin" data-login="btnLogin">Entrar</button>
4078 </form>
4079
4080 <div class="dropdown-divider"></div>
4081
4082 <div class="px-5 pb-4">
4083 <div class="text-darker-gray py-3">Não tem cadastro?</div>
4084 <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>
4085 </div>
4086
4087
4088 </div>
4089
4090 </section>
4091
4092 <!-- modal registro interesse -->
4093
4094
4095 <section id="modal-registro-interesse" class="ssp-modal-registro-interesse d-none">
4096
4097 <#if !isEMED>
4098 <div class="ssp-card-registro-interesse">
4099
4100 <i id="btn-close-Modal-registro-interesse" class="fas fa-times btn-close__modal-login"></i>
4101
4102 <p class="ssp-card-registro-interesse__label-curso-selecionado">Curso selecionado:</p>
4103 <h3 class="ssp-card-registro-interesse__nome-curso"></h3>
4104
4105 <div id="unidades-registro-interesse">
4106
4107 <h4 class="ssp-card-registro-interesse__title-section-itens">Unidade:</h4>
4108
4109 <div id="select-unidades-registro-interesse">
4110 <select class="ssp-card-registro-interesse__select unidades" id="select_0"><option value="" disabled="" selected="">Selecione uma unidade</option></select>
4111 </div>
4112
4113 <div class="ssp-card-registro-interesse__add-mais">
4114 <a class="" id="add-unidade-regsitro-interesse" href="#a"><i class="fas fa-plus mr-1"></i>Adicionar unidade</a>
4115
4116
4117
4118 <a class="" id="remove-unidade-regsitro-interesse" href="#a"><i class="fas fa-times mr-1"></i>Remover unidade</a>
4119 </div>
4120
4121 </div>
4122
4123 <div id="dias-registro-interesse">
4124 <h4 class="ssp-card-registro-interesse__title-section-itens text-center">Dias da Semana</h4>
4125
4126 <div class="ssp-card-registro-interesse__week-content">
4127 <span id="todosDias" class="ssp-week-day">Todos</span>
4128 <span class="ssp-week-day">Seg</span>
4129 <span class="ssp-week-day">Ter</span>
4130 <span class="ssp-week-day">Qua</span>
4131 <span class="ssp-week-day">Qui</span>
4132 <span class="ssp-week-day">Sex</span>
4133 <span class="ssp-week-day">Sab</span>
4134 </div>
4135
4136 </div>
4137
4138 <div id="periodo-registro-interesse">
4139
4140 <h4 class="ssp-card-registro-interesse__title-section-itens text-center">Período:</h4>
4141
4142 <div class="ssp-card-registro-interesse__check-itens-content periodos-registro-interesse">
4143
4144 <div class="ssp-card-registro-interesse__check-item" id="div-campo-todos">
4145 <input type="checkbox" name="" value="" id="check-todos-periodos">
4146 <label for="check-todos-periodos">Todos</label>
4147 </div>
4148
4149 <div class="ssp-card-registro-interesse__check-item">
4150 <input type="checkbox" name="" value="M" id="periodo-m">
4151 <label for="periodo-m">Manhã</label>
4152 </div>
4153
4154 <div class="ssp-card-registro-interesse__check-item">
4155 <input type="checkbox" name="" value="T" id="periodo-t">
4156 <label for="periodo-t">Tarde</label>
4157 </div>
4158
4159 <div class="ssp-card-registro-interesse__check-item">
4160 <input type="checkbox" name="" value="N" id="periodo-n">
4161 <label for="periodo-n" "="">Noite</label>
4162 </div>
4163
4164
4165 </div>
4166
4167 </div>
4168
4169 <div class="ssp-card-registro-interesse__card-politica">
4170
4171
4172 <p class="ssp-card-registro-interesse__card-politica-title">
4173 <strong>Política de Privacidade do Senac São Paulo </strong>
4174 </p>
4175
4176 <p>Data de publicação 06/08/2024</p>
4177
4178 <p class="ssp-card-registro-interesse__card-politica-text">
4179 O Serviço Nacional de Aprendizagem Comercial - Senac,
4180 Administração no Estado de São Paulo (Senac SP) zela pela privacidade e proteção dos dados pessoais de todos aqueles
4181 com quem se relaciona.
4182 </p>
4183
4184 <p class="ssp-card-registro-interesse__card-politica-text">
4185
4186 A presente Política de Privacidade tem o objetivo de informar sobre quais dados pessoais a seu respeito são
4187 coletados; por qual motivo os coletamos; com quem os compartilhamos; por quanto tempo os mantemos conosco; quais as
4188 medidas de segurança que adotamos; e quais os direitos que você tem.
4189 <br><br>
4190 É importante que você leia esta Política com atenção, bem como a consulte periodicamente para verificar possíveis
4191 alterações no que diz respeito ao tratamento de seus dados pessoais.
4192 <br><br>
4193 Em caso de dúvidas, entre em contato via e-mail indicado no final deste documento.
4194 <br><br>
4195 <b>1. Quem somos nós?</b><br>
4196 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º
4197 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
4198 fins da Lei Geral de Proteção de Dados Pessoais (Lei nº 13.709/2018, LGPD) e desta Política, o Senac SP é
4199 controlador dos dados pessoais.
4200 <br><br>
4201 <b>2. O que você precisa saber antes de ler esta política?</b>
4202 <br>
4203 Dados pessoais são todas as informações que identificam ou permitam a sua identificação. Por exemplo, seu nome, CPF,
4204 e-mail, endereço, dados de contato, dados de conta bancária, entre outros. Incluem-se nesse conceito os dados
4205 pessoais sensíveis, conforme definição a seguir:
4206 <br><br>
4207 Dados pessoais sensíveis são as informações que revelam ou cujo tratamento venha revelar origem racial ou étnica,
4208 convicção religiosa, opinião política, filiação à sindicato ou à organização de caráter religioso, filosófico ou
4209 político, dados de saúde ou sobre a vida sexual, dado genético ou biométrico.
4210 <br><br>
4211 Encarregado é o seu canal de contato sobre assuntos relacionados à privacidade e à proteção de dados pessoais. Se
4212 você tiver qualquer dúvida sobre como os seus dados pessoais ou de seus dependentes/beneficiários são tratados por
4213 nós, é ele quem vai ajudar.
4214 <br><br>
4215 Titular é a pessoa física a quem se referem os dados pessoais objeto do tratamento.
4216 <br><br>
4217 Tratamento significa qualquer operação realizada com dados pessoais, tais como coleta, produção, classificação,
4218 utilização, acesso, processamento, armazenamento, eliminação, modificação, compartilhamento, transferência, entre
4219 outros.
4220 <br><br>
4221 Sempre que houver menção aos "Termos de Uso do Senac SP", "Nós" ou "Nossos", estaremos nos referindo à instituição
4222 descrita no tópico "Quem somos nós". Da mesma forma, toda vez que mencionarmos "você", "seu" ou "sua", estamos nos
4223 referindo a você, titular de dados pessoais, que possui relação com o Senac SP na qualidade de pessoa interessada,
4224 candidato a aluno, aluno e/ou ex-aluno, terceiros relacionados a candidatos ou alunos usuário de nossa rede wi-fi.
4225 <br><br>
4226 <b>3. Quais dados pessoais são tratados e por quê?</b>
4227 <br>
4228 O Senac SP realiza, a depender de sua relação conosco, o tratamento dos dados pessoais a seguir identificados para
4229 atendimento às finalidades ora descritas, conforme aplicável:
4230 <br><br>
4231 <b>Visitante / Interessado</b>
4232 <br>
4233 <b>Atividade: Navegação</b>
4234 <br>
4235 Dados pessoais: Endereço de IP com data e hora, informações sobre o dispositivo utilizado para a navegação e tipo de
4236 navegador utilizado, localização do dispositivo, sequência de cliques, termos pesquisados no Portal Senac SP, origem
4237 do tráfego.
4238 <br><br>
4239 Finalidade: Os dados pessoais são utilizados para permitir a análise do tráfego do Portal Senac SP; viabilizar o
4240 envio de anúncios, ofertas e/ou informações sobre cursos, eventos e/ou benefícios de acordo com seus interesses;
4241 aprimorar as funcionalidades do Portal Senac SP; monitorar fraudes e segurança, inclusive detectando e prevenindo
4242 ataques cibernéticos ou tentativas de roubo de identidade; atender exigências legais.
4243 <br><br>
4244 </p>
4245
4246 <hr>
4247
4248 <p class="ssp-card-registro-interesse__card-politica-text">
4249 <br>
4250 <b>Atividade: Cadastro</b><br>
4251 Dados pessoais: Nome, nome social, CPF, data de nascimento, sexo, documento de identificação civil, endereço,
4252 telefone.
4253 <br><br>
4254 Finalidade: Os dados pessoais são utilizados para cadastro na base de dados do Senac SP, havendo validação do
4255 cadastro por duplo fator de autenticação.
4256 <br>
4257 </p>
4258
4259 <hr>
4260
4261 <p class="ssp-card-registro-interesse__card-politica-text">
4262 <br>
4263 <b>Atividade: Inscrição em eventos</b><br>
4264 Dados pessoais: Nome, nome social/afetivo, estado civil, RG, CPF, e-mail, telefone, endereço, raça, evento
4265 pretendido, dado sobre deficiência, formação acadêmica, e situação profissional.
4266 <br><br>
4267 Finalidade: Os dados pessoais são utilizados para viabilizar sua inscrição e participação em eventos promovidos pelo
4268 Senac SP que não tenham participação restrita a alunos matriculados em nossos cursos.
4269 <br>
4270 </p>
4271
4272 <hr>
4273
4274 <p class="ssp-card-registro-interesse__card-politica-text">
4275 <br>
4276 <b>Atividade: Comunicação e Marketing</b><br>
4277 Dados pessoais: Nome, telefone, e-mail, empresa para qual trabalha, cidade, informações fornecidas voluntariamente
4278 em mensagens nos nossos canais de atendimento e redes sociais.
4279 <br><br>
4280 Finalidade: Os dados pessoais são utilizados para responder perguntas, dúvidas, sugestões, elogios ou reclamações;
4281 realizar estudos para entender demandas e necessidades relacionadas aos nossos cursos/eventos; viabilizar o envio de
4282 anúncios, ofertas e/ou informações sobre cursos, eventos e/ou benefícios de acordo com seus interesses.
4283 <br>
4284 </p>
4285
4286 <hr>
4287
4288 <p class="ssp-card-registro-interesse__card-politica-text">
4289 <br>
4290 <b>Candidato a aluno</b><br>
4291 <b>Atividade: Processo seletivo</b><br>
4292 Dados pessoais: Nome, nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo,
4293 número de inscrição, RG/RNE/Passaporte, CPF, filiação, formação acadêmica, experiência profissional, informação
4294 sobre deficiência, resultados de provas, dados tornados manifestamente públicos em plataformas como LinkedIn e
4295 Lattes, dentre outros, conforme exigido a depender do processo seletivo.
4296 <br><br>
4297 Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsáveis legais em caso de candidato a aluno
4298 menor de idade.
4299 <br><br>
4300 Finalidade: Os dados pessoais são utilizados, conforme necessário para cada processo seletivo, para fins de
4301 viabilizar sua inscrição e participação em processos seletivos; permitir a seleção de alunos conforme critérios
4302 previamente informados em editais e exigido em leis/normas setoriais aplicáveis; enviar informações sobre o processo
4303 seletivo, inclusive lembrete da proximidade da data de realização de provas; disponibilizar lista de classificação;
4304 responder perguntas, dúvidas, sugestões, elogios ou reclamações; enviar anúncios, ofertas e/ou informações sobre
4305 cursos, eventos e/ou benefícios de acordo com seus interesses.
4306 <br>
4307 </p>
4308
4309 <hr>
4310
4311 <p class="ssp-card-registro-interesse__card-politica-text">
4312 <br>
4313 <b>Atividade: Bolsas de estudo</b><br>
4314 Dados pessoais: Nome, nome social/afetivo, estado civil, RG, CPF, e-mail, telefone, endereço, raça, curso
4315 pretendido, dado sobre deficiência, formação acadêmica, e situação profissional, familiar e domiciliar (incluindo
4316 renda bruta de pessoas do mesmo grupo familiar identificadas pelo nome).
4317 <br><br>
4318 Finalidade: Os dados pessoais são utilizados para selecionar candidatos para o recebimento de bolsas de estudo, em
4319 particular do Programa Senac de Gratuidade (PSG).
4320 <br>
4321 </p>
4322
4323 <hr>
4324
4325 <p class="ssp-card-registro-interesse__card-politica-text">
4326 <br>
4327 <b>Aluno</b><br>
4328 <b>Atividade: Matrícula</b><br>
4329 Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades
4330 de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome,
4331 nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF,
4332 número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência,
4333 resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de
4334 cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual
4335 trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros,
4336 constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP.
4337 <br><br>
4338 Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos
4339 responsáveis legais do aluno se menor de idade.
4340 <br><br>
4341 Finalidade: Os dados pessoais são utilizados para viabilizar a celebração de contrato com você e, consequentemente,
4342 a prestação dos serviços contratados; liberar acesso a sistemas e áreas restritas; cobrar valores decorrentes do seu
4343 contrato conosco; e outras finalidades relacionadas.
4344 <br>
4345 </p>
4346
4347 <hr>
4348
4349 <p class="ssp-card-registro-interesse__card-politica-text">
4350 <br>
4351
4352 <b>Atividade: Jornada Acadêmica</b><br>
4353 Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades
4354 de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome,
4355 nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF,
4356 número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência,
4357 resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de
4358 cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual
4359 trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros,
4360 constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP.
4361 <br><br>
4362 Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos
4363 responsáveis legais do aluno se menor de idade.
4364 <br><br>
4365 Finalidade: Os dados pessoais são utilizados para registrar e acompanhar o desenvolvimento acadêmico e profissional
4366 do aluno; permitir o contato do Senac SP, por qualquer meio; viabilizar apoio pedagógico e psicopedagógico;
4367 responder suas perguntas, dúvidas, sugestões, elogios ou reclamações; enviar comunicações administrativas como, por
4368 exemplo, sobre alterações em nossas políticas; monitorar o desenvolvimento de atividades de estágio; permitir a
4369 realização de intercâmbio acadêmico.
4370 <br>
4371 </p>
4372
4373 <hr>
4374
4375 <p class="ssp-card-registro-interesse__card-politica-text">
4376 <br>
4377 <b>Atividade: Bolsas de estudo</b><br>
4378 Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades
4379 de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome,
4380 nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF,
4381 número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência,
4382 resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de
4383 cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual
4384 trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros,
4385 constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP.
4386 <br><br>
4387 Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos
4388 responsáveis legais do aluno se menor de idade.
4389 <br><br>
4390 Finalidade: Os dados pessoais são utilizados para avaliar e monitorar o cumprimento de requisitos para o
4391 fornecimento de bolsas de estudo.
4392 <br>
4393 </p>
4394
4395 <hr>
4396
4397 <p class="ssp-card-registro-interesse__card-politica-text">
4398 <br>
4399
4400
4401 <b>Atividade: Benefícios</b><br>
4402 Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades
4403 de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome,
4404 nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF,
4405 número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência,
4406 resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de
4407 cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual
4408 trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros,
4409 constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP.
4410 <br><br>
4411 Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos
4412 responsáveis legais do aluno se menor de idade.
4413 <br><br>
4414 Finalidade: Os dados pessoais são utilizados para fins de oferecer benefícios ligados ao objeto do seu contrato
4415 educacional com o Senac SP, como, por exemplo, o download gratuito de programas de computador devidamente
4416 licenciados, descontos em serviços prestados por nossos parceiros ou para aquisição de obras da Editora Senac, entre
4417 outros; enviar anúncios, ofertas e/ou informações sobre cursos, eventos e/ou benefícios de acordo com seus
4418 interesses; viabilizar análises e estudos relacionados ao interesse por e utilização de determinados benefícios,
4419 inclusive para aperfeiçoamento das nossas parcerias comerciais.
4420 <br>
4421 </p>
4422
4423 <hr>
4424
4425 <p class="ssp-card-registro-interesse__card-politica-text">
4426 <br>
4427 <b>Atividade: Procedimentos internos</b><br>
4428 Finalidade: Os dados pessoais são utilizados para fins de gestão da oferta, qualidade e aprimoramento dos serviços
4429 prestados pelo Senac SP, inclusive por meio do envio de pesquisas; viabilizar estratégia de aprendizagem remota e
4430 presencial; fornecer serviços de suporte; realizar estudos para entender demandas e necessidades relacionadas aos
4431 nossos produtos/serviços; preparar e disponibilizar relatórios de auditoria e gerenciais; fornecer segunda via e/ou
4432 cópia de documentos como diploma e histórico escolar; criar grupos de representantes de alunos para facilitar o
4433 diálogo e endereçamento de demandas; informar sobre a possibilidade de participação em processos acadêmicos e de
4434 pesquisa.
4435 <br>
4436 </p>
4437
4438 <hr>
4439
4440 <p class="ssp-card-registro-interesse__card-politica-text">
4441 <br>
4442
4443
4444 <b>Atividade: Obrigações legais e exercícios de direito</b><br>
4445 Finalidade: Os dados pessoais são utilizados para atender políticas públicas, como as assistenciais e de transporte
4446 escolar; viabilizar a condução do censo escolar; realizar as divulgações exigidas por normas legais ou de interesse
4447 do Senac SP, como lista de aprovados e conquistas obtidas; enviar dados ao MEC; inscrever estudantes para, por
4448 exemplo, realizar o Exame Nacional de Desempenho de Estudantes (Enade); colaborar com o cumprimento de ordem
4449 judicial, de autoridade competente ou de órgão fiscalizador.
4450 <br>
4451 </p>
4452
4453 <hr>
4454
4455 <p class="ssp-card-registro-interesse__card-politica-text">
4456 <br>
4457
4458 <b>Atividade: Pesquisas e desenvolvimento</b><br>
4459 Finalidade: Os dados pessoais poderão ser utilizados para entrar em contato e conduzir pesquisas para identificar
4460 pontos de melhoria nos produtos e serviços, permitir a mensuração de qualidade dos cursos, permitir a execução do
4461 programa de trabalho do Senac SP, bem como para conduzir pesquisas que decorram de lei e/ou regulamento ao qual o
4462 Senac SP está sujeito.
4463 <br>
4464 </p>
4465
4466 <hr>
4467
4468 <p class="ssp-card-registro-interesse__card-politica-text">
4469 <br>
4470
4471 <b>Atividade: Monitoramento</b><br>
4472 Finalidade: Os dados pessoais são utilizados para fins de monitorar a segurança dos ambientes de ensino e
4473 aprendizagem; prevenir fraudes, prática de condutas ilícitas e incidentes de segurança; cumprir exigências, por
4474 exemplo, de registro de acesso às aplicações estabelecidas no Marco Civil da Internet - Lei nº 12.965/2014.
4475 <br>
4476 </p>
4477
4478 <hr>
4479
4480 <p class="ssp-card-registro-interesse__card-politica-text">
4481 <br>
4482
4483 <b>Ex-aluno</b><br>
4484 <b>Atividade: Relacionamento, pesquisa, obrigações legais e exercício de direitos</b><br>
4485 Dados pessoais: Nome, telefone, e-mail, endereço, CPF, número de matrícula, formação acadêmica, histórico acadêmico,
4486 fotos, dentre outros, a depender da modalidade de ensino realizada no Senac SP.
4487 <br><br>
4488 Finalidade: Os dados pessoais são utilizados para atender obrigações do Senac SP de manutenção de registros
4489 escolares; acompanhar o seu desenvolvimento (por exemplo, com a análise da sua empregabilidade em decorrência da
4490 formação recebida); responder perguntas, dúvidas, sugestões, elogios ou reclamações; enviar anúncios, ofertas e/ou
4491 informações sobre cursos, eventos e/ou benefícios de acordo com seus interesses; entrar em contato e conduzir
4492 pesquisas com fins de identificar motivação para realização de cursos e inserção produtiva no mercado, bem como para
4493 conduzir pesquisas que decorram de lei e/ou regulamento ao qual o Senac SP está sujeito; garantir o cumprimento de
4494 obrigação legal ou regulatória e/ou o exercício de direitos do Senac SP, inclusive em processos judiciais,
4495 administrativos e arbitrais; atender consulta de terceiros acerca do seu relacionamento com o Senac SP; colaborar
4496 com o cumprimento de ordem judicial, de autoridade competente, órgão fiscalizador ou com pedido de entidade de
4497 fornecimento de dados sobre você no caso de, por exemplo, concursos públicos.
4498 <br>
4499 </p>
4500
4501 <hr>
4502
4503 <p class="ssp-card-registro-interesse__card-politica-text">
4504 <br>
4505 <b>Terceiros relacionados a candidatos e/ou alunos</b><br>
4506 <b>Atividade: Atuação de responsável legal e pagamento pelo responsável financeiro. Seleção de bolsistas</b><br>
4507 Dados pessoais: Nome, estado civil, RG, CPF, e-mail, telefone, endereço, renda bruta, grau de parentesco com
4508 aluno/candidato a aluno, dados de pagamento, dados de utilização de portais do Senac SP (endereço de IP, login).
4509 <br><br>
4510 Finalidade: Os dados pessoais são utilizados para permitir a celebração de contratos com menores e a gestão da vida
4511 escolar por responsável legal; viabilizar operações de pagamento, pelo responsável financeiro; permitir a seleção de
4512 candidatos para oferta de bolsas de estudos; atender requisições de autoridades e exercício regular de direito pelo
4513 Senac SP.
4514 <br>
4515 </p>
4516
4517 <hr>
4518
4519 <p class="ssp-card-registro-interesse__card-politica-text">
4520 <br><br>
4521 <b>Usuário Wi-Fi</b><br>
4522 <b>Atividade: Uso da rede wi-fi CONECTA SENAC</b><br>
4523 Dados pessoais: Nome, e-mail, CPF, endereço de IP com data e hora, informações sobre o dispositivo utilizado para a
4524 navegação e tipo de navegador utilizado (inclusive endereço MAC), localização do dispositivo.
4525 <br><br>
4526 Finalidade: Os dados pessoais são utilizados para viabilizar o uso da rede wi-fi "Conecta_Senac"; atender leis e
4527 outros normativos aplicáveis, bem como ordem de autoridades, em particular em casos de investigação; avaliar
4528 desempenho da rede e realizar diagnóstico de problemas, solucionando-os; comunicar sobre manutenção da rede e/ou
4529 outras informações relevantes; proteger você, terceiros e o Senac.
4530 <br><br>
4531
4532
4533 Os dados pessoais acima elencados podem ser coletados primordialmente das seguintes fontes: (a) diretamente de você
4534 ou da pessoa autorizada por você; (b) fornecedores do Senac SP, como empresas prestadoras de serviços; (c) sistemas
4535 de monitoramento de ambientes Senac SP; (d) autoridades públicas, judiciais e administrativas. Você é a única pessoa
4536 responsável pela exatidão, veracidade e autenticidade das informações fornecidas diretamente fornecidas.
4537 <br><br>
4538 Trataremos os dados pessoais conforme hipóteses autorizadoras listadas na LGPD, notadamente: (i) cumprimento de
4539 obrigação legal ou regulatória, (ii) execução de contrato, (iii) exercício regular de direitos, e (iv) legítimo
4540 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
4541 responsável legal, atuaremos de modo a garantir que você seja devidamente informado acerca da necessidade da
4542 autorização e consequências da sua recusa, para que você possa manifestar livremente a sua decisão.
4543 <br><br>
4544 O Senac SP utilizará os seus dados pessoais para finalidades compatíveis com as informadas nesta Política e sempre
4545 que entender haver base legal para o tratamento posterior nos termos da LGPD.
4546 <br><br>
4547
4548
4549 <b>4. Com quem compartilhamos os seus dados pessoais?</b><br>
4550 Poderemos compartilhar os seus dados pessoais com entidades que compõem a nossa estrutura organizacional
4551 (Administração Nacional e as demais Administrações Regionais), com empresas com as quais mantemos algum tipo de
4552 relação comercial, com seu responsável legal e/ou financeiro ou, ainda, com órgãos públicos, tais como parceiros
4553 comerciais, instituições bancárias, escritórios de advocacia, empresas de suporte aos nossos sistemas, bureaus de
4554 crédito, consultorias contábeis, órgãos públicos e o Poder Judiciário. Os seus dados pessoais podem ser
4555 compartilhados para finalidades legítimas da seguinte maneira:
4556 <br><br>
4557 - Para condução das atividades de tratamento de dados pessoais descritas nesta Política e/ou decorrentes de seu
4558 relacionamento e contrato de prestação de serviços conosco;
4559 <br><br>
4560 - Para permitir que terceiros forneçam serviços para o Senac SP e/ou acompanhem a prestação de serviços contratada,
4561 conforme aplicável;
4562 <br><br>
4563 - Para obedecer as nossas obrigações legais, regulatórias ou contratuais, ou responder a um processo judicial ou
4564 administrativo, auditoria ou solicitações legais por autoridades competentes, quando entendermos que estamos
4565 legalmente obrigados a fazê-lo ou, ainda, para fins de atendimento a ofícios relacionados a processos seletivos e/ou
4566 concursos públicos dos quais você participa. As categorias de destinatários incluem, por exemplo, contrapartes em
4567 contratos, órgãos judiciais e governamentais;
4568 <br><br>
4569 - Para exercício legítimo de direito em processo judicial, administrativo ou arbitral, inclusive prevenindo lesão ou
4570 ameaça a direito;
4571 <br><br>
4572 - Quando for necessário para proteger você, o Senac SP e seus interesses legítimos e/ou terceiros;
4573 <br><br>
4574 - Como parte de due diligence corporativa e/ou due diligence relativa à fusão, aquisição, alteração societária, ou
4575 em casos de recuperação judicial ou falência, nós podemos divulgar os seus dados pessoais ao potencial vendedor ou
4576 comprador, novo prestador de serviços e respectivos assessores, na medida do quanto necessário e adequado para o
4577 atingimento da aludida finalidade;
4578 <br><br>
4579 - Com o seu consentimento legalmente obtido, isto é dado de forma voluntária e sem que você sofra qualquer
4580 consequência adversa de sua decisão que negar ou revogar o seu consentimento.
4581 <br><br>
4582
4583
4584 Informações agregadas e anonimizadas poderão ser livremente compartilhadas.
4585 <br><br>
4586 Para resguardar a sua privacidade, utilizamos instrumentos contratuais e auditorias para assegurar que os terceiros
4587 que recebam os seus dados pessoais confiram a ele a mesma proteção que nós proporcionamos.
4588 <br><br>
4589 Atualmente, apenas compartilhamos os seus dados pessoais em território nacional. Caso haja transferência dos seus
4590 dados pessoais para fora do Brasil, nos certificaremos de que essa transferência ocorra em observância à legislação
4591 brasileira e que você seja informado de tal compartilhamento, sempre que exigido pela legislação aplicável.
4592 <br><br>
4593 Você pode ter mais informações sobre os terceiros com quem compartilhamos os seus dados pessoais por meio de
4594 requisição específica, conforme indicado no tópico que trata sobre os seus direitos.
4595 <br><br>
4596
4597
4598 <b>5. Por quanto tempo tratamos os seus dados pessoais?</b><br>
4599 Os seus dados pessoais serão tratados pelo tempo que for necessário para cumprir a finalidade para a qual eles foram
4600 coletados, a menos que um período de retenção mais longo seja necessário para cumprir obrigações legais, resolver
4601 disputas, proteger nossos ativos ou cumprir acordos judiciais/extrajudiciais.
4602 <br><br>
4603 Para determinar o período de retenção de seus dados pessoais, além do critério acima indicado, baseamo-nos nos
4604 seguintes critérios:
4605 <br><br>
4606 - Existência de uma obrigação legal ou contratual de reter os dados pessoais;
4607 <br><br>
4608 - Necessidade dos dados pessoais para investigação, auditoria ou exercício regular de nossos direitos em processos
4609 judiciais, administrativos ou arbitrais;
4610 <br><br>
4611 - Utilidade dos dados pessoais para fins de manutenção de registros precisos, especialmente financeiros e
4612 educacionais.
4613 <br><br>
4614 Podemos manter os seus dados pessoais, de forma anonimizada, ou seja, que não mais se refere a você pessoalmente,
4615 para fins estatísticos, sem limite de tempo, na medida em que tenhamos interesse legítimo e respaldo legal.
4616 <br><br>
4617
4618
4619 <b>6. Como mantemos seus dados pessoais seguros?</b><br>
4620 Adotamos medidas administrativas e técnicas, continuamente monitoradas e revisadas, de acordo com os avanços
4621 tecnológicos, aptas a manter os seus dados pessoais sob nossa responsabilidade protegidos de acessos não autorizados
4622 e de situações acidentais ou ilícitas de destruição, perda, alteração, comunicação ou qualquer outra forma de
4623 tratamento inadequado ou ilícito.
4624 <br><br>
4625 Nossos sistemas eletrônicos e arquivos físicos atendem aos padrões de segurança da informação adequados, tais como:
4626 <br><br>
4627 - Controle restrito de acesso interno;
4628 <br><br>
4629 - Proteção contra acessos não autorizados com a utilização de instrumentos de dupla autenticação, senha e chaves;
4630 <br><br>
4631 - Manutenção de inventário dos acessos, com o momento, a duração, a identificação do responsável pelo acesso e dados
4632 acessados.
4633 <br><br>
4634 Quaisquer comunicações legalmente exigidas sobre eventuais incidentes de segurança que possam acarretar perdas de
4635 disponibilidade, confidencialidade ou integridade dos dados pessoais sob nossa responsabilidade serão notificadas
4636 adequadamente às autoridades competentes e aos titulares afetados.
4637 <br><br>
4638
4639
4640 <b>7. Quais são os seus direitos?</b><br>
4641 Você, enquanto titular de dados pessoais, possui os seguintes direitos relativos aos seus dados pessoais:
4642 <br><br>
4643 <b>Direito X Explicação</b><br>
4644 1. Confirmação da existência de tratamento de seus dados pessoais<br>
4645 Esse direito permite que você solicite a confirmação acerca da existência de tratamento dos seus dados pessoais.
4646 <br><br>
4647 2. Acesso aos dados pessoais<br>
4648 Esse direito permite que você solicite uma cópia dos seus dados pessoais.
4649 <br><br>
4650 3. Correção de dados pessoais incompletos, inexatos ou desatualizados<br>
4651 Esse direito permite que você solicite a correção e/ou retificação dos seus dados pessoais, caso identifique que
4652 estão incompletos, inexatos ou desatualizados.
4653 <br><br>
4654 4. Anonimização, bloqueio ou eliminação de dados pessoais<br>
4655 Esse direito permite que você solicite a anonimização, o bloqueio ou a eliminação dos seus dados pessoais, se
4656 desnecessários, excessivos ou tratados de forma incorreta.
4657 <br><br>
4658 É possível, ainda, que você solicitea eliminação dos dados pessoais tratados com o seu consentimento e desde que
4659 ausente outra finalidade legitimadora de sua conservação, como a existência de obrigação legal ou regulatória a ser
4660 por nós atendida.
4661 <br><br>
4662 <br><br>
4663 O exercício desse direito também dependerá da nossa possibilidade técnica de atender o pedido.
4664 <br><br>
4665 <b>5. Portabilidade dos dados pessoais</b><br>
4666 Esse direito permite que você solicite o envio de seus dados pessoais para outras entidades, desde que não haja
4667 violação da nossa propriedade intelectual.
4668 <br><br>
4669 A requisição de exercício desse direito não implica na eliminação de dados pessoais.
4670 <br><br>
4671 <b>6. Não fornecimento ou revogação do consentimento</b><br>
4672 Esse direito permite que você não forneça ou revogue o seu consentimento, o que não afetará a legalidade de qualquer
4673 tratamento de dados pessoais anteriormente.
4674 <br><br>
4675 Você possui, ainda, os direitos de; (i) obter informações completas sobre as entidades públicas ou privadas com as
4676 quais compartilhamos seus dados pessoais; (ii) opor-se ao tratamento de dados pessoais ante ao não cumprimento da
4677 legislação aplicável; (iii) solicitar a revisão de decisão baseada no tratamento automatizado de dados pessoais e;
4678 (iv) reclamar uma possível violação de seus dados pessoais para a Autoridade Nacional de Proteção de Dados Pessoais
4679 (ANPD).
4680 <br><br>
4681 Para exercer quaisquer dos direitos acima listados, você deverá entrar em contato conosco aqui.
4682 <br><br>
4683 Envidaremos nossos melhores esforços para atender o seu pedido de forma clara, célere e segura.
4684 <br><br>
4685
4686
4687 <b>8. Políticas de terceiros e atualizações desta política</b><br>
4688 Não somos responsáveis pelas práticas de privacidade de terceiros. Portanto, sempre quando você for direcionado a
4689 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
4690 terceiros por nós não controlados, recomendamos que você analise as suas respectivas declarações de privacidade,
4691 entrando diretamente em contato com o terceiro responsável em caso de dúvidas.
4692 <br><br>
4693 Poderemos, ocasionalmente, atualizar a presente Política. Sempre quando ocorrer alguma alteração material
4694 significativa, como sobre a finalidade para a qual tratamos os seus dados pessoais, bem como a forma e duração do
4695 tratamento, utilizaremos esforços razoáveis para que você tenha ciência das modificações.
4696 <br><br>
4697
4698
4699 <b>9. Dúvidas?</b><br>
4700 Se você tiver quaisquer dúvidas sobre esta Política ou como tratamos os seus dados pessoais, entre em contato pelo
4701 e-mail privacidade@sp.senac.br.
4702 <br><br>
4703 <b>Encarregado de Dados do Senac (DPO):</b><br>
4704 Fernando Sátiro Pereira<br>
4705 Gerente de Tecnologia da Informação do Senac São Paulo<br>
4706 Contato: privacidade@sp.senac.br
4707 <br><br>
4708 <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>
4709 <br><br>
4710
4711 </p>
4712
4713
4714 </div>
4715
4716 <div class="ssp-card-registro-interesse__check-item">
4717 <input type="checkbox" name="" value="" id="check-politica-privacidade">
4718 <label for="check-politica-privacidade">Aceito a Política de Privacidade</label>
4719 </div>
4720
4721 <div class="text-center mt-5">
4722
4723 <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>
4724
4725 <p class="ssp-card-registro-interesse__aviso"><strong>Importante:</strong> O registro de interesse não garante a vaga.</p>
4726
4727 </div>
4728
4729 </div>
4730
4731 <#else>
4732
4733 <div class="ssp-card-registro-interesse emed">
4734
4735 <i id="btn-close-Modal-registro-interesse" class="fas fa-times btn-close__modal-login"></i>
4736
4737 <p class="ssp-card-registro-interesse__label-curso-selecionado">Curso selecionado:</p>
4738
4739 <div class="emed-select-group">
4740
4741 <h3 class="ssp-card-registro-interesse__title-modal"></h3>
4742
4743 <div id="unidades-registro-interesse">
4744
4745 <h4 class="ssp-card-registro-interesse__title-section-itens">Escolha uma unidade</h4>
4746
4747 <div id="select-unidades-registro-interesse">
4748 <select class="ssp-card-registro-interesse__select unidades" id="select_0"><option value="" disabled="" selected="">Selecione uma unidade</option></select>
4749 </div>
4750
4751 <div class="ssp-card-registro-interesse__add-mais">
4752 <a class="" id="add-unidade-regsitro-interesse" href="#a"><i class="fas fa-plus mr-1"></i>Adicionar unidade</a>
4753
4754
4755
4756 <a class="" id="remove-unidade-regsitro-interesse" href="#a"><i class="fas fa-times mr-1"></i>Remover unidade</a>
4757 </div>
4758
4759 </div>
4760
4761 </div>
4762
4763
4764 <div id="periodo-registro-interesse">
4765
4766 <p class="ssp-card-registro-interesse__title-section-itens">Período:</p>
4767
4768 <div class="ssp-card-registro-interesse__check-itens-content periodos-registro-interesse">
4769 <div class="ssp-card-registro-interesse__check-item">
4770 <input type="checkbox" name="" value="M" id="periodo-m">
4771 <label for="periodo-m">Manhã</label>
4772 </div>
4773
4774 <div class="ssp-card-registro-interesse__check-item">
4775 <input type="checkbox" name="" value="T" id="periodo-t">
4776 <label for="periodo-t">Tarde</label>
4777 </div>
4778
4779 <div class="ssp-card-registro-interesse__check-item" id="div-campo-todos">
4780 <input type="checkbox" name="" value="" id="check-todos-periodos">
4781 <label for="check-todos-periodos">Todos</label>
4782 </div>
4783
4784 </div>
4785
4786 </div>
4787
4788 <div id="turmas-registro-interesse">
4789
4790 <p class="ssp-card-registro-interesse__title-section-itens">Turma:</p>
4791
4792 <div class="ssp-card-registro-interesse__check-itens-content turmas-registro-interesse">
4793
4794 <div class="ssp-card-registro-interesse__check-item">
4795 <input type="checkbox" name="" value="1" id="primeiro">
4796 <label for="primeiro">1º ano</label>
4797 </div>
4798
4799 <div class="ssp-card-registro-interesse__check-item">
4800 <input type="checkbox" name="" value="2" id="segundo">
4801 <label for="segundo">2º ano</label>
4802 </div>
4803
4804 <div class="ssp-card-registro-interesse__check-item">
4805 <input type="checkbox" name="" value="3" id="terceiro">
4806 <label for="terceiro">3º ano</label>
4807 </div>
4808
4809 </div>
4810
4811 </div>
4812
4813 <div id="msg-transferencia-emed">
4814
4815 <div class="transferencia-emed-title">
4816 <i class="fas fa-comment-exclamation"></i>
4817 <p>Quer se transferir de escola?</p>
4818 </div>
4819
4820 <div class="transferencia-emed-link">
4821 <a href="#">Fale direto com a unidade de interesse.</a>
4822 </div>
4823
4824 </div>
4825
4826 <div class="ssp-card-registro-interesse__card-politica">
4827
4828 <p class="ssp-card-registro-interesse__card-politica-title">
4829 <strong>Política de Privacidade do Senac São Paulo </strong>
4830 </p>
4831
4832 <p>Data de publicação 06/08/2024</p>
4833
4834 <p class="ssp-card-registro-interesse__card-politica-text">
4835 O Serviço Nacional de Aprendizagem Comercial - Senac,
4836 Administração no Estado de São Paulo (Senac SP) zela pela privacidade e proteção dos dados pessoais de todos aqueles
4837 com quem se relaciona.
4838 </p>
4839
4840 <p class="ssp-card-registro-interesse__card-politica-text">
4841
4842 A presente Política de Privacidade tem o objetivo de informar sobre quais dados pessoais a seu respeito são
4843 coletados; por qual motivo os coletamos; com quem os compartilhamos; por quanto tempo os mantemos conosco; quais as
4844 medidas de segurança que adotamos; e quais os direitos que você tem.
4845 <br><br>
4846 É importante que você leia esta Política com atenção, bem como a consulte periodicamente para verificar possíveis
4847 alterações no que diz respeito ao tratamento de seus dados pessoais.
4848 <br><br>
4849 Em caso de dúvidas, entre em contato via e-mail indicado no final deste documento.
4850 <br><br>
4851 <b>1. Quem somos nós?</b><br>
4852 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º
4853 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
4854 fins da Lei Geral de Proteção de Dados Pessoais (Lei nº 13.709/2018, LGPD) e desta Política, o Senac SP é
4855 controlador dos dados pessoais.
4856 <br><br>
4857 <b>2. O que você precisa saber antes de ler esta política?</b>
4858 <br>
4859 Dados pessoais são todas as informações que identificam ou permitam a sua identificação. Por exemplo, seu nome, CPF,
4860 e-mail, endereço, dados de contato, dados de conta bancária, entre outros. Incluem-se nesse conceito os dados
4861 pessoais sensíveis, conforme definição a seguir:
4862 <br><br>
4863 Dados pessoais sensíveis são as informações que revelam ou cujo tratamento venha revelar origem racial ou étnica,
4864 convicção religiosa, opinião política, filiação à sindicato ou à organização de caráter religioso, filosófico ou
4865 político, dados de saúde ou sobre a vida sexual, dado genético ou biométrico.
4866 <br><br>
4867 Encarregado é o seu canal de contato sobre assuntos relacionados à privacidade e à proteção de dados pessoais. Se
4868 você tiver qualquer dúvida sobre como os seus dados pessoais ou de seus dependentes/beneficiários são tratados por
4869 nós, é ele quem vai ajudar.
4870 <br><br>
4871 Titular é a pessoa física a quem se referem os dados pessoais objeto do tratamento.
4872 <br><br>
4873 Tratamento significa qualquer operação realizada com dados pessoais, tais como coleta, produção, classificação,
4874 utilização, acesso, processamento, armazenamento, eliminação, modificação, compartilhamento, transferência, entre
4875 outros.
4876 <br><br>
4877 Sempre que houver menção aos "Termos de Uso do Senac SP", "Nós" ou "Nossos", estaremos nos referindo à instituição
4878 descrita no tópico "Quem somos nós". Da mesma forma, toda vez que mencionarmos "você", "seu" ou "sua", estamos nos
4879 referindo a você, titular de dados pessoais, que possui relação com o Senac SP na qualidade de pessoa interessada,
4880 candidato a aluno, aluno e/ou ex-aluno, terceiros relacionados a candidatos ou alunos usuário de nossa rede wi-fi.
4881 <br><br>
4882 <b>3. Quais dados pessoais são tratados e por quê?</b>
4883 <br>
4884 O Senac SP realiza, a depender de sua relação conosco, o tratamento dos dados pessoais a seguir identificados para
4885 atendimento às finalidades ora descritas, conforme aplicável:
4886 <br><br>
4887 <b>Visitante / Interessado</b>
4888 <br>
4889 <b>Atividade: Navegação</b>
4890 <br>
4891 Dados pessoais: Endereço de IP com data e hora, informações sobre o dispositivo utilizado para a navegação e tipo de
4892 navegador utilizado, localização do dispositivo, sequência de cliques, termos pesquisados no Portal Senac SP, origem
4893 do tráfego.
4894 <br><br>
4895 Finalidade: Os dados pessoais são utilizados para permitir a análise do tráfego do Portal Senac SP; viabilizar o
4896 envio de anúncios, ofertas e/ou informações sobre cursos, eventos e/ou benefícios de acordo com seus interesses;
4897 aprimorar as funcionalidades do Portal Senac SP; monitorar fraudes e segurança, inclusive detectando e prevenindo
4898 ataques cibernéticos ou tentativas de roubo de identidade; atender exigências legais.
4899 <br><br>
4900 </p>
4901
4902 <hr>
4903
4904 <p class="ssp-card-registro-interesse__card-politica-text">
4905 <br>
4906 <b>Atividade: Cadastro</b><br>
4907 Dados pessoais: Nome, nome social, CPF, data de nascimento, sexo, documento de identificação civil, endereço,
4908 telefone.
4909 <br><br>
4910 Finalidade: Os dados pessoais são utilizados para cadastro na base de dados do Senac SP, havendo validação do
4911 cadastro por duplo fator de autenticação.
4912 <br>
4913 </p>
4914
4915 <hr>
4916
4917 <p class="ssp-card-registro-interesse__card-politica-text">
4918 <br>
4919 <b>Atividade: Inscrição em eventos</b><br>
4920 Dados pessoais: Nome, nome social/afetivo, estado civil, RG, CPF, e-mail, telefone, endereço, raça, evento
4921 pretendido, dado sobre deficiência, formação acadêmica, e situação profissional.
4922 <br><br>
4923 Finalidade: Os dados pessoais são utilizados para viabilizar sua inscrição e participação em eventos promovidos pelo
4924 Senac SP que não tenham participação restrita a alunos matriculados em nossos cursos.
4925 <br>
4926 </p>
4927
4928 <hr>
4929
4930 <p class="ssp-card-registro-interesse__card-politica-text">
4931 <br>
4932 <b>Atividade: Comunicação e Marketing</b><br>
4933 Dados pessoais: Nome, telefone, e-mail, empresa para qual trabalha, cidade, informações fornecidas voluntariamente
4934 em mensagens nos nossos canais de atendimento e redes sociais.
4935 <br><br>
4936 Finalidade: Os dados pessoais são utilizados para responder perguntas, dúvidas, sugestões, elogios ou reclamações;
4937 realizar estudos para entender demandas e necessidades relacionadas aos nossos cursos/eventos; viabilizar o envio de
4938 anúncios, ofertas e/ou informações sobre cursos, eventos e/ou benefícios de acordo com seus interesses.
4939 <br>
4940 </p>
4941
4942 <hr>
4943
4944 <p class="ssp-card-registro-interesse__card-politica-text">
4945 <br>
4946 <b>Candidato a aluno</b><br>
4947 <b>Atividade: Processo seletivo</b><br>
4948 Dados pessoais: Nome, nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo,
4949 número de inscrição, RG/RNE/Passaporte, CPF, filiação, formação acadêmica, experiência profissional, informação
4950 sobre deficiência, resultados de provas, dados tornados manifestamente públicos em plataformas como LinkedIn e
4951 Lattes, dentre outros, conforme exigido a depender do processo seletivo.
4952 <br><br>
4953 Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsáveis legais em caso de candidato a aluno
4954 menor de idade.
4955 <br><br>
4956 Finalidade: Os dados pessoais são utilizados, conforme necessário para cada processo seletivo, para fins de
4957 viabilizar sua inscrição e participação em processos seletivos; permitir a seleção de alunos conforme critérios
4958 previamente informados em editais e exigido em leis/normas setoriais aplicáveis; enviar informações sobre o processo
4959 seletivo, inclusive lembrete da proximidade da data de realização de provas; disponibilizar lista de classificação;
4960 responder perguntas, dúvidas, sugestões, elogios ou reclamações; enviar anúncios, ofertas e/ou informações sobre
4961 cursos, eventos e/ou benefícios de acordo com seus interesses.
4962 <br>
4963 </p>
4964
4965 <hr>
4966
4967 <p class="ssp-card-registro-interesse__card-politica-text">
4968 <br>
4969 <b>Atividade: Bolsas de estudo</b><br>
4970 Dados pessoais: Nome, nome social/afetivo, estado civil, RG, CPF, e-mail, telefone, endereço, raça, curso
4971 pretendido, dado sobre deficiência, formação acadêmica, e situação profissional, familiar e domiciliar (incluindo
4972 renda bruta de pessoas do mesmo grupo familiar identificadas pelo nome).
4973 <br><br>
4974 Finalidade: Os dados pessoais são utilizados para selecionar candidatos para o recebimento de bolsas de estudo, em
4975 particular do Programa Senac de Gratuidade (PSG).
4976 <br>
4977 </p>
4978
4979 <hr>
4980
4981 <p class="ssp-card-registro-interesse__card-politica-text">
4982 <br>
4983 <b>Aluno</b><br>
4984 <b>Atividade: Matrícula</b><br>
4985 Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades
4986 de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome,
4987 nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF,
4988 número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência,
4989 resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de
4990 cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual
4991 trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros,
4992 constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP.
4993 <br><br>
4994 Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos
4995 responsáveis legais do aluno se menor de idade.
4996 <br><br>
4997 Finalidade: Os dados pessoais são utilizados para viabilizar a celebração de contrato com você e, consequentemente,
4998 a prestação dos serviços contratados; liberar acesso a sistemas e áreas restritas; cobrar valores decorrentes do seu
4999 contrato conosco; e outras finalidades relacionadas.
5000 <br>
5001 </p>
5002
5003 <hr>
5004
5005 <p class="ssp-card-registro-interesse__card-politica-text">
5006 <br>
5007
5008 <b>Atividade: Jornada Acadêmica</b><br>
5009 Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades
5010 de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome,
5011 nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF,
5012 número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência,
5013 resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de
5014 cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual
5015 trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros,
5016 constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP.
5017 <br><br>
5018 Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos
5019 responsáveis legais do aluno se menor de idade.
5020 <br><br>
5021 Finalidade: Os dados pessoais são utilizados para registrar e acompanhar o desenvolvimento acadêmico e profissional
5022 do aluno; permitir o contato do Senac SP, por qualquer meio; viabilizar apoio pedagógico e psicopedagógico;
5023 responder suas perguntas, dúvidas, sugestões, elogios ou reclamações; enviar comunicações administrativas como, por
5024 exemplo, sobre alterações em nossas políticas; monitorar o desenvolvimento de atividades de estágio; permitir a
5025 realização de intercâmbio acadêmico.
5026 <br>
5027 </p>
5028
5029 <hr>
5030
5031 <p class="ssp-card-registro-interesse__card-politica-text">
5032 <br>
5033 <b>Atividade: Bolsas de estudo</b><br>
5034 Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades
5035 de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome,
5036 nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF,
5037 número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência,
5038 resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de
5039 cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual
5040 trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros,
5041 constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP.
5042 <br><br>
5043 Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos
5044 responsáveis legais do aluno se menor de idade.
5045 <br><br>
5046 Finalidade: Os dados pessoais são utilizados para avaliar e monitorar o cumprimento de requisitos para o
5047 fornecimento de bolsas de estudo.
5048 <br>
5049 </p>
5050
5051 <hr>
5052
5053 <p class="ssp-card-registro-interesse__card-politica-text">
5054 <br>
5055
5056
5057 <b>Atividade: Benefícios</b><br>
5058 Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades
5059 de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome,
5060 nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF,
5061 número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência,
5062 resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de
5063 cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual
5064 trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros,
5065 constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP.
5066 <br><br>
5067 Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos
5068 responsáveis legais do aluno se menor de idade.
5069 <br><br>
5070 Finalidade: Os dados pessoais são utilizados para fins de oferecer benefícios ligados ao objeto do seu contrato
5071 educacional com o Senac SP, como, por exemplo, o download gratuito de programas de computador devidamente
5072 licenciados, descontos em serviços prestados por nossos parceiros ou para aquisição de obras da Editora Senac, entre
5073 outros; enviar anúncios, ofertas e/ou informações sobre cursos, eventos e/ou benefícios de acordo com seus
5074 interesses; viabilizar análises e estudos relacionados ao interesse por e utilização de determinados benefícios,
5075 inclusive para aperfeiçoamento das nossas parcerias comerciais.
5076 <br>
5077 </p>
5078
5079 <hr>
5080
5081 <p class="ssp-card-registro-interesse__card-politica-text">
5082 <br>
5083 <b>Atividade: Procedimentos internos</b><br>
5084 Finalidade: Os dados pessoais são utilizados para fins de gestão da oferta, qualidade e aprimoramento dos serviços
5085 prestados pelo Senac SP, inclusive por meio do envio de pesquisas; viabilizar estratégia de aprendizagem remota e
5086 presencial; fornecer serviços de suporte; realizar estudos para entender demandas e necessidades relacionadas aos
5087 nossos produtos/serviços; preparar e disponibilizar relatórios de auditoria e gerenciais; fornecer segunda via e/ou
5088 cópia de documentos como diploma e histórico escolar; criar grupos de representantes de alunos para facilitar o
5089 diálogo e endereçamento de demandas; informar sobre a possibilidade de participação em processos acadêmicos e de
5090 pesquisa.
5091 <br>
5092 </p>
5093
5094 <hr>
5095
5096 <p class="ssp-card-registro-interesse__card-politica-text">
5097 <br>
5098
5099
5100 <b>Atividade: Obrigações legais e exercícios de direito</b><br>
5101 Finalidade: Os dados pessoais são utilizados para atender políticas públicas, como as assistenciais e de transporte
5102 escolar; viabilizar a condução do censo escolar; realizar as divulgações exigidas por normas legais ou de interesse
5103 do Senac SP, como lista de aprovados e conquistas obtidas; enviar dados ao MEC; inscrever estudantes para, por
5104 exemplo, realizar o Exame Nacional de Desempenho de Estudantes (Enade); colaborar com o cumprimento de ordem
5105 judicial, de autoridade competente ou de órgão fiscalizador.
5106 <br>
5107 </p>
5108
5109 <hr>
5110
5111 <p class="ssp-card-registro-interesse__card-politica-text">
5112 <br>
5113
5114 <b>Atividade: Pesquisas e desenvolvimento</b><br>
5115 Finalidade: Os dados pessoais poderão ser utilizados para entrar em contato e conduzir pesquisas para identificar
5116 pontos de melhoria nos produtos e serviços, permitir a mensuração de qualidade dos cursos, permitir a execução do
5117 programa de trabalho do Senac SP, bem como para conduzir pesquisas que decorram de lei e/ou regulamento ao qual o
5118 Senac SP está sujeito.
5119 <br>
5120 </p>
5121
5122 <hr>
5123
5124 <p class="ssp-card-registro-interesse__card-politica-text">
5125 <br>
5126
5127 <b>Atividade: Monitoramento</b><br>
5128 Finalidade: Os dados pessoais são utilizados para fins de monitorar a segurança dos ambientes de ensino e
5129 aprendizagem; prevenir fraudes, prática de condutas ilícitas e incidentes de segurança; cumprir exigências, por
5130 exemplo, de registro de acesso às aplicações estabelecidas no Marco Civil da Internet - Lei nº 12.965/2014.
5131 <br>
5132 </p>
5133
5134 <hr>
5135
5136 <p class="ssp-card-registro-interesse__card-politica-text">
5137 <br>
5138
5139 <b>Ex-aluno</b><br>
5140 <b>Atividade: Relacionamento, pesquisa, obrigações legais e exercício de direitos</b><br>
5141 Dados pessoais: Nome, telefone, e-mail, endereço, CPF, número de matrícula, formação acadêmica, histórico acadêmico,
5142 fotos, dentre outros, a depender da modalidade de ensino realizada no Senac SP.
5143 <br><br>
5144 Finalidade: Os dados pessoais são utilizados para atender obrigações do Senac SP de manutenção de registros
5145 escolares; acompanhar o seu desenvolvimento (por exemplo, com a análise da sua empregabilidade em decorrência da
5146 formação recebida); responder perguntas, dúvidas, sugestões, elogios ou reclamações; enviar anúncios, ofertas e/ou
5147 informações sobre cursos, eventos e/ou benefícios de acordo com seus interesses; entrar em contato e conduzir
5148 pesquisas com fins de identificar motivação para realização de cursos e inserção produtiva no mercado, bem como para
5149 conduzir pesquisas que decorram de lei e/ou regulamento ao qual o Senac SP está sujeito; garantir o cumprimento de
5150 obrigação legal ou regulatória e/ou o exercício de direitos do Senac SP, inclusive em processos judiciais,
5151 administrativos e arbitrais; atender consulta de terceiros acerca do seu relacionamento com o Senac SP; colaborar
5152 com o cumprimento de ordem judicial, de autoridade competente, órgão fiscalizador ou com pedido de entidade de
5153 fornecimento de dados sobre você no caso de, por exemplo, concursos públicos.
5154 <br>
5155 </p>
5156
5157 <hr>
5158
5159 <p class="ssp-card-registro-interesse__card-politica-text">
5160 <br>
5161 <b>Terceiros relacionados a candidatos e/ou alunos</b><br>
5162 <b>Atividade: Atuação de responsável legal e pagamento pelo responsável financeiro. Seleção de bolsistas</b><br>
5163 Dados pessoais: Nome, estado civil, RG, CPF, e-mail, telefone, endereço, renda bruta, grau de parentesco com
5164 aluno/candidato a aluno, dados de pagamento, dados de utilização de portais do Senac SP (endereço de IP, login).
5165 <br><br>
5166 Finalidade: Os dados pessoais são utilizados para permitir a celebração de contratos com menores e a gestão da vida
5167 escolar por responsável legal; viabilizar operações de pagamento, pelo responsável financeiro; permitir a seleção de
5168 candidatos para oferta de bolsas de estudos; atender requisições de autoridades e exercício regular de direito pelo
5169 Senac SP.
5170 <br>
5171 </p>
5172
5173 <hr>
5174
5175 <p class="ssp-card-registro-interesse__card-politica-text">
5176 <br><br>
5177 <b>Usuário Wi-Fi</b><br>
5178 <b>Atividade: Uso da rede wi-fi CONECTA SENAC</b><br>
5179 Dados pessoais: Nome, e-mail, CPF, endereço de IP com data e hora, informações sobre o dispositivo utilizado para a
5180 navegação e tipo de navegador utilizado (inclusive endereço MAC), localização do dispositivo.
5181 <br><br>
5182 Finalidade: Os dados pessoais são utilizados para viabilizar o uso da rede wi-fi "Conecta_Senac"; atender leis e
5183 outros normativos aplicáveis, bem como ordem de autoridades, em particular em casos de investigação; avaliar
5184 desempenho da rede e realizar diagnóstico de problemas, solucionando-os; comunicar sobre manutenção da rede e/ou
5185 outras informações relevantes; proteger você, terceiros e o Senac.
5186 <br><br>
5187
5188
5189 Os dados pessoais acima elencados podem ser coletados primordialmente das seguintes fontes: (a) diretamente de você
5190 ou da pessoa autorizada por você; (b) fornecedores do Senac SP, como empresas prestadoras de serviços; (c) sistemas
5191 de monitoramento de ambientes Senac SP; (d) autoridades públicas, judiciais e administrativas. Você é a única pessoa
5192 responsável pela exatidão, veracidade e autenticidade das informações fornecidas diretamente fornecidas.
5193 <br><br>
5194 Trataremos os dados pessoais conforme hipóteses autorizadoras listadas na LGPD, notadamente: (i) cumprimento de
5195 obrigação legal ou regulatória, (ii) execução de contrato, (iii) exercício regular de direitos, e (iv) legítimo
5196 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
5197 responsável legal, atuaremos de modo a garantir que você seja devidamente informado acerca da necessidade da
5198 autorização e consequências da sua recusa, para que você possa manifestar livremente a sua decisão.
5199 <br><br>
5200 O Senac SP utilizará os seus dados pessoais para finalidades compatíveis com as informadas nesta Política e sempre
5201 que entender haver base legal para o tratamento posterior nos termos da LGPD.
5202 <br><br>
5203
5204
5205 <b>4. Com quem compartilhamos os seus dados pessoais?</b><br>
5206 Poderemos compartilhar os seus dados pessoais com entidades que compõem a nossa estrutura organizacional
5207 (Administração Nacional e as demais Administrações Regionais), com empresas com as quais mantemos algum tipo de
5208 relação comercial, com seu responsável legal e/ou financeiro ou, ainda, com órgãos públicos, tais como parceiros
5209 comerciais, instituições bancárias, escritórios de advocacia, empresas de suporte aos nossos sistemas, bureaus de
5210 crédito, consultorias contábeis, órgãos públicos e o Poder Judiciário. Os seus dados pessoais podem ser
5211 compartilhados para finalidades legítimas da seguinte maneira:
5212 <br><br>
5213 - Para condução das atividades de tratamento de dados pessoais descritas nesta Política e/ou decorrentes de seu
5214 relacionamento e contrato de prestação de serviços conosco;
5215 <br><br>
5216 - Para permitir que terceiros forneçam serviços para o Senac SP e/ou acompanhem a prestação de serviços contratada,
5217 conforme aplicável;
5218 <br><br>
5219 - Para obedecer as nossas obrigações legais, regulatórias ou contratuais, ou responder a um processo judicial ou
5220 administrativo, auditoria ou solicitações legais por autoridades competentes, quando entendermos que estamos
5221 legalmente obrigados a fazê-lo ou, ainda, para fins de atendimento a ofícios relacionados a processos seletivos e/ou
5222 concursos públicos dos quais você participa. As categorias de destinatários incluem, por exemplo, contrapartes em
5223 contratos, órgãos judiciais e governamentais;
5224 <br><br>
5225 - Para exercício legítimo de direito em processo judicial, administrativo ou arbitral, inclusive prevenindo lesão ou
5226 ameaça a direito;
5227 <br><br>
5228 - Quando for necessário para proteger você, o Senac SP e seus interesses legítimos e/ou terceiros;
5229 <br><br>
5230 - Como parte de due diligence corporativa e/ou due diligence relativa à fusão, aquisição, alteração societária, ou
5231 em casos de recuperação judicial ou falência, nós podemos divulgar os seus dados pessoais ao potencial vendedor ou
5232 comprador, novo prestador de serviços e respectivos assessores, na medida do quanto necessário e adequado para o
5233 atingimento da aludida finalidade;
5234 <br><br>
5235 - Com o seu consentimento legalmente obtido, isto é dado de forma voluntária e sem que você sofra qualquer
5236 consequência adversa de sua decisão que negar ou revogar o seu consentimento.
5237 <br><br>
5238
5239
5240 Informações agregadas e anonimizadas poderão ser livremente compartilhadas.
5241 <br><br>
5242 Para resguardar a sua privacidade, utilizamos instrumentos contratuais e auditorias para assegurar que os terceiros
5243 que recebam os seus dados pessoais confiram a ele a mesma proteção que nós proporcionamos.
5244 <br><br>
5245 Atualmente, apenas compartilhamos os seus dados pessoais em território nacional. Caso haja transferência dos seus
5246 dados pessoais para fora do Brasil, nos certificaremos de que essa transferência ocorra em observância à legislação
5247 brasileira e que você seja informado de tal compartilhamento, sempre que exigido pela legislação aplicável.
5248 <br><br>
5249 Você pode ter mais informações sobre os terceiros com quem compartilhamos os seus dados pessoais por meio de
5250 requisição específica, conforme indicado no tópico que trata sobre os seus direitos.
5251 <br><br>
5252
5253
5254 <b>5. Por quanto tempo tratamos os seus dados pessoais?</b><br>
5255 Os seus dados pessoais serão tratados pelo tempo que for necessário para cumprir a finalidade para a qual eles foram
5256 coletados, a menos que um período de retenção mais longo seja necessário para cumprir obrigações legais, resolver
5257 disputas, proteger nossos ativos ou cumprir acordos judiciais/extrajudiciais.
5258 <br><br>
5259 Para determinar o período de retenção de seus dados pessoais, além do critério acima indicado, baseamo-nos nos
5260 seguintes critérios:
5261 <br><br>
5262 - Existência de uma obrigação legal ou contratual de reter os dados pessoais;
5263 <br><br>
5264 - Necessidade dos dados pessoais para investigação, auditoria ou exercício regular de nossos direitos em processos
5265 judiciais, administrativos ou arbitrais;
5266 <br><br>
5267 - Utilidade dos dados pessoais para fins de manutenção de registros precisos, especialmente financeiros e
5268 educacionais.
5269 <br><br>
5270 Podemos manter os seus dados pessoais, de forma anonimizada, ou seja, que não mais se refere a você pessoalmente,
5271 para fins estatísticos, sem limite de tempo, na medida em que tenhamos interesse legítimo e respaldo legal.
5272 <br><br>
5273
5274
5275 <b>6. Como mantemos seus dados pessoais seguros?</b><br>
5276 Adotamos medidas administrativas e técnicas, continuamente monitoradas e revisadas, de acordo com os avanços
5277 tecnológicos, aptas a manter os seus dados pessoais sob nossa responsabilidade protegidos de acessos não autorizados
5278 e de situações acidentais ou ilícitas de destruição, perda, alteração, comunicação ou qualquer outra forma de
5279 tratamento inadequado ou ilícito.
5280 <br><br>
5281 Nossos sistemas eletrônicos e arquivos físicos atendem aos padrões de segurança da informação adequados, tais como:
5282 <br><br>
5283 - Controle restrito de acesso interno;
5284 <br><br>
5285 - Proteção contra acessos não autorizados com a utilização de instrumentos de dupla autenticação, senha e chaves;
5286 <br><br>
5287 - Manutenção de inventário dos acessos, com o momento, a duração, a identificação do responsável pelo acesso e dados
5288 acessados.
5289 <br><br>
5290 Quaisquer comunicações legalmente exigidas sobre eventuais incidentes de segurança que possam acarretar perdas de
5291 disponibilidade, confidencialidade ou integridade dos dados pessoais sob nossa responsabilidade serão notificadas
5292 adequadamente às autoridades competentes e aos titulares afetados.
5293 <br><br>
5294
5295
5296 <b>7. Quais são os seus direitos?</b><br>
5297 Você, enquanto titular de dados pessoais, possui os seguintes direitos relativos aos seus dados pessoais:
5298 <br><br>
5299 <b>Direito X Explicação</b><br>
5300 1. Confirmação da existência de tratamento de seus dados pessoais<br>
5301 Esse direito permite que você solicite a confirmação acerca da existência de tratamento dos seus dados pessoais.
5302 <br><br>
5303 2. Acesso aos dados pessoais<br>
5304 Esse direito permite que você solicite uma cópia dos seus dados pessoais.
5305 <br><br>
5306 3. Correção de dados pessoais incompletos, inexatos ou desatualizados<br>
5307 Esse direito permite que você solicite a correção e/ou retificação dos seus dados pessoais, caso identifique que
5308 estão incompletos, inexatos ou desatualizados.
5309 <br><br>
5310 4. Anonimização, bloqueio ou eliminação de dados pessoais<br>
5311 Esse direito permite que você solicite a anonimização, o bloqueio ou a eliminação dos seus dados pessoais, se
5312 desnecessários, excessivos ou tratados de forma incorreta.
5313 <br><br>
5314 É possível, ainda, que você solicitea eliminação dos dados pessoais tratados com o seu consentimento e desde que
5315 ausente outra finalidade legitimadora de sua conservação, como a existência de obrigação legal ou regulatória a ser
5316 por nós atendida.
5317 <br><br>
5318 <br><br>
5319 O exercício desse direito também dependerá da nossa possibilidade técnica de atender o pedido.
5320 <br><br>
5321 <b>5. Portabilidade dos dados pessoais</b><br>
5322 Esse direito permite que você solicite o envio de seus dados pessoais para outras entidades, desde que não haja
5323 violação da nossa propriedade intelectual.
5324 <br><br>
5325 A requisição de exercício desse direito não implica na eliminação de dados pessoais.
5326 <br><br>
5327 <b>6. Não fornecimento ou revogação do consentimento</b><br>
5328 Esse direito permite que você não forneça ou revogue o seu consentimento, o que não afetará a legalidade de qualquer
5329 tratamento de dados pessoais anteriormente.
5330 <br><br>
5331 Você possui, ainda, os direitos de; (i) obter informações completas sobre as entidades públicas ou privadas com as
5332 quais compartilhamos seus dados pessoais; (ii) opor-se ao tratamento de dados pessoais ante ao não cumprimento da
5333 legislação aplicável; (iii) solicitar a revisão de decisão baseada no tratamento automatizado de dados pessoais e;
5334 (iv) reclamar uma possível violação de seus dados pessoais para a Autoridade Nacional de Proteção de Dados Pessoais
5335 (ANPD).
5336 <br><br>
5337 Para exercer quaisquer dos direitos acima listados, você deverá entrar em contato conosco aqui.
5338 <br><br>
5339 Envidaremos nossos melhores esforços para atender o seu pedido de forma clara, célere e segura.
5340 <br><br>
5341
5342
5343 <b>8. Políticas de terceiros e atualizações desta política</b><br>
5344 Não somos responsáveis pelas práticas de privacidade de terceiros. Portanto, sempre quando você for direcionado a
5345 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
5346 terceiros por nós não controlados, recomendamos que você analise as suas respectivas declarações de privacidade,
5347 entrando diretamente em contato com o terceiro responsável em caso de dúvidas.
5348 <br><br>
5349 Poderemos, ocasionalmente, atualizar a presente Política. Sempre quando ocorrer alguma alteração material
5350 significativa, como sobre a finalidade para a qual tratamos os seus dados pessoais, bem como a forma e duração do
5351 tratamento, utilizaremos esforços razoáveis para que você tenha ciência das modificações.
5352 <br><br>
5353
5354
5355 <b>9. Dúvidas?</b><br>
5356 Se você tiver quaisquer dúvidas sobre esta Política ou como tratamos os seus dados pessoais, entre em contato pelo
5357 e-mail privacidade@sp.senac.br.
5358 <br><br>
5359 <b>Encarregado de Dados do Senac (DPO):</b><br>
5360 Fernando Sátiro Pereira<br>
5361 Gerente de Tecnologia da Informação do Senac São Paulo<br>
5362 Contato: privacidade@sp.senac.br
5363 <br><br>
5364 <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>
5365 <br><br>
5366
5367 </p>
5368
5369 </div>
5370
5371 <div class="ssp-card-registro-interesse__check-item">
5372 <input type="checkbox" name="" value="" id="check-politica-privacidade">
5373 <label for="check-politica-privacidade">Aceito a Política de Privacidade</label>
5374 </div>
5375
5376 <div class="text-center mt-5">
5377
5378 <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>
5379
5380 <p class="ssp-card-registro-interesse__aviso"><strong>Importante:</strong> O registro de interesse não garante a vaga.</p>
5381
5382 </div>
5383
5384 </div>
5385
5386 </#if>
5387 </section>
5388
5389 <section id="modal-registro-interesse-sucesso" class="ssp-modal-registro-interesse d-none">
5390
5391 <div class="ssp-card-msg-sucesso">
5392
5393 <div class="ssp-card-msg-sucesso__content">
5394 <i class="fas fa-exclamation-circle"></i>
5395 <p>Obrigado por registrar seu interesse!</p>
5396 <p>Acompanhe seu e-mail para ficar por dentro das novidades!</p>
5397 </div>
5398
5399 <div>
5400 <a class="btn btn-nivel ssp-card-msg-sucesso__btn" href="#" id="btn-voltar-home">Voltar para a home</a>
5401 </div>
5402
5403 </div>
5404
5405 </section>
5406
5407 <section id="modal-registro-interesse-erro" class="ssp-modal-registro-interesse d-none">
5408
5409 <div class="ssp-card-msg-erro">
5410
5411 <div class="ssp-card-msg-sucesso__content">
5412 <i class="fas fa-exclamation-circle" style="color: #ec3a3a;"></i>
5413 <p>Houve um erro ao registrar seu interesse!</p>
5414 <p>Por favor, tente novamente!</p>
5415 </div>
5416
5417 <div>
5418 <a class="btn btn-nivel ssp-card-msg-sucesso__btn" href="#">Voltar para a home</a>
5419 </div>
5420
5421 </div>
5422
5423 </section>
5424
5425 <!-- Aviso para curso de aprendizagem -->
5426
5427 <div id="aviso-curso-aprendizagem" class="ssp-bolsa-formulario__card-aviso-atencao d-none" style="width: 100%;">
5428
5429 <i class="fas fa-exclamation-circle ssp-bolsa-formulario__card-aviso-atencao-icon" aria-hidden="true"></i>
5430
5431 <div class="ssp-bolsa-formulario__card-aviso-texto">
5432 <p>Para contratar aprendiz, preencha o formulário e entraremos em contato.</p>
5433 </div>
5434
5435 </div>
5436
5437 <!-- modal form de aprendizagem -->
5438
5439 <#if isAprendizagem>
5440
5441 <#assign formId = 48097883 />
5442 <!-- formInstanceId é variável de acordo com o ID do formulário -->
5443 <#assign formPreferences = {"displayDepth": "1", "portletSetupPortletDecoratorId": "barebone", "formInstanceId": "formId"}/>
5444
5445 <section data-lfr-background-image-id="bg-programe-form" class="ssp-section ssp-section-lg-bottom" data-modal="modal">
5446
5447 <div class="container ssp_ct_form_programe">
5448
5449 <button type="button" data-modal="close-form-modal">
5450 fechar
5451 <i class="fas fa-times"></i>
5452 </button>
5453
5454 <@liferay_portlet["runtime"]
5455 portletName="com_liferay_dynamic_data_mapping_form_web_portlet_DDMFormPortlet"
5456 defaultPreferences=freeMarkerPortletPreferences.getPreferences(formPreferences)
5457 />
5458
5459 </div>
5460
5461 </section>
5462
5463 </#if>
5464
5465 <div id="avisoTrampolim" class="ssp-bolsa-formulario__card-aviso-atencao container text-left d-none" style="width: 100%;">
5466 <i class="fas fa-exclamation-circle ssp-bolsa-formulario__card-aviso-atencao-icon" aria-hidden="true"></i>
5467 <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>
5468 </div>
5469
5470 </div>
5471
5472
5473 <!--modal forma pagto extensao-->
5474 <section id="modalFormaPagtoExt" class="modal-extensao ssp-modal">
5475 <div class="modal-extensao_content">
5476 <i class="fas fa-undo modal-extensao-voltar-icon"><span class="modal-extensao-voltar-txticon">Voltar</span></i>
5477 <h1 class="modal-extensao-condicoes__title">Descontos e Parcelamento</h1>
5478 <div class="row">
5479
5480 <!-- <button class="btn-preco-padrao d-xs-flex d-sm-flex d-lg-none d-xl-none">
5481 Preço Padrão
5482 <i class="fas fa-chevron-right custom-icon-right"></i>
5483 </button> -->
5484
5485 <div class="col-lg-6 col-sm-12 col-xs-12">
5486
5487 <h2 class="modal-extensao_subtitle">Investimento</h2>
5488
5489 <span class="modal-extensao_preco">R$ <span class="precoVendaOferta"></span></span>
5490 <span class="modal-extensao_txteconomiza">.<b class="modal-extensao_txtverde"></b></span>
5491 <div class="modal-extensao_ctboleto pt-2 pb-2 mb-3">
5492 <i class="fas fa-barcode" aria-hidden="true"></i>
5493 <span class="modal-extensao_txtPag">Boleto Bancário</span>
5494 <span class="modal-extensao_txtParcela"><b><span class="numParcelaBoleto"></span>x de R$ <span class="precoParcelaBoleto"></span></b></span>
5495 <span class="modal-extensao_txtParcela">sem juros</span>
5496 </div>
5497 <div class="modal-extensao_ctcard pt-2 pb-2 mb-3">
5498 <i class="far fa-credit-card" aria-hidden="true"></i>
5499 <span class="modal-extensao_txtPag">Cartão de Crédito</span>
5500 <span class="modal-extensao_txtParcela"><b><span class="numParcelaCartoes"></span>x de R$ <span class="precoParcelaCartoes"></span></b></span>
5501 <span class="modal-extensao_txtParcela">sem juros</span>
5502 </div>
5503 <p class="modal-extensao_txtParcela pt-5"><b>À vista:</b> R$ <span class="precoAVistaPadraoExt"></span> <span class="modal-extensao_txtporcent">(-8%)</span></p>
5504 </div>
5505
5506 <!-- <hr class="ssp-divisor d-xs-block d-sm-block d-lg-none d-xl-none"> -->
5507
5508 <!-- <button class="btn-preco-ex-aluno d-xs-flex d-sm-flex d-lg-none d-xl-none">
5509 Preço para Contribuintes,<br>alunos e ex-alunos*
5510 <i class="fas fa-chevron-right custom-icon-right"></i>
5511 </button> -->
5512
5513 <div class="col-lg-6 col-sm-12 col-xs-12">
5514 <h2 class="modal-extensao_subtitle mt-4">Valor com 20% de desconto para alunos, ex-alunos e contribuintes Senac</h2>
5515 <span class="modal-extensao_preco">R$ <span class="precoContrExt"></span></span>
5516 <span class="modal-extensao_txteconomiza">Você economiza <b class="modal-extensao_txtverde">R$ <span class="economiaExt"></span> (-20%)</b></span>
5517 <div class="modal-extensao_ctboleto pt-2 pb-2 mb-3">
5518 <i class="fas fa-barcode" aria-hidden="true"></i>
5519 <span class="modal-extensao_txtPag">Boleto Bancário</span>
5520 <span class="modal-extensao_txtParcela"><b><span class="numParcelaBoleto"></span>x de R$ <span class="precoParcelaBoletoExt"></span></b></span>
5521 <span class="modal-extensao_txtParcela">sem juros</span>
5522 </div>
5523 <div class="modal-extensao_ctcard pt-2 pb-2 mb-3">
5524 <i class="far fa-credit-card" aria-hidden="true"></i>
5525 <span class="modal-extensao_txtPag">Cartão de Crédito</span>
5526 <span class="modal-extensao_txtParcela"><b><span class="numParcelaCartoes"></span>x de R$ <span class="precoParcelaCartoesExt"></span></b></span>
5527 <span class="modal-extensao_txtParcela">sem juros</span>
5528 </div>
5529 <p class="modal-extensao_txtParcela pt-5"><b>À vista:</b> R$ <span class="precoAVistaContrExt"></span> <span class="modal-extensao_txtporcent">(-8%)</span></p>
5530 </div>
5531 <div class="col-lg-6 col-sm-12 col-xs-12">
5532 <a target="_blank" href="#">
5533 <button class="btn modal-extensao__btn mt-3 text-uppercase">Comprar</button>
5534 </a>
5535 </div>
5536 <div class="col-lg-6 col-sm-12 col-xs-12">
5537 <button class="btn btn-primary modal-extensao-btn-conheca mt-3" >Conheça os descontos</button>
5538 </div>
5539 </div>
5540 </div>
5541
5542 <div class="modal-extensao_content modal-pergunta-aluno-ext d-none">
5543
5544 <i class="fal fa-times modal-extensao-voltar-icon" style="font-size:25px;"></i>
5545 <h1 class="modal-extensao-condicoes__title">Você é nosso aluno?</h1>
5546 <div class="row">
5547 <div class="col-6 text-right">
5548
5549 <button class="btn btn-primary modal-extensao-btn-aluno-sim-nao sim mt-3">Sim</button>
5550
5551 </div>
5552 <div class="col-6 text-left">
5553
5554 <button class="btn btn-primary modal-extensao-btn-aluno-sim-nao nao mt-3">Não</button>
5555
5556 </div>
5557 </div>
5558 <div class="row d-none msg-alunoSim">
5559 <div class="col-12 text-center mt-10">
5560 <i class="fas fa-check-circle modal-extensao-ico-check"></i>
5561 <h2 class="modal-extensao-condicoes__subtitle">Boa notícia!</h2>
5562 <p class="modal-extensao-aluno_txtcontent">Você tem 20% de desconto neste curso.<br> Faça seu login e preencha os dados solicitados.</p>
5563 <p class="mb-0">
5564 <a target="_blank" href="#">
5565 <button class="btn modal-extensao-aluno__btn ok mt-3">Fazer Inscrição</button>
5566 </a>
5567 </p>
5568 <p class="mt-0">
5569 <a href="https://www.sp.senac.br/descontos-e-parcelamentos/pos-e-extensao-universitaria">
5570 <button class="btn btn-primary modal-extensao-btn-conferir mt-3" id="btn-conferir-regras">Conferir Regras</button>
5571 </a>
5572 </p>
5573 </div>
5574 </div>
5575 <div class="row d-none msg-alunoNao">
5576 <div class="col-12 text-center mt-10">
5577 <i class="fas fa-percentage modal-extensao-ico-percent"></i>
5578 <h2 class="modal-extensao-condicoes__subtitle">Poxa! Não fique triste...</h2>
5579 <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>
5580 <p class="mb-0">
5581 <a target="_blank" href="#">
5582 <button class="btn modal-extensao-aluno__btn not mt-3">Fazer Inscrição</button>
5583 </a>
5584 </p>
5585 <p class="mt-0">
5586 <a href="https://www.sp.senac.br/descontos-e-parcelamentos/pos-e-extensao-universitaria">
5587 <button class="btn btn-primary modal-extensao-btn-conferir mt-3" id="btn-conferir-regras">Conferir Regras</button>
5588 </a>
5589 </p>
5590 </div>
5591 </div>
5592 </div>
5593 </section>
5594
5595
5596 <!-- Modal Descontos e Parcelamento EMED -->
5597 <div id="modalPagtoEmed" class="ssp-modal">
5598
5599 <div class="ssp-card-modal-forma-pagamento">
5600
5601 <div class="ssp-card-modal-forma-pagamento__header">
5602 <h6 class="ssp-card-modal-forma-pagamento__header-title font-weight-bold text-center" style="color:#454F63">Descontos e parcelamentos</h6>
5603 <div class="ssp-modal-emed-btfechar">
5604 <i class="ssp-card-modal-forma-pagamento__btn-close ssp-card-modal-forma-pagamento__btn-close_0"></i>
5605 <span>Fechar</span>
5606 </div>
5607 </div>
5608
5609 <div class="ssp-card-modal-forma-pagamento__body">
5610
5611 <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>
5612
5613 <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>
5614 <span class="ssp-card-modal-emed-ano">/ano</span></p>
5615
5616 <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>
5617 <div class="ssp-card-modal-emed-lineou"><span>ou</span></div>
5618
5619 <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>
5620
5621 <div class="ssp-card-modal-forma-pagamento__tipos">
5622
5623 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start ssp-card-modal-emed-centralizaPagtos" style="margin:0 auto" >
5624 <i class="ssp-card-modal-forma-pagamento__icon-boleto-cartao"></i>
5625 <div class="ssp-card-modal-forma-pagamento__info-cartao">
5626 <p><strong>Cartão de Crédito +</strong></p>
5627 <p><strong>Boleto Bancário</strong></p>
5628 <!-- <p>1ª parcela em <span>até 4x de R$ <span class="valorParcelaEntradaCartoesBoleto">265,50</span></span> sem juros no cartão</p> -->
5629 <p>1ª parcela no cartão</p>
5630 <p>Valor restante em <span>até <span class="numParcelaCartoesBoleto"></span>x de <br>R$ <span class="precoParcelaCartoesBoleto"></span></span> sem juros no boleto</p>
5631 </div>
5632 </div>
5633
5634
5635 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start ssp-card-modal-emed-centralizaPagtos" style="margin:0 auto" >
5636 <i class="ssp-card-modal-forma-pagamento__icon-credit-card"></i>
5637 <div class="ssp-card-modal-forma-pagamento__info-cartao">
5638 <p><strong>Cartão de Crédito</strong></p>
5639 <p>(<span class="textoCartoesAceitos">Mastercard, Visa, Elo, American Express, Hipercard</span>)</p>
5640 <p>Em até <span><span class="numParcelaCartoes">12</span>x de R$ <span class="precoParcelaCartoes">34,53</span></span> sem juros</p>
5641 </div>
5642 </div>
5643
5644 <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">
5645 <i class="ssp-card-modal-forma-pagamento__icon-boleto"></i>
5646 <div class="ssp-card-modal-forma-pagamento__info-cartao">
5647 <p><strong>Boleto Bancário</strong></p>
5648 <p>Em até <span><span class="numParcelaBoleto">12</span>x de R$ <span class="precoParcelaBoleto">34,53</span></span> sem juros</p>
5649 </div>
5650 </div>
5651
5652 <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>
5653
5654 <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>
5655 - Estuda ou estudou no Senac<br>
5656 - É dependente de quem trabalha em empresa contribuinte do Senac<br>
5657 - Estuda ou estudou na rede pública de ensino
5658 </p>
5659
5660 </div>
5661
5662 </div>
5663
5664
5665 <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>
5666
5667
5668
5669 </div>
5670 </div>
5671
5672 <#if isEMED>
5673 <div id="modalAntesCompraEmed" class="ssp-modal">
5674 <div class="ssp-modal-local-realizacao">
5675 <div class="ssp-modal-local-realizacao__title-content">
5676 <h6 class="ssp-modal-local-realizacao__title" style="padding-left:10%;">IMPORTANTE!</h6>
5677 <i class="ssp-card-modal-antes-compra__btn-close ssp-card-modal-forma-pagamento__btn-close"></i>
5678 </div>
5679 <div class="ssp-modal-local-realizacao__texto">
5680 <p class="texto-modal-emed textoEmedModalAntesCompra0010 d-none">
5681
5682 Esta matrícula é válida apenas para a compra do curso de acordo com a escola e o horário já selecionados.<br/>
5683
5684 </p>
5685 <p class="texto-modal-emed textoEmedModalAntesCompra0010Espera d-none">
5686
5687 Saiba como funciona a inscrição para a lista de espera:<br/><br/>
5688 - É válida somente para a <b>compra do curso</b><br/>
5689 - Não garante vaga para o estudante<br/>
5690 - É válida apenas para o curso, horário e escola selecionados<br/>
5691 - Caso surjam vagas, você receberá um e-mail para fazer a matrícula<br/>
5692
5693 </p>
5694 <p class="texto-modal-emed textoEmedModalAntesCompra0020e0030 d-none">
5695
5696 - 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/>
5697 - A inscrição só pode ser solicitada para quem deseja estudar no Senac realizando a compra do curso<br/><br/>
5698 - 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
5699
5700 </p>
5701 <div class="btn ssp-modal-local-realizacao__btn-content">
5702 <button class="btn btn-lg btn-success w-100 mt-3" offercode="" id="btnCompraLocalEmed">Continuar para compra</button>
5703 <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>
5704 </div>
5705 </div>
5706 </div>
5707 </div>
5708
5709 </#if>
5710
5711
5712
5713
5714 <script>
5715 let showedFilters = false
5716 var groupId = themeDisplay.getScopeGroupId();
5717
5718 var urlSearchCursosPorCategory = '/o/senac-curso-services/cursosPorCategoryIds/{groupId}?categoryIds={categoryId}&start=0&end={limit}';
5719
5720 var urlSearchOferta = '/o/senac-oferta-services/ofertasPorCategoryIds/' + groupId
5721
5722 var urlSearchUnidade = '/o/senacsearch/Unidade/{companyId}/{groupId}/{userId}?q=codigoUnidade_pt_BR:{codigoUnidade}';
5723 var urlUnidadeInfoDetalhe = '/o/senac-content-services/unidadeInfoDetalhe/{companyId}/{codigoUnidade}';
5724 var urlSearchCursosPodeGostar = '/o/senac-content-services/cursosVocePodeGostar/{companyId}/{groupId}/{userId}/{articleId}/{limit}';
5725 var urlSearchCursoInfo = '/o/senac-content-services/cursosInfoDetalhe/{groupId}/{cursosInfo}?inscricaoAberta={inscricaoAberta}&bolsaAberta={bolsaAberta}&buscarUnidadesComOferta={buscarUnidadesComOferta}';
5726 var urlRegistroInteresse = '/o/senac-content-services/registroInteresse/';
5727 var urlRegistroInteresseEmailInteressado = '/o/senac-content-services/envioEmailRegistroInteresse/';
5728 var cntSelectUnidades = 1;
5729 var urlPlanoCurso = 'https://www.sp.senac.br/jsp/includeMatdid.jsp?file=/ha1shared/projects/matdid/{codigoFT}-{dataEfetiva}.html';
5730 var urlGetServerT = '/o/senac-content-services/getServerTime';
5731 var urlSearchCursosPodeGostarEmed = '/o/senac-curso-services/cursosPorCategoryIdsFilterAndOr/{groupId}/?categoryIdsOr={tiposDeCurso}&start=0&end={limit}&articleId={articleId}';
5732 var todayG = '';
5733 var codigoFTCursoAprendizagem = 18984;
5734 var globalGroupId = Liferay.ThemeDisplay.getCompanyGroupId();
5735 var isAoVivo = 0;
5736 var nomeFormatoAoVivoDxp = 'Senac Online - ao vivo';
5737 var ofertaUnidadeMap = new Map();
5738 var ultimaUnidade = 0;
5739 var regIndex = new RegExp('\{index\}', 'g');
5740 var linkBotaoCompra = 'http://www.sp.senac.br/login/Login?destino=/ecommerceFrontEnd/?vcw_unidade={codigoUnidade}&vcw_evento={codigoOferta}';
5741 var carregouUltimaOferta = false;
5742 var ofertasMap = new Map();
5743 var codUnidadeSenacAoVivo = '108';
5744 var ofertasComBolsa = false;
5745
5746 //funcao para pegar host do ambiente, se eh teste ou prod (utilizado no servico da bolsa)- 9546
5747 function getServiceEnvironmentHost(){
5748 if(!isAmbienteTeste())
5749 return window.location.origin
5750 else
5751 return 'https://gesportal.sp.senac.br'
5752 }
5753
5754 var hostBolsa = getServiceEnvironmentHost()
5755
5756 // Montar object push - google tag manager - 1
5757 let itensEcommerce = null;
5758 let ofertaSelecionada = null;
5759
5760 const today = new Date;
5761
5762 //categoryId -> cod unidade
5763 var mapUnidadesIds = new Map();
5764 var objsTela = {
5765 unidades: [],
5766 unidadesRegistroInteresse: [],
5767 categoriesIds:[],
5768 ofertasAoVivoTodasUnidades: [],
5769 primeiroChange: true
5770 };
5771 var startOfertaParam = 0;
5772 var endOfertaParam = 25;
5773
5774 var ehCursoTrampolim = false;
5775
5776 const isHibrido = $('input[name="formato"]').data('formato') === 'Presencial + EAD';
5777
5778 var textoFormatoHibrido = "";
5779 var temTextoParaFormatoHibrido = false;
5780
5781 //Validar se o campo textoFormatoHibrido existe e se não está vazio
5782 if(isHibrido){
5783 textoFormatoHibrido = $('input[name="textoFormatoHibrido"]').val();
5784 if(typeof textoFormatoHibrido !== 'undefined'){
5785 if (textoFormatoHibrido.trim() !== '' ) {
5786 temTextoParaFormatoHibrido = true;
5787 textoFormatoHibrido += '<br>';
5788 }
5789 }
5790 }
5791
5792 const HOST = window.location.origin;
5793 const URLGeral = window.location.href;
5794
5795 //EMED
5796 const anoTurmaEmed = '2026';
5797
5798 const tipoCursoNome = function(){ return $('.ssp-header-curso__tag-formato').text().trim(); }
5799
5800 const isEmed = (tipoCursoNome().indexOf('Ensino Médio Técnico') > -1);
5801
5802 const statusEmed = Object.freeze({
5803 NAO_ENCONTRADA: 0,
5804 INSCRICAO: 1,
5805 ESPERA: 2,
5806 ESGOTADO: 3
5807 });
5808
5809 let unidadesToURL = []
5810
5811 const localLivreOnline = function(textoLocal){
5812 textoLocal = textoLocal || ''
5813 textoLocal = textoLocal.replaceAll('online', 'on-line')
5814
5815 const textoOnline = 'Nesta turma, todas as aulas serão on-line e ao vivo pela plataforma digital Microsoft Teams';
5816
5817 return textoLocal.toUpperCase().includes(textoOnline.toUpperCase());
5818 }
5819
5820 const linkBolsa = function(oferta){
5821
5822 let tiposCurso = new Map();
5823 tiposCurso.set('livre', 'L');
5824 tiposCurso.set('tecnico', 'T');
5825 tiposCurso.set('aprendizagem', 'A');
5826 let letraTipoCurso = tiposCurso.get($('[name="tipoCurso"]').val()) || '';
5827
5828 // verifica o campo destinoBolsa da oferta - 9546
5829 var destinoBolsa = ""
5830 if(oferta.destinoBolsa){
5831 destinoBolsa = parseInt(oferta.destinoBolsa,10)
5832 }
5833
5834 return hostBolsa+'/login/Login?origem=bolsas&destino=/jsp/default.jsp?template=2464.dwt&testeira=1540&idcourse='+
5835 $('[name="codigoFT"]').val()+
5836 '&cod_evento='+
5837 oferta.codigoOferta+
5838 '&cod_u='+
5839 codigoUnidade+
5840 '&nvg='+
5841 oferta.qtdeTotalVagasPSG+
5842 '&type='+
5843 letraTipoCurso+
5844 '&sel_unit=&ft=y'+
5845 (destinoBolsa ? '&destino='+destinoBolsa : '');
5846 }
5847
5848
5849 $('.ssp-ofertas-emed__filtro-content .btn').on('click', function(){
5850
5851 var classAtivo = 'btn--filtro-ativo';
5852
5853 if(!$(this).hasClass(classAtivo)){
5854
5855 $(this).siblings().removeClass(classAtivo);
5856
5857 $(this).addClass(classAtivo);
5858
5859 const $cardTransferencias = $('.card-transferencias-emed');
5860
5861 if($(this).val() == '0'){
5862 hideCardSemTurmas(true);
5863 $('.ssp-slick-ofertas-emed').empty();
5864 if(!$('.ssp-slick-ofertas-emed').hasClass('d-none')) $('.ssp-slick-ofertas-emed').addClass('d-none');
5865 $('.prev-mobile, .next-mobile').addClass('d-none');
5866 $cardTransferencias.removeClass('d-none');
5867 } else{
5868 if(!$cardTransferencias.hasClass('d-none')) $cardTransferencias.addClass('d-none');
5869 $('.ssp-slick-ofertas-emed').removeClass('d-none');
5870 populaOfertas(objsTela.ofertas);
5871 }
5872
5873 }
5874
5875 });
5876
5877 //Cronometro
5878 var hidden, visibilityChange;
5879 var restartTimeout = null;
5880 var interval01, interval15;
5881
5882 if (typeof document.hidden !== "undefined") { // Opera 12.10 and Firefox 18 and later support
5883 hidden = "hidden";
5884 visibilityChange = "visibilitychange";
5885 } else if (typeof document.msHidden !== "undefined") {
5886 hidden = "msHidden";
5887 visibilityChange = "msvisibilitychange";
5888 } else if (typeof document.webkitHidden !== "undefined") {
5889 hidden = "webkitHidden";
5890 visibilityChange = "webkitvisibilitychange";
5891 }
5892
5893 // Verifica suporte a Visibility API
5894 if (typeof document.addEventListener === "undefined" || hidden === undefined) {
5895 console.log("Navegador incompativel com page visibility api");
5896 } else {
5897 // Evento para quando a visibilidade da pagina mudar
5898 document.addEventListener(visibilityChange, handleVisibilityChange, false);
5899 }
5900
5901 $(".ssp-saiba-mais-curso-accordion").on("click", ".ssp-saiba-mais-curso-accordion__heading", function() {
5902
5903 $(this).toggleClass("active").next().slideToggle();
5904
5905 $(".sp-saiba-mais-curso-accordion__contents").not($(this).next()).slideUp(300);
5906
5907 $(this).siblings().removeClass("active");
5908 });
5909
5910 function loadUnidadesRegistroInteresse(urlCursoInfo) {
5911 if(objsTela.unidadesRegistroInteresse && objsTela.unidadesRegistroInteresse.length)
5912 return
5913
5914 let urlUnidades = new URL(window.location.origin + urlCursoInfo)
5915 let paramsUnidades = new URLSearchParams(urlUnidades.search)
5916 paramsUnidades.delete('inscricaoAberta')
5917 paramsUnidades.delete('bolsaAberta')
5918 paramsUnidades.delete('buscarUnidadesComOferta')
5919 urlUnidades.search = '?' + paramsUnidades.toString()
5920 urlUnidades = urlUnidades.href
5921
5922 $.ajax({
5923 url: urlUnidades,
5924 method:'get',
5925 async: false
5926 }).done(function(data){
5927 if(data.length > 0){
5928 const cursoInfo = JSON.parse(data);
5929 const unidadesOfertantes = cursoInfo.unidadesOfertantes;
5930
5931 $.each(unidadesOfertantes, function(k,item){
5932 var unidade = {};
5933 unidade['categoryId'] = item['categoryId'];
5934 unidade['codigoUnidade'] = item['codigoUnidade'];
5935 unidade['nome'] = item['nomeUnidade'];
5936 unidade['enderecoUnidade'] =item['enderecoUnidade'];
5937 unidade['numero'] =item['numEnderecoUnidade'];
5938 unidade['complemento'] = item['complementoEnderecoUnidade'];
5939 unidade['bairro'] = item['bairroUnidade'];
5940 unidade['googlemapsUnidade'] = item['googlemapsUnidade'];
5941 unidade['friendlyURL'] = item['friendlyURL'];
5942 unidade['selecionado'] = false;
5943 unidade['selectSelecionado'] = "";
5944 unidade['ofertas'] = [];
5945
5946 if(!objsTela.unidadesRegistroInteresse.filter(uni => uni['categoryId'] == unidade['categoryId']).length)
5947 objsTela.unidadesRegistroInteresse.push(unidade)
5948 });
5949 }
5950 });
5951 }
5952
5953 function loadUnidades(showOptions, unidadeValue){
5954 //Busca as unidades do curso
5955 let buscarUnidadesComOferta = false;
5956
5957 if( !isEmed && ( !$('#chkInscricao').prop('checked') && !$('#chkBolsa').prop('checked')))
5958 buscarUnidadesComOferta = true;
5959
5960 const urlCursoInfo = urlSearchCursoInfo
5961 .replace('\{groupId\}', groupId)
5962 .replace('\{cursosInfo\}', $('[name="articleId"]').val())
5963 .replace('\{inscricaoAberta\}', $('#chkInscricao').prop('checked'))
5964 .replace('\{bolsaAberta\}', $('#chkBolsa').prop('checked'))
5965 .replace('\{buscarUnidadesComOferta\}', buscarUnidadesComOferta);
5966
5967 loadUnidadesRegistroInteresse(urlCursoInfo)
5968
5969 $.ajax({
5970 url:urlCursoInfo,
5971 method:'get',
5972 async: false,
5973 beforeSend: function () {
5974 loading('.oferta-slick-area');
5975 }
5976 }).done(
5977 function(data){
5978
5979 if(data.length > 0){
5980
5981 const cursoInfo = JSON.parse(data);
5982
5983 const unidades = buscarUnidadesComOferta ? cursoInfo.unidadesComOferta : cursoInfo.unidadesOfertantes;
5984
5985 if(!isAoVivo && (!buscarUnidadesComOferta || unidades.length > 0))
5986 $('.ssp-container-selecione-unidade').removeClass('d-none')
5987
5988 objsTela.unidades = []
5989 mapUnidadesIds = new Map();
5990
5991 $.each(unidades, function(k,item){
5992
5993 var unidade = cloneObj(item)
5994 unidade['nome'] = item['nomeUnidade'];
5995 unidade['numero'] =item['numEnderecoUnidade'];
5996 unidade['complemento'] = item['complementoEnderecoUnidade'];
5997 unidade['bairro'] = item['bairroUnidade'];
5998 unidade['ofertas'] = [];
5999
6000 objsTela.unidades.push(unidade);
6001
6002 mapUnidadesIds.set(unidade['categoryId'], unidade['codigoUnidade']);
6003
6004 objsTela.unidades.forEach(unidade => unidadesToURL.filter(u => u.friendlyURL == unidade.friendlyURL).length ? '' : unidadesToURL.push(unidade))
6005 });
6006
6007
6008 populaSelectUnidades(undefined, showOptions, unidadeValue);
6009
6010 }
6011 });
6012
6013 }
6014
6015function getOfertaObjectFromJson(ofertaJSON,index){
6016
6017
6018 var oferta = {};
6019 var xml = $($.parseXML(ofertaJSON.content));
6020 oferta['ordenar'] = paramOrdem(xml);
6021 oferta['vagasTotal'] = xml.find('[name="vagasTotal"]').text().trim();
6022 var dataInicio = xml.find('[name="dataInicioOferta"]').text().split('-');
6023 var dataFim =xml.find('[name="dataFimOferta"]').text().split('-');
6024 oferta['dataInicio'] = dataInicio[2].trim()+'/'+dataInicio[1].trim()+'/'+dataInicio[0].trim();
6025 oferta['dataFim'] = dataFim[2].trim()+'/'+dataFim[1].trim()+'/'+dataFim[0].trim();
6026 oferta['horaInicio'] = xml.find('[name="horaInicioOferta"]').text();
6027 oferta['codigoOferta'] = xml.find('[name="codigoOferta"]').text().trim();
6028 var dias = [];
6029 oferta['horaFimOferta'] = xml.find('[name="horaFimOferta"]').text().trim();
6030 xml.find('[name="diasDaSemanaOferta"]').find('option').each(function(index,dia){
6031 dias.push($(dia).text());
6032 });
6033 oferta['diasDaSemanaOferta'] = dias;
6034 oferta['periodoDiaOferta'] = xml.find('[name="periodoDiaOferta"]').text().trim();
6035 oferta['precoCheioOferta'] = xml.find('[name="precoCheioOferta"]').text().trim();
6036 oferta['precoVendaOferta'] = xml.find('[name="precoVendaOferta"]').text().trim();
6037 oferta['numeroMaxParcelasOferta'] = xml.find('[name="numeroMaxParcelasOferta"]').text().trim();
6038
6039 oferta['textoCartoesAceitos'] = pegarTextoCartoesAceitos(xml.find('[name="formaDePagamentoCartaoOferta"]').text().trim());
6040 oferta['numParcelaCartoes'] = pegaNumParcela(xml.find('[name="formaDePagamentoCartaoOferta"]').text().trim());
6041 oferta['precoParcelaCartoes'] = pegaValorParcela(xml.find('[name="formaDePagamentoCartaoOferta"]').text().trim());
6042 oferta['numParcelaBoleto'] = pegaNumParcela(xml.find('[name="formaDePagamentoBoletoOferta"]').text().trim());
6043 oferta['precoParcelaBoleto'] = pegaValorParcela(xml.find('[name="formaDePagamentoBoletoOferta"]').text().trim());
6044
6045 oferta['precoVendaMaxParcelaOferta'] = xml.find('[name="precoVendaMaxParcelaOferta"]').text().trim();
6046 oferta['formaDePagamentoOferta'] = xml.find('[name="formaDePagamentoOferta"]').text().trim();
6047 oferta['botaoCompraOferta'] = xml.find('[name="botaoCompraOferta"]').text().trim();
6048 oferta['vagasParaCompraOferta'] = xml.find('[name="vagasParaCompraOferta"]').text().trim();
6049 oferta['botaoBolsaOferta'] = xml.find('[name="botaoBolsaOferta"]').text().trim();
6050 oferta['vagasBolsaOferta'] = xml.find('[name="vagasBolsaOferta"]').text().trim();
6051 oferta['dataAberturaBolsaOferta'] = xml.find('[name="dataAberturaBolsaOferta"]').text().trim();
6052 oferta['horaAberturaBolsaOferta'] = xml.find('[name="horaAberturaBolsaOferta"]').text().trim();
6053 oferta['espacoExterno'] = xml.find('[name="espacoExterno"]').text().trim();
6054 oferta['localEspacoExterno'] = xml.find('[name="localEspacoExterno"]').text().trim();
6055 oferta['ruaEspacoExterno'] = xml.find('[name="ruaEspacoExterno"]').text().trim();
6056 oferta['numeroEspacoExterno'] = xml.find('[name="numeroEspacoExterno"]').text().trim();
6057 oferta['complementoEspacoExterno'] = xml.find('[name="complementoEspacoExterno"]').text().trim();
6058 oferta['bairroEspacoExterno'] = xml.find('[name="bairroEspacoExterno"]').text().trim();
6059 oferta['cidadeEspacoExterno'] = xml.find('[name="cidadeEspacoExterno"]').text().trim();
6060 oferta['ufEspacoExterno'] = xml.find('[name="ufEspacoExterno"]').text().trim();
6061 oferta['cepEspacoExterno'] = xml.find('[name="cepEspacoExterno"]').text().trim();
6062 oferta['qtdeTotalVagas'] = xml.find('[name="qtdeTotalVagas"]').text().trim();
6063 oferta['qtdeTotalVagasPSG'] = xml.find('[name="qtdeTotalVagasPSG"]').text().trim();
6064 oferta['horariosAllOferta'] = xml.find('[name="horariosAllOferta"]').text().trim();
6065 oferta['formaDePagamentoCartaoOferta'] = xml.find('[name="formaDePagamentoCartaoOferta"]').text().trim();
6066 oferta['formaDePagamentoBoletoOferta'] = xml.find('[name="formaDePagamentoBoletoOferta"]').text().trim();
6067 oferta['dtLimiteMatricula'] = xml.find('[name="dtLimiteMatricula"]').text().trim();
6068 oferta['dataAberturaMatricula'] = xml.find('[name="dataAberturaMatricula"]').text().trim();
6069 oferta['etapa'] = xml.find('[name="etapa"]').text().trim();
6070 oferta['destinoCompra'] = xml.find('[name="destinoCompra"]').text().trim();
6071 //adicao do destinoBolsa na oferta - 9546 - 11/07/2022
6072 oferta['destinoBolsa'] = xml.find('[name="destinoBolsa"]').text().trim();
6073
6074 // 18/07/2025 - Removido o dataAberturaBolsaOferta recebendo o dataAberturaMatricula
6075 // devido a mudança de regra que recebemos da área
6076
6077 return oferta;
6078 }
6079
6080 const getStatusEmed = (oferta) => {
6081
6082 const urlStatusEsperaEmed = () => {
6083 let url = (isAmbienteTeste()) ?
6084 'https://hinscricao-educacional-backend.sp.senac.br/api/lista-espera/'
6085 : 'https://inscricao-educacional-ms.sp.senac.br/api/lista-espera/';
6086
6087 return url + oferta.codigoOferta;
6088 }
6089
6090 const callTl = async () => {
6091 if(getCookie('tl') == null){
6092 return await $.ajax({
6093 url: '/o/senac-content-services/geraTokenServicosSenac',
6094 method: 'GET'
6095 });
6096 }
6097 return getCookie('tl');
6098 }
6099
6100 const callListaEspera = async () => {
6101 var tl = '';
6102 try{
6103 tl = await callTl();
6104 if(getCookie('tl') == null){
6105 tl = JSON.parse(tl).token;
6106 writeCookie('tl', tl, 6, '');
6107 }
6108 }catch(err){
6109 console.error(err);
6110 return {};
6111 }
6112
6113 return $.ajax({
6114 url: urlStatusEsperaEmed(),
6115 method: 'GET',
6116 beforeSend: function (xhr) {
6117 xhr.setRequestHeader("Authorization", tl);
6118 }
6119 })
6120 }
6121
6122 return new Promise(async function (resolve, reject) {
6123 const resp = await callListaEspera();
6124 if(typeof resp !== 'object') resp = JSON.parse(resp);
6125 let status = resp.STATUS;
6126 resolve(status);
6127 });
6128
6129 }
6130
6131 function getOfertasAoVivo(codigoFT, dataEfetivaOferta, categoryIds){
6132
6133 if(categoryIds && categoryIds.length) {
6134 var params = new URLSearchParams();
6135 params.set('codigoFTOferta',codigoFT)
6136 params.set('dataEfetivaOferta',dataEfetivaOferta)
6137 params.set('categoryIds',categoryIds)
6138 params.set('start',startOfertaParam)
6139 params.set('end',endOfertaParam)
6140 params.set('inscricaoAberta', $('#chkInscricao').prop('checked'))
6141 params.set('bolsaAberta', $('#chkBolsa').prop('checked'))
6142 params.set('cursoArticleId', $('[name="articleId"]').val() || '');
6143
6144 if($('#chkBolsa').prop('checked')){
6145 params.set('considerarDataBolsaFutura', true)
6146 }
6147 const url = urlSearchOferta + '?' + params.toString()
6148
6149 $.ajax({
6150 url:url,
6151 method:'get',
6152 dataType:'json',
6153 async: false
6154 }).done(
6155 function(data){
6156
6157 if(data.length > 0){
6158 $('#ssp-alternadores').show()
6159 showedFilters = true
6160
6161 objsTela.ofertasAoVivoTodasUnidades = []
6162
6163 data.forEach(function(ofertaJSON,index){
6164
6165 var oferta = getOfertaObjectFromJson(ofertaJSON,index);
6166
6167 //guardo em um map a oferta e qual unidade é, para utilizar depois no populaOferta para o aoVivo
6168 ofertaUnidadeMap.set(oferta['codigoOferta'],mapUnidadesIds.get(parseInt(ofertaJSON.unidadeCategoryIds)));
6169 objsTela.ofertasAoVivoTodasUnidades.push(oferta);
6170
6171 });
6172 } else {
6173 loadAlternadores(data)
6174 }
6175
6176 populaOfertas(objsTela.ofertasAoVivoTodasUnidades);
6177 addEventBolsa()
6178 }
6179 ).fail(function(e) {
6180 console.error(e)
6181 populaOfertas(objsTela.ofertasAoVivoTodasUnidades = []);
6182 })
6183 } else {
6184 loadAlternadores([])
6185 populaOfertas(objsTela.ofertasAoVivoTodasUnidades = [])
6186 }
6187
6188 if(isAoVivo) {
6189 if(objsTela.ofertasAoVivoTodasUnidades && objsTela.ofertasAoVivoTodasUnidades.length)
6190 hideCardSemTurmas(true)
6191 else
6192 hideCardSemTurmas(false)
6193 }
6194 }
6195
6196 function mudouToggleOferta(ofertas) {
6197 const oferta = ofertas && ofertas[0]
6198 if(!oferta)
6199 return true
6200
6201 const selecaoInscricao = $('#chkInscricao').prop('checked')
6202 const selecaoBolsa = $('#chkBolsa').prop('checked')
6203
6204 return oferta.selecaoInscricao != selecaoInscricao || oferta.selecaoBolsa != selecaoBolsa
6205 }
6206
6207 function loadAlternadores(ofertas) {
6208 if(showedFilters) {
6209 $('#ssp-alternadores').show()
6210 return
6211 }
6212
6213 if($('#unidades-ofertas').is(":hidden") || $('#unidades-ofertas option').length <= 1) {
6214 if(isAoVivo) {
6215 if(ofertas && ofertas.length)
6216 $('#ssp-alternadores').show()
6217 else {
6218 if(!$('#chkInscricao').prop('checked') && !$('#chkBolsa').prop('checked'))
6219 $('#ssp-alternadores').hide()
6220 else
6221 $('#ssp-alternadores').show()
6222 }
6223 } else {
6224 if(!$('#chkInscricao').prop('checked') && !$('#chkBolsa').prop('checked'))
6225 $('#ssp-alternadores').hide()
6226 else
6227 $('#ssp-alternadores').show()
6228 }
6229 } else
6230 $('#ssp-alternadores').show()
6231
6232 showedFilters = showedFilters || $('#ssp-alternadores').is(":visible")
6233 }
6234
6235 function getOfertas(codigoFT, dataEfetivaOferta, categoryId){
6236
6237 var indiceUnidade = -1;
6238 const selecaoInscricao = $('#chkInscricao').prop('checked')
6239 const selecaoBolsa = $('#chkBolsa').prop('checked')
6240
6241 for(var i = 0; i < objsTela.unidades.length; i++)
6242 if(objsTela.unidades[i].categoryId == categoryId)
6243 indiceUnidade = i;
6244
6245 ultimaUnidade = indiceUnidade;
6246
6247 if( !objsTela.categoriesIds.includes(categoryId) || mudouToggleOferta(objsTela.unidades[indiceUnidade]['ofertas'])){
6248 objsTela.unidades[indiceUnidade]['ofertas'] = []
6249
6250 var params = new URLSearchParams();
6251 params.set('codigoFTOferta',codigoFT)
6252 params.set('dataEfetivaOferta',dataEfetivaOferta)
6253 params.set('categoryIds',categoryId)
6254 params.set('start',startOfertaParam)
6255 params.set('end',endOfertaParam)
6256 params.set('inscricaoAberta', $('#chkInscricao').prop('checked'))
6257 params.set('bolsaAberta', $('#chkBolsa').prop('checked'))
6258 params.set('cursoArticleId', $('[name="articleId"]').val() || '');
6259
6260 if($('#chkBolsa').prop('checked')){
6261 params.set('considerarDataBolsaFutura', true)
6262 }
6263
6264 const url = urlSearchOferta + '?' + params.toString()
6265
6266 $.ajax({
6267 url:url,
6268 method:'get',
6269 dataType:'json',
6270 async: false
6271 }).done(
6272 function(data){
6273
6274 if(data.length > 0){
6275 $('#ssp-alternadores').show()
6276 showedFilters = true
6277
6278 $('.ssp-container-selecione-unidade').show();
6279
6280 data.forEach(function(ofertaJSON,index){
6281
6282 var oferta = getOfertaObjectFromJson(ofertaJSON,index);
6283
6284 //Preenche as ofertas da unidade
6285 objsTela.unidades[indiceUnidade]['ofertas'].push(oferta);
6286 objsTela.unidades[indiceUnidade]['ofertas'].forEach(o => {
6287 o.selecaoInscricao = selecaoInscricao
6288 o.selecaoBolsa = selecaoBolsa
6289 })
6290
6291 });
6292 } else {
6293 loadAlternadores()
6294 }
6295 objsTela.categoriesIds.push(categoryId);
6296 populaOfertas(objsTela.unidades[indiceUnidade]['ofertas']);
6297 addEventBolsa()
6298 }
6299 )
6300
6301 //Se estiver na cache, valida as ofertas
6302 }else{
6303
6304 populaOfertas(objsTela.unidades[indiceUnidade]['ofertas']);
6305
6306 }
6307 }
6308
6309 function populaSelectUnidades(unidades, showOptions, unidadeValue){
6310 var unidadePreSelecionada = false;
6311 var categoryIdUnidadePreSelecionada = '';
6312
6313 //Oredenacao
6314 objsTela.unidades.sort(function (a, b) {
6315 return ordenar(a, b, 'nome');
6316 });
6317
6318 objsTela.unidadesRegistroInteresse.sort(function (a, b) {
6319 return ordenar(a, b, 'nome');
6320 });
6321
6322 //console.log(objsTela.unidades);
6323
6324 $.each(objsTela.unidades, function(k,item){
6325
6326 if(getURLData().includes('/'+item.friendlyURL+'/')){
6327 unidadePreSelecionada= true;
6328 categoryIdUnidadePreSelecionada = item['categoryId'];
6329 }
6330 });
6331
6332 //console.log('Unidade Pre '+unidadePreSelecionada);
6333
6334 if(objsTela.unidades.length == 0){
6335 if(!showOptions)
6336 $('.ssp-container-selecione-unidade').addClass('d-none');
6337 $('.oferta-slick-area').empty();
6338 $('.prev-mobile').addClass('d-none');
6339 $('.next-mobile').addClass('d-none');
6340 //EMED remove msg registro interesse
6341 //if(isEmed) $('.ssp-card-oferta-curso__sem-vaga-description').addClass('d-none');
6342 }
6343
6344 if(isAoVivo){
6345
6346 const codigoFT = $('[name="codigoFT"]').val();
6347 const dataEfetivaOferta = $('[name="dataEfetivaSTR"]').val();
6348
6349 var unidadesCategoryAll = '';
6350
6351 $.each(objsTela.unidades, function(k,unidade){
6352 unidadesCategoryAll += unidade['categoryId']+',';
6353 });
6354
6355 //tirando ultima virgula
6356 unidadesCategoryAll = unidadesCategoryAll.substring(0,unidadesCategoryAll.length - 1);
6357
6358 getOfertasAoVivo(codigoFT, dataEfetivaOferta, unidadesCategoryAll);
6359
6360 }else{
6361 $('#unidades-ofertas').empty()
6362
6363 if(objsTela.unidades && objsTela.unidades.length){
6364 if(isEmed)
6365 $('#unidades-ofertas').append($('<option value="">Selecione uma unidade</option>'))
6366 else
6367 $('#unidades-ofertas').append($('<option value="">Clique na unidade de interesse</option>'))
6368
6369 } else
6370 $('#unidades-ofertas').append($('<option value="">Nenhum resultado encontrado</option>'))
6371
6372 let unidadeFounded = criarOptionUnidadesPorRegiao(objsTela.unidades)
6373
6374 //Dispara o evento para primeira unidade ou pela friendlyURl da unidade
6375 if(unidadeValue) {
6376 $('#unidades-ofertas').val(unidadeValue);
6377 $('#unidades-ofertas').change();
6378 } else if(unidadeFounded){
6379 $('#unidades-ofertas').val(unidadeFounded['categoryId']+"@"+unidadeFounded['codigoUnidade']);
6380 $('#unidades-ofertas').change();
6381 } else if(!unidadePreSelecionada) {
6382 $('#unidades-ofertas').change();
6383 }
6384
6385 $('.ssp-card-registro-interesse__select.unidades').empty()
6386 $('.ssp-card-registro-interesse__select.unidades').append('<option value="" disabled selected>Selecione uma unidade</option>')
6387 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
6388
6389 $('.ssp-card-registro-interesse__select.unidades').append('<option value="'+unidade['codigoUnidade']+'">'+unidade['nome']+'</option>');
6390 });
6391 }
6392
6393 }
6394
6395 function excecaoCursoGratuito(oferta){
6396 return $('[name="modalidadeName"]').val() == 'acoes-educ.-curta-duracao' && $('[name="tipoCurso"]').val() == 'livre' && (strToFloat(oferta.precoVendaOferta) == 0);
6397 }
6398
6399
6400 function mudarUnidade(ev){
6401 startOfertaParam = 0;
6402 endOfertaParam = 25;
6403 carregouUltimaOferta = false;
6404
6405 var elem = $(ev.target);
6406 var unidades = objsTela.unidades;
6407
6408 //verifica se selecionou alguma unidade
6409 if(!elem.val()){
6410 $('#informe-novas-turmas, .ssp-ofertas-emed__section, .ssp-ofertas__box-endereco-unidade').addClass('d-none');
6411
6412 if(isEmed)
6413 $('#ssp-section-response').addClass('d-none')
6414
6415 hideCardSemTurmas($('#unidades-ofertas option').length > 1)
6416
6417 elem.val('')
6418 habilitarRegistroInteresse(false)
6419 //Zera variável que controla existência de ofertas com bolsa
6420 ofertasComBolsa = false;
6421 controlaPaginaBolsa();
6422
6423 return;
6424 }
6425
6426 $('#informe-novas-turmas, .ssp-ofertas__box-endereco-unidade').removeClass('d-none');
6427 hideCardSemTurmas(true)
6428 if(isEmed){
6429 $('.ssp-ofertas-emed__section').removeClass('d-none');
6430 $('#ssp-section-response').removeClass('d-none')
6431 $('.ssp-card-oferta-curso__section-title').addClass('d-none');
6432 $('.prev-mobile, .next-mobile').addClass('d-none');
6433 var nomeUnidade = $('#unidades-ofertas option:selected').text();
6434 let tamScreen = $(window).width();
6435
6436 if(tamScreen < 1024)
6437 $('#titulo-emed').text('Turmas ' + anoTurmaEmed );
6438 else
6439 $('#titulo-emed').text('Turmas ' + anoTurmaEmed + ' - ' + nomeUnidade);
6440
6441 }
6442
6443 const codigoFT = $('[name="codigoFT"]').val();
6444 const dataEfetivaOferta = $('[name="dataEfetivaSTR"]').val();
6445
6446 //colocamos dentro do option categoryId@codUnidade
6447 splitted = elem.val().split("@");
6448 var categoryIdUnidade = splitted[0];
6449 var codUnidade = splitted[1];
6450
6451 for(var i = 0; unidades.length > i ; i++){
6452
6453 if(unidades[i].categoryId == categoryIdUnidade){
6454
6455 var unidade = unidades[i];
6456
6457 //Exibe o endereco da unidade
6458 const urlBuscaUnidade = urlUnidadeInfoDetalhe
6459 .replace('\{companyId\}',themeDisplay.getCompanyId())
6460 .replace('\{codigoUnidade\}', unidade.codigoUnidade);
6461
6462 $.ajax({
6463 url : urlBuscaUnidade,
6464 type : 'get',
6465 dataType: 'json',
6466 success: function( unidadeInfo ) {
6467 if(unidadeInfo != null && typeof unidadeInfo !== 'undefined'){
6468
6469 var endereco = concatSTR(unidadeInfo.enderecoUnidade,unidadeInfo.numEnderecoUnidade,', ');
6470 endereco = concatSTR(endereco,unidadeInfo.complementoEnderecoUnidade, ' - ');
6471 endereco = concatSTR(endereco,unidadeInfo.bairroUnidade, ' - ');
6472
6473 $('.ssp-ofertas__endereco-unidade').text(endereco);
6474 $('.ssp-ofertas__endereco-unidade').attr('href',unidadeInfo.googlemapsUnidade);
6475 }
6476 },
6477 error: function(data){
6478 $('.ssp-ofertas__endereco-unidade').text('');
6479 $('.ssp-ofertas__endereco-unidade').attr('href','#a');
6480 console.log('Unidade não encontrada');
6481 }
6482 })
6483
6484 getOfertas(codigoFT, dataEfetivaOferta, unidades[i].categoryId);
6485
6486 habilitarRegistroInteresse(!!(unidades && unidades.length));
6487
6488 }
6489 }
6490 }
6491
6492 function pegarTextoCartoesAceitos(campo){
6493 indice = campo.indexOf(' em até ');
6494 inicio = 0;
6495 fim = indice;
6496
6497 return campo.substring(inicio, fim);
6498 }
6499
6500 function pegaNumParcela(campo){
6501
6502 indice = campo.indexOf('até ');
6503 inicio = indice + 4;
6504 fim = indice + 6;
6505
6506 return campo.substring(inicio, fim);
6507
6508 }
6509
6510 function pegaValorParcela(campo){
6511
6512 indice = campo.indexOf('R$');
6513 inicio = indice+2;
6514 valorAmericano = campo.substring(inicio)
6515
6516 return formataValor(valorAmericano);
6517
6518 }
6519
6520 function montaHTMLOferta(oferta, index, codigoUnidade, posLoad){
6521
6522 var retornoDiasHorarios = processaDiasHorariosOferta(oferta.horariosAllOferta);
6523 diasSemanaHTML = "";
6524
6525 for(var diaDaOferta of retornoDiasHorarios){
6526 diasSemanaHTML += htmlSlickAreaDiasSemana.replace('\{diasSemana\}',diaDaOferta.dias);
6527 diasSemanaHTML = diasSemanaHTML.replace('\{horasSemana\}',diaDaOferta.horario)
6528 }
6529
6530 var ofertaHTML = "";
6531
6532 if(isEmed){
6533
6534 ofertaHTML = htmlSlickAreaEmed(oferta);
6535 $('[name="codUnidadeSelecionada"]').val(codigoUnidade);
6536
6537 if(!posLoad) $('.ssp-slick-ofertas-emed').append(ofertaHTML)
6538 else $('.ssp-slick-ofertas-emed').slick('slickAdd', ofertaHTML);
6539 }else{
6540
6541
6542 ofertaHTML = htmlSlickArea(index, oferta, diasSemanaHTML, codigoUnidade)
6543
6544 if(!posLoad)
6545 $('.oferta-slick-area').append(ofertaHTML);
6546 else
6547 $('.oferta-slick-area').slick('slickAdd', ofertaHTML);
6548
6549 ajustaTextoDiasHorarioOferta(oferta.codigoOferta);
6550
6551 }
6552
6553 if(turmasIniciadas(oferta.dataInicio))
6554 $("#aviso-turma-iniciada-"+index).show();
6555
6556 //remove os botões/itens de compra/bolsa caso seja preciso
6557 $('.oferta-slick-area').find('.d-none-btn').remove();
6558 }
6559
6560
6561 //RECEBE A STRING DE HORARIOS E RETORNA UMA LISTA DE OBJETOS COM OS DIAS E HORARIOS FORMATADOS
6562 //@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"
6563 function processaDiasHorariosOferta(horariosAllOferta){
6564
6565 var dias = horariosAllOferta.trim().split(',');
6566 let arrayDiasSemana = [{"Seg":"Segunda"},{"Ter":"Terça"},{"Qua":"Quarta"},{"Qui":"Quinta"},{"Sex":"Sexta"},{"Sab":"Sábado"},{"Dom":"Domingo"}]
6567
6568 var arrayDia = [];
6569 if(dias.length >= 1){
6570 for(var k=0; dias.length > k; k++){
6571 var diasSplit = dias[k].trim().split(' ');
6572 var diasSemana = diasSplit.shift()
6573 var ultimaPos = diasSplit.length-1;
6574 var horasStr = diasSplit[0] + ' às ' + diasSplit[ultimaPos]
6575 arrayDia.push({horasStr,diasSemana});
6576 }
6577 }
6578
6579 arrayDia = groupByArray(arrayDia, 'horasStr','diasSemana');
6580 arrayDia = orderByArray(arrayDia,arrayDiasSemana);
6581
6582 var ret = diaHorarioOfertaFormatado(arrayDia,arrayDiasSemana);
6583 return ret;
6584 }
6585
6586 //cria um array de objetos Agrupando de acordo ao campo informado como chave.
6587 //@arr = Array multidimensional que tenha os campos key e valueAdd
6588 //@key = campo que será chave nesse array
6589 //@valueAdd = campo que será agrupado caso tenha a mesma informação passada no campo key
6590 const groupByArray = (arr, key,valueAdd) => {
6591 const initialValue = [];
6592 const retornoValue = [];
6593 arr.forEach((acc, cval) => {
6594 const myAttribute = cval[key];
6595 acc[key] in retornoValue ? retornoValue[acc[key]].push(acc[valueAdd]):retornoValue[acc[key]]=[acc[valueAdd]];
6596 return acc;
6597 }, initialValue);
6598 return retornoValue;
6599 };
6600
6601
6602 //Cria um array de objetos a partir do primeiro array inserido e ordenados de acordo a ordem do segundo array informado.
6603 //@arrayOrdena = Array de objetos que tenha os campos que precisa ser ordenados
6604 //@ordem = array com a sequencia que queira ordenar - ex: seg, ter, qua, qua
6605 const orderByArray = (arrayOrdena, ordem) => {
6606
6607 let diasSem = [];
6608 const arrayOrdenado = [];
6609 let controle;
6610
6611 //percorre cada campo existente no ordem e busca o mesmo no arrayOrdena, encontrando insere no arrayOrdenado
6612 for(let campo of ordem){
6613 Object.entries(arrayOrdena).forEach(([key, value]) => {
6614 for(let diaOferta of value){
6615 if(diaOferta===Object.keys(campo)[0]){
6616 arrayOrdenado[key]=arrayOrdena[key];
6617 }
6618 }
6619 })
6620 }
6621 return arrayOrdenado;
6622 };
6623
6624 //retorna o valor de um objeto dentro de um array
6625 //@objetoBusca = array de objetos que sera buscado o valor
6626 //@keyBusca = nome do campo a ser buscada no objeto para pegar o seu valor
6627 function findValueInObject(objetoBusca, keyBusca){
6628 var retorno = "";
6629 Object.entries(objetoBusca).forEach(([horario, dias]) => {
6630 Object.entries(dias).forEach(([key,val]) => {
6631 if(key.trim()==keyBusca.trim()){
6632 retorno = val;
6633 }
6634 });
6635 });
6636 return retorno;
6637 }
6638
6639 //Recebe um objeto com valores dos dias da semana e define se sao dias seguidos ou alternados.
6640 //@arrayComDiasDaSemana = array com os dias da semana a serem validados - exemplo ['Qua','Qui','Sex']
6641 //@keyBusca = nome do campo a ser buscada no objeto para pegar o seu valor
6642 function diasSequenciaisOuAlternados(arrayComDiasDaSemana, arrayDiasDaSemana){
6643
6644 let arrayValidador = [];
6645
6646 //cria um array com o index dos dias das semanas encontrados [0 = seg, 1 = ter ... 6 = dom]
6647 for(let diaOferta of arrayComDiasDaSemana){
6648 for(let i = 0; i < arrayDiasDaSemana.length; i++){
6649 if(diaOferta === Object.keys(arrayDiasDaSemana[i])[0]){
6650 arrayValidador[i] = true;
6651 }
6652 }
6653 }
6654
6655 let keyCompair = 99;
6656 var sequencial = true;
6657
6658 //verifica quais posições foram criadas no array, e se os valores delas estão em sequencia.
6659 for(let keyValidator of Object.keys(arrayValidador)){
6660 keyValidator = parseInt(keyValidator);
6661 if(keyCompair!==99){
6662 if(keyValidator===keyCompair){
6663 sequencial = true;
6664 }else{
6665 sequencial = false;
6666 break;
6667 }
6668 }
6669 keyCompair = keyValidator+1;
6670 }
6671 return sequencial;
6672 }
6673
6674
6675 //Exibe as informações de dia e horario de oferta de acordo a sua estrutura
6676 //Caso os dias sejam sequenciais exibe a primeiro e ultimo dia da semana ligados com a letra 'a' Ex: Segunda a Quinta
6677 //Caso os dias Nao sejam sequenciais exibem todos os dias separados por virgula Ex: Segunda, terça, sexta e domingo
6678 //@arrayAgrupadoEOrdenado = array de objetos que sera exibido
6679 //@arrayDiasDaSemana = array com os dias da semana, sendo chave a sigla da semana (ex: Qua) e o valor o nome esperado (ex: Quarta)
6680 function diaHorarioOfertaFormatado(arrayAgrupadoEOrdenado, arrayDiasDaSemana){
6681
6682 var stringAux = "";
6683 var listRetorno = [];
6684
6685 Object.entries(arrayAgrupadoEOrdenado).forEach(([key, value]) => {
6686
6687 var sequencial = diasSequenciaisOuAlternados(value, arrayDiasDaSemana);
6688 var stringAux = "";
6689 var diaOferta = {};
6690
6691 if(sequencial){
6692 switch (value.length) {
6693 case 1:
6694 stringAux = stringAux+findValueInObject(arrayDiasDaSemana,value[0])+": ";
6695 diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula
6696 diaOferta.horario = key;
6697 break;
6698 case 2:
6699 stringAux = stringAux+findValueInObject(arrayDiasDaSemana,value[0])+" e "+findValueInObject(arrayDiasDaSemana,value[value.length-1])+": ";
6700 diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula
6701 diaOferta.horario = key;
6702 break;
6703 default:
6704 stringAux = stringAux+findValueInObject(arrayDiasDaSemana,value[0])+" a "+findValueInObject(arrayDiasDaSemana,value[value.length-1])+": ";
6705
6706 diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula
6707 diaOferta.horario = key;
6708 break;
6709 }
6710 }else{
6711 switch (value.length) {
6712 case 2:
6713 stringAux = stringAux+findValueInObject(arrayDiasDaSemana,value[0])+" e "+findValueInObject(arrayDiasDaSemana,value[value.length-1])+": ";
6714 diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula
6715 diaOferta.horario = key;
6716 break;
6717 default:
6718 var ct = 0;
6719 var stringDias="";
6720 for(let v of value){
6721 ct++;
6722 ct==value.length ? stringDias=stringDias.substring(0,stringDias.length - 2)+" e "+findValueInObject(arrayDiasDaSemana,v) : stringDias+=findValueInObject(arrayDiasDaSemana,v)+", ";
6723 }
6724 stringAux = stringAux+stringDias+": ";
6725 diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula
6726 diaOferta.horario = key;
6727 break;
6728 }
6729 }
6730
6731 listRetorno.push(diaOferta);
6732 })
6733 return listRetorno;
6734 };
6735
6736
6737 //Distribui dia e horario com quebra de linha entre eles ou nao dependendo da resolução de tela e tamanho da string
6738 function ajustaTextoDiasHorarioOferta(codOferta){
6739
6740 var classOferta = ".codigoOferta_"+codOferta;
6741 let oferta = $(classOferta);
6742
6743 let ofertaDiasSemana = $(oferta).find('*[data-dia-hora="dias-semana"]');
6744
6745 let widthDevice = window.screen.width;
6746 let tamLimDesktop = 185;
6747
6748 if(widthDevice <= 1024){
6749 tamLimDesktop = 180;
6750 }
6751
6752 ofertaDiasSemana.each(function(index){
6753
6754
6755 let widthDiaSemana = $(this).width();
6756
6757 let contentDiaHora = $(this).parent().parent().parent();
6758
6759 if(!(widthDiaSemana <= tamLimDesktop)){
6760 $(this).css("display","block");
6761 }
6762
6763 if(ofertaDiasSemana.length == parseInt(index+1)){
6764 contentDiaHora.css("opacity","1");
6765 }
6766
6767 })
6768 }
6769
6770 function getObjBtnComprar(oferta){
6771 let obj = {};
6772 obj['dataEspacoEx'] = (oferta.espacoExterno == 'true' || (isHibrido && temTextoParaFormatoHibrido)) ? 'true' : 'false';
6773 if($('#manutencao-compra').val()){
6774 obj['classeBotao'] = 'disabled manutencao';
6775 obj['textoBotao'] = $('#manutencao-compra').val();
6776 }
6777 else{
6778 obj['classeBotao'] = oferta.botaoCompraOferta == 'true' ? (oferta.vagasParaCompraOferta == 'true' ? '' : 'disabled') : 'd-none-btn';
6779 obj['textoBotao'] = oferta.vagasParaCompraOferta == 'true' ? 'COMPRAR' : 'Vagas esgotadas para compra';
6780 }
6781 return obj;
6782 }
6783
6784 function getObjFormaPagto(oferta,index,tipoCurso,codigoUnidade){
6785
6786 var formaPagtoObj = {};
6787
6788 var regNumMaxParce = new RegExp('\{numeroMaxParcelasOferta\}', 'g');
6789 var regPrecMaxParce = new RegExp('\{precoVendaMaxParcelaOferta\}', 'g')
6790
6791 formaPagtoObj['regIndex'] = index;
6792 formaPagtoObj['precoCheioOferta'] = formataValor(oferta.precoCheioOferta);
6793 formaPagtoObj['textoCartoesAceitos'] = oferta.textoCartoesAceitos;
6794
6795 formaPagtoObj['numParcelaCartoes'] = oferta.numParcelaCartoes;
6796 formaPagtoObj['precoParcelaCartoes'] = oferta.precoParcelaCartoes;
6797 formaPagtoObj['numParcelaBoleto'] = oferta.numParcelaBoleto;
6798 formaPagtoObj['precoParcelaBoleto'] = oferta.precoParcelaBoleto;
6799 formaPagtoObj['precoVendaOferta'] = formataValor(oferta.precoVendaOferta);
6800
6801 formaPagtoObj['economia'] = formataValor(parseFloat(oferta.precoCheioOferta).toFixed(2) - parseFloat(oferta.precoVendaOferta).toFixed(2));
6802 formaPagtoObj['espacoExterno'] = oferta.espacoExterno == 'true' ? 'true' : 'false';
6803 formaPagtoObj['dataUnidade'] = codigoUnidade;
6804 formaPagtoObj['dataEvento'] = oferta.codigoOferta;
6805 formaPagtoObj['destinoCompra '] = oferta.destinoCompra;
6806
6807 //EMED nao restringe o botao
6808 if(isEmed){
6809 let manutencao = $('#manutencao-compra').val();
6810 formaPagtoObj['textoBotaoComprar'] = manutencao || 'COMPRAR';
6811 formaPagtoObj['classeBotaoComprar'] = manutencao ? 'disabled manutencao' : '';
6812 }else{
6813 let btnComprar = getObjBtnComprar(oferta);
6814 formaPagtoObj['textoBotaoComprar'] = btnComprar.textoBotao;
6815 formaPagtoObj['classeBotaoComprar'] = btnComprar.classeBotao;
6816 }
6817
6818 formaPagtoObj['regNumMaxParce'] = oferta.numeroMaxParcelasOferta;
6819 formaPagtoObj['regPrecMaxParce'] = formataValor(oferta.precoVendaMaxParcelaOferta);
6820
6821 //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
6822 formaPagtoObj['precoAVistaPadraoExt'] = formataValor(oferta.precoVendaOferta);
6823 var precoContribuinteExtensao = (parseFloat(oferta.precoVendaOferta).toFixed(2) * 0.80).toFixed(2);
6824 formaPagtoObj['precoContrExt'] = formataValor(precoContribuinteExtensao);
6825 formaPagtoObj['economiaExt'] = formataValor(parseFloat(oferta.precoVendaOferta).toFixed(2) - precoContribuinteExtensao);
6826 formaPagtoObj['precoParcelaBoletoExt'] = formataValor( (precoContribuinteExtensao / oferta.numParcelaBoleto).toFixed(2));
6827 formaPagtoObj['precoParcelaCartoesExt'] = formataValor( (precoContribuinteExtensao / oferta.numParcelaCartoes).toFixed(2));
6828 formaPagtoObj['precoAVistaContrExt'] = formataValor( (precoContribuinteExtensao * 0.92).toFixed(2));
6829
6830 return formaPagtoObj;
6831 }
6832
6833 function calculaPrecoAvista(precoVendaOferta){
6834 return (parseFloat(precoVendaOferta).toFixed(2) * 0.92).toFixed(2);
6835 }
6836
6837 function getParcelasEntradaCartao(dataInicioCurso){
6838
6839 const dCurso = new Date(dataInicioCurso.split("/").reverse().join("-"));
6840 const dHoje = new Date();
6841
6842 let diffAnos = dCurso.getUTCFullYear() - dHoje.getUTCFullYear();
6843 let diffMeses = dCurso.getUTCMonth() - dHoje.getUTCMonth();
6844 diffMeses = diffAnos * 12 + diffMeses;
6845
6846 return (diffMeses > 4) ? 4 : ((diffMeses<=0) ? 1 : diffMeses);
6847
6848 }
6849
6850 function createModalFormaPagto(formaPagtoObj, oferta, index) {
6851 let temDesconto = possuiCriteriosDesconto2022(oferta.dataInicio)
6852 temDesconto = temDesconto && !possuiMensalidade99(oferta)
6853
6854 result = `
6855 <div id="modalFormaPagto" class="ssp-modal">
6856 <div class="ssp-card-modal-forma-pagamento ` + (temDesconto ? 'ssp-desconto-2022' : '') + `">
6857 <div class="ssp-card-modal-forma-pagamento__header" style="border: 0; margin-bottom: 0 !important;">
6858 <h6 class="ssp-card-modal-forma-pagamento__header-title font-weight-bold" style="color:#454F63">Descontos e ` + (temDesconto ? 'pagamento' : 'parcelamento') + `</h6>
6859 <i class="ssp-card-modal-forma-pagamento__btn-close ssp-card-modal-forma-pagamento__btn-close_` + index + `"></i>
6860 </div>
6861 `
6862 + (temDesconto ? '' : '<div class="ssp-card-oferta-curso__line-divider mt-0 mb-5 mb-md-8"></div>') +
6863 `
6864 <div class="ssp-card-modal-forma-pagamento__body">
6865 `
6866 if(temDesconto) {
6867 result = result + `
6868 <div>
6869 <p class="my-0"><strong>Valor com </strong>
6870 <span class="ssp-card-oferta-curso__valor-desconto mt-0 mb-0">50% de desconto*</span>
6871 </p>
6872 </div>
6873 <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>`
6874
6875 if($('[name="tipoCurso"]').val() == 'extensao') {
6876 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>`
6877 } else {
6878 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>`
6879 }
6880
6881
6882 result = result + `
6883 <div class="ssp-card-oferta-curso__line-divider mb-5 mb-md-2 mt-2"></div>
6884 <p class="my-0"><strong>Valor:</strong></p>
6885 <h6 class="ssp-card-oferta-curso__item-valor-investimento ` + (temDesconto ? 'ssp-desconto-2022' : '') + `"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(oferta.precoVendaMaxParcelaOferta) + `</h6>
6886 <p class="mt-0 mb-0"><strong>Valor Total: </strong> ` + formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaOferta), 2)) + `</p>
6887 <div class="ssp-card-oferta-curso__line-divider mt-4 mb-md-3 mb-4"></div>
6888 <p class="my-0"><strong>Parcele e garanta mais tempo para pagar:</strong></p>
6889 `
6890 } else {
6891 if(formaPagtoObj.precoCheioOferta == formaPagtoObj.precoVendaOferta) {
6892 result = result + `
6893 <p class="ssp-card-modal-forma-pagamento__valor-desconto mt-n3">R$ <span class="precoVendaOferta">` + formaPagtoObj.precoVendaOferta + `</span></p>
6894 <p class="txt-desconto-oito">Pague à vista e <span style="color:#FC7834;font-weight:bold"> ganhe mais 8% de desconto.</span></p>
6895 <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>
6896 </div>
6897 `
6898 } else {
6899 const textoDesc = temDesconto ? 'Valor com 30% de desconto:' : 'Valor com desconto:'
6900
6901 result = result + `
6902 <small class="ssp-card-oferta-curso__title-item font-weight-bold" style="margin:0;font-size:16px;">` + textoDesc + `</small>
6903 <p class="ssp-card-modal-forma-pagamento__valor-cheio">R$ <span class="precoCheioOferta">` + formaPagtoObj.precoCheioOferta + `</span></p>
6904 <p class="ssp-card-modal-forma-pagamento__valor-desconto">R$ <span class="precoVendaOferta">` + formaPagtoObj.precoVendaOferta + `</span></p>
6905 <p class="ssp-card-modal-forma-pagamento__total-economia">Você economiza <span>R$ <span class="economia">` + formaPagtoObj.economia + `</span></span></p>
6906 <p class="txt-desconto-oito">Pague à vista e <span style="color:#FC7834;font-weight:bold"> ganhe mais 8% de desconto.</span></p>
6907 <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>
6908 </div>
6909 `
6910 }
6911 }
6912
6913 let textoParcelaCartoes, textoParcelaBoleto, textoParcelaCartaoComBoleto
6914 if(temDesconto) {
6915 const precoParcelaCartoes = formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(formaPagtoObj.precoParcelaCartoes)/2, 2))
6916 const precoParcelaBoleto = formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(formaPagtoObj.precoParcelaBoleto)/2, 2))
6917
6918 if(formaPagtoObj.numParcelaCartoes)
6919 textoParcelaCartoes = `<p>Em até <span><span class="numParcelaCartoes">` + formaPagtoObj.numParcelaCartoes + `</span>x</span> sem juros</p>`
6920
6921 if(formaPagtoObj.numParcelaBoleto)
6922 textoParcelaBoleto = `<p>Em até <span><span class="numParcelaBoleto">` + formaPagtoObj.numParcelaBoleto + `</span>x</span> sem juros</p>`
6923
6924 } else {
6925 if(formaPagtoObj.numParcelaCartoes)
6926 textoParcelaCartoes = `<p>Em até <span><span class="numParcelaCartoes">` + formaPagtoObj.numParcelaCartoes + `</span>x de R$ <span class="precoParcelaCartoes">` + formaPagtoObj.precoParcelaCartoes + `</span></span> sem juros</p>`
6927
6928 if(formaPagtoObj.numParcelaBoleto)
6929 textoParcelaBoleto = `<p>Em até <span><span class="numParcelaBoleto">` + formaPagtoObj.numParcelaBoleto + `</span>x de R$ <span class="precoParcelaBoleto">` + formaPagtoObj.precoParcelaBoleto + `</span></span> sem juros</p>`
6930
6931 }
6932
6933 if(formaPagtoObj.numParcelaBoleto){
6934 textoParcelaCartaoComBoleto = `<p>1ª parcela em até <span><span class="numParcelaCartoes">` + getParcelasEntradaCartao(oferta.dataInicio) + `</span>x</span> sem juros no cartão + valor </p>`;
6935 textoParcelaCartaoComBoleto += `<p>restante em até <span><span class="numParcelaBoleto">` + (parseInt(formaPagtoObj.numParcelaBoleto) - 1) + `</span>x</span> sem juros no boleto bancário </p>`;
6936 }
6937
6938 if(temDesconto) {
6939 result = result + `
6940 <div class="ssp-card-modal-forma-pagamento__tipos">`
6941
6942 if(textoParcelaBoleto)
6943 result = result + `
6944 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start">
6945 <i class="ssp-card-modal-forma-pagamento__icon-boleto"></i>
6946 <div class="ssp-card-modal-forma-pagamento__info-cartao">
6947 <p><strong>Boleto Bancário</strong></p>`
6948 + textoParcelaBoleto +
6949 `</div>
6950 </div>`
6951
6952 if(textoParcelaCartoes)
6953 result = result + `
6954 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start mt-4">
6955 <i class="ssp-card-modal-forma-pagamento__icon-credit-card"></i>
6956 <div class="ssp-card-modal-forma-pagamento__info-cartao">
6957 <p><strong>Cartões</strong></p>
6958 <p>(<span class="textoCartoesAceitos">` + formaPagtoObj.textoCartoesAceitos + `</span>)</p>`
6959 + textoParcelaCartoes +
6960 `</div>
6961 </div>
6962 </div>
6963 `
6964 if(textoParcelaCartaoComBoleto)
6965 result = result + `
6966 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start">
6967 <i class="ssp-card-modal-forma-pagamento__icon-boleto-e-cartao fa-solid fa-money-check-dollar"></i>
6968 <div class="ssp-card-modal-forma-pagamento__info-cartao">
6969 <p><strong>Cartão + boleto bancário</strong></p>`
6970 + textoParcelaCartaoComBoleto +
6971 `</div>
6972 </div>`
6973 } else {
6974 result = result + `
6975 <div class="ssp-card-modal-forma-pagamento__tipos">`
6976
6977 if(textoParcelaCartoes)
6978 result = result + `
6979 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start">
6980 <i class="ssp-card-modal-forma-pagamento__icon-credit-card"></i>
6981 <div class="ssp-card-modal-forma-pagamento__info-cartao">
6982 <p><strong>Cartões</strong></p>
6983 <p>(<span class="textoCartoesAceitos">` + formaPagtoObj.textoCartoesAceitos + `</span>)</p>`
6984 + textoParcelaCartoes +
6985 `</div>
6986 </div>`
6987
6988 if(textoParcelaBoleto)
6989 result = result + `
6990 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start mt-4">
6991 <i class="ssp-card-modal-forma-pagamento__icon-boleto"></i>
6992 <div class="ssp-card-modal-forma-pagamento__info-cartao">
6993 <p><strong>Boleto Bancário</strong></p>`
6994 + textoParcelaBoleto +
6995 `</div>
6996 </div>
6997 </div>
6998 `
6999
7000 if(textoParcelaCartaoComBoleto)
7001 result = result + `
7002 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start">
7003 <i class="ssp-card-modal-forma-pagamento__icon-boleto-e-cartao fa-solid fa-money-check-dollar"></i>
7004 <div class="ssp-card-modal-forma-pagamento__info-cartao">
7005 <p><strong>Cartão + boleto bancário</strong></p>`
7006 + textoParcelaCartaoComBoleto +
7007 `</div>
7008 </div>`
7009 }
7010
7011
7012
7013 if(temDesconto) {
7014 result = result + `
7015 <p class="txt-desconto-oito my-0">Pague à vista e ganhe <span style="color:#5ACC75;font-weight:bold">8% de desconto.</span></p>
7016 `
7017 }
7018
7019 result = result + `
7020 <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>`
7021
7022 if(temDesconto) {
7023 result = result + `
7024 <a class="btn btn-primary modal-extensao-btn-conheca mt-3" href="/descontos-e-parcelamentos" target="_blank">Conheça os descontos</a>
7025 `
7026 }
7027
7028 result = result + `
7029 </div>
7030 </div>
7031 `
7032
7033 return result;
7034 }
7035
7036 function montaHTMLModalFormaPgto(oferta, index, codigoUnidade){
7037
7038 var tipoCurso = $('[name="tipoCurso"]').val();
7039
7040 var formaPagtoObj = getObjFormaPagto(oferta,index,tipoCurso,codigoUnidade);
7041
7042 var modalFormaPagto
7043 if(tipoCurso == 'extensao' && !possuiCriteriosDesconto2022(oferta.dataInicio)) {
7044 modalFormaPagto = $('#modalFormaPagtoExt').clone();
7045
7046 $.each(formaPagtoObj, function(k,v){
7047 if(modalFormaPagto.find('.'+k).length > 0)
7048 modalFormaPagto.find('.'+k).text(v);
7049 })
7050 } else if(isEmed) {
7051 modalFormaPagto = $('#modalPagtoEmed').clone();
7052
7053 $.each(formaPagtoObj, function(k,v){
7054 if(modalFormaPagto.find('.'+k).length > 0)
7055 modalFormaPagto.find('.'+k).text(v);
7056 })
7057 } else
7058 modalFormaPagto = $(createModalFormaPagto(formaPagtoObj, oferta, index));
7059
7060 modalFormaPagto.removeAttr('id');
7061 modalFormaPagto.removeClass('d-none');
7062 modalFormaPagto.attr('id','myModal_'+index);
7063
7064 if(tipoCurso == 'extensao' && !possuiCriteriosDesconto2022(oferta.dataInicio)){
7065
7066 var botoaoCompraOk = modalFormaPagto.find('.modal-extensao-aluno__btn.ok');
7067 botoaoCompraOk.attr('id','btnComprarConhecaDescontoOk_'+index);
7068
7069 botoaoCompraOk.attr('data-espaco-ex', formaPagtoObj.espacoExterno);
7070 botoaoCompraOk.attr('data-unidade', formaPagtoObj.dataUnidade);
7071 botoaoCompraOk.attr('data-evento', formaPagtoObj.dataEvento);
7072 botoaoCompraOk.attr('data-destino-compra', formaPagtoObj.destinoCompra);
7073 botoaoCompraOk.attr('data-index', index);
7074 botoaoCompraOk.addClass(formaPagtoObj.classeBotaoComprar);
7075
7076 var botoaoCompraNot =modalFormaPagto.find('.modal-extensao-aluno__btn.not');
7077 botoaoCompraNot.attr('id','btnComprarConhecaDescontoNot_'+index);
7078
7079 botoaoCompraNot.attr('data-espaco-ex', formaPagtoObj.espacoExterno);
7080 botoaoCompraNot.attr('data-unidade', formaPagtoObj.dataUnidade);
7081 botoaoCompraNot.attr('data-evento', formaPagtoObj.dataEvento);
7082 botoaoCompraNot.attr('data-destino-compra', formaPagtoObj.destinoCompra);
7083 botoaoCompraNot.attr('data-index', index);
7084 botoaoCompraNot.addClass(formaPagtoObj.classeBotaoComprar);
7085
7086 modalFormaPagto.find('.modal-extensao-btn-aluno-sim-nao.sim').attr('id','btn-aluno-sim_'+index);
7087 modalFormaPagto.find('.modal-extensao-btn-aluno-sim-nao.nao').attr('id','btn-aluno-nao_'+index);
7088
7089 modalFormaPagto.find('.modal-extensao-voltar-icon').addClass('ssp-card-modal-forma-pagamento__btn-close_'+index);
7090
7091 modalFormaPagto.find('.modal-extensao-btn-conheca').attr('id','btnModalExtConheca_'+index);
7092
7093 modalFormaPagto.find('.modal-pergunta-aluno-ext').attr('id','modalExtAluno_'+index);
7094
7095 modalFormaPagto.find('.msg-alunoSim').attr('id','msg-alunoSim_'+index);
7096 modalFormaPagto.find('.msg-alunoNao').attr('id','msg-alunoNao_'+index);
7097
7098 var botaoCompra = modalFormaPagto.find('.modal-extensao__btn.mt-3');
7099
7100 }else{
7101
7102 modalFormaPagto.find('.mt-4').attr('id','content_boleto_'+index);
7103 modalFormaPagto.find('.ssp-card-modal-forma-pagamento__btn-close').addClass('ssp-card-modal-forma-pagamento__btn-close_'+index);
7104
7105 var botaoCompra = modalFormaPagto.find('.btn.w-100');
7106
7107 }
7108
7109 if(isEmed){
7110
7111 var elementoPai = modalFormaPagto.find('.ssp-card-modal-forma-pagamento');
7112
7113 //Cria botao inscreva-se ajustado ao modal
7114 var dadosAbertura = calculaTempoAberturaBolsa(oferta.dataAberturaMatricula, oferta.horaAberturaBolsaOferta);
7115 if($('#manutencao-compra').val()){
7116 textoBotao = $('#manutencao-compra').val();
7117 classeBotao = 'disabled manutencao';
7118 }else{
7119 if(oferta.permiteListaEspera == statusEmed.ESPERA && dadosAbertura.bolsaJaAberta){
7120 textoBotao = 'Lista de espera';
7121 classeBotao = 'btn-emed-lista-espera';
7122 }else{
7123 if (dadosAbertura.bolsaJaAberta || !oferta.dataAberturaMatricula || oferta.dataAberturaMatricula == ''){
7124 if(oferta.etapa == '0020' || oferta.etapa == '0030'){
7125 textoBotao = 'Lista de espera';
7126 classeBotao = 'btn-emed-lista-espera';
7127 }else{
7128 textoBotao = 'Fazer matrícula';
7129 classeBotao = '';
7130 }
7131 }else{
7132 textoBotao = 'Matrícula em '+formataDataAberturaBolsa(oferta.dataAberturaMatricula, oferta.horaAberturaBolsaOferta);
7133 classeBotao = 'disabled';
7134 }
7135 }
7136 }
7137 criaBotaoInscreverEmedModal(oferta, textoBotao, classeBotao, 'btnComprarEmedModal_' + index, elementoPai, index);
7138 preencheDadosEmedModal(oferta, modalFormaPagto);
7139
7140 }else{
7141 botaoCompra.attr('id', "btnComprarFormaPgto_"+index);
7142 botaoCompra.attr('data-espaco-ex', formaPagtoObj.espacoExterno);
7143 botaoCompra.attr('data-unidade', formaPagtoObj.dataUnidade);
7144 botaoCompra.attr('data-evento', formaPagtoObj.dataEvento);
7145 botaoCompra.attr('data-destino-compra', formaPagtoObj.destinoCompra);
7146 botaoCompra.attr('data-index', index);
7147 botaoCompra.addClass(formaPagtoObj.classeBotaoComprar);
7148 }
7149
7150 $('.oferta-slick-area_modal').append(modalFormaPagto);
7151 $('.oferta-slick-area_modal').find('.d-none-btn').remove();
7152
7153 //Evita o erro de exibição de Nan
7154 if(oferta.numParcelaBoleto.length == 0){
7155 $('#content_boleto_'+index).remove();
7156 }
7157 }
7158
7159
7160 function montaHTMLModalLocalRealizacao(oferta, index){
7161
7162 var tituloLocalRealizacao = (localLivreOnline(oferta.localEspacoExterno) && !isHibrido) ?
7163 '<i class="fas fa-wifi icon-wifi-title__modal"></i> <h6 class="title-idioma-online__modal"> Aulas Online - ao vivo</h6>'
7164 : '<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>';
7165
7166 if(textoFormatoHibrido.length>0 && oferta.espacoExterno=="true")
7167 textoFormatoHibrido += '</br>';
7168
7169 var localRealizacaoHTMLModal = htmlModalLocalRealizacao
7170 .replace('\{nomeUnidade\}',$('#unidades-ofertas option:selected').text())
7171 .replace('\{textoFormatoHibrido\}', textoFormatoHibrido )
7172 .replace('\{localEspacoExterno\}', oferta.espacoExterno=="true"? oferta.localEspacoExterno: "" )
7173 .replace('\{classeTextoInfoLocalRealizacao\}', (oferta.ruaEspacoExterno != "" && !isHibrido) ? "" : "d-none")
7174 .replace('\{classeEnderecoRealizacao\}',oferta.ruaEspacoExterno != "" ? "" : "d-none")
7175 .replace('\{ruaEspacoExterno\}',oferta.ruaEspacoExterno)
7176 .replace('\{numeroEspacoExterno\}',oferta.numeroEspacoExterno)
7177 .replace('\{complementoEspacoExterno\}',oferta.complementoEspacoExterno)
7178 .replace('\{classeBairroRealizacao\}', oferta.bairroEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
7179 .replace('\{bairroEspacoExterno\}',oferta.bairroEspacoExterno)
7180 .replace('\{classeCidadeRealizacao\}', oferta.cidadeEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
7181 .replace('\{cidadeEspacoExterno\}',oferta.cidadeEspacoExterno)
7182 .replace('\{classeCepRealizacao\}', oferta.cepEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
7183 .replace('\{cepEspacoExterno\}',oferta.cepEspacoExterno)
7184 .replace(regIndex, index)
7185 .replace('\{tituloLocalRealizacao\}', tituloLocalRealizacao)
7186 .replace('\{classeEntendi\}', (localLivreOnline(oferta.localEspacoExterno)) ? "btn-modal-entendi__idioma-online" : "");
7187
7188 $('.oferta-slick-area_modal').append(localRealizacaoHTMLModal);
7189 $('.oferta-slick-area_modal').find('.d-none-btn').remove();
7190
7191 if(oferta.ruaEspacoExterno == "")
7192 $('.localEspacoExternoTexto_'+index).removeClass('ssp-modal-local-realizacao__subtitle');
7193 }
7194
7195 function montaHTMLModalAntesCompra(oferta, index, codigoUnidade){
7196
7197 if(isEmed){
7198
7199 $('#modalAntesCompraEmed_' + oferta.indice).remove();
7200 const antesCompraHTMLModal = $('#modalAntesCompraEmed').clone();
7201 antesCompraHTMLModal.attr('id', 'modalAntesCompraEmed_' + oferta.indice);
7202 antesCompraHTMLModal.find('.ssp-card-modal-antes-compra__btn-close').addClass('ssp-card-modal-antes-compra__btn-close_'+oferta.indice);
7203 antesCompraHTMLModal.find('.ssp-card-modal-selecionar-outro__btn-close').addClass('ssp-card-modal-selecionar-outro__btn-close_'+oferta.indice);
7204 antesCompraHTMLModal.insertAfter('#modalAntesCompraEmed');
7205
7206 if(oferta.etapa == '0010'){
7207 if(oferta.permiteListaEspera == statusEmed.ESPERA){
7208 antesCompraHTMLModal.find('.textoEmedModalAntesCompra0010Espera').removeClass('d-none');
7209 antesCompraHTMLModal.find('#btnCompraLocalEmed').text('Ir para lista de espera');
7210 }else{
7211 antesCompraHTMLModal.find('.textoEmedModalAntesCompra0010').removeClass('d-none');
7212 }
7213 }else{
7214 antesCompraHTMLModal.find('.textoEmedModalAntesCompra0020e0030').removeClass('d-none');
7215 }
7216
7217 const btnCompra = antesCompraHTMLModal.find('#btnCompraLocalEmed');
7218 btnCompra.attr('id', 'btnCompraLocalEmed_' + oferta.indice);
7219 btnCompra.attr('offercode', oferta.codigoOferta);
7220
7221 btnCompra.on('click', function(ev){
7222 ev.preventDefault();
7223 execCompraEmed(oferta);
7224 });
7225
7226 }else{
7227
7228 var dataEfetivaFormat = formataDataComBarra($('[name="dataEfetivaSTR"]').val());
7229
7230
7231 var antesCompraHTMLModal = htmlModalAntesCompra
7232 .replace('\{nomeUnidade\}',$('#unidades-ofertas option:selected').text())
7233 .replace('\{textoFormatoHibrido\}', textoFormatoHibrido )
7234 .replace('\{localEspacoExterno\}', oferta.espacoExterno=="true"? oferta.localEspacoExterno:"" )
7235 .replace('\{classeTextoInfoLocalRealizacao\}', (oferta.ruaEspacoExterno != "" && !isHibrido) ? "" : "d-none")
7236 .replace('\{classeEnderecoRealizacao\}', oferta.ruaEspacoExterno != "" ? "" : "d-none")
7237 .replace('\{ruaEspacoExterno\}',oferta.ruaEspacoExterno)
7238 .replace('\{numeroEspacoExterno\}',oferta.numeroEspacoExterno)
7239 .replace('\{complementoEspacoExterno\}',oferta.complementoEspacoExterno)
7240 .replace('\{classeBairroRealizacao\}', oferta.bairroEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
7241 .replace('\{bairroEspacoExterno\}',oferta.bairroEspacoExterno)
7242 .replace('\{classeCidadeRealizacao\}', oferta.cidadeEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
7243 .replace('\{cidadeEspacoExterno\}',oferta.cidadeEspacoExterno)
7244 .replace('\{classeCepRealizacao\}', oferta.cepEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
7245 .replace('\{cepEspacoExterno\}',oferta.cepEspacoExterno)
7246 .replace('\{componentBuyConfirmation\}', componentBuyConfirmation(codigoUnidade, oferta, dataEfetivaFormat))
7247 .replace('\{linkBtnBolsa\}', linkBolsa(oferta))
7248 .replace(regIndex, index);
7249
7250 $('.oferta-slick-area_modal').append(antesCompraHTMLModal);
7251 $('.oferta-slick-area_modal').find('.d-none-btn').remove();
7252 }
7253 }
7254
7255 async function populaOfertas(ofertas){
7256
7257 //Zera variável que controla existência de ofertas com bolsa
7258 ofertasComBolsa = false;
7259
7260 objsTela.ofertas = ofertas;
7261
7262 if(ofertas && ofertas.length)
7263 $('#ssp-h3-turmas').show()
7264 else
7265 $('#ssp-h3-turmas').hide()
7266
7267 if(ofertas && ofertas.length > 1){
7268 //remove dupl
7269 const ofertasDistintas = [];
7270 ofertas.forEach(oferta => {
7271 if(ofertasDistintas.filter(dist => dist.codigoOferta == oferta.codigoOferta).length == 0){
7272 ofertasDistintas.push(oferta);
7273 }
7274 });
7275 ofertas = ofertasDistintas;
7276 }
7277
7278 if(isEmed){
7279
7280 $('.btn-filtro[value="0"]').attr('disabled','');
7281 $('.ssp-slick-ofertas-emed').empty();
7282 // executa a class do slick slider
7283 $('.ssp-slick-ofertas-emed').removeClass('slick-initialized slick-slider slick-dotted');
7284 ofertas = filtraOfertasEtapa(getEtapaSelecionadaEmed(), ofertas);
7285
7286 }
7287
7288 if(ofertas.length == 0){
7289
7290 if($('#unidades-ofertas').val() || $('#chkInscricao').prop('checked') || $('#chkBolsa').prop('checked'))
7291 hideCardSemTurmas(false)
7292
7293 $('.oferta-slick-area').empty();
7294 $('.prev-mobile, .next-mobile').addClass('d-none');
7295
7296 //Mostrar section registro interesse quando nao tiver oferta
7297 habilitarRegistroInteresse(true);
7298
7299 controlaPaginaBolsa()
7300 if(isEmed) $('.btn-filtro[value="0"]').removeAttr('disabled');
7301 return;
7302 }
7303 hideCardSemTurmas(true)
7304 if(!isEmed) $('.prev-mobile, .next-mobile').removeClass('d-none');
7305 habilitarRegistroInteresse(false);
7306
7307 $('.oferta-slick-area').empty();
7308 $('.oferta-slick-area_modal').empty();
7309 ofertas = ofertas.sort(function(a, b){
7310 return ordenar(a, b, 'ordenar');
7311 });
7312 // executa a class do slick slider
7313 $('.oferta-slick-area').removeClass('slick-initialized slick-slider slick-dotted');
7314
7315 //busca o codigoUnidade para o link do ecommerce
7316 if(!isAoVivo){
7317 var selectedUnidade = $('#unidades-ofertas').val().split('@')[0];
7318 for(var i=0;objsTela.unidades.length > i ;i++){
7319 if(selectedUnidade == objsTela.unidades[i].categoryId)
7320 codigoUnidade = objsTela.unidades[i].codigoUnidade;
7321 }
7322 }
7323
7324 // Montar object push - google tag manager - 2
7325 itensEcommerce = criaItensEcommerce(ofertas);
7326 sendEventEcommerce("view_item_list", Array.from(itensEcommerce.values()));
7327
7328 for(var i=0;ofertas.length > i ;i++){
7329
7330 var oferta = ofertas[i];
7331 var ofertaGratuita = excecaoCursoGratuito(oferta);
7332
7333 //guardando a oferta no map para chamar ajax com infos de bolsa em tempo real
7334 oferta['indice'] = i;
7335 ofertasMap.set(oferta.codigoOferta, oferta);
7336
7337 if(isAoVivo)
7338 codigoUnidade = ofertaUnidadeMap.get(oferta.codigoOferta);
7339
7340 if(isEmed && oferta.etapa == '0010'){
7341 try{
7342 let status = await getStatusEmed(oferta);
7343 oferta['permiteListaEspera'] = status;
7344 }catch(err){
7345 console.log(err);
7346 }
7347 }
7348 montaHTMLOferta(oferta, i, codigoUnidade, false);
7349
7350 if(!ofertaGratuita)
7351 montaHTMLModalFormaPgto(oferta, i, codigoUnidade);
7352
7353 montaHTMLModalLocalRealizacao(oferta, i);
7354 montaHTMLModalAntesCompra(oferta, i, codigoUnidade);
7355
7356 if(!ofertaGratuita)
7357 verificaBotaoBolsaSS(oferta);
7358
7359 verificaCursoAprendizagem(i);
7360 verificaCursoTrampolim(i, oferta.codigoOferta);
7361
7362 if(!ofertaGratuita)
7363 associaEventoBtnFormaPagamento(i);
7364
7365 associaEventoBtnComprar(i);
7366
7367 if(!ofertaGratuita)
7368 associaEventoBtnComprarDentroFormaPgto(i);
7369
7370 associaEventoBtnLocalRealizacao(i);
7371 associaEventosFecharModal(i);
7372
7373 if($('[name="tipoCurso"]').val() == 'extensao'){
7374 associaEventoBtnConheca(i);
7375 associaEventoBtnComprarConhecaDescontoOk(i);
7376 associaEventoBtnComprarConhecaDescontoNot(i);
7377 associaEventoBtnAlunoNao(i);
7378 associaEventoBtnAlunoSim(i);
7379 }
7380
7381 }
7382
7383 if(isEmed){
7384 sliderOfertasEmed();
7385 $('.btn-filtro[value="0"]').removeAttr('disabled');
7386 }
7387 else sliderOfertas();
7388
7389 controlaPaginaBolsa()
7390
7391 }
7392
7393 function hideCardSemTurmas(hide){
7394 if(!isEmed){
7395 if(hide)
7396 $('.ssp-card-oferta-curso__sem-vaga').addClass('d-none');
7397 else
7398 $('.ssp-card-oferta-curso__sem-vaga').removeClass('d-none');
7399 } else {
7400
7401
7402 if(hide || getEtapaSelecionadaEmed() == "0"){
7403 $('.sem-vaga-emed').addClass('d-none');
7404 }else{
7405 $('.sem-vaga-emed').removeClass('d-none');
7406 if($('.sem-vaga-emed.emed-transferencias-space:not(.d-none)').length ) return;
7407 var tamScreen = $(window).width();
7408 if(tamScreen < 768){
7409 $('.slick-area-emed').slick({
7410 slidesToShow: 2,
7411 slidesToScroll: 2,
7412 autoplay: false,
7413 infinite: false,
7414 dots: false,
7415 arrows: false,
7416 centerPadding: 0,
7417 centerMode: false,
7418 responsive: [
7419 {
7420 breakpoint: 768,
7421 settings: {
7422 slidesToShow: 1,
7423 slidesToScroll: 1,
7424 variableWidth: false,
7425 infinite: false,
7426 centerPadding: 0,
7427 centerMode: false,
7428 dots: true,
7429 }
7430 }
7431 ]
7432 });
7433 }
7434 }
7435 }
7436 }
7437
7438 function verificaCursoAprendizagem(i){
7439
7440 //Esconde elementsos quando o curso é aprendizagem
7441 if($('[name="codigoFT"]').val() == codigoFTCursoAprendizagem){
7442 $('#btnComprar_'+i).remove();
7443 $('#container_investimento_'+i).remove();
7444 $('#container_forma_pgto_'+i).remove();
7445
7446 var avisoAprendizagem = $('#aviso-curso-aprendizagem').clone();
7447 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>'
7448 avisoAprendizagem.removeAttr('id');
7449 avisoAprendizagem.removeClass('d-none');
7450 $('.card_oferta_'+i+ ' .ssp-card-oferta-curso').append(avisoAprendizagem);
7451 $('.card_oferta_'+i+ ' .ssp-card-oferta-curso').append(btnFormAprendizagem);
7452 }
7453 }
7454
7455 function verificaCursoTrampolim(i, codOferta){
7456 if(ehCursoTrampolim){
7457 $('#btnComprar_'+i).remove();
7458 $('#container_investimento_'+i).remove();
7459 $('#container_forma_pgto_'+i).remove();
7460 $('.ssp-card-oferta-curso .codigoOferta_'+codOferta).hide();
7461
7462 var avisoTrampolim = $('#avisoTrampolim').clone();
7463 avisoTrampolim.removeAttr('id');
7464 avisoTrampolim.removeClass('d-none');
7465 $('.card_oferta_'+i+ ' .ssp-card-oferta-curso').append(avisoTrampolim);
7466 }
7467 }
7468
7469 function verificaBotoesEmed(dadosOferta, verificaBolsa) {
7470
7471 var elementoPai = $('.codigoOferta_' + dadosOferta.codigoOferta + ' .ssp-ofertas-emed__card-info-investimento');
7472
7473 //INICIO - Logica para Matricula
7474
7475 //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
7476 var dadosAberturaMatricula = calculaTempoAberturaBolsa(dadosOferta.dataAberturaMatricula, dadosOferta.horaAberturaBolsaOferta);
7477
7478 var textoBotaoMatricula = '';
7479 var exibirBotaoMatricula = true;
7480 var classeBotaoMatricula = '';
7481 var htmlBotaoMatricula = '';
7482
7483 if (dadosAberturaMatricula.exibirContador) {
7484 textoBotaoMatricula = dadosAberturaMatricula.textoContador;
7485 exibirBotaoMatricula = false;
7486 }
7487
7488 //exibe o botão sem cronômetro
7489 if (exibirBotaoMatricula) {
7490 if ($('#manutencao-compra').val()) {
7491 textoBotaoMatricula = $('#manutencao-compra').val();
7492 classeBotaoMatricula = 'disabled manutencao';
7493 } else {
7494
7495 if (dadosOferta.permiteListaEspera == statusEmed.ESPERA && dadosAberturaMatricula.bolsaJaAberta) {
7496 textoBotaoMatricula = 'Lista de espera';
7497 classeBotaoMatricula = 'btn-emed-lista-espera';
7498 } else {
7499 classeBotaoMatricula = '';
7500 if (dadosAberturaMatricula.bolsaJaAberta || !dadosOferta.dataAberturaMatricula || dadosOferta.dataAberturaMatricula == '') {
7501 textoBotaoMatricula = 'Fazer matrícula';
7502
7503 if (dadosOferta.etapa == '0020' || dadosOferta.etapa == '0030') {
7504 textoBotaoMatricula = 'Lista de espera';
7505 classeBotaoMatricula = 'btn-emed-lista-espera';
7506 }
7507 } else {
7508 textoBotaoMatricula = 'Matrícula em ' + formataDataAberturaBolsa(dadosOferta.dataAberturaMatricula, dadosOferta.horaAberturaBolsaOferta);
7509 }
7510 if (!dadosAberturaMatricula.bolsaJaAberta)
7511 classeBotaoMatricula = 'disabled';
7512 }
7513 }
7514
7515 criaBotaoInscreverEmed(dadosOferta, textoBotaoMatricula, classeBotaoMatricula, 'btnComprarEmed_' + dadosOferta.indice, elementoPai);
7516
7517 } else { //exibe o cronometro para matricula
7518
7519 //codigoOferta como index para usar o ofertasMap
7520 htmlBotaoMatricula = '<button id="btnContadorComprar_' + dadosOferta.indice + '" data-index="' + dadosOferta.codigoOferta + '" class="btn btn-card-investimento --inscreva-se">Matrícula em <span>' + textoBotaoMatricula + '</span></button>';
7521 elementoPai.append(htmlBotaoMatricula);
7522 }
7523
7524 //INICIO - Logica para Botão Bolsa
7525
7526 if (!verificaBolsa || !dadosOferta.dataAberturaBolsaOferta || dadosOferta.dataAberturaBolsaOferta == '') {
7527 dadosOferta.vagasBolsaOferta = false;
7528 dadosOferta.botaoBolsaOferta = false;
7529 }
7530
7531 //calcula o tempo até abertura da bolsa, se houver (apenas depois das 08hrs)
7532 var dadosAberturaBolsa = calculaTempoAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta);
7533
7534 var textoBotaoBolsa = '';
7535 var classeBotaoBolsa = '';
7536 var exibirBotaoBolsa = false;
7537 var exibirContadorBolsa = false;
7538 var htmlBotaoBolsa = '';
7539
7540 //verifica se o botão de concorrer a bolsa deve aparecer
7541 //Oferta EMED possui bolsa apenas no 1o ano
7542 if (dadosOferta.etapa == '0010' && dadosOferta.botaoBolsaOferta && !dadosAberturaBolsa.exibirContador) {
7543 exibirBotaoBolsa = true;
7544 if ($('#manutencao-bolsa').val()) {
7545 classeBotaoBolsa = 'disabled manutencao';
7546 textoBotaoBolsa = $('#manutencao-bolsa').val();
7547 } else {
7548 if (dadosOferta.vagasBolsaOferta) {
7549 classeBotaoBolsa = dadosAberturaBolsa.bolsaJaAberta ? '' : 'disabled';
7550 textoBotaoBolsa = dadosAberturaBolsa.bolsaJaAberta ? 'Bolsa de estudo' : 'Bolsa em ' + formataDataAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta);
7551 } else {
7552 classeBotaoBolsa = 'disabled';
7553 textoBotaoBolsa = 'Bolsas de Estudo Esgotadas';
7554 }
7555 }
7556 }
7557
7558 //Verifica se o botão do cronômetro deve aparecer
7559 if (dadosAberturaBolsa.exibirContador) {
7560 textoBotao = dadosAberturaBolsa.textoContador;
7561 textoBotaoBolsa = dadosAberturaBolsa.textoContador;
7562 exibirContadorBolsa = true;
7563 exibirBotaoBolsa = false;
7564 }
7565
7566 if (exibirBotaoBolsa) {
7567
7568 if (!ofertasComBolsa) ofertasComBolsa = true;
7569
7570 criaBotaoBolsaEmed(dadosOferta, textoBotaoBolsa, classeBotaoBolsa);
7571
7572 } else if (exibirContadorBolsa) {
7573
7574 if (!ofertasComBolsa && dadosOferta.etapa == '0010') ofertasComBolsa = true;
7575
7576 if (dadosOferta.etapa == '0010' && dadosOferta.botaoBolsaOferta) {
7577 htmlBotaoBolsa = '<button id="btnContadorBolsa_' + dadosOferta.indice + '" data-index="' + dadosOferta.codigoOferta + '" class="btn btn-card-investimento --bolsas">Bolsa em <span>' + textoBotaoBolsa + '</span></button>';
7578 elementoPai.append(htmlBotaoBolsa);
7579 }
7580 }
7581 }
7582
7583 function criaBotaoInscreverEmedModal(oferta, textoBotao, classeBotao, idBotao, elementoPai, index){
7584 criaBotaoInscreverEmed(oferta, textoBotao, classeBotao, idBotao, elementoPai);
7585 var btnInscr = elementoPai.find('#btnComprarEmedModal_' + index);
7586 btnInscr.removeClass(btnInscr.classList);
7587 btnInscr.addClass('btn btn-lg btn-success w-100');
7588 btnInscr.attr('style', 'margin-top: 20px;font-weight:600');
7589
7590 //Reposiciona o botao voltar
7591 var btnVoltar = elementoPai.find('.ssp-btn-emed__voltar-curso');
7592 elementoPai.find('.ssp-btn-emed__voltar-curso').remove();
7593 elementoPai.append(btnVoltar);
7594 btnVoltar.addClass('ssp-btn-emed__voltar-curso_'+index);
7595 btnVoltar.click(() => {
7596 $('[id^="myModal_"]').each(function(index,modal){
7597 modal.style.display = "none";
7598 })
7599 });
7600 }
7601
7602 function preencheDadosEmedModal(oferta,$modal){
7603 const parcelaEntrada = 1;
7604 $modal.find('.numParcelaCartoesBoleto').text(oferta.numeroMaxParcelasOferta - parcelaEntrada);
7605 $modal.find('.precoParcelaCartoesBoleto').text(formataValor(oferta.precoVendaMaxParcelaOferta));
7606 $modal.find('.numParcelaEmedModal').text(oferta.numeroMaxParcelasOferta - parcelaEntrada);
7607 $modal.find('.precoParcelaEmedModal').text(formataValor(oferta.precoVendaMaxParcelaOferta));
7608 }
7609
7610
7611 function criaBotaoInscreverEmed(oferta, textoBotao, classeBotao, idBotao, elementoPai){
7612 if(oferta.permiteListaEspera && oferta.permiteListaEspera == statusEmed.NAO_ENCONTRADA) return;
7613 var htmlBotao = '<button id="'+ idBotao +'" data-index="'+ oferta.indice +'" class="btn btn-card-investimento --inscreva-se '+ classeBotao +'"><span>'+textoBotao+'</span></button>';
7614 elementoPai.append(htmlBotao);
7615
7616 if(!classeBotao.includes('disabled')){
7617
7618 elementoPai.on("click", '#'+ idBotao, function(ev){
7619 ev.preventDefault();
7620 const _modal = $('#modalAntesCompraEmed_'+$(this).data('index'));
7621 _modal.css('display','flex');
7622
7623
7624 });
7625
7626 }
7627
7628 }
7629
7630 function criaBotaoBolsaEmed(oferta, textoBotaoBolsa, classeBotaoBolsa=""){
7631
7632 var htmlBotao = '<a id="btnBolsa_'+ oferta.indice +'" data-index="'+ oferta.indice +'" class="btn btn-card-investimento --bolsas '+ classeBotaoBolsa +'">'+ textoBotaoBolsa +'</a>';
7633 $('.codigoOferta_'+oferta.codigoOferta+' .ssp-ofertas-emed__card-info-investimento').append(htmlBotao);
7634
7635 if(!classeBotaoBolsa.includes('disabled')){
7636 // Associa o evento de clique no botão de bolsa
7637 $('#btnBolsa_'+oferta.indice).attr('href', linkBolsa(oferta));
7638 $('#btnBolsa_'+oferta.indice).attr('target', '_blank');
7639 //$('#btnBolsa_'+oferta.indice).attr('style', 'text-transform:uppercase;');
7640
7641 }
7642 }
7643
7644 function criaBotaoBolsa(oferta, textoBotaoBolsa, classeBotaoBolsa=""){
7645
7646 const botao = $('<a>'+ textoBotaoBolsa +'</a>');
7647 botao.attr('id', 'btnBolsa_' + oferta.indice);
7648 botao.attr('data-index', oferta.indice);
7649 botao.attr('class', 'btn btn-lg btn-info w-100 mt-3 ' + (classeBotaoBolsa || ''));
7650 botao.css('font-size', '14px');
7651 botao.css('font-weight', '600');
7652 botao.css('background-color', '#004EFF');
7653 if(!classeBotaoBolsa.includes('disabled')){
7654 if(oferta.espacoExterno == 'true' || (isHibrido && temTextoParaFormatoHibrido)){
7655 botao.attr('data-espaco-ex', 'true');
7656 botao.click((ev)=>{
7657 ev.preventDefault();
7658 $('#btnCompraLocal_'+oferta.indice).hide();
7659 $('#btnBolsaLocal_'+oferta.indice).show();
7660 const _modal = $('#modalAntesCompra_'+oferta.indice);
7661 _modal.css('display','flex');
7662 });
7663 }else{
7664 botao.attr('href', linkBolsa(oferta));
7665 botao.attr('target', '_blank');
7666 }
7667 }
7668
7669 return botao;
7670
7671 }
7672
7673 function verificaBotaoBolsaSS(oferta, codigoUnidade){
7674
7675
7676 if(!isEmed && (!oferta.dataAberturaBolsaOferta || oferta.dataAberturaBolsaOferta == '') ) return;
7677
7678 if(!ehCursoTrampolim){
7679 $.ajax({
7680 url : getUrlConsultaBolsa(oferta),
7681 type : 'get',
7682 dataType: 'json',
7683 beforeSend: function (xhr) {
7684 xhr.setRequestHeader ("Authorization", "KGG4KMW5s0CVowr7d6y6Ww==");
7685 },
7686 })
7687 .done(function(infosBolsa){
7688
7689
7690 if(infosBolsa != null && typeof infosBolsa !== 'undefined'){
7691
7692 var codigoOfertaRetornoBolsa = infosBolsa.DATA[0].COD_EVENTO;
7693 var retornoOfertaBolsaSenac = infosBolsa.DATA[0];
7694
7695 //Sobrescreve as flags de bolsa com o retorno do serviço SS
7696 ofertasMap.get(codigoOfertaRetornoBolsa).vagasBolsaOferta = retornoOfertaBolsaSenac.TEM_VAGA_BOLSA;
7697 ofertasMap.get(codigoOfertaRetornoBolsa).botaoBolsaOferta = retornoOfertaBolsaSenac.BOTAO_BOLSA;
7698
7699 var dadosOferta = ofertasMap.get(codigoOfertaRetornoBolsa);
7700
7701 //calcula o tempo até abertura da bolsa, se houver (apenas depois das 08hrs)
7702 var dadosAberturaBolsa = calculaTempoAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta, dadosOferta.botaoBolsaOferta);
7703 var textoBotaoBolsa = '';
7704 var classeBotaoBolsa = '';
7705 var textoBotaoContadorBolsa = '';
7706 var exibirBotaoBolsa = false;
7707 var exibirContadorBolsa = false;
7708
7709 //EMED
7710 if(isEmed){
7711 verificaBotoesEmed(ofertasMap.get(codigoOfertaRetornoBolsa), true);
7712 return;
7713 }
7714
7715 //Verifica o texto do botão de bolsa
7716 if($('#manutencao-bolsa').val()) textoBotaoBolsa = $('#manutencao-bolsa').val();
7717 else{
7718
7719 if(retornoOfertaBolsaSenac.TEM_VAGA_BOLSA){
7720
7721 if(dadosAberturaBolsa.bolsaJaAberta)
7722 textoBotaoBolsa = "Inscrever para bolsa de estudo";
7723
7724 else
7725 textoBotaoBolsa = "Inscrições para bolsas a partir de "+formataDataAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta);
7726
7727 if(!ofertasComBolsa){ ofertasComBolsa = true;
7728 }
7729 }else
7730 textoBotaoBolsa = "Vagas esgotadas para bolsas de estudo";
7731 }
7732
7733 //verifica se o botão de concorrer a bolsa deve aparecer
7734 if(retornoOfertaBolsaSenac.BOTAO_BOLSA && !dadosAberturaBolsa.exibirContador){
7735
7736 exibirBotaoBolsa = true;
7737
7738 if(!ofertasComBolsa) ofertasComBolsa = true;
7739
7740 if(retornoOfertaBolsaSenac.TEM_VAGA_BOLSA && dadosAberturaBolsa.bolsaJaAberta && !$('#manutencao-bolsa').val()){
7741 classeBotaoBolsa = '';
7742 }else{
7743 classeBotaoBolsa = 'disabled';
7744 }
7745 }
7746
7747 //Verifica se o botão do cronômetro deve aparecer
7748 if(dadosAberturaBolsa.exibirContador && !$('#manutencao-bolsa').val()){
7749 textoBotaoContadorBolsa = dadosAberturaBolsa.textoContador;
7750 exibirContadorBolsa = true;
7751 }
7752
7753 if(exibirBotaoBolsa)
7754 $('.codigoOferta_'+codigoOfertaRetornoBolsa+' .ssp-card-oferta-curso .ssp-container-botao-bolsa').append( criaBotaoBolsa(dadosOferta, textoBotaoBolsa, classeBotaoBolsa) )
7755 else if(exibirContadorBolsa)
7756 $('.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>')
7757 else {
7758 $('.codigoOferta_'+codigoOfertaRetornoBolsa+'.content-btn-bolsa').hide()
7759 $('.show-price-content.codigoOferta_'+oferta.codigoOferta + ' .ou-separator-desconto').hide()
7760 }
7761
7762 }else{
7763 //EMED
7764 if(isEmed){
7765 verificaBotoesEmed(oferta, false);
7766 }
7767 }
7768
7769 controlaPaginaBolsa()
7770 })
7771 .fail(function(){
7772 $('.content-btn-bolsa.codigoOferta_'+oferta.codigoOferta).hide()
7773 $('.show-price-content.codigoOferta_'+oferta.codigoOferta + ' .ou-separator-desconto').hide()
7774
7775 //EMED
7776 if(isEmed){
7777 verificaBotoesEmed(oferta, false);
7778 }
7779 });
7780
7781
7782 }
7783
7784 }
7785
7786 function controlaPaginaBolsa(){
7787 if(ofertasComBolsa)
7788 $("#ssp-abrir-pagina-bolsa").removeClass("d-none")
7789 else
7790 $("#ssp-abrir-pagina-bolsa").addClass("d-none")
7791 }
7792
7793 function associaEventoBtnFormaPagamento(i){
7794 var modal = document.getElementById("myModal_"+i);
7795
7796 var btn = document.getElementById("myBtn_"+i);
7797
7798 if(btn!=null){
7799 btn.onclick = function(ev) {
7800 event.preventDefault()
7801
7802 $('#modalExtAluno_'+i).addClass('d-none');
7803
7804 var elem = $(ev.target);
7805 var _modal = document.getElementById(
7806 'myModal_'+elem.data('index'));
7807 _modal.style.display = "block";
7808 $('#myModal_'+i).find('.modal-extensao_content:first-child').removeClass('d-none');
7809
7810 }
7811 }
7812
7813
7814
7815
7816 }
7817
7818
7819 function actionBtnComprar(elem){
7820
7821 // Montar object push - google tag manager - 3
7822 ofertaSelecionada = itensEcommerce.get(elem.attr('data-evento'))
7823 sendEventEcommerce("select_item", ofertaSelecionada);
7824 sendEventEcommerce("view_item", ofertaSelecionada);
7825
7826 //Verifica se deve exibir o modal com a localização
7827 if(elem.attr('data-espaco-ex') == 'true'){
7828 $('#btnCompraLocal_'+elem.data('index')).show();
7829
7830 //Limpa onclicks para nao repetir execucao
7831 $('#modalAntesCompra_'+elem.data('index')).off('click', '#btnCompraLocal_'+elem.data('index'))
7832 $('#modalAntesCompra_'+elem.data('index')).on('click', '#btnCompraLocal_'+elem.data('index'), function () {
7833 // Montar object push - google tag manager - 4
7834 sendEventEcommerce("add_to_cart", ofertaSelecionada);
7835 if( elem.attr('data-destino-compra') != '2' )
7836 sendEventEcommerce("begin_checkout", ofertaSelecionada);
7837 })
7838 $('#btnBolsaLocal_'+elem.data('index')).hide();
7839 const _modal = $('#modalAntesCompra_'+elem.data('index'));
7840 _modal.css('display','flex');
7841 }else{
7842 var urlCompra = linkBotaoCompra.replace('\{codigoUnidade\}', elem.attr('data-unidade')).replace('\{codigoOferta\}', elem.attr('data-evento'));
7843
7844 if( elem.attr('data-destino-compra') == '2' ){
7845 var dataEfetivaFormat = formataDataComBarra($('[name="dataEfetivaSTR"]').val());
7846
7847 addItemBackpack(elem.attr('data-evento'), '#' + elem.attr('id'),elem.attr('data-unidade'), dataEfetivaFormat);
7848
7849 }else{
7850 window.open(urlCompra, '_blank');
7851 }
7852 }
7853
7854
7855
7856 }
7857
7858 function associaEventoBtnComprar(i){
7859 var btnComprar = document.getElementById("btnComprar_"+i);
7860
7861 if(btnComprar != null && !btnComprar.classList.contains('disabled')){
7862 btnComprar.onclick = function(ev) {
7863
7864 ev.preventDefault()
7865 var elem = $(ev.target);
7866 actionBtnComprar(elem);
7867
7868 }
7869 }
7870 }
7871
7872 function associaEventoBtnComprarDentroFormaPgto(i){
7873 var btnComprarFormaPgto = document.getElementById("btnComprarFormaPgto_"+i);
7874
7875 if(btnComprarFormaPgto != null && !btnComprarFormaPgto.classList.contains('disabled')){
7876 btnComprarFormaPgto.onclick = function(ev) {
7877 event.preventDefault()
7878 var elem = $('#btnComprarFormaPgto_'+i);
7879 actionBtnComprar(elem);
7880 }
7881 }
7882 }
7883
7884 function associaEventoBtnComprarConhecaDescontoOk(i){
7885 var btnComprarConhecaDescontoOk = document.getElementById("btnComprarConhecaDescontoOk_"+i);
7886
7887 if(btnComprarConhecaDescontoOk != null){
7888 btnComprarConhecaDescontoOk.onclick = function(ev) {
7889 event.preventDefault()
7890 var elem = $(ev.target);
7891 actionBtnComprar(elem);
7892 }
7893 }
7894 }
7895
7896 function associaEventoBtnComprarConhecaDescontoNot(i){
7897 var btnComprarConhecaDescontoNot = document.getElementById("btnComprarConhecaDescontoNot_"+i);
7898
7899 if(btnComprarConhecaDescontoNot != null){
7900 btnComprarConhecaDescontoNot.onclick = function(ev) {
7901 event.preventDefault()
7902 var elem = $(ev.target);
7903 actionBtnComprar(elem);
7904 }
7905 }
7906 }
7907
7908 function associaEventoBtnAlunoNao(i){
7909 var btnAlunoNao = document.getElementById("btn-aluno-nao_"+i);
7910
7911 if(btnAlunoNao != null){
7912 btnAlunoNao.onclick = function(ev) {
7913 event.preventDefault()
7914 var elem = $(ev.target);
7915 elem.addClass('modal-extensao-btn-aluno-sim-ativo'),
7916 elem.closest('.sim').removeClass('modal-extensao-btn-aluno-sim-ativo');
7917 elem.parent().siblings().find('button').removeClass('modal-extensao-btn-aluno-sim-ativo')
7918 $('#msg-alunoNao_'+i).removeClass('d-none');
7919 $('#msg-alunoSim_'+i).addClass('d-none');
7920 }
7921 }
7922 }
7923
7924 function associaEventoBtnAlunoSim(i){
7925 var btnAlunoSim = document.getElementById("btn-aluno-sim_"+i);
7926
7927 if(btnAlunoSim != null){
7928 btnAlunoSim.onclick = function(ev) {
7929 event.preventDefault()
7930 var elem = $(ev.target);
7931 elem.addClass('modal-extensao-btn-aluno-sim-ativo'),
7932 elem.closest('.nao').removeClass('modal-extensao-btn-aluno-sim-ativo');
7933 elem.parent().siblings().find('button').removeClass('modal-extensao-btn-aluno-sim-ativo')
7934 $('#msg-alunoSim_'+i).removeClass('d-none');
7935 $('#msg-alunoNao_'+i).addClass('d-none');
7936
7937 }
7938 }
7939 }
7940
7941 function associaEventoBtnConheca(i){
7942 var btnModalExtConheca = document.getElementById("btnModalExtConheca_"+i);
7943
7944 if(btnModalExtConheca != null){
7945 btnModalExtConheca.onclick = function(ev) {
7946 event.preventDefault();
7947 var elem = $(ev.target);
7948 elem.closest('.modal-extensao_content').addClass('d-none');
7949 $('#modalExtAluno_'+i).removeClass('d-none');
7950 $('#msg-alunoSim_'+i).addClass('d-none');
7951 $('#msg-alunoNao_'+i).addClass('d-none');
7952 $('#btn-aluno-sim_'+i).removeClass('modal-extensao-btn-aluno-sim-ativo');
7953 $('#btn-aluno-nao_'+i).removeClass('modal-extensao-btn-aluno-sim-ativo');
7954
7955 }
7956 }
7957 }
7958
7959 function associaEventoBtnLocalRealizacao(i){
7960 var btnLocalRealizacao = document.getElementById("btnLocalRealizacao_"+i);
7961
7962 if(btnLocalRealizacao!=null){
7963 btnLocalRealizacao.onclick = function(ev) {
7964 event.preventDefault();
7965 var elem = $(ev.target);
7966 var _modal = document.getElementById(
7967 'modalLocalRealizacao_'+elem.data('index'));
7968 _modal.style.display = "flex";
7969 }
7970 }
7971 }
7972
7973 function associaEventosFecharModal(i){
7974
7975 var span = document.getElementsByClassName("ssp-card-modal-forma-pagamento__btn-close_"+i);
7976 var closeModalLocalRealizacao = document.getElementsByClassName("ssp-card-modal-local-realizacao__btn-close_"+i)[0];
7977 var closeModalAntesCompra = document.getElementsByClassName("ssp-card-modal-antes-compra__btn-close_"+i)[0];
7978 var closeModalSelecionarOutro = document.getElementsByClassName("ssp-card-modal-selecionar-outro__btn-close_"+i)[0];
7979 var btnEntendiLocalRealizacao = document.getElementsByClassName("ssp-modal-local-realizacao__btn_"+i)[0];
7980 var closeModalBotaoBolsa = document.getElementById("btnBolsaLocal_"+i)
7981
7982 if(isEmed){
7983 var closeModalFormaPagamento = document.getElementsByClassName("ssp-btn-emed__voltar-curso_"+i);
7984 for (const val of closeModalFormaPagamento) {
7985
7986 val.onclick = function() {
7987 $('[id^="myModal_"]').each(function(index,modal){
7988 modal.style.display = "none";
7989 });
7990 }
7991 };
7992 }
7993
7994 //event close modal
7995 for (const val of span) {
7996
7997 val.onclick = function() {
7998 $('[id^="myModal_"]').each(function(index,modal){
7999 modal.style.display = "none";
8000 });
8001 }
8002 };
8003
8004 closeModalLocalRealizacao.onclick = function() {
8005
8006 $('[id^="modalLocalRealizacao_"]').each(function(index,modal){
8007 modal.style.display = "none";
8008
8009 });
8010 }
8011
8012 closeModalAntesCompra.onclick = function() {
8013
8014 $('[id^="modalAntesCompra_"], [id^="modalAntesCompraEmed_"]').each(function(index,modal){
8015 modal.style.display = "none";
8016 });
8017 }
8018
8019 closeModalSelecionarOutro.onclick = function() {
8020
8021 $('[id^="modalAntesCompra_"], [id^="modalAntesCompraEmed_"]').each(function(index,modal){
8022 modal.style.display = "none";
8023 });
8024 }
8025
8026 btnEntendiLocalRealizacao.onclick = function() {
8027
8028 $('[id^="modalLocalRealizacao_"]').each(function(index,modal){
8029 modal.style.display = "none";
8030 });
8031 }
8032
8033 if(closeModalBotaoBolsa != null){
8034 closeModalBotaoBolsa.onclick = function() {
8035
8036 $('[id^="modalAntesCompra_"], [id^="modalAntesCompraEmed_"]').each(function(index,modal){
8037 modal.style.display = "none";
8038 });
8039 }
8040 }
8041
8042 // When the user clicks anywhere outside of the modal, close it
8043 window.onclick = function(event) {
8044
8045 $('[id^="myModal_"]').each(function(index,_modal){
8046 if (event.target == _modal)
8047 _modal.style.display = "none";
8048 });
8049 $('[id^="modalLocalRealizacao_"]').each(function(index,_modal){
8050 if (event.target == _modal)
8051 _modal.style.display = "none";
8052 });
8053
8054 $('[id^="modalAntesCompra_"], [id^="modalAntesCompraEmed_"]').each(function(index,_modal){
8055 if (event.target == _modal)
8056 _modal.style.display = "none";
8057 });
8058 }
8059 }
8060
8061 function turmasIniciadas(dataInicioCurso){
8062
8063 var hoje = new Date();
8064 var dataInicioPartes = dataInicioCurso.split('/');
8065 var dataInicioCursoOferta = new Date(dataInicioPartes[2], dataInicioPartes[1] - 1, dataInicioPartes[0] , hoje.getHours(),hoje.getMinutes(),hoje.getSeconds(),hoje.getMilliseconds());
8066
8067 return dataInicioCursoOferta.getTime() <= hoje.getTime();
8068 }
8069
8070
8071 function concatSTR(str1, str2, separador){
8072
8073 if(str2){
8074
8075 return str1+separador+str2;
8076 }
8077 return str1;
8078 }
8079
8080 //Formata exibicao de datas conforme especificacao GCR
8081 function formataPeriodo(dataInicio, dataFim){
8082
8083 var dtInicioPartes = dataInicio.split('/');
8084 var dtFimPartes = dataFim.split('/');
8085
8086 //Não exibir o número zero antes dos números e o dia 1 como 1º
8087 var dInicioFormatada = (parseInt(dtInicioPartes[0].trim()) == 1 ? '1º' : parseInt(dtInicioPartes[0].trim())) +'/'+parseInt(dtInicioPartes[1].trim())+'/'+dtInicioPartes[2].trim();
8088 var dFimFormatada = (parseInt(dtFimPartes[0].trim()) == 1 ? '1º' : parseInt(dtFimPartes[0].trim())) +'/'+parseInt(dtFimPartes[1].trim())+'/'+dtFimPartes[2].trim();
8089
8090 //Quando um curso inicia e finaliza dentro do mesmo ano: 17/2 a 25/4/2020
8091 if(dtInicioPartes[2].trim() == dtFimPartes[2].trim()){
8092
8093 dInicioFormatada = (parseInt(dtInicioPartes[0].trim()) == 1 ? '1º' : parseInt(dtInicioPartes[0].trim()))+'/'+parseInt(dtInicioPartes[1].trim());
8094
8095 //Quando um curso inicia e finaliza dentro do mesmo mês: 5 a 30/4/2020
8096 if(dtInicioPartes[1].trim() == dtFimPartes[1].trim())
8097 dInicioFormatada = (parseInt(dtInicioPartes[0].trim()) == 1 ? '1º' : parseInt(dtInicioPartes[0].trim()));
8098 }
8099
8100 return dInicioFormatada + ' a ' + dFimFormatada;
8101 }
8102
8103 //Decrementa os contadores de abertudas de bolsa
8104 function atualizaTempoAberturasBolsas() {
8105
8106 var btnsContador = (isEmed) ? $('[id^="btnContadorBolsa_"], [id^="btnContadorComprar_"]') : $('[id^="btnContadorBolsa_"]');
8107
8108 btnsContador.each(function() {
8109
8110 var index = $(this).data('index');
8111 var elId = $(this).attr('id');
8112 var btnContent = $(this).parent('.ssp-btn-group__content');
8113
8114 if(isEmed){
8115 //EMED filtra ofertas e usa outra lista para referenciar as ofertas carregadas
8116 var dadosAberturaBolsa = calculaTempoAberturaBolsa((elId.indexOf('btnContadorBolsa') >= 0) ? ofertasMap.get('' +index).dataAberturaBolsaOferta : ofertasMap.get('' +index).dataAberturaMatricula, ofertasMap.get('' + index).horaAberturaBolsaOferta);
8117 }else{
8118 //calcula o tempo até abertura da bolsa, se houver (apenas depois das 08hrs)
8119 var dadosAberturaBolsa = calculaTempoAberturaBolsa(objsTela.ofertas[index].dataAberturaBolsaOferta, objsTela.ofertas[index].horaAberturaBolsaOferta, objsTela.ofertas[index].botaoBolsaOferta);
8120 }
8121
8122 $(this).find('span').text(dadosAberturaBolsa.hours+':'+dadosAberturaBolsa.minutes+':'+dadosAberturaBolsa.seconds);
8123
8124 //Se esgotou o contador
8125 if(dadosAberturaBolsa.hours == 0 && dadosAberturaBolsa.minutes == 0 && dadosAberturaBolsa.seconds == 0){
8126
8127 //remove o contador
8128 $(this).remove();
8129
8130 //Habilitar inscrição EMED
8131 if(isEmed){
8132 var ofertaEmed = ofertasMap.get('' +index);
8133 var btnIndex = elId.slice(elId.indexOf('_')+1);
8134 var elementoPai = $('.codigoOferta_'+ofertaEmed.codigoOferta+' .ssp-ofertas-emed__card-info-investimento');
8135
8136 if(elId.indexOf('btnContadorBolsa') >= 0){
8137 if($('#manutencao-bolsa').val())
8138 criaBotaoBolsaEmed(ofertaEmed, $('#manutencao-bolsa').val(), 'disabled manutencao');
8139 else if(ofertaEmed.vagasBolsaOferta == true || ofertaEmed.vagasBolsaOferta == "true")
8140 criaBotaoBolsaEmed(ofertaEmed, 'Bolsa de estudo', '');
8141 else
8142 criaBotaoBolsaEmed(ofertaEmed, 'Bolsas de Estudo Esgotadas', 'disabled');
8143 }else if(elId.indexOf('btnContadorComprar') >= 0){
8144
8145 var textoBotao, classeBotao;
8146
8147 textoBotao = $('#manutencao-compra').val() || 'Fazer matrícula';
8148 classeBotao = $('#manutencao-compra').val() ? 'disabled manutencao' : '';
8149
8150 //Garante a ordenação dos botoes (matricula depois bolsa)
8151 const botaoBolsa = document.getElementById('btnBolsa_' + btnIndex) || document.getElementById('btnContadorBolsa_' + btnIndex);
8152
8153 botaoBolsa?.remove(); // Remove se existir
8154
8155 criaBotaoInscreverEmed(ofertaEmed, textoBotao, classeBotao, 'btnComprarEmed_' + ofertaEmed.indice, elementoPai);
8156
8157 if (botaoBolsa) {
8158 elementoPai.append(botaoBolsa);
8159 }
8160
8161 //Altera o botao do modal de pagamento
8162 var modal = $('#myModal_' + btnIndex).find('.ssp-card-modal-forma-pagamento');
8163 var btnModal = modal.find('#btnComprarEmedModal_' + btnIndex);
8164 if(btnModal){
8165 btnModal.remove();
8166 criaBotaoInscreverEmedModal(ofertaEmed, textoBotao, classeBotao, 'btnComprarEmedModal_' + btnIndex, modal, btnIndex);
8167 preencheDadosEmedModal(ofertaEmed,modal);
8168 }
8169
8170
8171 }
8172
8173 }else{
8174
8175 //Checa as condições das vagas do botão de bolsa
8176 var btnBolsaHTML = null;
8177 if($('#manutencao-bolsa').val())
8178 btnBolsaHTML = criaBotaoBolsa(objsTela.ofertas[index], $('#manutencao-bolsa').val(), 'disabled manutencao');
8179 else if(objsTela.ofertas[index].vagasBolsaOferta == true || objsTela.ofertas[index].vagasBolsaOferta == "true")
8180 btnBolsaHTML = criaBotaoBolsa(objsTela.ofertas[index], 'Inscrever para bolsa de estudo');
8181 else
8182 btnBolsaHTML = criaBotaoBolsa(objsTela.ofertas[index], 'Vagas esgotadas para bolsas de estudo', 'disabled');
8183
8184 $('.codigoOferta_'+ objsTela.ofertas[index].codigoOferta +'.ssp-container-botao-bolsa').append(btnBolsaHTML);
8185
8186
8187 }
8188 }
8189
8190 });
8191
8192 }
8193
8194 // Retorna um objeto com o tempo de abertura da bolsa, em horas, minutos e segundos
8195 function calculaTempoAberturaBolsa(dataAberturaBolsa, horaAberturaBolsa, botaoBolsa){
8196
8197 var dadosAberturaBolsa = {
8198 days : '',
8199 hours : '',
8200 minutes : '',
8201 seconds : '',
8202 bolsaJaAberta: false,
8203 exibirContador: false,
8204 textoContador: ''
8205 };
8206
8207 if(dataAberturaBolsa.length == 0 || horaAberturaBolsa.length == 0)
8208 return dadosAberturaBolsa;
8209
8210 var now = todayG;
8211 var dia = now.getDate();
8212 var horarioDia = now.getHours();
8213
8214 var tempoRestante= tempoRestanteAberturaBolsa(dataAberturaBolsa, horaAberturaBolsa);
8215
8216 //console.log('tempo restante '+tempoRestante);
8217
8218 var diaAberturaBolsa = dataAberturaBolsa.split('-')[2];
8219
8220 var delta = tempoRestante / 1000;
8221
8222 var days = Math.floor(delta / 86400);
8223
8224 delta -= days * 86400;
8225
8226 var hours = Math.floor(delta / 3600) % 24;
8227 delta -= hours * 3600;
8228
8229 var minutes = Math.floor(delta / 60) % 60;
8230 delta -= minutes * 60;
8231
8232 var seconds = Math.floor(delta % 60);
8233
8234 //Zerar contador para data que ja passou
8235 if(days < 0){
8236 dadosAberturaBolsa.days = 0;
8237 dadosAberturaBolsa.hours = '00';
8238 dadosAberturaBolsa.minutes = '00';
8239 dadosAberturaBolsa.seconds = '00';
8240 }else{
8241 dadosAberturaBolsa.days = days;
8242 dadosAberturaBolsa.hours = hours < 10 ? '0'+hours : hours;
8243 dadosAberturaBolsa.minutes = minutes < 10 ? '0'+minutes : minutes;
8244 dadosAberturaBolsa.seconds = seconds < 10 ? '0'+seconds : seconds;
8245 }
8246
8247 dadosAberturaBolsa.bolsaAberta = days <= 0 && hours <= 0 && minutes <= 0 && seconds <= 0;
8248 var horaExibeContador = 8;
8249 if(!isEmed && botaoBolsa == false){
8250 dadosAberturaBolsa.exibirContador = false;
8251 }else{
8252 dadosAberturaBolsa.exibirContador = days == 0 && horarioDia >= horaExibeContador && !dadosAberturaBolsa.bolsaAberta && (diaAberturaBolsa == dia);
8253 dadosAberturaBolsa.textoContador = dadosAberturaBolsa.hours + ':' + dadosAberturaBolsa.minutes + ":"+ dadosAberturaBolsa.seconds;
8254 }
8255 dadosAberturaBolsa.bolsaJaAberta = tempoRestante < 0;
8256
8257 return dadosAberturaBolsa;
8258
8259 }
8260
8261 // Verifica se uma oferrta já chegou sua data de abertura
8262 function tempoRestanteAberturaBolsa(dataAberturaBolsa, horaAberturaBolsa){
8263 // console.log(dataAberturaBolsa);
8264 // console.log(horaAberturaBolsa);
8265
8266 //var today = new Date();
8267
8268
8269 //console.log( "TodayG "+ todayG);
8270
8271 //Precisa fazer formatação nos horários pois pode estar como 9h ou 9h30
8272 var partesHora = horaAberturaBolsa.split('h');
8273
8274 var partesHora = partesHora.filter(function (el) {
8275 return el != "";
8276 });
8277
8278 //formato 9h
8279 if(partesHora.length == 1)
8280 var aberturaBolsa = new Date(dataAberturaBolsa+'T'+horaAberturaBolsa.replace('h', '').trim()+":00");
8281
8282 else{
8283
8284 //format 9h3
8285 if(partesHora[1].length == 1)
8286 var aberturaBolsa = new Date(dataAberturaBolsa+'T'+partesHora[0].replace('h', '').trim()+':'+partesHora[1] +'0');
8287
8288 //formato 9h30
8289 else
8290 var aberturaBolsa = new Date(dataAberturaBolsa+'T'+partesHora[0].replace('h', '').trim()+':'+partesHora[1]);
8291 }
8292
8293 // console.log(aberturaBolsa);
8294 return aberturaBolsa - todayG;
8295 }
8296
8297 function formataDataAberturaBolsa(dataAberturaBolsa, horaAberturaBolsa){
8298 var dataPartes = dataAberturaBolsa.split('-');
8299
8300 return dataPartes[2]+'/'+dataPartes[1]+ ' às '+horaAberturaBolsa.replace('h', '').trim()+' horas';
8301
8302 }
8303
8304 function formataValor(valor){
8305
8306 if(!valor.toString().includes(".")){
8307 valor = parseFloat(valor).toLocaleString('pt-BR')+",00";
8308 }else{
8309 valor = parseFloat(valor).toLocaleString('pt-BR');
8310
8311 if(valor.split(",").length == 2){
8312
8313 if(valor.split(",")[1].length == 1)
8314 valor += "0";
8315
8316 }else
8317 valor += ",00";
8318 }
8319
8320 return valor;
8321 }
8322
8323 function ajustarCasasDecimaisSemArredondar(numero, casas) {
8324 const str = numero + ''
8325 const arr = str.split('.')
8326 return parseFloat(arr[0].concat('.').concat(arr[1] ? arr[1].substring(0, casas) : '0'))
8327 }
8328
8329 function possuiCriteriosDesconto2022(dt) {
8330 return dt.substring(dt.lastIndexOf('/') + 1) >= 2022
8331 && (
8332 $('[name="tipoCurso"]').val() == 'livre'
8333 || ($('[name="tipoCurso"]').val() == 'tecnico' && $('[name="modalidades"]').val() == 'espec.-tecnica-de-nivel-medio')
8334 || $('[name="tipoCurso"]').val() == 'extensao'
8335 )
8336 }
8337
8338 function strToFloat(str) {
8339 const separator = str.includes(',') ? ',' : '.'
8340
8341 const numArr = str.split(separator)
8342 const inteiro = numArr[0].replaceAll('.', '').replaceAll(',', '.')
8343 const decimal = numArr[1] ? numArr[1].replaceAll('.', '').replaceAll(',', '.') : ''
8344 return parseFloat(inteiro.concat('.').concat(decimal ? decimal : '0'))
8345 }
8346
8347 function possuiMensalidade99(oferta) {
8348 if(!oferta.precoVendaMaxParcelaOferta
8349 || (oferta.precoVendaMaxParcelaOferta != 99
8350 && parseFloat(oferta.precoParcelaCartoes.replace(',','.')) != 99
8351 && parseFloat(oferta.precoParcelaBoleto.replace(',','.')) != 99))
8352 return false
8353
8354 if($('[name="modalidades"]').val() == 'hab.-tecnica-de-nivel-medio')
8355 return true
8356
8357 if($('[name="modalidades"]').val() == 'espec.-tecnica-de-nivel-medio')
8358 return true
8359
8360 if($('[name="modalidades"]').val() == 'qualificacao-profissional')
8361 return true
8362
8363 return false
8364 }
8365
8366 function htmlSlickArea(index, oferta, diasSemanaHTML, codigoUnidade) {
8367 let temDesconto = possuiCriteriosDesconto2022(oferta.dataInicio)
8368 temDesconto = temDesconto && !possuiMensalidade99(oferta)
8369
8370 const btnLocalReal = function(oferta){
8371
8372 var btn = `<div class="container-local-realizacao ` + ((oferta.espacoExterno == 'true'|| (isHibrido && temTextoParaFormatoHibrido)) ? '' : 'd-none-btn') + (localLivreOnline(oferta.localEspacoExterno) ? ' idioma-online' : '') + `">`;
8373
8374 btn += (localLivreOnline(oferta.localEspacoExterno)) ?
8375 `<a id="btnLocalRealizacao_` + index + `" data-index="` + index + `" class="btn-idiomas__aula-online" href="#">
8376 <i class="fas fa-wifi"></i>Aulas Online - ao vivo</a>`
8377 : `<a id="btnLocalRealizacao_` + index + `" data-index="` + index + `" class="ssp-card-oferta-curso__local-realizacao-content__title" href="#">
8378 <i class="fas fa-user"></i>Onde as aulas vão acontecer?</a>`;
8379
8380 btn += `</div>`;
8381
8382 return btn;
8383
8384 }
8385
8386 // Card Oferta
8387
8388 let result = `
8389 <div class="slick-area__item card_oferta_` + index + ` codigoOferta_` + oferta.codigoOferta + ` ` + (temDesconto ? 'ssp-desconto-2022' : '') + `">
8390
8391 <div class="ssp-card-oferta-curso">
8392
8393 <div class="content-data-dias">
8394
8395 <div class="ssp-card-oferta__info-turma-iniciada" id="aviso-turma-iniciada-` + index + `" style="display:none">
8396 <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>
8397 </div>
8398
8399
8400 <div>
8401 <small class="ssp-card-oferta-curso__title-item">Período:</small>
8402 <h6 class="ssp-card-oferta-curso__item-data-periodo item-data-periodo_` + index + `">` + formataPeriodo(oferta.dataInicio, oferta.dataFim) + `</h6>
8403 </div>
8404
8405 <div class="content-horario-dias-semana">
8406
8407 <div class="horario">
8408 <small class="ssp-card-oferta-curso__title-item">Horário e dias das aulas:</small>
8409 </div> ` +
8410
8411 `<div class="ssp-card-oferta-curso__dia-hora_content">
8412 ` + diasSemanaHTML + `
8413 </div>
8414
8415 </div>
8416
8417 ` + btnLocalReal(oferta);
8418
8419 result = result + `
8420 </div>
8421 `
8422
8423 if(excecaoCursoGratuito(oferta)){
8424 result += montaRestanteHTMLexcecaoCursoGratuito(index,oferta);
8425 return result;
8426 }
8427
8428 //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
8429 //Adicionada a validação dos preços da oferta em 07/06/2022 - Tarefa 9498
8430 const estaSemValorOferta = oferta.botaoCompraOferta == ''
8431 || oferta.botaoCompraOferta == 'false'
8432 || !oferta.precoVendaOferta
8433 || !oferta.precoCheioOferta
8434 || !oferta.precoVendaMaxParcelaOferta
8435 || strToFloat(oferta.precoVendaOferta) == 0
8436 || strToFloat(oferta.precoCheioOferta) == 0
8437 || strToFloat(oferta.precoVendaMaxParcelaOferta) == 0
8438
8439 //Trecho inicial do Bolsa de estudo
8440 result += `<div class="content-btn-bolsa codigoOferta_` + oferta.codigoOferta + (estaSemValorOferta ? ' pb-0' : '') + `">
8441 <div class="ssp-card-oferta__info-turma-content">
8442 <h6 class="ssp-card-oferta__info-turma mb-0">Bolsas de estudo</h6>
8443 </div>
8444 <div class="codigoOferta_` + oferta.codigoOferta + ` ssp-container-botao-bolsa"></div>
8445 </div>
8446 `
8447
8448 if(estaSemValorOferta) {
8449 result = result + `
8450 <div class="content-buttons hide">
8451 </div>
8452 `
8453 return result;
8454 }
8455
8456
8457 //Trecho final do Bolsa de estudo e inclusao de botao de expansao do "Valores para compra"
8458 result += ` <div class="show-price-content codigoOferta_` + oferta.codigoOferta + `">
8459 <div class="ou-separator-desconto">Ou</div>
8460 <button type="button" class="btn-show-price">
8461 <p>Saiba mais sobre:</p>
8462 <div onclick="togglePriceCard('codigoOferta_` + oferta.codigoOferta + `')">
8463 <i class="fas fa-money-bill"></i>
8464 <span>Valores para compra</span>
8465 </div>
8466 </button>
8467 </div>
8468 `
8469
8470 result = result + `
8471 <div class="content-valores-descontos hide-price codigoOferta_` + oferta.codigoOferta + `">
8472 `
8473
8474 if( temDesconto && !ehCursoTrampolim ) {
8475 result = result + `
8476 <div class="ssp-card-oferta__info-turma-content">
8477 <h6 class="ssp-card-oferta__info-turma">Valores para compra</h6>
8478 </div>
8479
8480 <div class="block-valor-desconto">
8481
8482 <div class="tag-label-desconto">
8483 <small class="ssp-card-oferta-curso__title-item">Valor com </small>
8484 <span class="ssp-card-oferta-curso__valor-desconto">50% de desconto*</span>
8485 </div>
8486
8487 <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>
8488
8489 <div class="ssp-card-oferta-curso__desconto-content">
8490 <p>De: <span class="ssp-card-oferta-curso__valor-antigo">R$ ` + formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaOferta), 2)) + `</span></p>
8491 <p>Por: <span class="ssp-card-oferta-curso__valor-desconto">R$ ` + formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaOferta)/2, 2)) + `</span></p>
8492 </div>
8493 `
8494
8495 if($('[name="tipoCurso"]').val() == 'extensao') {
8496 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>`
8497 } else {
8498 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>`
8499 }
8500
8501 result = result + `
8502 <div class="ou-separator-desconto">Ou</div>
8503
8504 <div class="block-valor-total">
8505
8506 <small class="ssp-card-oferta-curso__title-item">Valor sem desconto:</small>
8507
8508 <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(oferta.precoVendaMaxParcelaOferta) + `</h6>
8509
8510 <div class="ssp-card-oferta-curso__desconto-content">
8511 <p>Valor total: <strong>R$ ` + formataValor(strToFloat(oferta.precoVendaOferta)) + `</strong></p>
8512 </div>
8513
8514 </div>
8515 `
8516 }else{
8517
8518 // itens que são diferentes entre técnico e livres comprado a extensão
8519 if($('[name="tipoCurso"]').val() == 'extensao'){
8520 result = result + `
8521
8522 <div class="block-valor-total">
8523
8524 <div class="investimento" id="container_investimento_` + index + `">
8525
8526 <small class="ssp-card-oferta-curso__title-item">Investimento:</small>
8527
8528 <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaMaxParcelaOferta))) + `</h6>
8529
8530 <div class="ssp-card-oferta-curso__desconto-content">
8531 <p>Ou: <span class="ssp-card-oferta-curso__valor-antigo text-decoration-none">R$ ` + formataValor(oferta.precoVendaOferta) + `</span> à vista</p>
8532 </div>
8533
8534 </div>
8535
8536 </div>
8537 `
8538 } else {
8539 result = result + `
8540 <div class="block-valor-total">
8541 <div class="investimento" id="container_investimento_` + index + `">
8542 `
8543
8544 // Não mostrar mensagem de 30% de desconto em casos especificos
8545 if(temDesconto){
8546 result = result + `
8547 <small class="ssp-card-oferta-curso__title-item font-weight-bold">Valor com 30% de desconto:</small>
8548 `
8549 }
8550
8551 if(oferta.precoCheioOferta == oferta.precoVendaOferta) {
8552 result = result + `
8553 <small class="ssp-card-oferta-curso__title-item">Valor do curso:</small>
8554 <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(oferta.precoVendaMaxParcelaOferta) + `</h6>
8555
8556 <div class="ssp-card-oferta-curso__desconto-content">
8557 <p>Ou <span class="ssp-card-oferta-curso__valor-antigo text-decoration-none">R$ ` + formataValor(oferta.precoVendaOferta) + `</span></p>
8558 </div>
8559 </div>
8560 </div>
8561 `
8562 } else {
8563 result = result + `
8564 <small class="ssp-card-oferta-curso__title-item">Investimento:</small>
8565 <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(oferta.precoVendaMaxParcelaOferta) + `</h6>
8566
8567 <div class="ssp-card-oferta-curso__desconto-content">
8568 <p>De: <span class="ssp-card-oferta-curso__valor-antigo">R$ ` + formataValor(oferta.precoCheioOferta) + `</span></p>
8569 <p>Por: <span class="ssp-card-oferta-curso__valor-desconto">R$ ` + formataValor(oferta.precoVendaOferta) + `</span></p>
8570 </div>
8571 </div>
8572 </div>
8573 `
8574 }
8575 }
8576 }
8577
8578 let dataBtnComprar = getObjBtnComprar(oferta);
8579
8580 // itens que são diferentes entre técnico e livres comprado a extensão
8581 result = result + `
8582
8583 <div class="ssp-card-oferta-curso__formas-pagamento-content" id="container_forma_pgto_` + index + `">
8584
8585 <span>Saiba mais sobre:</span>
8586
8587 <div>
8588 <i class="ssp-card-oferta-curso__formas-pagamento-content__icon-credit-card"></i>
8589 <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>
8590 </div>
8591
8592 </div>
8593
8594 <div class="content-buttons">
8595
8596 <div class="ssp-btn-group__content botoes-oferta-container_` + index + `">
8597
8598 <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>
8599
8600 </div>
8601
8602 </div>
8603
8604 </div>
8605
8606 </div>
8607 `
8608
8609 return result
8610 }
8611
8612 function montaRestanteHTMLexcecaoCursoGratuito(index, oferta){
8613
8614 let dataBtnComprarExcecao = getObjBtnComprar(oferta);
8615 let resultModalidade =
8616 `
8617 <div class="content-valores-descontos hide-price codigoOferta_` + oferta.codigoOferta + `">
8618 <div class="ssp-card-oferta__info-turma-content">
8619 <h6 class="ssp-card-oferta__info-turma">Curso gratuito</h6>
8620 </div>
8621 <div class="block-valor-total">
8622 <div class="investimento" id="container_investimento_` + index + `">
8623 <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>R$ 0,00</h6>
8624 </div>
8625 </div>
8626 <div class="content-buttons">
8627
8628 <div class="ssp-btn-group__content botoes-oferta-container_` + index + `">
8629
8630 <a href="#a" id="btnComprar_` + index + `" data-espaco-ex="` + dataBtnComprarExcecao.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 ` + dataBtnComprarExcecao.classeBotao + `" style="font-size:16px;font-weight: 600;">FAZER MATRÍCULA</a>
8631
8632 </div>
8633
8634 </div>
8635 </div>
8636 </div>
8637 `
8638 ;
8639 return resultModalidade;
8640
8641 }
8642
8643
8644 var htmlModalLocalRealizacao = '<div id="modalLocalRealizacao_{index}" class="ssp-modal">'
8645 htmlModalLocalRealizacao += '<div class="ssp-modal-local-realizacao">'
8646 htmlModalLocalRealizacao += '<div class="ssp-modal-local-realizacao__title-content">'
8647
8648 htmlModalLocalRealizacao += '{tituloLocalRealizacao}'
8649
8650 htmlModalLocalRealizacao += '<i class="ssp-card-modal-local-realizacao__btn-close_{index} ssp-card-modal-forma-pagamento__btn-close"></i>'
8651 htmlModalLocalRealizacao += '</div>'
8652 htmlModalLocalRealizacao += '<div class="ssp-modal-local-realizacao__texto">'
8653 htmlModalLocalRealizacao += '<p class="{classeTextoInfoLocalRealizacao}">A unidade {nomeUnidade} realizará as aulas em outro endereço, conforme informações abaixo:</p>'
8654 htmlModalLocalRealizacao += '<p><span class="ssp-modal-local-realizacao__subtitle localEspacoExternoTexto_{index}">{textoFormatoHibrido}{localEspacoExterno}</span></p>'
8655 htmlModalLocalRealizacao += '<address>'
8656 htmlModalLocalRealizacao += '<span id="endereco_realizacao_{index}" class="{classeEnderecoRealizacao}">{ruaEspacoExterno}, {numeroEspacoExterno} {complementoEspacoExterno}<br></span>'
8657 htmlModalLocalRealizacao += '<span id="bairro_realizacao_{index}" class="{classeBairroRealizacao}">Bairro: {bairroEspacoExterno}<br></span>'
8658 htmlModalLocalRealizacao += '<span id="cidade_realizacao_{index}" class="{classeCidadeRealizacao}">Cidade: {cidadeEspacoExterno} - SP<br></span>'
8659 htmlModalLocalRealizacao += '<span id="cep_realizacao_{index}" class="{classeCepRealizacao}">CEP: {cepEspacoExterno}</span>'
8660 htmlModalLocalRealizacao += '</address>'
8661 htmlModalLocalRealizacao += '<div class="btn ssp-modal-local-realizacao__btn-content">'
8662 htmlModalLocalRealizacao += '<a class="btn ssp-modal-local-realizacao__btn {classeEntendi} ssp-modal-local-realizacao__btn_{index}" href="#a">Entendi</a>'
8663 htmlModalLocalRealizacao +='</div>'
8664 htmlModalLocalRealizacao +='</div>'
8665 htmlModalLocalRealizacao +='</div>'
8666 htmlModalLocalRealizacao +='</div>';
8667
8668 var htmlModalAntesCompra = '<div id="modalAntesCompra_{index}" class="ssp-modal">'
8669 htmlModalAntesCompra += '<div class="ssp-modal-local-realizacao">'
8670 htmlModalAntesCompra += '<div class="ssp-modal-local-realizacao__title-content">'
8671 htmlModalAntesCompra += '<h6 class="ssp-modal-local-realizacao__title"> LEMBRETE IMPORTANTE!</h6>'
8672 htmlModalAntesCompra += '<i class="ssp-card-modal-antes-compra__btn-close_{index} ssp-card-modal-forma-pagamento__btn-close"></i>'
8673 htmlModalAntesCompra += '</div>'
8674 htmlModalAntesCompra += '<div class="ssp-modal-local-realizacao__texto">'
8675 htmlModalAntesCompra += '<p class="{classeTextoInfoLocalRealizacao}">A unidade {nomeUnidade} realizará as aulas em outro endereço, conforme informações abaixo:</p>'
8676 htmlModalAntesCompra += '<p><span class="ssp-modal-local-realizacao__subtitle localEspacoExternoTexto_{index}">{textoFormatoHibrido}{localEspacoExterno}</span></p>'
8677 htmlModalAntesCompra += '<address>'
8678 htmlModalAntesCompra += '<span id="endereco_realizacao_{index}" class="{classeEnderecoRealizacao}">{ruaEspacoExterno}, {numeroEspacoExterno} {complementoEspacoExterno}<br></span>'
8679 htmlModalAntesCompra += '<span id="bairro_realizacao_{index}" class="{classeBairroRealizacao}">Bairro: {bairroEspacoExterno}<br></span>'
8680 htmlModalAntesCompra += '<span id="cidade_realizacao_{index}" class="{classeCidadeRealizacao}">Cidade: {cidadeEspacoExterno} - SP<br></span>'
8681 htmlModalAntesCompra += '<span id="cep_realizacao_{index}" class="{classeCepRealizacao}">CEP: {cepEspacoExterno}</span>'
8682 htmlModalAntesCompra += '</address>'
8683 htmlModalAntesCompra += '<div class="btn ssp-modal-local-realizacao__btn-content">'
8684 htmlModalAntesCompra += '{componentBuyConfirmation}'
8685 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>'
8686 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>'
8687 htmlModalAntesCompra +='</div>'
8688 htmlModalAntesCompra +='</div>'
8689 htmlModalAntesCompra +='</div>'
8690 htmlModalAntesCompra +='</div>';
8691
8692 var htmlSlickAreaDiasSemana = '<div class="ssp-card-oferta-curso__dia-hora-item">'
8693 htmlSlickAreaDiasSemana +='<p class="ssp-card-oferta-curso__dia-hora-item__dia">'
8694 htmlSlickAreaDiasSemana += '<span data-dia-hora="dias-semana">{diasSemana}</span>'
8695 htmlSlickAreaDiasSemana += '<span data-dia-hora="horário">{horasSemana}</span>'
8696 htmlSlickAreaDiasSemana += '</p>'
8697 htmlSlickAreaDiasSemana += '</div>';
8698
8699
8700 //Montar object push - google tag manager - 5
8701 function criaItensEcommerce(ofertas){
8702
8703 let nomeUnidadeSelecionada = objsTela.unidades[ultimaUnidade].nome
8704
8705 let dadosCurso = {
8706 //Pegar do freemarker
8707 tituloComercial : $('[name="tituloComercial"]').val(),
8708 tipoCurso : $('[name="nomeCategoriaTipoCurso"]').val(),
8709 formato : $('[name="formato"]').data("formato")
8710 }
8711
8712 let ecommerceObject = {
8713
8714 item_id: "", //codOferta - oferta,
8715 item_name: "", //Nome do curso - curso,
8716 affiliation: "", //nome da unidade - oferta,
8717 currency: "BRL", //Moeda - "BRL",
8718 discount: "", //desconto - oferta,
8719 index: "", //indice da lista - i,
8720 item_brand: "Senac SP", //"Senac SP",
8721 item_category: "", //categoria do curso - curso,
8722 item_list_id: "", //"60",
8723 item_list_name: "", //"São Carlos" - Oferta,
8724 item_variant: "", //modalidade - curso,
8725 price: "", //preco cheio - oferta,
8726 quantity: 1
8727
8728 }
8729
8730 let itensEcommerce = new Map();
8731
8732 for(var i = 0; i < ofertas.length; i++){
8733
8734 itensEcommerce.set(ofertas[i].codigoOferta, {
8735
8736 item_id: ofertas[i].codigoOferta, //codOferta - oferta,
8737 item_name: dadosCurso.tituloComercial, //Nome do curso - curso,
8738 affiliation: nomeUnidadeSelecionada, //nome da unidade - oferta,
8739 currency: "BRL", //Moeda - "BRL",
8740 discount: parseFloat(ofertas[i].precoCheioOferta - ofertas[i].precoVendaOferta).toFixed(2), //desconto - oferta,
8741 index: i, //indice da lista - i,
8742 item_brand: "Senac SP", //"Senac SP",
8743 item_category: dadosCurso.tipoCurso, //categoria do curso - curso,
8744 item_list_id: objsTela.unidades[ultimaUnidade].codigoUnidade, //"60",
8745 item_list_name: nomeUnidadeSelecionada, //"São Carlos" - Oferta,
8746 item_variant: dadosCurso.formato, //modalidade - curso,
8747 price: parseFloat(ofertas[i].precoCheioOferta).toFixed(2), //preco cheio - oferta,
8748 quantity: 1
8749
8750 }
8751 )
8752 }
8753
8754 return itensEcommerce;
8755 }
8756
8757 //EMED - ELEMENTOS DINAMICOS
8758 const htmlSlickAreaEmed = function(oferta){
8759 var btnid = 'myBtn_' + oferta.indice;
8760 const diasHorarios = function(oferta){
8761 return oferta.diasDaSemanaOferta.join(', ').toLowerCase();
8762
8763 }
8764
8765
8766 return `
8767 <div class="ssp-ofertas-emed__card codigoOferta_`+ oferta.codigoOferta + `">
8768
8769 <div class="ssp-ofertas-emed__card-info-turma">
8770
8771 <div class="item-content">
8772 <i class="fas fa-calendar-alt calendar-icon-turma"></i>
8773 <p class="title-turma">`+ oferta.titulo +`</p>
8774 <span class="text-default" data-info="info-turma">Alunos na turma: <strong>até `+ oferta.qtdeTotalVagas +`</strong></span>
8775 </div>
8776
8777 <div class="content-previsao-inicio-termino">
8778
8779 <div class="item-content">
8780 <span class="text-default">Previsão de início:</span>
8781 <span class="text-default-lg">`+ formatarDataEmed(oferta.dataInicio,oferta.etapa,false) +`</span>
8782 </div>
8783
8784 <div class="item-divisor"></div>
8785
8786 <div class="item-content">
8787 <span class="text-default">Previsão de término:</span>
8788 <span class="text-default-lg">`+ formatarDataEmed(oferta.dataFim,oferta.etapa,true) +`</span>
8789 </div>
8790
8791 </div>
8792
8793
8794 <div class="item-divisor"></div>
8795
8796 <div class="item-content">
8797 <span class="text-default">Dias e horários das aulas:</span>
8798 <span class="text-default-lg" style="text-transform: capitalize;">`+ diasHorarios(oferta) +`</span>
8799 <span class="text-default-lg">`+ oferta.horaInicio.replace(':', 'h') + ' às ' + oferta.horaFimOferta.replace(':', 'h') +`</span>
8800 </div>
8801
8802 </div>
8803
8804 <div class="ssp-ofertas-emed__card-info-investimento">
8805 <p class="title-investimento">Investimento anual:</p>
8806
8807 <div class="item-content-investimento">
8808 <span class="txt-parcelas">Até `+ oferta.numeroMaxParcelasOferta +`x</span>
8809 <span class="txt-valor-parcela">R$ `+ formataValor(oferta.precoVendaMaxParcelaOferta) +`</span>
8810 </div>
8811
8812 <div class="item-content-investimento">
8813 <p class="txt-boleto-cartao">(boleto bancário ou cartão de crédito)</p>
8814 </div>
8815
8816 <div class="item-content-investimento">
8817 <i class="fas fa-credit-card icon-cartao-credito"></i>
8818 <a id="`+ btnid +`" data-index="`+ oferta.indice +`" href="#" class="link-descontos-parcelamentos">Descontos e Parcelamentos</a>
8819 </div>
8820
8821 </div>
8822
8823 </div>
8824
8825 `;
8826 }
8827
8828
8829 function loadCursosVocePodeGostar(){
8830
8831 if(isEmed){
8832 var url = urlSearchCursosPodeGostarEmed
8833 .replace('\{groupId\}', groupId)
8834 .replace('\{tiposDeCurso\}',$('[name="idTipoCurso"]').val())
8835 .replace('\{limit\}', 12)
8836 .replace('\{articleId\}', $('[name="articleId"]').val());
8837 }else{
8838 var url = urlSearchCursosPodeGostar
8839 .replace('\{companyId\}',themeDisplay.getCompanyId())
8840 .replace('\{groupId\}', groupId)
8841 .replace('\{userId\}',themeDisplay.getUserId())
8842 .replace('\{articleId\}',$('[name="articleId"]').val())
8843 .replace('\{limit\}', 12);
8844 }
8845
8846
8847 $.ajax({
8848 url : url,
8849 type : 'get',
8850 beforeSend: function(){
8851 loading('#slider-curso');
8852 }
8853 })
8854 .done(function(cursos){
8855
8856 if(cursos.length > 0){
8857
8858 cursos = JSON.parse(cursos);
8859
8860 if(isEmed) cursos = cursos['cursos'];
8861
8862 if(cursos.length > 0) $('#section-cursos-voce-pode-gostar').removeClass('d-none');
8863 else {
8864 $('#section-cursos-voce-pode-gostar').addClass('d-none');
8865 return;
8866 }
8867
8868 var articles = [];
8869
8870 $.each(cursos, function(k, c){
8871 articles.push(c.articleId);
8872 });
8873
8874 //Verifica a situação dos botoes de inscrições e bolsa
8875 $.ajax({
8876 url : '/o/senac-content-services/verificaBotoesInscricaoEBolsa/'+groupId+'/'+articles.join(','),
8877 type : 'get'
8878 })
8879 .done(function(infoBotoes){
8880
8881 if(infoBotoes.length > 0) {
8882
8883 infoBotoes = JSON.parse(infoBotoes);
8884
8885 $('#slider-curso').empty();
8886
8887 $.each(cursos, function(k, c){
8888 $('#slider-curso').append(buildCardCurso(c, infoBotoes));
8889
8890 });
8891
8892 $('#slider-curso').addClass(
8893 'slick-area slick-area--md-bleed slider-container slick-area-cursos-pode-gostar');
8894
8895 sliderCurso('.slick-area-cursos-pode-gostar');
8896 }
8897 });
8898 }
8899
8900 })
8901 .fail(function(jqXHR, textStatus, msg){
8902 // alert(msg);
8903 });
8904
8905 }
8906
8907 /*
8908 * Armazena a navegação em cookies, se habilitado
8909 */
8910 $(document).on("click", ".ck-curso", function() {
8911
8912 //Verifica se o cookie está habilitado
8913 if(getCookie('portalSenacCookie') != null){
8914
8915 var articleId = $(this).data('ck');
8916 manageCookieArray('ck-cursos', articleId);
8917
8918 }
8919
8920 });
8921
8922
8923
8924
8925
8926 $(function(){
8927
8928 if($('#unidades-ofertas').find('option').length ==0){
8929
8930 $('.ssp-container-selecione-unidade').addClass('d-none')
8931
8932 }
8933
8934 });
8935
8936 function avisoNovasTurmas(){
8937
8938
8939 window.event.preventDefault()
8940
8941 //var unidadeSelecionada = $('#select-registro-interesse').val();
8942 //este select tem 2 valores separados por @ -> categoryId@codUnidade
8943 // var unidadeSelecionada = $('#unidades-ofertas').val();
8944
8945 //Código fixo quando Senac Ao Vivo
8946 var codUnidadeSelectRegInt = (isAoVivo) ? codUnidadeSenacAoVivo : $('#unidades-ofertas').val().split("@")[1];
8947
8948 // if(codUnidadeSelectRegInt && codUnidadeSelectRegInt.length){
8949
8950 //Se ja tiver logado , redireciona para o registro
8951 if(getCookie('ticket') == null){
8952
8953 //Abre modal login
8954 $('#modal-login').removeClass('d-none');
8955
8956 }else{
8957
8958 abrirModalRegistroInteresse(codUnidadeSelectRegInt);
8959
8960 verificaBtnEnviarRegistroInteresseAtivo();
8961 }
8962
8963 window.onclick = function(event) {
8964 $('[id="modal-registro-interesse"]').each(function(index,_modal){
8965 if (event.target == _modal) {
8966 $('#modal-registro-interesse').addClass('d-none');
8967 $("body").removeClass("overflow-hidden")
8968 }
8969 });
8970 }
8971
8972 // }
8973 }
8974 function login(){
8975 var unidadeSelecionada
8976 var codUnidadeSelectRegInt
8977 doLogin({
8978 user: $('#login-email-modal').val(),
8979 pass: $('#login-password-modal').val(),
8980 btnLoadingSelector: '#btnLogin',
8981 before: () => {
8982 $('#mensagem-erro-login').addClass('d-none')
8983
8984 unidadeSelecionada = $('#unidades-ofertas').val();
8985 codUnidadeSelectRegInt = (isAoVivo) ? codUnidadeSenacAoVivo : $('#unidades-ofertas').val().split("@")[1];
8986 },
8987 done: (data) => {
8988 var loginData = JSON.parse(data);
8989
8990 if(loginData.status == 200 || loginData.status == 201){
8991 //Após logar-se, exibe o modal p/registro de interesse
8992 abrirModalRegistroInteresse(codUnidadeSelectRegInt);
8993 verificaBtnEnviarRegistroInteresseAtivo();
8994 //esconde o modal de login
8995 $('#modal-login').addClass('d-none');
8996 }
8997 },
8998 errorMessageSelector: '#mensagem-erro-login',
8999 error: (err) => console.error(err)
9000 })
9001 }
9002
9003 function registroSelecionaTodosDias(){
9004
9005 if($(this).hasClass('ssp-week-day-active')){
9006 $(this).removeClass('ssp-week-day-active')
9007 $('.ssp-week-day').removeClass('ssp-week-day-active')
9008 }else{
9009 $(this).addClass('ssp-week-day-active')
9010 $('.ssp-week-day').addClass('ssp-week-day-active')
9011 }
9012
9013 verificaBtnEnviarRegistroInteresseAtivo();
9014 }
9015
9016 function registroSelecionaTodosPeriodos(){
9017
9018 if($(this).is(':checked')){
9019 $('.ssp-card-registro-interesse__check-itens-content.periodos-registro-interesse input[type=checkbox]').prop('checked', true);
9020 }else{
9021 $('.ssp-card-registro-interesse__check-itens-content.periodos-registro-interesse input[type=checkbox]').prop('checked', false);
9022 }
9023
9024 verificaBtnEnviarRegistroInteresseAtivo();
9025 }
9026 $('.turmas-registro-interesse input[type=checkbox]').on('click', function() {
9027 var $selecionado = $(this);
9028 if ($selecionado.is(":checked")) {
9029 $('.turmas-registro-interesse input[type=checkbox]').prop("checked", false);
9030 $selecionado.prop("checked", true);
9031 } else {
9032 $selecionado.prop("checked", false);
9033 }
9034});
9035 function enviarRegistroInteresse(){
9036
9037 const codigoUsr = getCookie('codigo');
9038
9039 if(codigoUsr == null){
9040 //Sem o cookie refaz o login
9041 $('#modal-registro-interesse').addClass('d-none');
9042 $('body').removeClass('overflow-hidden');
9043 $('#modal-login').removeClass('d-none');
9044 return;
9045 }
9046
9047 var codigoFT = $('[name="codigoFT"]').val();
9048
9049 var unidades = new Set();
9050
9051 var diasSemana = '';
9052
9053 //Senac ao vivo nao tem opçao de dias da semana nem unidades
9054 if(isAoVivo){
9055 unidades.add(codUnidadeSenacAoVivo);
9056 }else{
9057 $.each($('.ssp-week-day').not('#todosDias'), function(k, v){
9058 if($(this).hasClass('ssp-week-day-active')){
9059 diasSemana += $(this).text()+',';
9060 }
9061 });
9062
9063 if(diasSemana.length > 0) diasSemana = diasSemana.slice(0, -1);
9064
9065 $.each($('.ssp-card-registro-interesse__select'), function(k,item){
9066
9067 unidades.add(item.value);
9068 });
9069 }
9070
9071
9072 var periodos = '';
9073
9074 $.each($('.periodos-registro-interesse input[type=checkbox]').not('#check-todos-periodos'), function(k,v){
9075 if($(this).is(':checked')){
9076 periodos += $(this).val()+',';
9077 }
9078 });
9079
9080 var turmas = '';
9081
9082 $.each($('.turmas-registro-interesse input[type=checkbox]').not('#check-todos-periodos'), function(k, v) {
9083 if ($(this).is(':checked')) {
9084 turmas += $(this).val() + ',';
9085 }
9086 });
9087
9088 if (periodos.length > 0) periodos = periodos.slice(0, -1);
9089 if (turmas.length > 0) turmas = turmas.slice(0, -1);
9090
9091 var usuarioNotificado = false;
9092
9093 loadingSubmitButton('#enviar-registro-interesse-btn');
9094
9095 unidades.forEach(function(codigoUnidade) {
9096 var data = {
9097 codigoFT: codigoFT,
9098 codigo: codigoUsr,
9099 diasSemana: diasSemana,
9100 periodos: periodos,
9101 turmas, turmas,
9102 codigoUnidade: codigoUnidade,
9103 interesseBolsa: 'N',
9104 isEmed: isEmed ? 'S' : 'N'
9105 };
9106
9107 const url = urlRegistroInteresse;
9108
9109 $.ajax({
9110 url: url,
9111 method: 'POST',
9112 data: JSON.stringify(data),
9113 headers: {
9114 'Accept': 'application/json',
9115 'Content-Type': 'application/json'
9116 },
9117 }).done(
9118 function(retornoData) {
9119
9120 var retornoData = JSON.stringify(retornoData);
9121
9122 if (retornoData.length > 0) {
9123
9124 cleanLoadingSubmitButton('#enviar-registro-interesse-btn');
9125
9126 var retorno = JSON.parse(retornoData);
9127
9128 if (retorno.status == 200 || retorno.status == 201) {
9129
9130 //Evita que o usuário recebe um email para cada unidade de interesse
9131 if(usuarioNotificado) return;
9132
9133 //Mensagem de sucesso registro interesse
9134 $('#modal-registro-interesse-sucesso').removeClass('d-none');
9135
9136 var prefixUrl = themeDisplay.getLayoutRelativeURL();
9137
9138 if (prefixUrl.indexOf('staging/') > 1)
9139 prefixUrl = prefixUrl.substring(0, prefixUrl.lastIndexOf('staging/') + 8);
9140 else
9141 prefixUrl = HOST;
9142
9143 $('#btn-voltar-home').attr('href', prefixUrl);
9144
9145 //Busca os dados do nome do usuário logado
9146 var username = getCookie('name').split(' ')[0];
9147
9148 //Prioridade para nomeSocial
9149 if (getCookie('nome_social') != null) {
9150 var nomeSocial = getCookie('nome_social').replace(/['"]+/g, '');
9151
9152 if (nomeSocial.length > 0) username = getCookie('nome_social');
9153
9154 }
9155
9156 username = username.replace(/['"]+/g, '');
9157
9158 var unidadesSel = getUnidadesSelecionadasRI();
9159
9160 //Disara um email para o usuário interessado
9161 var data = {
9162 emailInteressado: getCookie('email'),
9163 nomeInteressado: username,
9164 tituloCurso: $('.ssp-card-detalhe-curso__title').text(),
9165 unidades: unidadesSel.unidades,
9166 unidadesPrefix: unidadesSel.unidadesPrefix
9167 };
9168
9169 $.ajax({
9170 url: urlRegistroInteresseEmailInteressado,
9171 method: 'POST',
9172 data: JSON.stringify(data),
9173 headers: {
9174 'Accept': 'application/json',
9175 'Content-Type': 'application/json'
9176 },
9177 }).done(function(retornoData) {});
9178
9179 usuarioNotificado = true;
9180
9181 window.onclick = function(event) {
9182 $('[id="modal-registro-interesse-sucesso"]').each(function(index, _modal) {
9183 if (event.target == _modal){
9184 $('#modal-registro-interesse-sucesso').addClass('d-none');
9185 $('#modal-registro-interesse').addClass('d-none');
9186 $("body").removeClass("overflow-hidden");
9187 }
9188 });
9189 }
9190
9191 } else {
9192 //Mensagem de erro registro interesse
9193 $('#modal-registro-interesse-erro').removeClass('d-none');
9194 }
9195 } else {
9196 //Mensagem de erro registro interesse
9197 $('#modal-registro-interesse-erro').removeClass('d-none');
9198 }
9199 }).fail(function(){
9200 cleanLoadingSubmitButton('#enviar-registro-interesse-btn');
9201 $('#modal-registro-interesse-erro').removeClass('d-none');
9202 });
9203 });
9204 }
9205
9206 function verificaBtnEnviarRegistroInteresseAtivo(){
9207
9208 var diasSemanaSelecionado = false;
9209 var periodoSelecionado = false;
9210 var turmaSelecionada = false;
9211 var politicaPrivacidadeSelecionado = false;
9212
9213
9214 $.each($('.periodos-registro-interesse input[type=checkbox]').not('#check-todos-periodos'), function(k,v){
9215 if($(this).is(':checked'))
9216 periodoSelecionado = true;
9217 });
9218
9219 $.each($('.turmas-registro-interesse input[type=checkbox]').not('#check-todos-periodos'), function(k,v){
9220 if($(this).is(':checked'))
9221 turmaSelecionada = true;
9222 });
9223
9224 if($('#check-politica-privacidade').is(':checked')) politicaPrivacidadeSelecionado = true;
9225
9226 var ativo = true
9227
9228 //Caso tenha algum dos selects de unidade sem uma opção válida selecionada
9229 if(!isAoVivo)
9230 ativo = ativo && !Array.from($('.ssp-card-registro-interesse__select.unidades')).filter(sel => !$(sel).val()).length
9231
9232 ativo = ativo && periodoSelecionado && politicaPrivacidadeSelecionado;
9233
9234 if(!isAoVivo && !isEmed){
9235
9236 $.each($('.ssp-week-day').not('#todosDias'), function(k, v){
9237 if($(this).hasClass('ssp-week-day-active'))
9238 diasSemanaSelecionado = true;
9239 });
9240 ativo = ativo && diasSemanaSelecionado;
9241
9242 }
9243
9244 if(isEmed)
9245 ativo = ativo && turmaSelecionada;
9246
9247 if(ativo)
9248 $('#enviar-registro-interesse-btn').attr("disabled", false);
9249 else
9250 $('#enviar-registro-interesse-btn').attr("disabled", true);
9251 }
9252
9253 function loadPlanoCurso(){
9254
9255 const urlGetPlanoCurso = urlPlanoCurso
9256
9257 .replace('\{codigoFT\}', $('[name="codigoFT"]').val())
9258 .replace('\{dataEfetiva\}', $('[name="dataEfetivaSTR"]').val());
9259
9260 $.ajax({
9261 url:urlGetPlanoCurso,
9262 method:'get',
9263 crossDomain: true,
9264 dataType: 'html',
9265 success: function( data ) {
9266
9267
9268 //Atualiza o link com o plano de curso do servi¿o (ja retorna o texto)
9269 $('#plano-curso').append('<br/>'+data);
9270 },
9271 error: function(data){
9272
9273 console.log('Não existe a URL do plano de curso');
9274
9275 }
9276
9277 });
9278 }
9279
9280 function checkCursoTrampolim(){
9281 return $('[name="codigoFT"]').val() == "24493";
9282 }
9283
9284 /*function verificaOfertaValida(oferta){
9285
9286 if(oferta['precoCheioOferta'] == '' || oferta['precoVendaOferta'] == '' || oferta['numeroMaxParcelasOferta'] == '' || oferta['precoVendaMaxParcelaOferta'] == '')
9287 return false;
9288
9289 var atual = new Date();
9290
9291 var dataOfertaPartes = oferta['dataInicio'].split('/');
9292
9293 var dataOferta = new Date(dataOfertaPartes[2], dataOfertaPartes[1] - 1, dataOfertaPartes[0]);
9294
9295 var dataLimiteMatriculaOfertaPartes = "";
9296 var dataLimiteMatriculaOferta = "";
9297
9298 if(oferta['dtLimiteMatricula'] != ""){
9299 dataLimiteMatriculaOfertaPartes = oferta['dtLimiteMatricula'].split('-');
9300 dataLimiteMatriculaOferta = new Date(dataLimiteMatriculaOfertaPartes[0], dataLimiteMatriculaOfertaPartes[1] - 1, dataLimiteMatriculaOfertaPartes[2] ,atual.getHours(),atual.getMinutes(),atual.getSeconds(),atual.getMilliseconds());
9301
9302 }
9303
9304
9305 //Só deve aparecer ofertas D-1 . Se ela iniciou, aparece se o campo dtLimiteMatr estiver preenchido e com data até o dia de hoje
9306 if(dataOferta <= atual)
9307 if(dataLimiteMatriculaOferta == "" || (dataLimiteMatriculaOferta != "" && atual.getTime() > dataLimiteMatriculaOferta.getTime()))
9308 return false;
9309
9310 return true;
9311 }*/
9312
9313
9314 function loadServerDate(){
9315
9316 $.ajax({
9317 url:urlGetServerT,
9318 method:'get',
9319 dataType: 'json',
9320 cache: 'false',
9321 headers: {
9322 'Cache-Control': 'no-store, no-cache, max-age=0',
9323 'Expires': '0',
9324 'Pragma': 'no-cache'
9325 },
9326 success: function( data ) {
9327 todayG = new Date(data.year,(data.month - 1),data.day,(data.hour),data.minutes,data.seconds);
9328 startTimer();
9329 }
9330 });
9331
9332 }
9333
9334 function handleVisibilityChange() {
9335
9336 if (!document[hidden] ){
9337 restartTimer();
9338 }
9339
9340 }
9341
9342 function restartTimer(){
9343
9344 if(restartTimeout == null){
9345 loadServerDate();
9346 restartTimeout = setTimeout(function(){
9347 restartTimeout = null;
9348 }, 5000);
9349 }
9350
9351 }
9352
9353 function startTimer(){
9354
9355 var mSeconds = todayG.getTime();
9356 if(interval01 != null){
9357 clearInterval(interval01);
9358 }
9359 interval01 = setInterval(function(){
9360 todayG.setTime(todayG.getTime() + 1000);
9361 }, 1000);
9362
9363 if(interval15 != null){
9364 clearInterval(interval15);
9365 }
9366 interval15 = setInterval(function(){
9367 mSeconds = mSeconds + 15000;
9368 todayG.setTime(mSeconds);
9369 }, 15000);
9370
9371 }
9372
9373 function checkIsAoVivo(){
9374 isAoVivo = $("input[name='formato']").attr("data-formato") == nomeFormatoAoVivoDxp;
9375 }
9376
9377
9378 //Ao clicar na setinha next do slider, busca dinamicamente uma proxima oferta
9379 function buscaProximaOferta(){
9380 //Zera variável que controla existência de ofertas com bolsa
9381 //ofertasComBolsa = false;
9382
9383 //Verificamos se a ultima oferta já foi exibida, para evitar de fazer novas buscas
9384 if(carregouUltimaOferta)
9385 return;
9386
9387 //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.
9388 var totalOfertasSlick = $('#turmas-container .slick-area__item').length;
9389 //Pegamos o índice da oferta do meio (central)
9390 var currentSliderIndex = parseInt($('.slick-current').attr('data-slick-index'));
9391
9392 var totalOfertasADireita = totalOfertasSlick - currentSliderIndex;
9393
9394 //Se o total de ofertas à direita for maior a 2 não precisa realizar a busca
9395 if(totalOfertasADireita > 2)
9396 return;
9397
9398 startOfertaParam = endOfertaParam;
9399 endOfertaParam += 16;
9400
9401 const codigoFT = $('[name="codigoFT"]').val();
9402 const dataEfetivaOferta = $('[name="dataEfetivaSTR"]').val();
9403
9404 var unidadeCategoryId = '';
9405 var unidadeCodigoSelect = '';
9406
9407 if(isAoVivo){
9408
9409 $.each(objsTela.unidades, function(k,unidade){
9410 unidadeCategoryId += unidade['categoryId']+',';
9411 });
9412
9413 //tirando ultima virgula
9414 unidadeCategoryId = unidadeCategoryId.substring(0,unidadeCategoryId.length - 1);
9415
9416 }else{
9417 var splitted = $('#unidades-ofertas').val().split("@");
9418 unidadeCategoryId = splitted[0];
9419 unidadeCodigoSelect = splitted[1];
9420 }
9421
9422 var params = new URLSearchParams();
9423 params.set('codigoFTOferta',codigoFT)
9424 params.set('dataEfetivaOferta',dataEfetivaOferta)
9425 params.set('categoryIds',unidadeCategoryId)
9426 params.set('start',startOfertaParam)
9427 params.set('end',endOfertaParam)
9428 params.set('inscricaoAberta', $('#chkInscricao').prop('checked'))
9429 params.set('bolsaAberta', $('#chkBolsa').prop('checked'))
9430 params.set('cursoArticleId', $('[name="articleId"]').val() || '');
9431
9432 if($('#chkBolsa').prop('checked')){
9433 params.set('considerarDataBolsaFutura', true)
9434 }
9435
9436 const url = urlSearchOferta + '?' + params.toString()
9437
9438 $.ajax({
9439 url:url,
9440 method:'get',
9441 dataType:'json'
9442 }).done(
9443 function(data){
9444
9445 if(data.length > 0){
9446 var indiceOferta = startOfertaParam;
9447
9448 for (var index = 0; index < data.length; index++) {
9449
9450 var ofertaJSON = data[index];
9451 var oferta = getOfertaObjectFromJson(ofertaJSON,index);
9452
9453 //Verificamos se a oferta buscada já existe na tela (que ocorre quando chega na última oferta)
9454 if($('.codigoOferta_'+oferta.codigoOferta).length > 0){
9455 console.log('Ja tem a oferta '+oferta.codigoOferta);
9456 carregouUltimaOferta = true;
9457 break;
9458 }
9459
9460 //guardo em um map a oferta e qual unidade é, para utilizar depois no populaOferta para o aoVivo
9461 ofertaUnidadeMap.set(oferta['codigoOferta'],mapUnidadesIds.get(parseInt(ofertaJSON.unidadeCategoryIds)));
9462
9463 ofertasMap.set(oferta.codigoOferta, oferta);
9464
9465 if(isAoVivo)
9466 objsTela.ofertasAoVivoTodasUnidades.push(oferta);
9467
9468 //O indice é igual ao ultimo elemento buscado - 1
9469 var i = indiceOferta;
9470 oferta['indice'] = i;
9471
9472 if(isAoVivo)
9473 codigoUnidade = ofertaUnidadeMap.get(oferta.codigoOferta);
9474 else codigoUnidade = unidadeCodigoSelect;
9475
9476
9477 montaHTMLOferta(oferta, i, codigoUnidade, true);
9478 montaHTMLModalFormaPgto(oferta, i, codigoUnidade);
9479
9480 montaHTMLModalLocalRealizacao(oferta, i);
9481 montaHTMLModalAntesCompra(oferta, i, codigoUnidade);
9482 verificaBotaoBolsaSS(oferta);
9483 verificaCursoAprendizagem(i);
9484 verificaCursoTrampolim(i);
9485
9486 associaEventoBtnFormaPagamento(i);
9487 associaEventoBtnComprar(i);
9488 associaEventoBtnComprarDentroFormaPgto(i);
9489 associaEventoBtnLocalRealizacao(i);
9490 associaEventosFecharModal(i);
9491
9492 if($('[name="tipoCurso"]').val() == 'extensao'){
9493 associaEventoBtnConheca(i);
9494 associaEventoBtnComprarConhecaDescontoOk(i);
9495 associaEventoBtnComprarConhecaDescontoNot(i);
9496 associaEventoBtnAlunoNao(i);
9497 associaEventoBtnAlunoSim(i);
9498
9499 }
9500
9501 indiceOferta++;
9502 }
9503
9504 controlaPaginaBolsa();
9505 }
9506 }
9507 );
9508
9509 }
9510
9511 function setUrlParam(key, value) {
9512 const url = new URL(window.location.href)
9513
9514 if(value)
9515 url.searchParams.set(key, value);
9516 else
9517 url.searchParams.delete(key);
9518
9519 window.history.pushState({}, '', url.toString())
9520 }
9521
9522 function selectFilter(paramkey, el) {
9523 setUrlParam(paramkey, el.prop("checked"))
9524 const currentUnidadeFriendlyURLSelected = $('#unidades-ofertas').find('option').filter(':selected').attr('data-unidade-friendly-url')
9525 loadUnidades(!isAoVivo, $('[data-unidade-friendly-url="' + currentUnidadeFriendlyURLSelected + '"]').val())
9526
9527 if($('#chkInscricao').prop("checked") || $('#chkBolsa').prop("checked")) $('#msgFiltroAplicado').show()
9528 else $('#msgFiltroAplicado').hide()
9529 }
9530
9531 function defineCurrentUrl(ev) {
9532 const currentUnidadeFriendlyURLSelected = $(ev.target).find('option').filter(':selected').attr('data-unidade-friendly-url')
9533
9534 const hasPathWeb = window.location.pathname.includes('/web')
9535 const hasPathGuest = window.location.pathname.includes('/guest')
9536
9537 let currentPath = window.location.pathname
9538 currentPath = hasPathWeb ? currentPath.substring(4) : currentPath
9539 currentPath = hasPathGuest ? currentPath.substring(6) : currentPath
9540
9541 objsTela.unidadesRegistroInteresse.forEach(unidade => currentPath = currentPath.replace('/' + unidade.friendlyURL, ''))
9542
9543 currentPath = (currentUnidadeFriendlyURLSelected ? '/' + currentUnidadeFriendlyURLSelected : '') + currentPath
9544 currentPath = hasPathGuest ? '/guest' + currentPath : currentPath
9545 currentPath = hasPathWeb ? '/web' + currentPath : currentPath
9546
9547 if(keepURL())
9548 window.history.replaceState(window.history.state, '', currentPath + window.location.search)
9549 }
9550
9551 let isKeepURL = true
9552 /** Verifica se é para manter a URL atual. Isso deve acontecer somente ao iniciar a página #9674 */
9553 function keepURL() {
9554 const aux = isKeepURL
9555 isKeepURL = false
9556 return !aux
9557 }
9558
9559 loadServerDate();
9560 $(document).ready(function(){
9561
9562 if("${normalizedCategoryName}" == "graduacao" || "${normalizedCategoryName}" == "pos-graduacao"){
9563 document.location.href = '/erro-404'
9564 }
9565
9566 ehCursoTrampolim = checkCursoTrampolim();
9567 checkIsAoVivo();
9568 loadPlanoCurso();
9569 loadCursosVocePodeGostar();
9570
9571 if(!isAoVivo) {
9572 $('#unidades-ofertas').change(ev => {
9573 mudarUnidade(ev)
9574 defineCurrentUrl(ev)
9575 });
9576 }
9577
9578 const urlParams = new URLSearchParams(window.location.search)
9579 $('#chkInscricao').prop("checked", urlParams.get('inscricao') == 'true')
9580 $('#chkInscricao').change(ev => selectFilter('inscricao', $('#chkInscricao')) )
9581
9582 if($('#chkBolsa').length) {
9583 $('#chkBolsa').prop("checked", urlParams.get('bolsa') == 'true')
9584 $('#chkBolsa').change(ev => selectFilter('bolsa', $('#chkBolsa')) )
9585 loadUnidades(!isAoVivo);
9586 } else {
9587 selectFilter('bolsa', $('#chkBolsa'))
9588 }
9589
9590 //Função para Montar breadcrumb Mobile
9591
9592 function breadcrumbMobile(){
9593
9594 const linkEl = $('.ssp-card-detalhe-curso__secunday-info-back-link');
9595
9596 if ( $.trim(linkEl.html()) === 'Técnico'){
9597
9598 linkEl.attr("href", "/cursos-tecnicos");
9599
9600 } else if ( $.trim(linkEl.html()) === 'Livre'){
9601
9602 if(isAoVivo){
9603 linkEl.html('Senac Online<i class="fas fa-signal-stream icon-ao-vivo" aria-hidden="true"></i>ao vivo')
9604 linkEl.attr("href", "/cursos-livres-senac-online-ao-vivo");
9605 }else{
9606 linkEl.attr("href", "/cursos-livres");
9607 }
9608 } else if ( $.trim(linkEl.html()) === 'Aprendizagem'){
9609
9610 linkEl.attr("href", "/jovem-aprendiz");
9611
9612 }else if ( $.trim(linkEl.html()) === 'Extensão Universitária'){
9613
9614 linkEl.attr("href", "/extensao-universitaria");
9615
9616 }else if ( $.trim(linkEl.html()) === 'Ensino Médio Técnico'){
9617
9618 linkEl.attr("href", "/ensino-medio-tecnico");
9619 }
9620
9621 }
9622
9623 breadcrumbMobile()
9624
9625 //Esconde elementos quando o curso é aprendizagem
9626 if($('[name="codigoFT"]').val() == codigoFTCursoAprendizagem){
9627 $('.ssp-section-novas-turmas').remove();
9628 $("div[class^='botoes-oferta-container_']").remove();
9629 }
9630
9631 //retira os itens de dentro do container
9632 $('.bg-').css('background-color','#e4e4e4')
9633 $('.container.py-3').removeClass('container py-3')
9634 //ajuste para versao 7.4
9635 $('.lfr-layout-structure-item-container.container-fluid.container-fluid-max-xl').removeClass()
9636
9637
9638 //Fecha modal registro de interesse
9639
9640 $('#btn-close-Modal-registro-interesse').click(function(){
9641
9642 $('#modal-registro-interesse').addClass('d-none')
9643 $("body").removeClass("overflow-hidden")
9644
9645 })
9646
9647 $( "#modal-registro-interesse" ).click( function(event) {
9648
9649 if(event.target.id==$('#modal-registro-interesse')[0].id){
9650 $(this).addClass('d-none')
9651 }
9652
9653 });
9654
9655
9656 //Aviso sobre interesse em turmas
9657 $('.ssp-card-registro-interesse').on('click', '#enviar-registro-interesse-btn', enviarRegistroInteresse);
9658 if(!isEmed){
9659 $('.ssp-aviso-novas-turmas__content').on('click', '#btn-aviso-novas-turmas', avisoNovasTurmas);
9660 $('.ssp-card-registro-interesse').on('click', '#todosDias', registroSelecionaTodosDias);
9661 } else {
9662 $('.ssp-emed__card-slider-body').on('click', '#btnOptin', avisoNovasTurmas)
9663 }
9664 $('#div-campo-todos').on('change', 'input[type=checkbox]', registroSelecionaTodosPeriodos);
9665
9666 $('#btnLogin').click(function(){
9667
9668 login()
9669
9670 });
9671
9672 $('#btn-close-loginModal').click(function(){
9673 $('#modal-login').addClass('d-none')
9674 });
9675
9676 $('.ssp-week-day').not('#todosDias').click(function(){
9677
9678 $(this).toggleClass('ssp-week-day-active');
9679 verificaBtnEnviarRegistroInteresseAtivo();
9680
9681 });
9682
9683 $('#add-unidade-regsitro-interesse').click(function(e){
9684 var element = $('.ssp-card-registro-interesse__select.unidades').first().clone();
9685 element.empty();
9686 element.append('<option value="" disabled selected>Selecione uma unidade</option>')
9687 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
9688
9689 if(!unidade['selecionado']){
9690 element.append('<option value="'+unidade['codigoUnidade']+'">'+unidade['nome']+'</option>');
9691 }
9692
9693 });
9694 element.change(changeSelectUnidades)
9695
9696
9697 element.css('margin-top', '10px');
9698
9699 if(element.find("option").length > 1 && $('.ssp-card-registro-interesse__select.unidades').length < objsTela.unidadesRegistroInteresse.length){
9700 element.attr("id", "select_" + cntSelectUnidades++)
9701 $('#select-unidades-registro-interesse').append(element);
9702 }
9703
9704 if($('.ssp-card-registro-interesse__select.unidades').length == objsTela.unidadesRegistroInteresse.length){
9705 $('#add-unidade-regsitro-interesse').addClass("d-none")
9706 }
9707
9708 verificaBtnEnviarRegistroInteresseAtivo();
9709 });
9710
9711 $('#remove-unidade-regsitro-interesse').click(function(e){
9712
9713 if($('.ssp-card-registro-interesse__select').length > 1){
9714
9715 var element = $('.ssp-card-registro-interesse__select').last();
9716
9717 var valueSelecionado = element.val();
9718
9719 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
9720
9721 if(unidade['selecionado'] && unidade['codigoUnidade'] == valueSelecionado){
9722 unidade['selecionado'] = false;
9723 unidade['selectSelecionado'] = "";
9724 }
9725
9726 });
9727 element.val("");
9728 cntSelectUnidades--;
9729 element.change()
9730
9731 element.remove();
9732 }
9733
9734 if($('.ssp-card-registro-interesse__select.unidades').length < objsTela.unidadesRegistroInteresse.length){
9735 $('#add-unidade-regsitro-interesse').removeClass("d-none")
9736 }
9737
9738 verificaBtnEnviarRegistroInteresseAtivo();
9739 })
9740
9741 $('.ssp-card-registro-interesse__check-item').on('change', 'input[type=checkbox]', function(){
9742 verificaBtnEnviarRegistroInteresseAtivo();
9743 });
9744
9745 //Contador em ofertas de bolsas proximas
9746 var cancel = setInterval(atualizaTempoAberturasBolsas, 1000);
9747
9748 // Manipua o breadcrumb para as regras do Senac
9749
9750 if($('ol.breadcrumb').find('li:first').text().trim() == "Cursos Pai")
9751 $('ol.breadcrumb').find('li:first').remove();
9752
9753 var li = $('ol.breadcrumb').find('li:first');
9754
9755 if(li.text().trim() == 'Cursos'){
9756
9757 var primeiro = li.clone();
9758 primeiro.html(htmlBreadcrumb('/', 'Cursos', 'Home'));
9759 li.parent().prepend(primeiro);
9760
9761 var tipoCurso = $('.ssp-header-curso__tag-formato').text().trim();
9762 var tipoBreadcrumb = '';
9763
9764 const isPresencialEad = (tipoCurso.toLowerCase().includes("presencial + ead"))
9765
9766 if(tipoCurso.includes("Cursos Livres")){
9767 if(isPresencialEad) {
9768 tipoBreadcrumb = htmlBreadcrumb('/presencial-ead#cursos-livres', tipoCurso);
9769 } else {
9770 tipoBreadcrumb = htmlBreadcrumb(
9771 isAoVivo ? '/cursos-livres-senac-online-ao-vivo' : '/cursos-livres',
9772 isAoVivo ? nomeFormatoAoVivoDxp : tipoCurso);
9773 }
9774 }else if(tipoCurso.includes("Extensão")){
9775 if(isPresencialEad) {
9776 tipoBreadcrumb = htmlBreadcrumb('/presencial-ead#extensao-universitaria', tipoCurso);
9777 } else {
9778 tipoBreadcrumb = htmlBreadcrumb('/extensao-universitaria', tipoCurso);
9779 }
9780 }else if(tipoCurso.includes("Ensino Médio Técnico")){
9781 if(isPresencialEad) {
9782 tipoBreadcrumb = htmlBreadcrumb('/presencial-ead#ensino-medio-tecnico', tipoCurso);
9783 } else {
9784 tipoBreadcrumb = htmlBreadcrumb('/ensino-medio-tecnico', tipoCurso);
9785 }
9786 }else if(tipoCurso.includes("Jovem Aprendiz")){
9787 if(isPresencialEad) {
9788 tipoBreadcrumb = htmlBreadcrumb('/presencial-ead#jovem-aprendiz', tipoCurso);
9789 } else {
9790 tipoBreadcrumb = htmlBreadcrumb('/jovem-aprendiz', tipoCurso);
9791 }
9792 }else{
9793 if(isPresencialEad) {
9794 tipoBreadcrumb = htmlBreadcrumb('/presencial-ead#cursos-tecnicos', tipoCurso);
9795 } else {
9796 tipoBreadcrumb = htmlBreadcrumb('/cursos-tecnicos', tipoCurso);
9797 }
9798 }
9799
9800 li.html(tipoBreadcrumb);
9801
9802 if($('ol.breadcrumb').find('li').length == 4) $('ol.breadcrumb').find('li:last').remove();
9803
9804 }
9805
9806 $('#turmas-container').on('click', 'a.slick-next', function(e){
9807
9808 e.preventDefault();
9809 buscaProximaOferta();
9810
9811 });
9812
9813 $('#turmas-container').on('click', 'button.slick-dots', function(){
9814
9815
9816
9817 });
9818
9819 $(".next-mobile").on("click",function(e){
9820 e.preventDefault();
9821
9822 acoesMobileSliderOfertas("left");
9823 });
9824
9825 $(".prev-mobile").on("click",function(e){
9826 e.preventDefault();
9827
9828 acoesMobileSliderOfertas("right");
9829 });
9830
9831 //ação de drag do card de ofertas no mobile
9832 $('.oferta-slick-area').on('swipe', function(event, slick, direction){
9833 acoesMobileSliderOfertas(direction);
9834 });
9835
9836 loadAlternadores()
9837 let modalFormAprendizagem = document.querySelector('[data-modal="modal"]')
9838 if(modalFormAprendizagem){
9839 // Create dinamic close buttom form
9840 let btnCloseModalForm = document.querySelector('[data-modal="close-form-modal"]')
9841
9842 btnCloseModalForm.addEventListener('click',closeModalFormAprendizagem)
9843
9844 }
9845
9846 $(".oferta-slick-area").on("click", ".btnModalAprendizagem", function (){
9847 openModalFormAprendizagem();
9848 })
9849
9850 });
9851
9852 function htmlBreadcrumb(link, title, display){
9853
9854 return '<a class="breadcrumb-link" href="'+link+'" title="'+title+'"><span class="breadcrumb-text-truncate">'+(display || title)+'</span></a>';
9855
9856 }
9857
9858 function acoesMobileSliderOfertas(direcao){
9859
9860 if(direcao == "right"){
9861 $("a.slick-prev").click();
9862
9863 if($('.slick-current').attr('data-slick-index') == "0")
9864 $('.prev-mobile').addClass('nextPrevOpacity');
9865
9866 if($(".next-mobile").hasClass('nextPrevOpacity'))
9867 $('.next-mobile').removeClass('nextPrevOpacity');
9868 }
9869
9870
9871 if(direcao == "left"){
9872 $("a.slick-next").click();
9873
9874 if($(".prev-mobile").hasClass('nextPrevOpacity'))
9875 $('.prev-mobile').removeClass('nextPrevOpacity');
9876
9877 if(carregouUltimaOferta){
9878 var totalCardOfertas = $('#turmas-container .slick-area__item').length;
9879 var currentSliderIndex = parseInt($('.slick-current').attr('data-slick-index'));
9880
9881 //o card do meio é o último
9882 if(totalCardOfertas == (currentSliderIndex + 1))
9883 $('.next-mobile').addClass('nextPrevOpacity');
9884 }
9885 }
9886 }
9887
9888 //habilitar/desabilitar registro de interesse
9889 function habilitarRegistroInteresse(habilitar){
9890 var sectionRI = $('#section-registro-interesse')
9891
9892 if(isEmed) {
9893 sectionRI.hide()
9894 return;
9895 }
9896
9897 //Redmine #9309 - sempre irá mostrar
9898 habilitar = true
9899
9900 if(habilitar) sectionRI.show()
9901 else sectionRI.hide()
9902 }
9903
9904 function abrirModalRegistroInteresse(codUnidadeSelect){
9905 $('#modal-registro-interesse').removeClass('d-none');
9906 $("body").addClass("overflow-hidden")
9907 if(!isEmed){
9908 $('.ssp-card-registro-interesse__nome-curso').text($('.ssp-card-detalhe-curso__title').text());
9909 } else {
9910 $(".transferencia-emed-link").find('a').attr("href", "/ensino-medio-tecnico#onde-estudar")
9911 $('.ssp-card-registro-interesse__title-modal').text($('.ssp-card-detalhe-curso__title').text());
9912 }
9913
9914 $('.ssp-card-registro-interesse__select:not(#select_0)').remove();
9915 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
9916 if(unidade['codigoUnidade'] == codUnidadeSelect){
9917 unidade['selecionado'] = true;
9918 unidade['selectSelecionado'] = 'select_0';
9919 } else {
9920 unidade['selecionado'] = false;
9921 unidade['selectSelecionado'] = "";
9922 }
9923
9924 });
9925 objsTela.unidadesRegistroInteresse.sort(function (a, b) {
9926 return ordenar(a, b, 'nome');
9927 });
9928
9929 $('#select_0').empty();
9930 $('#select_0').append('<option value="" disabled>Selecione uma unidade</option>')
9931 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
9932
9933 $('#select_0').append('<option value="'+unidade['codigoUnidade']+'" >'+unidade['nome']+'</option>');
9934
9935 });
9936 $('#select_0').val(codUnidadeSelect);
9937
9938 if(isAoVivo){
9939 $('#unidades-registro-interesse, #dias-registro-interesse').addClass('d-none');
9940 }
9941 if(objsTela.unidadesRegistroInteresse.length > 1) {
9942 $('#add-unidade-regsitro-interesse').removeClass("d-none")
9943 $('#add-unidade-regsitro-interesse').show()
9944 $('#remove-unidade-regsitro-interesse').show()
9945 } else {
9946 $('#add-unidade-regsitro-interesse').hide()
9947 $('#remove-unidade-regsitro-interesse').hide()
9948 }
9949 }
9950
9951 $('.ssp-card-registro-interesse__select.unidades').on('change', changeSelectUnidades)
9952
9953 function changeSelectUnidades() {
9954 var codUnidadeSelecionada = $(this).val();
9955 var idSelectSelecionado = $(this).attr('id')
9956 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
9957 if(unidade['codigoUnidade'] == codUnidadeSelecionada){
9958 unidade['selecionado'] = true;
9959 unidade['selectSelecionado'] = idSelectSelecionado;
9960 } else if(unidade['selectSelecionado'] == idSelectSelecionado && unidade['selecionado']){
9961 unidade['selecionado'] = false;
9962 unidade['selectSelecionado'] = "";
9963 }
9964
9965 });
9966
9967 objsTela.unidadesRegistroInteresse.sort(function (a, b) {
9968 return ordenar(a, b, 'nome');
9969 });
9970
9971 $('.ssp-card-registro-interesse__select.unidades:not(#'+idSelectSelecionado+')').each(function() {
9972 var valueSelecionado = $(this).val();
9973 var idActualSelect = $(this).attr('id');
9974 $(this).empty();
9975 $(this).append('<option value="" disabled>Selecione uma unidade</option>')
9976 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
9977
9978 if(unidade['selecionado'] && unidade['codigoUnidade'] == valueSelecionado){
9979 $("#"+idActualSelect).append('<option value="'+unidade['codigoUnidade']+'" >'+unidade['nome']+'</option>');
9980 }else if(!unidade['selecionado']){
9981 $("#"+idActualSelect).append('<option value="'+unidade['codigoUnidade']+'">'+unidade['nome']+'</option>');
9982 }
9983
9984 });
9985 $(this).val(valueSelecionado)
9986 });
9987
9988 verificaBtnEnviarRegistroInteresseAtivo();
9989 }
9990
9991
9992 function ordenar(objA, objB, nomeAtributo){
9993 let a = (nomeAtributo) ? objA[nomeAtributo] : objA;
9994 let b = (nomeAtributo) ? objB[nomeAtributo] : objB;
9995
9996 return a.toString().localeCompare(b.toString());
9997 }
9998
9999 function paramOrdem(xml){
10000 if(isEmed){
10001 var ordemPeriodo = ['MA', 'TA', 'NO'];
10002 return $.inArray(xml.find('[name="periodoDiaOferta"]').text().trim(), ordemPeriodo);
10003 }else{
10004 return xml.find('[name="dataInicioOferta"]').text();
10005 }
10006 }
10007
10008 function getEtapaSelecionadaEmed(){
10009 var btnEtapa = $('.ssp-ofertas-emed__filtro-content .btn--filtro-ativo');
10010 if(!btnEtapa) return '';
10011 return btnEtapa.val();
10012 }
10013
10014 function filtraOfertasEtapa(etapa, ofertas){
10015 if(!etapa) return [];
10016 var ofertasEtapa = [];
10017 var turmas = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'];
10018 var periodos = {['MA'] : 'Manhã', ['TA'] : 'Tarde', ['NO'] : 'Noite'};
10019 var ultimoPeriodo = null, indexPeriodo;
10020 ofertas = ofertas.sort(function(a, b){
10021 return ordenar(a, b, 'periodoDiaOferta');
10022 });
10023
10024 $.each(ofertas, async (index, oferta)=> {
10025 if(oferta['etapa'] == etapa){
10026 if(oferta['periodoDiaOferta'] != ultimoPeriodo) indexPeriodo = 0;
10027 ultimoPeriodo = oferta['periodoDiaOferta'];
10028 oferta['titulo'] = 'Turma ' + turmas[indexPeriodo++] + ' - ' + (periodos[ultimoPeriodo] || '');
10029 ofertasEtapa.push(oferta);
10030 }
10031 });
10032
10033 return ofertasEtapa;
10034 }
10035
10036 function formatarDataEmed(data, etapa, isDataFim){
10037
10038 try{
10039
10040 var splitdata = data.split('/');
10041 var meses = ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'];
10042 var mes = meses[parseInt(splitdata[1])-1];
10043
10044 var ano = splitdata[2];
10045
10046 if(isDataFim){
10047 ano = parseInt(splitdata[2]);
10048 }
10049
10050 return mes + '/' + ano;
10051 }catch(err){
10052 return data;
10053 }
10054
10055 }
10056
10057 //EMED Mobile
10058 function sliderOfertasEmed(){
10059
10060 var tamScreen = $(window).width();
10061 if(tamScreen < 1024){
10062 $('.ssp-slick-ofertas-emed').slick({
10063 slidesToShow: 1,
10064 slidesToScroll: 1,
10065 dots: false,
10066 infinite: false,
10067 adaptiveHeight: true,
10068 prevArrow:'<button class="btn slick-prev" type="button"><i class="fal fa-chevron-left"></i><span class="sr-only">Anterior</span></button>',
10069 nextArrow:'<button class="btn slick-next" type="button"><i class="fal fa-chevron-right"></i><span class="sr-only">Próximo</span></button>',
10070 responsive: [
10071
10072 {
10073 breakpoint: 1200,
10074 settings: {
10075 slidesToShow: 1,
10076 slidesToScroll: 1,
10077 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>',
10078 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>',
10079
10080 }
10081 },
10082 {
10083 breakpoint: 768,
10084 settings: {
10085 slidesToShow: 1,
10086 slidesToScroll: 1,
10087 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>',
10088 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>',
10089 }
10090 }
10091
10092 ]
10093
10094 });
10095
10096 }
10097
10098 }
10099
10100function addItemBackpack(codOferta, originElemSelector, codUnidade, dataEfetiva){
10101
10102 let backpackPostRequest = {};
10103 backpackPostRequest.codOferta = codOferta;
10104 backpackPostRequest.codUnidade = codUnidade;
10105 backpackPostRequest.dt_efetiva = dataEfetiva;
10106
10107
10108 mochila.requestAccess(function(backpackPostRequest){
10109
10110 let urlMochila = '/o/senac-backpack-services/backpack';
10111
10112 if(getCookie("codMochila") != null){
10113 backpackPostRequest.codMochila = getCookie("codMochila");
10114 urlMochila = '/o/senac-backpack-services/updateBackpack';
10115 }
10116 $.ajax({
10117 type: 'POST',
10118 url: urlMochila,
10119 headers: {
10120 "Content-Type":"application/json"
10121 },
10122 beforeSend: function(xhr){
10123 xhr.setRequestHeader("Authorization", "Bearer " + getCookie("tokenMochila"));
10124 loadingSubmitButton(originElemSelector);
10125 $(originElemSelector + ' .loading-icon-button').css('height', 'unset');
10126 if($(window).width() < 1024){
10127 $(originElemSelector + ' .loading-icon-button span').css('margin-left', '10%');
10128 }
10129 },
10130 data : JSON.stringify(backpackPostRequest)
10131 }).done(function(data) {
10132
10133 let domain = '';
10134 if(getAmbiente() == 'hom' || getAmbiente() == 'prod')
10135 domain = '.sp.senac.br';
10136
10137 writeCookie(
10138 'codMochila',
10139 (getCookie("codMochila") == null) ? data.backpackCode : JSON.parse(data).backpackCode,
10140 24,
10141 domain
10142 );
10143 addItemSuccessMochila();
10144
10145 }).fail(function(xhr, status, error) {
10146
10147 $('#modal-backpack-error').removeClass('d-none');
10148
10149 }).always(function(){
10150
10151 cleanLoadingSubmitButton(
10152 originElemSelector,
10153 originElemSelector.indexOf('backpack') > 0 ? 'OK, desejo comprar' : 'COMPRAR'
10154 );
10155 $('[id^="modalAntesCompra_"]').each(function(index, modal) {
10156 modal.style.display = "none";
10157 });
10158
10159 });
10160
10161 }, backpackPostRequest);
10162
10163}
10164
10165function componentBuyConfirmation(codigoUnidade, oferta, dataEfetiva){
10166
10167 var comp = null;
10168
10169 if((oferta.destinoCompra !== null) && oferta.destinoCompra == "2" && !excecaoCursoGratuito(oferta)){
10170
10171 comp = $("<button>")
10172 .addClass("btn btn-lg btn-success w-100 mt-3 btn-backpack")
10173 .attr("offerCode",oferta.codigoOferta)
10174 .attr("unitCode",codigoUnidade)
10175 .attr("effectiveDate",dataEfetiva)
10176 .text("OK, desejo comprar");
10177
10178 }else {
10179 var textoBotaoConfirmacao = "OK, desejo comprar";
10180
10181 if(excecaoCursoGratuito(oferta))
10182 textoBotaoConfirmacao = "Ok, desejo fazer a matrícula";
10183
10184 comp = $("<a>")
10185 .addClass("btn btn-lg btn-success w-100 mt-3")
10186 .text(textoBotaoConfirmacao)
10187 .attr("href", linkBotaoCompra.replace('\{codigoUnidade\}', codigoUnidade).replace('\{codigoOferta\}', oferta.codigoOferta))
10188 .attr("target","_blank");
10189 }
10190
10191 comp.attr('id', 'btnCompraLocal_' + oferta.indice);
10192
10193 return comp[0].outerHTML;
10194
10195}
10196
10197function getUnidadesSelecionadasRI(){
10198 var unidadesRI = [];
10199
10200 try{
10201
10202 $('#select-unidades-registro-interesse').find('select').each((i,select) =>{
10203 var unidadeSel = select.selectedOptions[0].innerText;
10204 if(!unidadesRI.includes(unidadeSel)) unidadesRI.push(unidadeSel);
10205 });
10206
10207 var unidadesExt = unidadesRI.join(', ');
10208
10209 const lastIndex = unidadesExt.lastIndexOf(',');
10210
10211 if(lastIndex > 0) unidadesExt = unidadesExt.substring(0, lastIndex) + ' ou ' + unidadesExt.substring(lastIndex + 1);
10212
10213 return {
10214 'unidadesPrefix' : (unidadesRI.length > 1 ? ', nas unidades ' : (unidadesRI.length == 1 ? ', na unidade ' : '')),
10215 'unidades' : unidadesExt
10216 };
10217
10218 }catch(err){
10219
10220 return {
10221 'unidadesPrefix' : '',
10222 'unidades' : ''
10223 };
10224
10225 }
10226
10227 }
10228
10229
10230
10231
10232function addItemSuccessMochila(){
10233
10234 mochila.check();
10235 $('#modal-backpack-success__nome-curso').html($('.ssp-card-detalhe-curso__title').text());
10236 $('#modal-backpack-success').removeClass('d-none');
10237
10238}
10239
10240$(document).on('click', '.btn-backpack', function(e){
10241
10242 addItemBackpack(event.target.getAttribute("offerCode"), '.btn-backpack',event.target.getAttribute("unitCode"),event.target.getAttribute("effectiveDate"));
10243
10244});
10245
10246$('#btn-voltar-modal-backpack-error').click(function () {
10247 $('#modal-backpack-error').addClass('d-none');
10248});
10249
10250$('#btn-voltar-modal-backpack-error').click(function () {
10251 $('#modal-backpack-error').addClass('d-none');
10252});
10253
10254$('.btn-mochila-continuar-site-success, .modal-btn-close').click(function () {
10255 $('#modal-backpack-success').addClass('d-none');
10256});
10257
10258$('.btn-mochila-finalizar-compra-success').click(function () {
10259 // Montar object push - google tag manager - 6
10260 sendEventEcommerce("begin_checkout", ofertaSelecionada);
10261
10262 mochila.verificaLogin();
10263 $('#modal-backpack-success').addClass('d-none');
10264 $('[id^="myModal_"]').each((i,modal)=>modal.style.display = "none");
10265});
10266
10267 function closeModalFormAprendizagem(){
10268 let modal = document.querySelector('[data-modal="modal"]')
10269
10270 modal.classList.remove('open-modal-form')
10271
10272 }
10273
10274
10275 function openModalFormAprendizagem(){
10276 let modal = document.querySelector('[data-modal="modal"]')
10277
10278 modal.classList.add('open-modal-form')
10279
10280 }
10281
10282 function addEventBolsa() {
10283 // Mostra o preco
10284 const btnShowPrices = document.querySelectorAll('.btn-show-price')
10285
10286 btnShowPrices.forEach(btnShowPrice => btnShowPrice.addEventListener('click',togglePriceCard))
10287
10288 if(!$('#chkBolsa').prop('checked'))
10289 togglePriceCard()
10290 }
10291
10292 function togglePriceCard(selector){
10293 if(selector instanceof PointerEvent) return
10294
10295 if(!selector) selector = ''
10296 else selector = '.' + selector
10297
10298 const btnPrices = document.querySelectorAll('.show-price-content'+selector)
10299 const contentPrices = document.querySelectorAll('.content-valores-descontos'+selector)
10300 const contentBtnBolsas = document.querySelectorAll('.content-btn-bolsa'+selector)
10301
10302 btnPrices.forEach(btnPrice => btnPrice.classList.toggle('hide'))
10303 contentBtnBolsas.forEach(contentBtnBolsa => contentBtnBolsa.classList.toggle('modifier-content-show'))
10304 contentPrices.forEach(contentPrice => contentPrice.classList.toggle('hide-price'))
10305 }
10306
10307 function getRegiaoName(key) {
10308 switch (key) {
10309 case "C":
10310 return "Capital";
10311 case "I":
10312 return "Interior";
10313 case "GS":
10314 return "Grande São Paulo e Litoral";
10315 default:
10316 return "Sem Região";
10317 }
10318 }
10319
10320 function criarOptionUnidadesPorRegiao(unidades) {
10321 let regioes = {}
10322 let unidadeFounded
10323
10324 unidades.forEach(unidade => {
10325 if(!regioes[unidade.codRegiaoUnidade || 'N'])
10326 regioes[unidade.codRegiaoUnidade || 'N'] = []
10327
10328 regioes[unidade.codRegiaoUnidade || 'N'].push(unidade)
10329 })
10330
10331 Array.from(['C', 'I', 'GS', 'N'])
10332 .filter(key => Object.keys(regioes).includes(key))
10333 .forEach(key => {
10334 const unidadesDaRegiao = regioes[key]
10335
10336 const optionDisabled = $('<option>')
10337 optionDisabled.attr('label', getRegiaoName(key))
10338 optionDisabled.text(getRegiaoName(key));
10339 optionDisabled.attr('disabled', true)
10340 optionDisabled.addClass('ssp-option-group')
10341 $('#unidades-ofertas').append(optionDisabled)
10342
10343 $.each(unidadesDaRegiao, function(k,unidade){
10344 if($('#unidades-ofertas').find('[value="'+unidade['categoryId']+'"]').length == 0){
10345 var option = $('<option>');
10346 option.val(unidade['categoryId']+"@"+unidade['codigoUnidade']);
10347 option.text(unidade['nome']);
10348 option.attr('data-unidade-friendly-url', unidade.friendlyURL)
10349 option.addClass('ssp-option')
10350
10351 $('#unidades-ofertas').append(option);
10352
10353 unidadeFounded = !unidadeFounded && getURLData().includes('/'+unidade.friendlyURL+'/') ? unidade : unidadeFounded
10354 }
10355 })
10356 })
10357
10358 return unidadeFounded
10359 }
10360
10361 function getURLData() {
10362 return URLGeral.replace(HOST, '')
10363 }
10364
10365 /**
10366 * Copia um objeto JSON
10367 */
10368 function cloneObj(original) {
10369 return JSON.parse(JSON.stringify(original));
10370 }
10371
10372 function getUrlConsultaBolsa(oferta){
10373
10374 let url = '';
10375 if (isAmbienteTeste()) {
10376 if(oferta.destinoBolsa=='1') {
10377 url = 'https://hwse.sp.senac.br/rest/wss/cursos/bolsa/v1/?COD_EVENTO='+oferta.codigoOferta
10378 } else {
10379 url = 'https://hom-wse-bolsas.sp.senac.br/api/cursos/bolsa/v1/'+oferta.codigoOferta;
10380 }
10381 } else {
10382 if(oferta.destinoBolsa=='1') {
10383 url = 'https://wse.sp.senac.br/rest/wss/cursos/bolsa/v1/?COD_EVENTO='+oferta.codigoOferta
10384 } else {
10385 url = 'https://wse-bolsas.sp.senac.br/api/cursos/bolsa/v1/'+oferta.codigoOferta;
10386 }
10387
10388 }
10389
10390 return url;
10391 }
10392
10393 function execCompraEmed(oferta){
10394 let linkInscricaoEmed = '', linkInscricaoEmedHml = '';
10395 if(oferta.etapa == '0010'){
10396 linkInscricaoEmed = 'https://www.sp.senac.br/login/Login?destino=https://inscricao-educacional-ms.sp.senac.br/?oferta={codOferta}';
10397 linkInscricaoEmedHml = 'https://gesportal.sp.senac.br/login/Login?destino=https://hinscricao-educacional-backend.sp.senac.br/?oferta={codOferta}';
10398 }
10399
10400 var ambTeste = ['localhost', 'hom', 'dev'];
10401 var link = linkInscricaoEmed;
10402 $.each(ambTeste, function(i, a){
10403 if(location.hostname.indexOf(a) >= 0){
10404 link = linkInscricaoEmedHml;
10405 return false;
10406 }
10407 });
10408
10409 // Montar object push - google tag manager - 3
10410 ofertaSelecionada = itensEcommerce.get(oferta.codigoOferta)
10411 sendEventEcommerce("select_item", ofertaSelecionada);
10412 sendEventEcommerce("view_item", ofertaSelecionada);
10413 sendEventEcommerce("add_to_cart", ofertaSelecionada);
10414 sendEventEcommerce("begin_checkout", ofertaSelecionada);
10415
10416 var urlCompra = link.replace('\{codOferta\}', oferta.codigoOferta);
10417 window.open(urlCompra, '_blank');
10418 }
10419
10420 function formataDataComBarra(dataInvertidaComTraco){
10421 return dataInvertidaComTraco.split('-').reverse().join('/');
10422 }
10423
10424
10425 let ctrlPressed = false;
10426 $(window).keydown(function (ev) {
10427 if(ev.which == 17){
10428 ctrlPressed = true;
10429 return false;
10430 }
10431 if(ev.which == 82 && ctrlPressed){
10432 return false;
10433 }
10434 return (ev.which != 116); // F5
10435 }).keyup(function(ev) {
10436 if (ev.which == 17){
10437 ctrlPressed = false;
10438 }
10439 return true;
10440 });
10441
10442
10443 </script>
10444
10445</#if>