Um erro ocorreu enquanto processava o modelo.
The following has evaluated to null or missing: ==> isEMED [in template "20102#20129#438394" at line 3716, 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 3716, 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__money-check-dollar::after {
62
63 font-size: 18px;
64
65}
66
67.ssp:not(.liferay-instance) .ssp-card-modal-forma-pagamento__icon-credit-card::after {
68
69 font-size: 18px;
70
71}
72
73.ssp:not(.liferay-instance) .ssp-card-modal-forma-pagamento__icon-boleto::after {
74
75 font-size: 18px;
76
77}
78
79.ssp:not(.liferay-instance) .ssp-card-modal-forma-pagamento__header {
80 align-items:center;
81 color:#454F63;
82}
83
84.ssp:not(.liferay-instance) .ssp-card-modal-forma-pagamento__btn-close::after {
85 font-family: "Font Awesome 6 Pro";
86 font-weight: normal;
87 content: "\f00d";
88 font-style: normal;
89 font-size:30px;
90 cursor: pointer;
91}
92
93.ssp:not(.liferay-instance) .ssp-card-modal-forma-pagamento__icon-boleto-cartao::after{
94 font-family: "Font Awesome 6 Pro";
95 font-weight: light;
96 content: "\f53d";
97 font-style: normal;
98 font-size: 18px;
99 color: #454f63;
100 margin-right: 15px;
101}
102
103.ssp:not(.liferay-instance) .ssp-card-modal-forma-pagamento__body {
104
105 padding:0 15px;
106}
107
108.ssp-card-modal-forma-pagamento__tipos-content p {
109
110 color: #454F63!important;
111 font-size: 14px!important;
112}
113
114.ssp-card-modal-forma-pagamento__tipos-content strong {
115
116 font-weight: bold!important;
117}
118
119.txt-desconto-oito{
120
121 font-weight: 600!important;
122 border: 1px solid #f2f2f2;
123 border-right: 0;
124 border-left: 0;
125 padding: 10px 0;
126}
127
128.next-mobile{
129 color: white;
130 display: flex;
131 align-items: center;
132 text-decoration: none!important;
133}
134
135.next-mobile:hover{
136 color: white;
137 font-weight: normal!important;
138}
139
140.next-mobile::before{
141 font-family: "Montserrat", sans-serif;
142 content: "Próxima";
143 font-size: 14px;
144 font-weight: 600;
145 display: block;
146 margin-right: 9px;
147 color: white;
148}
149
150.next-mobile.slick-arrow.slick-disabled{
151 opacity: 0.4;
152}
153
154
155/* Prev Mobile button */
156
157
158.prev-mobile{
159 color: white;
160 display: flex;
161 align-items: center;
162 text-decoration: none;
163 text-decoration: none!important;
164}
165
166.prev-mobile:hover{
167 color: white;
168 font-weight: normal!important;
169}
170
171.prev-mobile::after{
172 font-family: "Montserrat", sans-serif;
173 content: "Anterior";
174 font-weight: 600;
175 font-size: 14px;
176 display: block;
177 margin-left: 9px;
178 color: white;
179}
180
181.prev-mobile.slick-arrow.slick-disabled{
182 opacity: 0.4;
183}
184
185
186.icon-ao-vivo{
187 font-size: 15px!important;
188 margin: 0 3px;
189}
190
191.ssp-card-detalhe-curso__tag-ao-vivo{
192 font-family: "Montserrat";
193 font-size: 19px;
194 letter-spacing: 0px;
195 color: #F77A3B;
196}
197
198.selecione-unidade-title-custom{
199
200 width:100%!important;
201
202}
203
204.recalcular{
205 background:#F6921E!important;
206 border: solid 1px #F6921E!important;
207}
208
209.ssp-card-detalhe-curso__description{
210
211 font-family: "Montserrat";
212 max-width: 800px;
213 font-size: 20px;
214 font-weight: 500;
215 font-stretch: normal;
216 font-style: normal;
217 line-height: 1.23;
218 letter-spacing: normal;
219 margin: 10px 0;
220 text-align: left;
221 color: #4f596f;
222
223}
224
225/* nova formatação para registro de interesse */
226.ssp:not(.liferay-instance) .ssp-aviso-novas-turmas__content {
227 display: flex;
228 flex-wrap: nowrap;
229 justify-content: center;
230 align-items: center;
231 padding: 10px 0;
232}
233
234/* Novas tags para formato de curso */
235
236.ssp-card-detalhe-curso__tag-formato{
237
238 font-size:18px;
239 font-weight:600;
240
241}
242
243.icon-formato{
244 margin-right:7px;
245}
246
247.online-aovivo{
248 position:relative;
249
250}
251
252.icon-small-wifi {
253 font-size: 13px;
254 position: absolute;
255 left: -12px;
256 top: -5px;
257}
258
259.ssp-desconto-2022 .modal-extensao_txteconomiza {
260 font-size: 14px !important;
261 font-weight: 100 !important;
262}
263.ssp-desconto-2022 .ssp-card-oferta-curso__desconto-content .ssp-card-oferta-curso__valor-desconto {
264 font-weight: 100 !important;
265}
266.ssp-desconto-2022 .modal-extensao-btn-conheca {
267 border: 1px solid #474F61 !important;
268 border-radius: 4px;
269 color: #474F61 !important;
270 font-size: 15px;
271 height: 50px;
272 margin-left: 0;
273 display: flex;
274 align-items: center;
275 justify-content: center;
276}
277
278.ssp-card-modal-forma-pagamento.ssp-desconto-2022 {
279 color: #454F63;
280}
281.ssp-card-oferta-curso__item-valor-investimento.ssp-desconto-2022 {
282 font-size: 22px !important;
283}
284.ssp-card-oferta-curso__item-valor-investimento.ssp-desconto-2022 span {
285 font-size: 13px !important;
286}
287.ssp-desconto-2022 span {
288 padding: 0 !important;
289}
290
291.ssp:not(.liferay-instance) .ssp-card-registro-interesse__select {
292 appearance: none !important;
293 -webkit-appearance: none !important;
294 -moz-appearance: none !important;
295
296 background-size: 25px 25px !important;
297 background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOTIgNTEyIj48IS0tIEZvbnQgQXdlc29tZSBQcm8gNS4xNS40IGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlIChDb21tZXJjaWFsIExpY2Vuc2UpIC0tPjxwYXRoIGQ9Ik0xODcuOCAyNjQuNUw0MSA0MTIuNWMtNC43IDQuNy0xMi4zIDQuNy0xNyAwTDQuMiAzOTIuN2MtNC43LTQuNy00LjctMTIuMyAwLTE3TDEyMi43IDI1NiA0LjIgMTM2LjNjLTQuNy00LjctNC43LTEyLjMgMC0xN0wyNCA5OS41YzQuNy00LjcgMTIuMy00LjcgMTcgMGwxNDYuOCAxNDhjNC43IDQuNyA0LjcgMTIuMyAwIDE3eiIvPjwvc3ZnPg==);
298 background-repeat: no-repeat !important;
299 background-position-x: 99% !important;
300 background-position-y: 50% !important;
301}
302
303@media only screen and (max-width: 768px){
304
305 .ssp-card-detalhe-curso__tag-ao-vivo{
306 font-size: 14px;
307 display: none;
308 }
309 .ssp:not(.liferay-instance) .ssp-aviso-novas-turmas__content {
310
311 flex-wrap: wrap!important;
312
313}
314.ssp-card-modal-forma-pagamento__tipos-content p {
315
316 font-size: 12px!important;
317}
318
319
320 .ssp:not(.liferay-instance) .ssp-section-selecione-unidade {
321 padding: 30px 0!important;
322 padding-bottom: 30px !important;
323 background-color: #2a2e43;
324 }
325
326 .ssp:not(.liferay-instance) .ssp-aviso-novas-turmas__title {
327 padding-bottom: 1.25rem !important;
328 }
329
330 .selecione-unidade-title-custom{
331 width:100%!important;
332
333 }
334
335 .ssp-card-detalhe-curso__description{
336 width: 100%;
337 font-size: 15px;
338
339 }
340 .ssp-como-me-matricular__passo-passo-card {
341 padding: 30px 24px!important;
342
343 }
344
345 .emed-select-group {
346 box-shadow: none!important;
347 border: none !important;
348 border-bottom: 1px solid #6E6E6E!important;
349 border-radius: 0 !important;
350 padding: 0 !important;
351 margin: 1rem 0 !important;
352 }
353
354 .emed .ssp-card-registro-interesse__title-modal{
355 font-size: 20px!important;
356 }
357 .emed .ssp-card-registro-interesse__title-section-itens {
358 font-size: 15px!important;
359 margin-top: 0px!important;
360 margin-bottom: 0px!important;
361 color: #2a2e43;
362 }
363 .ssp-card-registro-interesse.emed [type="checkbox"] {
364 transform: scale(0.6);
365 margin-left: 2px;
366 }
367
368 .ssp-card-registro-interesse.emed label {
369 margin-left: 0px;
370 margin-right: 3px;
371 }
372}
373
374.ssp-card-oferta-curso__local-realizacao-content__title {
375 font-family: "Open Sans", sans-serif;
376 font-size: 10pt;
377 font-weight: normal;
378 color: #00488c;
379 font-weight: bold;
380 text-decoration: none!important;
381 padding-left: 10px;
382}
383
384 @media screen and (min-width: 767px){
385
386 .ssp-modal-local-realizacao{
387 width: 480px!important;
388 }
389 .ssp-card-modal-forma-pagamento__header {
390 margin-bottom: 20px;
391 }
392
393 .ssp-modal-local-realizacao__title{
394 color:#01488C !important;
395 text-align: center!important;
396 margin-left: -23px!important;
397 }
398
399 .ssp:not(.liferay-instance) .ssp-modal-local-realizacao__title {
400 font-size: 14pt;
401 }
402 .ssp:not(.liferay-instance) [data-info="data-para-matricula"] {
403 font-size: 14px !important;
404 text-align: left;
405 }
406 .ssp-modal-emed-txt-desconto-oito {
407 padding: 10px 0 0px!important;
408 }
409 .ssp:not(.liferay-instance) .ssp-modal-emed-info-valor-matricula {
410 color: #4F596F;
411 font-size: 15px!important;
412 text-align: center;
413 font-weight: 500!important;
414 }
415}
416
417@media screen and (max-width: 767px){
418 .ssp:not(.liferay-instance) .ssp-modal-local-realizacao {
419 width: 347px;
420 padding: 22px;
421 }
422 .ssp-modal {
423 padding-top: 72px!important;
424 }
425 .ssp-card-modal-forma-pagamento {
426 max-width: 335px!important;
427 }
428 .ssp-card-modal-forma-pagamento__body {
429 padding: 0px!important;
430 }
431 .ssp-modal-emed-txt-desconto-oito {
432 font-size: 12px !important;
433 }
434 .ssp-card-modal-forma-pagamento__header {
435 margin-bottom: 20px!important;
436 }
437 .txt-desconto-oito i {
438 font-size: 12px!important;
439 padding-top: 3px;
440 }
441 .txt-pague-vista {
442 font-size: 12px!important;
443 }
444 .txt-ganhe-mais {
445 font-size: 12px!important;
446 }
447 .ssp-modal-emed-info-valor-matricula {
448 color: #2A2E43!important;
449 font-size: 12px!important;
450 font-weight: 500!important;
451 }
452 .ssp:not(.liferay-instance) [data-info="data-para-matricula"] {
453 font-size: 12px !important;
454 line-height: 1.5;
455 text-align: left;
456 }
457
458 .ssp-desconto-2022 .txt-desconto-oito {
459 font-size: 14px !important;
460 }
461}
462
463@media screen and (max-width: 767px){
464 .ssp:not(.liferay-instance) .ssp-modal-local-realizacao__title {
465 font-size: 16pt;
466 }
467}
468
469.container-local-realizacao{
470 padding: 6px;
471 border: 0.5pt solid #cdd0d8;
472 border-radius: 5px;
473 width: 260px;
474 margin: 10px auto;
475 box-shadow: 1px 1px 1px #0000000F;
476}
477
478.idioma-online{
479 border:0!important;
480 box-shadow:none!important;
481}
482
483.btn-idiomas__aula-online .fa-wifi{
484 margin-right: 7px
485}
486
487.ssp-modal-local-realizacao__title{
488 color:#01488C !important;
489 text-align: center!important;
490}
491
492h6.ssp-modal-local-realizacao__title::after {
493 content: "";
494 display: block;
495 width: 20%;
496 padding-top: 10px;
497 border-bottom: 1px solid #01488C;
498 transition: .5s;
499 margin:auto;
500}
501
502.ssp:not(.liferay-instance) .ssp-card-oferta-curso__local-realizacao-content__icon-wifi::after {
503 font-family: "Font Awesome 5 Free";
504 content: '\f1eb';
505 font-weight: 600;
506 color: #00488c;
507 font-size: 8px;
508 font-style: normal;
509 margin-left: 2px;
510}
511
512.ssp:not(.liferay-instance) .ssp-card-oferta-curso__local-realizacao-content__icon-chalkboard-teacher::after {
513 font-family: "Font Awesome 5 Free";
514 content: '\f51c';
515 font-weight: 600;
516 color: #00488c;
517 font-size: 13px;
518 font-style: normal;
519}
520
521.ssp-card-oferta-curso__local-realizacao-content__icon-wifi{
522 display: flex;
523 margin-top: 0px;
524 margin-bottom: -10px;
525}
526
527.ssp:not(.liferay-instance) .ssp-modal__local-realizacao-content__icon-wifi::after {
528 font-family: "Font Awesome 5 Free";
529 content: '\f1eb';
530 font-weight: 600;
531 color: #00488c;
532 font-size: 9pt;
533 font-style: normal;
534 margin-right: 10px;
535}
536
537.ssp:not(.liferay-instance) .ssp-modal__local-realizacao-content__icon-chalkboard-teacher::after {
538 font-family: "Font Awesome 5 Free";
539 content: '\f51c';
540 font-weight: 600;
541 color: #00488c;
542 font-size: 16pt;
543 font-style: normal;
544 margin-left: -16px;
545}
546
547.ssp-modal__local-realizacao-content__icon-wifi{
548 display: flex;
549 margin-right: 2px
550}
551
552.ssp-modal-local-realizacao__texto{
553 text-align:center!important;
554}
555
556.texto-modal-emed{
557 text-align:left;
558}
559
560.nextPrevOpacity{
561 opacity: 0.3;
562}
563
564
565 .modal-extensao {
566 display: block;
567 position: fixed;
568 z-index: 2000;
569 padding-top: 100px;
570 left: 0;
571 top: 0;
572 width: 100%;
573 height: 100%;
574 overflow: auto;
575 background-color: black;
576 background-color: rgba(0, 0, 0, 0.6);
577 font-family: Montserrat;
578 }
579 .modal-extensao_content {
580 max-width: 700px;
581 width: 100%;
582 background: white;
583 border-radius: 12px;
584 padding: 30px 60px;
585 position: relative;
586 text-align: center;
587 margin: auto;
588 -webkit-animation-name: animatetop;
589 -webkit-animation-duration: 0.4s;
590 animation-name: animatetop;
591 animation-duration: 0.4s;
592 }
593 .modal-extensao-condicoes__title {
594 color: #000!important;
595 text-transform: uppercase!important;
596 font-size: 18px!important;
597
598 }
599 .modal-extensao-condicoes__subtitle {
600 color: #000!important;
601 font-size: 18px!important;
602 margin-bottom: 0px!important;
603
604 }
605 .modal-extensao__btn {
606 background-color: #5ACC75!important;
607 font-size: 14px;
608 float: right;
609 color: #ffffff;
610 min-width: 165px;
611 }
612 .modal-extensao__btn:hover {
613 background-color: #3fb25c!important;
614 border-color: transparent;
615 color: #ffffff;
616 }
617 .modal-extensao_subtitle {
618 font-size: 13.7px!important;
619 color: #2A2E43!important;
620 font-family: Montserrat, semi-bold!important;
621 font-weight: 600!important;
622 }
623 .modal-extensao_subtitle::after {
624 content: " ";
625 display: block;
626 width: 126px;
627 height: 2px;
628 background: #707070;
629 margin: 0 auto;
630 margin-top: 5px;
631 }
632 .modal-extensao_preco {
633 color: #454F63;
634 font-size: 25px;
635 font-family: Montserrat;
636 font-weight: bold;
637 }
638 .modal-extensao_ctboleto {
639 width: 50%;
640 float: left;
641 border-color: #D7D7DB;
642 border-style: solid;
643 border-width: 1px;
644 border-left: none;
645 font-size: 21px;
646 color: #454F63
647
648 }
649 .modal-extensao_ctcard {
650 width: 50%;
651 float: left;
652 border-color: #D7D7DB;
653 border-style: solid;
654 border-width: 1px;
655 border-right: none;
656 border-left: none;
657 font-size: 21px;
658 color: #454F63;
659 }
660
661 .modal-extensao_txtPag {
662 color:#2A2E43;
663 font-size: 9px;
664 font-family: Montserrat;
665 font-weight: 600;
666 display: block;
667 }
668 .modal-extensao_txteconomiza {
669 display: block;
670 font-size: 12px;
671 }
672 .modal-extensao_txtverde {
673 color: #5ACC75;
674 }
675 .modal-extensao_txtParcela {
676 color:#2A2E43;
677 font-size: 12px;
678 font-family: Montserrat;
679 font-weight: normal;
680 display: block;
681 }
682 .modal-extensao_txtporcent{
683 font-size: 9px;
684 color: #5ACC75;
685 font-weight: 600;
686 }
687 .modal-extensao-btn-conheca {
688 color: #2967F4 !important;
689 background-color: transparent;
690 border-color: #2967F4 !important;
691 box-shadow: none !important;
692 font-size: 14px !important;
693 margin-left: 10px;
694 transition: 0.3s;
695 float: left;
696 }
697 .modal-extensao-btn-conferir {
698 color: #2967F4 !important;
699 background-color: transparent;
700 border-color: #2967F4 !important;
701 box-shadow: none !important;
702 font-size: 14px !important;
703 margin-left: 10px;
704 transition: 0.3s;
705 min-width: 330px;
706 min-height: 50px;
707 }
708 .modal-extensao-btn-conferir:hover {
709 color: #ffffff!important;
710 }
711
712 .modal-extensao-btn-conheca:hover, .modal-extensao-btn-conheca:focus {
713 color: #ffffff!important;
714 }
715 .modal-extensao-btn-aluno-sim-nao {
716 color: #000000;
717 background-color: transparent;
718 border-color: #000000 !important;
719 box-shadow: none !important;
720 font-size: 14px !important;
721 margin-left: 10px;
722 transition: 0.3s;
723 min-width: 95px;
724 }
725 .modal-extensao-btn-aluno-sim-ativo {
726 color: #ffffff!important;
727 background-color: #3969EB!important;
728 border-color: #3969EB !important;
729 }
730 .modal-extensao-btn-aluno-sim-nao:hover {
731 background-color: transparent;
732 border-color: #3969EB !important;
733 color: #3969EB!important; }
734 .modal-extensao-voltar-icon,.modal-extensao-fechar {
735 font-size: 13px;
736 position: absolute;
737 top: 30px;
738 right: 20px;
739 cursor: pointer;
740 color: #000;
741 }
742
743 .modal-extensao-voltar-txticon {
744 color: #000;
745 font-size: 9px;
746 font-family: Montserrat;
747 font-weight: 600;
748 padding-left: 5px;
749 }
750 .modal-extensao-ico-check {
751 color: #5ACC75;
752 font-size: 65px;
753 }
754 .modal-extensao-aluno_txtcontent {
755 font-size: 18px!important;
756 color: #000;
757 }
758 .modal-extensao-aluno__btn {
759 background-color: #5ACC75!important;
760 font-size: 14px;
761 color: #ffffff;
762 min-width: 330px;
763 text-transform: uppercase;
764 min-height: 50px;
765 }
766 .modal-extensao-aluno__btn:hover {
767 color: #fff;
768 background-color: #3fb25c!important;
769 border-color: transparent;
770 color: #ffffff;
771 }
772 .modal-extensao-ico-percent {
773 background-color: blue;
774 color: #fff;
775 font-size: 48px;
776 border-radius: 50%;
777 padding: 10px 18px;
778 }
779
780 .btn-preco-ex-aluno,.btn-preco-padrao{
781
782 background:none;
783 border: none;
784 width: 100%;
785 display: flex;
786 align-items: center;
787 justify-content: space-between;
788 text-align: left;
789 font-size: 14px;
790 }
791
792 .custom-icon-right{
793 transform: rotate(0);
794 transition: all 0.5s;
795 }
796
797 .custom-icon-right-active{
798 transform: rotate(90deg);
799 }
800
801 .ssp-divisor{
802 width: 100%;
803 color: #D7D7DB;
804 margin: 15px 0;
805 }
806
807
808 @media only screen and (max-width: 768px){
809
810 .modal-extensao_content{
811 width:336px;
812 padding: 60px 20px 20px 20px;
813 }
814
815 .modal-extensao__btn{
816 width: 100%;
817 }
818
819 .modal-extensao-modal-extensao__btn {
820 float: initial;
821 width: 234px;
822 }
823 .modal-extensao-btn-conheca {
824 float: initial;
825 width: 100%;
826 margin-left: 0px;
827 }
828 .modal-extensao-aluno__btn {
829 min-width: 234px;
830 }
831 .modal-extensao-btn-conferir{
832 min-width: 234px;
833 margin-left: 0px;
834 }
835 }
836
837
838/* Emed */
839.ssp-btn-emed__voltar-curso {
840 border: 1px solid #474F61;
841 color: #474F61;
842 max-width: 372px;
843 margin-left: 60px;
844 height: 50px;
845 padding: 12px!important;
846}
847
848@media (max-width: 768px) {
849 .ssp-btn-emed__voltar-curso {
850 font-size: 14px;
851 margin-left: 0px!important;
852 }
853}
854
855@media only screen and (max-width: 767px){
856 .ssp:not(.liferay-instance) .ssp-emed-visita-text {
857 margin: 0;
858 transform: none;
859 margin-left: 10px;
860 }
861}
862
863.ssp:not(.liferay-instance) .icon-map-adress::after {
864 padding: 0 8px 0 0;
865}
866
867.ssp:not(.liferay-instance) .ssp-card-oferta-curso__mensagem-legal {
868 margin: 5px 0;
869}
870
871.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-info-investimento .btn-card-investimento {
872 width: 100%;
873 color: white !important;
874 font-size: 15px;
875 font-weight: 600;
876 margin: 10px 0;
877}
878
879.ssp-modal-emed-info-txt-matricula {
880 display: inline-block;
881}
882.ssp:not(.liferay-instance) .btn-card-investimento.--inscreva-se.disabled {
883 background: #BFC3C9 !important;
884 color: #454F63!important;
885 opacity: 1;
886 font-size: 14px;
887 border:none;
888}
889
890.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-info-investimento .btn-card-investimento.--bolsas.disabled {
891 background: #E5E8ED;
892 color: #454F63!important;
893 opacity: 1;
894 font-size: 14px;
895}
896
897.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-info-investimento .btn-card-investimento.--inscreva-se {
898 background-color: #5acc75;
899 text-transform: none;
900}
901
902.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-info-investimento .link-descontos-parcelamentos {
903 font-weight: 600;
904}
905
906.ssp:not(.liferay-instance) .ssp-card-oferta-curso__sem-vaga-title {
907 margin: 0;
908}
909
910.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-container {
911
912 padding: 0;
913
914}
915
916.ssp:not(.liferay-instance) .ssp-ofertas-emed__filtro-content {
917 padding: 40px 0;
918}
919
920.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-info-investimento .txt-boleto-cartao {
921 text-align: center;
922}
923.ssp-card-modal-emed-lineou {
924height: 1px;
925 background-color: #FC7834;
926 text-align: center;
927 width: 50%;
928 margin: 0px auto;
929 margin-bottom: 15px;
930}
931.ssp-card-modal-emed-lineou span {
932background-color: white;
933 position: relative;
934 top: -0.8em;
935 padding: 0 19px;
936 font-weight: bold;
937 color: #2A2E43;
938 font-size: 15px;
939}
940.ssp-modal-emed-txtValor {
941 font-size: 16px;
942 color: #04488C;
943 font-weight: bold;
944}
945.ssp-card-modal-emed-centralizaPagtos{
946max-width: 285px;margin:0 auto; margin-top: 18px!important;
947}
948.ssp-card-modal-forma-pagamento__tipos-content p {
949 font-weight: 500!important;
950}
951.textoCartoesAceitos {
952 font-weight: 500!important;
953}
954.ssp-card-modal-emed-valorObs {
955 color: #004A8C;
956 display: flex;
957 justify-content: center;
958 font-weight: 500;
959 padding-top: 11px;
960 font-size: 14px;
961}
962.ssp-card-modal-emed-boxDesconto{
963 border: 0!important;
964 font-weight: 500!important;
965 background-color: #F7F7F7;
966 border-radius: 13px;
967 padding: 20px 40px!important;
968 margin-bottom: 0!important;
969}
970.ssp-modal-emed-boxoito {
971 padding: 5px 45px!important;
972 text-align: center;
973 border-bottom: 0px!important;
974}
975.ssp-modal-emed-btfechar {
976 position: absolute;
977 right: 0;
978 display: flex;
979 flex-direction: column;
980 text-align: center;
981 line-height: 0.9;
982 top: -48px;
983 color: #E4E8F0;
984 font-weight: 500;
985 font-size: 14px;
986}
987.ssp-card-modal-forma-pagamento__btn-close:hover {
988 opacity: .6;
989}
990.ssp-card-modal-emed-ano {
991 font-weight: 500;
992 font-size: 22px;
993 color: #454F63;
994}
995.ssp:not(.liferay-instance) [data-info="msg-20-desconto"] {
996 font-weight: 500!important;
997
998}
999.ssp-card-modal-emed-valorObs i {
1000 padding-top: 2px;
1001 padding-right: 3px;
1002}
1003button[id^="btnComprarEmedModal_"] {
1004 height: 50px;
1005 font-weight: 600;
1006 max-width: 372px;
1007 width: 100%;
1008 margin: 0 auto;
1009 /* margin-left: 60px; */
1010 display: block;
1011 height: 50px;
1012 padding: 12px !important;
1013
1014}
1015.obsspan {
1016 justify-content: left;
1017 padding-bottom: 10px;
1018}
1019
1020
1021
1022
1023@media only screen and (max-width: 767px){
1024
1025 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__mensagem-legal {
1026 width: 100%;
1027 }
1028
1029 .ssp-card-modal-emed-valorObs {
1030 font-size: 12px;
1031 }
1032 .obsspan {
1033 justify-content: left;
1034 margin-left: -14px!important;
1035 }
1036 .ssp-modal-emed-boxoito {
1037 padding: 5px 0px!important;
1038 }
1039 .ssp-modal-emed-info-txt-matricula {
1040 display: inherit;
1041 }
1042 .ssp-card-modal-emed-boxDesconto{
1043 padding: 20px 20px!important;
1044 font-size: 12px!important;
1045 }
1046 .ssp:not(.liferay-instance) [data-info="msg-20-desconto"] {
1047 font-size: 12px !important;
1048 font-weight: 500!important;
1049 }
1050 .ssp-modal-emed-btfechar {
1051 font-size: 12px;
1052
1053 }
1054 button[id^="btnComprarEmedModal_"] {
1055 height: 50px;
1056 padding: 10px;
1057 border-radius: 4px;
1058 margin-left: 0px!important
1059 }
1060 button[id^="btnComprarEmedModal_"] span {
1061 font-size: 15px;
1062 font-weight: 600;
1063 }
1064 .ssp-btn-emed__voltar-curso_0 {
1065 font-weight: 600!important;
1066 height: 50px;
1067 border-radius: 4px!important;
1068 padding: 14px!important;
1069 }
1070
1071
1072}
1073
1074@media screen and (min-width: 1200px){
1075 .ssp-col-lg-without {
1076 flex: unset;
1077 width: unset;
1078 }
1079}
1080@media screen and (max-width: 1199px){
1081 .ssp-desconto-2022 .modal-extensao_txteconomiza {
1082 font-size: 12px !important;
1083 }
1084 .ssp-filters-px {
1085 padding: 0 !important;
1086 }
1087 .ssp-switch-label {
1088 margin: auto 0 !important;
1089 }
1090 .ssp-switch-label-message {
1091 margin-top: 10px;
1092 margin-bottom: 10px;
1093 padding-right: 0 !important;
1094 padding-left: 0 !important;
1095 }
1096 .ssp-container-selecione-unidade [name="unidades-ofertas"] {
1097 max-width: 316px!important;
1098 }
1099 .ssp-detalhe-curso-titulo-filter {
1100 font-size: 16px !important;
1101 }
1102}
1103
1104
1105.ssp-filters-px {
1106 padding: 0 80px;
1107}
1108/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */
1109/* !!!!!!! CSS Destinado ao switch(toggle) !!!!!!! */
1110/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */
1111.ssp-switch {
1112 position: relative;
1113 display: inline-block;
1114 width: 63px;
1115 height: 32px;
1116}
1117
1118.ssp-switch input {
1119 opacity: 0;
1120 width: 0;
1121 height: 0;
1122}
1123
1124.ssp-switch-label {
1125 margin: auto 15px;
1126 font: normal normal 600 16px/19px Montserrat;
1127 letter-spacing: 0px;
1128 color: #FFFFFF;
1129 white-space: nowrap;
1130}
1131
1132.ssp-switch-label-section {
1133 font: normal normal 600 18px/22px Montserrat;
1134 margin-bottom: 11px;
1135}
1136
1137.ssp-switch-label-message {
1138 font: normal normal medium 16px/19px Montserrat !important;
1139 letter-spacing: 0px;
1140 color: #FFFFFF;
1141 margin-top: 16px;
1142 padding-left: 25px;
1143 padding-right: 25px;
1144}
1145
1146.ssp-switch-divider {
1147 border-bottom: 1px solid #4a4d5f;
1148 width: 100%;
1149}
1150
1151.ssp:not(.liferay-instance) .ssp-detalhe-curso-titulo-filter.ssp-detalhe-curso-titulo-filter {
1152 font-size: 21px;
1153}
1154
1155.ssp-switch-slider {
1156 position: absolute;
1157 cursor: pointer;
1158 top: 0;
1159 left: 0;
1160 right: 0;
1161 bottom: 0;
1162 background-color: #00000000;
1163 border: 1px solid #FFFFFF;
1164 -webkit-transition: .4s;
1165 transition: .4s;
1166}
1167
1168.ssp-switch-slider:before {
1169 position: absolute;
1170 content: "";
1171 height: 21px;
1172 width: 21px;
1173 left: 4px;
1174 bottom: 4px;
1175 background-color: white;
1176 -webkit-transition: .4s;
1177 transition: .4s;
1178}
1179
1180input:checked + .ssp-switch-slider {
1181 background-color: #5ACC75;
1182 border: 1px solid #5ACC75;
1183}
1184input:checked + .ssp-switch-slider-secondary {
1185 background-color: #2967F4;
1186 border: 1px solid #2967F4;
1187}
1188
1189input:focus + .ssp-switch-slider {
1190 box-shadow: 0 0 1px #5ACC75;
1191}
1192input:focus + .ssp-switch-slider-secondary {
1193 box-shadow: 0 0 1px #2967F4;
1194}
1195
1196input:checked + .ssp-switch-slider:before {
1197 -webkit-transform: translateX(33px);
1198 -ms-transform: translateX(33px);
1199 transform: translateX(33px);
1200}
1201
1202/* Rounded sliders */
1203.ssp-switch-slider.round {
1204 border-radius: 34px;
1205}
1206
1207.ssp-switch-slider.round:before {
1208 border-radius: 50%;
1209}
1210
1211/*Utilizado no modal de registro de interesse #9309*/
1212option[value=""][disabled] {
1213 display: none;
1214}
1215/* Css para botao de idiomas online */
1216
1217.btn-idiomas__aula-online{
1218 background:#5382FF;
1219 color:white!important;
1220 text-decoration:none!important;
1221 padding:11px 14px;
1222 border-radius:4px;
1223 font-size:13px;
1224 font-weight:600;
1225 transition:.3s;
1226}
1227
1228.btn-idiomas__aula-online:hover{
1229 background:#5275D1;
1230 font-weight:600!important;
1231}
1232
1233.title-idioma-online__modal,.icon-wifi-title__modal{
1234 color:#5382FF!important;
1235 font-size:25px!important;
1236 margin:0!important;
1237 margin-right:5px!important;
1238}
1239
1240.btn-modal-entendi__idioma-online{
1241 font-size:16px!important;
1242 font-weight:600!important;
1243 color:#5382FF!important;
1244 border:#5382FF 1px solid!important;
1245 padding:15px 142px;
1246 width:auto!important;
1247}
1248
1249.btn-modal-entendi__idioma-online:hover{
1250 font-size:16px!important;
1251 font-weight:600!important;
1252 color:#5382FF!important;
1253 border:#5382FF 1px solid!important;
1254 background:white!important;
1255}
1256
1257@media only screen and (max-width: 768px){
1258
1259 .title-idioma-online__modal,.icon-wifi-title__modal{
1260 color:#5382FF!important;
1261 font-size:21px!important;
1262 margin:0!important;
1263 margin-right:5px!important;
1264 }
1265
1266 .btn-modal-entendi__idioma-online{
1267 font-size:16px!important;
1268 font-weight:600!important;
1269 color:#5382FF!important;
1270 border:#5382FF 1px solid!important;
1271 padding:12px 30%;
1272 width:auto!important;
1273 }
1274
1275}
1276
1277.btn-emed-lista-espera{
1278 background-color:#C560C7!important;
1279}
1280
1281.ssp:not(.liferay-instance) .ssp-container__form-select {
1282 max-width: 430px;
1283 width:100%;
1284}
1285
1286
1287@media (max-width: 768px){
1288 .ssp:not(.liferay-instance) .ssp-ofertas-emed__card {
1289 margin: 10px 20px;
1290 max-width: 335px;
1291 }
1292}
1293
1294/* css EMED Registro de interesse */
1295
1296.emed #periodo-registro-interesse,.emed #turmas-registro-interesse{
1297
1298 display: flex;
1299 align-items: center;
1300 padding: 0.625rem 0;
1301 width: 85%;
1302 justify-content: space-between;
1303 margin: 0 auto;
1304
1305}
1306
1307.ssp-card-registro-interesse__title-section-itens{
1308 margin: 10px 0 11.5px 0 !important;
1309 font-size: 20px;
1310 flex-basis: 120px;
1311}
1312
1313.ssp-card-registro-interesse__check-itens-content {
1314 display: flex!important;
1315 justify-content: center!important;
1316 flex: 0 1 90%!important;
1317}
1318.ssp-card-registro-interesse__check-item {
1319 display: flex;
1320 align-items: center;
1321 flex-basis: 100px;
1322}
1323
1324.ssp-card-registro-interesse label {
1325 margin-right: 0!important;
1326}
1327
1328.ssp-card-registro-interesse [type="checkbox"] {
1329box-shadow: 0px 0px 6px #00000029;
1330}
1331
1332#cursos-registro-interesse,#unidades-registro-interesse{
1333padding: 10px 0;
1334}
1335
1336.emed-select-group{
1337
1338box-shadow: 0px 0px 12px #00000010;
1339border: 1px solid #6E6E6E;
1340border-radius: 4px;
1341padding: 1.0rem 1.125rem;
1342margin: 1rem 0;
1343
1344}
1345
1346.ssp:not(.liferay-instance) .ssp-card-registro-interesse__add-mais > a {
1347 color: #457eff !important;
1348 }
1349
1350.emed .ssp-card-registro-interesse__btn-enviar {
1351background-color: #C560C7 !important;
1352}
1353
1354.ssp-card-registro-interesse__title-modal{
1355color:#C560C7 !important;
1356font-size: 35px !important;
1357font-weight: bold !important;
1358margin: 0 !important;
1359}
1360
1361#msg-transferencia-emed{
1362display: flex;
1363justify-content: center;
1364flex: wrap;
1365flex-direction: column;
1366align-items: center;
1367padding: 1rem 0;
1368}
1369
1370.transferencia-emed-title {
1371 color: #d266d4;
1372 display: flex;
1373 gap: 10px;
1374 font-size: 16px;
1375 font-weight: bold;
1376 align-items:center;
1377}
1378
1379.transferencia-emed-title p {
1380 margin: 0 !important;
1381 font-weight: bold !important;
1382 font-size: 16px!important;
1383}
1384
1385.transferencia-emed-link a{
1386 font-size: 15px;
1387 font-weight: 500!important;
1388 color: #792F7A;
1389 display: block;
1390 text-align: center;
1391}
1392
1393.transferencia-emed-link a:hover {
1394 font-weight: 500!important;
1395 color: #792F7A;
1396}
1397
1398.emed .ssp-card-registro-interesse__label-curso-selecionado{
1399color:#2A2E43!important;
1400font-weight: bold!important;
1401font-size: 28px;
1402}
1403
1404
1405/* css para registro de interesse atual */
1406
1407#periodo-registro-interesse,#dias-registro-interesse{
1408padding: .625rem 0;
1409}
1410
1411/* css card sem turma e registro de interesse emed*/
1412
1413.slick-area-emed {
1414 display: -webkit-box !important;
1415 display: -ms-flexbox !important;
1416 display: flex !important;
1417 -webkit-box-align: center;
1418 -ms-flex-align: center;
1419 align-items: center;
1420 -webkit-box-pack: center;
1421 -ms-flex-pack: center;
1422 justify-content: center;
1423 font-size: 0;
1424 -ms-flex-wrap: nowrap;
1425 flex-wrap: nowrap;
1426 }
1427
1428 .slick-area-emed .slick-track, .slick-area-emed .slick-list {
1429 width: 100%;
1430 }
1431
1432 @media only screen and (max-width: 1199px) and (min-width: 768px) {
1433 .slick-area-emed--md-bleed {
1434 width: 100vw;
1435 left: calc(-1 * calc(50vw - (740px / 2) + 37px))!important;
1436 }
1437 .slick-area-emed--md-bleed .slick-list {
1438 padding-left: calc(calc(50vw - (768px / 2) + 37px));
1439 padding-right: calc(calc(50vw - (768px / 2) + 37px));
1440 }
1441 .slick-area-emed--md-bleed .slick-arrow {
1442 display: none !important;
1443 }
1444 }
1445
1446 @media only screen and (min-width: 376px) and (max-width: 1024px) {
1447 .slick-area-emed--md-bleed {
1448 width: 100vw;
1449 left: calc(-1 * (calc(100vw / 2) - calc(310px / 2) - 3px));
1450 }
1451 .slick-area-emed--md-bleed .slick-list {
1452 padding-left: 2px;
1453 }
1454 .slick-area-emed--md-bleed .slick-arrow {
1455 display: none !important;
1456 }
1457 }
1458
1459 @media only screen and (max-width: 375px) {
1460
1461 .ssp-emed__card-slider-body {
1462 padding: 25px 30px;
1463 }
1464
1465
1466 .slick-area-emed--md-bleed {
1467 width: 100vw;
1468 left: calc(-1 * (calc(100vw / 2) - calc(310px / 2) - 3px));
1469 }
1470 /* .slick-area-emed--md-bleed .slick-list {
1471 padding-left: 20px;
1472
1473 } */
1474 .slick-area-emed--md-bleed .slick-arrow {
1475 display: none !important;
1476 }
1477 }
1478
1479 .slick-area__item {
1480 display: flex;
1481 flex-basis: auto;
1482 }
1483
1484 .ssp-emed__section__textCard {
1485 margin: 20px 0 0 0;
1486}
1487
1488 .ssp-emed__card-slider-body {
1489 padding: 25px 50px;
1490 min-height: 350px;
1491 display: flex;
1492 flex-direction: column;
1493 }
1494
1495 .slick-area__item {
1496 display: flex;
1497 flex-basis: auto;
1498 }
1499
1500 .ssp-emed__card-slider-body a {
1501 text-decoration: none!important;
1502 font-weight: normal;
1503 color: #78849E
1504 }
1505
1506 .ssp-emed__card-slider-body a:hover {
1507 font-weight: bold!important;
1508 color: #2a2e43
1509 }
1510
1511 .ssp-emed__card-slider {
1512 border-radius: 12px;
1513 background: transparent;
1514 -webkit-box-shadow: 0 0 12px 0 rgb(0 0 0 / 16%);
1515 box-shadow: 0 0 12px 0 rgb(0 0 0 / 16%);
1516 margin: 12px;
1517 position: relative;
1518 overflow: hidden;
1519 color: #ffffff!important;
1520 border: 1px solid #fff;
1521 min-height: 350px;
1522 }
1523
1524 .slick-initialized .slick-track {
1525 display: flex;
1526 }
1527
1528 .slick-initialized .slick-slide {
1529 height: inherit!important;
1530 display: flex;
1531 }
1532
1533 .ssp-emed__section__titleCard {
1534 font-size: 28px !important;
1535 color: #ffffff !important;
1536 margin: 0 !important;
1537 display: flex !important;
1538 justify-content: flex-start !important;
1539 flex-direction: row !important;
1540 align-items: start !important;
1541 flex-basis: 60px;
1542}
1543
1544.ssp-emed__section__titleCard i {
1545 font-size: 28px;
1546 color: #ffffff;
1547 margin: 0 0.85rem 0 0;
1548 line-height: 30px;
1549}
1550
1551.ssp-emed__section__titleCard i.fa-envelope {
1552 margin-top: 0px;
1553}
1554
1555.ssp-emed__section__titleCard i.fa-users-class {
1556 margin-top:2px;
1557}
1558
1559.ssp-emed__section__titleCard div {
1560 text-decoration: underline;
1561 font-size: 28px !important;
1562 font-weight: bold;
1563 margin: 0!important;
1564 transform:translateY(-2px)
1565}
1566
1567 .ssp-emed__section__introCard {
1568 display: block;
1569 font: 28px/30px 'Montserrat';
1570 font-weight: 600;
1571 margin: 20px 0;
1572 color: #ffffff;
1573 }
1574
1575 .ssp-emed__section__introCardCTA {
1576 font: 34px/36px 'Montserrat';
1577 font-weight: bold;
1578 display: block;
1579 margin: 20px 0;
1580 color: #ffffff;
1581 }
1582
1583 .ssp-emed__section__textCard {
1584 font: 22px/30px 'Montserrat';
1585 color: #ffffff;
1586 display: block;
1587 margin: 20px 0 0 0;
1588 position: relative;
1589 }
1590
1591 .ssp-emed__iconWrapper {
1592 display: inline-block;
1593 width: 50px;
1594 color: #B053B2;
1595 position: absolute;
1596 bottom: 0;
1597 right: 0;
1598 }
1599
1600 .ssp-emed__btn {
1601 background-color: #B053B2 ;
1602 color: #fff!important;
1603 font: normal normal 600 18px/22px Montserrat;
1604 box-shadow: 0px 4px 16px #455B6314;
1605 width: 100%;
1606 transition: .3s;
1607 padding:10px!important;
1608 }
1609
1610 .ssp-emed__btn:hover {
1611 opacity: 0.7;
1612 }
1613
1614 /*mobile emed*/
1615 @media only screen and (max-width: 1024px) {
1616 .slick-area-emed .slick-dots li.slick-active button:before {
1617 opacity: .75;
1618 color: #707070;
1619 }
1620
1621 .slick-area-emed .slick-dots li button:before {
1622 color: blue;
1623 }
1624 }
1625
1626 @media only screen and (max-width: 1199px) and (min-width: 768px) {
1627 .slick-area-emed--md-bleed {
1628 width: 100vw;
1629 left: calc(-1 * calc(50vw - (740px / 2) + 37px))!important;
1630 }
1631 .slick-area-emed--md-bleed .slick-list {
1632 padding-left: calc(calc(50vw - (768px / 2) + 37px));
1633 padding-right: calc(calc(50vw - (768px / 2) + 37px));
1634 }
1635 .slick-area-emed--md-bleed .slick-arrow {
1636 display: none !important;
1637 }
1638 }
1639
1640 @media only screen and (min-width: 375px) and (max-width: 1024px) {
1641 .slick-area-emed--md-bleed {
1642 width: 100vw;
1643 left: calc(-1 * (calc(100vw / 2) - calc(310px / 2) - 3px));
1644 }
1645 .slick-area-emed--md-bleed .slick-list {
1646 padding-left: 2px;
1647 }
1648 .slick-area-emed--md-bleed .slick-arrow {
1649 display: none !important;
1650 }
1651 .ssp-emed__section__titleCard {
1652 align-items: start !important;
1653 }
1654
1655 .ssp-emed__section__titleCard div {
1656 font-weight: bold !important;
1657 }
1658
1659 .ssp-emed__section__titleCard i {
1660 font-weight: 300 !important;
1661 font-size: 28px !important;
1662 margin: 3px 0.85rem 0 0;
1663 }
1664
1665 .transferencia-emed-title {
1666 font-size: 12px;
1667 }
1668
1669 .ssp:not(.liferay-instance) .ssp-card-registro-interesse__select {
1670 background-size: 15px 15px !important;
1671 padding: 0 10px;
1672 }
1673 }
1674
1675 @media only screen and (max-width: 550px) {
1676
1677 .ssp-emed__section__introCardCTA{
1678 font-size: 28px;
1679 }
1680
1681 #msg-transferencia-emed{
1682 gap:12px;
1683 }
1684
1685
1686
1687 .ssp-emed__card-slider {
1688 width:335px;
1689 min-height: 440px;
1690 }
1691
1692 .slick-initialized .slick-track {
1693 display: flex;
1694 }
1695
1696 .slick-initialized .slick-slide {
1697 height: inherit!important;
1698 display: flex;
1699 min-height: 440px;
1700 }
1701
1702 .ssp-emed__card-slider-body {
1703 padding: 25px 30px;
1704 }
1705
1706 .ssp-emed__section__titleCard div {
1707 transform: translateY(-5%);
1708 font-size: 24px!important;
1709 }
1710
1711 .slick-area-emed--md-bleed {
1712 width: 100vw;
1713 left: calc(-1 * (calc(100vw / 2) - calc(310px / 2) - 3px));
1714 }
1715 .slick-area-emed--md-bleed .slick-list {
1716 padding-left: 20px;
1717 }
1718 .slick-area-emed--md-bleed .slick-arrow {
1719 display: none !important;
1720 }
1721
1722 .ssp-card-registro-interesse__title-section-itens {
1723 flex-basis: 80px;
1724 }
1725
1726 .emed #periodo-registro-interesse, .emed #turmas-registro-interesse {
1727 width: 95%;
1728 }
1729
1730 .emed .ssp:not(.liferay-instance) .ssp-card-registro-interesse label {
1731 margin: 0!important;
1732 }
1733
1734 .emed .ssp-card-registro-interesse.emed [type="checkbox"] {
1735 margin-left: 0!important;
1736 }
1737
1738 .emed .ssp-card-registro-interesse__check-item {
1739 flex-basis: 100px;
1740 }
1741 }
1742
1743 .emed-select-group {
1744 box-shadow: 0px 0px 12px #00000010;
1745 border: 1px solid #6E6E6E;
1746 border-radius: 4px;
1747 margin: 1rem 0;
1748}
1749
1750.emed-select-group h4 {
1751 margin: 15px 0 10px 0;
1752}
1753.ssp-emed__section__textCard {
1754 margin: 20px 0 0 0;
1755}
1756
1757.ssp-card-msg-sucesso__btn{
1758 font-size: 20px;
1759}
1760
1761.ssp:not(.liferay-instance) .ssp-card-oferta-curso {
1762 height:fit-content;
1763}
1764
1765.ssp-card-duvida__bolsa-estudo{
1766
1767background:#DCE8FF;
1768padding: 30px;
1769max-width: 683px;
1770width: 100%;
1771border-radius: 14px;
1772display:flex;
1773justify-content:center;
1774align-items: center;
1775gap: 20px;
1776margin: 1rem auto;
1777
1778}
1779
1780.ssp-card-duvida__bolsa-estudo p{
1781
1782font-size: 16px!important;
1783font-weight: bold!important;
1784color: #2967F4!important;
1785margin: 0!important;;
1786
1787}
1788
1789.ssp-card-duvida__bolsa-estudo a{
1790
1791border:1px solid #2967F4!important;
1792font-size: 14px!important;
1793font-weight: 600;
1794text-decoration: none!important;
1795color: #2967F4!important;
1796padding:14px 27px;
1797border-radius:6px;
1798transition: .3s;
1799
1800}
1801
1802.ssp:not(.liferay-instance) .ssp-card-duvida__bolsa-estudo a:hover{
1803
1804font-size: 14px!important;
1805font-weight: 600!important;
1806background: #2967F4!important;
1807color:white !important;
1808opacity:1!important;
1809
1810}
1811
1812@media only screen and (max-width: 768px){
1813
1814.ssp-card-duvida__bolsa-estudo{
1815
1816 background:#DCE8FF;
1817 padding: 20px;
1818 flex-flow: column;
1819 width:90%;
1820
1821}
1822
1823.ssp-card-duvida__bolsa-estudo p{
1824
1825 max-width:200px;
1826 text-align: center;
1827
1828}
1829
1830.ssp-card-duvida__bolsa-estudo a{
1831
1832 padding:16px 27px;
1833
1834}
1835
1836}
1837
1838/* Novo Card de Oferta */
1839
1840 /* ajustes no card existente */
1841
1842 .ssp:not(.liferay-instance) .ssp-card-oferta__info-turma{
1843 margin-bottom: 30px;
1844 }
1845
1846 .ssp:not(.liferay-instance) .ssp-card-oferta__info-turma-content {
1847 margin-bottom: 5px;
1848 }
1849
1850 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__item-data-periodo{
1851 margin: 5px 0 10px 0;
1852 }
1853
1854 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__dia-hora-item {
1855 border-radius: 0;
1856 background-color: unset;
1857 padding: 0;
1858 max-width: 100%;
1859 width: 100%;
1860 margin: 0;
1861 }
1862
1863 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__dia-hora_content{
1864 margin:0;
1865 opacity: 0;
1866 transition: 0.3s;
1867 }
1868
1869 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__dia-hora-item__dia {
1870 margin: 0;
1871 font-size: 17px;
1872 font-weight: bold;
1873 font-stretch: normal;
1874 font-style: normal;
1875 line-height: 1.23;
1876 letter-spacing: normal;
1877 text-align: center;
1878 }
1879
1880 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__dia-hora-item__hora {
1881 margin: 0;
1882 font-size: 17px;
1883 font-weight: bold;
1884 font-stretch: normal;
1885 font-style: normal;
1886 line-height: 1.3;
1887 letter-spacing: normal;
1888 text-align: center;
1889 }
1890
1891 .modal-extensao_txteconomiza{
1892 font-size: 14px;
1893 color: #454F63;
1894 font-weight: 400;
1895 }
1896
1897 .btn.btn-lg {
1898 padding:.7rem;
1899
1900 }
1901
1902 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__desconto-content p{
1903 font-size: 17px;
1904 }
1905
1906 .ssp-card-oferta-curso__item-valor-investimento{
1907 font-size: 38px;
1908 }
1909
1910 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__formas-pagamento-content .ssp-card-oferta-curso__formas-pagamento-content__title{
1911 color: #454F63;
1912 font-weight: bold!important;
1913 font-size: 14px;
1914}
1915
1916.ssp:not(.liferay-instance) .ssp-card-oferta-curso__formas-pagamento-content .ssp-card-oferta-curso__formas-pagamento-content__icon-credit-card::after{
1917 color: #454F63!important;
1918 font-size: 14px;
1919}
1920
1921
1922.ssp:not(.liferay-instance) .ssp-card-oferta-curso__formas-pagamento-content span{
1923 color:#454F63;
1924 font-size: 14px;
1925 font-weight: 400;
1926}
1927
1928.ssp:not(.liferay-instance) .ssp-card-oferta-curso__formas-pagamento-content {
1929 padding-bottom: 0;
1930}
1931
1932 /* local realizacao */
1933
1934 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__local-realizacao-content__title {
1935 font-size: 13px;
1936 color: #00488C;
1937 font-weight: 600;
1938 text-decoration: none!important;
1939 border: 1px solid #00488C;
1940 padding: 11px 14px;
1941 transition:.3s;
1942 border-radius: 4px;
1943 display: flex;
1944 gap: 5px;
1945 align-items: center;
1946 }
1947
1948 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__local-realizacao-content__title:hover {
1949 color: white;
1950 font-weight: 600!important;
1951 background: #08488C;
1952 }
1953
1954 .container-local-realizacao {
1955 padding:0;
1956 border:0;
1957 border-radius: unset;
1958 width: 100%;
1959 margin: 10px 0 0 0;
1960 box-shadow: none;
1961 display: flex;
1962 justify-content:center;
1963 align-items: flex-end;
1964 }
1965
1966 .icon-local-realizacao{
1967 color: #00488C;
1968 font-size: 13px;
1969 }
1970
1971
1972 @media only screen and (max-width: 768px){
1973
1974 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__dia-hora-item__dia {
1975 font-size: 16px;
1976 }
1977
1978 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__title-item {
1979 font-size: 14px!important;
1980 }
1981
1982 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__valor-desconto{
1983 font-size: 15px;
1984 }
1985
1986 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__item-valor-investimento {
1987 font-size: 33px;
1988 }
1989
1990 .icon-local-realizacao {
1991 font-size: 12px;
1992 }
1993
1994 .modal-extensao_txteconomiza {
1995 font-size: 12px;
1996 }
1997
1998 .content-valores-descontos {
1999 padding-bottom: 8px!important;
2000 }
2001
2002 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__desconto-content p{
2003 font-size: 14px!important;
2004 }
2005
2006
2007 }
2008
2009
2010
2011
2012/* final ajustes no card existente */
2013
2014
2015/* Novos elementos */
2016
2017.content-data-dias{
2018 padding:20px;
2019 padding-top:0;
2020 border-bottom: none !important;
2021}
2022
2023.content-valores-descontos{
2024 padding:20px 0 0 0;
2025 opacity: 1;
2026 height:auto;
2027 transition: 0.3s;
2028 overflow: hidden;
2029 border-top: 1px #E4E8F0 solid;
2030}
2031
2032.content-valores-descontos.hide-price{
2033
2034 padding:0;
2035 opacity: 0;
2036 height:0;
2037
2038}
2039
2040.content-btn-bolsa{
2041
2042 border-top: 1px #E4E8F0 solid;
2043 padding-top:20px;
2044
2045}
2046
2047.content-btn-bolsa.modifier-content-show{
2048
2049 padding-bottom: 20px;
2050
2051}
2052
2053.content-btn-bolsa.modifier-content-show .ou-separator-desconto{
2054 display:none;
2055}
2056
2057.content-btn-bolsa.modifier-content-show .btn-show-price{
2058 display:none;
2059}
2060
2061.content-buttons{
2062
2063 padding:20px 0 0 0;
2064
2065}
2066
2067.block-valor-desconto{
2068
2069 background-color:#F2F6FF;
2070 padding: 30px 10px 15px 10px;
2071 border-radius:12px;
2072 position: relative;
2073
2074}
2075
2076.block-valor-desconto .ssp-card-oferta-curso__item-valor-investimento span {
2077 font-size: 18px;
2078}
2079
2080.block-valor-total{
2081
2082 background-color:#F2F6FF;
2083 padding:15px 10px;
2084 border-radius:12px;
2085 position: relative;
2086
2087}
2088
2089.block-valor-total .ssp-card-oferta-curso__title-item{
2090 font-size: 16px!important;
2091 color: #454F63!important;
2092 font-weight:500!important;
2093}
2094
2095.block-valor-total .ssp-card-oferta-curso__item-valor-investimento{
2096 font-size:22px;
2097}
2098
2099.block-valor-total .ssp-card-oferta-curso__item-valor-investimento span{
2100 font-size:11px;
2101}
2102
2103.block-valor-total .ssp-card-oferta-curso__desconto-content p{
2104 font-size:14px;
2105 font-weight: 500;
2106}
2107
2108.tag-label-desconto{
2109
2110background-color:#B6FDCF;
2111border-radius: 15px;
2112padding:5px;
2113margin: -50px 20px 10px 20px;
2114
2115}
2116
2117.tag-label-desconto span, .tag-label-desconto small{
2118font-size: 16px!important;
2119font-weight: bold!important;
2120color: #454F63!important;
2121}
2122
2123
2124
2125.ou-separator-desconto{
2126 font-size: 16px;
2127 color: #454F63;
2128 font-weight: bold;
2129 display:flex;
2130 flex-wrap: nowrap;
2131 align-items: center;
2132 justify-content:space-between;
2133 gap: 15px;
2134 padding:20px 0;
2135}
2136
2137.ou-separator-desconto::after{
2138 content: "";
2139 height:2px;
2140 background-color:#E4E8F0;
2141 width: 100%;
2142 display: block;
2143}
2144
2145.ou-separator-desconto::before{
2146 content: "";
2147 height:2px;
2148 background-color:#E4E8F0;
2149 width: 100%;
2150 display: block;
2151}
2152
2153.btn-show-price{
2154
2155 background: unset;
2156 border: 0;
2157 font-size: 14px!important;
2158 color: #454F63!important;
2159
2160}
2161
2162.btn-show-price p{
2163 margin: 0 !important;
2164}
2165
2166.btn-show-price span{
2167 text-decoration: underline;
2168 font-weight: bold;
2169}
2170
2171@media only screen and (max-width: 768px){
2172
2173 .content-data-dias{
2174
2175 padding:20px 0;
2176
2177 }
2178
2179 .ssp-card-oferta-curso__local-realizacao-content__title {
2180
2181 font-size: 14px;
2182 display:flex;
2183 align-items: center;
2184 gap: 5px;
2185 padding: 10px 13px;
2186 }
2187
2188 .ssp-card-oferta-curso__local-realizacao-content__title i{
2189
2190 font-size: 11px;
2191 }
2192
2193 .tag-label-desconto span, .tag-label-desconto small {
2194 font-size: 13px!important;
2195 }
2196
2197 .tag-label-desconto {
2198 padding: 5px;
2199 margin: -50px 12px 10px 12px;
2200 }
2201
2202 .block-valor-desconto .ssp-card-oferta-curso__item-valor-investimento span {
2203 font-size: 18px;
2204 }
2205
2206 .content-buttons {
2207 padding: 10px 0 0 0;
2208 }
2209
2210
2211}
2212
2213/*final Novo card de ofertas*/
2214
2215/* form aprendizagem */
2216
2217[data-modal="modal"]{
2218 background-color: rgba(0,0,0,0.7);
2219 backdrop-filter: blur(10px);
2220 display:none;
2221}
2222
2223[data-modal="close-form-modal"]{
2224
2225 font-size: 22px;
2226 background: unset!important;
2227 color: white!important;
2228 display: flex;
2229 align-items: center;
2230 margin: 0;
2231 padding: 0;
2232 position:absolute;
2233 right:0;
2234 border:0;
2235 gap:5px;
2236 right: 2%;
2237 top: -2%;
2238
2239}
2240
2241[data-modal="close-form-modal"] i{
2242
2243 font-size:43px;
2244 height:fit-content;
2245
2246}
2247
2248.open-modal-form{
2249 position: fixed;
2250 top: 0;
2251 width: 100%;
2252 height: 100%;
2253 z-index: 100;
2254 display: flex;
2255 justify-content: center;
2256 align-items: center;
2257 overflow:auto;
2258
2259}
2260
2261.open-modal-form .ssp_ct_form_programe{
2262 animation-name: animatetop;
2263 animation-duration: .4s;
2264 position:relative;
2265}
2266
2267label .reference-mark {
2268color:#78849e;
2269}
2270.lexicon-icon-asterisk {
2271 color:#78849e;
2272}
2273.lexicon-icon-reload {
2274 margin-left:10px;
2275}
2276.ssp_title_form_programe{
2277 font-size: 42px!important;
2278 color: #ffffff!important;
2279 font-family: "Montserrat",sans-serif;
2280 font-weight:600;
2281 text-align:left;
2282}
2283.ssp_subtitle_form_programe {
2284 margin-top:0px!important;
2285
2286}
2287.ssp_subtitle_form_programe{
2288 font-size: 20px!important;
2289 color: #ffffff!important;
2290 font-family: "Montserrat",sans-serif;
2291 font-weight:600;
2292 text-align:left;
2293}
2294.lfr-ddm-form-page {
2295background-color: #fff;
2296border-radius: 12px 12px 0px 0px;
2297padding: 35px 15px!important;
2298}
2299.ssp:not(.liferay-instance) .form-group label {
2300 color: #78849E;
2301 font: normal normal 600 16px/19px Montserrat;
2302 padding-bottom: 10px;
2303}
2304.lfr-ddm-form-page-description {
2305display: none!important;
2306}
2307.lfr-ddm-form-page-title {
2308display: none!important;
2309}
2310.lfr-ddm-form-submit {
2311background-color: #0380F0;
2312 text-align: center;
2313 float: none!important;
2314 border: 1px solid #0380F0;
2315 border-radius: 6px;
2316 font-size: 16px;
2317 width: 245px;
2318 height: 50px;
2319}
2320.lfr-ddm-form-pagination-controls {
2321background-color: #fff;
2322 text-align: center;
2323 border-radius: 0px 0px 12px 12px;
2324 padding-bottom: 25px;
2325}
2326.ddm-form-name {
2327display: none!important;
2328}
2329.ddm-form-description {
2330display: none!important;
2331}
2332.ddm-form-builder-app {
2333margin-top:35px;
2334}
2335.taglib-captcha {
2336 display: flex;
2337}
2338.input-text-wrapper {
2339 left: 20px;
2340}
2341.lfr-ddm-form-pagination-controls {
2342 padding-top:0px!important;
2343 display:flex;
2344 justify-content:center;
2345 align-items: center;
2346 flex-flow:column;
2347}
2348@media only screen and (max-width: 1024px) {
2349
2350.open-modal-form{
2351
2352 align-items: flex-start;
2353
2354}
2355
2356.ddm-form-builder-app {
2357 margin-top: 15px;
2358}
2359
2360.ssp_title_form_programe{
2361font-size: 34px!important;
2362line-height: 1.2!important;
2363}
2364.ssp_subtitle_form_programe{
2365font-size:18px!important;
2366}
2367.taglib-captcha {
2368 display:block;
2369}
2370.input-text-wrapper {
2371 left:0;
2372}
2373.ssp_ct_form_programe {
2374 padding:0px;
2375 max-width:100%;
2376 padding:40px 20px;
2377}
2378
2379[data-modal="close-form-modal"]{
2380
2381 right: 20px;
2382 top: 0;
2383
2384}
2385
2386}
2387
2388.ssp:not(.liferay-instance) a.btn.btn-success.disabled{
2389 pointer-events: none;
2390 opacity: 0.5 !important;
2391 color: #FFF !important;
2392 background-color: #4CBF69 !important;
2393 cursor: not-allowed;
2394 border: none !important;
2395 font-size: 0.9rem !important;
2396}
2397
2398.slick-list.draggable {
2399 height: auto !important;
2400}
2401
2402.ssp:not(.liferay-instance) .ssp-image-opacity {
2403
2404 opacity: 1;
2405 object-fit: cover;
2406 object-position: center;
2407
2408}
2409
2410.ssp-option-group {
2411 text-align: left;
2412 font: normal normal 600 15px/19px Montserrat;
2413 letter-spacing: 0px;
2414 color: #004A8C;
2415}
2416.ssp-option {
2417 text-align: left;
2418 font: normal normal normal 15px/19px Montserrat;
2419 letter-spacing: 0px;
2420 color: #656565;
2421}
2422@media only screen and (max-width: 768px){
2423 .ssp-option-group {
2424 font: normal normal 600 15px/19px Montserrat;
2425 }
2426 .ssp-option {
2427 font: normal normal normal 15px/19px Montserrat;
2428 }
2429}
2430
2431</style>
2432
2433 <#assign
2434
2435 prefix = "ssp"
2436 nomeVocabularioTipoCurso = 'tipo-de-curso'
2437
2438
2439 nomeVocabularioUnidades = 'unidades'
2440
2441 nomeVocabularioFormato = 'formato'
2442
2443 nomeFormato = ""
2444 nomeVocabularioModalidade = 'modalidade'
2445
2446 nomeModalidade = ""
2447
2448 normalizer = serviceLocator.findService("com.liferay.portal.kernel.util.FriendlyURLNormalizerUtil")
2449
2450 journalArticle = getJournalArticle()
2451 />
2452
2453 <#if journalArticle?contains("#erro#")>
2454 erro
2455 <#else>
2456
2457 <#assign
2458
2459 categories = getCategorias(journalArticle.getResourcePrimKey())
2460
2461 document = saxReaderUtil.read(journalArticle.getContent()).getRootElement()
2462
2463 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='dataEfetivaFT']")
2464 dataEfetiva = xPathSelector.selectSingleNode(document)
2465
2466 dataEfetivaSTR = dataEfetiva.elementText("dynamic-content")?string
2467
2468 articleId = journalArticle.getArticleId()
2469
2470 codigoFT = getStringValue(document,'codigoFT')
2471
2472 tituloComercial = journalArticle.getTitle()
2473
2474 objetivo = getStringValue(dataEfetiva, 'objetivoComercial')
2475
2476 cargaHoraria = getStringValue(dataEfetiva, 'cargaHorariaTotalFT')
2477
2478 oQueVouAprenderComercial = getStringValue(dataEfetiva, 'oQueVouAprenderComercial')
2479
2480 comoVouAprenderComercial = getStringValue(dataEfetiva, 'comoVouAprenderComercial')
2481
2482 possoFazerEsteCursoComercial = getStringValue(dataEfetiva, 'possoFazerEsteCursoComercial')
2483
2484 tereiCertificadoComercial = getStringValue(dataEfetiva, 'tereiCertificadoComercial')
2485
2486 tereiDiplomaComercial = getStringValue(dataEfetiva, 'tereiDiplomaComercial')
2487
2488 precisoEstagiarComercial = getStringValue(dataEfetiva, 'precisoEstagiarComercial')
2489
2490 comoMeMatricularComercial = getStringValue(dataEfetiva, 'comoMeMatricularComercial')
2491
2492 oQueMaisPrecisoSaberComercial = getStringValue(dataEfetiva, 'oQueMaisPrecisoSaberComercial')
2493
2494 normalizedModalidadeName = ""
2495
2496 />
2497 <div style="display: none;">ElasticSearchNaoRetornarFiltro </div>
2498 <input type="hidden" name="codigoFT" value="${codigoFT}" />
2499 <input type="hidden" name="articleId" value="${articleId}" />
2500
2501 <input type="hidden" name="dataEfetivaSTR" value="${dataEfetivaSTR}" />
2502
2503 <input type="hidden" name="codUnidadeSelecionada" value="" />
2504
2505 <#list categories as category>
2506
2507 <#assign
2508 vocabulary = getVocabulary(category.getVocabularyId())
2509 />
2510
2511 <#if normalizer.normalize(vocabulary.getName()) == nomeVocabularioTipoCurso>
2512
2513 <#assign
2514 categoriaTipoCurso = category
2515 normalizedCategoryName = normalizer.normalize(category.getName())
2516 />
2517
2518 <input type="hidden" name="tipoCurso" value="${normalizedCategoryName}" />
2519
2520 <#elseif normalizer.normalize(vocabulary.getName()) == nomeVocabularioUnidades>
2521
2522 <input type="hidden" name="unidades" value="${category.getCategoryId()}" data-unidade="${category.getName()}" />
2523
2524 <#elseif normalizer.normalize(vocabulary.getName()) == nomeVocabularioModalidade>
2525
2526 <#assign
2527 categoriaModalidade = category
2528 normalizedModalidadeName = normalizer.normalize(category.getName())
2529
2530 />
2531
2532 <input type="hidden" name="modalidades" value="${normalizedModalidadeName}" />
2533
2534 <#elseif normalizer.normalize(vocabulary.getName()) == nomeVocabularioFormato>
2535
2536 <#if normalizer.normalize(category.getName())?contains("ao-vivo") >
2537
2538 <#assign
2539 nomeFormato = "ao-vivo"
2540 />
2541
2542 <#elseif normalizer.normalize(category.getName())?contains("online") >
2543
2544 <#assign
2545 nomeFormato = "online"
2546 />
2547
2548 <#else>
2549
2550 <#assign
2551 nomeFormato = "presencial"
2552 />
2553
2554 </#if>
2555
2556 <input type="hidden" name="formato" value="${category.getCategoryId()}" data-formato="${category.getName()}" />
2557 </#if>
2558 </#list>
2559
2560 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='imagemComercial']")>
2561
2562 <#if xPathSelector.selectSingleNode(dataEfetiva)?? >
2563
2564 <#assign imagemStr = xPathSelector.selectSingleNode(dataEfetiva).getStringValue()>
2565 <#if imagemStr?contains("{") >
2566 <#assign
2567 imagemJson = jsonFactoryUtil.createJSONObject(imagemStr)
2568 imagemId = getterUtil.getInteger(imagemJson.get('fileEntryId'))
2569 dl = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppService")
2570 dlUtil = staticUtil["com.liferay.document.library.kernel.util.DLUtil"]
2571 fileEntry = dl.getFileEntry(imagemId)
2572
2573 imagemUrl = dlUtil.getDownloadURL(fileEntry, fileEntry.getFileVersion(), themeDisplay,null)
2574 />
2575 <#else>
2576 <#assign imagemUrl = "">
2577 </#if>
2578
2579 <#else>
2580 <#assign imagemUrl = "">
2581 </#if>
2582
2583
2584 <#assign
2585
2586 HttpUtil = staticUtil["com.liferay.portal.kernel.util.HttpUtil"]
2587 HtmlUtil = staticUtil["com.liferay.portal.kernel.util.HtmlUtil"]
2588 StringPool = staticUtil["com.liferay.portal.kernel.util.StringPool"]
2589 dlFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")
2590
2591 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='quaisMateriaisComercial']")
2592 quaisMateriaisComercialPDFStr = xPathSelector.selectSingleNode(dataEfetiva).getStringValue()
2593 />
2594
2595 <#if quaisMateriaisComercialPDFStr?contains("{") >
2596
2597 <#assign
2598
2599 PDFJson = jsonFactoryUtil.createJSONObject(quaisMateriaisComercialPDFStr)
2600 classPKNumber = PDFJson.classPK?number
2601 fileEntry = dlFileEntryLocalService.getDLFileEntry(classPKNumber)
2602 folderId = fileEntry.getFolderId()
2603 title = fileEntry.getTitle()
2604
2605 quaisMateriaisComercialPDFUrl = themeDisplay.getPortalURL() + themeDisplay.getPathContext() + "/documents/" + themeDisplay.getScopeGroupId() + StringPool.SLASH + folderId + StringPool.SLASH + HttpUtil.encodeURL(HtmlUtil.unescape(title))
2606 />
2607
2608 <#else>
2609 <#assign quaisMateriaisComercialPDFUrl = "">
2610 </#if>
2611
2612 <#assign
2613 nomeTipoCurso = categoriaTipoCurso.getName()
2614 nomeCategoriaTipoCurso = categoriaTipoCurso.getName()
2615 />
2616 <input type="hidden" name="nomeCategoriaTipoCurso" value="${nomeCategoriaTipoCurso}" />
2617 <#assign appendExtensao = ""/>
2618
2619
2620 <#if nomeTipoCurso?contains("Ensino Médio Técnico")>
2621
2622 <#assign
2623 nomeTipoCurso = categoriaTipoCurso.getName()
2624 />
2625
2626 <#assign idTipoCurso = categoriaTipoCurso.getCategoryId() />
2627
2628 <input type="hidden" name="idTipoCurso" value="${idTipoCurso}" />
2629
2630 <#elseif (nomeTipoCurso?contains("cnico") && !nomeTipoCurso?contains("EAD") ) || nomeTipoCurso?contains("Livre") >
2631
2632 <#assign
2633 nomeTipoCurso = "Cursos "+ categoriaTipoCurso.getName() + "s"
2634 />
2635
2636 <#else>
2637 <#assign
2638 nomeTipoCurso = categoriaTipoCurso.getName()
2639 />
2640 <#assign nomeTipoCurso = categoriaTipoCurso.getName()/>
2641 <#if nomeTipoCurso == "Extensão" >
2642 <#assign appendExtensao = " Universitária"/>
2643 </#if>
2644 </#if>
2645
2646 <#-- dados de compartilhamento -->
2647 <@liferay_util["html-top"]>
2648 <meta name="image" property="og:image" content="${imagemUrl}">
2649 <meta property="og:image:width" content="1024">
2650 </@>
2651 <#-- dados de compartilhamento -->
2652
2653 <div class="${prefix}-header-curso__image">
2654 <img class="ssp-image-opacity" src="${imagemUrl}" loading="lazy">
2655 <div class="${prefix}-header-curso__tag-formato bg-nivel-${normalizedCategoryName}">
2656 <span>${nomeTipoCurso+appendExtensao}</span>
2657 </div>
2658 </div>
2659
2660 <section id="curso-info">
2661 <div class="ssp-card-detalhe-curso__container">
2662
2663 <div class="ssp-card-detalhe-curso">
2664
2665 <div class="ssp-card-detalhe-curso__tag-color-tipo bg-nivel-${normalizedCategoryName}"></div>
2666
2667 <div class="container">
2668
2669 <#if nomeFormato?contains("ao-vivo") >
2670 <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>
2671
2672 </#if>
2673
2674 <div class="ssp-card-detalhe-curso__content">
2675 <div>
2676
2677 <!-- <#if nomeTipoCurso?contains("Ensino Médio Técnico")>
2678
2679 <p class="ssp-txt-emed__inscricoes-aberta">Inscrições abertas</p>
2680
2681 </#if> -->
2682
2683 <!-- rever a lógica da chama de inscricoes abertas -->
2684
2685 <h1 class="ssp-card-detalhe-curso__title">${tituloComercial}</h1>
2686 <input type="hidden" name="tituloComercial" value="${tituloComercial}" />
2687
2688 <div class="ssp-card-detalhe-curso__description">${objetivo}</div>
2689 </div>
2690 <div class="ssp-card-detalhe-curso__secunday-info-content">
2691
2692 <#if nomeFormato?contains("ao-vivo") >
2693
2694 <a class="ssp-card-detalhe-curso__secunday-info-back-link d-lg-none d-md-none" href="#" style="color: #ff9057;">${categoriaTipoCurso.getName()}</a>
2695
2696 <#else>
2697 <a class="ssp-card-detalhe-curso__secunday-info-back-link d-lg-none d-md-none" href="#">${categoriaTipoCurso.getName()}</a>
2698
2699 </#if>
2700
2701 <p class="ssp-card-detalhe-curso__secundary-info-carga-horaria">${cargaHoraria} horas</p>
2702 </div>
2703 </div>
2704 <div class="ssp-saiba-mais-curso-accordion">
2705
2706 <#if (possoFazerEsteCursoComercial?length > 0)>
2707 <div class="ssp-saiba-mais-curso-accordion__body">
2708 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Posso fazer este curso?</div>
2709 <div class="ssp-saiba-mais-curso-accordion__contents">${possoFazerEsteCursoComercial}</div>
2710 </div>
2711 </#if>
2712
2713 <#if (oQueVouAprenderComercial?length > 0) >
2714 <div class="ssp-saiba-mais-curso-accordion__body">
2715 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">O que vou aprender?</div>
2716 <div class="ssp-saiba-mais-curso-accordion__contents" id="plano-curso">${oQueVouAprenderComercial}</div>
2717 </div>
2718 </#if>
2719
2720 <#if (comoVouAprenderComercial?length > 0)>
2721 <div class="ssp-saiba-mais-curso-accordion__body">
2722 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Como vou aprender?</div>
2723 <div class="ssp-saiba-mais-curso-accordion__contents">${comoVouAprenderComercial}</div>
2724 </div>
2725 </#if>
2726
2727
2728 <div class="ssp-saiba-mais-curso-accordion__body">
2729 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Quais materiais vou precisar?</div>
2730 <#if nomeTipoCurso?contains("Ensino Médio Técnico") >
2731 <div class="ssp-saiba-mais-curso-accordion__contents">
2732 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.
2733 </div>
2734 <#else>
2735 <#if (quaisMateriaisComercialPDFUrl?length > 0)>
2736 <div class="ssp-saiba-mais-curso-accordion__contents">
2737 <a href="${quaisMateriaisComercialPDFUrl}" target="_blank"><i class="fa fa-download" aria-hidden="true"></i> Confira os materiais que você precisará.</a>
2738 </div>
2739 <#else>
2740 <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>
2741 </#if>
2742 </#if>
2743 </div>
2744
2745 <#if (tereiDiplomaComercial?length > 0)>
2746 <div class="ssp-saiba-mais-curso-accordion__body">
2747 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Terei diploma?</div>
2748 <div class="ssp-saiba-mais-curso-accordion__contents">${tereiDiplomaComercial}</div>
2749 </div>
2750 </#if>
2751
2752 <#if (tereiCertificadoComercial?length > 0)>
2753 <div class="ssp-saiba-mais-curso-accordion__body">
2754 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Terei certificado?</div>
2755 <div class="ssp-saiba-mais-curso-accordion__contents">${tereiCertificadoComercial}</div>
2756 </div>
2757 </#if>
2758
2759 <#if (comoMeMatricularComercial?length > 0)>
2760 <div class="ssp-saiba-mais-curso-accordion__body">
2761 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Como me matricular?</div>
2762 <div class="ssp-saiba-mais-curso-accordion__contents">${comoMeMatricularComercial}</div>
2763 </div>
2764 </#if>
2765
2766 <#if (precisoEstagiarComercial?length > 0)>
2767 <div class="ssp-saiba-mais-curso-accordion__body">
2768 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Preciso estagiar?</div>
2769 <div class="ssp-saiba-mais-curso-accordion__contents">${precisoEstagiarComercial}</div>
2770 </div>
2771 </#if>
2772
2773
2774 <#if (oQueMaisPrecisoSaberComercial?length > 0)>
2775 <div class="ssp-saiba-mais-curso-accordion__body">
2776 <#if nomeTipoCurso?contains("Ensino Médio Técnico") >
2777 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Estudo em outra escola, como funciona a transferência?</div>
2778 <#else>
2779 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">O que mais preciso saber?</div>
2780 </#if>
2781 <div class="ssp-saiba-mais-curso-accordion__contents">${oQueMaisPrecisoSaberComercial}</div>
2782 </div>
2783 </#if>
2784
2785 <!-- Info para EMED -->
2786
2787 <#if nomeTipoCurso?contains("Ensino Médio Técnico") >
2788
2789 <div class="ssp-emed__vantagens-content">
2790
2791 <p>Conheça <span>mais vantagens</span> do Ensino Médio Técnico no Senac.</p>
2792 <a href="/ensino-medio-tecnico" class="btn">Saiba mais</a>
2793
2794 </div>
2795
2796 </#if>
2797
2798
2799
2800 <!-- Slider para cursos de Cozinheiro e Garçom -->
2801
2802 <#if codigoFT=="14125">
2803
2804 <div>
2805
2806 <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>
2807
2808
2809 <div class="slider-passo-passo__cursos-cozinha">
2810
2811 <div class="ssp-passo-passo-cozinheiro_card">
2812
2813 <div>
2814
2815 <h6 class="ssp-passo-passo-cozinheiro_card-title">Abertura do processo</h6>
2816
2817 <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>
2818
2819 </div>
2820
2821
2822 </div>
2823
2824 <div class="ssp-passo-passo-cozinheiro_card">
2825
2826 <div>
2827
2828 <h6 class="ssp-passo-passo-cozinheiro_card-title">Inscrições</h6>
2829
2830 <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 5 inscrições por vaga.</p>
2831
2832 </div>
2833
2834 </div>
2835
2836 <div class="ssp-passo-passo-cozinheiro_card">
2837
2838 <div>
2839
2840 <h6 class="ssp-passo-passo-cozinheiro_card-title">Convocação para entrevista</h6>
2841
2842 <p class="ssp-passo-passo-cozinheiro_card-txt">
2843 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.
2844 </p>
2845
2846
2847 </div>
2848
2849 </div>
2850
2851 <div class="ssp-passo-passo-cozinheiro_card">
2852
2853 <div>
2854
2855 <h6 class="ssp-passo-passo-cozinheiro_card-title">Entrevista</h6>
2856
2857 <p class="ssp-passo-passo-cozinheiro_card-txt">A entrevista pode ser realizada nos hotéis-escola Senac ou de forma on-line. Se você não participar, sua inscrição é automaticamente cancelada. Lembre-se: antes da entrevista, envie por e-mail os documentos necessários.
2858 </p>
2859
2860
2861 </div>
2862
2863 </div>
2864
2865 <div class="ssp-passo-passo-cozinheiro_card">
2866
2867 <div>
2868
2869 <h6 class="ssp-passo-passo-cozinheiro_card-title">Resultado</h6>
2870
2871 <p class="ssp-passo-passo-cozinheiro_card-txt">Até 7 dias depois de ter feito a
2872
2873 entrevista, você receberá a resposta
2874
2875 (por e-mail ou telefone) sobre o
2876
2877 resultado do processo seletivo.
2878 </p>
2879
2880 </div>
2881
2882 </div>
2883
2884 <div class="ssp-passo-passo-cozinheiro_card">
2885
2886 <div>
2887
2888 <h6 class="ssp-passo-passo-cozinheiro_card-title">Matrícula</h6>
2889
2890 <p class="ssp-passo-passo-cozinheiro_card-txt">Se receber a aprovação, a próxima etapa
2891
2892 é fazer a matrícula. Caso tenha escolhido
2893
2894 fazer o curso de Garçom, lembre-se de
2895
2896 levar o resultado dos exames solicitados
2897
2898 no e-mail.
2899 </p>
2900
2901 </div>
2902
2903 </div>
2904
2905 <div class="ssp-passo-passo-cozinheiro_card">
2906
2907 <div>
2908
2909 <h6 class="ssp-passo-passo-cozinheiro_card-title">Início do curso!</h6>
2910
2911 <p class="ssp-passo-passo-cozinheiro_card-txt">
2912 Teve aprovação em todas as etapas? Parabéns!
2913
2914 Sua jornada de transformação profissional
2915
2916 começará com o início das aulas. Mas se não
2917
2918 conseguiu dessa vez, não desanime. Sempre estamos com
2919
2920 vagas abertas para diversos cursos.
2921 </p>
2922
2923 </div>
2924
2925 </div>
2926
2927
2928 </div>
2929
2930 </div>
2931
2932 <#elseif codigoFT=="15390" >
2933
2934 <div>
2935
2936 <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>
2937
2938 <div class="slider-passo-passo__cursos-cozinha">
2939
2940 <div class="ssp-passo-passo-cozinheiro_card">
2941
2942 <div>
2943
2944 <h6 class="ssp-passo-passo-cozinheiro_card-title">Abertura do processo</h6>
2945
2946 <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>
2947
2948 </div>
2949
2950
2951 </div>
2952
2953 <div class="ssp-passo-passo-cozinheiro_card">
2954
2955 <div>
2956
2957 <h6 class="ssp-passo-passo-cozinheiro_card-title">Inscrições</h6>
2958
2959 <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 5 inscrições por vaga.</p>
2960
2961 </div>
2962
2963 </div>
2964
2965 <div class="ssp-passo-passo-cozinheiro_card">
2966
2967 <div>
2968
2969 <h6 class="ssp-passo-passo-cozinheiro_card-title">Convocação para entrevista</h6>
2970
2971 <p class="ssp-passo-passo-cozinheiro_card-txt">
2972 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.
2973 </p>
2974
2975
2976 </div>
2977
2978 </div>
2979
2980 <div class="ssp-passo-passo-cozinheiro_card">
2981
2982 <div>
2983
2984 <h6 class="ssp-passo-passo-cozinheiro_card-title">Entrevista</h6>
2985
2986 <p class="ssp-passo-passo-cozinheiro_card-txt">A entrevista pode ser realizada nos hotéis-escola Senac ou de forma on-line. Se você não participar, sua inscrição é automaticamente cancelada. Lembre-se: antes da entrevista, envie por e-mail os documentos necessários.
2987 </p>
2988
2989
2990 </div>
2991
2992 </div>
2993
2994 <div class="ssp-passo-passo-cozinheiro_card">
2995
2996 <div>
2997
2998 <h6 class="ssp-passo-passo-cozinheiro_card-title">Resultado</h6>
2999
3000 <p class="ssp-passo-passo-cozinheiro_card-txt">Até 7 dias depois de ter feito a
3001
3002 entrevista, você receberá a resposta
3003
3004 (por e-mail ou telefone) sobre o
3005
3006 resultado do processo seletivo.
3007 </p>
3008
3009 </div>
3010
3011 </div>
3012
3013 <div class="ssp-passo-passo-cozinheiro_card">
3014
3015 <div>
3016
3017 <h6 class="ssp-passo-passo-cozinheiro_card-title">Matrícula</h6>
3018
3019 <p class="ssp-passo-passo-cozinheiro_card-txt">Se receber a aprovação, a próxima etapa
3020
3021 é fazer a matrícula. Caso tenha escolhido
3022
3023 fazer o curso de Garçom, lembre-se de
3024
3025 levar o resultado dos exames solicitados
3026
3027 no e-mail.
3028 </p>
3029
3030 </div>
3031
3032 </div>
3033
3034 <div class="ssp-passo-passo-cozinheiro_card">
3035
3036 <div>
3037
3038 <h6 class="ssp-passo-passo-cozinheiro_card-title">Início do curso!</h6>
3039
3040 <p class="ssp-passo-passo-cozinheiro_card-txt">
3041 Teve aprovação em todas as etapas? Parabéns!
3042
3043 Sua jornada de transformação profissional
3044
3045 começará com o início das aulas. Mas se não
3046
3047 conseguiu dessa vez, não desanime. Sempre estamos com
3048
3049 vagas abertas para diversos cursos.
3050 </p>
3051
3052 </div>
3053
3054 </div>
3055
3056
3057 </div>
3058
3059 </div>
3060
3061 </#if>
3062
3063 <!-- Final Slider para cursos de Cozinheiro e Garçom -->
3064
3065 </div>
3066 </div>
3067 </div>
3068 </div>
3069 </section>
3070 <#assign
3071 dNoneSelectUnidade = ''
3072 mostrarUnidades = !nomeFormato?contains("ao-vivo")
3073 isEMED = normalizedCategoryName?contains("ensino-medio-tecnico")
3074 isAprendizagem = normalizedCategoryName?contains("jovem-aprendiz")
3075 />
3076 <#if nomeFormato?contains("ao-vivo") >
3077 <#assign dNoneSelectUnidade = 'd-none' />
3078 </#if>
3079
3080 <#if isEMED || isAprendizagem>
3081 <section class="ssp-section-selecione-unidade ssp-section ${dNoneSelectUnidade}" style="background:#2B2E41">
3082 <div class="container">
3083
3084 <div class="ssp-container-selecione-unidade" style="max-width: 815px; margin: auto;">
3085 <div class="ssp-container_ofertas__title">
3086 <h3 class="ssp-aviso-novas-turmas__title selecione-unidade-title-custom">
3087
3088 Selecione uma unidade para conhecer as próximas turmas:
3089
3090 </h3>
3091 </div>
3092
3093 <div class="ssp-container__form-select">
3094 <select id="unidades-ofertas" class="form-control" name="unidades-ofertas">
3095 <option value="">Selecione uma unidade</option>
3096 </select>
3097 </div>
3098
3099 </div>
3100
3101 <div class="ssp-ofertas__box-endereco-unidade">
3102 <i class="icon-map-adress"></i>
3103 <a href="" target="_blank" class="ssp-ofertas__endereco-unidade"></a>
3104 </div>
3105
3106 </div>
3107
3108 </section>
3109 <#else>
3110 <section class="ssp-section-selecione-unidade ssp-section" style="background:#2B2E41">
3111 <div class="container">
3112 <div class="ssp-container-selecione-unidade ${dNoneSelectUnidade} row no-gutters mb-lg-8">
3113 <div class="ssp-container_ofertas__title">
3114 <h3 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:</h3>
3115 </div>
3116 </div>
3117 <div class="row ssp-filters-px justify-content-center">
3118 <div class="col-12 col-lg ${dNoneSelectUnidade} px-md-0 order-1">
3119 <div class="ssp-container-selecione-unidade row no-gutters">
3120 <div class="col-12">
3121 <div class="ssp-container__form-select mx-auto">
3122 <label for="unidades-ofertas" class="ssp-switch-label ssp-switch-label-section mx-0 d-none d-lg-block">Selecione uma unidade:</label>
3123 <select id="unidades-ofertas" class="form-control" name="unidades-ofertas"></select>
3124 </div>
3125 </div>
3126 </div>
3127 </div>
3128
3129 <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;">
3130 <div class="row no-gutters ssp-switch-label ssp-switch-label-section mx-0">Filtre por:</div>
3131 <div class="row no-gutters mt-4">
3132 <#assign
3133 mostrarFiltroInscricao = (nomeTipoCurso?contains("Técnico") && !nomeTipoCurso?contains("Ensino Médio")) || nomeTipoCurso?contains("Livre") || nomeTipoCurso?contains("Extensão")
3134 mostrarFiltroBolsa = (nomeTipoCurso?contains("Técnico") && !nomeTipoCurso?contains("Ensino Médio")) || nomeTipoCurso?contains("Livre")
3135 />
3136
3137
3138 <#if mostrarFiltroInscricao && mostrarFiltroBolsa>
3139 <div class="ssp-switch-divider d-md-none my-4"></div>
3140 </#if>
3141
3142 <#if mostrarFiltroInscricao>
3143 <div class="col-12 col-lg">
3144 <div class="d-flex justify-content-between justify-content-lg-start">
3145 <label class="ssp-switch order-2 order-lg-1">
3146 <input type="checkbox" id="chkInscricao">
3147 <span class="ssp-switch-slider round"></span>
3148 </label>
3149 <label for="chkInscricao" class="ssp-switch-label order-1 order-lg-2">Comprar agora</label>
3150 </div>
3151 </div>
3152 </#if>
3153
3154 <#if mostrarFiltroBolsa>
3155
3156 <div class="col-12 col-lg">
3157 <div class="d-flex justify-content-between justify-content-lg-start">
3158 <label class="ssp-switch order-2 order-lg-1">
3159 <input type="checkbox" id="chkBolsa">
3160 <span class="ssp-switch-slider ssp-switch-slider-secondary round"></span>
3161 </label>
3162 <label for="chkBolsa" class="ssp-switch-label order-1 order-lg-2">Bolsas de estudo</label>
3163 </div>
3164 </div>
3165
3166 </#if>
3167 </div>
3168 </div>
3169
3170 <div class="col-12 order-2 order-lg-3">
3171 <div class="row ${mostrarUnidades?then('text-center text-lg-left', 'text-center')}">
3172 <div id="msgFiltroAplicado" class="col-12 ssp-switch-label-message" style="display: none;">
3173 <div class="row no-gutters">
3174 <span class="col-12 ssp-col-lg-without ${mostrarUnidades?then('', 'ml-auto')}">Filtro aplicado com sucesso. </span>
3175 <span class="col-12 ssp-col-lg-without ${mostrarUnidades?then('', 'mr-auto')}">Confira o resultado.</span>
3176 </div>
3177 </div>
3178 </div>
3179 </div>
3180 </div>
3181
3182 <div class="ssp-ofertas__box-endereco-unidade ${dNoneSelectUnidade}">
3183 <i class="icon-map-adress"></i>
3184 <a href="" target="_blank" class="ssp-ofertas__endereco-unidade"></a>
3185 </div>
3186
3187 </div>
3188
3189 </section>
3190 </#if>
3191
3192
3193 <!-- EMED -->
3194 <section class="ssp-ofertas-emed__section d-none">
3195
3196 <h2 class="title-section-white" id="titulo-emed"></h2>
3197
3198 <div class="ssp-ofertas-emed__filtro-content container">
3199
3200 <button type="button" value="0010" class="btn btn-filtro btn--filtro-ativo">TURMAS - 1º ANO</button>
3201
3202 <button type="button" value="0020" class="btn btn-filtro">TURMAS - 2º ANO</button>
3203
3204 <button type="button" value="0030" class="btn btn-filtro">TURMAS - 3º ANO</button>
3205
3206 </div>
3207
3208 <div class="ssp-ofertas-emed__card-container">
3209
3210 <div class="ssp-slick-ofertas-emed">
3211
3212 </div>
3213
3214 </div>
3215
3216 </section>
3217
3218 <!-- FIM EMED -->
3219
3220 <section id="ssp-section-response" class="ssp-section" style="background: #2a2e43; position: relative;">
3221
3222 <div id="turmas-container" class="container">
3223
3224 <div id="informe-novas-turmas">
3225 <div style="display: flex; flex-wrap: nowrap;">
3226
3227 <a class="prev-mobile d-lg-none d-xl-none nextPrevOpacity" href="#" >
3228 <i class="fas fa-chevron-left"></i>
3229 </a>
3230
3231 <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>
3232
3233 <a href="#" class="next-mobile d-lg-none d-xl-none" >
3234 <i class="fas fa-chevron-right"></i>
3235 </a>
3236
3237 </div>
3238
3239
3240 <div class="oferta-slick-area oferta-slick-area--md-bleed slider-container">
3241
3242 </div>
3243 </div>
3244
3245 <#if !isEMED>
3246 <div class="ssp-card-oferta-curso__sem-vaga d-none" style="margin: auto;">
3247
3248 <h3 class="ssp-card-oferta-curso__sem-vaga-title">
3249 Poxa... Estamos sem turmas agendadas no momento.
3250 </h3>
3251
3252 <p class="ssp-card-oferta-curso__sem-vaga-description">
3253 Mas, registre seu interesse aqui embaixo e avisamos você quando surgirem novas turmas.
3254 </p>
3255 </div>
3256 <#else>
3257 <div class="sem-vaga-emed container p-0 d-none">
3258 <div>
3259 <div class="col-md-12 col-xs-12 pt-10 pb-10">
3260
3261 <!--slick slider-->
3262 <div class="slick-area-emed slick-area-emed--md-bleed">
3263
3264 <div class="slick-area__item">
3265
3266 <div class="ssp-emed__card-slider">
3267
3268 <div class="ssp-emed__card-slider-body">
3269 <h2 class="ssp-emed__section__titleCard">
3270 <i class="fal fa-users-class"></i>
3271 <div><lfr-editable id="emed-aulas-title" type="rich-text">Turmas</lfr-editable></div>
3272 </h2>
3273 <lfr-editable id="txt_emed_aulas" type="rich-text">
3274 <div class="ssp-emed__section__introCard"><strong>Poxa... Estamos sem turmas disponíveis no momento.</strong></div>
3275 <div class="ssp-emed__section__textCard">
3276 <span class="texto">
3277 Mas, registre seu interesse aqui ao lado e avisamos você sobre a abertura das inscrições para o próximo ano.
3278 </span>
3279 <span class="ssp-emed__iconWrapper animate__animated animate__fadeOutRight animate__infinite"><i
3280 class="fas fa-chevron-right"></i></span>
3281 </div>
3282 </lfr-editable>
3283 </a>
3284 </div>
3285
3286 </div>
3287
3288 </div>
3289
3290 <div class="slick-area__item">
3291
3292 <div class="ssp-emed__card-slider">
3293 <div class="ssp-emed__card-slider-body">
3294
3295 <h2 class="ssp-emed__section__titleCard">
3296 <i class="far fa-envelope"></i>
3297 <div><lfr-editable id="emed-precos-title" type="rich-text">Registro de Interesse</lfr-editable></div>
3298 </h2>
3299 <lfr-editable id="txt_emed_boleto" type="rich-text">
3300 <div class="ssp-emed__section__introCardCTA">
3301 Quer receber um aviso sobre as turmas do próximo ano?
3302 </div>
3303 </lfr-editable>
3304 </a>
3305 <a class="ssp-emed__btn btn btn-lg w-100 mt-3 ssp-card-modal-selecionar-outro__btn-close_10"
3306 id="btnOptin" href="javascript:;">Sim, me avise.</a>
3307 </div>
3308 </div>
3309 </div>
3310
3311 </div>
3312 <!--/slick slider-->
3313
3314 </div>
3315 </div>
3316 </div>
3317 </#if>
3318 <div class="oferta-slick-area_modal">
3319 </div>
3320
3321 <#if isEMED>
3322 <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>
3323 <#else>
3324 <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>
3325 </#if>
3326
3327 </div>
3328
3329 <div id="ssp-abrir-pagina-bolsa" class="ssp-card-duvida__bolsa-estudo d-none" style="margin-top: 44px;">
3330
3331 <p>Tem dúvidas sobre bolsas de estudo?</p>
3332 <a href="/bolsas-de-estudo/como-funciona">Saiba como funciona</a>
3333
3334 </div>
3335
3336
3337 </section>
3338
3339 <section id="section-registro-interesse" class="ssp-section-novas-turmas">
3340
3341 <div class="container">
3342
3343 <div class="ssp-aviso-novas-turmas__content">
3344
3345 <!-- <div class="pb-sm-5 pb-md-5" > -->
3346 <div>
3347
3348 <h6 class="ssp-aviso-novas-turmas__title">Quer receber um aviso por e-mail sobre novas turmas?</h6>
3349 <!-- p class="ssp-aviso-novas-turmas__description">Selecione a unidade e registre seu interesse.</p -->
3350
3351 </div>
3352
3353 <!--
3354 <div class="ssp-container__form-select">
3355
3356 <select class="form-control select-large select-registro-interesse" id="select-registro-interesse">
3357 <option value="">Selecione uma unidade</option>
3358 </select>
3359
3360 </div>
3361 -->
3362 <div class="ssp-btn-group__content-teste">
3363
3364 <a class="btn btn-primary btn-custom" id="btn-aviso-novas-turmas">Sim, me avise</a>
3365
3366 </div>
3367
3368
3369
3370 </div>
3371
3372
3373 </div>
3374
3375
3376 </section>
3377
3378 <section id="modal-backpack-error" class="ssp-modal-registro-interesse d-none">
3379
3380 <div class="ssp-card-msg-erro">
3381
3382 <div class="ssp-card-msg-sucesso__content">
3383 <i class="fas fa-exclamation-circle" style="color: #ec3a3a;"></i>
3384 <p>Houve um erro ao inserir curso na mochila!</p>
3385 <p>Por favor, tente novamente!</p>
3386 </div>
3387
3388 <div>
3389 <button id="btn-voltar-modal-backpack-error" class="btn btn-nivel ssp-card-msg-sucesso__btn">Voltar</button>
3390 </div>
3391
3392 </div>
3393
3394 </section>
3395
3396 <section id="modal-backpack-success" class="ssp-modal-registro-interesse d-none">
3397
3398 <div class="ssp-modal-mochila-curso">
3399
3400 <div class="ssp-modal-mochila-curso__header">
3401
3402 <button class="modal-btn-close" type="button">
3403
3404 <i class="fal fa-times"></i>
3405
3406 </button>
3407
3408 <h2 class="modal-title">Curso adicionado à mochila!</h2>
3409 <p class="modal-subtitle">Você incluiu na sua mochila de compras o curso
3410 <span id="modal-backpack-success__nome-curso"></span>
3411 </p>
3412
3413 </div>
3414
3415 <div class="ssp-modal-mochila-curso__body">
3416
3417 <p>A sua vaga só é garantida nesta turma quando você finaliza a
3418 compra. Deseja concluir agora?</p>
3419
3420 </div>
3421
3422 <div class="ssp-modal-mochila-curso__block-btn-items block-btn-items">
3423
3424 <a class="btn-finalizar-compra btn-mochila-finalizar-compra-success" href="#">
3425 Finalizar compra
3426 </a>
3427
3428 <button class="btn-continuar-site btn-mochila-continuar-site-success">
3429 Continuar no site
3430 </button>
3431
3432 </div>
3433
3434
3435 </div>
3436
3437 </section>
3438
3439</#if>
3440
3441<#if nomeTipoCurso?has_content && nomeTipoCurso?contains("Ensino Médio Técnico") >
3442 <!-- Agende a sua visita -->
3443 <#assign searchImpl = serviceLocator.findService("br.senac.search.api.Search") />
3444 <#assign articles = searchImpl.search("EMED - Agende sua visita", {}, themeDisplay.getCompanyId(), themeDisplay.getScopeGroupId(), themeDisplay.getUserId(), false) />
3445
3446 <section id="ssp-emed-visita-sector">
3447 <div class="container py-5 pt-lg-0" style="display:none;">
3448 <div data-emed="ssp-emed-visita-wrapper" class="ssp-emed-visita-wrapper">
3449 <#list articles![] as article>
3450 <#assign document = saxReaderUtil.read(article.getContent()) />
3451 <#assign rootElement = document.getRootElement() />
3452
3453 <#assign
3454 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='textoDoBotao']")
3455 textoDoBotao = xPathSelector.selectSingleNode(rootElement).getStringValue()
3456
3457 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='linkBotao']")
3458 linkBotao = xPathSelector.selectSingleNode(rootElement).getStringValue()
3459
3460 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='ativarBotao']")
3461 ativarBotao = xPathSelector.selectSingleNode(rootElement).getStringValue()
3462 />
3463
3464 <#if ativarBotao?trim == "true">
3465 <script>$('#ssp-emed-visita-sector').children().show()</script>
3466 <div data-emed="ssp-emed-visita-text" class="ssp-emed-visita-text">
3467
3468 <a href="${linkBotao}">${textoDoBotao}</a>
3469
3470 </div>
3471 <div class="ssp-emed-visita-icon">
3472 <i class="fas fa-route"></i>
3473 </div>
3474 </#if>
3475 </#list>
3476 </div>
3477 </div>
3478 </section>
3479
3480
3481 <!-- Como me matricular EMED -->
3482
3483 <section class="ssp-como-me-matricular__section">
3484
3485 <h2 class="title-section-white">Como me matricular?</h2>
3486
3487 <div class="container">
3488
3489 <div class="ssp-como-me-matricular__passo-passo-card">
3490
3491 <div class="item-passo">
3492 <img class="item-passo-icone" src="/o/senac-theme/images/icon-escolha-curso.svg" alt="">
3493 <p class="item-passo-title">Escolha seu curso</p>
3494 <span>Selecione o curso, a unidade do seu interesse e confira as turmas disponíveis.</span>
3495 </div>
3496
3497 <img class="item-passo-icone-seta" src="/o/senac-theme/images/icon-seta-passo.svg" alt="">
3498
3499 <div class="item-passo">
3500 <img class="item-passo-icone" src="/o/senac-theme/images/icon-realize-inscricao.svg" alt="">
3501 <p class="item-passo-title">Realize sua inscrição</p>
3502 <span>Faça login e preencha os dados do formulário para realizar sua inscrição.<br>
3503A inscrição não garante a vaga.</span>
3504 </div>
3505
3506 <img class="item-passo-icone-seta" src="/o/senac-theme/images/icon-seta-passo.svg" alt="">
3507
3508 <div class="item-passo">
3509 <img class="item-passo-icone" src="/o/senac-theme/images/icon-aguarde-contato.svg" alt="">
3510 <p class="item-passo-title">Aguarde nosso contato</p>
3511 <span>Precisamos validar suas informações e o pagamento da matrícula para garantir sua vaga.</span>
3512 </div>
3513
3514 </div>
3515
3516
3517 </div>
3518
3519 </section>
3520
3521 </#if>
3522
3523
3524 <div class="ssp-section ssp-section-lg-bottom-slider d-none" id="section-cursos-voce-pode-gostar" style="background-color: #f2f2f2">
3525 <div class="container">
3526 <h2 class="ssp-section-title">
3527 <lfr-editable id="cursos-voce-pode-gostar-title" type="rich-text">
3528 Cursos que você pode gostar
3529 </lfr-editable>
3530 </h2>
3531
3532 <div id="slider-curso">
3533
3534 </div>
3535
3536 </div>
3537 </div>
3538
3539
3540
3541
3542 <#-- Section para o item de curso-->
3543 <div id="curso-item-template" class="d-none slick-area__item">
3544
3545 <div class="ssp-card-curso" style="height: 288px;">
3546
3547 <a class="ssp-absolute-link ck-curso" href="#a"></a>
3548
3549 <div class="ssp-card-curso__image">
3550
3551 <div class="ssp-image-container">
3552 <img src="" />
3553
3554 </div>
3555
3556 </div>
3557
3558 <div class="ssp-card-curso__body">
3559
3560 <div class="ssp-card-curso__color-tag-modalidade"></div>
3561
3562 <div class="ssp-card-curso__tags">
3563
3564 <span class="ssp-card-curso__tag-formato-title"></span>
3565
3566 <span class="tag-modalidade-title__senac-online d-none">Senac Online - ao vivo</span>
3567
3568 </div>
3569
3570 <h6 class="ssp-card-curso__title">
3571
3572 </h6>
3573
3574 <div class="ssp-card-curso__info">
3575
3576 <span class="ssp-tag bg-white border-nivel-extensao text-nivel-extensao mr-1 btn-inscricoes-abertas">Inscrições abertas</span>
3577 <span class="ssp-tag bg-white border-primary text-primary btn-bolsas">Bolsas</span>
3578
3579 </div>
3580
3581 </div>
3582
3583 </div>
3584
3585 </div>
3586
3587 <#function getJournalArticle>
3588
3589
3590 <#assign journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
3591 <#assign friendlyURL = themeDisplay.getURLCurrent()?split("/")?last?split("?")?first>
3592 <#assign groupId = themeDisplay.getSiteGroupId()>
3593 <#attempt>
3594
3595 <#if !friendlyURL?contains("fragment_collections") >
3596
3597 <#return journalArticleService.getArticleByUrlTitle(groupId,friendlyURL)>
3598 <#else>
3599
3600 <#return '#erro#'>
3601 </#if>
3602
3603 <#recover>
3604
3605 <#return '#erro#'>
3606 </#attempt>
3607 </#function>
3608
3609 <#function getCategorias primaryKey>
3610
3611 <#assign categoryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") />
3612 <#attempt>
3613
3614 <#return categoryService.getCategories("com.liferay.journal.model.JournalArticle", primaryKey)>
3615
3616 <#recover>
3617
3618 <#return '#erro#'>
3619 </#attempt>
3620 </#function>
3621
3622 <#function getVocabulary vocabularyId>
3623
3624 <#assign vocabularyService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyService") />
3625 <#attempt>
3626
3627 <#return vocabularyService.getVocabulary(vocabularyId)>
3628
3629 <#recover>
3630
3631 <#return '#erro#'>
3632 </#attempt>
3633 </#function>
3634
3635 <#function getStringValue dom name>
3636 <#assign
3637 seletorSTR = "dynamic-element[@name='"+name+"']"
3638 xPathSelector = saxReaderUtil.createXPath(seletorSTR)
3639 />
3640 <#if xPathSelector.selectSingleNode(dom)?? >
3641 <#assign
3642 valueSTR = xPathSelector.selectSingleNode(dom).getStringValue()?trim
3643 />
3644 <#return valueSTR>
3645 </#if>
3646 <#return ''>
3647 </#function>
3648
3649 <!--Modal de Login -->
3650
3651 <section id="modal-login" class="ssp-modal-registro-interesse d-none">
3652
3653 <div class="dropdown-menu-modal dropdown-menu-right" id="js-login-dropdown-menu-2" style="width: 340px; max-width: 340px; display: block;">
3654
3655 <div class="px-5">
3656 <i id="btn-close-loginModal" class="fas fa-times btn-close__modal-login"></i>
3657 <div class="text-darker-gray py-3">Faça login na sua conta</div>
3658 </div>
3659
3660 <div class="dropdown-divider"></div>
3661
3662 <div class="dropdown-menu-arrow"></div>
3663
3664 <form id="login_form" class="px-5 py-4" method="post">
3665
3666 <div class="alert alert-danger py-3 d-none" id="mensagem-erro-login" style="background:#f8d7da;border-color:#f5c6cb; color:#a94442"></div>
3667
3668 <div class="form-group">
3669
3670 <label for="login-email">E-mail</label>
3671 <div class="input-group mb-2">
3672 <div class="input-group-prepend">
3673 <span class="input-group-text"><i class="icon-envelope"></i></span>
3674 </div>
3675 <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">
3676 </div>
3677
3678 </div>
3679
3680 <div class="form-group">
3681
3682 <label for="login-password">Senha</label>
3683 <div class="input-group mb-2">
3684 <div class="input-group-prepend">
3685 <span class="input-group-text"><i class="icon-key"></i></span>
3686 </div>
3687 <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">
3688 </div>
3689
3690 </div>
3691
3692 <div class="pt-1 pb-3">
3693 <small><a href="http://www.sp.senac.br/login-unico/SendPassword" target="_blank">Esqueceu sua senha?</a></small>
3694 </div>
3695
3696 <button type="button" class="btn btn-primary w-100" id="btnLogin" data-login="btnLogin">Entrar</button>
3697 </form>
3698
3699 <div class="dropdown-divider"></div>
3700
3701 <div class="px-5 pb-4">
3702 <div class="text-darker-gray py-3">Não tem cadastro?</div>
3703 <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>
3704 </div>
3705
3706
3707 </div>
3708
3709 </section>
3710
3711 <!-- modal registro interesse -->
3712
3713
3714 <section id="modal-registro-interesse" class="ssp-modal-registro-interesse d-none">
3715
3716 <#if !isEMED>
3717 <div class="ssp-card-registro-interesse">
3718
3719 <i id="btn-close-Modal-registro-interesse" class="fas fa-times btn-close__modal-login"></i>
3720
3721 <p class="ssp-card-registro-interesse__label-curso-selecionado">Curso selecionado:</p>
3722 <h3 class="ssp-card-registro-interesse__nome-curso"></h3>
3723
3724 <div id="unidades-registro-interesse">
3725
3726 <h4 class="ssp-card-registro-interesse__title-section-itens">Unidade:</h4>
3727
3728 <div id="select-unidades-registro-interesse">
3729 <select class="ssp-card-registro-interesse__select unidades" id="select_0"><option value="" disabled="" selected="">Selecione uma unidade</option></select>
3730 </div>
3731
3732 <div class="ssp-card-registro-interesse__add-mais">
3733 <a class="" id="add-unidade-regsitro-interesse" href="#a"><i class="fas fa-plus mr-1"></i>Adicionar unidade</a>
3734
3735
3736
3737 <a class="" id="remove-unidade-regsitro-interesse" href="#a"><i class="fas fa-times mr-1"></i>Remover unidade</a>
3738 </div>
3739
3740 </div>
3741
3742 <div id="dias-registro-interesse">
3743 <h4 class="ssp-card-registro-interesse__title-section-itens text-center">Dias da Semana</h4>
3744
3745 <div class="ssp-card-registro-interesse__week-content">
3746 <span id="todosDias" class="ssp-week-day">Todos</span>
3747 <span class="ssp-week-day">Seg</span>
3748 <span class="ssp-week-day">Ter</span>
3749 <span class="ssp-week-day">Qua</span>
3750 <span class="ssp-week-day">Qui</span>
3751 <span class="ssp-week-day">Sex</span>
3752 <span class="ssp-week-day">Sab</span>
3753 </div>
3754
3755 </div>
3756
3757 <div id="periodo-registro-interesse">
3758
3759 <h4 class="ssp-card-registro-interesse__title-section-itens text-center">Período:</h4>
3760
3761 <div class="ssp-card-registro-interesse__check-itens-content periodos-registro-interesse">
3762
3763 <div class="ssp-card-registro-interesse__check-item" id="div-campo-todos">
3764 <input type="checkbox" name="" value="" id="check-todos-periodos">
3765 <label for="check-todos-periodos">Todos</label>
3766 </div>
3767
3768 <div class="ssp-card-registro-interesse__check-item">
3769 <input type="checkbox" name="" value="M" id="periodo-m">
3770 <label for="periodo-m">Manhã</label>
3771 </div>
3772
3773 <div class="ssp-card-registro-interesse__check-item">
3774 <input type="checkbox" name="" value="T" id="periodo-t">
3775 <label for="periodo-t">Tarde</label>
3776 </div>
3777
3778 <div class="ssp-card-registro-interesse__check-item">
3779 <input type="checkbox" name="" value="N" id="periodo-n">
3780 <label for="periodo-n" "="">Noite</label>
3781 </div>
3782
3783
3784 </div>
3785
3786 </div>
3787
3788 <div class="ssp-card-registro-interesse__card-politica">
3789
3790 <p class="ssp-card-registro-interesse__card-politica-title"><strong>Política de Privacidade</strong></p>
3791
3792 <p class="ssp-card-registro-interesse__card-politica-text">O Serviço Nacional de Aprendizagem Comercial - Senac, Administração Regional no Estado de São Paulo, inscrito no CNPJ sob nº 03.709.814/0001-98, com sede na Rua Dr. Vila Nova, 228, 7º andar, na cidade de São Paulo, Estado de São Paulo ("Senac São Paulo") atua de maneira transparente e responsável para garantir a proteção dos seus dados pessoais. Por isso, é muito importante para nós que você conheça nossa Política de Privacidade. </p>
3793
3794
3795 <p class="ssp-card-registro-interesse__card-politica-text">
3796 <b>1. O que é a Política de Privacidade do Senac São Paulo? </b><br>
3797
3798 É o documento que apresenta informações sobre a maneira como coletamos, utilizamos e compartilhamos seus dados pessoais, bem como descreve o conjunto de regras e procedimentos adotados pelo Senac São Paulo para garantir a proteção desses dados. Os seus dados pessoais são coletados quando você se cadastra em nosso site (www.sp.senac.br) para registrar interesse em cursos, participar de eventos, fazer sua matrícula ou se inscrever em bolsas de estudo.
3799
3800 Nossa Política de Privacidade é pautada pela Lei Geral de Proteção de Dados Pessoais (LGPD), nº 13.709/2018. Comprometemo-nos a cumprir estritamente seus termos assim que ela entrar em vigor. Caso queria saber mais sobre a LGPD, confira.
3801 <br><br>
3802 <b>2. Como o Senac coleta meus dados pessoais?</b><br>
3803
3804 Por meio de cadastro em nosso site ou em nossas unidades. Para realizá-lo, você notará que algumas informações são obrigatórias, pois atendem padrões estabelecidos por órgãos da administração pública, como o Ministério da Educação. Além desses dados, as outras informações solicitadas nos ajudam a entender melhor seus interesses e personalizar, ainda mais, seu atendimento.
3805 <br><br>
3806 <b>3. É possível acessar este site sem fornecer meus dados pessoais?</b><br>
3807
3808 Sim. Neste caso, podemos coletar dados técnicos da sua navegação como endereço de Protocolo de Internet (endereço IP), registro de acesso, geolocalização do endereço IP, tipo do navegador utilizado, versão do sistema operacional, modelo e características do aparelho utilizado para o acesso, banda de internet, operadora, comportamento de pageview e páginas visitadas, de acordo com cookies liberados ou não por você. (<a href="https://www.sp.senac.br/politica-de-cookies">Conhecer nossa Política de Cookies.</a>)
3809 <br><br>
3810 <b>4. No caso de acesso com cadastro, quais informações o Senac poderá solicitar? </b><br>
3811
3812 Nossa coleta de dados pessoais varia de acordo com o tipo de interação que você terá em nosso site, quais produtos ou serviços está procurando.
3813
3814 Para você saber, relacionamos a seguir os dados pessoais que podem ser solicitados por nós: <br>
3815
3816 - Dados sobre identificação: nome civil, nome social, filiação, nacionalidade, naturalidade, data de nascimento, sexo, estado civil, número e cópia do documento de identificação (CPF, RG/RNE ou outro)<br>
3817 - Dados sobre contato: endereço postal, endereço de e-mail, número de telefone<br>
3818 - Dados acadêmicos: estabelecimentos de ensino anteriores, certificados e diplomas acadêmicos, histórico escolar, nota do ENEM<br>
3819 - Dados profissionais: emprego atual, profissão<br>
3820 - Dados de pagamento: nome do titular da conta e número do cartão de crédito<br>
3821 - Dados de responsáveis: nome, telefone e número de documento de identidade do responsável legal (em casos de estudante menor de idade) e/ou financeiro <br>
3822 - Dados de saúde: informação sobre deficiência física e atestados médicos<br>
3823 - Dados de imagem: foto<br>
3824 - Dados de renda familiar: situação de emprego e salário de membros da mesma família<br>
3825 - Dados técnicos da sua navegação: endereço de Protocolo de Internet (endereço IP), registro de acesso, geolocalização do endereço IP, tipo do navegador utilizado, versão do sistema operacional, modelo e características do aparelho utilizado para o acesso, banda de internet, operadora, comportamento de pageview e páginas visitadas, de acordo com cookies liberados ou não por você. (<a href="https://www.sp.senac.br/politica-de-cookies">Conhecer nossa Política de Cookies</a>)<br>
3826
3827 <br><br>
3828 <b>5. Quantos e quais tipos de cadastros podem ser realizados?</b><br>
3829
3830 São três tipos de cadastro realizado. Como já comentamos (pergunta 4), eles variam de acordo com a sua experiência e o seu objetivo em nosso site. Por exemplo, se seu objetivo agora é apenas registrar interesse em algum curso livre, você terá que preencher seus dados de identificação e contato, caso queira fazer sua matrícula, deverá preencher também informações sobre pagamento, mas, se optar por se inscrever para bolsa de estudo, terá que fornecer outros documentos específicos, como comprovantes de renda. Confira:<br>
3831
3832 - Cadastro simples: poderemos coletar dados de identificação e de contato.<br>
3833 - Cadastro e inscrição em cursos e outros eventos: quando você se inscreve em nossos cursos, eventos e até mesmo para participar do nosso vestibular e efetivar a sua matrícula em cursos livres, técnicos, de formação continuada ou superior, por exemplo, poderemos coletar dados dos responsáveis, de identificação, de contato, dados acadêmicos, profissionais, de saúde, de pagamento e de imagem.<br>
3834 Importante: também poderemos solicitar o envio de cópia de documentos, de acordo com o curso escolhido por você.<br>
3835 - Cadastro e inscrição para bolsas de estudos: poderemos coletar dados de identificação, contato e renda familiar.<br>
3836 Importante: também poderemos solicitar o envio de cópia de documentos para comprovar as informações fornecidas.<br>
3837
3838 <br><br>
3839 <b>6. Para quais finalidades meus dados podem ser utilizados?</b><br>
3840
3841 - Em procedimentos internos relacionados aos nossos serviços e produtos para que você tenha uma experiência positiva durante sua jornada no Senac. Afinal, você precisa ter informações sobre nossos serviços, ter acesso a nossa infraestrutura, ou, por exemplo, poder emprestar livros nas nossas bibliotecas, realizar pagamentos, enviar reclamações, sugestões, pedidos, entre outros. <br>
3842 - Para cumprir obrigações legais a que estamos sujeitos, por exemplo: o pagamento de impostos, fazer o gerenciamento de matrícula, providenciar o reconhecimento de equivalências e de documentos que conferem graus e títulos acadêmicos, emitir certificados e diplomas, realizar o controle de assiduidade e registro de informações acadêmicas.<br>
3843 - Para permitir a realização de auditoria de órgãos da administração pública<br>
3844 - Em investigações sobre possíveis violações de leis ou de nossas políticas internas<br>
3845 - Para estabelecer rede de conexões entre ex-estudantes<br>
3846 - Para melhorar sua experiência com o Senac São Paulo, como, por exemplo, disponibilizar intérpretes, fornecer melhores ferramentas ou aprimorar nossos ambientes<br>
3847 - Para defender direitos em conflitos judiciais ou extrajudiciais e para proteger nossos direitos e de terceiros e, ainda, para outras finalidades que exijam o seu consentimento, que será solicitado nos termos da legislação vigente. <br>
3848
3849
3850 <b>Importante:</b> usaremos seus dados pessoais somente para atender aos objetivos descritos nesta Política. Se necessário, seus dados poderão ser usados para outras finalidades não conflitantes às finalidades apresentadas nesta Política.
3851 <br><br>
3852 <b>7. Com quem o Senac pode compartilhar meus dados?</b><br>
3853
3854 - Com órgãos da administração pública (Ministério da Educação, Secretaria Estadual da Educação, Tribunal de Contas da União, Controladoria Geral da União e demais órgãos relacionados a esses) para cumprimento de obrigações legais e regulatórias.<br>
3855 - Com instituições do setor bancário e seguradoras, para gestão e processamento de pagamentos.<br>
3856 - Com empresas que tenhamos contratos, parceria e/ou acordos de cooperação, por exemplo, gráficas, para a emissão de cartões e provas.<br>
3857 - Com instituições de ensino para validar a autenticidade de documentos.<br>
3858 Importante: informaremos você quando houver o compartilhamento de dados para outras finalidades que possam ser incompatíveis com o descrito nesta Política, sempre que exigido pela legislação.
3859
3860 <br><br>
3861 <b>8. Por quanto tempo meus dados serão armazenados?</b> <br>
3862
3863 Pelo período necessário para que você tenha uma experiência positiva dentro da instituição, atendendo seus interesses e solicitações.
3864
3865 <b>Importante:</b> poderemos preservar os seus dados por um período superior sempre que exista uma obrigação legal, por exemplo, em relação aos dados utilizados na gestão acadêmica, ou se existirem razões de interesse público (arquivo, investigação científica e histórica, ou para censos educacionais). Nessas ocasiões, sempre que possível, seus dados serão tratados de forma que seja possível manter o seu anonimato.
3866 <br><br>
3867 <b>9. Quais são as medidas de segurança utilizadas para garantir a proteção dos meus dados pessoais?</b><br>
3868
3869 Atuamos de maneira transparente e responsável, por meio de padrões de segurança e prevenção confiáveis. Adotamos medidas administrativas, técnicas e físicas para proteger dados pessoais contra perda, roubo, uso indevido, bem como, contra acesso não autorizado, divulgação, alteração e destruição de informações.
3870
3871 Confira nossas medidas de segurança da informação que buscam garantir a confidencialidade, a integridade e a disponibilidade dos dados coletados: <br>
3872
3873 - Controlar o acesso a informações, considerando a necessidade de nossos funcionários obterem determinado dado<br>
3874 - Proteger infraestruturas tecnológicas contra acessos não autorizados<br>
3875 - Monitorar constantemente toda nossa infraestrutura tecnológica <br>
3876 - Política de troca de senhas<br>
3877 - Política de confidencialidade com funcionários e terceiros<br>
3878
3879 <br><br>
3880 <b>10. É possível que meus dados sejam transferidos para fora do país?</b><br>
3881
3882 Sim, pois temos parcerias em nível global. Portanto, dados pessoais talvez precisem ser transferidos para outros países, seja em razão dessas parcerias (por exemplo, em caso de intercâmbio de estudantes) ou pela necessidade de armazenamento de dados em servidores estrangeiros, por meio da utilização de servidores em nuvem (cloud).
3883
3884 Caso seus dados pessoais sejam transferidos para fora do Brasil, adotaremos todos os cuidados para assegurar que essa transferência obedeça às normas e preserve o sigilo de todas as informações coletadas.
3885 <br><br>
3886 <b>11. Quais são os meus direitos em relação aos dados pessoais fornecidos?</b><br>
3887
3888 Agora que você já sabe como coletamos, utilizamos e compartilhamos seus dados, é igualmente importante para nós que você conheça quais são os direitos que possui quando nos fornece seus dados pessoais. Caso queira, você poderá:
3889
3890 - Corrigir seus dados pessoais que estejam incompletos, inexatos ou desatualizados<br>
3891 Caso você identifique algum erro em relação aos dados fornecidos, basta solicitar a alteração para nossa equipe. Isso é importante para que as informações sejam utilizadas da maneira correta e seu cadastro fique sempre atualizado. <br>
3892 - Cancelar ou revogar o seu consentimento de utilização de dados <br>
3893 Você poderá cancelar, a qualquer momento, o consentimento em relação ao uso, pelo Senac São Paulo, dos seus dados pessoais. <br>
3894
3895
3896 <b>Importante:</b> deixaremos de usar seus dados pessoais quando a revogação do seu consentimento for concluída. Sendo assim, qualquer utilização de seus dados pessoais antes da efetivação do cancelamento/revogação é entendido por nós como legal, verdadeiro e autorizado por você.
3897
3898 Caso queira fazer algum pedido referente a este campo, você deve entrar em contato via e-mail pelo privacidade@sp.senac.br. Poderemos solicitar informações para confirmar sua identidade e seu direito de acesso aos dados solicitados.
3899
3900 Tenha certeza, trabalharemos sempre de maneira ágil e responsável para atender suas solicitações o mais breve possível, sendo que observaremos os prazos legais quando da vigência da LGPD.
3901 <br><br>
3902 <b>12. E se essa Política for atualizada?</b><br>
3903
3904 Caso existam alterações significativas, iremos avisar você o mais breve possível, ou, antes que a nova política entre em vigor. Por isso, recomendamos que consulte este documento sempre que possível e verifique a data da sua última atualização, informada no rodapé desta página.
3905 <br><br>
3906 <b>13. Como posso tirar minhas dúvidas sobre esta Política?</b><br>
3907
3908 Fique à vontade para nos enviar qualquer tipo de dúvida sobre esta Política, em privacidade@sp.senac.br. Será um prazer falar com você!
3909
3910 <br><br>
3911
3912 <b>Encarregado de Dados do Senac (DPO):</b>
3913
3914 <br><br>
3915 <b>Fernando Sátiro Pereira </b>| Gerente de Tecnologia da Informação do Senac São Paulo
3916
3917 <br>
3918 <b>Contato: privacidade@sp.senac.br</b>
3919 </p>
3920
3921
3922 </div>
3923
3924 <div class="ssp-card-registro-interesse__check-item">
3925 <input type="checkbox" name="" value="" id="check-politica-privacidade">
3926 <label for="check-politica-privacidade">Aceito a Política de Privacidade</label>
3927 </div>
3928
3929 <div class="text-center mt-5">
3930
3931 <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>
3932
3933 <p class="ssp-card-registro-interesse__aviso"><strong>Importante:</strong> O registro de interesse não garante a vaga.</p>
3934
3935 </div>
3936
3937 </div>
3938
3939 <#else>
3940
3941 <div class="ssp-card-registro-interesse emed">
3942
3943 <i id="btn-close-Modal-registro-interesse" class="fas fa-times btn-close__modal-login"></i>
3944
3945 <p class="ssp-card-registro-interesse__label-curso-selecionado">Curso selecionado:</p>
3946
3947 <div class="emed-select-group">
3948
3949 <h3 class="ssp-card-registro-interesse__title-modal"></h3>
3950
3951 <div id="unidades-registro-interesse">
3952
3953 <h4 class="ssp-card-registro-interesse__title-section-itens">Escolha uma unidade</h4>
3954
3955 <div id="select-unidades-registro-interesse">
3956 <select class="ssp-card-registro-interesse__select unidades" id="select_0"><option value="" disabled="" selected="">Selecione uma unidade</option></select>
3957 </div>
3958
3959 <div class="ssp-card-registro-interesse__add-mais">
3960 <a class="" id="add-unidade-regsitro-interesse" href="#a"><i class="fas fa-plus mr-1"></i>Adicionar unidade</a>
3961
3962
3963
3964 <a class="" id="remove-unidade-regsitro-interesse" href="#a"><i class="fas fa-times mr-1"></i>Remover unidade</a>
3965 </div>
3966
3967 </div>
3968
3969 </div>
3970
3971
3972 <div id="periodo-registro-interesse">
3973
3974 <p class="ssp-card-registro-interesse__title-section-itens">Período:</p>
3975
3976 <div class="ssp-card-registro-interesse__check-itens-content periodos-registro-interesse">
3977 <div class="ssp-card-registro-interesse__check-item">
3978 <input type="checkbox" name="" value="M" id="periodo-m">
3979 <label for="periodo-m">Manhã</label>
3980 </div>
3981
3982 <div class="ssp-card-registro-interesse__check-item">
3983 <input type="checkbox" name="" value="T" id="periodo-t">
3984 <label for="periodo-t">Tarde</label>
3985 </div>
3986
3987 <div class="ssp-card-registro-interesse__check-item" id="div-campo-todos">
3988 <input type="checkbox" name="" value="" id="check-todos-periodos">
3989 <label for="check-todos-periodos">Todos</label>
3990 </div>
3991
3992 </div>
3993
3994 </div>
3995
3996 <div id="turmas-registro-interesse">
3997
3998 <p class="ssp-card-registro-interesse__title-section-itens">Turma:</p>
3999
4000 <div class="ssp-card-registro-interesse__check-itens-content turmas-registro-interesse">
4001
4002 <div class="ssp-card-registro-interesse__check-item">
4003 <input type="checkbox" name="" value="1" id="primeiro">
4004 <label for="primeiro">1º ano</label>
4005 </div>
4006
4007 <div class="ssp-card-registro-interesse__check-item">
4008 <input type="checkbox" name="" value="2" id="segundo">
4009 <label for="segundo">2º ano</label>
4010 </div>
4011
4012 <div class="ssp-card-registro-interesse__check-item">
4013 <input type="checkbox" name="" value="3" id="terceiro">
4014 <label for="terceiro">3º ano</label>
4015 </div>
4016
4017 </div>
4018
4019 </div>
4020
4021 <div id="msg-transferencia-emed">
4022
4023 <div class="transferencia-emed-title">
4024 <i class="fas fa-comment-exclamation"></i>
4025 <p>Quer se transferir de escola?</p>
4026 </div>
4027
4028 <div class="transferencia-emed-link">
4029 <a href="#">Fale direto com a unidade de interesse.</a>
4030 </div>
4031
4032 </div>
4033
4034 <div class="ssp-card-registro-interesse__card-politica">
4035
4036 <p class="ssp-card-registro-interesse__card-politica-title"><strong>Política de Privacidade</strong></p>
4037
4038 <p class="ssp-card-registro-interesse__card-politica-text">O Serviço Nacional de Aprendizagem Comercial - Senac, Administração Regional no Estado de São Paulo, inscrito no CNPJ sob nº 03.709.814/0001-98, com sede na Rua Dr. Vila Nova, 228, 7º andar, na cidade de São Paulo, Estado de São Paulo ("Senac São Paulo") atua de maneira transparente e responsável para garantir a proteção dos seus dados pessoais. Por isso, é muito importante para nós que você conheça nossa Política de Privacidade. </p>
4039
4040 <p class="ssp-card-registro-interesse__card-politica-text">
4041
4042 <b>1. O que é a Política de Privacidade do Senac São Paulo? </b><br>
4043
4044 É o documento que apresenta informações sobre a maneira como coletamos, utilizamos e compartilhamos seus dados pessoais, bem como descreve o conjunto de regras e procedimentos adotados pelo Senac São Paulo para garantir a proteção desses dados. Os seus dados pessoais são coletados quando você se cadastra em nosso site (www.sp.senac.br) para registrar interesse em cursos, participar de eventos, fazer sua matrícula ou se inscrever em bolsas de estudo.
4045
4046 Nossa Política de Privacidade é pautada pela Lei Geral de Proteção de Dados Pessoais (LGPD), nº 13.709/2018. Comprometemo-nos a cumprir estritamente seus termos assim que ela entrar em vigor. Caso queria saber mais sobre a LGPD, confira.
4047 <br><br>
4048 <b>2. Como o Senac coleta meus dados pessoais?</b><br>
4049
4050 Por meio de cadastro em nosso site ou em nossas unidades. Para realizá-lo, você notará que algumas informações são obrigatórias, pois atendem padrões estabelecidos por órgãos da administração pública, como o Ministério da Educação. Além desses dados, as outras informações solicitadas nos ajudam a entender melhor seus interesses e personalizar, ainda mais, seu atendimento.
4051 <br><br>
4052 <b>3. É possível acessar este site sem fornecer meus dados pessoais?</b><br>
4053
4054 Sim. Neste caso, podemos coletar dados técnicos da sua navegação como endereço de Protocolo de Internet (endereço IP), registro de acesso, geolocalização do endereço IP, tipo do navegador utilizado, versão do sistema operacional, modelo e características do aparelho utilizado para o acesso, banda de internet, operadora, comportamento de pageview e páginas visitadas, de acordo com cookies liberados ou não por você. (<a href="https://www.sp.senac.br/politica-de-cookies">Conhecer nossa Política de Cookies.</a>)
4055 <br><br>
4056 <b>4. No caso de acesso com cadastro, quais informações o Senac poderá solicitar? </b><br>
4057
4058 Nossa coleta de dados pessoais varia de acordo com o tipo de interação que você terá em nosso site, quais produtos ou serviços está procurando.
4059
4060 Para você saber, relacionamos a seguir os dados pessoais que podem ser solicitados por nós: <br>
4061
4062 - Dados sobre identificação: nome civil, nome social, filiação, nacionalidade, naturalidade, data de nascimento, sexo, estado civil, número e cópia do documento de identificação (CPF, RG/RNE ou outro)<br>
4063 - Dados sobre contato: endereço postal, endereço de e-mail, número de telefone<br>
4064 - Dados acadêmicos: estabelecimentos de ensino anteriores, certificados e diplomas acadêmicos, histórico escolar, nota do ENEM<br>
4065 - Dados profissionais: emprego atual, profissão<br>
4066 - Dados de pagamento: nome do titular da conta e número do cartão de crédito<br>
4067 - Dados de responsáveis: nome, telefone e número de documento de identidade do responsável legal (em casos de estudante menor de idade) e/ou financeiro <br>
4068 - Dados de saúde: informação sobre deficiência física e atestados médicos<br>
4069 - Dados de imagem: foto<br>
4070 - Dados de renda familiar: situação de emprego e salário de membros da mesma família<br>
4071 - Dados técnicos da sua navegação: endereço de Protocolo de Internet (endereço IP), registro de acesso, geolocalização do endereço IP, tipo do navegador utilizado, versão do sistema operacional, modelo e características do aparelho utilizado para o acesso, banda de internet, operadora, comportamento de pageview e páginas visitadas, de acordo com cookies liberados ou não por você. (<a href="https://www.sp.senac.br/politica-de-cookies">Conhecer nossa Política de Cookies</a>)<br>
4072
4073 <br><br>
4074 <b>5. Quantos e quais tipos de cadastros podem ser realizados?</b><br>
4075
4076 São três tipos de cadastro realizado. Como já comentamos (pergunta 4), eles variam de acordo com a sua experiência e o seu objetivo em nosso site. Por exemplo, se seu objetivo agora é apenas registrar interesse em algum curso livre, você terá que preencher seus dados de identificação e contato, caso queira fazer sua matrícula, deverá preencher também informações sobre pagamento, mas, se optar por se inscrever para bolsa de estudo, terá que fornecer outros documentos específicos, como comprovantes de renda. Confira:<br>
4077
4078 - Cadastro simples: poderemos coletar dados de identificação e de contato.<br>
4079 - Cadastro e inscrição em cursos e outros eventos: quando você se inscreve em nossos cursos, eventos e até mesmo para participar do nosso vestibular e efetivar a sua matrícula em cursos livres, técnicos, de formação continuada ou superior, por exemplo, poderemos coletar dados dos responsáveis, de identificação, de contato, dados acadêmicos, profissionais, de saúde, de pagamento e de imagem.<br>
4080 Importante: também poderemos solicitar o envio de cópia de documentos, de acordo com o curso escolhido por você.<br>
4081 - Cadastro e inscrição para bolsas de estudos: poderemos coletar dados de identificação, contato e renda familiar.<br>
4082 Importante: também poderemos solicitar o envio de cópia de documentos para comprovar as informações fornecidas.<br>
4083
4084 <br><br>
4085 <b>6. Para quais finalidades meus dados podem ser utilizados?</b><br>
4086
4087 - Em procedimentos internos relacionados aos nossos serviços e produtos para que você tenha uma experiência positiva durante sua jornada no Senac. Afinal, você precisa ter informações sobre nossos serviços, ter acesso a nossa infraestrutura, ou, por exemplo, poder emprestar livros nas nossas bibliotecas, realizar pagamentos, enviar reclamações, sugestões, pedidos, entre outros. <br>
4088 - Para cumprir obrigações legais a que estamos sujeitos, por exemplo: o pagamento de impostos, fazer o gerenciamento de matrícula, providenciar o reconhecimento de equivalências e de documentos que conferem graus e títulos acadêmicos, emitir certificados e diplomas, realizar o controle de assiduidade e registro de informações acadêmicas.<br>
4089 - Para permitir a realização de auditoria de órgãos da administração pública<br>
4090 - Em investigações sobre possíveis violações de leis ou de nossas políticas internas<br>
4091 - Para estabelecer rede de conexões entre ex-estudantes<br>
4092 - Para melhorar sua experiência com o Senac São Paulo, como, por exemplo, disponibilizar intérpretes, fornecer melhores ferramentas ou aprimorar nossos ambientes<br>
4093 - Para defender direitos em conflitos judiciais ou extrajudiciais e para proteger nossos direitos e de terceiros e, ainda, para outras finalidades que exijam o seu consentimento, que será solicitado nos termos da legislação vigente. <br>
4094
4095
4096 <b>Importante:</b> usaremos seus dados pessoais somente para atender aos objetivos descritos nesta Política. Se necessário, seus dados poderão ser usados para outras finalidades não conflitantes às finalidades apresentadas nesta Política.
4097 <br><br>
4098 <b>7. Com quem o Senac pode compartilhar meus dados?</b><br>
4099
4100 - Com órgãos da administração pública (Ministério da Educação, Secretaria Estadual da Educação, Tribunal de Contas da União, Controladoria Geral da União e demais órgãos relacionados a esses) para cumprimento de obrigações legais e regulatórias.<br>
4101 - Com instituições do setor bancário e seguradoras, para gestão e processamento de pagamentos.<br>
4102 - Com empresas que tenhamos contratos, parceria e/ou acordos de cooperação, por exemplo, gráficas, para a emissão de cartões e provas.<br>
4103 - Com instituições de ensino para validar a autenticidade de documentos.<br>
4104 Importante: informaremos você quando houver o compartilhamento de dados para outras finalidades que possam ser incompatíveis com o descrito nesta Política, sempre que exigido pela legislação.
4105
4106 <br><br>
4107 <b>8. Por quanto tempo meus dados serão armazenados?</b> <br>
4108
4109 Pelo período necessário para que você tenha uma experiência positiva dentro da instituição, atendendo seus interesses e solicitações.
4110
4111 <b>Importante:</b> poderemos preservar os seus dados por um período superior sempre que exista uma obrigação legal, por exemplo, em relação aos dados utilizados na gestão acadêmica, ou se existirem razões de interesse público (arquivo, investigação científica e histórica, ou para censos educacionais). Nessas ocasiões, sempre que possível, seus dados serão tratados de forma que seja possível manter o seu anonimato.
4112 <br><br>
4113 <b>9. Quais são as medidas de segurança utilizadas para garantir a proteção dos meus dados pessoais?</b><br>
4114
4115 Atuamos de maneira transparente e responsável, por meio de padrões de segurança e prevenção confiáveis. Adotamos medidas administrativas, técnicas e físicas para proteger dados pessoais contra perda, roubo, uso indevido, bem como, contra acesso não autorizado, divulgação, alteração e destruição de informações.
4116
4117 Confira nossas medidas de segurança da informação que buscam garantir a confidencialidade, a integridade e a disponibilidade dos dados coletados: <br>
4118
4119 - Controlar o acesso a informações, considerando a necessidade de nossos funcionários obterem determinado dado<br>
4120 - Proteger infraestruturas tecnológicas contra acessos não autorizados<br>
4121 - Monitorar constantemente toda nossa infraestrutura tecnológica <br>
4122 - Política de troca de senhas<br>
4123 - Política de confidencialidade com funcionários e terceiros<br>
4124
4125 <br><br>
4126 <b>10. É possível que meus dados sejam transferidos para fora do país?</b><br>
4127
4128 Sim, pois temos parcerias em nível global. Portanto, dados pessoais talvez precisem ser transferidos para outros países, seja em razão dessas parcerias (por exemplo, em caso de intercâmbio de estudantes) ou pela necessidade de armazenamento de dados em servidores estrangeiros, por meio da utilização de servidores em nuvem (cloud).
4129
4130 Caso seus dados pessoais sejam transferidos para fora do Brasil, adotaremos todos os cuidados para assegurar que essa transferência obedeça às normas e preserve o sigilo de todas as informações coletadas.
4131 <br><br>
4132 <b>11. Quais são os meus direitos em relação aos dados pessoais fornecidos?</b><br>
4133
4134 Agora que você já sabe como coletamos, utilizamos e compartilhamos seus dados, é igualmente importante para nós que você conheça quais são os direitos que possui quando nos fornece seus dados pessoais. Caso queira, você poderá:
4135
4136 - Corrigir seus dados pessoais que estejam incompletos, inexatos ou desatualizados<br>
4137 Caso você identifique algum erro em relação aos dados fornecidos, basta solicitar a alteração para nossa equipe. Isso é importante para que as informações sejam utilizadas da maneira correta e seu cadastro fique sempre atualizado. <br>
4138 - Cancelar ou revogar o seu consentimento de utilização de dados <br>
4139 Você poderá cancelar, a qualquer momento, o consentimento em relação ao uso, pelo Senac São Paulo, dos seus dados pessoais. <br>
4140
4141
4142 <b>Importante:</b> deixaremos de usar seus dados pessoais quando a revogação do seu consentimento for concluída. Sendo assim, qualquer utilização de seus dados pessoais antes da efetivação do cancelamento/revogação é entendido por nós como legal, verdadeiro e autorizado por você.
4143
4144 Caso queira fazer algum pedido referente a este campo, você deve entrar em contato via e-mail pelo privacidade@sp.senac.br. Poderemos solicitar informações para confirmar sua identidade e seu direito de acesso aos dados solicitados.
4145
4146 Tenha certeza, trabalharemos sempre de maneira ágil e responsável para atender suas solicitações o mais breve possível, sendo que observaremos os prazos legais quando da vigência da LGPD.
4147 <br><br>
4148 <b>12. E se essa Política for atualizada?</b><br>
4149
4150 Caso existam alterações significativas, iremos avisar você o mais breve possível, ou, antes que a nova política entre em vigor. Por isso, recomendamos que consulte este documento sempre que possível e verifique a data da sua última atualização, informada no rodapé desta página.
4151 <br><br>
4152 <b>13. Como posso tirar minhas dúvidas sobre esta Política?</b><br>
4153
4154 Fique à vontade para nos enviar qualquer tipo de dúvida sobre esta Política, em privacidade@sp.senac.br. Será um prazer falar com você!
4155
4156 <br><br>
4157
4158 <b>Encarregado de Dados do Senac (DPO):</b>
4159
4160 <br><br>
4161 <b>Fernando Sátiro Pereira </b>| Gerente de Tecnologia da Informação do Senac São Paulo
4162
4163 <br>
4164 <b>Contato: privacidade@sp.senac.br</b>
4165
4166 </p>
4167
4168 </div>
4169
4170 <div class="ssp-card-registro-interesse__check-item">
4171 <input type="checkbox" name="" value="" id="check-politica-privacidade">
4172 <label for="check-politica-privacidade">Aceito a Política de Privacidade</label>
4173 </div>
4174
4175 <div class="text-center mt-5">
4176
4177 <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>
4178
4179 <p class="ssp-card-registro-interesse__aviso"><strong>Importante:</strong> O registro de interesse não garante a vaga.</p>
4180
4181 </div>
4182
4183 </div>
4184
4185 </#if>
4186 </section>
4187
4188 <section id="modal-registro-interesse-sucesso" class="ssp-modal-registro-interesse d-none">
4189
4190 <div class="ssp-card-msg-sucesso">
4191
4192 <div class="ssp-card-msg-sucesso__content">
4193 <i class="fas fa-exclamation-circle"></i>
4194 <p>Obrigado por registrar seu interesse!</p>
4195 <p>Acompanhe seu e-mail para ficar por dentro das novidades!</p>
4196 </div>
4197
4198 <div>
4199 <a class="btn btn-nivel ssp-card-msg-sucesso__btn" href="#" id="btn-voltar-home">Voltar para a home</a>
4200 </div>
4201
4202 </div>
4203
4204 </section>
4205
4206 <section id="modal-registro-interesse-erro" class="ssp-modal-registro-interesse d-none">
4207
4208 <div class="ssp-card-msg-erro">
4209
4210 <div class="ssp-card-msg-sucesso__content">
4211 <i class="fas fa-exclamation-circle" style="color: #ec3a3a;"></i>
4212 <p>Houve um erro ao registrar seu interesse!</p>
4213 <p>Por favor, tente novamente!</p>
4214 </div>
4215
4216 <div>
4217 <a class="btn btn-nivel ssp-card-msg-sucesso__btn" href="#">Voltar para a home</a>
4218 </div>
4219
4220 </div>
4221
4222 </section>
4223
4224 <!-- Aviso para curso de aprendizagem -->
4225
4226 <div id="aviso-curso-aprendizagem" class="ssp-bolsa-formulario__card-aviso-atencao d-none" style="width: 100%;">
4227
4228 <i class="fas fa-exclamation-circle ssp-bolsa-formulario__card-aviso-atencao-icon" aria-hidden="true"></i>
4229
4230 <div class="ssp-bolsa-formulario__card-aviso-texto">
4231 <p>O programa é gratuito para empresas contribuintes do Senac.</p>
4232 <p>Para contratar aprendiz, preencha o formulário e entraremos em contato.</p>
4233 </div>
4234
4235 </div>
4236
4237 <!-- modal form de aprendizagem -->
4238
4239 <#if isAprendizagem>
4240
4241 <#assign formId = 48097883 />
4242 <!-- formInstanceId é variável de acordo com o ID do formulário -->
4243 <#assign formPreferences = {"displayDepth": "1", "portletSetupPortletDecoratorId": "barebone", "formInstanceId": "formId"}/>
4244
4245 <section data-lfr-background-image-id="bg-programe-form" class="ssp-section ssp-section-lg-bottom" data-modal="modal">
4246
4247 <div class="container ssp_ct_form_programe">
4248
4249 <button type="button" data-modal="close-form-modal">
4250 fechar
4251 <i class="fas fa-times"></i>
4252 </button>
4253
4254 <@liferay_portlet["runtime"]
4255 portletName="com_liferay_dynamic_data_mapping_form_web_portlet_DDMFormPortlet"
4256 defaultPreferences=freeMarkerPortletPreferences.getPreferences(formPreferences)
4257 />
4258
4259 </div>
4260
4261 </section>
4262
4263 </#if>
4264
4265 <div id="avisoTrampolim" class="ssp-bolsa-formulario__card-aviso-atencao container text-left d-none" style="width: 100%;">
4266 <i class="fas fa-exclamation-circle ssp-bolsa-formulario__card-aviso-atencao-icon" aria-hidden="true"></i>
4267 <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>
4268 </div>
4269
4270 </div>
4271
4272
4273 <!--modal forma pagto extensao-->
4274 <section id="modalFormaPagtoExt" class="modal-extensao ssp-modal">
4275 <div class="modal-extensao_content">
4276 <i class="fas fa-undo modal-extensao-voltar-icon"><span class="modal-extensao-voltar-txticon">Voltar</span></i>
4277 <h1 class="modal-extensao-condicoes__title">Descontos e Parcelamento</h1>
4278 <div class="row">
4279
4280 <!-- <button class="btn-preco-padrao d-xs-flex d-sm-flex d-lg-none d-xl-none">
4281 Preço Padrão
4282 <i class="fas fa-chevron-right custom-icon-right"></i>
4283 </button> -->
4284
4285 <div class="col-lg-6 col-sm-12 col-xs-12">
4286
4287 <h2 class="modal-extensao_subtitle">Investimento</h2>
4288
4289 <span class="modal-extensao_preco">R$ <span class="precoVendaOferta"></span></span>
4290 <span class="modal-extensao_txteconomiza">.<b class="modal-extensao_txtverde"></b></span>
4291 <div class="modal-extensao_ctboleto pt-2 pb-2 mb-3">
4292 <i class="fas fa-barcode" aria-hidden="true"></i>
4293 <span class="modal-extensao_txtPag">Boleto Bancário</span>
4294 <span class="modal-extensao_txtParcela"><b><span class="numParcelaBoleto"></span>x de R$ <span class="precoParcelaBoleto"></span></b></span>
4295 <span class="modal-extensao_txtParcela">sem juros</span>
4296 </div>
4297 <div class="modal-extensao_ctcard pt-2 pb-2 mb-3">
4298 <i class="far fa-credit-card" aria-hidden="true"></i>
4299 <span class="modal-extensao_txtPag">Cartão de Crédito</span>
4300 <span class="modal-extensao_txtParcela"><b><span class="numParcelaCartoes"></span>x de R$ <span class="precoParcelaCartoes"></span></b></span>
4301 <span class="modal-extensao_txtParcela">sem juros</span>
4302 </div>
4303 <p class="modal-extensao_txtParcela pt-5"><b>À vista:</b> R$ <span class="precoAVistaPadraoExt"></span> <span class="modal-extensao_txtporcent">(-8%)</span></p>
4304 </div>
4305
4306 <!-- <hr class="ssp-divisor d-xs-block d-sm-block d-lg-none d-xl-none"> -->
4307
4308 <!-- <button class="btn-preco-ex-aluno d-xs-flex d-sm-flex d-lg-none d-xl-none">
4309 Preço para Contribuintes,<br>alunos e ex-alunos*
4310 <i class="fas fa-chevron-right custom-icon-right"></i>
4311 </button> -->
4312
4313 <div class="col-lg-6 col-sm-12 col-xs-12">
4314 <h2 class="modal-extensao_subtitle mt-4">Valor com 20% de desconto para alunos, ex-alunos e contribuintes Senac</h2>
4315 <span class="modal-extensao_preco">R$ <span class="precoContrExt"></span></span>
4316 <span class="modal-extensao_txteconomiza">Você economiza <b class="modal-extensao_txtverde">R$ <span class="economiaExt"></span> (-20%)</b></span>
4317 <div class="modal-extensao_ctboleto pt-2 pb-2 mb-3">
4318 <i class="fas fa-barcode" aria-hidden="true"></i>
4319 <span class="modal-extensao_txtPag">Boleto Bancário</span>
4320 <span class="modal-extensao_txtParcela"><b><span class="numParcelaBoleto"></span>x de R$ <span class="precoParcelaBoletoExt"></span></b></span>
4321 <span class="modal-extensao_txtParcela">sem juros</span>
4322 </div>
4323 <div class="modal-extensao_ctcard pt-2 pb-2 mb-3">
4324 <i class="far fa-credit-card" aria-hidden="true"></i>
4325 <span class="modal-extensao_txtPag">Cartão de Crédito</span>
4326 <span class="modal-extensao_txtParcela"><b><span class="numParcelaCartoes"></span>x de R$ <span class="precoParcelaCartoesExt"></span></b></span>
4327 <span class="modal-extensao_txtParcela">sem juros</span>
4328 </div>
4329 <p class="modal-extensao_txtParcela pt-5"><b>À vista:</b> R$ <span class="precoAVistaContrExt"></span> <span class="modal-extensao_txtporcent">(-8%)</span></p>
4330 </div>
4331 <div class="col-lg-6 col-sm-12 col-xs-12">
4332 <a target="_blank" href="#">
4333 <button class="btn modal-extensao__btn mt-3 text-uppercase">Comprar</button>
4334 </a>
4335 </div>
4336 <div class="col-lg-6 col-sm-12 col-xs-12">
4337 <button class="btn btn-primary modal-extensao-btn-conheca mt-3" >Conheça os descontos</button>
4338 </div>
4339 </div>
4340 </div>
4341
4342 <div class="modal-extensao_content modal-pergunta-aluno-ext d-none">
4343
4344 <i class="fal fa-times modal-extensao-voltar-icon" style="font-size:25px;"></i>
4345 <h1 class="modal-extensao-condicoes__title">Você é nosso aluno?</h1>
4346 <div class="row">
4347 <div class="col-6 text-right">
4348
4349 <button class="btn btn-primary modal-extensao-btn-aluno-sim-nao sim mt-3">Sim</button>
4350
4351 </div>
4352 <div class="col-6 text-left">
4353
4354 <button class="btn btn-primary modal-extensao-btn-aluno-sim-nao nao mt-3">Não</button>
4355
4356 </div>
4357 </div>
4358 <div class="row d-none msg-alunoSim">
4359 <div class="col-12 text-center mt-10">
4360 <i class="fas fa-check-circle modal-extensao-ico-check"></i>
4361 <h2 class="modal-extensao-condicoes__subtitle">Boa notícia!</h2>
4362 <p class="modal-extensao-aluno_txtcontent">Você tem 20% de desconto neste curso.<br> Faça seu login e preencha os dados solicitados.</p>
4363 <p class="mb-0">
4364 <a target="_blank" href="#">
4365 <button class="btn modal-extensao-aluno__btn ok mt-3">Fazer Inscrição</button>
4366 </a>
4367 </p>
4368 <p class="mt-0">
4369 <a href="https://www.sp.senac.br/descontos-e-parcelamentos/pos-e-extensao-universitaria">
4370 <button class="btn btn-primary modal-extensao-btn-conferir mt-3" id="btn-conferir-regras">Conferir Regras</button>
4371 </a>
4372 </p>
4373 </div>
4374 </div>
4375 <div class="row d-none msg-alunoNao">
4376 <div class="col-12 text-center mt-10">
4377 <i class="fas fa-percentage modal-extensao-ico-percent"></i>
4378 <h2 class="modal-extensao-condicoes__subtitle">Poxa! Não fique triste...</h2>
4379 <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>
4380 <p class="mb-0">
4381 <a target="_blank" href="#">
4382 <button class="btn modal-extensao-aluno__btn not mt-3">Fazer Inscrição</button>
4383 </a>
4384 </p>
4385 <p class="mt-0">
4386 <a href="https://www.sp.senac.br/descontos-e-parcelamentos/pos-e-extensao-universitaria">
4387 <button class="btn btn-primary modal-extensao-btn-conferir mt-3" id="btn-conferir-regras">Conferir Regras</button>
4388 </a>
4389 </p>
4390 </div>
4391 </div>
4392 </div>
4393 </section>
4394
4395
4396 <!-- Modal Descontos e Parcelamento EMED -->
4397 <div id="modalPagtoEmed" class="ssp-modal">
4398
4399 <div class="ssp-card-modal-forma-pagamento">
4400
4401 <div class="ssp-card-modal-forma-pagamento__header">
4402 <h6 class="ssp-card-modal-forma-pagamento__header-title font-weight-bold text-center" style="color:#454F63">Descontos e parcelamentos</h6>
4403 <div class="ssp-modal-emed-btfechar">
4404 <i class="ssp-card-modal-forma-pagamento__btn-close ssp-card-modal-forma-pagamento__btn-close_0"></i>
4405 <span>Fechar</span>
4406 </div>
4407 </div>
4408
4409 <div class="ssp-card-modal-forma-pagamento__body">
4410
4411 <p class="ssp-modal-emed-info-valor-matricula"><span class="ssp-modal-emed-info-txt-matricula">1ª parcela de R$ <span class="precoParcelaEmedModal">1.062,00</span> <span>+ <span class="numParcelaEmedModal">12</span> mensalidades de R$ <span class="precoParcelaEmedModal">1.062,00</span></span></p>
4412
4413 <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>
4414 <span class="ssp-card-modal-emed-ano">/ano</span></p>
4415
4416 <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>
4417 <div class="ssp-card-modal-emed-lineou"><span>ou</span></div>
4418
4419 <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>
4420
4421 <div class="ssp-card-modal-forma-pagamento__tipos">
4422
4423 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start ssp-card-modal-emed-centralizaPagtos" style="margin:0 auto" >
4424 <i class="ssp-card-modal-forma-pagamento__icon-boleto-cartao"></i>
4425 <div class="ssp-card-modal-forma-pagamento__info-cartao">
4426 <p><strong>Cartão de Crédito +</strong></p>
4427 <p><strong>Boleto Bancário</strong></p>
4428 <p>1ª parcela em <span>até 4x de R$ <span class="valorParcelaEntradaCartoesBoleto">265,50</span></span> sem juros no cartão</p>
4429 <p>Valor restante em <span>até <span class="numParcelaCartoesBoleto">12</span>x de <br>R$ <span class="precoParcelaCartoesBoleto">1.062,00</span></span> sem juros no boleto</p>
4430 </div>
4431 </div>
4432
4433
4434 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start ssp-card-modal-emed-centralizaPagtos" style="margin:0 auto" >
4435 <i class="ssp-card-modal-forma-pagamento__icon-credit-card"></i>
4436 <div class="ssp-card-modal-forma-pagamento__info-cartao">
4437 <p><strong>Cartão de Crédito</strong></p>
4438 <p>(<span class="textoCartoesAceitos">Mastercard, Visa, Elo, American Express, Hipercard</span>)</p>
4439 <p>Em até <span><span class="numParcelaCartoes">12</span>x de R$ <span class="precoParcelaCartoes">34,53</span></span> sem juros</p>
4440 </div>
4441 </div>
4442
4443 <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">
4444 <i class="ssp-card-modal-forma-pagamento__icon-boleto"></i>
4445 <div class="ssp-card-modal-forma-pagamento__info-cartao">
4446 <p><strong>Boleto Bancário</strong></p>
4447 <p>Em até <span><span class="numParcelaBoleto">12</span>x de R$ <span class="precoParcelaBoleto">34,53</span></span> sem juros</p>
4448 </div>
4449 </div>
4450
4451 <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>
4452
4453 <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>
4454 - Estuda ou estudou no Senac<br>
4455 - É dependente de quem trabalha em empresa contribuinte do Senac<br>
4456 - Estuda ou estudou na rede pública de ensino
4457 </p>
4458
4459 </div>
4460
4461 </div>
4462
4463
4464 <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>
4465
4466
4467
4468 </div>
4469 </div>
4470
4471 <#if isEMED>
4472 <div id="modalAntesCompraEmed" class="ssp-modal">
4473 <div class="ssp-modal-local-realizacao">
4474 <div class="ssp-modal-local-realizacao__title-content">
4475 <h6 class="ssp-modal-local-realizacao__title" style="padding-left:10%;">IMPORTANTE!</h6>
4476 <i class="ssp-card-modal-antes-compra__btn-close ssp-card-modal-forma-pagamento__btn-close"></i>
4477 </div>
4478 <div class="ssp-modal-local-realizacao__texto">
4479 <p class="texto-modal-emed">
4480
4481 Saiba como funciona a inscrição para compra:<br/><br/>
4482 - Esta inscrição é somente para quem deseja <b>comprar o curso</b><br/>
4483 - Sua inscrição é válida apenas no curso, turno e unidade escolhidos<br/>
4484 - Se a turma escolhida tiver vagas, você receberá um convite para <b>matrícula</b><br/>
4485 - Caso não tenha vagas disponíveis, você entrará para a <b>lista de espera</b>
4486
4487 </p>
4488 <div class="btn ssp-modal-local-realizacao__btn-content">
4489 <button class="btn btn-lg btn-success w-100 mt-3" offercode="" id="btnCompraLocalEmed">OK, desejo continuar</button>
4490 <a class="ssp-modal-local-realizacao__btn btn btn-lg w-100 mt-3 ssp-card-modal-selecionar-outro__btn-close" href="#a">Voltar</a>
4491 </div>
4492 </div>
4493 </div>
4494 </div>
4495 </#if>
4496
4497
4498
4499 <script>
4500 let showedFilters = false
4501 var groupId = themeDisplay.getScopeGroupId();
4502
4503 var urlSearchCursosPorCategory = '/o/senac-curso-services/cursosPorCategoryIds/{groupId}?categoryIds={categoryId}&start=0&end={limit}';
4504
4505 var urlSearchOferta = '/o/senac-oferta-services/ofertasPorCategoryIds/' + groupId
4506
4507 var urlSearchUnidade = '/o/senacsearch/Unidade/{companyId}/{groupId}/{userId}?q=codigoUnidade_pt_BR:{codigoUnidade}';
4508 var urlUnidadeInfoDetalhe = '/o/senac-content-services/unidadeInfoDetalhe/{companyId}/{codigoUnidade}';
4509 var urlSearchCursosPodeGostar = '/o/senac-content-services/cursosVocePodeGostar/{companyId}/{groupId}/{userId}/{articleId}/{limit}';
4510 var urlSearchCursoInfo = '/o/senac-content-services/cursosInfoDetalhe/{groupId}/{cursosInfo}?inscricaoAberta={inscricaoAberta}&bolsaAberta={bolsaAberta}';
4511 var urlRegistroInteresse = '/o/senac-content-services/registroInteresse/';
4512 var urlRegistroInteresseEmailInteressado = '/o/senac-content-services/envioEmailRegistroInteresse/';
4513 var cntSelectUnidades = 1;
4514 var urlPlanoCurso = 'https://www.sp.senac.br/jsp/includeMatdid.jsp?file=/ha1shared/projects/matdid/{codigoFT}-{dataEfetiva}.html';
4515 var urlGetServerT = '/o/senac-content-services/getServerTime';
4516 var urlSearchCursosPodeGostarEmed = '/o/senac-curso-services/cursosPorCategoryIdsFilterAndOr/{groupId}/?categoryIdsOr={tiposDeCurso}&start=0&end={limit}&articleId={articleId}';
4517 var todayG = '';
4518 var codigoFTCursoAprendizagem = 18984;
4519 var globalGroupId = Liferay.ThemeDisplay.getCompanyGroupId();
4520 var isAoVivo = 0;
4521 var nomeFormatoAoVivoDxp = 'Senac Online - ao vivo';
4522 var ofertaUnidadeMap = new Map();
4523 var ultimaUnidade = 0;
4524 var regIndex = new RegExp('\{index\}', 'g');
4525 var linkBotaoCompra = 'http://www.sp.senac.br/login/Login?destino=/ecommerceFrontEnd/?vcw_unidade={codigoUnidade}&vcw_evento={codigoOferta}';
4526 var carregouUltimaOferta = false;
4527 var ofertasMap = new Map();
4528 var codUnidadeSenacAoVivo = '108';
4529 var ofertasComBolsa = false;
4530
4531
4532 //funcao para pegar host do ambiente, se eh teste ou prod (utilizado no servico da bolsa)- 9546
4533 function getServiceEnvironmentHost(){
4534 if(!isAmbienteTeste())
4535 return window.location.origin
4536 else
4537 return 'https://gesportal.sp.senac.br'
4538 }
4539
4540 var hostBolsa = getServiceEnvironmentHost()
4541
4542
4543 // Montar object push - google tag manager - 1
4544 let itensEcommerce = null;
4545 let ofertaSelecionada = null;
4546
4547 const today = new Date;
4548
4549 var anoTurmaEmed = '2024';
4550
4551 // A Pedido da GCR, Essa variável não está sendo considerada na página,
4552 // todas as ofertas serão apresentadas
4553 var dataInscricoesEmed = new Date('2022-08-22')
4554
4555
4556 //categoryId -> cod unidade
4557 var mapUnidadesIds = new Map();
4558 var objsTela = {
4559 unidades: [],
4560 unidadesRegistroInteresse: [],
4561 categoriesIds:[],
4562 ofertasAoVivoTodasUnidades: [],
4563 primeiroChange: true
4564 };
4565 var startOfertaParam = 0;
4566 var endOfertaParam = 16;
4567
4568 var ehCursoTrampolim = false;
4569
4570 const HOST = window.location.origin;
4571 const URLGeral = window.location.href;
4572
4573 //EMED
4574 const tipoCursoNome = function(){ return $('.ssp-header-curso__tag-formato').text().trim(); }
4575
4576 const isEmed = (tipoCursoNome().indexOf('Ensino Médio Técnico') > -1);
4577
4578 const statusEmed = Object.freeze({
4579 INSCRICAO: 1,
4580 ESPERA: 2,
4581 ESGOTADO: 3
4582 });
4583
4584 let unidadesToURL = []
4585
4586 const localLivreOnline = function(textoLocal){
4587 textoLocal = textoLocal || ''
4588 textoLocal = textoLocal.replaceAll('online', 'on-line')
4589
4590 const textoOnline = 'Nesta turma, todas as aulas serão on-line e ao vivo pela plataforma digital Microsoft Teams';
4591
4592 return textoLocal.toUpperCase().includes(textoOnline.toUpperCase());
4593 }
4594
4595 const linkBolsa = function(oferta){
4596
4597 let tiposCurso = new Map();
4598 tiposCurso.set('livre', 'L');
4599 tiposCurso.set('tecnico', 'T');
4600 tiposCurso.set('aprendizagem', 'A');
4601 let letraTipoCurso = tiposCurso.get($('[name="tipoCurso"]').val()) || '';
4602
4603 // verifica o campo destinoBolsa da oferta - 9546
4604 var destinoBolsa = ""
4605 if(oferta.destinoBolsa){
4606 destinoBolsa = parseInt(oferta.destinoBolsa,10)
4607 }
4608
4609 if(destinoBolsa == "1"){
4610 return hostBolsa+'/login/Login?origem=bolsas&destino=/jsp/default.jsp?template=2464.dwt&testeira=1540&idcourse='+
4611 $('[name="codigoFT"]').val()+
4612 '&cod_evento='+
4613 oferta.codigoOferta+
4614 '&cod_u='+
4615 codigoUnidade+
4616 '&nvg='+
4617 oferta.qtdeTotalVagasPSG+
4618 '&type='+
4619 letraTipoCurso+
4620 '&sel_unit=&ft=y'+
4621 (destinoBolsa ? '&DESTINO_BOLSA='+destinoBolsa : '');
4622
4623 } else if(destinoBolsa == "2"){
4624
4625 if (isAmbienteTeste()) {
4626 return hostBolsa+'/login/Login?destino=http://hom-inscricao-bolsa.cloud.sp.senac.br/?'+
4627 'idcurso='+oferta.codigoOferta;
4628 }else{
4629 return hostBolsa+'/login/Login?destino=https://inscricao-bolsa.sp.senac.br/?'+
4630 'idcurso='+oferta.codigoOferta;
4631 }
4632 }
4633
4634
4635 }
4636
4637 $('.ssp-ofertas-emed__filtro-content .btn').on('click', function(){
4638
4639 var classAtivo = 'btn--filtro-ativo';
4640
4641 if(!$(this).hasClass(classAtivo)){
4642
4643 $(this).siblings().removeClass(classAtivo);
4644
4645 $(this).addClass(classAtivo);
4646
4647 populaOfertas(objsTela.ofertas);
4648
4649 }
4650
4651 });
4652
4653 //Cronometro
4654 var hidden, visibilityChange;
4655 var restartTimeout = null;
4656 var interval01, interval15;
4657
4658 if (typeof document.hidden !== "undefined") { // Opera 12.10 and Firefox 18 and later support
4659 hidden = "hidden";
4660 visibilityChange = "visibilitychange";
4661 } else if (typeof document.msHidden !== "undefined") {
4662 hidden = "msHidden";
4663 visibilityChange = "msvisibilitychange";
4664 } else if (typeof document.webkitHidden !== "undefined") {
4665 hidden = "webkitHidden";
4666 visibilityChange = "webkitvisibilitychange";
4667 }
4668
4669 // Verifica suporte a Visibility API
4670 if (typeof document.addEventListener === "undefined" || hidden === undefined) {
4671 console.log("Navegador incompativel com page visibility api");
4672 } else {
4673 // Evento para quando a visibilidade da pagina mudar
4674 document.addEventListener(visibilityChange, handleVisibilityChange, false);
4675 }
4676
4677 $(".ssp-saiba-mais-curso-accordion").on("click", ".ssp-saiba-mais-curso-accordion__heading", function() {
4678
4679 $(this).toggleClass("active").next().slideToggle();
4680
4681 $(".sp-saiba-mais-curso-accordion__contents").not($(this).next()).slideUp(300);
4682
4683 $(this).siblings().removeClass("active");
4684 });
4685
4686 function loadUnidadesRegistroInteresse(urlCursoInfo) {
4687 if(objsTela.unidadesRegistroInteresse && objsTela.unidadesRegistroInteresse.length)
4688 return
4689
4690 let urlUnidades = new URL(window.location.origin + urlCursoInfo)
4691 let paramsUnidades = new URLSearchParams(urlUnidades.search)
4692 paramsUnidades.delete('inscricaoAberta')
4693 paramsUnidades.delete('bolsaAberta')
4694 urlUnidades.search = '?' + paramsUnidades.toString()
4695 urlUnidades = urlUnidades.href
4696
4697 $.ajax({
4698 url: urlUnidades,
4699 method:'get',
4700 async: false
4701 }).done(function(data){
4702 if(data.length > 0){
4703 const cursoInfo = JSON.parse(data);
4704 const unidadesOfertantes = cursoInfo.unidadesOfertantes;
4705
4706 $.each(unidadesOfertantes, function(k,item){
4707 var unidade = {};
4708 unidade['categoryId'] = item['categoryId'];
4709 unidade['codigoUnidade'] = item['codigoUnidade'];
4710 unidade['nome'] = item['nomeUnidade'];
4711 unidade['enderecoUnidade'] =item['enderecoUnidade'];
4712 unidade['numero'] =item['numEnderecoUnidade'];
4713 unidade['complemento'] = item['complementoEnderecoUnidade'];
4714 unidade['bairro'] = item['bairroUnidade'];
4715 unidade['googlemapsUnidade'] = item['googlemapsUnidade'];
4716 unidade['friendlyURL'] = item['friendlyURL'];
4717 unidade['selecionado'] = false;
4718 unidade['selectSelecionado'] = "";
4719 unidade['ofertas'] = [];
4720
4721 if(!objsTela.unidadesRegistroInteresse.filter(uni => uni['categoryId'] == unidade['categoryId']).length)
4722 objsTela.unidadesRegistroInteresse.push(unidade)
4723 });
4724 }
4725 });
4726 }
4727
4728 function loadUnidades(showOptions, unidadeValue){
4729 //Busca as unidades do curso
4730
4731 const urlCursoInfo = urlSearchCursoInfo
4732 .replace('\{groupId\}', groupId)
4733 .replace('\{cursosInfo\}', $('[name="articleId"]').val())
4734 .replace('\{inscricaoAberta\}', $('#chkInscricao').prop('checked'))
4735 .replace('\{bolsaAberta\}', $('#chkBolsa').prop('checked'));
4736
4737 loadUnidadesRegistroInteresse(urlCursoInfo)
4738
4739 $.ajax({
4740 url:urlCursoInfo,
4741 method:'get',
4742 async: false,
4743 beforeSend: function () {
4744 loading('.oferta-slick-area');
4745 }
4746 }).done(
4747 function(data){
4748
4749 if(data.length > 0){
4750
4751 if(!isAoVivo)
4752 $('.ssp-container-selecione-unidade').removeClass('d-none')
4753
4754 const cursoInfo = JSON.parse(data);
4755
4756
4757 //GCR pediu para voltarmos no combo as unidades vinculadas e não somente as que possuem ofertas
4758 //const unidades = cursoInfo.unidadesComOferta;
4759 const unidades = cursoInfo.unidadesOfertantes;
4760
4761 objsTela.unidades = []
4762 mapUnidadesIds = new Map();
4763
4764 $.each(unidades, function(k,item){
4765
4766 var unidade = cloneObj(item)
4767 unidade['nome'] = item['nomeUnidade'];
4768 unidade['numero'] =item['numEnderecoUnidade'];
4769 unidade['complemento'] = item['complementoEnderecoUnidade'];
4770 unidade['bairro'] = item['bairroUnidade'];
4771 unidade['ofertas'] = [];
4772
4773 objsTela.unidades.push(unidade);
4774
4775 mapUnidadesIds.set(unidade['categoryId'], unidade['codigoUnidade']);
4776
4777 objsTela.unidades.forEach(unidade => unidadesToURL.filter(u => u.friendlyURL == unidade.friendlyURL).length ? '' : unidadesToURL.push(unidade))
4778 });
4779
4780 populaSelectUnidades(undefined, showOptions, unidadeValue);
4781
4782 }
4783 });
4784
4785 }
4786
4787function getOfertaObjectFromJson(ofertaJSON,index){
4788
4789
4790 var oferta = {};
4791 var xml = $($.parseXML(ofertaJSON.content));
4792 oferta['ordenar'] = paramOrdem(xml);
4793 oferta['vagasTotal'] = xml.find('[name="vagasTotal"]').text().trim();
4794 var dataInicio = xml.find('[name="dataInicioOferta"]').text().split('-');
4795 var dataFim =xml.find('[name="dataFimOferta"]').text().split('-');
4796 oferta['dataInicio'] = dataInicio[2].trim()+'/'+dataInicio[1].trim()+'/'+dataInicio[0].trim();
4797 oferta['dataFim'] = dataFim[2].trim()+'/'+dataFim[1].trim()+'/'+dataFim[0].trim();
4798 oferta['horaInicio'] = xml.find('[name="horaInicioOferta"]').text();
4799 oferta['codigoOferta'] = xml.find('[name="codigoOferta"]').text().trim();
4800 var dias = [];
4801 oferta['horaFimOferta'] = xml.find('[name="horaFimOferta"]').text().trim();
4802 xml.find('[name="diasDaSemanaOferta"]').find('option').each(function(index,dia){
4803 dias.push($(dia).text());
4804 });
4805 oferta['diasDaSemanaOferta'] = dias;
4806 oferta['periodoDiaOferta'] = xml.find('[name="periodoDiaOferta"]').text().trim();
4807 oferta['precoCheioOferta'] = xml.find('[name="precoCheioOferta"]').text().trim();
4808 oferta['precoVendaOferta'] = xml.find('[name="precoVendaOferta"]').text().trim();
4809 oferta['numeroMaxParcelasOferta'] = xml.find('[name="numeroMaxParcelasOferta"]').text().trim();
4810
4811 oferta['textoCartoesAceitos'] = pegarTextoCartoesAceitos(xml.find('[name="formaDePagamentoCartaoOferta"]').text().trim());
4812 oferta['numParcelaCartoes'] = pegaNumParcela(xml.find('[name="formaDePagamentoCartaoOferta"]').text().trim());
4813 oferta['precoParcelaCartoes'] = pegaValorParcela(xml.find('[name="formaDePagamentoCartaoOferta"]').text().trim());
4814 oferta['numParcelaBoleto'] = pegaNumParcela(xml.find('[name="formaDePagamentoBoletoOferta"]').text().trim());
4815 oferta['precoParcelaBoleto'] = pegaValorParcela(xml.find('[name="formaDePagamentoBoletoOferta"]').text().trim());
4816
4817 oferta['precoVendaMaxParcelaOferta'] = xml.find('[name="precoVendaMaxParcelaOferta"]').text().trim();
4818 oferta['formaDePagamentoOferta'] = xml.find('[name="formaDePagamentoOferta"]').text().trim();
4819 oferta['botaoCompraOferta'] = xml.find('[name="botaoCompraOferta"]').text().trim();
4820 oferta['vagasParaCompraOferta'] = xml.find('[name="vagasParaCompraOferta"]').text().trim();
4821 oferta['botaoBolsaOferta'] = xml.find('[name="botaoBolsaOferta"]').text().trim();
4822 oferta['vagasBolsaOferta'] = xml.find('[name="vagasBolsaOferta"]').text().trim();
4823 oferta['dataAberturaBolsaOferta'] = xml.find('[name="dataAberturaBolsaOferta"]').text().trim();
4824 oferta['horaAberturaBolsaOferta'] = xml.find('[name="horaAberturaBolsaOferta"]').text().trim();
4825 oferta['espacoExterno'] = xml.find('[name="espacoExterno"]').text().trim();
4826 oferta['localEspacoExterno'] = xml.find('[name="localEspacoExterno"]').text().trim();
4827 oferta['ruaEspacoExterno'] = xml.find('[name="ruaEspacoExterno"]').text().trim();
4828 oferta['numeroEspacoExterno'] = xml.find('[name="numeroEspacoExterno"]').text().trim();
4829 oferta['complementoEspacoExterno'] = xml.find('[name="complementoEspacoExterno"]').text().trim();
4830 oferta['bairroEspacoExterno'] = xml.find('[name="bairroEspacoExterno"]').text().trim();
4831 oferta['cidadeEspacoExterno'] = xml.find('[name="cidadeEspacoExterno"]').text().trim();
4832 oferta['ufEspacoExterno'] = xml.find('[name="ufEspacoExterno"]').text().trim();
4833 oferta['cepEspacoExterno'] = xml.find('[name="cepEspacoExterno"]').text().trim();
4834 oferta['qtdeTotalVagas'] = xml.find('[name="qtdeTotalVagas"]').text().trim();
4835 oferta['qtdeTotalVagasPSG'] = xml.find('[name="qtdeTotalVagasPSG"]').text().trim();
4836 oferta['horariosAllOferta'] = xml.find('[name="horariosAllOferta"]').text().trim();
4837 oferta['formaDePagamentoCartaoOferta'] = xml.find('[name="formaDePagamentoCartaoOferta"]').text().trim();
4838 oferta['formaDePagamentoBoletoOferta'] = xml.find('[name="formaDePagamentoBoletoOferta"]').text().trim();
4839 oferta['dtLimiteMatricula'] = xml.find('[name="dtLimiteMatricula"]').text().trim();
4840 oferta['dataAberturaMatricula'] = xml.find('[name="dataAberturaMatricula"]').text().trim();
4841 oferta['etapa'] = xml.find('[name="etapa"]').text().trim();
4842 oferta['destinoCompra'] = xml.find('[name="destinoCompra"]').text().trim();
4843 //adicao do destinoBolsa na oferta - 9546 - 11/07/2022
4844 oferta['destinoBolsa'] = xml.find('[name="destinoBolsa"]').text().trim();
4845
4846 if(isEmed){
4847 //EMED utilizar data matricula para bolsa
4848 oferta['dataAberturaBolsaOferta'] = oferta['dataAberturaMatricula'];
4849
4850 }
4851
4852 return oferta;
4853 }
4854
4855 const getStatusEmed = (oferta, index, elementoPai, callbackStatus) => {
4856
4857 const urlStatusEsperaEmed = () => {
4858 let url = (isAmbienteTeste()) ?
4859 'https://hinscricao-educacional-backend.sp.senac.br/api/lista-espera/'+oferta.codigoOferta
4860 : 'https://inscricao-educacional-ms.sp.senac.br/api/lista-espera/'+oferta.codigoOferta;
4861
4862 return url;
4863 }
4864
4865 const callTl = async () => {
4866 if(getCookie('tl') == null){
4867 return await $.ajax({
4868 url: '/o/senac-content-services/geraTokenServicosSenac',
4869 method: 'GET'
4870 });
4871 }
4872 return getCookie('tl');
4873 }
4874
4875 const callListaEspera = async () => {
4876 var tl = '';
4877 try{
4878 tl = await callTl();
4879 if(getCookie('tl') == null){
4880 tl = JSON.parse(tl).token;
4881 writeCookie('tl', tl, 6, '');
4882 }
4883 }catch(err){
4884 console.error(err);
4885 return {};
4886 }
4887
4888 $.ajax({
4889 url: urlStatusEsperaEmed(),
4890 method: 'GET',
4891 beforeSend: function (xhr) {
4892 xhr.setRequestHeader("Authorization", tl);
4893 }
4894 })
4895 .done(status => {
4896 try{
4897 status = JSON.parse(status);
4898 if(status.OFERTA_ENCONTRADA == '1'){
4899 oferta['permiteListaEspera'] = status.STATUS;
4900 }
4901 }catch(err){
4902 if(typeof status === 'object' && status){
4903 oferta['permiteListaEspera'] = status.STATUS;
4904 }
4905
4906 console.error(err);
4907 }
4908 callbackStatus();
4909 })
4910 .fail((err)=>{
4911 console.error(err);
4912 callbackStatus();
4913 });
4914 }
4915
4916 callListaEspera();
4917
4918 }
4919
4920 function getOfertasAoVivo(codigoFT, dataEfetivaOferta, categoryIds){
4921
4922 if(categoryIds && categoryIds.length) {
4923 var params = new URLSearchParams();
4924 params.set('codigoFTOferta',codigoFT)
4925 params.set('dataEfetivaOferta',dataEfetivaOferta)
4926 params.set('categoryIds',categoryIds)
4927 params.set('start',startOfertaParam)
4928 params.set('end',endOfertaParam)
4929 params.set('inscricaoAberta', $('#chkInscricao').prop('checked'))
4930 params.set('bolsaAberta', $('#chkBolsa').prop('checked'))
4931 params.set('cursoArticleId', $('[name="articleId"]').val() || '');
4932
4933 if($('#chkBolsa').prop('checked')){
4934 params.set('considerarDataBolsaFutura', true)
4935 }
4936 const url = urlSearchOferta + '?' + params.toString()
4937
4938 $.ajax({
4939 url:url,
4940 method:'get',
4941 dataType:'json',
4942 async: false
4943 }).done(
4944 function(data){
4945
4946 if(data.length > 0){
4947 $('#ssp-alternadores').show()
4948 showedFilters = true
4949
4950 objsTela.ofertasAoVivoTodasUnidades = []
4951
4952 data.forEach(function(ofertaJSON,index){
4953
4954 var oferta = getOfertaObjectFromJson(ofertaJSON,index);
4955
4956 //guardo em um map a oferta e qual unidade é, para utilizar depois no populaOferta para o aoVivo
4957 ofertaUnidadeMap.set(oferta['codigoOferta'],mapUnidadesIds.get(parseInt(ofertaJSON.unidadeCategoryIds)));
4958 objsTela.ofertasAoVivoTodasUnidades.push(oferta);
4959
4960 });
4961 } else {
4962 loadAlternadores(data)
4963 }
4964
4965 populaOfertas(objsTela.ofertasAoVivoTodasUnidades);
4966 addEventBolsa()
4967 }
4968 ).fail(function(e) {
4969 console.error(e)
4970 populaOfertas(objsTela.ofertasAoVivoTodasUnidades = []);
4971 })
4972 } else {
4973 loadAlternadores([])
4974 populaOfertas(objsTela.ofertasAoVivoTodasUnidades = [])
4975 }
4976
4977 if(isAoVivo) {
4978 if(objsTela.ofertasAoVivoTodasUnidades && objsTela.ofertasAoVivoTodasUnidades.length)
4979 hideCardSemTurmas(true)
4980 else
4981 hideCardSemTurmas(false)
4982 }
4983 }
4984
4985 function mudouToggleOferta(ofertas) {
4986 const oferta = ofertas && ofertas[0]
4987 if(!oferta)
4988 return true
4989
4990 const selecaoInscricao = $('#chkInscricao').prop('checked')
4991 const selecaoBolsa = $('#chkBolsa').prop('checked')
4992
4993 return oferta.selecaoInscricao != selecaoInscricao || oferta.selecaoBolsa != selecaoBolsa
4994 }
4995
4996 function loadAlternadores(ofertas) {
4997 if(showedFilters) {
4998 $('#ssp-alternadores').show()
4999 return
5000 }
5001
5002 if($('#unidades-ofertas').is(":hidden") || $('#unidades-ofertas option').length <= 1) {
5003 if(isAoVivo) {
5004 if(ofertas && ofertas.length)
5005 $('#ssp-alternadores').show()
5006 else {
5007 if(!$('#chkInscricao').prop('checked') && !$('#chkBolsa').prop('checked'))
5008 $('#ssp-alternadores').hide()
5009 else
5010 $('#ssp-alternadores').show()
5011 }
5012 } else {
5013 if(!$('#chkInscricao').prop('checked') && !$('#chkBolsa').prop('checked'))
5014 $('#ssp-alternadores').hide()
5015 else
5016 $('#ssp-alternadores').show()
5017 }
5018 } else
5019 $('#ssp-alternadores').show()
5020
5021 showedFilters = showedFilters || $('#ssp-alternadores').is(":visible")
5022 }
5023
5024 function getOfertas(codigoFT, dataEfetivaOferta, categoryId){
5025
5026 var indiceUnidade = -1;
5027 const selecaoInscricao = $('#chkInscricao').prop('checked')
5028 const selecaoBolsa = $('#chkBolsa').prop('checked')
5029
5030 for(var i = 0; i < objsTela.unidades.length; i++)
5031 if(objsTela.unidades[i].categoryId == categoryId)
5032 indiceUnidade = i;
5033
5034 ultimaUnidade = indiceUnidade;
5035
5036 if( !objsTela.categoriesIds.includes(categoryId) || mudouToggleOferta(objsTela.unidades[indiceUnidade]['ofertas'])){
5037 objsTela.unidades[indiceUnidade]['ofertas'] = []
5038
5039 var params = new URLSearchParams();
5040 params.set('codigoFTOferta',codigoFT)
5041 params.set('dataEfetivaOferta',dataEfetivaOferta)
5042 params.set('categoryIds',categoryId)
5043 params.set('start',startOfertaParam)
5044 params.set('end',endOfertaParam)
5045 params.set('inscricaoAberta', $('#chkInscricao').prop('checked'))
5046 params.set('bolsaAberta', $('#chkBolsa').prop('checked'))
5047 params.set('cursoArticleId', $('[name="articleId"]').val() || '');
5048
5049 if($('#chkBolsa').prop('checked')){
5050 params.set('considerarDataBolsaFutura', true)
5051 }
5052
5053 const url = urlSearchOferta + '?' + params.toString()
5054
5055 $.ajax({
5056 url:url,
5057 method:'get',
5058 dataType:'json',
5059 async: false
5060 }).done(
5061 function(data){
5062
5063 if(data.length > 0){
5064 $('#ssp-alternadores').show()
5065 showedFilters = true
5066
5067 $('.ssp-container-selecione-unidade').show();
5068
5069 data.forEach(function(ofertaJSON,index){
5070
5071 var oferta = getOfertaObjectFromJson(ofertaJSON,index);
5072
5073 //Preenche as ofertas da unidade
5074 objsTela.unidades[indiceUnidade]['ofertas'].push(oferta);
5075 objsTela.unidades[indiceUnidade]['ofertas'].forEach(o => {
5076 o.selecaoInscricao = selecaoInscricao
5077 o.selecaoBolsa = selecaoBolsa
5078 })
5079
5080 });
5081 } else {
5082 loadAlternadores()
5083 }
5084 objsTela.categoriesIds.push(categoryId);
5085 populaOfertas(objsTela.unidades[indiceUnidade]['ofertas']);
5086 addEventBolsa()
5087 }
5088 )
5089
5090 //Se estiver na cache, valida as ofertas
5091 }else{
5092
5093 populaOfertas(objsTela.unidades[indiceUnidade]['ofertas']);
5094
5095 }
5096 }
5097
5098 function populaSelectUnidades(unidades, showOptions, unidadeValue){
5099 var unidadePreSelecionada = false;
5100 var categoryIdUnidadePreSelecionada = '';
5101
5102 //Oredenacao
5103 objsTela.unidades.sort(function (a, b) {
5104 return ordenar(a, b, 'nome');
5105 });
5106
5107 objsTela.unidadesRegistroInteresse.sort(function (a, b) {
5108 return ordenar(a, b, 'nome');
5109 });
5110
5111 //console.log(objsTela.unidades);
5112
5113 $.each(objsTela.unidades, function(k,item){
5114
5115 if(getURLData().includes('/'+item.friendlyURL+'/')){
5116 unidadePreSelecionada= true;
5117 categoryIdUnidadePreSelecionada = item['categoryId'];
5118 }
5119 });
5120
5121 //console.log('Unidade Pre '+unidadePreSelecionada);
5122
5123 if(objsTela.unidades.length == 0){
5124 if(!showOptions)
5125 $('.ssp-container-selecione-unidade').addClass('d-none');
5126 $('.oferta-slick-area').empty();
5127 $('.prev-mobile').addClass('d-none');
5128 $('.next-mobile').addClass('d-none');
5129 //EMED remove msg registro interesse
5130 if(isEmed) $('.ssp-card-oferta-curso__sem-vaga-description').addClass('d-none');
5131 }
5132
5133 if(isAoVivo){
5134
5135 const codigoFT = $('[name="codigoFT"]').val();
5136 const dataEfetivaOferta = $('[name="dataEfetivaSTR"]').val();
5137
5138 var unidadesCategoryAll = '';
5139
5140 $.each(objsTela.unidades, function(k,unidade){
5141 unidadesCategoryAll += unidade['categoryId']+',';
5142 });
5143
5144 //tirando ultima virgula
5145 unidadesCategoryAll = unidadesCategoryAll.substring(0,unidadesCategoryAll.length - 1);
5146
5147 getOfertasAoVivo(codigoFT, dataEfetivaOferta, unidadesCategoryAll);
5148
5149 }else{
5150 $('#unidades-ofertas').empty()
5151
5152 if(objsTela.unidades && objsTela.unidades.length){
5153 if(isEmed)
5154 $('#unidades-ofertas').append($('<option value="">Selecione uma unidade</option>'))
5155 else
5156 $('#unidades-ofertas').append($('<option value="">Clique na unidade de interesse</option>'))
5157
5158 } else
5159 $('#unidades-ofertas').append($('<option value="">Nenhum resultado encontrado</option>'))
5160
5161 let unidadeFounded = criarOptionUnidadesPorRegiao(objsTela.unidades)
5162
5163 //Dispara o evento para primeira unidade ou pela friendlyURl da unidade
5164 if(unidadeValue) {
5165 $('#unidades-ofertas').val(unidadeValue);
5166 $('#unidades-ofertas').change();
5167 } else if(unidadeFounded){
5168 $('#unidades-ofertas').val(unidadeFounded['categoryId']+"@"+unidadeFounded['codigoUnidade']);
5169 $('#unidades-ofertas').change();
5170 } else if(!unidadePreSelecionada) {
5171 $('#unidades-ofertas').change();
5172 }
5173
5174 $('.ssp-card-registro-interesse__select.unidades').empty()
5175 $('.ssp-card-registro-interesse__select.unidades').append('<option value="" disabled selected>Selecione uma unidade</option>')
5176 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
5177
5178 $('.ssp-card-registro-interesse__select.unidades').append('<option value="'+unidade['codigoUnidade']+'">'+unidade['nome']+'</option>');
5179 });
5180 }
5181
5182 }
5183
5184 function mudarUnidade(ev){
5185 startOfertaParam = 0;
5186 endOfertaParam = 16;
5187 carregouUltimaOferta = false;
5188
5189 var elem = $(ev.target);
5190 var unidades = objsTela.unidades;
5191
5192 //verifica se selecionou alguma unidade
5193 if(!elem.val()){
5194 $('#informe-novas-turmas, .ssp-ofertas-emed__section, .ssp-ofertas__box-endereco-unidade').addClass('d-none');
5195
5196 if(isEmed)
5197 $('#ssp-section-response').addClass('d-none')
5198
5199 if($('#unidades-ofertas option').length <= 1)
5200 hideCardSemTurmas(false)
5201 else
5202 hideCardSemTurmas(true)
5203
5204 elem.val('')
5205 habilitarRegistroInteresse(false)
5206 //Zera variável que controla existência de ofertas com bolsa
5207 ofertasComBolsa = false;
5208 controlaPaginaBolsa();
5209
5210 return;
5211 }
5212
5213 $('#informe-novas-turmas, .ssp-ofertas__box-endereco-unidade').removeClass('d-none');
5214 hideCardSemTurmas(true)
5215 if(isEmed){
5216 $('.ssp-ofertas-emed__section').removeClass('d-none');
5217 $('#ssp-section-response').removeClass('d-none')
5218 $('.ssp-card-oferta-curso__section-title').addClass('d-none');
5219 $('.prev-mobile, .next-mobile').addClass('d-none');
5220 var nomeUnidade = $('#unidades-ofertas option:selected').text();
5221 let tamScreen = $(window).width();
5222
5223 if(tamScreen < 1024)
5224 $('#titulo-emed').text('Turmas ' + anoTurmaEmed);
5225 else
5226 $('#titulo-emed').text('Turmas ' + anoTurmaEmed + ' - ' + nomeUnidade);
5227 }
5228
5229 const codigoFT = $('[name="codigoFT"]').val();
5230 const dataEfetivaOferta = $('[name="dataEfetivaSTR"]').val();
5231
5232 //colocamos dentro do option categoryId@codUnidade
5233 splitted = elem.val().split("@");
5234 var categoryIdUnidade = splitted[0];
5235 var codUnidade = splitted[1];
5236
5237 for(var i = 0; unidades.length > i ; i++){
5238
5239 if(unidades[i].categoryId == categoryIdUnidade){
5240
5241 var unidade = unidades[i];
5242
5243 //Exibe o endereco da unidade
5244 const urlBuscaUnidade = urlUnidadeInfoDetalhe
5245 .replace('\{companyId\}',themeDisplay.getCompanyId())
5246 .replace('\{codigoUnidade\}', unidade.codigoUnidade);
5247
5248 $.ajax({
5249 url : urlBuscaUnidade,
5250 type : 'get',
5251 dataType: 'json',
5252 success: function( unidadeInfo ) {
5253 if(unidadeInfo != null && typeof unidadeInfo !== 'undefined'){
5254
5255 var endereco = concatSTR(unidadeInfo.enderecoUnidade,unidadeInfo.numEnderecoUnidade,', ');
5256 endereco = concatSTR(endereco,unidadeInfo.complementoEnderecoUnidade, ' - ');
5257 endereco = concatSTR(endereco,unidadeInfo.bairroUnidade, ' - ');
5258
5259 $('.ssp-ofertas__endereco-unidade').text(endereco);
5260 $('.ssp-ofertas__endereco-unidade').attr('href',unidadeInfo.googlemapsUnidade);
5261 }
5262 },
5263 error: function(data){
5264 $('.ssp-ofertas__endereco-unidade').text('');
5265 $('.ssp-ofertas__endereco-unidade').attr('href','#a');
5266 console.log('Unidade não encontrada');
5267 }
5268 })
5269
5270 getOfertas(codigoFT, dataEfetivaOferta, unidades[i].categoryId);
5271
5272 habilitarRegistroInteresse(!!(unidades && unidades.length));
5273
5274 }
5275 }
5276 }
5277
5278 function pegarTextoCartoesAceitos(campo){
5279 indice = campo.indexOf(' em até ');
5280 inicio = 0;
5281 fim = indice;
5282
5283 return campo.substring(inicio, fim);
5284 }
5285
5286 function pegaNumParcela(campo){
5287
5288 indice = campo.indexOf('até ');
5289 inicio = indice + 4;
5290 fim = indice + 6;
5291
5292 return campo.substring(inicio, fim);
5293
5294 }
5295
5296 function pegaValorParcela(campo){
5297
5298 indice = campo.indexOf('R$');
5299 inicio = indice+2;
5300 valorAmericano = campo.substring(inicio)
5301
5302 return formataValor(valorAmericano);
5303
5304 }
5305
5306 function montaHTMLOferta(oferta, index, codigoUnidade, posLoad){
5307
5308 var retornoDiasHorarios = processaDiasHorariosOferta(oferta.horariosAllOferta);
5309 diasSemanaHTML = "";
5310
5311 for(var diaDaOferta of retornoDiasHorarios){
5312 diasSemanaHTML += htmlSlickAreaDiasSemana.replace('\{diasSemana\}',diaDaOferta.dias);
5313 diasSemanaHTML = diasSemanaHTML.replace('\{horasSemana\}',diaDaOferta.horario)
5314 }
5315
5316 var ofertaHTML = "";
5317
5318 if(isEmed){
5319
5320 ofertaHTML = htmlSlickAreaEmed(oferta);
5321 $('[name="codUnidadeSelecionada"]').val(codigoUnidade);
5322
5323 if(!posLoad) $('.ssp-slick-ofertas-emed').append(ofertaHTML)
5324 else $('.ssp-slick-ofertas-emed').slick('slickAdd', ofertaHTML);
5325 }else{
5326
5327
5328 ofertaHTML = htmlSlickArea(index, oferta, diasSemanaHTML, codigoUnidade)
5329
5330 if(!posLoad)
5331 $('.oferta-slick-area').append(ofertaHTML);
5332 else
5333 $('.oferta-slick-area').slick('slickAdd', ofertaHTML);
5334
5335 ajustaTextoDiasHorarioOferta(oferta.codigoOferta);
5336
5337 }
5338
5339 if(turmasIniciadas(oferta.dataInicio))
5340 $("#aviso-turma-iniciada-"+index).show();
5341
5342 //remove os botões/itens de compra/bolsa caso seja preciso
5343 $('.oferta-slick-area').find('.d-none-btn').remove();
5344 }
5345
5346
5347 //RECEBE A STRING DE HORARIOS E RETORNA UMA LISTA DE OBJETOS COM OS DIAS E HORARIOS FORMATADOS
5348 //@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"
5349 function processaDiasHorariosOferta(horariosAllOferta){
5350
5351 var dias = horariosAllOferta.trim().split(',');
5352 let arrayDiasSemana = [{"Seg":"Segunda"},{"Ter":"Terça"},{"Qua":"Quarta"},{"Qui":"Quinta"},{"Sex":"Sexta"},{"Sab":"Sábado"},{"Dom":"Domingo"}]
5353
5354 var arrayDia = [];
5355 if(dias.length >= 1){
5356 for(var k=0; dias.length > k; k++){
5357 var diasSplit = dias[k].trim().split(' ');
5358 var diasSemana = diasSplit.shift()
5359 var ultimaPos = diasSplit.length-1;
5360 var horasStr = diasSplit[0] + ' às ' + diasSplit[ultimaPos]
5361 arrayDia.push({horasStr,diasSemana});
5362 }
5363 }
5364
5365 arrayDia = groupByArray(arrayDia, 'horasStr','diasSemana');
5366 arrayDia = orderByArray(arrayDia,arrayDiasSemana);
5367
5368 var ret = diaHorarioOfertaFormatado(arrayDia,arrayDiasSemana);
5369 return ret;
5370 }
5371
5372 //cria um array de objetos Agrupando de acordo ao campo informado como chave.
5373 //@arr = Array multidimensional que tenha os campos key e valueAdd
5374 //@key = campo que será chave nesse array
5375 //@valueAdd = campo que será agrupado caso tenha a mesma informação passada no campo key
5376 const groupByArray = (arr, key,valueAdd) => {
5377 const initialValue = [];
5378 const retornoValue = [];
5379 arr.forEach((acc, cval) => {
5380 const myAttribute = cval[key];
5381 acc[key] in retornoValue ? retornoValue[acc[key]].push(acc[valueAdd]):retornoValue[acc[key]]=[acc[valueAdd]];
5382 return acc;
5383 }, initialValue);
5384 return retornoValue;
5385 };
5386
5387
5388 //Cria um array de objetos a partir do primeiro array inserido e ordenados de acordo a ordem do segundo array informado.
5389 //@arrayOrdena = Array de objetos que tenha os campos que precisa ser ordenados
5390 //@ordem = array com a sequencia que queira ordenar - ex: seg, ter, qua, qua
5391 const orderByArray = (arrayOrdena, ordem) => {
5392
5393 let diasSem = [];
5394 const arrayOrdenado = [];
5395 let controle;
5396
5397 //percorre cada campo existente no ordem e busca o mesmo no arrayOrdena, encontrando insere no arrayOrdenado
5398 for(let campo of ordem){
5399 Object.entries(arrayOrdena).forEach(([key, value]) => {
5400 for(let diaOferta of value){
5401 if(diaOferta===Object.keys(campo)[0]){
5402 arrayOrdenado[key]=arrayOrdena[key];
5403 }
5404 }
5405 })
5406 }
5407 return arrayOrdenado;
5408 };
5409
5410 //retorna o valor de um objeto dentro de um array
5411 //@objetoBusca = array de objetos que sera buscado o valor
5412 //@keyBusca = nome do campo a ser buscada no objeto para pegar o seu valor
5413 function findValueInObject(objetoBusca, keyBusca){
5414 var retorno = "";
5415 Object.entries(objetoBusca).forEach(([horario, dias]) => {
5416 Object.entries(dias).forEach(([key,val]) => {
5417 if(key.trim()==keyBusca.trim()){
5418 retorno = val;
5419 }
5420 });
5421 });
5422 return retorno;
5423 }
5424
5425 //Recebe um objeto com valores dos dias da semana e define se sao dias seguidos ou alternados.
5426 //@arrayComDiasDaSemana = array com os dias da semana a serem validados - exemplo ['Qua','Qui','Sex']
5427 //@keyBusca = nome do campo a ser buscada no objeto para pegar o seu valor
5428 function diasSequenciaisOuAlternados(arrayComDiasDaSemana, arrayDiasDaSemana){
5429
5430 let arrayValidador = [];
5431
5432 //cria um array com o index dos dias das semanas encontrados [0 = seg, 1 = ter ... 6 = dom]
5433 for(let diaOferta of arrayComDiasDaSemana){
5434 for(let i = 0; i < arrayDiasDaSemana.length; i++){
5435 if(diaOferta === Object.keys(arrayDiasDaSemana[i])[0]){
5436 arrayValidador[i] = true;
5437 }
5438 }
5439 }
5440
5441 let keyCompair = 99;
5442 var sequencial = true;
5443
5444 //verifica quais posições foram criadas no array, e se os valores delas estão em sequencia.
5445 for(let keyValidator of Object.keys(arrayValidador)){
5446 keyValidator = parseInt(keyValidator);
5447 if(keyCompair!==99){
5448 if(keyValidator===keyCompair){
5449 sequencial = true;
5450 }else{
5451 sequencial = false;
5452 break;
5453 }
5454 }
5455 keyCompair = keyValidator+1;
5456 }
5457 return sequencial;
5458 }
5459
5460
5461 //Exibe as informações de dia e horario de oferta de acordo a sua estrutura
5462 //Caso os dias sejam sequenciais exibe a primeiro e ultimo dia da semana ligados com a letra 'a' Ex: Segunda a Quinta
5463 //Caso os dias Nao sejam sequenciais exibem todos os dias separados por virgula Ex: Segunda, terça, sexta e domingo
5464 //@arrayAgrupadoEOrdenado = array de objetos que sera exibido
5465 //@arrayDiasDaSemana = array com os dias da semana, sendo chave a sigla da semana (ex: Qua) e o valor o nome esperado (ex: Quarta)
5466 function diaHorarioOfertaFormatado(arrayAgrupadoEOrdenado, arrayDiasDaSemana){
5467
5468 var stringAux = "";
5469 var listRetorno = [];
5470
5471 Object.entries(arrayAgrupadoEOrdenado).forEach(([key, value]) => {
5472
5473 var sequencial = diasSequenciaisOuAlternados(value, arrayDiasDaSemana);
5474 var stringAux = "";
5475 var diaOferta = {};
5476
5477 if(sequencial){
5478 switch (value.length) {
5479 case 1:
5480 stringAux = stringAux+findValueInObject(arrayDiasDaSemana,value[0])+": ";
5481 diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula
5482 diaOferta.horario = key;
5483 break;
5484 case 2:
5485 stringAux = stringAux+findValueInObject(arrayDiasDaSemana,value[0])+" e "+findValueInObject(arrayDiasDaSemana,value[value.length-1])+": ";
5486 diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula
5487 diaOferta.horario = key;
5488 break;
5489 default:
5490 stringAux = stringAux+findValueInObject(arrayDiasDaSemana,value[0])+" a "+findValueInObject(arrayDiasDaSemana,value[value.length-1])+": ";
5491
5492 diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula
5493 diaOferta.horario = key;
5494 break;
5495 }
5496 }else{
5497 switch (value.length) {
5498 case 2:
5499 stringAux = stringAux+findValueInObject(arrayDiasDaSemana,value[0])+" e "+findValueInObject(arrayDiasDaSemana,value[value.length-1])+": ";
5500 diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula
5501 diaOferta.horario = key;
5502 break;
5503 default:
5504 var ct = 0;
5505 var stringDias="";
5506 for(let v of value){
5507 ct++;
5508 ct==value.length ? stringDias=stringDias.substring(0,stringDias.length - 2)+" e "+findValueInObject(arrayDiasDaSemana,v) : stringDias+=findValueInObject(arrayDiasDaSemana,v)+", ";
5509 }
5510 stringAux = stringAux+stringDias+": ";
5511 diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula
5512 diaOferta.horario = key;
5513 break;
5514 }
5515 }
5516
5517 listRetorno.push(diaOferta);
5518 })
5519 return listRetorno;
5520 };
5521
5522
5523 //Distribui dia e horario com quebra de linha entre eles ou nao dependendo da resolução de tela e tamanho da string
5524 function ajustaTextoDiasHorarioOferta(codOferta){
5525
5526 var classOferta = ".codigoOferta_"+codOferta;
5527 let oferta = $(classOferta);
5528
5529 let ofertaDiasSemana = $(oferta).find('*[data-dia-hora="dias-semana"]');
5530
5531 let widthDevice = window.screen.width;
5532 let tamLimDesktop = 185;
5533
5534 if(widthDevice <= 1024){
5535 tamLimDesktop = 180;
5536 }
5537
5538 ofertaDiasSemana.each(function(index){
5539
5540
5541 let widthDiaSemana = $(this).width();
5542
5543 let contentDiaHora = $(this).parent().parent().parent();
5544
5545 if(!(widthDiaSemana <= tamLimDesktop)){
5546 $(this).css("display","block");
5547 }
5548
5549 if(ofertaDiasSemana.length == parseInt(index+1)){
5550 contentDiaHora.css("opacity","1");
5551 }
5552
5553 })
5554 }
5555
5556 function getObjFormaPagto(oferta,index,tipoCurso,codigoUnidade){
5557
5558 var formaPagtoObj = {};
5559
5560 var regNumMaxParce = new RegExp('\{numeroMaxParcelasOferta\}', 'g');
5561 var regPrecMaxParce = new RegExp('\{precoVendaMaxParcelaOferta\}', 'g')
5562
5563 formaPagtoObj['regIndex'] = index;
5564 formaPagtoObj['precoCheioOferta'] = formataValor(oferta.precoCheioOferta);
5565 formaPagtoObj['textoCartoesAceitos'] = oferta.textoCartoesAceitos;
5566
5567 formaPagtoObj['numParcelaCartoes'] = oferta.numParcelaCartoes;
5568 formaPagtoObj['precoParcelaCartoes'] = oferta.precoParcelaCartoes;
5569 formaPagtoObj['numParcelaBoleto'] = oferta.numParcelaBoleto;
5570 formaPagtoObj['precoParcelaBoleto'] = oferta.precoParcelaBoleto;
5571 formaPagtoObj['precoVendaOferta'] = formataValor(oferta.precoVendaOferta);
5572
5573 formaPagtoObj['economia'] = formataValor(parseFloat(oferta.precoCheioOferta).toFixed(2) - parseFloat(oferta.precoVendaOferta).toFixed(2));
5574 formaPagtoObj['espacoExterno'] = oferta.espacoExterno == 'true' ? 'true' : 'false';
5575 formaPagtoObj['dataUnidade'] = codigoUnidade;
5576 formaPagtoObj['dataEvento'] = oferta.codigoOferta;
5577 formaPagtoObj['destinoCompra '] = oferta.destinoCompra;
5578
5579 //EMED nao restringe o botao
5580 if(isEmed){
5581 formaPagtoObj['textoBotaoComprar'] = 'COMPRAR';
5582 formaPagtoObj['classeBotaoComprar'] = '';
5583 }else{
5584 formaPagtoObj['textoBotaoComprar'] = oferta.vagasParaCompraOferta == 'true' ? 'COMPRAR' : 'Vagas esgotadas para compra';
5585 formaPagtoObj['classeBotaoComprar'] = oferta.botaoCompraOferta == 'true' ? (oferta.vagasParaCompraOferta == 'true' ? '' : 'disabled') : 'd-none-btn';
5586 }
5587
5588 formaPagtoObj['regNumMaxParce'] = oferta.numeroMaxParcelasOferta;
5589 formaPagtoObj['regPrecMaxParce'] = formataValor(oferta.precoVendaMaxParcelaOferta);
5590
5591 //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
5592 formaPagtoObj['precoAVistaPadraoExt'] = formataValor(oferta.precoVendaOferta);
5593 var precoContribuinteExtensao = (parseFloat(oferta.precoVendaOferta).toFixed(2) * 0.80).toFixed(2);
5594 formaPagtoObj['precoContrExt'] = formataValor(precoContribuinteExtensao);
5595 formaPagtoObj['economiaExt'] = formataValor(parseFloat(oferta.precoVendaOferta).toFixed(2) - precoContribuinteExtensao);
5596 formaPagtoObj['precoParcelaBoletoExt'] = formataValor( (precoContribuinteExtensao / oferta.numParcelaBoleto).toFixed(2));
5597 formaPagtoObj['precoParcelaCartoesExt'] = formataValor( (precoContribuinteExtensao / oferta.numParcelaCartoes).toFixed(2));
5598 formaPagtoObj['precoAVistaContrExt'] = formataValor( (precoContribuinteExtensao * 0.92).toFixed(2));
5599
5600 return formaPagtoObj;
5601 }
5602
5603 function calculaPrecoAvista(precoVendaOferta){
5604 return (parseFloat(precoVendaOferta).toFixed(2) * 0.92).toFixed(2);
5605 }
5606
5607 function createModalFormaPagto(formaPagtoObj, oferta, index) {
5608 let temDesconto = possuiCriteriosDesconto2022(oferta.dataInicio)
5609 temDesconto = temDesconto && !possuiMensalidade99(oferta)
5610
5611 result = `
5612 <div id="modalFormaPagto" class="ssp-modal">
5613 <div class="ssp-card-modal-forma-pagamento ` + (temDesconto ? 'ssp-desconto-2022' : '') + `">
5614 <div class="ssp-card-modal-forma-pagamento__header" style="border: 0; margin-bottom: 0 !important;">
5615 <h6 class="ssp-card-modal-forma-pagamento__header-title font-weight-bold" style="color:#454F63">Descontos e ` + (temDesconto ? 'pagamento' : 'parcelamento') + `</h6>
5616 <i class="ssp-card-modal-forma-pagamento__btn-close ssp-card-modal-forma-pagamento__btn-close_` + index + `"></i>
5617 </div>
5618 `
5619 + (temDesconto ? '' : '<div class="ssp-card-oferta-curso__line-divider mt-0 mb-5 mb-md-8"></div>') +
5620 `
5621 <div class="ssp-card-modal-forma-pagamento__body">
5622 `
5623 if(temDesconto) {
5624 result = result + `
5625 <div>
5626 <p class="my-0"><strong>Valor com </strong>
5627 <span class="ssp-card-oferta-curso__valor-desconto mt-0 mb-0">50% de desconto*</span>
5628 </p>
5629 </div>
5630 <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>`
5631
5632 if($('[name="tipoCurso"]').val() == 'extensao') {
5633 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>`
5634 } else {
5635 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>`
5636 }
5637
5638
5639 result = result + `
5640 <div class="ssp-card-oferta-curso__line-divider mb-5 mb-md-2 mt-2"></div>
5641 <p class="my-0"><strong>Valor:</strong></p>
5642 <h6 class="ssp-card-oferta-curso__item-valor-investimento ` + (temDesconto ? 'ssp-desconto-2022' : '') + `"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(oferta.precoVendaMaxParcelaOferta) + `</h6>
5643 <p class="mt-0 mb-0"><strong>Valor Total: </strong> ` + formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaOferta), 2)) + `</p>
5644 <div class="ssp-card-oferta-curso__line-divider mt-4 mb-md-3 mb-4"></div>
5645 <p class="my-0"><strong>Parcele e garanta mais tempo para pagar:</strong></p>
5646 `
5647 } else {
5648 if(formaPagtoObj.precoCheioOferta == formaPagtoObj.precoVendaOferta) {
5649 result = result + `
5650 <p class="ssp-card-modal-forma-pagamento__valor-desconto mt-n3">R$ <span class="precoVendaOferta">` + formaPagtoObj.precoVendaOferta + `</span></p>
5651 <p class="txt-desconto-oito">Pague à vista e <span style="color:#FC7834;font-weight:bold"> ganhe mais 8% de desconto.</span></p>
5652 <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>
5653 </div>
5654 `
5655 } else {
5656 const textoDesc = temDesconto ? 'Valor com 30% de desconto:' : 'Valor com desconto:'
5657
5658 result = result + `
5659 <small class="ssp-card-oferta-curso__title-item font-weight-bold" style="margin:0;font-size:16px;">` + textoDesc + `</small>
5660 <p class="ssp-card-modal-forma-pagamento__valor-cheio">R$ <span class="precoCheioOferta">` + formaPagtoObj.precoCheioOferta + `</span></p>
5661 <p class="ssp-card-modal-forma-pagamento__valor-desconto">R$ <span class="precoVendaOferta">` + formaPagtoObj.precoVendaOferta + `</span></p>
5662 <p class="ssp-card-modal-forma-pagamento__total-economia">Você economiza <span>R$ <span class="economia">` + formaPagtoObj.economia + `</span></span></p>
5663 <p class="txt-desconto-oito">Pague à vista e <span style="color:#FC7834;font-weight:bold"> ganhe mais 8% de desconto.</span></p>
5664 <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>
5665 </div>
5666 `
5667 }
5668 }
5669
5670 let textoParcelaCartoes, textoParcelaBoleto
5671 if(temDesconto) {
5672 const precoParcelaCartoes = formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(formaPagtoObj.precoParcelaCartoes)/2, 2))
5673 const precoParcelaBoleto = formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(formaPagtoObj.precoParcelaBoleto)/2, 2))
5674
5675 if(formaPagtoObj.numParcelaCartoes)
5676 textoParcelaCartoes = `<p>Em até <span><span class="numParcelaCartoes">` + formaPagtoObj.numParcelaCartoes + `</span>x</span> sem juros</p>`
5677
5678 if(formaPagtoObj.numParcelaBoleto)
5679 textoParcelaBoleto = `<p>Em até <span><span class="numParcelaBoleto">` + formaPagtoObj.numParcelaBoleto + `</span>x</span> sem juros</p>`
5680 } else {
5681 if(formaPagtoObj.numParcelaCartoes)
5682 textoParcelaCartoes = `<p>Em até <span><span class="numParcelaCartoes">` + formaPagtoObj.numParcelaCartoes + `</span>x de R$ <span class="precoParcelaCartoes">` + formaPagtoObj.precoParcelaCartoes + `</span></span> sem juros</p>`
5683
5684 if(formaPagtoObj.numParcelaBoleto)
5685 textoParcelaBoleto = `<p>Em até <span><span class="numParcelaBoleto">` + formaPagtoObj.numParcelaBoleto + `</span>x de R$ <span class="precoParcelaBoleto">` + formaPagtoObj.precoParcelaBoleto + `</span></span> sem juros</p>`
5686 }
5687
5688 if(temDesconto) {
5689 result = result + `
5690 <div class="ssp-card-modal-forma-pagamento__tipos">`
5691
5692 if(textoParcelaBoleto)
5693 result = result + `
5694 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start">
5695 <i class="ssp-card-modal-forma-pagamento__icon-boleto"></i>
5696 <div class="ssp-card-modal-forma-pagamento__info-cartao">
5697 <p><strong>Boleto Bancário</strong></p>`
5698 + textoParcelaBoleto +
5699 `</div>
5700 </div>`
5701
5702 if(textoParcelaCartoes)
5703 result = result + `
5704 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start mt-4">
5705 <i class="ssp-card-modal-forma-pagamento__icon-credit-card"></i>
5706 <div class="ssp-card-modal-forma-pagamento__info-cartao">
5707 <p><strong>Cartões</strong></p>
5708 <p>(<span class="textoCartoesAceitos">` + formaPagtoObj.textoCartoesAceitos + `</span>)</p>`
5709 + textoParcelaCartoes +
5710 `</div>
5711 </div>
5712 </div>
5713 `
5714 } else {
5715 result = result + `
5716 <div class="ssp-card-modal-forma-pagamento__tipos">`
5717
5718 if(textoParcelaCartoes)
5719 result = result + `
5720 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start">
5721 <i class="ssp-card-modal-forma-pagamento__icon-credit-card"></i>
5722 <div class="ssp-card-modal-forma-pagamento__info-cartao">
5723 <p><strong>Cartões</strong></p>
5724 <p>(<span class="textoCartoesAceitos">` + formaPagtoObj.textoCartoesAceitos + `</span>)</p>`
5725 + textoParcelaCartoes +
5726 `</div>
5727 </div>`
5728
5729 if(textoParcelaBoleto)
5730 result = result + `
5731 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start mt-4">
5732 <i class="ssp-card-modal-forma-pagamento__icon-boleto"></i>
5733 <div class="ssp-card-modal-forma-pagamento__info-cartao">
5734 <p><strong>Boleto Bancário</strong></p>`
5735 + textoParcelaBoleto +
5736 `</div>
5737 </div>
5738 </div>
5739 `
5740 }
5741
5742 if(temDesconto) {
5743 result = result + `
5744 <p class="txt-desconto-oito my-0">Pague à vista e ganhe <span style="color:#5ACC75;font-weight:bold">8% de desconto.</span></p>
5745 `
5746 }
5747
5748 result = result + `
5749 <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>`
5750
5751 if(temDesconto) {
5752 result = result + `
5753 <a class="btn btn-primary modal-extensao-btn-conheca mt-3" href="/descontos-e-parcelamentos" target="_blank">Conheça os descontos</a>
5754 `
5755 }
5756
5757 result = result + `
5758 </div>
5759 </div>
5760 `
5761
5762 return result;
5763 }
5764
5765 function montaHTMLModalFormaPgto(oferta, index, codigoUnidade){
5766
5767 var tipoCurso = $('[name="tipoCurso"]').val();
5768
5769 var formaPagtoObj = getObjFormaPagto(oferta,index,tipoCurso,codigoUnidade);
5770
5771 var modalFormaPagto
5772 if(tipoCurso == 'extensao' && !possuiCriteriosDesconto2022(oferta.dataInicio)) {
5773 modalFormaPagto = $('#modalFormaPagtoExt').clone();
5774
5775 $.each(formaPagtoObj, function(k,v){
5776 if(modalFormaPagto.find('.'+k).length > 0)
5777 modalFormaPagto.find('.'+k).text(v);
5778 })
5779 } else if(isEmed) {
5780 modalFormaPagto = $('#modalPagtoEmed').clone();
5781
5782 $.each(formaPagtoObj, function(k,v){
5783 if(modalFormaPagto.find('.'+k).length > 0)
5784 modalFormaPagto.find('.'+k).text(v);
5785 })
5786 } else
5787 modalFormaPagto = $(createModalFormaPagto(formaPagtoObj, oferta, index));
5788
5789 modalFormaPagto.removeAttr('id');
5790 modalFormaPagto.removeClass('d-none');
5791 modalFormaPagto.attr('id','myModal_'+index);
5792
5793 if(tipoCurso == 'extensao' && !possuiCriteriosDesconto2022(oferta.dataInicio)){
5794
5795 var botoaoCompraOk = modalFormaPagto.find('.modal-extensao-aluno__btn.ok');
5796 botoaoCompraOk.attr('id','btnComprarConhecaDescontoOk_'+index);
5797
5798 botoaoCompraOk.attr('data-espaco-ex', formaPagtoObj.espacoExterno);
5799 botoaoCompraOk.attr('data-unidade', formaPagtoObj.dataUnidade);
5800 botoaoCompraOk.attr('data-evento', formaPagtoObj.dataEvento);
5801 botoaoCompraOk.attr('data-destino-compra', formaPagtoObj.destinoCompra);
5802 botoaoCompraOk.attr('data-index', index);
5803 botoaoCompraOk.addClass(formaPagtoObj.classeBotaoComprar);
5804
5805 var botoaoCompraNot =modalFormaPagto.find('.modal-extensao-aluno__btn.not');
5806 botoaoCompraNot.attr('id','btnComprarConhecaDescontoNot_'+index);
5807
5808 botoaoCompraNot.attr('data-espaco-ex', formaPagtoObj.espacoExterno);
5809 botoaoCompraNot.attr('data-unidade', formaPagtoObj.dataUnidade);
5810 botoaoCompraNot.attr('data-evento', formaPagtoObj.dataEvento);
5811 botoaoCompraNot.attr('data-destino-compra', formaPagtoObj.destinoCompra);
5812 botoaoCompraNot.attr('data-index', index);
5813 botoaoCompraNot.addClass(formaPagtoObj.classeBotaoComprar);
5814
5815 modalFormaPagto.find('.modal-extensao-btn-aluno-sim-nao.sim').attr('id','btn-aluno-sim_'+index);
5816 modalFormaPagto.find('.modal-extensao-btn-aluno-sim-nao.nao').attr('id','btn-aluno-nao_'+index);
5817
5818 modalFormaPagto.find('.modal-extensao-voltar-icon').addClass('ssp-card-modal-forma-pagamento__btn-close_'+index);
5819
5820 modalFormaPagto.find('.modal-extensao-btn-conheca').attr('id','btnModalExtConheca_'+index);
5821
5822 modalFormaPagto.find('.modal-pergunta-aluno-ext').attr('id','modalExtAluno_'+index);
5823
5824 modalFormaPagto.find('.msg-alunoSim').attr('id','msg-alunoSim_'+index);
5825 modalFormaPagto.find('.msg-alunoNao').attr('id','msg-alunoNao_'+index);
5826
5827 var botaoCompra = modalFormaPagto.find('.modal-extensao__btn.mt-3');
5828
5829 }else{
5830
5831 modalFormaPagto.find('.mt-4').attr('id','content_boleto_'+index);
5832 modalFormaPagto.find('.ssp-card-modal-forma-pagamento__btn-close').addClass('ssp-card-modal-forma-pagamento__btn-close_'+index);
5833
5834 var botaoCompra = modalFormaPagto.find('.btn.w-100');
5835
5836 }
5837
5838 if(isEmed){
5839
5840 var elementoPai = modalFormaPagto.find('.ssp-card-modal-forma-pagamento');
5841
5842
5843
5844 //Cria botao inscreva-se ajustado ao modal
5845 var dadosAbertura = calculaTempoAberturaBolsa(oferta.dataAberturaBolsaOferta, oferta.horaAberturaBolsaOferta);
5846
5847
5848 if (dadosAbertura.bolsaJaAberta || !oferta.dataAberturaBolsaOferta || oferta.dataAberturaBolsaOferta == ''){
5849 textoBotao = 'Inscrever para compra';
5850 }else{
5851 textoBotao = 'Inscrições em '+formataDataAberturaBolsa(oferta.dataAberturaBolsaOferta, oferta.horaAberturaBolsaOferta);
5852 }
5853 classeBotao = (dadosAbertura.bolsaJaAberta) ? '' : 'disabled';
5854
5855
5856 criaBotaoInscreverEmedModal(oferta, textoBotao, classeBotao, 'btnComprarEmedModal_' + index, elementoPai, index);
5857 preencheDadosEmedModal(oferta, index);
5858
5859
5860
5861 }else{
5862 botaoCompra.attr('id', "btnComprarFormaPgto_"+index);
5863 botaoCompra.attr('data-espaco-ex', formaPagtoObj.espacoExterno);
5864 botaoCompra.attr('data-unidade', formaPagtoObj.dataUnidade);
5865 botaoCompra.attr('data-evento', formaPagtoObj.dataEvento);
5866 botaoCompra.attr('data-destino-compra', formaPagtoObj.destinoCompra);
5867 botaoCompra.attr('data-index', index);
5868 botaoCompra.addClass(formaPagtoObj.classeBotaoComprar);
5869 }
5870
5871 $('.oferta-slick-area_modal').append(modalFormaPagto);
5872 $('.oferta-slick-area_modal').find('.d-none-btn').remove();
5873
5874 //Evita o erro de exibição de Nan
5875 if(oferta.numParcelaBoleto.length == 0){
5876 $('#content_boleto_'+index).remove();
5877 }
5878 }
5879
5880
5881 function montaHTMLModalLocalRealizacao(oferta, index){
5882
5883 var tituloLocalRealizacao = (localLivreOnline(oferta.localEspacoExterno)) ?
5884 '<i class="fas fa-wifi icon-wifi-title__modal"></i> <h6 class="title-idioma-online__modal"> Aulas Online - ao vivo</h6>'
5885 : '<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>';
5886
5887 var localRealizacaoHTMLModal = htmlModalLocalRealizacao
5888 .replace('\{nomeUnidade\}',$('#unidades-ofertas option:selected').text())
5889 .replace('\{localEspacoExterno\}', oferta.localEspacoExterno )
5890 .replace('\{classeTextoInfoLocalRealizacao\}', oferta.ruaEspacoExterno != "" ? "" : "d-none")
5891 .replace('\{classeEnderecoRealizacao\}', oferta.ruaEspacoExterno != "" ? "" : "d-none")
5892 .replace('\{ruaEspacoExterno\}',oferta.ruaEspacoExterno)
5893 .replace('\{numeroEspacoExterno\}',oferta.numeroEspacoExterno)
5894 .replace('\{complementoEspacoExterno\}',oferta.complementoEspacoExterno)
5895 .replace('\{classeBairroRealizacao\}', oferta.bairroEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
5896 .replace('\{bairroEspacoExterno\}',oferta.bairroEspacoExterno)
5897 .replace('\{classeCidadeRealizacao\}', oferta.cidadeEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
5898 .replace('\{cidadeEspacoExterno\}',oferta.cidadeEspacoExterno)
5899 .replace('\{classeCepRealizacao\}', oferta.cepEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
5900 .replace('\{cepEspacoExterno\}',oferta.cepEspacoExterno)
5901 .replace(regIndex, index)
5902 .replace('\{tituloLocalRealizacao\}', tituloLocalRealizacao)
5903 .replace('\{classeEntendi\}', (localLivreOnline(oferta.localEspacoExterno)) ? "btn-modal-entendi__idioma-online" : "");
5904
5905 $('.oferta-slick-area_modal').append(localRealizacaoHTMLModal);
5906 $('.oferta-slick-area_modal').find('.d-none-btn').remove();
5907
5908 if(oferta.ruaEspacoExterno == "")
5909 $('.localEspacoExternoTexto_'+index).removeClass('ssp-modal-local-realizacao__subtitle');
5910 }
5911
5912 function montaHTMLModalAntesCompra(oferta, index, codigoUnidade){
5913
5914 if(isEmed){
5915 $('#modalAntesCompraEmed_' + oferta.indice).remove();
5916 const antesCompraHTMLModal = $('#modalAntesCompraEmed').clone();
5917 antesCompraHTMLModal.attr('id', 'modalAntesCompraEmed_' + oferta.indice);
5918 antesCompraHTMLModal.find('.ssp-card-modal-antes-compra__btn-close').addClass('ssp-card-modal-antes-compra__btn-close_'+oferta.indice);
5919 antesCompraHTMLModal.find('.ssp-card-modal-selecionar-outro__btn-close').addClass('ssp-card-modal-selecionar-outro__btn-close_'+oferta.indice);
5920 antesCompraHTMLModal.insertAfter('#modalAntesCompraEmed');
5921
5922 const btnCompra = antesCompraHTMLModal.find('#btnCompraLocalEmed');
5923 btnCompra.attr('id', 'btnCompraLocalEmed_' + oferta.indice);
5924 btnCompra.attr('offercode', oferta.codigoOferta);
5925
5926 btnCompra.on('click', function(ev){
5927 ev.preventDefault();
5928 execCompraEmed(oferta);
5929 });
5930 }else{
5931
5932 var antesCompraHTMLModal = htmlModalAntesCompra
5933 .replace('\{nomeUnidade\}',$('#unidades-ofertas option:selected').text())
5934 .replace('\{localEspacoExterno\}', oferta.localEspacoExterno )
5935 .replace('\{classeTextoInfoLocalRealizacao\}', oferta.ruaEspacoExterno != "" ? "" : "d-none")
5936 .replace('\{classeEnderecoRealizacao\}', oferta.ruaEspacoExterno != "" ? "" : "d-none")
5937 .replace('\{ruaEspacoExterno\}',oferta.ruaEspacoExterno)
5938 .replace('\{numeroEspacoExterno\}',oferta.numeroEspacoExterno)
5939 .replace('\{complementoEspacoExterno\}',oferta.complementoEspacoExterno)
5940 .replace('\{classeBairroRealizacao\}', oferta.bairroEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
5941 .replace('\{bairroEspacoExterno\}',oferta.bairroEspacoExterno)
5942 .replace('\{classeCidadeRealizacao\}', oferta.cidadeEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
5943 .replace('\{cidadeEspacoExterno\}',oferta.cidadeEspacoExterno)
5944 .replace('\{classeCepRealizacao\}', oferta.cepEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
5945 .replace('\{cepEspacoExterno\}',oferta.cepEspacoExterno)
5946 .replace('\{componentBuyConfirmation\}', componentBuyConfirmation(codigoUnidade, oferta))
5947 .replace('\{linkBtnBolsa\}', linkBolsa(oferta))
5948 .replace(regIndex, index);
5949
5950 $('.oferta-slick-area_modal').append(antesCompraHTMLModal);
5951 $('.oferta-slick-area_modal').find('.d-none-btn').remove();
5952 }
5953 }
5954
5955 function populaOfertas(ofertas){
5956
5957 //Zera variável que controla existência de ofertas com bolsa
5958 ofertasComBolsa = false;
5959
5960 objsTela.ofertas = ofertas;
5961
5962 if(ofertas && ofertas.length)
5963 $('#ssp-h3-turmas').show()
5964 else
5965 $('#ssp-h3-turmas').hide()
5966
5967 if(isEmed){
5968
5969 $('.ssp-slick-ofertas-emed').empty();
5970 // executa a class do slick slider
5971 $('.ssp-slick-ofertas-emed').removeClass('slick-initialized slick-slider slick-dotted');
5972 var etapa = getEtapaSelecionadaEmed();
5973 if(today < dataInscricoesEmed){
5974 ofertas = []
5975 } else {
5976 ofertas = filtraOfertasEtapa(etapa, ofertas);
5977 }
5978 }
5979
5980 if(ofertas.length == 0){
5981
5982 if($('#unidades-ofertas').val() || $('#chkInscricao').prop('checked') || $('#chkBolsa').prop('checked'))
5983 hideCardSemTurmas(false)
5984
5985 $('.oferta-slick-area').empty();
5986 $('.prev-mobile').addClass('d-none');
5987 $('.next-mobile').addClass('d-none');
5988
5989 //Mostrar section registro interesse quando nao tiver oferta
5990
5991 habilitarRegistroInteresse(true);
5992 //EMED remove msg registro interesse
5993 //if(isEmed) $('.ssp-card-oferta-curso__sem-vaga-description').addClass('d-none');
5994 controlaPaginaBolsa()
5995 return;
5996 }else{
5997 hideCardSemTurmas(true)
5998 if(!isEmed) $('.prev-mobile, .next-mobile').removeClass('d-none');
5999 habilitarRegistroInteresse(false);
6000 }
6001
6002
6003 $('.oferta-slick-area').empty();
6004 $('.oferta-slick-area_modal').empty();
6005 ofertas = ofertas.sort(function(a, b){
6006 return ordenar(a, b, 'ordenar');
6007 });
6008 // executa a class do slick slider
6009 $('.oferta-slick-area').removeClass('slick-initialized slick-slider slick-dotted');
6010
6011 //busca o codigoUnidade para o link do ecommerce
6012 if(!isAoVivo){
6013 var selectedUnidade = $('#unidades-ofertas').val().split('@')[0];
6014 for(var i=0;objsTela.unidades.length > i ;i++){
6015 if(selectedUnidade == objsTela.unidades[i].categoryId)
6016 codigoUnidade = objsTela.unidades[i].codigoUnidade;
6017 }
6018 }
6019
6020 // Montar object push - google tag manager - 2
6021 itensEcommerce = criaItensEcommerce(ofertas);
6022 sendEventEcommerce("view_item_list", Array.from(itensEcommerce.values()));
6023
6024 for(var i=0;ofertas.length > i ;i++){
6025
6026 var oferta = ofertas[i];
6027
6028 //guardando a oferta no map para chamar ajax com infos de bolsa em tempo real
6029 oferta['indice'] = i;
6030 ofertasMap.set(oferta.codigoOferta, oferta);
6031
6032 if(isAoVivo)
6033 codigoUnidade = ofertaUnidadeMap.get(oferta.codigoOferta);
6034
6035 montaHTMLOferta(oferta, i, codigoUnidade, false);
6036 montaHTMLModalFormaPgto(oferta, i, codigoUnidade);
6037 montaHTMLModalLocalRealizacao(oferta, i);
6038 montaHTMLModalAntesCompra(oferta, i, codigoUnidade);
6039 verificaBotaoBolsaSS(oferta);
6040 verificaCursoAprendizagem(i);
6041 verificaCursoTrampolim(i);
6042
6043 associaEventoBtnFormaPagamento(i);
6044 associaEventoBtnComprar(i);
6045 associaEventoBtnComprarDentroFormaPgto(i);
6046 associaEventoBtnLocalRealizacao(i);
6047 associaEventosFecharModal(i);
6048
6049 if($('[name="tipoCurso"]').val() == 'extensao'){
6050 associaEventoBtnConheca(i);
6051 associaEventoBtnComprarConhecaDescontoOk(i);
6052 associaEventoBtnComprarConhecaDescontoNot(i);
6053 associaEventoBtnAlunoNao(i);
6054 associaEventoBtnAlunoSim(i);
6055 }
6056
6057 }
6058
6059 if(isEmed) sliderOfertasEmed()
6060 else sliderOfertas();
6061
6062 controlaPaginaBolsa()
6063
6064 }
6065
6066 function hideCardSemTurmas(hide){
6067 if(!isEmed){
6068 if(hide)
6069 $('.ssp-card-oferta-curso__sem-vaga').addClass('d-none');
6070 else
6071 $('.ssp-card-oferta-curso__sem-vaga').removeClass('d-none');
6072 } else {
6073
6074 if(today < dataInscricoesEmed){
6075 //Texto emed 2023
6076 const dataInscricoesFormat = dataInscricoesEmed.getUTCDate() + '/' + (dataInscricoesEmed.getUTCMonth() + 1) + '/' + dataInscricoesEmed.getUTCFullYear()
6077 $('.ssp-emed__section__introCard').children().text('As inscrições já começam em ' + dataInscricoesFormat)
6078 $('.ssp-emed__section__textCard').children('.texto').text('Antecipamos a data! Aproveite e registre seu interesse que a gente envia um lembrete.')
6079 $('.ssp-emed__section__introCardCTA').text('Quer receber aviso por e-mail sobre a abertura das inscrições?')
6080 } else {
6081 $('.ssp-emed__section__introCard').children().text('Poxa... Estamos sem turmas disponíveis no momento.')
6082 $('.ssp-emed__section__textCard').children('.texto').text('Mas, registre seu interesse aqui ao lado e avisamos você sobre a abertura das inscrições para o próximo ano.')
6083 $('.ssp-emed__section__introCardCTA').text('Quer receber um aviso sobre as turmas do próximo ano?')
6084 }
6085
6086
6087 if(hide){
6088 $('.sem-vaga-emed').addClass('d-none');
6089 }else{
6090 $('.sem-vaga-emed').removeClass('d-none');
6091 var tamScreen = $(window).width();
6092 if(tamScreen < 768){
6093 $('.slick-area-emed').slick({
6094 slidesToShow: 2,
6095 slidesToScroll: 2,
6096 autoplay: false,
6097 infinite: false,
6098 dots: false,
6099 arrows: false,
6100 centerPadding: 0,
6101 centerMode: false,
6102 responsive: [
6103 {
6104 breakpoint: 768,
6105 settings: {
6106 slidesToShow: 1,
6107 slidesToScroll: 1,
6108 variableWidth: false,
6109 infinite: false,
6110 centerPadding: 0,
6111 centerMode: false,
6112 dots: true,
6113 }
6114 }
6115 ]
6116 });
6117 }
6118 }
6119 }
6120 }
6121
6122 function verificaCursoAprendizagem(i){
6123
6124 //Esconde elementsos quando o curso é aprendizagem
6125 if($('[name="codigoFT"]').val() == codigoFTCursoAprendizagem){
6126 $('#btnComprar_'+i).remove();
6127 $('#container_investimento_'+i).remove();
6128 $('#container_forma_pgto_'+i).remove();
6129
6130 var avisoAprendizagem = $('#aviso-curso-aprendizagem').clone();
6131 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>'
6132 avisoAprendizagem.removeAttr('id');
6133 avisoAprendizagem.removeClass('d-none');
6134 $('.card_oferta_'+i+ ' .ssp-card-oferta-curso').append(avisoAprendizagem);
6135 $('.card_oferta_'+i+ ' .ssp-card-oferta-curso').append(btnFormAprendizagem);
6136 }
6137 }
6138
6139 function verificaCursoTrampolim(i){
6140 if(ehCursoTrampolim){
6141 $('#btnComprar_'+i).remove();
6142 $('#container_investimento_'+i).remove();
6143 $('#container_forma_pgto_'+i).remove();
6144
6145 var avisoTrampolim = $('#avisoTrampolim').clone();
6146 avisoTrampolim.removeAttr('id');
6147 avisoTrampolim.removeClass('d-none');
6148 $('.card_oferta_'+i+ ' .ssp-card-oferta-curso').append(avisoTrampolim);
6149 }
6150 }
6151
6152 function verificaBotoesEmed(dadosOferta, verificaBolsa){
6153
6154 if(!verificaBolsa || !dadosOferta.dataAberturaBolsaOferta || dadosOferta.dataAberturaBolsaOferta == ''){
6155 dadosOferta.vagasBolsaOferta = false;
6156 dadosOferta.botaoBolsaOferta = false;
6157 }
6158
6159 var elementoPai = $('.codigoOferta_'+dadosOferta.codigoOferta+' .ssp-ofertas-emed__card-info-investimento');
6160
6161
6162 //calcula o tempo até abertura da bolsa, se houver (apenas depois das 08hrs)
6163 var dadosAbertura = calculaTempoAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta);
6164 var textoBotao = 'Inscrever para compra';
6165 var textoBotaoBolsa = '';
6166 var classeBotao = '';
6167 var classeBotaoBolsa = '';
6168 var exibirBotaoBolsa = false;
6169 var exibirContador = false;
6170 var htmlBotaoBolsa = '';
6171 var htmlBotao = '';
6172
6173 //verifica se o botão de concorrer a bolsa deve aparecer
6174 //Oferta EMED possui bolsa apenas no 1o ano
6175 if(dadosOferta.etapa == '0010' && dadosOferta.botaoBolsaOferta && !dadosAbertura.exibirContador){
6176 exibirBotaoBolsa = true;
6177 if(dadosOferta.vagasBolsaOferta){
6178 classeBotaoBolsa = dadosAbertura.bolsaJaAberta ? '' : 'disabled';
6179 textoBotaoBolsa = dadosAbertura.bolsaJaAberta ? 'Inscrever para bolsa de estudo' : 'Bolsas em '+formataDataAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta);
6180 }else{
6181 classeBotaoBolsa = 'disabled';
6182 textoBotaoBolsa = 'Bolsas de Estudo Esgotadas';
6183 }
6184 }
6185
6186 //Verifica se o botão do cronômetro deve aparecer
6187 if(dadosAbertura.exibirContador){
6188 textoBotao = dadosAbertura.textoContador;
6189 textoBotaoBolsa = dadosAbertura.textoContador;
6190 exibirContador = true;
6191 exibirBotaoBolsa = false;
6192 }else{
6193
6194 if (dadosAbertura.bolsaJaAberta || !dadosOferta.dataAberturaBolsaOferta || dadosOferta.dataAberturaBolsaOferta == ''){
6195 textoBotao = 'Inscrever para compra';
6196 }else{
6197 textoBotao = 'Inscrições em '+formataDataAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta);
6198 }
6199 classeBotao = (dadosAbertura.bolsaJaAberta) ? '' : 'disabled';
6200
6201
6202 criaBotaoInscreverEmed(dadosOferta, textoBotao, classeBotao, 'btnComprarEmed_' + dadosOferta.indice, elementoPai);
6203 }
6204
6205 if(exibirBotaoBolsa){
6206
6207 if(!ofertasComBolsa) ofertasComBolsa = true;
6208
6209 criaBotaoBolsaEmed(dadosOferta, textoBotaoBolsa, classeBotaoBolsa);
6210
6211 }else if(exibirContador){
6212
6213 if(!ofertasComBolsa && dadosOferta.etapa == '0010') ofertasComBolsa = true;
6214
6215 //codigoOferta como index para usar o ofertasMap
6216 htmlBotao = '<button id="btnContadorComprar_'+ dadosOferta.indice +'" data-index="'+ dadosOferta.codigoOferta +'" class="btn btn-card-investimento --inscreva-se">Inscreva-se em <span>'+textoBotao+'</span></button>';
6217 elementoPai.append(htmlBotao);
6218
6219 if(dadosOferta.etapa == '0010' && dadosOferta.botaoBolsaOferta){
6220 htmlBotao = '<button id="btnContadorBolsa_'+ dadosOferta.indice +'" data-index="'+ dadosOferta.codigoOferta +'" class="btn btn-card-investimento --bolsas">Bolsa em <span>'+textoBotaoBolsa+'</span></button>';
6221 elementoPai.append(htmlBotao);
6222 }
6223
6224 }
6225
6226 }
6227
6228 function criaBotaoInscreverEmedModal(oferta, textoBotao, classeBotao, idBotao, elementoPai, index){
6229 criaBotaoInscreverEmed(oferta, textoBotao, classeBotao, idBotao, elementoPai);
6230 var btnInscr = elementoPai.find('#btnComprarEmedModal_' + index);
6231 btnInscr.removeClass(btnInscr.classList);
6232 btnInscr.addClass('btn btn-lg btn-success w-100');
6233 btnInscr.attr('style', 'margin-top: 20px;font-weight:600');
6234
6235 //Reposiciona o botao voltar
6236 var btnVoltar = elementoPai.find('.ssp-btn-emed__voltar-curso');
6237 elementoPai.find('.ssp-btn-emed__voltar-curso').remove();
6238 elementoPai.append(btnVoltar);
6239 btnVoltar.addClass('ssp-btn-emed__voltar-curso_'+index);
6240 btnVoltar.click(() => {
6241 $('[id^="myModal_"]').each(function(index,modal){
6242 modal.style.display = "none";
6243 })
6244 });
6245 }
6246
6247 function preencheDadosEmedModal(oferta,index){
6248 var parcelaEntrada = 1;
6249 console.log(oferta);
6250 $('#myModal_'+index+' .numParcelaCartoesBoleto').text(oferta.numeroMaxParcelasOferta - parcelaEntrada);
6251 $('#myModal_'+index+' .precoParcelaCartoesBoleto').text(formataValor(oferta.precoVendaMaxParcelaOferta));
6252 $('#myModal_'+index+' .numParcelaEmedModal').text(oferta.numeroMaxParcelasOferta - parcelaEntrada);
6253 $('#myModal_'+index+' .precoParcelaEmedModal').text(formataValor(oferta.precoVendaMaxParcelaOferta));
6254 $('#myModal_'+index+' .valorParcelaEntradaCartoesBoleto').text(formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaMaxParcelaOferta)/4, 2)));
6255
6256 }
6257
6258 function criaBotaoInscreverEmed(oferta, textoBotao, classeBotao, idBotao, elementoPai){
6259
6260
6261
6262 var htmlBotao = '<button id="'+ idBotao +'" data-index="'+ oferta.indice +'" class="btn btn-card-investimento --inscreva-se '+ classeBotao +'"><span>'+textoBotao+'</span></button>';
6263 elementoPai.append(htmlBotao);
6264
6265 if(classeBotao != 'disabled'){
6266
6267 elementoPai.on("click", '#'+ idBotao, function(ev){
6268 ev.preventDefault();
6269 if(oferta.etapa == '0010'){
6270 const _modal = $('#modalAntesCompraEmed_'+$(this).data('index'));
6271 _modal.css('display','flex');
6272 }else{
6273 execCompraEmed(oferta);
6274 }
6275
6276 });
6277
6278 }
6279
6280 }
6281
6282 function criaBotaoBolsaEmed(oferta, textoBotaoBolsa, classeBotaoBolsa){
6283
6284 var htmlBotao = '<a id="btnBolsa_'+ oferta.indice +'" data-index="'+ oferta.indice +'" class="btn btn-card-investimento --bolsas '+ classeBotaoBolsa +'">'+ textoBotaoBolsa +'</a>';
6285 $('.codigoOferta_'+oferta.codigoOferta+' .ssp-ofertas-emed__card-info-investimento').append(htmlBotao);
6286
6287 if(classeBotaoBolsa != 'disabled'){
6288 // Associa o evento de clique no botão de bolsa
6289 $('#btnBolsa_'+oferta.indice).attr('href', linkBolsa(oferta));
6290 $('#btnBolsa_'+oferta.indice).attr('target', '_blank');
6291 }
6292 }
6293
6294 function criaBotaoBolsa(oferta, textoBotaoBolsa, classeBotaoBolsa){
6295
6296 const botao = $('<a>'+ textoBotaoBolsa +'</a>');
6297 botao.attr('id', 'btnBolsa_' + oferta.indice);
6298 botao.attr('data-index', oferta.indice);
6299 botao.attr('class', 'btn btn-lg btn-info w-100 mt-3 ' + (classeBotaoBolsa || ''));
6300 botao.css('font-size', '14px');
6301 botao.css('font-weight', '600');
6302 botao.css('background-color', '#004EFF');
6303 if(classeBotaoBolsa != 'disabled'){
6304 if(oferta.espacoExterno == 'true'){
6305 botao.attr('data-espaco-ex', 'true');
6306 botao.click((ev)=>{
6307 ev.preventDefault();
6308 $('#btnCompraLocal_'+oferta.indice).hide();
6309 $('#btnBolsaLocal_'+oferta.indice).show();
6310 const _modal = $('#modalAntesCompra_'+oferta.indice);
6311 _modal.css('display','flex');
6312 });
6313 }else{
6314 botao.attr('href', linkBolsa(oferta));
6315 botao.attr('target', '_blank');
6316 }
6317 }
6318
6319 return botao;
6320
6321 }
6322
6323 function verificaBotaoBolsaSS(oferta, codigoUnidade){
6324
6325
6326 if(!isEmed && (!oferta.dataAberturaBolsaOferta || oferta.dataAberturaBolsaOferta == '') ) return;
6327
6328 if(!ehCursoTrampolim){
6329 $.ajax({
6330 url : getUrlConsultaBolsa(oferta),
6331 type : 'get',
6332 dataType: 'json',
6333 beforeSend: function (xhr) {
6334 xhr.setRequestHeader ("Authorization", "KGG4KMW5s0CVowr7d6y6Ww==");
6335 },
6336 })
6337 .done(function(infosBolsa){
6338
6339
6340 if(infosBolsa != null && typeof infosBolsa !== 'undefined'){
6341
6342 var codigoOfertaRetornoBolsa = infosBolsa.DATA[0].COD_EVENTO;
6343 var retornoOfertaBolsaSenac = infosBolsa.DATA[0];
6344
6345 //Sobrescreve as flags de bolsa com o retorno do serviço SS
6346 ofertasMap.get(codigoOfertaRetornoBolsa).vagasBolsaOferta = retornoOfertaBolsaSenac.TEM_VAGA_BOLSA;
6347 ofertasMap.get(codigoOfertaRetornoBolsa).botaoBolsaOferta = retornoOfertaBolsaSenac.BOTAO_BOLSA;
6348
6349 var dadosOferta = ofertasMap.get(codigoOfertaRetornoBolsa);
6350
6351 //calcula o tempo até abertura da bolsa, se houver (apenas depois das 08hrs)
6352 var dadosAberturaBolsa = calculaTempoAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta, dadosOferta.botaoBolsaOferta);
6353 var textoBotaoBolsa = '';
6354 var classeBotaoBolsa = '';
6355 var textoBotaoContadorBolsa = '';
6356 var exibirBotaoBolsa = false;
6357 var exibirContadorBolsa = false;
6358
6359 //EMED
6360 if(isEmed){
6361 verificaBotoesEmed(ofertasMap.get(codigoOfertaRetornoBolsa), true);
6362 return;
6363 }
6364
6365 //Verifica o texto do botão de bolsa
6366 if(retornoOfertaBolsaSenac.TEM_VAGA_BOLSA){
6367
6368 if(dadosAberturaBolsa.bolsaJaAberta)
6369 textoBotaoBolsa = "Inscrever para bolsa de estudo";
6370
6371 else
6372 textoBotaoBolsa = "Inscrições para bolsas a partir de "+formataDataAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta);
6373
6374 if(!ofertasComBolsa){ ofertasComBolsa = true;
6375 }
6376 }else
6377 textoBotaoBolsa = "Vagas esgotadas para bolsas de estudo";
6378
6379 //verifica se o botão de concorrer a bolsa deve aparecer
6380 if(retornoOfertaBolsaSenac.BOTAO_BOLSA && !dadosAberturaBolsa.exibirContador){
6381
6382 exibirBotaoBolsa = true;
6383
6384 if(!ofertasComBolsa) ofertasComBolsa = true;
6385
6386 if(retornoOfertaBolsaSenac.TEM_VAGA_BOLSA && dadosAberturaBolsa.bolsaJaAberta){
6387 classeBotaoBolsa = '';
6388 }else{
6389 classeBotaoBolsa = 'disabled';
6390 }
6391 }
6392
6393 //Verifica se o botão do cronômetro deve aparecer
6394 if(dadosAberturaBolsa.exibirContador){
6395 textoBotaoContadorBolsa = dadosAberturaBolsa.textoContador;
6396 exibirContadorBolsa = true;
6397 }
6398
6399 if(exibirBotaoBolsa)
6400 $('.codigoOferta_'+codigoOfertaRetornoBolsa+' .ssp-card-oferta-curso .ssp-container-botao-bolsa').append( criaBotaoBolsa(dadosOferta, textoBotaoBolsa, classeBotaoBolsa) )
6401 else if(exibirContadorBolsa)
6402 $('.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>')
6403 else {
6404 $('.codigoOferta_'+codigoOfertaRetornoBolsa+'.content-btn-bolsa').hide()
6405 $('.show-price-content.codigoOferta_'+oferta.codigoOferta + ' .ou-separator-desconto').hide()
6406 }
6407
6408 }else{
6409 //EMED
6410 if(isEmed){
6411 verificaBotoesEmed(oferta, false);
6412 }
6413 }
6414
6415 controlaPaginaBolsa()
6416 })
6417 .fail(function(){
6418 $('.content-btn-bolsa.codigoOferta_'+oferta.codigoOferta).hide()
6419 $('.show-price-content.codigoOferta_'+oferta.codigoOferta + ' .ou-separator-desconto').hide()
6420
6421 //EMED
6422 if(isEmed){
6423 verificaBotoesEmed(oferta, false);
6424 }
6425 });
6426
6427
6428 }
6429
6430 }
6431
6432 function controlaPaginaBolsa(){
6433 if(ofertasComBolsa)
6434 $("#ssp-abrir-pagina-bolsa").removeClass("d-none")
6435 else
6436 $("#ssp-abrir-pagina-bolsa").addClass("d-none")
6437 }
6438
6439 function associaEventoBtnFormaPagamento(i){
6440 var modal = document.getElementById("myModal_"+i);
6441
6442 var btn = document.getElementById("myBtn_"+i);
6443
6444 if(btn!=null){
6445 btn.onclick = function(ev) {
6446 event.preventDefault()
6447
6448 $('#modalExtAluno_'+i).addClass('d-none');
6449
6450 var elem = $(ev.target);
6451 var _modal = document.getElementById(
6452 'myModal_'+elem.data('index'));
6453 _modal.style.display = "block";
6454 $('#myModal_'+i).find('.modal-extensao_content:first-child').removeClass('d-none');
6455
6456 }
6457 }
6458
6459 }
6460
6461
6462 function actionBtnComprar(elem){
6463
6464 // Montar object push - google tag manager - 3
6465 ofertaSelecionada = itensEcommerce.get(elem.attr('data-evento'))
6466 sendEventEcommerce("select_item", ofertaSelecionada);
6467 sendEventEcommerce("view_item", ofertaSelecionada);
6468
6469 //Verifica se deve exibir o modal com a localização
6470 if(elem.attr('data-espaco-ex') == 'true'){
6471 $('#btnCompraLocal_'+elem.data('index')).show();
6472
6473 //Limpa onclicks para nao repetir execucao
6474 $('#modalAntesCompra_'+elem.data('index')).off('click', '#btnCompraLocal_'+elem.data('index'))
6475 $('#modalAntesCompra_'+elem.data('index')).on('click', '#btnCompraLocal_'+elem.data('index'), function () {
6476 // Montar object push - google tag manager - 4
6477 sendEventEcommerce("add_to_cart", ofertaSelecionada);
6478 if( elem.attr('data-destino-compra') != '2' )
6479 sendEventEcommerce("begin_checkout", ofertaSelecionada);
6480 })
6481 $('#btnBolsaLocal_'+elem.data('index')).hide();
6482 const _modal = $('#modalAntesCompra_'+elem.data('index'));
6483 _modal.css('display','flex');
6484 }else{
6485 var urlCompra = linkBotaoCompra.replace('\{codigoUnidade\}', elem.attr('data-unidade')).replace('\{codigoOferta\}', elem.attr('data-evento'));
6486 if( elem.attr('data-destino-compra') == '2' ){
6487 addItemBackpack(elem.attr('data-evento'), '#' + elem.attr('id'));
6488 }else{
6489 window.open(urlCompra, '_blank');
6490 }
6491 }
6492
6493
6494
6495 }
6496
6497 function associaEventoBtnComprar(i){
6498 var btnComprar = document.getElementById("btnComprar_"+i);
6499
6500 if(btnComprar != null){
6501 btnComprar.onclick = function(ev) {
6502
6503 ev.preventDefault()
6504 var elem = $(ev.target);
6505 actionBtnComprar(elem);
6506
6507 }
6508 }
6509 }
6510
6511 function associaEventoBtnComprarDentroFormaPgto(i){
6512 var btnComprarFormaPgto = document.getElementById("btnComprarFormaPgto_"+i);
6513
6514 if(btnComprarFormaPgto != null){
6515 btnComprarFormaPgto.onclick = function(ev) {
6516 event.preventDefault()
6517 var elem = $('#btnComprarFormaPgto_'+i);
6518 actionBtnComprar(elem);
6519 }
6520 }
6521 }
6522
6523 function associaEventoBtnComprarConhecaDescontoOk(i){
6524 var btnComprarConhecaDescontoOk = document.getElementById("btnComprarConhecaDescontoOk_"+i);
6525
6526 if(btnComprarConhecaDescontoOk != null){
6527 btnComprarConhecaDescontoOk.onclick = function(ev) {
6528 event.preventDefault()
6529 var elem = $(ev.target);
6530 actionBtnComprar(elem);
6531 }
6532 }
6533 }
6534
6535 function associaEventoBtnComprarConhecaDescontoNot(i){
6536 var btnComprarConhecaDescontoNot = document.getElementById("btnComprarConhecaDescontoNot_"+i);
6537
6538 if(btnComprarConhecaDescontoNot != null){
6539 btnComprarConhecaDescontoNot.onclick = function(ev) {
6540 event.preventDefault()
6541 var elem = $(ev.target);
6542 actionBtnComprar(elem);
6543 }
6544 }
6545 }
6546
6547 function associaEventoBtnAlunoNao(i){
6548 var btnAlunoNao = document.getElementById("btn-aluno-nao_"+i);
6549
6550 if(btnAlunoNao != null){
6551 btnAlunoNao.onclick = function(ev) {
6552 event.preventDefault()
6553 var elem = $(ev.target);
6554 elem.addClass('modal-extensao-btn-aluno-sim-ativo'),
6555 elem.closest('.sim').removeClass('modal-extensao-btn-aluno-sim-ativo');
6556 elem.parent().siblings().find('button').removeClass('modal-extensao-btn-aluno-sim-ativo')
6557 $('#msg-alunoNao_'+i).removeClass('d-none');
6558 $('#msg-alunoSim_'+i).addClass('d-none');
6559 }
6560 }
6561 }
6562
6563 function associaEventoBtnAlunoSim(i){
6564 var btnAlunoSim = document.getElementById("btn-aluno-sim_"+i);
6565
6566 if(btnAlunoSim != null){
6567 btnAlunoSim.onclick = function(ev) {
6568 event.preventDefault()
6569 var elem = $(ev.target);
6570 elem.addClass('modal-extensao-btn-aluno-sim-ativo'),
6571 elem.closest('.nao').removeClass('modal-extensao-btn-aluno-sim-ativo');
6572 elem.parent().siblings().find('button').removeClass('modal-extensao-btn-aluno-sim-ativo')
6573 $('#msg-alunoSim_'+i).removeClass('d-none');
6574 $('#msg-alunoNao_'+i).addClass('d-none');
6575
6576 }
6577 }
6578 }
6579
6580 function associaEventoBtnConheca(i){
6581 var btnModalExtConheca = document.getElementById("btnModalExtConheca_"+i);
6582
6583 if(btnModalExtConheca != null){
6584 btnModalExtConheca.onclick = function(ev) {
6585 event.preventDefault();
6586 var elem = $(ev.target);
6587 elem.closest('.modal-extensao_content').addClass('d-none');
6588 $('#modalExtAluno_'+i).removeClass('d-none');
6589 $('#msg-alunoSim_'+i).addClass('d-none');
6590 $('#msg-alunoNao_'+i).addClass('d-none');
6591 $('#btn-aluno-sim_'+i).removeClass('modal-extensao-btn-aluno-sim-ativo');
6592 $('#btn-aluno-nao_'+i).removeClass('modal-extensao-btn-aluno-sim-ativo');
6593
6594 }
6595 }
6596 }
6597
6598 function associaEventoBtnLocalRealizacao(i){
6599 var btnLocalRealizacao = document.getElementById("btnLocalRealizacao_"+i);
6600
6601 if(btnLocalRealizacao!=null){
6602 btnLocalRealizacao.onclick = function(ev) {
6603 event.preventDefault();
6604 var elem = $(ev.target);
6605 var _modal = document.getElementById(
6606 'modalLocalRealizacao_'+elem.data('index'));
6607 _modal.style.display = "flex";
6608 }
6609 }
6610 }
6611
6612 function associaEventosFecharModal(i){
6613
6614 var span = document.getElementsByClassName("ssp-card-modal-forma-pagamento__btn-close_"+i);
6615 var closeModalLocalRealizacao = document.getElementsByClassName("ssp-card-modal-local-realizacao__btn-close_"+i)[0];
6616 var closeModalAntesCompra = document.getElementsByClassName("ssp-card-modal-antes-compra__btn-close_"+i)[0];
6617 var closeModalSelecionarOutro = document.getElementsByClassName("ssp-card-modal-selecionar-outro__btn-close_"+i)[0];
6618 var btnEntendiLocalRealizacao = document.getElementsByClassName("ssp-modal-local-realizacao__btn_"+i)[0];
6619
6620 if(isEmed){
6621 var closeModalFormaPagamento = document.getElementsByClassName("ssp-btn-emed__voltar-curso_"+i);
6622 for (const val of closeModalFormaPagamento) {
6623
6624 val.onclick = function() {
6625 $('[id^="myModal_"]').each(function(index,modal){
6626 modal.style.display = "none";
6627 });
6628 }
6629 };
6630 }
6631
6632 //event close modal
6633 for (const val of span) {
6634
6635 val.onclick = function() {
6636 $('[id^="myModal_"]').each(function(index,modal){
6637 modal.style.display = "none";
6638 });
6639 }
6640 };
6641
6642 closeModalLocalRealizacao.onclick = function() {
6643
6644 $('[id^="modalLocalRealizacao_"]').each(function(index,modal){
6645 modal.style.display = "none";
6646
6647 });
6648 }
6649
6650 closeModalAntesCompra.onclick = function() {
6651
6652 $('[id^="modalAntesCompra_"], [id^="modalAntesCompraEmed_"]').each(function(index,modal){
6653 modal.style.display = "none";
6654 });
6655 }
6656
6657 closeModalSelecionarOutro.onclick = function() {
6658
6659 $('[id^="modalAntesCompra_"], [id^="modalAntesCompraEmed_"]').each(function(index,modal){
6660 modal.style.display = "none";
6661 });
6662 }
6663
6664 btnEntendiLocalRealizacao.onclick = function() {
6665
6666 $('[id^="modalLocalRealizacao_"]').each(function(index,modal){
6667 modal.style.display = "none";
6668 });
6669 }
6670
6671 // When the user clicks anywhere outside of the modal, close it
6672 window.onclick = function(event) {
6673
6674 $('[id^="myModal_"]').each(function(index,_modal){
6675 if (event.target == _modal)
6676 _modal.style.display = "none";
6677 });
6678 $('[id^="modalLocalRealizacao_"]').each(function(index,_modal){
6679 if (event.target == _modal)
6680 _modal.style.display = "none";
6681 });
6682
6683 $('[id^="modalAntesCompra_"], [id^="modalAntesCompraEmed_"]').each(function(index,_modal){
6684 if (event.target == _modal)
6685 _modal.style.display = "none";
6686 });
6687 }
6688 }
6689
6690 function turmasIniciadas(dataInicioCurso){
6691
6692 var hoje = new Date();
6693 var dataInicioPartes = dataInicioCurso.split('/');
6694 var dataInicioCursoOferta = new Date(dataInicioPartes[2], dataInicioPartes[1] - 1, dataInicioPartes[0] , hoje.getHours(),hoje.getMinutes(),hoje.getSeconds(),hoje.getMilliseconds());
6695
6696 return dataInicioCursoOferta.getTime() <= hoje.getTime();
6697 }
6698
6699
6700 function concatSTR(str1, str2, separador){
6701
6702 if(str2){
6703
6704 return str1+separador+str2;
6705 }
6706 return str1;
6707 }
6708
6709 //Formata exibicao de datas conforme especificacao GCR
6710 function formataPeriodo(dataInicio, dataFim){
6711
6712 var dtInicioPartes = dataInicio.split('/');
6713 var dtFimPartes = dataFim.split('/');
6714
6715 //Não exibir o número zero antes dos números e o dia 1 como 1º
6716 var dInicioFormatada = (parseInt(dtInicioPartes[0].trim()) == 1 ? '1º' : parseInt(dtInicioPartes[0].trim())) +'/'+parseInt(dtInicioPartes[1].trim())+'/'+dtInicioPartes[2].trim();
6717 var dFimFormatada = (parseInt(dtFimPartes[0].trim()) == 1 ? '1º' : parseInt(dtFimPartes[0].trim())) +'/'+parseInt(dtFimPartes[1].trim())+'/'+dtFimPartes[2].trim();
6718
6719 //Quando um curso inicia e finaliza dentro do mesmo ano: 17/2 a 25/4/2020
6720 if(dtInicioPartes[2].trim() == dtFimPartes[2].trim()){
6721
6722 dInicioFormatada = (parseInt(dtInicioPartes[0].trim()) == 1 ? '1º' : parseInt(dtInicioPartes[0].trim()))+'/'+parseInt(dtInicioPartes[1].trim());
6723
6724 //Quando um curso inicia e finaliza dentro do mesmo mês: 5 a 30/4/2020
6725 if(dtInicioPartes[1].trim() == dtFimPartes[1].trim())
6726 dInicioFormatada = (parseInt(dtInicioPartes[0].trim()) == 1 ? '1º' : parseInt(dtInicioPartes[0].trim()));
6727 }
6728
6729 return dInicioFormatada + ' a ' + dFimFormatada;
6730 }
6731
6732 //Decrementa os contadores de abertudas de bolsa
6733 function atualizaTempoAberturasBolsas() {
6734
6735 var btnsContador = (isEmed) ? $('[id^="btnContadorBolsa_"], [id^="btnContadorComprar_"]') : $('[id^="btnContadorBolsa_"]');
6736
6737 btnsContador.each(function() {
6738
6739 var index = $(this).data('index');
6740 var btnContent = $(this).parent('.ssp-btn-group__content');
6741
6742 if(isEmed){
6743 //EMED filtra ofertas e usa outra lista para referenciar as ofertas carregadas
6744 var dadosAberturaBolsa = calculaTempoAberturaBolsa(ofertasMap.get('' +index).dataAberturaBolsaOferta, ofertasMap.get('' + index).horaAberturaBolsaOferta);
6745 }else{
6746 //calcula o tempo até abertura da bolsa, se houver (apenas depois das 08hrs)
6747 var dadosAberturaBolsa = calculaTempoAberturaBolsa(objsTela.ofertas[index].dataAberturaBolsaOferta, objsTela.ofertas[index].horaAberturaBolsaOferta, objsTela.ofertas[index].botaoBolsaOferta);
6748 }
6749
6750 $(this).find('span').text(dadosAberturaBolsa.hours+':'+dadosAberturaBolsa.minutes+':'+dadosAberturaBolsa.seconds);
6751
6752 //Se esgotou o contador
6753 if(dadosAberturaBolsa.hours == 0 && dadosAberturaBolsa.minutes == 0 && dadosAberturaBolsa.seconds == 0){
6754
6755 var elId = $(this).attr('id');
6756
6757 //remove o contador
6758 $(this).remove();
6759
6760 //Habilitar inscrição EMED
6761 if(isEmed){
6762 var ofertaEmed = ofertasMap.get('' +index);
6763 var elementoPai = $('.codigoOferta_'+ofertaEmed.codigoOferta+' .ssp-ofertas-emed__card-info-investimento');
6764
6765 if(elId.indexOf('btnContadorBolsa') >= 0){
6766 if(ofertaEmed.vagasBolsaOferta == true || ofertaEmed.vagasBolsaOferta == "true")
6767 criaBotaoBolsaEmed(ofertaEmed, 'Inscrever para bolsa de Estudo', '');
6768 else
6769 criaBotaoBolsaEmed(ofertaEmed, 'Bolsas de Estudo Esgotadas', 'disabled');
6770 }else if(elId.indexOf('btnContadorComprar') >= 0){
6771
6772 var textoBotao, classeBotao;
6773
6774 textoBotao = 'Inscrever para compra';
6775 classeBotao = '';
6776
6777
6778 criaBotaoInscreverEmed(ofertaEmed, textoBotao, classeBotao, 'btnComprarEmed_' + ofertaEmed.indice, elementoPai);
6779
6780 //Altera o botao do modal de pagamento
6781 var btnIndex = elId.slice(elId.indexOf('_')+1);
6782 var modal = $('#myModal_' + btnIndex).find('.ssp-card-modal-forma-pagamento');
6783 var btnModal = modal.find('#btnComprarEmedModal_' + btnIndex);
6784 if(btnModal){
6785 btnModal.remove();
6786 criaBotaoInscreverEmedModal(ofertaEmed, textoBotao, classeBotao, 'btnComprarEmedModal_' + btnIndex, modal, btnIndex);
6787 preencheDadosEmedModal(ofertaEmed,btnIndex);
6788 }
6789
6790 }
6791
6792 }else{
6793
6794 //Checa as condições das vagas do botão de bolsa
6795 var btnBolsaHTML = null;
6796 if(objsTela.ofertas[index].vagasBolsaOferta == true || objsTela.ofertas[index].vagasBolsaOferta == "true")
6797 btnBolsaHTML = criaBotaoBolsa(objsTela.ofertas[index], 'Inscrever para bolsa de estudo');
6798 else
6799 btnBolsaHTML = criaBotaoBolsa(objsTela.ofertas[index], 'Vagas esgotadas para bolsas de estudo', 'disabled');
6800
6801 $('.codigoOferta_'+ objsTela.ofertas[index].codigoOferta +'.ssp-container-botao-bolsa').append(btnBolsaHTML);
6802
6803
6804 }
6805 }
6806
6807 });
6808
6809 }
6810
6811 // Retorna um objeto com o tempo de abertura da bolsa, em horas, minutos e segundos
6812 function calculaTempoAberturaBolsa(dataAberturaBolsa, horaAberturaBolsa, botaoBolsa){
6813
6814 var dadosAberturaBolsa = {
6815 days : '',
6816 hours : '',
6817 minutes : '',
6818 seconds : '',
6819 bolsaJaAberta: false,
6820 exibirContador: false,
6821 textoContador: ''
6822 };
6823
6824 if(dataAberturaBolsa.length == 0 || horaAberturaBolsa.length == 0)
6825 return dadosAberturaBolsa;
6826
6827 var now = todayG;
6828 var dia = now.getDate();
6829 var horarioDia = now.getHours();
6830
6831 var tempoRestante= tempoRestanteAberturaBolsa(dataAberturaBolsa, horaAberturaBolsa);
6832
6833 //console.log('tempo restante '+tempoRestante);
6834
6835 var diaAberturaBolsa = dataAberturaBolsa.split('-')[2];
6836
6837 var delta = tempoRestante / 1000;
6838
6839 var days = Math.floor(delta / 86400);
6840
6841 delta -= days * 86400;
6842
6843 var hours = Math.floor(delta / 3600) % 24;
6844 delta -= hours * 3600;
6845
6846 var minutes = Math.floor(delta / 60) % 60;
6847 delta -= minutes * 60;
6848
6849 var seconds = Math.floor(delta % 60);
6850
6851 //Zerar contador para data que ja passou
6852 if(days < 0){
6853 dadosAberturaBolsa.days = 0;
6854 dadosAberturaBolsa.hours = '00';
6855 dadosAberturaBolsa.minutes = '00';
6856 dadosAberturaBolsa.seconds = '00';
6857 }else{
6858 dadosAberturaBolsa.days = days;
6859 dadosAberturaBolsa.hours = hours < 10 ? '0'+hours : hours;
6860 dadosAberturaBolsa.minutes = minutes < 10 ? '0'+minutes : minutes;
6861 dadosAberturaBolsa.seconds = seconds < 10 ? '0'+seconds : seconds;
6862 }
6863
6864 dadosAberturaBolsa.bolsaAberta = days <= 0 && hours <= 0 && minutes <= 0 && seconds <= 0;
6865 var horaExibeContador = (isEmed) ? 11 : 8;
6866 if(!isEmed && botaoBolsa == false){
6867 dadosAberturaBolsa.exibirContador = false;
6868 }else{
6869 dadosAberturaBolsa.exibirContador = days == 0 && horarioDia >= horaExibeContador && !dadosAberturaBolsa.bolsaAberta && (diaAberturaBolsa == dia);
6870 dadosAberturaBolsa.textoContador = dadosAberturaBolsa.hours + ':' + dadosAberturaBolsa.minutes + ":"+ dadosAberturaBolsa.seconds;
6871 }
6872 dadosAberturaBolsa.bolsaJaAberta = tempoRestante < 0;
6873
6874 return dadosAberturaBolsa;
6875
6876 }
6877
6878 // Verifica se uma oferrta já chegou sua data de abertura
6879 function tempoRestanteAberturaBolsa(dataAberturaBolsa, horaAberturaBolsa){
6880 // console.log(dataAberturaBolsa);
6881 // console.log(horaAberturaBolsa);
6882
6883 //var today = new Date();
6884
6885
6886 //console.log( "TodayG "+ todayG);
6887
6888 //Precisa fazer formatação nos horários pois pode estar como 9h ou 9h30
6889 var partesHora = horaAberturaBolsa.split('h');
6890
6891 var partesHora = partesHora.filter(function (el) {
6892 return el != "";
6893 });
6894
6895 //formato 9h
6896 if(partesHora.length == 1)
6897 var aberturaBolsa = new Date(dataAberturaBolsa+'T'+horaAberturaBolsa.replace('h', '').trim()+":00");
6898
6899 else{
6900
6901 //format 9h3
6902 if(partesHora[1].length == 1)
6903 var aberturaBolsa = new Date(dataAberturaBolsa+'T'+partesHora[0].replace('h', '').trim()+':'+partesHora[1] +'0');
6904
6905 //formato 9h30
6906 else
6907 var aberturaBolsa = new Date(dataAberturaBolsa+'T'+partesHora[0].replace('h', '').trim()+':'+partesHora[1]);
6908 }
6909
6910 // console.log(aberturaBolsa);
6911 return aberturaBolsa - todayG;
6912 }
6913
6914 function formataDataAberturaBolsa(dataAberturaBolsa, horaAberturaBolsa){
6915 var dataPartes = dataAberturaBolsa.split('-');
6916
6917 return dataPartes[2]+'/'+dataPartes[1]+ ' às '+horaAberturaBolsa.replace('h', '').trim()+' horas';
6918
6919 }
6920
6921 function formataValor(valor){
6922
6923 if(!valor.toString().includes(".")){
6924 valor = parseFloat(valor).toLocaleString('pt-BR')+",00";
6925 }else{
6926 valor = parseFloat(valor).toLocaleString('pt-BR');
6927
6928 if(valor.split(",").length == 2){
6929
6930 if(valor.split(",")[1].length == 1)
6931 valor += "0";
6932
6933 }else
6934 valor += ",00";
6935 }
6936
6937 return valor;
6938 }
6939
6940 function ajustarCasasDecimaisSemArredondar(numero, casas) {
6941 const str = numero + ''
6942 const arr = str.split('.')
6943 return parseFloat(arr[0].concat('.').concat(arr[1] ? arr[1].substring(0, casas) : '0'))
6944 }
6945
6946 function possuiCriteriosDesconto2022(dt) {
6947 return dt.substring(dt.lastIndexOf('/') + 1) >= 2022
6948 && (
6949 $('[name="tipoCurso"]').val() == 'livre'
6950 || ($('[name="tipoCurso"]').val() == 'tecnico' && $('[name="modalidades"]').val() == 'espec.-tecnica-de-nivel-medio')
6951 || $('[name="tipoCurso"]').val() == 'extensao'
6952 )
6953 }
6954
6955 function strToFloat(str) {
6956 const separator = str.includes(',') ? ',' : '.'
6957
6958 const numArr = str.split(separator)
6959 const inteiro = numArr[0].replaceAll('.', '').replaceAll(',', '.')
6960 const decimal = numArr[1] ? numArr[1].replaceAll('.', '').replaceAll(',', '.') : ''
6961 return parseFloat(inteiro.concat('.').concat(decimal ? decimal : '0'))
6962 }
6963
6964 function possuiMensalidade99(oferta) {
6965 if(!oferta.precoVendaMaxParcelaOferta
6966 || (oferta.precoVendaMaxParcelaOferta != 99
6967 && parseFloat(oferta.precoParcelaCartoes.replace(',','.')) != 99
6968 && parseFloat(oferta.precoParcelaBoleto.replace(',','.')) != 99))
6969 return false
6970
6971 if($('[name="modalidades"]').val() == 'hab.-tecnica-de-nivel-medio')
6972 return true
6973
6974 if($('[name="modalidades"]').val() == 'espec.-tecnica-de-nivel-medio')
6975 return true
6976
6977 if($('[name="modalidades"]').val() == 'qualificacao-profissional')
6978 return true
6979
6980 return false
6981 }
6982
6983 function htmlSlickArea(index, oferta, diasSemanaHTML, codigoUnidade) {
6984 let temDesconto = possuiCriteriosDesconto2022(oferta.dataInicio)
6985 temDesconto = temDesconto && !possuiMensalidade99(oferta)
6986
6987 const btnLocalReal = function(oferta){
6988
6989 var btn = `<div class="container-local-realizacao ` + (oferta.espacoExterno == 'true' ? '' : 'd-none-btn') + (localLivreOnline(oferta.localEspacoExterno) ? ' idioma-online' : '') + `">`;
6990
6991 btn += (localLivreOnline(oferta.localEspacoExterno)) ?
6992 `<a id="btnLocalRealizacao_` + index + `" data-index="` + index + `" class="btn-idiomas__aula-online" href="#">
6993 <i class="fas fa-wifi"></i>Aulas Online - ao vivo</a>`
6994 : `<a id="btnLocalRealizacao_` + index + `" data-index="` + index + `" class="ssp-card-oferta-curso__local-realizacao-content__title" href="#"><i class="fas fa-user"></i>Onde as aulas vão acontecer?</a>`;
6995
6996 btn += `</div>`;
6997
6998 return btn;
6999
7000 }
7001
7002 // Card Oferta
7003
7004 let result = `
7005 <div class="slick-area__item card_oferta_` + index + ` codigoOferta_` + oferta.codigoOferta + ` ` + (temDesconto ? 'ssp-desconto-2022' : '') + `">
7006
7007 <div class="ssp-card-oferta-curso">
7008
7009 <div class="content-data-dias">
7010
7011 <div class="ssp-card-oferta__info-turma-iniciada" id="aviso-turma-iniciada-` + index + `" style="display:none">
7012 <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>
7013 </div>
7014
7015
7016 <div>
7017 <small class="ssp-card-oferta-curso__title-item">Período:</small>
7018 <h6 class="ssp-card-oferta-curso__item-data-periodo item-data-periodo_` + index + `">` + formataPeriodo(oferta.dataInicio, oferta.dataFim) + `</h6>
7019 </div>
7020
7021 <div class="content-horario-dias-semana">
7022
7023 <div class="horario">
7024 <small class="ssp-card-oferta-curso__title-item">Horário e dias das aulas:</small>
7025 </div> ` +
7026
7027 `<div class="ssp-card-oferta-curso__dia-hora_content">
7028 ` + diasSemanaHTML + `
7029 </div>
7030
7031 </div>
7032
7033 ` + btnLocalReal(oferta);
7034
7035 result = result + `
7036 </div>
7037 `
7038
7039 //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
7040 //Adicionada a validação dos preços da oferta em 07/06/2022 - Tarefa 9498
7041 const estaSemValorOferta = oferta.botaoCompraOferta == ''
7042 || oferta.botaoCompraOferta == 'false'
7043 || !oferta.precoVendaOferta
7044 || !oferta.precoCheioOferta
7045 || !oferta.precoVendaMaxParcelaOferta
7046 || strToFloat(oferta.precoVendaOferta) == 0
7047 || strToFloat(oferta.precoCheioOferta) == 0
7048 || strToFloat(oferta.precoVendaMaxParcelaOferta) == 0
7049
7050 //Trecho inicial do Bolsa de estudo
7051 result += `<div class="content-btn-bolsa codigoOferta_` + oferta.codigoOferta + (estaSemValorOferta ? ' pb-0' : '') + `">
7052 <div class="ssp-card-oferta__info-turma-content">
7053 <h6 class="ssp-card-oferta__info-turma mb-0">Bolsas de estudo</h6>
7054 </div>
7055 <div class="codigoOferta_` + oferta.codigoOferta + ` ssp-container-botao-bolsa"></div>
7056 </div>
7057 `
7058
7059 if(estaSemValorOferta) {
7060 result = result + `
7061 <div class="content-buttons hide">
7062 </div>
7063 `
7064 return result;
7065 }
7066
7067
7068 //Trecho final do Bolsa de estudo e inclusao de botao de expansao do "Valores para compra"
7069 result += ` <div class="show-price-content codigoOferta_` + oferta.codigoOferta + `">
7070 <div class="ou-separator-desconto">Ou</div>
7071 <button type="button" class="btn-show-price">
7072 <p>Saiba mais sobre:</p>
7073 <div onclick="togglePriceCard('codigoOferta_` + oferta.codigoOferta + `')">
7074 <i class="fas fa-money-bill"></i>
7075 <span>Valores para compra</span>
7076 </div>
7077 </button>
7078 </div>
7079 `
7080
7081 result = result + `
7082 <div class="content-valores-descontos hide-price codigoOferta_` + oferta.codigoOferta + `">
7083 `
7084
7085 if( temDesconto && !ehCursoTrampolim ) {
7086 result = result + `
7087 <div class="ssp-card-oferta__info-turma-content">
7088 <h6 class="ssp-card-oferta__info-turma">Valores para compra</h6>
7089 </div>
7090
7091 <div class="block-valor-desconto">
7092
7093 <div class="tag-label-desconto">
7094 <small class="ssp-card-oferta-curso__title-item">Valor com </small>
7095 <span class="ssp-card-oferta-curso__valor-desconto">50% de desconto*</span>
7096 </div>
7097
7098 <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>
7099
7100 <div class="ssp-card-oferta-curso__desconto-content">
7101 <p>De: <span class="ssp-card-oferta-curso__valor-antigo">R$ ` + formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaOferta), 2)) + `</span></p>
7102 <p>Por: <span class="ssp-card-oferta-curso__valor-desconto">R$ ` + formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaOferta)/2, 2)) + `</span></p>
7103 </div>
7104 `
7105
7106 if($('[name="tipoCurso"]').val() == 'extensao') {
7107 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>`
7108 } else {
7109 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>`
7110 }
7111
7112 result = result + `
7113 <div class="ou-separator-desconto">Ou</div>
7114
7115 <div class="block-valor-total">
7116
7117 <small class="ssp-card-oferta-curso__title-item">Valor sem desconto:</small>
7118
7119 <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(oferta.precoVendaMaxParcelaOferta) + `</h6>
7120
7121 <div class="ssp-card-oferta-curso__desconto-content">
7122 <p>Valor total: <strong>R$ ` + formataValor(strToFloat(oferta.precoVendaOferta)) + `</strong></p>
7123 </div>
7124
7125 </div>
7126 `
7127 }else{
7128
7129 // itens que são diferentes entre técnico e livres comprado a extensão
7130 if($('[name="tipoCurso"]').val() == 'extensao'){
7131 result = result + `
7132
7133 <div class="block-valor-total">
7134
7135 <div class="investimento" id="container_investimento_` + index + `">
7136
7137 <small class="ssp-card-oferta-curso__title-item">Investimento:</small>
7138
7139 <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaMaxParcelaOferta))) + `</h6>
7140
7141 <div class="ssp-card-oferta-curso__desconto-content">
7142 <p>Ou: <span class="ssp-card-oferta-curso__valor-antigo text-decoration-none">R$ ` + formataValor(oferta.precoVendaOferta) + `</span> à vista</p>
7143 </div>
7144
7145 </div>
7146
7147 </div>
7148 `
7149 } else {
7150 result = result + `
7151 <div class="block-valor-total">
7152 <div class="investimento" id="container_investimento_` + index + `">
7153 `
7154
7155 // Não mostrar mensagem de 30% de desconto em casos especificos
7156 if(temDesconto){
7157 result = result + `
7158 <small class="ssp-card-oferta-curso__title-item font-weight-bold">Valor com 30% de desconto:</small>
7159 `
7160 }
7161
7162 if(oferta.precoCheioOferta == oferta.precoVendaOferta) {
7163 result = result + `
7164 <small class="ssp-card-oferta-curso__title-item">Valor do curso:</small>
7165 <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(oferta.precoVendaMaxParcelaOferta) + `</h6>
7166
7167 <div class="ssp-card-oferta-curso__desconto-content">
7168 <p>Ou <span class="ssp-card-oferta-curso__valor-antigo text-decoration-none">R$ ` + formataValor(oferta.precoVendaOferta) + `</span></p>
7169 </div>
7170 </div>
7171 </div>
7172 `
7173 } else {
7174 result = result + `
7175 <small class="ssp-card-oferta-curso__title-item">Investimento:</small>
7176 <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(oferta.precoVendaMaxParcelaOferta) + `</h6>
7177
7178 <div class="ssp-card-oferta-curso__desconto-content">
7179 <p>De: <span class="ssp-card-oferta-curso__valor-antigo">R$ ` + formataValor(oferta.precoCheioOferta) + `</span></p>
7180 <p>Por: <span class="ssp-card-oferta-curso__valor-desconto">R$ ` + formataValor(oferta.precoVendaOferta) + `</span></p>
7181 </div>
7182 </div>
7183 </div>
7184 `
7185 }
7186 }
7187 }
7188
7189
7190 // itens que são diferentes entre técnico e livres comprado a extensão
7191 result = result + `
7192
7193 <div class="ssp-card-oferta-curso__formas-pagamento-content" id="container_forma_pgto_` + index + `">
7194
7195 <span>Saiba mais sobre:</span>
7196
7197 <div>
7198 <i class="ssp-card-oferta-curso__formas-pagamento-content__icon-credit-card"></i>
7199 <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>
7200 </div>
7201
7202 </div>
7203
7204 <div class="content-buttons">
7205
7206 <div class="ssp-btn-group__content botoes-oferta-container_` + index + `">
7207
7208 <a href="#a" id="btnComprar_` + index + `" data-espaco-ex="` + (oferta.espacoExterno == 'true' ? 'true' : 'false') + `" 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 ` + (oferta.botaoCompraOferta == 'true' ? (oferta.vagasParaCompraOferta == 'true' ? '' : 'disabled') : 'd-none-btn') + `" style="font-size:16px;font-weight: 600;">` + (oferta.vagasParaCompraOferta == 'true' ? 'COMPRAR' : 'Vagas esgotadas para compra') + `</a>
7209
7210 </div>
7211
7212 </div>
7213
7214 </div>
7215
7216 </div>
7217 `
7218
7219 return result
7220 }
7221
7222 var htmlModalLocalRealizacao = '<div id="modalLocalRealizacao_{index}" class="ssp-modal">'
7223 htmlModalLocalRealizacao += '<div class="ssp-modal-local-realizacao">'
7224 htmlModalLocalRealizacao += '<div class="ssp-modal-local-realizacao__title-content">'
7225
7226 htmlModalLocalRealizacao += '{tituloLocalRealizacao}'
7227
7228 htmlModalLocalRealizacao += '<i class="ssp-card-modal-local-realizacao__btn-close_{index} ssp-card-modal-forma-pagamento__btn-close"></i>'
7229 htmlModalLocalRealizacao += '</div>'
7230 htmlModalLocalRealizacao += '<div class="ssp-modal-local-realizacao__texto">'
7231 htmlModalLocalRealizacao += '<p class="{classeTextoInfoLocalRealizacao}">A unidade {nomeUnidade} realizará as aulas em outro endereço, conforme informações abaixo:</p>'
7232 htmlModalLocalRealizacao += '<p><span class="ssp-modal-local-realizacao__subtitle localEspacoExternoTexto_{index}">{localEspacoExterno}</span></p>'
7233 htmlModalLocalRealizacao += '<address>'
7234 htmlModalLocalRealizacao += '<span id="endereco_realizacao_{index}" class="{classeEnderecoRealizacao}">{ruaEspacoExterno}, {numeroEspacoExterno} {complementoEspacoExterno}<br></span>'
7235 htmlModalLocalRealizacao += '<span id="bairro_realizacao_{index}" class="{classeBairroRealizacao}">Bairro: {bairroEspacoExterno}<br></span>'
7236 htmlModalLocalRealizacao += '<span id="cidade_realizacao_{index}" class="{classeCidadeRealizacao}">Cidade: {cidadeEspacoExterno} - SP<br></span>'
7237 htmlModalLocalRealizacao += '<span id="cep_realizacao_{index}" class="{classeCepRealizacao}">CEP: {cepEspacoExterno}</span>'
7238 htmlModalLocalRealizacao += '</address>'
7239 htmlModalLocalRealizacao += '<div class="btn ssp-modal-local-realizacao__btn-content">'
7240 htmlModalLocalRealizacao += '<a class="btn ssp-modal-local-realizacao__btn {classeEntendi} ssp-modal-local-realizacao__btn_{index}" href="#a">Entendi</a>'
7241 htmlModalLocalRealizacao +='</div>'
7242 htmlModalLocalRealizacao +='</div>'
7243 htmlModalLocalRealizacao +='</div>'
7244 htmlModalLocalRealizacao +='</div>';
7245
7246 var htmlModalAntesCompra = '<div id="modalAntesCompra_{index}" class="ssp-modal">'
7247 htmlModalAntesCompra += '<div class="ssp-modal-local-realizacao">'
7248 htmlModalAntesCompra += '<div class="ssp-modal-local-realizacao__title-content">'
7249 htmlModalAntesCompra += '<h6 class="ssp-modal-local-realizacao__title"> LEMBRETE IMPORTANTE!</h6>'
7250 htmlModalAntesCompra += '<i class="ssp-card-modal-antes-compra__btn-close_{index} ssp-card-modal-forma-pagamento__btn-close"></i>'
7251 htmlModalAntesCompra += '</div>'
7252 htmlModalAntesCompra += '<div class="ssp-modal-local-realizacao__texto">'
7253 htmlModalAntesCompra += '<p class="{classeTextoInfoLocalRealizacao}">A unidade {nomeUnidade} realizará as aulas em outro endereço, conforme informações abaixo:</p>'
7254 htmlModalAntesCompra += '<p><span class="ssp-modal-local-realizacao__subtitle localEspacoExternoTexto_{index}">{localEspacoExterno}</span></p>'
7255 htmlModalAntesCompra += '<address>'
7256 htmlModalAntesCompra += '<span id="endereco_realizacao_{index}" class="{classeEnderecoRealizacao}">{ruaEspacoExterno}, {numeroEspacoExterno} {complementoEspacoExterno}<br></span>'
7257 htmlModalAntesCompra += '<span id="bairro_realizacao_{index}" class="{classeBairroRealizacao}">Bairro: {bairroEspacoExterno}<br></span>'
7258 htmlModalAntesCompra += '<span id="cidade_realizacao_{index}" class="{classeCidadeRealizacao}">Cidade: {cidadeEspacoExterno} - SP<br></span>'
7259 htmlModalAntesCompra += '<span id="cep_realizacao_{index}" class="{classeCepRealizacao}">CEP: {cepEspacoExterno}</span>'
7260 htmlModalAntesCompra += '</address>'
7261 htmlModalAntesCompra += '<div class="btn ssp-modal-local-realizacao__btn-content">'
7262 htmlModalAntesCompra += '{componentBuyConfirmation}'
7263 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>'
7264 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>'
7265 htmlModalAntesCompra +='</div>'
7266 htmlModalAntesCompra +='</div>'
7267 htmlModalAntesCompra +='</div>'
7268 htmlModalAntesCompra +='</div>';
7269
7270 var htmlSlickAreaDiasSemana = '<div class="ssp-card-oferta-curso__dia-hora-item">'
7271 htmlSlickAreaDiasSemana +='<p class="ssp-card-oferta-curso__dia-hora-item__dia">'
7272 htmlSlickAreaDiasSemana += '<span data-dia-hora="dias-semana">{diasSemana}</span>'
7273 htmlSlickAreaDiasSemana += '<span data-dia-hora="horário">{horasSemana}</span>'
7274 htmlSlickAreaDiasSemana += '</p>'
7275 htmlSlickAreaDiasSemana += '</div>';
7276
7277
7278 //Montar object push - google tag manager - 5
7279 function criaItensEcommerce(ofertas){
7280
7281 let nomeUnidadeSelecionada = objsTela.unidades[ultimaUnidade].nome
7282
7283 let dadosCurso = {
7284 //Pegar do freemarker
7285 tituloComercial : $('[name="tituloComercial"]').val(),
7286 tipoCurso : $('[name="nomeCategoriaTipoCurso"]').val(),
7287 formato : $('[name="formato"]').data("formato")
7288 }
7289
7290 let ecommerceObject = {
7291
7292 item_id: "", //codOferta - oferta,
7293 item_name: "", //Nome do curso - curso,
7294 affiliation: "", //nome da unidade - oferta,
7295 currency: "BRL", //Moeda - "BRL",
7296 discount: "", //desconto - oferta,
7297 index: "", //indice da lista - i,
7298 item_brand: "Senac SP", //"Senac SP",
7299 item_category: "", //categoria do curso - curso,
7300 item_list_id: "", //"60",
7301 item_list_name: "", //"São Carlos" - Oferta,
7302 item_variant: "", //modalidade - curso,
7303 price: "", //preco cheio - oferta,
7304 quantity: 1
7305
7306 }
7307
7308 let itensEcommerce = new Map();
7309
7310 for(var i = 0; i < ofertas.length; i++){
7311
7312 itensEcommerce.set(ofertas[i].codigoOferta, {
7313
7314 item_id: ofertas[i].codigoOferta, //codOferta - oferta,
7315 item_name: dadosCurso.tituloComercial, //Nome do curso - curso,
7316 affiliation: nomeUnidadeSelecionada, //nome da unidade - oferta,
7317 currency: "BRL", //Moeda - "BRL",
7318 discount: parseFloat(ofertas[i].precoCheioOferta - ofertas[i].precoVendaOferta).toFixed(2), //desconto - oferta,
7319 index: i, //indice da lista - i,
7320 item_brand: "Senac SP", //"Senac SP",
7321 item_category: dadosCurso.tipoCurso, //categoria do curso - curso,
7322 item_list_id: objsTela.unidades[ultimaUnidade].codigoUnidade, //"60",
7323 item_list_name: nomeUnidadeSelecionada, //"São Carlos" - Oferta,
7324 item_variant: dadosCurso.formato, //modalidade - curso,
7325 price: parseFloat(ofertas[i].precoCheioOferta).toFixed(2), //preco cheio - oferta,
7326 quantity: 1
7327
7328 }
7329 )
7330 }
7331
7332 return itensEcommerce;
7333 }
7334
7335 //EMED - ELEMENTOS DINAMICOS
7336 const htmlSlickAreaEmed = function(oferta){
7337 var btnid = 'myBtn_' + oferta.indice;
7338 const diasHorarios = function(oferta){
7339 return oferta.diasDaSemanaOferta.join(', ').toLowerCase();
7340
7341 }
7342
7343
7344 return `
7345 <div class="ssp-ofertas-emed__card codigoOferta_`+ oferta.codigoOferta + `">
7346
7347 <div class="ssp-ofertas-emed__card-info-turma">
7348
7349 <div class="item-content">
7350 <i class="fas fa-calendar-alt calendar-icon-turma"></i>
7351 <p class="title-turma">`+ oferta.titulo +`</p>
7352 <span class="text-default" data-info="info-turma">Alunos na turma: <strong>até `+ oferta.qtdeTotalVagas +`</strong></span>
7353 </div>
7354
7355 <div class="content-previsao-inicio-termino">
7356
7357 <div class="item-content">
7358 <span class="text-default">Previsão de início:</span>
7359 <span class="text-default-lg">`+ formatarDataEmed(oferta.dataInicio,oferta.etapa,false) +`</span>
7360 </div>
7361
7362 <div class="item-divisor"></div>
7363
7364 <div class="item-content">
7365 <span class="text-default">Previsão de término:</span>
7366 <span class="text-default-lg">`+ formatarDataEmed(oferta.dataFim,oferta.etapa,true) +`</span>
7367 </div>
7368
7369 </div>
7370
7371
7372 <div class="item-divisor"></div>
7373
7374 <div class="item-content">
7375 <span class="text-default">Dias e horários das aulas:</span>
7376 <span class="text-default-lg" style="text-transform: capitalize;">`+ diasHorarios(oferta) +`</span>
7377 <span class="text-default-lg">`+ oferta.horaInicio.replace(':', 'h') + ' às ' + oferta.horaFimOferta.replace(':', 'h') +`</span>
7378 </div>
7379
7380 </div>
7381
7382 <div class="ssp-ofertas-emed__card-info-investimento">
7383 <p class="title-investimento">Investimento anual:</p>
7384
7385 <div class="item-content-investimento">
7386 <span class="txt-parcelas">Até `+ oferta.numeroMaxParcelasOferta +`x</span>
7387 <span class="txt-valor-parcela">R$ `+ formataValor(oferta.precoVendaMaxParcelaOferta) +`</span>
7388 </div>
7389
7390 <div class="item-content-investimento">
7391 <p class="txt-boleto-cartao">(boleto bancário ou cartão de crédito)</p>
7392 </div>
7393
7394 <div class="item-content-investimento">
7395 <i class="fas fa-credit-card icon-cartao-credito"></i>
7396 <a id="`+ btnid +`" data-index="`+ oferta.indice +`" href="#" class="link-descontos-parcelamentos">Descontos e Parcelamentos</a>
7397 </div>
7398
7399 </div>
7400
7401 </div>
7402
7403 `;
7404 }
7405
7406
7407 function loadCursosVocePodeGostar(){
7408
7409 if(isEmed){
7410 var url = urlSearchCursosPodeGostarEmed
7411 .replace('\{groupId\}', groupId)
7412 .replace('\{tiposDeCurso\}',$('[name="idTipoCurso"]').val())
7413 .replace('\{limit\}', 12)
7414 .replace('\{articleId\}', $('[name="articleId"]').val());
7415 }else{
7416 var url = urlSearchCursosPodeGostar
7417 .replace('\{companyId\}',themeDisplay.getCompanyId())
7418 .replace('\{groupId\}', groupId)
7419 .replace('\{userId\}',themeDisplay.getUserId())
7420 .replace('\{articleId\}',$('[name="articleId"]').val())
7421 .replace('\{limit\}', 12);
7422 }
7423
7424
7425 $.ajax({
7426 url : url,
7427 type : 'get',
7428 beforeSend: function(){
7429 loading('#slider-curso');
7430 }
7431 })
7432 .done(function(cursos){
7433
7434 if(cursos.length > 0){
7435
7436 cursos = JSON.parse(cursos);
7437
7438 if(isEmed) cursos = cursos['cursos'];
7439
7440 if(cursos.length > 0) $('#section-cursos-voce-pode-gostar').removeClass('d-none');
7441 else {
7442 $('#section-cursos-voce-pode-gostar').addClass('d-none');
7443 return;
7444 }
7445
7446 var articles = [];
7447
7448 $.each(cursos, function(k, c){
7449 articles.push(c.articleId);
7450 });
7451
7452 //Verifica a situação dos botoes de inscrições e bolsa
7453 $.ajax({
7454 url : '/o/senac-content-services/verificaBotoesInscricaoEBolsa/'+groupId+'/'+articles.join(','),
7455 type : 'get'
7456 })
7457 .done(function(infoBotoes){
7458
7459 if(infoBotoes.length > 0) {
7460
7461 infoBotoes = JSON.parse(infoBotoes);
7462
7463 $('#slider-curso').empty();
7464
7465 $.each(cursos, function(k, c){
7466
7467 $('#slider-curso').append(buildCardCurso(c, infoBotoes))
7468
7469 });
7470
7471 $('#slider-curso').addClass(
7472 'slick-area slick-area--md-bleed slider-container slick-area-cursos-pode-gostar');
7473
7474 sliderCurso('.slick-area-cursos-pode-gostar');
7475 }
7476 });
7477 }
7478
7479 })
7480 .fail(function(jqXHR, textStatus, msg){
7481 // alert(msg);
7482 });
7483
7484 }
7485
7486 /*
7487 * Armazena a navegação em cookies, se habilitado
7488 */
7489 $(document).on("click", ".ck-curso", function() {
7490
7491 //Verifica se o cookie está habilitado
7492 if(getCookie('portalSenacCookie') != null){
7493
7494 var articleId = $(this).data('ck');
7495 manageCookieArray('ck-cursos', articleId);
7496
7497 }
7498
7499 });
7500
7501
7502
7503
7504
7505 $(function(){
7506
7507 if($('#unidades-ofertas').find('option').length ==0){
7508
7509 $('.ssp-container-selecione-unidade').addClass('d-none')
7510
7511 }
7512
7513 });
7514
7515 function avisoNovasTurmas(){
7516
7517
7518 window.event.preventDefault()
7519
7520 //var unidadeSelecionada = $('#select-registro-interesse').val();
7521 //este select tem 2 valores separados por @ -> categoryId@codUnidade
7522 // var unidadeSelecionada = $('#unidades-ofertas').val();
7523
7524 //Código fixo quando Senac Ao Vivo
7525 var codUnidadeSelectRegInt = (isAoVivo) ? codUnidadeSenacAoVivo : $('#unidades-ofertas').val().split("@")[1];
7526
7527 // if(codUnidadeSelectRegInt && codUnidadeSelectRegInt.length){
7528
7529 //Se ja tiver logado , redireciona para o registro
7530 if(getCookie('ticket') == null){
7531
7532 //Abre modal login
7533 $('#modal-login').removeClass('d-none');
7534
7535 }else{
7536
7537 abrirModalRegistroInteresse(codUnidadeSelectRegInt);
7538
7539 verificaBtnEnviarRegistroInteresseAtivo();
7540 }
7541
7542 window.onclick = function(event) {
7543 $('[id="modal-registro-interesse"]').each(function(index,_modal){
7544 if (event.target == _modal) {
7545 $('#modal-registro-interesse').addClass('d-none');
7546 $("body").removeClass("overflow-hidden")
7547 }
7548 });
7549 }
7550
7551 // }
7552 }
7553 function login(){
7554 var unidadeSelecionada
7555 var codUnidadeSelectRegInt
7556 doLogin({
7557 user: $('#login-email-modal').val(),
7558 pass: $('#login-password-modal').val(),
7559 btnLoadingSelector: '#btnLogin',
7560 before: () => {
7561 $('#mensagem-erro-login').addClass('d-none')
7562
7563 unidadeSelecionada = $('#unidades-ofertas').val();
7564 codUnidadeSelectRegInt = (isAoVivo) ? codUnidadeSenacAoVivo : $('#unidades-ofertas').val().split("@")[1];
7565 },
7566 done: (data) => {
7567 var loginData = JSON.parse(data);
7568
7569 if(loginData.status == 200 || loginData.status == 201){
7570 //Após logar-se, exibe o modal p/registro de interesse
7571 abrirModalRegistroInteresse(codUnidadeSelectRegInt);
7572 verificaBtnEnviarRegistroInteresseAtivo();
7573 //esconde o modal de login
7574 $('#modal-login').addClass('d-none');
7575 }
7576 },
7577 errorMessageSelector: '#mensagem-erro-login',
7578 error: (err) => console.error(err)
7579 })
7580 }
7581
7582 function registroSelecionaTodosDias(){
7583
7584 if($(this).hasClass('ssp-week-day-active')){
7585 $(this).removeClass('ssp-week-day-active')
7586 $('.ssp-week-day').removeClass('ssp-week-day-active')
7587 }else{
7588 $(this).addClass('ssp-week-day-active')
7589 $('.ssp-week-day').addClass('ssp-week-day-active')
7590 }
7591
7592 verificaBtnEnviarRegistroInteresseAtivo();
7593 }
7594
7595 function registroSelecionaTodosPeriodos(){
7596
7597 if($(this).is(':checked')){
7598 $('.ssp-card-registro-interesse__check-itens-content.periodos-registro-interesse input[type=checkbox]').prop('checked', true);
7599 }else{
7600 $('.ssp-card-registro-interesse__check-itens-content.periodos-registro-interesse input[type=checkbox]').prop('checked', false);
7601 }
7602
7603 verificaBtnEnviarRegistroInteresseAtivo();
7604 }
7605 $('.turmas-registro-interesse input[type=checkbox]').on('click', function() {
7606 var $selecionado = $(this);
7607 if ($selecionado.is(":checked")) {
7608 $('.turmas-registro-interesse input[type=checkbox]').prop("checked", false);
7609 $selecionado.prop("checked", true);
7610 } else {
7611 $selecionado.prop("checked", false);
7612 }
7613});
7614 function enviarRegistroInteresse(){
7615
7616 const codigoUsr = getCookie('codigo');
7617
7618 if(codigoUsr == null){
7619 //Sem o cookie refaz o login
7620 $('#modal-registro-interesse').addClass('d-none');
7621 $('body').removeClass('overflow-hidden');
7622 $('#modal-login').removeClass('d-none');
7623 return;
7624 }
7625
7626 var codigoFT = $('[name="codigoFT"]').val();
7627
7628 var unidades = new Set();
7629
7630 var diasSemana = '';
7631
7632 //Senac ao vivo nao tem opçao de dias da semana nem unidades
7633 if(isAoVivo){
7634 unidades.add(codUnidadeSenacAoVivo);
7635 }else{
7636 $.each($('.ssp-week-day').not('#todosDias'), function(k, v){
7637 if($(this).hasClass('ssp-week-day-active')){
7638 diasSemana += $(this).text()+',';
7639 }
7640 });
7641
7642 if(diasSemana.length > 0) diasSemana = diasSemana.slice(0, -1);
7643
7644 $.each($('.ssp-card-registro-interesse__select'), function(k,item){
7645
7646 unidades.add(item.value);
7647 });
7648 }
7649
7650
7651 var periodos = '';
7652
7653 $.each($('.periodos-registro-interesse input[type=checkbox]').not('#check-todos-periodos'), function(k,v){
7654 if($(this).is(':checked')){
7655 periodos += $(this).val()+',';
7656 }
7657 });
7658
7659 var turmas = '';
7660
7661 $.each($('.turmas-registro-interesse input[type=checkbox]').not('#check-todos-periodos'), function(k, v) {
7662 if ($(this).is(':checked')) {
7663 turmas += $(this).val() + ',';
7664 }
7665 });
7666
7667 if (periodos.length > 0) periodos = periodos.slice(0, -1);
7668 if (turmas.length > 0) turmas = turmas.slice(0, -1);
7669
7670 var usuarioNotificado = false;
7671
7672 loadingSubmitButton('#enviar-registro-interesse-btn');
7673
7674 unidades.forEach(function(codigoUnidade) {
7675 var data = {
7676 codigoFT: codigoFT,
7677 codigo: codigoUsr,
7678 diasSemana: diasSemana,
7679 periodos: periodos,
7680 turmas, turmas,
7681 codigoUnidade: codigoUnidade,
7682 interesseBolsa: 'N',
7683 isEmed: isEmed ? 'S' : 'N'
7684 };
7685
7686 const url = urlRegistroInteresse;
7687
7688 $.ajax({
7689 url: url,
7690 method: 'POST',
7691 data: JSON.stringify(data),
7692 headers: {
7693 'Accept': 'application/json',
7694 'Content-Type': 'application/json'
7695 },
7696 }).done(
7697 function(retornoData) {
7698
7699 var retornoData = JSON.stringify(retornoData);
7700
7701 if (retornoData.length > 0) {
7702
7703 cleanLoadingSubmitButton('#enviar-registro-interesse-btn');
7704
7705 var retorno = JSON.parse(retornoData);
7706
7707 if (retorno.status == 200 || retorno.status == 201) {
7708
7709 //Evita que o usuário recebe um email para cada unidade de interesse
7710 if(usuarioNotificado) return;
7711
7712 //Mensagem de sucesso registro interesse
7713 $('#modal-registro-interesse-sucesso').removeClass('d-none');
7714
7715 var prefixUrl = themeDisplay.getLayoutRelativeURL();
7716
7717 if (prefixUrl.indexOf('staging/') > 1)
7718 prefixUrl = prefixUrl.substring(0, prefixUrl.lastIndexOf('staging/') + 8);
7719 else
7720 prefixUrl = HOST;
7721
7722 $('#btn-voltar-home').attr('href', prefixUrl);
7723
7724 //Busca os dados do nome do usuário logado
7725 var username = getCookie('name').split(' ')[0];
7726
7727 //Prioridade para nomeSocial
7728 if (getCookie('nome_social') != null) {
7729 var nomeSocial = getCookie('nome_social').replace(/['"]+/g, '');
7730
7731 if (nomeSocial.length > 0) username = getCookie('nome_social');
7732
7733 }
7734
7735 username = username.replace(/['"]+/g, '');
7736
7737 var unidadesSel = getUnidadesSelecionadasRI();
7738
7739 //Disara um email para o usuário interessado
7740 var data = {
7741 emailInteressado: getCookie('email'),
7742 nomeInteressado: username,
7743 tituloCurso: $('.ssp-card-detalhe-curso__title').text(),
7744 unidades: unidadesSel.unidades,
7745 unidadesPrefix: unidadesSel.unidadesPrefix
7746 };
7747
7748 $.ajax({
7749 url: urlRegistroInteresseEmailInteressado,
7750 method: 'POST',
7751 data: JSON.stringify(data),
7752 headers: {
7753 'Accept': 'application/json',
7754 'Content-Type': 'application/json'
7755 },
7756 }).done(function(retornoData) {});
7757
7758 usuarioNotificado = true;
7759
7760 window.onclick = function(event) {
7761 $('[id="modal-registro-interesse-sucesso"]').each(function(index, _modal) {
7762 if (event.target == _modal) {
7763 $('#modal-registro-interesse-sucesso').addClass('d-none');
7764 $('#modal-registro-interesse').addClass('d-none');
7765 $("body").removeClass("overflow-hidden")
7766 }
7767 });
7768 }
7769
7770 } else {
7771 //Mensagem de erro registro interesse
7772 $('#modal-registro-interesse-erro').removeClass('d-none');
7773 }
7774 } else {
7775 //Mensagem de erro registro interesse
7776 $('#modal-registro-interesse-erro').removeClass('d-none');
7777 }
7778 }).fail(function(){
7779 cleanLoadingSubmitButton('#enviar-registro-interesse-btn');
7780 $('#modal-registro-interesse-erro').removeClass('d-none');
7781 });
7782 });
7783 }
7784
7785 function verificaBtnEnviarRegistroInteresseAtivo(){
7786
7787 var diasSemanaSelecionado = false;
7788 var periodoSelecionado = false;
7789 var turmaSelecionada = false;
7790 var politicaPrivacidadeSelecionado = false;
7791
7792
7793 $.each($('.periodos-registro-interesse input[type=checkbox]').not('#check-todos-periodos'), function(k,v){
7794 if($(this).is(':checked'))
7795 periodoSelecionado = true;
7796 });
7797
7798 $.each($('.turmas-registro-interesse input[type=checkbox]').not('#check-todos-periodos'), function(k,v){
7799 if($(this).is(':checked'))
7800 turmaSelecionada = true;
7801 });
7802
7803 if($('#check-politica-privacidade').is(':checked')) politicaPrivacidadeSelecionado = true;
7804
7805 var ativo = true
7806
7807 //Caso tenha algum dos selects de unidade sem uma opção válida selecionada
7808 if(!isAoVivo)
7809 ativo = ativo && !Array.from($('.ssp-card-registro-interesse__select.unidades')).filter(sel => !$(sel).val()).length
7810
7811 ativo = ativo && periodoSelecionado && politicaPrivacidadeSelecionado;
7812
7813 if(!isAoVivo && !isEmed){
7814
7815 $.each($('.ssp-week-day').not('#todosDias'), function(k, v){
7816 if($(this).hasClass('ssp-week-day-active'))
7817 diasSemanaSelecionado = true;
7818 });
7819 ativo = ativo && diasSemanaSelecionado;
7820
7821 }
7822
7823 if(isEmed)
7824 ativo = ativo && turmaSelecionada;
7825
7826 if(ativo)
7827 $('#enviar-registro-interesse-btn').attr("disabled", false);
7828 else
7829 $('#enviar-registro-interesse-btn').attr("disabled", true);
7830 }
7831
7832 function loadPlanoCurso(){
7833
7834 const urlGetPlanoCurso = urlPlanoCurso
7835 .replace('\{codigoFT\}', $('[name="codigoFT"]').val())
7836 .replace('\{dataEfetiva\}', $('[name="dataEfetivaSTR"]').val());
7837
7838 $.ajax({
7839 url:urlGetPlanoCurso,
7840 method:'get',
7841 crossDomain: true,
7842 dataType: 'html',
7843 success: function( data ) {
7844
7845
7846 //Atualiza o link com o plano de curso do servi¿o (ja retorna o texto)
7847 $('#plano-curso').append('<br/>'+data);
7848 },
7849 error: function(data){
7850
7851 console.log('Não existe a URL do plano de curso');
7852 }
7853
7854 });
7855 }
7856
7857 function checkCursoTrampolim(){
7858 return $('[name="codigoFT"]').val() == "24493";
7859 }
7860
7861 /*function verificaOfertaValida(oferta){
7862
7863 if(oferta['precoCheioOferta'] == '' || oferta['precoVendaOferta'] == '' || oferta['numeroMaxParcelasOferta'] == '' || oferta['precoVendaMaxParcelaOferta'] == '')
7864 return false;
7865
7866 var atual = new Date();
7867
7868 var dataOfertaPartes = oferta['dataInicio'].split('/');
7869
7870 var dataOferta = new Date(dataOfertaPartes[2], dataOfertaPartes[1] - 1, dataOfertaPartes[0]);
7871
7872 var dataLimiteMatriculaOfertaPartes = "";
7873 var dataLimiteMatriculaOferta = "";
7874
7875 if(oferta['dtLimiteMatricula'] != ""){
7876 dataLimiteMatriculaOfertaPartes = oferta['dtLimiteMatricula'].split('-');
7877 dataLimiteMatriculaOferta = new Date(dataLimiteMatriculaOfertaPartes[0], dataLimiteMatriculaOfertaPartes[1] - 1, dataLimiteMatriculaOfertaPartes[2] ,atual.getHours(),atual.getMinutes(),atual.getSeconds(),atual.getMilliseconds());
7878
7879 }
7880
7881
7882 //Só deve aparecer ofertas D-1 . Se ela iniciou, aparece se o campo dtLimiteMatr estiver preenchido e com data até o dia de hoje
7883 if(dataOferta <= atual)
7884 if(dataLimiteMatriculaOferta == "" || (dataLimiteMatriculaOferta != "" && atual.getTime() > dataLimiteMatriculaOferta.getTime()))
7885 return false;
7886
7887 return true;
7888 }*/
7889
7890
7891 function loadServerDate(){
7892
7893 $.ajax({
7894 url:urlGetServerT,
7895 method:'get',
7896 dataType: 'json',
7897 cache: 'false',
7898 headers: {
7899 'Cache-Control': 'no-store, no-cache, max-age=0',
7900 'Expires': '0',
7901 'Pragma': 'no-cache'
7902 },
7903 success: function( data ) {
7904 todayG = new Date(data.year,(data.month - 1),data.day,(data.hour),data.minutes,data.seconds);
7905 startTimer();
7906 }
7907 });
7908
7909 }
7910
7911 function handleVisibilityChange() {
7912
7913 if (!document[hidden] ){
7914 restartTimer();
7915 }
7916
7917 }
7918
7919 function restartTimer(){
7920
7921 if(restartTimeout == null){
7922 loadServerDate();
7923 restartTimeout = setTimeout(function(){
7924 restartTimeout = null;
7925 }, 5000);
7926 }
7927
7928 }
7929
7930 function startTimer(){
7931
7932 var mSeconds = todayG.getTime();
7933 if(interval01 != null){
7934 clearInterval(interval01);
7935 }
7936 interval01 = setInterval(function(){
7937 todayG.setTime(todayG.getTime() + 1000);
7938 }, 1000);
7939
7940 if(interval15 != null){
7941 clearInterval(interval15);
7942 }
7943 interval15 = setInterval(function(){
7944 mSeconds = mSeconds + 15000;
7945 todayG.setTime(mSeconds);
7946 }, 15000);
7947
7948 }
7949
7950 function checkIsAoVivo(){
7951 isAoVivo = $("input[name='formato']").attr("data-formato") == nomeFormatoAoVivoDxp;
7952 }
7953
7954
7955 //Ao clicar na setinha next do slider, busca dinamicamente uma proxima oferta
7956 function buscaProximaOferta(){
7957 //Zera variável que controla existência de ofertas com bolsa
7958 //ofertasComBolsa = false;
7959
7960 //Verificamos se a ultima oferta já foi exibida, para evitar de fazer novas buscas
7961 if(carregouUltimaOferta)
7962 return;
7963
7964 //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.
7965 var totalOfertasSlick = $('#turmas-container .slick-area__item').length;
7966 //Pegamos o índice da oferta do meio (central)
7967 var currentSliderIndex = parseInt($('.slick-current').attr('data-slick-index'));
7968
7969 var totalOfertasADireita = totalOfertasSlick - currentSliderIndex;
7970
7971 //Se o total de ofertas à direita for maior a 2 não precisa realizar a busca
7972 if(totalOfertasADireita > 2)
7973 return;
7974
7975 startOfertaParam = endOfertaParam;
7976 endOfertaParam += 16;
7977
7978 const codigoFT = $('[name="codigoFT"]').val();
7979 const dataEfetivaOferta = $('[name="dataEfetivaSTR"]').val();
7980
7981 var unidadeCategoryId = '';
7982 var unidadeCodigoSelect = '';
7983
7984 if(isAoVivo){
7985
7986 $.each(objsTela.unidades, function(k,unidade){
7987 unidadeCategoryId += unidade['categoryId']+',';
7988 });
7989
7990 //tirando ultima virgula
7991 unidadeCategoryId = unidadeCategoryId.substring(0,unidadeCategoryId.length - 1);
7992
7993 }else{
7994 var splitted = $('#unidades-ofertas').val().split("@");
7995 unidadeCategoryId = splitted[0];
7996 unidadeCodigoSelect = splitted[1];
7997 }
7998
7999 var params = new URLSearchParams();
8000 params.set('codigoFTOferta',codigoFT)
8001 params.set('dataEfetivaOferta',dataEfetivaOferta)
8002 params.set('categoryIds',unidadeCategoryId)
8003 params.set('start',startOfertaParam)
8004 params.set('end',endOfertaParam)
8005 params.set('inscricaoAberta', $('#chkInscricao').prop('checked'))
8006 params.set('bolsaAberta', $('#chkBolsa').prop('checked'))
8007 params.set('cursoArticleId', $('[name="articleId"]').val() || '');
8008
8009 if($('#chkBolsa').prop('checked')){
8010 params.set('considerarDataBolsaFutura', true)
8011 }
8012
8013 const url = urlSearchOferta + '?' + params.toString()
8014
8015 $.ajax({
8016 url:url,
8017 method:'get',
8018 dataType:'json'
8019 }).done(
8020 function(data){
8021
8022 if(data.length > 0){
8023 var indiceOferta = startOfertaParam;
8024
8025 for (var index = 0; index < data.length; index++) {
8026
8027 var ofertaJSON = data[index];
8028 var oferta = getOfertaObjectFromJson(ofertaJSON,index);
8029
8030 //Verificamos se a oferta buscada já existe na tela (que ocorre quando chega na última oferta)
8031 if($('.codigoOferta_'+oferta.codigoOferta).length > 0){
8032 console.log('Ja tem a oferta '+oferta.codigoOferta);
8033 carregouUltimaOferta = true;
8034 break;
8035 }
8036
8037 //guardo em um map a oferta e qual unidade é, para utilizar depois no populaOferta para o aoVivo
8038 ofertaUnidadeMap.set(oferta['codigoOferta'],mapUnidadesIds.get(parseInt(ofertaJSON.unidadeCategoryIds)));
8039
8040 ofertasMap.set(oferta.codigoOferta, oferta);
8041
8042 if(isAoVivo)
8043 objsTela.ofertasAoVivoTodasUnidades.push(oferta);
8044
8045 //O indice é igual ao ultimo elemento buscado - 1
8046 var i = indiceOferta;
8047 oferta['indice'] = i;
8048
8049 if(isAoVivo)
8050 codigoUnidade = ofertaUnidadeMap.get(oferta.codigoOferta);
8051 else codigoUnidade = unidadeCodigoSelect;
8052
8053
8054 montaHTMLOferta(oferta, i, codigoUnidade, true);
8055 montaHTMLModalFormaPgto(oferta, i, codigoUnidade);
8056
8057 montaHTMLModalLocalRealizacao(oferta, i);
8058 montaHTMLModalAntesCompra(oferta, i, codigoUnidade);
8059 verificaBotaoBolsaSS(oferta);
8060 verificaCursoAprendizagem(i);
8061 verificaCursoTrampolim(i);
8062
8063 associaEventoBtnFormaPagamento(i);
8064 associaEventoBtnComprar(i);
8065 associaEventoBtnComprarDentroFormaPgto(i);
8066 associaEventoBtnLocalRealizacao(i);
8067 associaEventosFecharModal(i);
8068
8069 if($('[name="tipoCurso"]').val() == 'extensao'){
8070 associaEventoBtnConheca(i);
8071 associaEventoBtnComprarConhecaDescontoOk(i);
8072 associaEventoBtnComprarConhecaDescontoNot(i);
8073 associaEventoBtnAlunoNao(i);
8074 associaEventoBtnAlunoSim(i);
8075
8076 }
8077
8078 indiceOferta++;
8079 }
8080
8081 controlaPaginaBolsa();
8082 }
8083 }
8084 );
8085
8086 }
8087
8088 function setUrlParam(key, value) {
8089 const url = new URL(window.location.href)
8090
8091 if(value)
8092 url.searchParams.set(key, value);
8093 else
8094 url.searchParams.delete(key);
8095
8096 window.history.pushState({}, '', url.toString())
8097 }
8098
8099 function selectFilter(paramkey, el) {
8100 setUrlParam(paramkey, el.prop("checked"))
8101 const currentUnidadeFriendlyURLSelected = $('#unidades-ofertas').find('option').filter(':selected').attr('data-unidade-friendly-url')
8102 loadUnidades(!isAoVivo, $('[data-unidade-friendly-url="' + currentUnidadeFriendlyURLSelected + '"]').val())
8103
8104 if($('#chkInscricao').prop("checked") || $('#chkBolsa').prop("checked")) $('#msgFiltroAplicado').show()
8105 else $('#msgFiltroAplicado').hide()
8106 }
8107
8108 function defineCurrentUrl(ev) {
8109 const currentUnidadeFriendlyURLSelected = $(ev.target).find('option').filter(':selected').attr('data-unidade-friendly-url')
8110
8111 const hasPathWeb = window.location.pathname.includes('/web')
8112 const hasPathGuest = window.location.pathname.includes('/guest')
8113
8114 let currentPath = window.location.pathname
8115 currentPath = hasPathWeb ? currentPath.substring(4) : currentPath
8116 currentPath = hasPathGuest ? currentPath.substring(6) : currentPath
8117
8118 objsTela.unidadesRegistroInteresse.forEach(unidade => currentPath = currentPath.replace('/' + unidade.friendlyURL, ''))
8119
8120 currentPath = (currentUnidadeFriendlyURLSelected ? '/' + currentUnidadeFriendlyURLSelected : '') + currentPath
8121 currentPath = hasPathGuest ? '/guest' + currentPath : currentPath
8122 currentPath = hasPathWeb ? '/web' + currentPath : currentPath
8123
8124 if(keepURL())
8125 window.history.replaceState(window.history.state, '', currentPath + window.location.search)
8126 }
8127
8128 let isKeepURL = true
8129 /** Verifica se é para manter a URL atual. Isso deve acontecer somente ao iniciar a página #9674 */
8130 function keepURL() {
8131 const aux = isKeepURL
8132 isKeepURL = false
8133 return !aux
8134 }
8135
8136 loadServerDate();
8137 $(document).ready(function(){
8138 if("${normalizedCategoryName}" == "graduacao" || "${normalizedCategoryName}" == "pos-graduacao"){
8139 document.location.href = '/erro-404'
8140 }
8141
8142 ehCursoTrampolim = checkCursoTrampolim();
8143 checkIsAoVivo();
8144 loadPlanoCurso();
8145 loadCursosVocePodeGostar();
8146
8147 if(!isAoVivo) {
8148 $('#unidades-ofertas').change(ev => {
8149 mudarUnidade(ev)
8150 defineCurrentUrl(ev)
8151 });
8152 }
8153
8154 const urlParams = new URLSearchParams(window.location.search)
8155 $('#chkInscricao').prop("checked", urlParams.get('inscricao') == 'true')
8156 $('#chkInscricao').change(ev => selectFilter('inscricao', $('#chkInscricao')) )
8157
8158 if($('#chkBolsa').length) {
8159 $('#chkBolsa').prop("checked", urlParams.get('bolsa') == 'true')
8160 $('#chkBolsa').change(ev => selectFilter('bolsa', $('#chkBolsa')) )
8161 loadUnidades(!isAoVivo);
8162 } else {
8163 selectFilter('bolsa', $('#chkBolsa'))
8164 }
8165
8166 //Função para Montar breadcrumb Mobile
8167
8168 function breadcrumbMobile(){
8169
8170 const linkEl = $('.ssp-card-detalhe-curso__secunday-info-back-link');
8171
8172 if ( $.trim(linkEl.html()) === 'Técnico'){
8173
8174 linkEl.attr("href", "/cursos-tecnicos");
8175
8176 } else if ( $.trim(linkEl.html()) === 'Livre'){
8177
8178 if(isAoVivo){
8179 linkEl.html('Senac Online<i class="fas fa-signal-stream icon-ao-vivo" aria-hidden="true"></i>ao vivo')
8180 linkEl.attr("href", "/cursos-livres-senac-online-ao-vivo");
8181 }else{
8182 linkEl.attr("href", "/cursos-livres");
8183 }
8184 } else if ( $.trim(linkEl.html()) === 'Aprendizagem'){
8185
8186 linkEl.attr("href", "/jovem-aprendiz");
8187
8188 }else if ( $.trim(linkEl.html()) === 'Extensão Universitária'){
8189
8190 linkEl.attr("href", "/extensao-universitaria");
8191
8192 }else if ( $.trim(linkEl.html()) === 'Ensino Médio Técnico'){
8193
8194 linkEl.attr("href", "/ensino-medio-tecnico");
8195 }
8196
8197 }
8198
8199 breadcrumbMobile()
8200
8201 //Esconde elementos quando o curso é aprendizagem
8202 if($('[name="codigoFT"]').val() == codigoFTCursoAprendizagem){
8203 $('.ssp-section-novas-turmas').remove();
8204 $("div[class^='botoes-oferta-container_']").remove();
8205 }
8206
8207 //retira os itens de dentro do container
8208 $('.bg-').css('background-color','#e4e4e4')
8209 $('.container.py-3').removeClass('container py-3')
8210
8211 //Fecha modal registro de interesse
8212
8213 $('#btn-close-Modal-registro-interesse').click(function(){
8214
8215 $('#modal-registro-interesse').addClass('d-none')
8216 $("body").removeClass("overflow-hidden")
8217
8218 })
8219
8220 $( "#modal-registro-interesse" ).click( function(event) {
8221
8222
8223
8224 if(event.target.id==$('#modal-registro-interesse')[0].id){
8225 $(this).addClass('d-none')
8226 }
8227
8228 });
8229
8230
8231 //Aviso sobre interesse em turmas
8232 $('.ssp-card-registro-interesse').on('click', '#enviar-registro-interesse-btn', enviarRegistroInteresse);
8233 if(!isEmed){
8234 $('.ssp-aviso-novas-turmas__content').on('click', '#btn-aviso-novas-turmas', avisoNovasTurmas);
8235 $('.ssp-card-registro-interesse').on('click', '#todosDias', registroSelecionaTodosDias);
8236 } else {
8237 $('.ssp-emed__card-slider-body').on('click', '#btnOptin', avisoNovasTurmas)
8238 }
8239 $('#div-campo-todos').on('change', 'input[type=checkbox]', registroSelecionaTodosPeriodos);
8240
8241 $('#btnLogin').click(function(){
8242
8243 login()
8244
8245 });
8246
8247 $('#btn-close-loginModal').click(function(){
8248 $('#modal-login').addClass('d-none')
8249 });
8250
8251 $('.ssp-week-day').not('#todosDias').click(function(){
8252
8253 $(this).toggleClass('ssp-week-day-active');
8254 verificaBtnEnviarRegistroInteresseAtivo();
8255
8256 });
8257
8258 $('#add-unidade-regsitro-interesse').click(function(e){
8259 var element = $('.ssp-card-registro-interesse__select.unidades').first().clone();
8260 element.empty();
8261 element.append('<option value="" disabled selected>Selecione uma unidade</option>')
8262 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
8263
8264 if(!unidade['selecionado']){
8265 element.append('<option value="'+unidade['codigoUnidade']+'">'+unidade['nome']+'</option>');
8266 }
8267
8268 });
8269 element.change(changeSelectUnidades)
8270
8271
8272 element.css('margin-top', '10px');
8273
8274 if(element.find("option").length > 1 && $('.ssp-card-registro-interesse__select.unidades').length < objsTela.unidadesRegistroInteresse.length){
8275 element.attr("id", "select_" + cntSelectUnidades++)
8276 $('#select-unidades-registro-interesse').append(element);
8277 }
8278
8279 if($('.ssp-card-registro-interesse__select.unidades').length == objsTela.unidadesRegistroInteresse.length){
8280 $('#add-unidade-regsitro-interesse').addClass("d-none")
8281 }
8282
8283 verificaBtnEnviarRegistroInteresseAtivo();
8284 });
8285
8286 $('#remove-unidade-regsitro-interesse').click(function(e){
8287
8288 if($('.ssp-card-registro-interesse__select').length > 1){
8289
8290 var element = $('.ssp-card-registro-interesse__select').last();
8291
8292 var valueSelecionado = element.val();
8293
8294 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
8295
8296 if(unidade['selecionado'] && unidade['codigoUnidade'] == valueSelecionado){
8297 unidade['selecionado'] = false;
8298 unidade['selectSelecionado'] = "";
8299 }
8300
8301 });
8302 element.val("");
8303 cntSelectUnidades--;
8304 element.change()
8305
8306 element.remove();
8307 }
8308
8309 if($('.ssp-card-registro-interesse__select.unidades').length < objsTela.unidadesRegistroInteresse.length){
8310 $('#add-unidade-regsitro-interesse').removeClass("d-none")
8311 }
8312
8313 verificaBtnEnviarRegistroInteresseAtivo();
8314 })
8315
8316 $('.ssp-card-registro-interesse__check-item').on('change', 'input[type=checkbox]', function(){
8317 verificaBtnEnviarRegistroInteresseAtivo();
8318 });
8319
8320 //Contador em ofertas de bolsas proximas
8321 var cancel = setInterval(atualizaTempoAberturasBolsas, 1000);
8322
8323 // Manipua o breadcrumb para as regras do Senac
8324
8325 if($('ol.breadcrumb').find('li:first').text().trim() == "Cursos Pai")
8326 $('ol.breadcrumb').find('li:first').remove();
8327
8328 var li = $('ol.breadcrumb').find('li:first');
8329
8330 if(li.text().trim() == 'Cursos'){
8331
8332 var primeiro = li.clone();
8333 primeiro.html(htmlBreadcrumb('/', 'Cursos', 'Home'));
8334 li.parent().prepend(primeiro);
8335
8336 var tipoCurso = $('.ssp-header-curso__tag-formato').text().trim();
8337 var tipoBreadcrumb = '';
8338
8339 if(tipoCurso == "Cursos Livres"){
8340 tipoBreadcrumb = htmlBreadcrumb(
8341 isAoVivo ? '/cursos-livres-senac-online-ao-vivo' : '/cursos-livres',
8342 isAoVivo ? nomeFormatoAoVivoDxp : tipoCurso);
8343
8344 }else if(tipoCurso == "Extensão Universitária"){
8345 tipoBreadcrumb = htmlBreadcrumb('/extensao-universitaria', tipoCurso);
8346
8347 }else if(tipoCurso == "Ensino Médio Técnico"){
8348 tipoBreadcrumb = htmlBreadcrumb('/ensino-medio-tecnico', tipoCurso);
8349 }else if(tipoCurso == "Jovem Aprendiz"){
8350 tipoBreadcrumb = htmlBreadcrumb('/jovem-aprendiz', tipoCurso);
8351 }else{
8352 tipoBreadcrumb = htmlBreadcrumb('/cursos-tecnicos', tipoCurso);
8353 }
8354
8355 li.html(tipoBreadcrumb);
8356
8357 if($('ol.breadcrumb').find('li').length == 4) $('ol.breadcrumb').find('li:last').remove();
8358
8359 }
8360
8361 $('#turmas-container').on('click', 'a.slick-next', function(e){
8362
8363 e.preventDefault();
8364 buscaProximaOferta();
8365
8366 });
8367
8368 $('#turmas-container').on('click', 'button.slick-dots', function(){
8369
8370
8371
8372 });
8373
8374 $(".next-mobile").on("click",function(e){
8375 e.preventDefault();
8376
8377 acoesMobileSliderOfertas("left");
8378 });
8379
8380 $(".prev-mobile").on("click",function(e){
8381 e.preventDefault();
8382
8383 acoesMobileSliderOfertas("right");
8384 });
8385
8386 //ação de drag do card de ofertas no mobile
8387 $('.oferta-slick-area').on('swipe', function(event, slick, direction){
8388 acoesMobileSliderOfertas(direction);
8389 });
8390
8391 loadAlternadores()
8392 let modalFormAprendizagem = document.querySelector('[data-modal="modal"]')
8393 if(modalFormAprendizagem){
8394 // Create dinamic close buttom form
8395 let btnCloseModalForm = document.querySelector('[data-modal="close-form-modal"]')
8396
8397 btnCloseModalForm.addEventListener('click',closeModalFormAprendizagem)
8398
8399 }
8400
8401 $(".oferta-slick-area").on("click", ".btnModalAprendizagem", function (){
8402 openModalFormAprendizagem();
8403 })
8404
8405 });
8406
8407 function htmlBreadcrumb(link, title, display){
8408
8409 return '<a class="breadcrumb-link" href="'+link+'" title="'+title+'"><span class="breadcrumb-text-truncate">'+(display || title)+'</span></a>';
8410
8411 }
8412
8413 function acoesMobileSliderOfertas(direcao){
8414
8415 if(direcao == "right"){
8416 $("a.slick-prev").click();
8417
8418 if($('.slick-current').attr('data-slick-index') == "0")
8419 $('.prev-mobile').addClass('nextPrevOpacity');
8420
8421 if($(".next-mobile").hasClass('nextPrevOpacity'))
8422 $('.next-mobile').removeClass('nextPrevOpacity');
8423 }
8424
8425
8426 if(direcao == "left"){
8427 $("a.slick-next").click();
8428
8429 if($(".prev-mobile").hasClass('nextPrevOpacity'))
8430 $('.prev-mobile').removeClass('nextPrevOpacity');
8431
8432 if(carregouUltimaOferta){
8433 var totalCardOfertas = $('#turmas-container .slick-area__item').length;
8434 var currentSliderIndex = parseInt($('.slick-current').attr('data-slick-index'));
8435
8436 //o card do meio é o último
8437 if(totalCardOfertas == (currentSliderIndex + 1))
8438 $('.next-mobile').addClass('nextPrevOpacity');
8439 }
8440 }
8441 }
8442
8443 //habilitar/desabilitar registro de interesse
8444 function habilitarRegistroInteresse(habilitar){
8445 var sectionRI = $('#section-registro-interesse')
8446
8447 if(isEmed) {
8448 sectionRI.hide()
8449 return;
8450 }
8451
8452 //Redmine #9309 - sempre irá mostrar
8453 habilitar = true
8454
8455 if(habilitar) sectionRI.show()
8456 else sectionRI.hide()
8457 }
8458
8459 function abrirModalRegistroInteresse(codUnidadeSelect){
8460 $('#modal-registro-interesse').removeClass('d-none');
8461 $("body").addClass("overflow-hidden")
8462 if(!isEmed){
8463 $('.ssp-card-registro-interesse__nome-curso').text($('.ssp-card-detalhe-curso__title').text());
8464 } else {
8465 $(".transferencia-emed-link").find('a').attr("href", "/ensino-medio-tecnico#onde-estudar")
8466 $('.ssp-card-registro-interesse__title-modal').text($('.ssp-card-detalhe-curso__title').text());
8467 }
8468
8469 $('.ssp-card-registro-interesse__select:not(#select_0)').remove();
8470 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
8471 if(unidade['codigoUnidade'] == codUnidadeSelect){
8472 unidade['selecionado'] = true;
8473 unidade['selectSelecionado'] = 'select_0';
8474 } else {
8475 unidade['selecionado'] = false;
8476 unidade['selectSelecionado'] = "";
8477 }
8478
8479 });
8480 objsTela.unidadesRegistroInteresse.sort(function (a, b) {
8481 return ordenar(a, b, 'nome');
8482 });
8483
8484 $('#select_0').empty();
8485 $('#select_0').append('<option value="" disabled>Selecione uma unidade</option>')
8486 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
8487
8488 $('#select_0').append('<option value="'+unidade['codigoUnidade']+'" >'+unidade['nome']+'</option>');
8489
8490 });
8491 $('#select_0').val(codUnidadeSelect);
8492 console.dir(objsTela.unidadesRegistroInteresse)
8493 if(isAoVivo){
8494 $('#unidades-registro-interesse, #dias-registro-interesse').addClass('d-none');
8495 }
8496 if(objsTela.unidadesRegistroInteresse.length > 1) {
8497 $('#add-unidade-regsitro-interesse').removeClass("d-none")
8498 $('#add-unidade-regsitro-interesse').show()
8499 $('#remove-unidade-regsitro-interesse').show()
8500 } else {
8501 $('#add-unidade-regsitro-interesse').hide()
8502 $('#remove-unidade-regsitro-interesse').hide()
8503 }
8504 }
8505
8506 $('.ssp-card-registro-interesse__select.unidades').on('change', changeSelectUnidades)
8507
8508 function changeSelectUnidades() {
8509 var codUnidadeSelecionada = $(this).val();
8510 var idSelectSelecionado = $(this).attr('id')
8511 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
8512 if(unidade['codigoUnidade'] == codUnidadeSelecionada){
8513 unidade['selecionado'] = true;
8514 unidade['selectSelecionado'] = idSelectSelecionado;
8515 } else if(unidade['selectSelecionado'] == idSelectSelecionado && unidade['selecionado']){
8516 unidade['selecionado'] = false;
8517 unidade['selectSelecionado'] = "";
8518 }
8519
8520 });
8521
8522 objsTela.unidadesRegistroInteresse.sort(function (a, b) {
8523 return ordenar(a, b, 'nome');
8524 });
8525
8526 $('.ssp-card-registro-interesse__select.unidades:not(#'+idSelectSelecionado+')').each(function() {
8527 var valueSelecionado = $(this).val();
8528 var idActualSelect = $(this).attr('id');
8529 $(this).empty();
8530 $(this).append('<option value="" disabled>Selecione uma unidade</option>')
8531 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
8532
8533 console.log("unidade:"+unidade['codigoUnidade']+" - "+valueSelecionado)
8534 if(unidade['selecionado'] && unidade['codigoUnidade'] == valueSelecionado){
8535 $("#"+idActualSelect).append('<option value="'+unidade['codigoUnidade']+'" >'+unidade['nome']+'</option>');
8536 }else if(!unidade['selecionado']){
8537 $("#"+idActualSelect).append('<option value="'+unidade['codigoUnidade']+'">'+unidade['nome']+'</option>');
8538 }
8539
8540 });
8541 $(this).val(valueSelecionado)
8542 });
8543
8544 verificaBtnEnviarRegistroInteresseAtivo();
8545 }
8546
8547
8548 function ordenar(objA, objB, nomeAtributo){
8549 let a = (nomeAtributo) ? objA[nomeAtributo] : objA;
8550 let b = (nomeAtributo) ? objB[nomeAtributo] : objB;
8551
8552 if (a > b) return 1;
8553 if (a < b) return -1;
8554 return 0;
8555 }
8556
8557 function paramOrdem(xml){
8558 if(isEmed){
8559 var ordemPeriodo = ['MA', 'TA', 'NO'];
8560 return $.inArray(xml.find('[name="periodoDiaOferta"]').text(), ordemPeriodo);
8561 }else{
8562 return xml.find('[name="dataInicioOferta"]').text();
8563 }
8564 }
8565
8566 function getEtapaSelecionadaEmed(){
8567 var btnEtapa = $('.ssp-ofertas-emed__filtro-content .btn--filtro-ativo');
8568 if(!btnEtapa) return '';
8569 return btnEtapa.val();
8570 }
8571
8572 function filtraOfertasEtapa(etapa, ofertas){
8573 var ofertasEtapa = [];
8574 var turmas = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'];
8575 var periodos = {['MA'] : 'Manhã', ['TA'] : 'Tarde', ['NO'] : 'Noite'};
8576 var ultimoPeriodo = null, indexPeriodo;
8577 ofertas = ofertas.sort(function(a, b){
8578 return ordenar(a, b, 'periodoDiaOferta');
8579 });
8580
8581 $.each(ofertas, function(index, oferta){
8582 if(oferta['etapa'] == etapa){
8583 if(oferta['periodoDiaOferta'] != ultimoPeriodo) indexPeriodo = 0;
8584 ultimoPeriodo = oferta['periodoDiaOferta'];
8585 oferta['titulo'] = 'Turma ' + turmas[indexPeriodo++] + ' - ' + (periodos[ultimoPeriodo] || '');
8586 ofertasEtapa.push(oferta);
8587 }
8588 });
8589
8590 return ofertasEtapa;
8591 }
8592
8593 function formatarDataEmed(data, etapa, isDataFim){
8594
8595 try{
8596
8597 var splitdata = data.split('/');
8598 var meses = ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'];
8599 var mes = meses[parseInt(splitdata[1])-1];
8600
8601 var ano = splitdata[2];
8602
8603 if(isDataFim){
8604 ano = parseInt(splitdata[2]);
8605 }
8606
8607 return mes + '/' + ano;
8608 }catch(err){
8609 return data;
8610 }
8611
8612 }
8613
8614 //EMED Mobile
8615 function sliderOfertasEmed(){
8616
8617 var tamScreen = $(window).width();
8618 if(tamScreen < 1024){
8619 $('.ssp-slick-ofertas-emed').slick({
8620 slidesToShow: 1,
8621 slidesToScroll: 1,
8622 dots: false,
8623 infinite: false,
8624 adaptiveHeight: true,
8625 prevArrow:'<button class="btn slick-prev" type="button"><i class="fal fa-chevron-left"></i><span class="sr-only">Anterior</span></button>',
8626 nextArrow:'<button class="btn slick-next" type="button"><i class="fal fa-chevron-right"></i><span class="sr-only">Próximo</span></button>',
8627 responsive: [
8628
8629 {
8630 breakpoint: 1200,
8631 settings: {
8632 slidesToShow: 1,
8633 slidesToScroll: 1,
8634 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>',
8635 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>',
8636
8637 }
8638 },
8639 {
8640 breakpoint: 768,
8641 settings: {
8642 slidesToShow: 1,
8643 slidesToScroll: 1,
8644 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>',
8645 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>',
8646 }
8647 }
8648
8649 ]
8650
8651 });
8652
8653 }
8654
8655 }
8656
8657function addItemBackpack(codOferta, originElemSelector){
8658
8659 let backpackPostRequest = {};
8660 backpackPostRequest.codOferta = codOferta;
8661
8662 mochila.requestAccess(function(backpackPostRequest){
8663
8664 let urlMochila = '/o/senac-backpack-services/backpack';
8665
8666 if(getCookie("codMochila") != null){
8667 backpackPostRequest.codMochila = getCookie("codMochila");
8668 urlMochila = '/o/senac-backpack-services/updateBackpack';
8669 }
8670 $.ajax({
8671 type: 'POST',
8672 url: urlMochila,
8673 headers: {
8674 "Content-Type":"application/json"
8675 },
8676 beforeSend: function(xhr){
8677 xhr.setRequestHeader("Authorization", "Bearer " + getCookie("tokenMochila"));
8678 loadingSubmitButton(originElemSelector);
8679 $(originElemSelector + ' .loading-icon-button').css('height', 'unset');
8680 if($(window).width() < 1024){
8681 $(originElemSelector + ' .loading-icon-button span').css('margin-left', '10%');
8682 }
8683 },
8684 data : JSON.stringify(backpackPostRequest)
8685 }).done(function(data) {
8686
8687 let domain = '';
8688 if(getAmbiente() == 'hom' || getAmbiente() == 'prod')
8689 domain = '.sp.senac.br';
8690
8691 writeCookie(
8692 'codMochila',
8693 (getCookie("codMochila") == null) ? data.backpackCode : JSON.parse(data).backpackCode,
8694 24,
8695 domain
8696 );
8697 addItemSuccessMochila();
8698
8699 }).fail(function(xhr, status, error) {
8700
8701 $('#modal-backpack-error').removeClass('d-none');
8702
8703 }).always(function(){
8704
8705 cleanLoadingSubmitButton(
8706 originElemSelector,
8707 originElemSelector.indexOf('backpack') > 0 ? 'OK, desejo comprar' : 'COMPRAR'
8708 );
8709 $('[id^="modalAntesCompra_"]').each(function(index, modal) {
8710 modal.style.display = "none";
8711 });
8712
8713 });
8714
8715 }, backpackPostRequest);
8716
8717}
8718
8719function componentBuyConfirmation(codigoUnidade, oferta){
8720
8721 var comp = null;
8722
8723 if((oferta.destinoCompra !== null) && oferta.destinoCompra == "2"){
8724
8725 comp = $("<button>")
8726 .addClass("btn btn-lg btn-success w-100 mt-3 btn-backpack")
8727 .attr("offerCode",oferta.codigoOferta)
8728 .text("OK, desejo comprar");
8729
8730 }else {
8731
8732 comp = $("<a>")
8733 .addClass("btn btn-lg btn-success w-100 mt-3")
8734 .text("OK, desejo comprar")
8735 .attr("href", linkBotaoCompra.replace('\{codigoUnidade\}', codigoUnidade).replace('\{codigoOferta\}', oferta.codigoOferta))
8736 .attr("target","_blank");
8737 }
8738
8739 comp.attr('id', 'btnCompraLocal_' + oferta.indice);
8740
8741 return comp[0].outerHTML;
8742
8743}
8744
8745function getUnidadesSelecionadasRI(){
8746 var unidadesRI = [];
8747
8748 try{
8749
8750 $('#select-unidades-registro-interesse').find('select').each((i,select) =>{
8751 var unidadeSel = select.selectedOptions[0].innerText;
8752 if(!unidadesRI.includes(unidadeSel)) unidadesRI.push(unidadeSel);
8753 });
8754
8755 var unidadesExt = unidadesRI.join(', ');
8756
8757 const lastIndex = unidadesExt.lastIndexOf(',');
8758
8759 if(lastIndex > 0) unidadesExt = unidadesExt.substring(0, lastIndex) + ' ou ' + unidadesExt.substring(lastIndex + 1);
8760
8761 return {
8762 'unidadesPrefix' : (unidadesRI.length > 1 ? ', nas unidades ' : (unidadesRI.length == 1 ? ', na unidade ' : '')),
8763 'unidades' : unidadesExt
8764 };
8765
8766 }catch(err){
8767
8768 return {
8769 'unidadesPrefix' : '',
8770 'unidades' : ''
8771 };
8772
8773 }
8774
8775 }
8776
8777
8778
8779
8780function addItemSuccessMochila(){
8781
8782 mochila.check();
8783 $('#modal-backpack-success__nome-curso').html($('.ssp-card-detalhe-curso__title').text());
8784 $('#modal-backpack-success').removeClass('d-none');
8785
8786}
8787
8788$(document).on('click', '.btn-backpack', function(e){
8789
8790 addItemBackpack(event.target.getAttribute("offerCode"), '.btn-backpack');
8791
8792});
8793
8794$('#btn-voltar-modal-backpack-error').click(function () {
8795 $('#modal-backpack-error').addClass('d-none');
8796});
8797
8798$('#btn-voltar-modal-backpack-error').click(function () {
8799 $('#modal-backpack-error').addClass('d-none');
8800});
8801
8802$('.btn-mochila-continuar-site-success, .modal-btn-close').click(function () {
8803 $('#modal-backpack-success').addClass('d-none');
8804});
8805
8806$('.btn-mochila-finalizar-compra-success').click(function () {
8807 // Montar object push - google tag manager - 6
8808 sendEventEcommerce("begin_checkout", ofertaSelecionada);
8809
8810 mochila.verificaLogin();
8811 $('#modal-backpack-success').addClass('d-none');
8812 $('[id^="myModal_"]').each((i,modal)=>modal.style.display = "none");
8813});
8814
8815 function closeModalFormAprendizagem(){
8816 let modal = document.querySelector('[data-modal="modal"]')
8817
8818 modal.classList.remove('open-modal-form')
8819
8820 }
8821
8822
8823 function openModalFormAprendizagem(){
8824 let modal = document.querySelector('[data-modal="modal"]')
8825
8826 modal.classList.add('open-modal-form')
8827
8828 }
8829
8830 function addEventBolsa() {
8831 // Mostra o preco
8832 const btnShowPrices = document.querySelectorAll('.btn-show-price')
8833
8834 btnShowPrices.forEach(btnShowPrice => btnShowPrice.addEventListener('click',togglePriceCard))
8835
8836 if(!$('#chkBolsa').prop('checked'))
8837 togglePriceCard()
8838 }
8839
8840 function togglePriceCard(selector){
8841 if(selector instanceof PointerEvent) return
8842
8843 if(!selector) selector = ''
8844 else selector = '.' + selector
8845
8846 const btnPrices = document.querySelectorAll('.show-price-content'+selector)
8847 const contentPrices = document.querySelectorAll('.content-valores-descontos'+selector)
8848 const contentBtnBolsas = document.querySelectorAll('.content-btn-bolsa'+selector)
8849
8850 btnPrices.forEach(btnPrice => btnPrice.classList.toggle('hide'))
8851 contentBtnBolsas.forEach(contentBtnBolsa => contentBtnBolsa.classList.toggle('modifier-content-show'))
8852 contentPrices.forEach(contentPrice => contentPrice.classList.toggle('hide-price'))
8853 }
8854
8855
8856
8857
8858function getRegiaoName(key) {
8859 switch (key) {
8860 case "C":
8861 return "Capital";
8862 case "I":
8863 return "Interior";
8864 case "GS":
8865 return "Grande São Paulo e Litoral";
8866 default:
8867 return "Sem Região";
8868 }
8869}
8870
8871function criarOptionUnidadesPorRegiao(unidades) {
8872 let regioes = {}
8873 let unidadeFounded
8874
8875 unidades.forEach(unidade => {
8876 if(!regioes[unidade.codRegiaoUnidade || 'N'])
8877 regioes[unidade.codRegiaoUnidade || 'N'] = []
8878
8879 regioes[unidade.codRegiaoUnidade || 'N'].push(unidade)
8880 })
8881
8882 Array.from(['C', 'I', 'GS', 'N'])
8883 .filter(key => Object.keys(regioes).includes(key))
8884 .forEach(key => {
8885 const unidadesDaRegiao = regioes[key]
8886
8887 const optionDisabled = $('<option>')
8888 optionDisabled.attr('label', getRegiaoName(key))
8889 optionDisabled.text(getRegiaoName(key));
8890 optionDisabled.attr('disabled', true)
8891 optionDisabled.addClass('ssp-option-group')
8892 $('#unidades-ofertas').append(optionDisabled)
8893
8894 $.each(unidadesDaRegiao, function(k,unidade){
8895 if($('#unidades-ofertas').find('[value="'+unidade['categoryId']+'"]').length == 0){
8896 var option = $('<option>');
8897 option.val(unidade['categoryId']+"@"+unidade['codigoUnidade']);
8898 option.text(unidade['nome']);
8899 option.attr('data-unidade-friendly-url', unidade.friendlyURL)
8900 option.addClass('ssp-option')
8901
8902 $('#unidades-ofertas').append(option);
8903
8904 unidadeFounded = !unidadeFounded && getURLData().includes('/'+unidade.friendlyURL+'/') ? unidade : unidadeFounded
8905 }
8906 })
8907 })
8908
8909 return unidadeFounded
8910}
8911
8912function getURLData() {
8913 return URLGeral.replace(HOST, '')
8914}
8915
8916/**
8917* Copia um objeto JSON
8918*/
8919function cloneObj(original) {
8920 return JSON.parse(JSON.stringify(original));
8921}
8922
8923function getUrlConsultaBolsa(oferta){
8924
8925 let url = '';
8926 if (isAmbienteTeste()) {
8927 if(oferta.destinoBolsa=='1') {
8928 url = 'https://hwse.sp.senac.br/rest/wss/cursos/bolsa/v1/?COD_EVENTO='+oferta.codigoOferta
8929 } else {
8930 url = 'https://hom-wse-bolsas.sp.senac.br/api/cursos/bolsa/v1/'+oferta.codigoOferta;
8931 }
8932 } else {
8933 if(oferta.destinoBolsa=='1') {
8934 url = 'https://wse.sp.senac.br/rest/wss/cursos/bolsa/v1/?COD_EVENTO='+oferta.codigoOferta
8935 } else {
8936 url = 'https://wse-bolsas.sp.senac.br/api/cursos/bolsa/v1/'+oferta.codigoOferta;
8937 }
8938
8939 }
8940 return url;
8941 }
8942
8943 function execCompraEmed(oferta){
8944
8945 let linkInscricaoEmed, linkInscricaoEmedHml, acadProg;
8946 if(oferta.etapa == '0010'){
8947 linkInscricaoEmed = 'https://www.sp.senac.br/login/Login?destino=https://inscricao-educacional-ms.sp.senac.br/?oferta={codOferta}';
8948 linkInscricaoEmedHml = 'https://gesportal.sp.senac.br/login/Login?destino=https://hinscricao-educacional-backend.sp.senac.br/?oferta={codOferta}';
8949 acadProg = null;
8950 }else{
8951 linkInscricaoEmed = 'https://www.sp.senac.br/login/Login?destino=https://inscricao-emed.sp.senac.br?course={acad_prog}&unity={codUnidade}&shift={periodo}&step={etapa}&oferta={codOferta}';
8952 linkInscricaoEmedHml = 'https://gesportal.sp.senac.br/login/Login?destino=https://hinscricao-emed.sp.senac.br?course={acad_prog}&unity={codUnidade}&shift={periodo}&step={etapa}&oferta={codOferta}';
8953 acadProg = ()=>{
8954 //Codigo FT + Data Efetiva(ymd) : AcadProg
8955 const acadProgMap = {
8956 ['2478820220101'] : '08202',
8957 ['2363020210101'] : '07325',
8958 ['2362920210101'] : '07326',
8959 ['2097420210101'] : '05918'
8960 }
8961 var key = $('[name="codigoFT"]').val() + $('[name="dataEfetivaSTR"]').val().replace(/-/g, '');
8962 return acadProgMap[key] || '';
8963 }
8964 }
8965
8966 var ambTeste = ['localhost', 'hom', 'dev'];
8967 var link = linkInscricaoEmed;
8968 $.each(ambTeste, function(i, a){
8969 if(location.hostname.indexOf(a) >= 0){
8970 link = linkInscricaoEmedHml;
8971 return false;
8972 }
8973 });
8974
8975 // Montar object push - google tag manager - 3
8976 ofertaSelecionada = itensEcommerce.get(oferta.codigoOferta)
8977 sendEventEcommerce("select_item", ofertaSelecionada);
8978 sendEventEcommerce("view_item", ofertaSelecionada);
8979 sendEventEcommerce("add_to_cart", ofertaSelecionada);
8980 sendEventEcommerce("begin_checkout", ofertaSelecionada);
8981
8982 var urlCompra = link.replace('\{acad_prog\}', acadProg)
8983 .replace('\{codUnidade\}', $('[name="codUnidadeSelecionada"]').val())
8984 .replace('\{periodo\}', (oferta.periodoDiaOferta == 'TA') ? 'V' : oferta.periodoDiaOferta.slice(0, 1))
8985 .replace('\{etapa\}', oferta.etapa)
8986 .replace('\{codOferta\}', oferta.codigoOferta);
8987 window.open(urlCompra, '_blank');
8988
8989 }
8990
8991 </script>
8992
8993</#if>