1"use strict"; 2Object.defineProperty(exports, "__esModule", { value: true }); 3exports._hotswap = exports.SkPostihnutiaInput = exports.StudentStipendiaField = exports.StudentDotacieField = exports.validate_emailUnique = exports.duplicates_columns = exports.showStudentDlg = void 0; 4var tslib_1 = require("tslib"); 5var React = require("react"); 6var edurequest_1 = require("../../asc/edurequest"); 7var asc_react_1 = require("../../asc/asc_react"); 8var itemdlg_1 = require("../../rpr/itemdlg"); 9var dbi_react_1 = require("../../rpr/dbi_react"); 10var tabview_1 = require("../../react/tabview"); 11var dbi_1 = require("../../rpr/dbi"); 12var maindbi_ui_1 = require("../../rpr/maindbi_ui"); 13var fieldcallback_1 = require("../fieldcallback"); 14var userface_1 = require("../../rpr/userface"); 15var asc_react2_1 = require("../../asc/asc_react2"); 16var moveupcolumns_1 = require("../moveupcolumns"); 17var address_1 = require("./address"); 18var itemdlg_validate_1 = require("../../rpr/itemdlg_validate"); 19var student_1 = require("./server/student"); 20var ecards_1 = require("../../rpr/ecards"); 21var anchor_1 = require("../../react/anchor"); 22var lib_date_1 = require("../../asc/lib_date"); 23var datefield_1 = require("../../react/datefield"); 24var comboboxmulti_1 = require("../../react/comboboxmulti"); 25var datatable_1 = require("../../react/datatable"); 26var actions_1 = require("../../asc/actions"); 27var combobox_1 = require("../../react/combobox"); 28var subtableinput_1 = require("../../react/subtableinput"); 29var autocomplete_1 = require("../../react/autocomplete"); 30var parent_1 = require("./server/parent"); 31var parent_2 = require("./parent"); 32var validatefield_1 = require("../../react/validatefield"); 33var help_1 = require("../../react/help"); 34var account_1 = require("../../rpr/account"); 35var class_1 = require("./class"); 36var sk_ris_1 = require("./sk_ris"); 37var cz_controls_1 = require("./cz_controls"); 38var student_hodiny_1 = require("./student_hodiny"); 39var KontrahovanieDiv = React.lazy(function () { return Promise.resolve().then(function () { return require('../kontrahovanie'); }).then(function (m) { return ({ default: m.KontrahovanieDiv }); }); }); 40var CzSchoolCombo = React.lazy(function () { return Promise.resolve().then(function () { return require('./cz_schoolcombo'); }); }); 41var SkSchoolCombo = React.lazy(function () { return Promise.resolve().then(function () { return require('./sk_schoolcombo'); }); }); 42var SkRisTab = React.lazy(function () { return Promise.resolve().then(function () { return require('./sk_ris'); }); }); 43var EGovRsFileCard = React.lazy(function () { return Promise.resolve().then(function () { return require('../../egov/pics/jsw/views/egov_rsfile_card'); }); }); 44function showStudentDlg(year, table, id, options) { 45 var _a; 46 return tslib_1.__awaiter(this, void 0, Promise, function () { 47 var req, dbi, student_rows_1, fix, cop, studentid; 48 return tslib_1.__generator(this, function (_b) { 49 switch (_b.label) { 50 case 0: 51 req = edurequest_1.client_req; 52 if (!(id && !id.includes(':'))) return [3, 2]; 53 return [4, ASC.blockUI(req.maindbi(year, { 54 needed_part: { 55 studentkopias: ['studentid'], 56 } 57 }))]; 58 case 1: 59 dbi = _b.sent(); 60 student_rows_1 = dbi.tableBucketColumn('studentkopias', 'studentid'); 61 fix = function (id) { 62 var _a, _b; 63 if (!id || id.includes(':')) 64 return id; 65 return ((_b = (_a = student_rows_1.get(id)) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.id) || (id + ':0'); 66 }; 67 id = fix(id); 68 options = tslib_1.__assign(tslib_1.__assign({}, options), { navigateids: (_a = options.navigateids) === null || _a === void 0 ? void 0 : _a.map(fix) }); 69 _b.label = 2; 70 case 2: return [4, asc_react_1.RDialog.show(React.createElement(StudentDlg, { year: year, id: id, options: options }))]; 71 case 3: 72 cop = _b.sent(); 73 if (cop.startsWith('add=')) { 74 studentid = cop.substr(4).split(':')[0]; 75 if (table == 'students') 76 cop = 'add=' + studentid; 77 } 78 return [2, cop]; 79 } 80 }); 81 }); 82} 83exports.showStudentDlg = showStudentDlg; 84function student_cz_school_druhy(dbi, srow) { 85 var _a; 86 var req = dbi.req; 87 if (req.school_country != 'cz') 88 return []; 89 var crow = dbi.rowData('classes', srow.classid); 90 for (var _i = 0, _b = [ 91 crow 92 ? [crow.schoolid] 93 : dbi.rowDatas('admissions', srow.admissionids || []).map(function (ar) { return ar === null || ar === void 0 ? void 0 : ar.schoolid; }), 94 [(_a = dbi.rowData('globals', '1')) === null || _a === void 0 ? void 0 : _a.schoolid], 95 dbi.tableIds('ourschools'), 96 ]; _i < _b.length; _i++) { 97 var schoolids = _b[_i]; 98 schoolids = schoolids.filter(function (id) { return id; }); 99 var schools = dbi.rowDatas('ourschools', schoolids).filter(function (school) { return school === null || school === void 0 ? void 0 : school.cz_matrika_druh; }); 100 if (schools.length > 0)
101 return (0, dbi_1.idsArrayUnique)(schools.map(function (school) { return school.cz_matrika_druh; })); 102 } 103 return ['Z', 'S']; 104} 105student_cz_school_druhy.needed_part = (0, dbi_1.typed)({ 106 studentkopias: ['classid', 'admissionids'], 107 globals: ['schoolid'], 108 classes: ['schoolid'], 109 admissions: ['schoolid'], 110 ourschools: [ 111 'cz_matrika_druh', 112 ] 113}); 114exports.duplicates_columns = [ 115 'numberinclass', 116 'locker', 117 'platby_vs', 118 'number', 119 'nin', 120]; 121function StudentSkSzCheckbox(props) { 122 var name = props.dbiColumn.name(); 123 var is2026 = props.dbiColumn.id == 'sk_SZ_2026'; 124 var word = is2026 ? 'znevýhodÅujúceho' : 'znevýhodneného'; 125 var suffix = is2026 ? 'Åujúce' : 'nené'; 126 var i = name.indexOf(word); 127 var label = i < 0 ? name : React.createElement(React.Fragment, null, 128 name.slice(0, i), 129 React.createElement("b", null, 130 word.slice(0, word.length - suffix.length - 2), 131 React.createElement("span", { style: { textDecoration: 'underline', textUnderlineOffset: '3px' } }, suffix), 132 "ho"), 133 name.slice(i + word.length)); 134 return React.createElement(asc_react_1.RCheckBox, { valueRef: props.valueRef, label: label }); 135} 136function StudentDlg(props) { 137 var _this = this; 138 var _a, _b, _c, _d; 139 var req = edurequest_1.client_req; 140 var log_module = 'StudentDlg'; 141 var year = props.year, options = props.options; 142 var school_country = req.school_country; 143 var blank_add = (_a = props.options) === null || _a === void 0 ? void 0 : _a.row; 144 (0, asc_react_1.useTTLang)(); 145 var itemState = (0, itemdlg_1.useMainDBIItemDlgState)(year, 'studentkopias', props.id, { 146 date: options.date, 147 needed_part: dbi_1.DBITools.mergeNeededParts(moveupcolumns_1.useMoveUpColumns, CzHealthinput, ParentInput, student_cz_school_druhy, { 148 studentkopias: tslib_1.__spreadArray([ 149 'studentid', 150 'firstname', 151 'lastname', 152 'callname', 153 'prefname', 154 'birthlastname', 155 'gender', 156 'email', 157 'email_private', 158 'mobile', 159 'username', 160 'username_hint', 161 'subname', 162 'nameprefix', 163 'namesuffix', 164 'alternate_firstname', 165 'alternate_lastname', 166 'classid', 167 'numberinclass', 168 'number', 169 'grade', 170 'repeated_grades', 171 'odborid', 172 'odbor2id', 173 'educationplanid', 174 'schoolid', 175 'otherschoolid', 176 'otherschool_class', 177 'igroupids', 178 'datefrom', 179 'dateto', 180 'exclude_subjectids', 181 'parentids', 182 'nin', 183 'ssn', 184 'passport', 185 'foreign_code', 186 'nationality', 187 'citizenship', 188 'citizenship2', 189 'citizenship_type_code', 190 'mothertongue', 191 'familytongue', 192 'lang2', 193 'locker', 194 'platby_vs', 195 'contract_number', 196 'carplate', 197 'idcardnum', 198 'edesk_number', 199 'prax_firmaid', 200 'root_edupage', 201 'prax_firmas', 202 'note', 203 'cb_note', 204 'note_katlist', 205 'note_skdlist', 206 'sk_dolozka_katlist', 207 'sk_posledna_cinnost', 208 'sk_poistenie', 209 'educloudids', 210 'isic_order', 211 'sisid', 212 'ekarty', 213 'prevschoolid', 214 'nextschoolid', 215 'prevschool_code', 216 'nextschool_code', 217 'groupsubjectids', 218 'teacherid', 219 'out', 220 'registrationid', 221 'birthdate', 222 'birthcity', 223 'birthcountry', 224 'age_years', 225 'admission_resultid', 226 'admissionids', 227 'nextschoolid', 228 'nextodbor_code', 229 'nextschools', 230 'health_note', 231 'health_bloodtype', 232 'health_allergies', 233 'health_vaccine_measles', 234 'transport_pickup', 235 'transport_dropoff', 236 'transport_school', 237 'transport_typ', 238 'foreignlang1', 239 'foreignlang2', 240 'foreignlang3', 241 'foreignlang4', 242 'foreignlang1_type', 243 'foreignlang2_type', 244 'foreignlang3_type', 245 'foreignlang4_type', 246 'foreignlang1_auto', 247 'foreignlang2_auto', 248 'foreignlang3_auto', 249 'foreignlang4_auto', 250 'at_religion', 251 'at_bpk', 252 'co_iddoc_type', 253 'co_iddoc_number', 254 'co_iddoc_place', 255 'cz_matrika_DELST', 256 'cz_zdr_poist', 257 'cz_zdr_cpoj', 258 'cz_matrika_exclude', 259 'cz_nedojizdi_denne', 260 'cz_nebydli_v_miste_skoly', 261 'cz_matrika_JAZ1', 262 'cz_matrika_JAZ2', 263 'cz_matrika_JAZ3', 264 'cz_matrika_JAZ4', 265 'cz_matrika_P_JAZ1', 266 'cz_matrika_P_JAZ2', 267 'cz_matrika_P_JAZ3', 268 'cz_matrika_P_JAZ4', 269 'cz_matrika_KOD_ZAH', 270 'cz_matrika_KOD_UKON', 271 'cz_matrika_LET_PSD', 272 'cz_matrika_ZPUSOB', 273 'cz_matrika_PRIZN_ST', 274 'cz_matrika_FIN', 275 'cz_matrika_ODHL', 276 'cz_matrika_pt_ODHL', 277 'cz_matrika_STUPEN', 278 'cz_admission_spadovy', 279 'cz_matrika_OBORS', 280 'cz_zapisovylistok_number', 281 'cz_matrika_RMAT', 282 'cz_matrika_nZVJ', 283 'cz_matrika_JAZ_PODP', 284 'cz_matrika_JAZ_PRIP', 285 'cz_matrika_pt_KOD_ZAH', 286 'cz_visa_number', 287 'cz_zak67', 288 'cz_predskolak', 289 'de_religion', 290 'de_religion_wl', 291 'de_schulbesuchsjahr', 292 'de_schulabschluss', 293 'de_abschlussprognose', 294 'de_univentionid', 295 'sso1_id', 296 'de_fsn', 297 'de_sorgerecht', 298 'custody', 299 'de_bundesland', 300 'de_pflegegrad', 301 'de_asylbewerber', 302 'de_visum', 303 'de_daz', 304 'de_einwanderungsjahr', 305 'de_forderschwerpunkt', 306 'de_wahlpflichtfach1', 307 'de_wahlpflichtfach2', 308 'de_wahlpflichtfach3', 309 'de_einschulung_date', 310 'de_einschulung_art', 311 'de_anerkennung_zeugnis', 312 'de_hortbetreuung', 313 'de_behinderung', 314 'de_gender', 315 'de_bildungsgang', 316 'de_differenzierung_bildungsgang', 317 'sk_SZ', 318 'sk_SZ_2026', 319 'sk_dovod_zaradenia_zo_szp', 320 'sk_dovod_adaptacnej_triedy', 321 'sk_ZZ', 322 'sk_DV', 323 'sk_SS', 324 'sk_hmotna_nudza', 325 'sk_utecenec', 326 'sk_spis_info', 327 'sk_zdr_poist', 328 'sk_spadova_ms', 329 'sk_spadova_zs', 330 'sk_rok_dochadzky', 331 'sk_dlzka_studia', 332 'sk_forma_studia', 333 'sk_druh_studia', 334 'sk_typ_prospechu', 335 'sk_typ_prospechu2', 336 'sk_eqf', 337 'sk_vyucovaci_jazyk',
338 'sk_rok_ukoncenia_dochadzky', 339 'sk_datum_ukoncenia_dochadzky', 340 'sk_typ_zaciatku_studia', 341 'sk_typ_ukoncenia_studia', 342 'sk_typ_dochadzky', 343 'sk_majster_teacherid', 344 'sk_prax_miesto', 345 'sk_predchadzajuce_vzdelanie', 346 'physicianid', 347 'dormitoryid', 348 'dormitory_room', 349 'sk_ris_exclude', 350 'sk_postihnutia', 351 'sk_zus_stupen', 352 'sk_cislokarty', 353 'sk_zsrkarta', 354 'sk_postihnutia_poradna', 355 'sk_postihnutia_datum', 356 'sk_nabozenstvo_typ', 357 'sk_diagnoza', 358 'sk_vysetrenia', 359 'skd_attending', 360 'skd_number', 361 'skd_prihlaska_datum', 362 'skd_prihlaska_datum_auto', 363 'sk_dotacie', 364 'sk_stipendia', 365 'sk_ucast_svp', 366 'sk_ucast_lk', 367 'sk_druh_sportu', 368 'sk_ms_datefrom', 369 'sk_ms_dateto', 370 'sk_ms_v', 371 'sk_psd_datefrom', 372 'sk_psd_v', 373 'sk_predskolak', 374 'sk_vzdelavaci_poukaz', 375 'sk_vzdelavaci_poukaz_uplatnuje', 376 'sk_vzdelavaci_poukaz_groupsubjects_id', 377 'sg_citizenship_status', 378 'sg_ethnicity', 379 'external', 380 'tt_ethnicity', 381 'tt_religion', 382 'kcpe_mean', 383 'kcpe_total', 384 'refugee', 385 'orphan', 386 'special_needs', 387 'reason_application', 388 'height', 389 'weight', 390 'cestovne', 391 'cestovne_sposobdopravy', 392 'cestovne_maxDaysPerMonth', 393 'zus_rocnik', 394 'zus_cast', 395 'zus_stupen', 396 'zus_druh', 397 'zus_hlavny_predmet', 398 'zus_obligatny_nastroj', 399 'zus_volitelny_nastroj', 400 'zus_cestne_vyhlasenie', 401 'zus_prijimacia_skuska_datum', 402 'photo_url', 403 'presences', 404 'cf_s1', 405 'cf_s2', 406 'cf_s3', 407 'cf_s4', 408 'cf_s5', 409 'cf_s6', 410 'cf_s7', 411 'cf_s8', 412 'cf_s9', 413 'cf_s10', 414 'cf_s11', 415 'cf_s12', 416 'cf_s13', 417 'cf_s14', 418 'cf_s15', 419 'cf_d1', 420 'cf_id1', 421 'cf_cb1', 422 'cf_cb2', 423 'cf_cb3', 424 'cf_cb4', 425 'cf_cb5', 426 'cf_cb6', 427 'cf_cb7', 428 '_uial', 429 'changes', 430 'changes_g', 431 'changes_sy', 432 'eduid', 433 'at_half_dateto', 434 'at_half_dateto_auto', 435 'at_end_dateto', 436 'at_end_dateto_auto', 437 'representative_classids' 438 ], address_1.AddressInput.part_columns, true), 439 classes: [ 440 '__name', 441 'schoolid', 442 'grade', 443 'odborid', 444 'educationplanid', 445 'cz_matrika_DELST', 446 'cz_matrika_DRST', 447 'sk_rok_dochadzky', 448 'sk_dlzka_studia', 449 'sk_forma_studia', 450 'sk_druh_studia', 451 'sk_typ_triedy', 452 'sk_typ_prospechu', 453 'sk_vyucovaci_jazyk', 454 'teacherid', 455 'teacherids', 456 ], 457 parents: ['nin', 'birthdate', 'birthlastname', 'is_dead'], 458 subjects: ['__name'], 459 teachers: ['__name'], 460 igroups: ['__name'], 461 odbors: ['__name', 'code', 'subname', 'sk_extra_identification'], 462 educationplans: ['__name'], 463 prax_firmas: ['__name', 'company_name'], 464 groupsubjects: ['__name', 'jeSkd', 'subjectid'], 465 admissions: ['__name'], 466 admission_results: ['__name'], 467 schools: ['__name', 'cz_matrika_druh', 'cz_izo', 'eduid'], 468 ourschools: ['__name', 'cz_matrika_druh', 'cz_izo'], 469 dormitories: ['__name'], 470 physicians: ['__name'], 471 globals: ['date', 'schoolid'], 472 global_settings: ['noveKurzy', 'agenda'], 473 halves: ['__name'], 474 }, class_1.OurschoolCombo), 475 needed_combos: dbi_1.DBITools.mergeNeededCombos(CzHealthinput.needed_combos, ParentInput.needed_combos, {
476 studentkopias: tslib_1.__spreadArray([ 477 'gender', 478 'nationality', 479 'citizenship', 480 'citizenship2', 481 'citizenship_type_code', 482 'birthcountry', 483 'mothertongue', 484 'familytongue', 485 'lang2', 486 'grade', 487 'repeated_grades', 488 'isic_order', 489 'transport_school', 490 'presences', 491 'sk_utecenec', 492 'sk_zdr_poist', 493 'sk_rok_dochadzky', 494 'sk_dlzka_studia', 495 'sk_forma_studia', 496 'sk_rok_ukoncenia_dochadzky', 497 'sk_druh_studia', 498 'sk_typ_prospechu', 499 'sk_typ_prospechu2', 500 'sk_vyucovaci_jazyk', 501 'sk_prax_miesto', 502 'sk_SS', 503 'cz_zdr_poist', 504 'cz_matrika_DELST', 505 'cz_matrika_JAZ1', 506 'cz_matrika_JAZ2', 507 'cz_matrika_JAZ3', 508 'cz_matrika_JAZ4', 509 'cz_matrika_P_JAZ1', 510 'cz_matrika_P_JAZ2', 511 'cz_matrika_P_JAZ3', 512 'cz_matrika_P_JAZ4', 513 'cz_matrika_KOD_ZAH', 514 'cz_matrika_KOD_UKON', 515 'cz_matrika_LET_PSD', 516 'cz_matrika_ZPUSOB', 517 'cz_matrika_PRIZN_ST', 518 'cz_matrika_FIN', 519 'cz_matrika_STUPEN', 520 'cz_matrika_ODHL', 521 'cz_matrika_pt_ODHL', 522 'cz_admission_spadovy', 523 'cz_matrika_pt_KOD_ZAH', 524 'at_religion', 525 'de_religion', 526 'de_religion_wl', 527 'de_schulbesuchsjahr', 528 'de_abschlussprognose', 529 'de_schulabschluss', 530 'de_fsn', 531 'de_sorgerecht', 532 'custody', 533 'de_pflegegrad', 534 'de_asylbewerber', 535 'de_visum', 536 'de_forderschwerpunkt', 537 'de_einschulung_art', 538 'de_anerkennung_zeugnis', 539 'de_hortbetreuung', 540 'de_behinderung', 541 'de_gender', 542 'de_bildungsgang', 543 'de_differenzierung_bildungsgang', 544 'co_iddoc_type', 545 'sg_citizenship_status', 546 'sg_ethnicity', 547 'tt_ethnicity', 548 'tt_religion', 549 'foreignlang1', 550 'foreignlang2', 551 'foreignlang3', 552 'foreignlang4', 553 'foreignlang1_type', 554 'foreignlang2_type', 555 'foreignlang3_type', 556 'foreignlang4_type', 557 'sk_eqf', 558 'sk_typ_zaciatku_studia', 559 'sk_typ_ukoncenia_studia', 560 'sk_typ_dochadzky', 561 'out', 562 'sk_dovod_zaradenia_zo_szp', 563 'sk_dovod_adaptacnej_triedy', 564 'sk_druh_sportu', 565 'sk_postihnutia', 566 'sk_zus_stupen', 567 'sk_nabozenstvo_typ', 568 'sk_druh_vysetrenia', 569 'sk_vysetrenia', 570 'skd_attending', 571 'sk_dotacie', 572 'sk_stipendia', 573 'reason_application', 574 'cestovne_maxDaysPerMonth', 575 'cestovne_sposobdopravy' 576 ], address_1.AddressInput.part_combos, true), 577 classes: [ 578 'grade', 579 'sk_rok_dochadzky', 580 'sk_dlzka_studia', 581 'sk_forma_studia', 582 'sk_druh_studia', 583 'sk_typ_prospechu', 584 'sk_vyucovaci_jazyk', 585 ], 586 }), 587 allowNavigation: true, 588 navigateids: options.navigateids, 589 log_module: log_module, 590 suspense: true, 591 blank_add: blank_add, 592 onValidate: (0, itemdlg_validate_1.validate_chain)(function (params) { return tslib_1.__awaiter(_this, void 0, void 0, function () { 593 var adding, row; 594 return tslib_1.__generator(this, function (_a) { 595 switch (_a.label) { 596 case 0: 597 adding = params.adding, row = params.row; 598 if (!adding) 599 return [2, true]; 600 if (!(row.firstname || row.lastname || row.number || row.email)) { 601 (0, itemdlg_validate_1.validate_showInvalidColumn)(params, req.sort_name_col.startsWith('F') ? 'firstname' : 'lastname'); 602 return [2, false]; 603 } 604 if (!(!row.classid && !row.admission_resultid)) return [3, 2]; 605 return [4, asc_react_1.RDialog.showConfirm(React.createElement("div", null, 606 req.ls(1263) + ': ', 607 React.createElement("b", null, req.ls(4283))), { 608 msgType: 'areyousure', 609 header: req.ls(9279), 610 })]; 611 case 1: 612 if (!(_a.sent())) 613 return [2, false]; 614 _a.label = 2; 615 case 2: return [2, true]; 616 } 617 }); 618 }); }, function (_a) { 619 var row = _a.row, changed = _a.changed; 620 return tslib_1.__awaiter(_this, void 0, void 0, function () { 621 var crow; 622 return tslib_1.__generator(this, function (_b) { 623 if (!changed) 624 return [2, true]; 625 if (req.hasRight('agenda') || req.hasRight('students_admin')) 626 return [2, true]; 627 crow = dbi.rowData('classes', row['classid'], {}); 628 if (req.isUcitel() == crow.teacherid || crow.teacherids.includes(req.isUcitel())) 629 return [2, true]; 630 asc_react_1.RDialog.showMessage(req.ls(4788) + ' - ' + req.ls(1263), { msgType: 'fail' }); 631 return [2, false]; 632 }); 633 }); 634 }, function (params) { return tslib_1.__awaiter(_this, void 0, void 0, function () { 635 var numberinclass; 636 return tslib_1.__generator(this, function (_a) { 637 numberinclass = params.row.numberinclass; 638 if (numberinclass && !/^\d*$/.test(numberinclass)) { 639 (0, itemdlg_validate_1.validate_showInvalidColumn)(params, 'numberinclass'); 640 return [2, false]; 641 } 642 return [2, true]; 643 }); 644 }); }, validate_duplicates, function (_a) { 645 var row = _a.row; 646 return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_b) { 647 switch (_b.label) { 648 case 0: return [4, parentEditingState.onValidate({ srow: row })]; 649 case 1: return [2, (_b.sent()) || false]; 650 } 651 }); }); 652 }, itemdlg_validate_1.validate_email, validate_emailUnique), 653 onAfterOk: function (_a) { 654 var row = _a.row; 655 return tslib_1.__awaiter(_this, void 0, void 0, function () { 656 return tslib_1.__generator(this, function (_b) { 657 switch (_b.label) { 658 case 0: return [4, parentEditingState.onAfterOk({ srow: row })]; 659 case 1: 660 _b.sent(); 661 return [4, skRisEditingState.onAfterOk({ row: row })]; 662 case 2: 663 _b.sent(); 664 return [2]; 665 } 666 }); 667 }); 668 }, 669 customItemName: function (_a) { 670 var row = _a.row; 671 if (row.sk_predskolak) 672 return 'Žiak s povinným predprimárnym vzdelávanÃm';
673 if (row.cz_predskolak) 674 return 'Žák s povinným pÅedÅ¡kolnÃm vzdÄlávánÃm'; 675 return undefined; 676 }, 677 }); 678 var rdlgProps = itemState.rdlgProps, dlgRow = itemState.dlgRow, rowRef = itemState.rowRef, dbi = itemState.dbi, row = itemState.row, id = itemState.id, adding = itemState.adding, readonly = itemState.readonly, doApply = itemState.doApply, setHasOtherChange = itemState.setHasOtherChange, navigate = itemState.navigate; 679 var callback = (0, asc_react_1.useAsyncMemo)(function () { return (0, fieldcallback_1.getDlgFieldCallback)({ 680 table: 'studentkopias', 681 doApply: doApply, 682 highlight_columns: options.highlight_columns 683 }); }, [doApply], null); 684 var date = dbi.rowData('globals', '1').date; 685 var archive = (0, asc_react_1.useAsyncMemo)(function () { return (0, student_1.studentDlg_getArchive)(null, year, id); }, [], null, { 686 inputs_reset: [id], 687 needed: !adding && !dbi.old && !dbi.mock, 688 workIndicator: false, 689 }); 690 var _e = (0, asc_react_1.useLocalState)('StudentDlg.hasExams', false), hasExams = _e[0], setHasExams = _e[1]; 691 React.useEffect(function () { 692 if (archive) 693 setHasExams(archive.hasExams); 694 }, [archive]); 695 var classrow = dbi.rowData('classes', dbi_1.DBITools.rowApplyChanges(row, date).classid); 696 if (classrow) 697 classrow = dbi_1.DBITools.rowApplyChanges(classrow, date); 698 function placeholderByClass(col) { 699 var cv = classrow === null || classrow === void 0 ? void 0 : classrow[col]; 700 if (!cv) 701 return req.ls(6294); 702 return dbi.column('classes', col).textValue(cv) + ' (' + req.ls(6294) + ')'; 703 } 704 var column_nin = React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'nin', control: React.createElement(validatefield_1.RNinField, { valueRef: rowRef.sub('nin').onSet(function (nin) { 705 setTimeout(function () { 706 var _a, _b, _c, _d; 707 var res = getNinDetails(req, nin); 708 if (res) { 709 (_b = (_a = rowRef.sub('birthdate')).set) === null || _b === void 0 ? void 0 : _b.call(_a, res.birthdate); 710 res.gender && ((_d = (_c = rowRef.sub('gender')).set) === null || _d === void 0 ? void 0 : _d.call(_c, res.gender)); 711 } 712 }, 0); 713 }) }) }); 714 var column_ssn = React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'ssn' }); 715 var column_passport = React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'passport' }); 716 var column_odborid = React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'odborid', placeholder: placeholderByClass('odborid') }); 717 var column_email = React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'email', control: validatefield_1.REmailField }); 718 var column_platby_vs = React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'platby_vs', control: validatefield_1.RVSField }); 719 var column_contract_number = React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'contract_number' }); 720 var column_locker = React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'locker' }); 721 var column_number = React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'number' }); 722 var column_cestovne = React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'cestovne', after: req.school_country == 'sk' && "(â¬/deÅ)" }); 723 var column_cestovneMDPM = React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'cestovne_maxDaysPerMonth' }); 724 var sideWidth = 400; 725 var _f = (0, moveupcolumns_1.useMoveUpColumns)({ 726 dlgRow: dlgRow, 727 allowedColumns: [ 728 column_nin, 729 column_ssn, 730 'idcardnum', 731 column_passport, 732 column_odborid, 733 'age_years', 734 column_email, 735 'birthdate', 736 column_platby_vs, 737 column_contract_number, 738 column_locker, 739 'igroupids', 740 'number', 741 'prefname' 742 ], 743 sideWidth: sideWidth, 744 callback: callback, 745 }), top = _f[0], callback_bottom = _f[1]; 746 var cz_school_druhy = (0, asc_react_1.useMemoArray)(React.useMemo(function () { return student_cz_school_druhy(dbi, row); }, [dbi, row])); 747 var cz_urcite_ms = (0, dbi_1.deepStrictEqual)(cz_school_druhy, ['M']); 748 var tabs_ref = React.useRef(); 749 var parentEditingState = useParentEditingState({ 750 srow: row, 751 blank_add: blank_add, 752 readonly: readonly, 753 dbi: dbi, 754 onChange: function () { return setHasOtherChange(); }, 755 selectTab: function (id) { return tabs_ref.current.selectTab(id); }, 756 log_module: log_module, 757 }); 758 var skRisEditingState = (0, sk_ris_1.useSkRisEditingState)({ 759 year: year, 760 row: row, 761 readonly: readonly, 762 dbi: dbi, 763 onChange: function () { return setHasOtherChange(); },
764 table: 'studentkopias' 765 }); 766 var td = dbi.table('studentkopias'); 767 var studentid = id.split(':')[0] || ''; 768 var kopie = React.useMemo(function () { return dbi.tableFilterData('studentkopias', { studentid: studentid }).filter(function (srow) { return srow._uial > 0; }); }, [dbi, studentid]); 769 var startWithFirst = req.sort_name_col == 'FSL'; 770 var number_hore = !td.column('numberinclass'); 771 var number_inBasic = !number_hore && (req.school_country == 'ke' || req.school_country == 'ug'); 772 var showPlatbyTab = dbi.column('studentkopias', 'sk_dotacie') != null; 773 var col_style = { 774 display: 'inline-block', 775 verticalAlign: 'top', 776 marginRight: 10, 777 width: 300, 778 }; 779 var has_cf = !!['cf_cb1', 'cf_s1', 'cf_d1', 'cf_id1'].find(function (c) { 780 var cd = td.column(c); 781 if (!cd) 782 return false; 783 return !cd.def.invisible; 784 }); 785 var cb_cols = React.useMemo(function () { 786 var cb_cols = []; 787 for (var _i = 0, _a = ['cf_s', 'cf_d', 'cf_id', 'cf_cb']; _i < _a.length; _i++) { 788 var prefix = _a[_i]; 789 for (var i = 1; i < 16; i++) { 790 cb_cols.push(prefix + i); 791 } 792 } 793 var order = []; 794 if (req.edupage == 'ds-moskau') 795 order = ['cf_cb1', 'cf_s1', 'cf_cb2']; 796 cb_cols = (0, dbi_1.idsArrayMergeUnique)(order, cb_cols); 797 cb_cols = cb_cols.filter(function (c) { return td.column(c); }); 798 return cb_cols; 799 }, [td]); 800 var height = 700; 801 var width = 960; 802 if (school_country == 'cz') 803 height = 700; 804 if (school_country == 'sk') 805 height = 750; 806 if (td.column('address_street_number')) 807 width = 1100; 808 var moreclasses_el = null; 809 { 810 var canAddClass = req.jeZUS() && req.hasRight('agenda') && !readonly && !req.isAgenda(); 811 if (kopie.length >= 2 || canAddClass) { 812 var menu = kopie.map(function (k) { return ({ 813 text: dbi.rowName('classes', k.classid), 814 checked: k.id == id, 815 onClick: function () { return navigate(k.id); }, 816 }); }); 817 if (canAddClass) { 818 menu.push([]); 819 menu.push({ 820 text: req.ls(1257), 821 onClick: function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { 822 var classid, newid; 823 return tslib_1.__generator(this, function (_a) { 824 switch (_a.label) { 825 case 0: return [4, doApply({ confirm: true })]; 826 case 1: 827 if (!(_a.sent())) 828 return [2]; 829 return [4, asc_react_1.RDialog.showInput('', function (_a) { 830 var stateRef = _a.stateRef; 831 return React.createElement("div", null, 832 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'classid', valueRef: stateRef })); 833 })]; 834 case 2: 835 classid = _a.sent(); 836 if (!classid) 837 return [2]; 838 return [4, ASC.blockUI(dbi.backend.addRow('studentkopias', { 839 studentid: row.studentid, 840 classid: classid, 841 }))]; 842 case 3: 843 newid = _a.sent(); 844 return [4, ASC.blockUI((0, dbi_react_1.refreshSubscribedDBI)(dbi))]; 845 case 4: 846 _a.sent(); 847 navigate(newid); 848 return [2]; 849 } 850 }); 851 }); } 852 }); 853 } 854 moreclasses_el = React.createElement(anchor_1.RAnchor, { label: React.createElement(React.Fragment, null, 855 req.ls(1194) + ' (' + kopie.length + ')', 856 React.createElement("i", { className: 'fa fa-fw fa-caret-down' })), style: { background: 'rgba(255,255,255,0.0)', padding: '4px 8px', borderRadius: '0 0 0 4px' }, menu: menu }); 857 } 858 } 859 var skSzDefinitionHelp = React.createElement("i", { className: "fa fa-question-circle-o agenda-info-icon", style: { cursor: 'help' }, title: "1.1.2026 sa v zákone zmenila definÃcia, polÃÄko znamená nieÄo iné ako v minulosti.\nPreto sú v údajoch žiaka evidované oba zdanlivo rovnaké, avÅ¡ak rozdielne prÃznaky." }); 860 return React.createElement(asc_react_1.RDialog, tslib_1.__assign({}, rdlgProps, { width: width, height: height, dialogClass: 'agenda-item-dialog student' }), 861 React.createElement(dbi_react_1.DlgFieldLayoutTypeContext.Provider, { value: "flex" }, 862 React.createElement(dbi_react_1.DlgFieldCallbackContext.Provider, { value: callback }, 863 React.createElement("div", { className: "agenda-dlg-top " + (id ? '' : ' agenda-new-item') },
864 moreclasses_el && React.createElement("div", { style: (0, asc_react_1.rtlCss)({ textAlign: 'right', position: 'absolute', right: '70px', top: '-26px', zIndex: 2 }) }, moreclasses_el), 865 React.createElement("div", { className: 'agenda-flex-split', style: (0, asc_react_1.rtlCss)({ paddingLeft: '130px' }) }, 866 React.createElement("div", { className: 'agenda-flex-40p agenda-flex-vcenter ', style: { marginBottom: '0px' } }, 867 React.createElement("div", { className: 'agenda-cols-2 agenda-dbifields-narrowlabel' }, 868 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: startWithFirst ? 'firstname' : 'lastname', className: id ? 'huge' : 'huge boxed' }), 869 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: !startWithFirst ? 'firstname' : 'lastname', className: id ? 'huge' : 'huge boxed' }), 870 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'callname', className: id ? 'huge' : 'huge boxed', placeholder: row.firstname }), 871 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'classid', className: id ? 'huge' : 'huge boxed', control: (id && row.classid 872 ? React.createElement(combobox_1.default, { valueRef: rowRef.sub('classid'), items: td.column('classid').combo(), onClick: function () { 873 (Promise.resolve().then(function () { return require('../dlg/changes'); })).then(function (c) { return c.showObjectChangesDlg(year, 'studentkopias', row.id, 'classid'); }); 874 return false; 875 } }) 876 : undefined) }), 877 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'numberinclass', className: id ? 'huge' : 'huge boxed', placeholder: '-', after: !row.numberinclass && row.classid && rowRef.sub('numberinclass').set && React.createElement(anchor_1.RAnchor, { label: req.ls(1215), onClick: function () { 878 var max = 0; 879 for (var _i = 0, _a = dbi.tableFilterData('studentkopias', { classid: row.classid }); _i < _a.length; _i++) { 880 var srow = _a[_i]; 881 if (srow.id == id) 882 continue; 883 max = Math.max(max, srow.numberinclass || 0); 884 } 885 rowRef.sub('numberinclass').set(max + 1); 886 } }) })), 887 React.createElement("div", { className: ' agenda-cols-2 agenda-dbifields-narrowlabel agenda-dbifields-hidden-boxes', style: { columns: 3 } }, 888 number_hore && column_number, 889 top)), 890 id && React.createElement("div", { className: 'agenda-flex-20p', style: { flex: 'auto 0 0', paddingTop: '2px' } }, 891 React.createElement(userface_1.UserFace, { dbi: dbi, table: 'students', row: tslib_1.__assign(tslib_1.__assign({}, row), { id: studentid }), hideName: true, className: 'agenda-user-face' })))), 892 React.createElement(dbi_react_1.DlgFieldCallbackContext.Provider, { value: callback_bottom }, 893 React.createElement.apply(React, tslib_1.__spreadArray(tslib_1.__spreadArray([tabview_1.RTabView, { className: "agenda-side-tabs", orientation: 'left', sessionStorageKey: "agendaStudentTab", style: { 894 flex: '1 1 0px', 895 minHeight: 0, 896 }, select: options.selectTab, labels_style: { 897 maxWidth: 130, 898 }, content_style: { 899 overflow: 'auto', 900 }, controlRef: tabs_ref }, React.createElement(tabview_1.RTabViewTab, { id: 'basic', label: req.ls(3688) },
901 td.column('co_iddoc_number') && React.createElement(React.Fragment, null, 902 React.createElement(asc_react2_1.RClassGroupBox, { title: req.ls(4369) }, 903 React.createElement(dbi_react_1.DBIField, { dlgRow: dlgRow, column: 'co_iddoc_type' }), 904 React.createElement(dbi_react_1.DBIField, { dlgRow: dlgRow, column: 'co_iddoc_number' }), 905 React.createElement("span", { style: { margin: '0px 5px' } }, "Lugar:"), 906 React.createElement(dbi_react_1.DBIField, { dlgRow: dlgRow, column: 'co_iddoc_place' }))), 907 React.createElement(asc_react2_1.RClassGroupBox, { title: req.ls(13144) }, 908 React.createElement("div", { className: 'agenda-cols-2' }, 909 column_nin, 910 number_inBasic && column_number, 911 column_ssn, 912 column_passport, 913 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'idcardnum' }), 914 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'foreign_code' }), 915 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'birthdate' }), 916 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'age_years' }), 917 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'eduid' }), 918 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'birthlastname' }), 919 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'birthcity' }), 920 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'birthcountry' }), 921 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'gender' }), 922 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'de_gender' }), 923 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'nationality' }), 924 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sg_citizenship_status' }), 925 React.createElement(autocomplete_1.DlgFieldAutocomplete, { dlgRow: dlgRow, column: 'sg_ethnicity' }), 926 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'tt_ethnicity' }), 927 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'citizenship' }), 928 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'citizenship_type_code', name_col: 'IDN' }), 929 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'citizenship2' }), 930 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'mothertongue' }), 931 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'lang2' }), 932 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_utecenec', after: React.createElement("i", { className: "fa fa-info-circle", title: "\u2022 Tento \u00FAdaj sa nepren\u00E1\u0161a do RIS.\n\u2022 Sl\u00FA\u017Ei iba na vlastn\u00FA potrebu \u0161koly.\n\u2022 V RISe sa u\u017E eviduj\u00FA iba cudzinci bez pobytu." }) }), 933 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'refugee' }), 934 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'orphan' }), 935 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'at_religion' }), 936 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'de_religion' }), 937 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'tt_religion' }), 938 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'de_forderschwerpunkt' }), 939 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'de_sorgerecht' }), 940 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'custody' }))), 941 req.school_country != 'gr' && (React.createElement(asc_react2_1.RClassGroupBox, { title: req.ls(3706) }, 942 React.createElement("div", { className: 'agenda-cols-2' }, 943 column_locker, 944 column_platby_vs, 945 column_contract_number, 946 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'edesk_number', control: validatefield_1.REDeskNumberField }), 947 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'carplate' }), 948 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_zsrkarta' }), 949 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_cislokarty', className: 'agenda-label-valign-top', field_note: React.createElement("span", null, "Identifika\u010Dn\u00E9 \u010D\u00EDslo je unik\u00E1tne \u010D\u00EDslo \u017Eiaka, tla\u010D\u00ED sa na \u017Eiacky preukaz (aj ako \u010Diarov\u00FD k\u00F3d)") }), 950 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'cz_visa_number', control: validatefield_1.RCzVisaNumberField }))))), React.createElement(tabview_1.RTabViewTab, { id: 'address', label: req.ls(1082) }, 951 React.createElement(address_1.AddressInput, { dlgRow: dlgRow, separator: "", msg: React.createElement(MoreFieldsContactUs, { dlgRow: dlgRow, column: 'address_street' }) }), 952 React.createElement("div", { className: 'agenda-cols-2' }, 953 React.createElement(asc_react2_1.RClassGroupBox, { title: req.ls(1596) }, 954 column_email, 955 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'email_private', control: validatefield_1.REmailField, label: dbi.column('studentk
955opias', 'email_private').name() + (req.school_country == 'sk' ? "\n(iný ako rodiÄ)" : '') }), 956 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'mobile' }), 957 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'subname' }), 958 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'prefname' })), 959 React.createElement(asc_react2_1.RClassGroupBox, { title: req.ls(1012) }, 960 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'username', control: React.createElement(account_1.UsernameField, { dlgRow: dlgRow, doApply: doApply }) }), 961 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'username_hint', after: React.createElement("i", { className: "fa fa-info-circle", title: req.ls(13052) }) }))), 962 React.createElement("div", { className: 'agenda-cols-2' }, 963 dbi.column('studentkopias', 'dormitoryid') && (React.createElement(asc_react2_1.RClassGroupBox, { title: req.ls(11771) }, 964 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'dormitoryid' }), 965 dbi.column('studentkopias', 'dormitory_room') && (React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'dormitory_room' })))), 966 dbi.column('studentkopias', 'sk_spadova_zs') && (React.createElement(asc_react2_1.RClassGroupBox, { title: req.ls(4323) }, 967 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_spadova_zs', control: SkSchoolCombo, className: 'agenda-label-valign-top' }), 968 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_spadova_ms', control: SkSchoolCombo, className: 'agenda-label-valign-top' }))))), React.createElement(tabview_1.RTabViewTab, { id: 'study', label: req.ls(4478) }, 969 school_country == 'sk' 970 ? (React.createElement(React.Fragment, null, 971 (req.jeCVC() || req.jeSportovyKlub()) && td.column('otherschoolid') && React.createElement(React.Fragment, null, 972 React.createElement(asc_react2_1.RClassGroupBox, { title: 'Kme\u0148ov\u00E1 \u0161kola' }, 973 React.createElement("div", { className: 'agenda-cols-2' }, 974 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'otherschoolid' }), 975 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'otherschool_class' })))), 976 React.createElement(asc_react2_1.RClassGroupBox, { title: ls(6297) }, 977 React.createElement("div", { className: 'agenda-cols-2' }, 978 column_odborid, 979 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_dlzka_studia', placeholder: placeholderByClass('sk_dlzka_studia') }), 980 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_forma_studia', placeholder: placeholderByClass('sk_forma_studia') }), 981 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_druh_studia', placeholder: placeholderByClass('sk_druh_studia') }), 982 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_vyucovaci_jazyk', placeholder: placeholderByClass('sk_vyucovaci_jazyk') }), 983 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'grade', placeholder: placeholderByClass('grade') }), 984 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_rok_dochadzky', placeholder: placeholderByClass('sk_rok_dochadzky') }), 985 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'schoolid', control: class_1.OurschoolCombo }), 986 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_predchadzajuce_vzdelanie' }), 987 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'educationplanid', placeholder: placeholderByClass('educationplanid') }), 988 dbi.column('studentk
988opias', 'sk_dovod_adaptacnej_triedy') && String(classrow === null || classrow === void 0 ? void 0 : classrow.sk_typ_triedy) == '5' && (React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_dovod_adaptacnej_triedy' })), 989 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_DV' }), 990 React.createElement(KontrahovanieDiv, { dlgRow: dlgRow, doApply: doApply }), 991 dbi.column('studentkopias', 'sk_druh_sportu') && (React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_druh_sportu' })))), 992 (req.jeZUS() || req.jeSUS()) && React.createElement(React.Fragment, null, 993 React.createElement(asc_react2_1.RClassGroupBox, { title: "Umelecká škola" }, 994 React.createElement("div", { className: 'agenda-cols-2' }, 995 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_zus_stupen' }), 996 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'zus_hlavny_predmet' }), 997 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'zus_obligatny_nastroj' }), 998 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'zus_volitelny_nastroj' }), 999 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'otherschoolid' }), 1000 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'otherschool_class' }), 1001 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'zus_rocnik' }), 1002 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'zus_cast' }), 1003 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'zus_stupen' }), 1004 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'zus_druh' }), 1005 React.createElement(KontrahovanieDiv, { dlgRow: dlgRow, doApply: doApply })), 1006 React.createElement("div", { className: "agenda-dbifield-outer " }, 1007 React.createElement("div", { className: "agenda-dbifield-label" }), 1008 React.createElement("div", { className: "agenda-dbifield-field" }, 1009 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'zus_cestne_vyhlasenie', label_style: 'embeded' }))))))) 1010 : React.createElement(React.Fragment, null, 1011 React.createElement(asc_react2_1.RClassGroupBox, { title: !cz_urcite_ms && ls(6297) }, 1012 React.createElement("div", { className: 'agenda-cols-2' }, 1013 !cz_urcite_ms && column_odborid, 1014 (row.odbor2id || (classrow === null || classrow === void 0 ? void 0 : classrow.cz_matrika_DRST) == '61') && React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'odbor2id' }), 1015 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'grade', placeholder: placeholderByClass('grade') }), 1016 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'repeated_grades' }), 1017 !cz_urcite_ms && React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'cz_matrika_DELST', placeholder: placeholderByClass('cz_matrika_DELST') }), 1018 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'educationplanid', placeholder: placeholderByClass('educationplanid') }), 1019 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'cz_zak67', label_style: 'embeded', outer_style: { justifyContent: 'flex-end' } }), 1020 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'de_bildungsgang' }), 1021 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'de_differenzierung_bildungsgang' })))), 1022 React.createElement(asc_react2_1.RClassGroupBox, { title: ls(1602) }, 1023 school_country == 'sk' 1024 ? (React.createElement(React.Fragment, null, 1025 React.createElement("div", { className: 'agenda-cols-2' }, 1026 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'datefrom' }), 1027 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_typ_zaciatku_studia' }), 1028 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'dateto' }), 1029 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_typ_ukoncenia_studia' }), 1030 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_typ_docha
1030dzky' }), 1031 false && React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_rok_ukoncenia_dochadzky' }), 1032 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_datum_ukoncenia_dochadzky' }), 1033 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'at_half_dateto', placeholder: ls(1215) + (row.at_half_dateto_auto ? ' (' + (0, lib_date_1.date_format_date)(req, row.at_half_dateto_auto) + ')' : '') }), 1034 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'at_end_dateto', placeholder: ls(1215) + (row.at_end_dateto_auto ? ' (' + (0, lib_date_1.date_format_date)(req, row.at_end_dateto_auto) + ')' : '') }), 1035 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'out', control: React.createElement(StudentOutField, { valueRef: rowRef.sub('out'), dbi: dbi, row: row }), className: 'agenda-label-valign-top' })))) 1036 : school_country == 'cz' 1037 ? (React.createElement(React.Fragment, null, 1038 React.createElement(CzDateFromTo, { dlgRow: dlgRow, archive: archive, cz_school_druhy: cz_school_druhy }), 1039 React.createElement("div", { className: 'agenda-cols-2' }, 1040 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'out', control: React.createElement(StudentOutField, { valueRef: rowRef.sub('out'), dbi: dbi, row: row }), className: 'agenda-label-valign-top' }), 1041 !cz_urcite_ms && React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'cz_matrika_LET_PSD', placeholder: cz_school_druhy.includes('Z') && ((row.grade || (classrow === null || classrow === void 0 ? void 0 : classrow.grade) || '-') + ' (automaticky - podle roÄnÃku)') 1042 || cz_school_druhy.includes('S') && '(automaticky - PÅ D splnÄna)' 1043 || undefined })), 1044 React.createElement("div", { className: 'agenda-cols-2' }, 1045 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'at_half_dateto', placeholder: ls(1215) + (row.at_half_dateto_auto ? ' (' + (0, lib_date_1.date_format_date)(req, row.at_half_dateto_auto) + ')' : '') }), 1046 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'at_end_dateto', placeholder: ls(1215) + (row.at_end_dateto_auto ? ' (' + (0, lib_date_1.date_format_date)(req, row.at_end_dateto_auto) + ')' : '') })))) 1047 : (React.createElement(React.Fragment, null, 1048 React.createElement("div", { className: 'agenda-cols-2' }, 1049 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'datefrom' }), 1050 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'dateto' }), 1051 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'out', control: React.createElement(StudentOutField, { valueRef: rowRef.sub('out'), dbi: dbi, row: row }), className: 'agenda-label-valign-top' }), 1052 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'at_half_dateto', placeholder: ls(1215) + (row.at_half_dateto_auto ? ' (' + (0, lib_date_1.date_format_date)(req, row.at_half_dateto_auto) + ')' : '') }), 1053 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'at_end_dateto', placeholder: ls(1215) + (row.at_end_dateto_auto ? ' (' + (0, lib_date_1.date_format_date)(req, row.at_end_dateto_auto) + ')' : '') }), 1054 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'de_einschulung_date' }), 1055 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'de_einschulung_art' })))), 1056 row.dateto && ((row.at_end_dateto || row.at_end_dateto_auto) > row.dateto) 1057 ? (React.createElement("div", { className: 'agenda-dbifield-field-note', style: { color: "#C62828", textAlign: 'center' } }, 1058 React.createElement("i", { className: 'fa fa-fw fa-info' }), 1059 " ", 1060 ls(13447))) 1061 : null),
1062 school_country == 'cz' && React.createElement(asc_react2_1.RClassGroupBox, { title: 'Matrika' }, 1063 React.createElement("div", { className: 'agenda-cols-2' }, 1064 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'cz_matrika_ZPUSOB' }), 1065 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'cz_matrika_PRIZN_ST' }), 1066 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'cz_matrika_FIN' }), 1067 (0, dbi_1.idsIsOverlap)(cz_school_druhy, ['Z', 'M']) && 1068 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'cz_matrika_nZVJ', label_style: 'embeded' }), 1069 cz_school_druhy.includes('Z') && 1070 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'cz_matrika_JAZ_PODP', label_style: 'embeded' }), 1071 (0, dbi_1.idsIsOverlap)(cz_school_druhy, ['Z', 'M']) && 1072 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'cz_matrika_JAZ_PRIP', label_style: 'embeded' }))), 1073 (dbi.column('studentkopias', 'de_fsn') || dbi.column('studentkopias', 'de_schulbesuchsjahr') || dbi.column('studentkopias', 'de_schulabschluss') || dbi.column('studentkopias', 'de_abschlussprognose')) && (React.createElement(asc_react2_1.RClassGroupBox, { title: "" }, 1074 React.createElement("div", { className: 'agenda-cols-2' }, 1075 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'de_fsn', control: De_fsnInput }), 1076 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'de_schulbesuchsjahr' }), 1077 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'de_schulabschluss' }), 1078 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'de_abschlussprognose' })))), 1079 school_country == 'cz' && !cz_urcite_ms && (React.createElement(asc_react2_1.RClassGroupBox, { title: req.ls(9835) }, (0, asc_react_1.rangeFromTo)(1, 4).map(function (i) { return React.createElement(dbi_react_1.DlgField, { key: i, dlgRow: dlgRow, column: 'cz_matrika_JAZ' + i, className: 'agenda-dbifield-with-after', after: cz_school_druhy.includes('Z') && React.createElement(dbi_react_1.DBIField, { dlgRow: dlgRow, column: 'cz_matrika_P_JAZ' + i }) }); }))), 1080 td.column('foreignlang1') && (React.createElement(asc_react2_1.RClassGroupBox, { title: req.ls(9835) }, (0, asc_react_1.rangeFromTo)(1, 4).map(function (i) { 1081 var _a; 1082 var lang_column = 'foreignlang' + i; 1083 var auto_column = lang_column + '_auto'; 1084 var type_column = lang_column + '_type'; 1085 return React.createElement(dbi_react_1.DlgField, { key: i, dlgRow: dlgRow, column: lang_column, placeholder: row[auto_column] ? req.ls(1215) + ' (' + ((_a = td.column('foreignlang1').combo().find(function (r) { return r["value"] == row[auto_column]; })) === null || _a === void 0 ? void 0 : _a["name"]) + ')' : '-', className: 'agenda-dbifield-with-after', after: td.column(type_column) && React.createElement(dbi_react_1.DBIField, { dlgRow: dlgRow, column: type_column }) }); 1086 }))), 1087 td.column('de_wahlpflichtfach1') && (React.createElement(asc_react2_1.RClassGroupBox, { title: 'Wahlpflichtfach' }, (0, asc_react_1.rangeFromTo)(1, 3).map(function (i) { return React.createElement(dbi_react_1.DlgField, { key: i, dlgRow: dlgRow, column: 'de_wahlpflichtfach' + i }); }))), 1088 td.column('kcpe_mean') 1089 ? (React.createElement(asc_react2_1.RClassGroupBox, { title: req.ls(3706) }, 1090 React.createElement("div", { className: 'agenda-cols-2' }, 1091 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'kcpe_total' }), 1092 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'kcpe_mean' })))) 1093 : '', 1094 req.jeFirma() 1095 ? (React.createElement(React.Fragment, null, ((dbi.column('studentk
1095opias', 'sk_majster_teacherid') && !req.jeZUS() && !req.jeMS()) 1096 || dbi.column('studentkopias', 'root_edupage') 1097 || dbi.column('studentkopias', 'prax_firmas')) && (React.createElement(asc_react2_1.RClassGroupBox, { title: req.ls(4648).ucfirst() }, 1098 React.createElement("div", { className: 'agenda-cols-2' }, 1099 (dbi.column('studentkopias', 'sk_majster_teacherid') && !req.jeZUS() && !req.jeMS()) && React.createElement(React.Fragment, null, 1100 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_majster_teacherid' }), 1101 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_prax_miesto' }), 1102 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'prax_firmaid', control: React.createElement(combobox_1.default, { valueRef: rowRef.sub('prax_firmaid'), items: tslib_1.__spreadArray([ 1103 { value: '', name: '-' } 1104 ], dbi.tableData('prax_firmas') 1105 .sort(function (a, b) { return a.company_name.localeCompare(b.company_name); }) 1106 .map(function (f) { return ({ 1107 value: f.id, 1108 name: f.company_name + ' ' + (f.lastname ? ' (' + f.lastname + ')' : ''), 1109 }); }), true) }) })), 1110 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'root_edupage' })), 1111 dbi.column('studentkopias', 'prax_firmas') && React.createElement(subtableinput_1.default, { dataRef: dlgRow.rowRef.sub("prax_firmas"), dbiColumn: td.column('prax_firmas'), cols: [ 1112 { key: 'prax_firmaid', width: 150, }, 1113 { key: 'datefrom', width: 80, }, 1114 { key: 'dateto', width: 80, } 1115 ], cssClass: 'compact nowrap nowrap-th light-theme', fitWidth: true, style: { 1116 height: 150, 1117 margin: '1em 2em 2em 5em' 1118 }, compactView: true }))))) 1119 : (React.createElement(React.Fragment, null, (dbi.column('studentkopias', 'sk_majster_teacherid') && !req.jeZUS() && !req.jeMS()) && React.createElement(React.Fragment, null, 1120 React.createElement(asc_react2_1.RClassGroupBox, { title: req.ls(4648).ucfirst() }, 1121 React.createElement("div", { className: 'agenda-cols-2' }, 1122 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_majster_teacherid' }), 1123 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_prax_miesto' }), 1124 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'prax_firmaid', control: React.createElement(combobox_1.default, { valueRef: rowRef.sub('prax_firmaid'), items: tslib_1.__spreadArray([ 1125 { value: '', name: '-' } 1126 ], dbi.tableData('prax_firmas') 1127 .sort(function (a, b) { return a.company_name.localeCompare(b.company_name); }) 1128 .map(function (f) { return ({ 1129 value: f.id, 1130 name: f.company_name + ' ' + (f.lastname ? ' (' + f.lastname + ')' : ''), 1131 }); }), true) }) })))))), 1132 React.createElement(asc_react2_1.RClassGroupBox, { title: req.ls(1758) }, 1133 React.createElement("div", { className: 'agenda-cols-2' }, 1134 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'teacherid' }), 1135 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'exclude_subjectids' }), 1136 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_nabozenstvo_typ' }), 1137 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'de_religion_wl' }), 1138 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'skd_attending', placeholder: (((_b = row.groupsubjectids) === null || _b === void 0 ? void 0 : _b.filter(function (id) { var _a; return ((_a = dbi.rowData('groupsubjects', id)) === null || _a === void 0 ? void 0 : _a.jeSkd); }).length) > 0 ? ls(12361) : ls(12362)) + ' (' + ls(1215) + ')' }), 1139 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'skd_number' }), 1140 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'skd_prihlaska_datum', placeholder: ls(1215) + (row.skd_prihlaska_datum_auto ? ' (' + (0, lib_date_1.date_format_date)(req, row.skd_prihlaska_datum_auto) + ')' : '') }))), 1141 req.jeZUS() ? 1142 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'groupsubjectids', className: 'agenda-label-valign-top', control: GroupSubjectsList }) 1143 : 1144 React.createElement(asc_react2_1.RClassGroupBox, { title: "".concat(req.ls(8423), " / ").concat(req.ls(1009)) }, 1145 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'groupsubjectids', label: '', className: 'agenda-label-valign-top', control: student_hodiny_1.StudentGroupSubjectsList })), 1146 school_country == 'sk' 1147 && (React.createElement(asc_react2_1.RClassGroupBox, { title: 'Vzdelávacie poukazy' }, 1148 React.createElement("div", { className: 'agenda-cols-2' }, 1149 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, className: 'agenda-label-valign-top', column: 'sk_vzdelavaci_poukaz', readonly: true, control: VzdelavaciPoukaz }), 1150 row.sk_vzdelavaci_poukaz_uplatnuje ? 1151 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_vzdelavaci_poukaz_groupsubjects_id', control: VzdelavaciPoukazNaKruzok }) 1152 : React.createElement("div", { className: 'asc-label' }, "Poukaz si neuplat\u0148uje na na\u0161ej \u0161kole."))))), school_country == 'de' && React.createElement(tabview_1.RTabViewTab, { id: 'migration', label: 'Migration' }, 1153 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'de_anerkennung_zeugnis' }), 1154 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'de_asylbewerber' }), 1155 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'de_daz' }), 1156 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'de_einwanderungsjahr' }), 1157 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'fam
1157ilytongue' }), 1158 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'de_visum' })), ['sk', 'cz'].includes(school_country) && (React.createElement(tabview_1.RTabViewTab, { id: 'certificates', label: req.ls(4650), style: { display: 'flex', flexDirection: 'column' } }, 1159 school_country == 'sk' && React.createElement("div", null, 1160 React.createElement("div", { className: 'agenda-flex-split' }, 1161 React.createElement("div", { style: { flex: '65% 7 7', overflow: 'hidden' } }, 1162 React.createElement(StudentTypProspechField, { dlgRow: dlgRow, placeholder: placeholderByClass('sk_typ_prospechu'), key: id })), 1163 React.createElement("div", { style: { flex: '35% 3 3', overflow: 'hidden' } }, 1164 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_eqf' })))), 1165 React.createElement(CertificatesArchive, { dlgRow: dlgRow, archive: archive, style: { 1166 flex: '1 1 0px', 1167 } }), 1168 false && (React.createElement(React.Fragment, null, 1169 React.createElement(asc_react_1.VGap, null), 1170 React.createElement("button", { type: "button", className: 'button-blue', onClick: function () { 1171 barNewReactSourceDlg('/znamky/pics/jsw/certificates.js', 'CertifcatesList', { 1172 triedaid: row.classid, 1173 embedded: true, 1174 year: year, 1175 }); 1176 } }, ls(12110)), 1177 React.createElement("button", { type: "button", className: 'button-blue', onClick: function () { 1178 barNewReactSourceDlg('/znamky/pics/jsw/verbalevaluation.js', 'VerbalEvaluationMain', { 1179 triedaid: row.classid, 1180 predmetid: '', 1181 planid: '', 1182 obdobie: '', 1183 asDialog: true, 1184 forceShowStudentid: props.id, 1185 year: year, 1186 }); 1187 } }, ls(9867)))))), req.school_country != 'gr' && (React.createElement(tabview_1.RTabViewTab, { id: 'health', label: req.ls(2645) }, 1188 req.school_country != 'sk' && React.createElement(MoreFieldsContactUs, { dlgRow: dlgRow, column: 'health_note' }), 1189 React.createElement(asc_react2_1.RClassGroupBox, { title: ls(3706) }, 1190 React.createElement("div", { className: 'agenda-cols-2' }, 1191 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_zdr_poist' }), 1192 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'physicianid' }), 1193 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'health_bloodtype' }), 1194 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'health_allergies' }), 1195 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'health_vaccine_measles' }), 1196 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'de_pflegegrad' }), 1197 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'de_behinderung' }), 1198 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'height' }), 1199 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'weight' }))), 1200 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'special_needs' }),
1201 dbi.column('studentkopias', 'sk_postihnutia') && (React.createElement(asc_react2_1.RClassGroupBox, { title: 'Zdravotné znevýhodnenie' }, 1202 React.createElement("div", { className: 'agenda-cols-2' }, 1203 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_ZZ', label_style: 'embeded' }), 1204 React.createElement("div", { style: { textAlign: 'right' } }, 1205 React.createElement("a", { href: "/podporneopatrenia/" }, "Podporn\u00E9 opatrenia"))), 1206 (row["sk_ZZ"] || (row['sk_postihnutia'] && row['sk_postihnutia'].length > 0)) 1207 ? React.createElement("div", { style: { marginLeft: '25px' } }, 1208 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_postihnutia', className: 'agenda-label-fw', readonly: row["sk_ZZ"] ? false : true, control: SkPostihnutiaInput }), 1209 React.createElement("div", { className: 'agenda-cols-2' }, 1210 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_postihnutia_poradna', className: '', readonly: row["sk_ZZ"] ? false : true }), 1211 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_postihnutia_datum', className: '', readonly: row["sk_ZZ"] ? false : true }))) 1212 : null, 1213 React.createElement("div", { style: { display: 'flex', alignItems: 'center', gap: 12 } }, 1214 React.createElement("div", { style: { flex: 1 } }, 1215 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_SZ', label_style: 'embeded', after: skSzDefinitionHelp, control: StudentSkSzCheckbox }), 1216 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_SZ_2026', label_style: 'embeded', after: skSzDefinitionHelp, control: StudentSkSzCheckbox })), 1217 React.createElement(help_1.RHelpLink, { topic: 'u8468' })), 1218 dbi.column('studentkopias', 'sk_dovod_zaradenia_zo_szp') && row['sk_SZ_2026'] 1219 ? React.createElement("div", { style: { marginLeft: '25px' } }, 1220 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_dovod_zaradenia_zo_szp', className: 'agenda-label-fw' })) 1221 : null, 1222 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_hmotna_nudza', label_style: 'embeded' }), 1223 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_SS' }))), 1224 React.createElement(CzHealthinput, { dlgRow: dlgRow, archive: archive, cz_urcite_ms: cz_urcite_ms }), 1225 dbi.column('studentkopias', 'sk_diagnoza') 1226 ? (React.createElement("div", { className: 'agenda-cols-2' }, 1227 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_diagnoza', className: 'agenda-label-titlegray', label_style: 'top', style: { height: 70 } }), 1228 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'health_note', className: 'agenda-label-titlegray', label_style: 'top', style: { height: 70 } }))) 1229 : React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'health_note', className: 'agenda-label-titlegray', label_style: 'top', style: { height: 70 } }), 1230 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_vysetrenia', className: 'agenda-label-titlegray', label_style: 'top', control: React.createElement(StudentVysetreniaField, { valueRef: rowRef.sub('sk_vysetrenia'), dbi: dbi, row: row }) }
1230))), dbi.column('studentkopias', 'sk_dotacie') && (React.createElement(tabview_1.RTabViewTab, { id: 'payments', label: 'Platby, \u0160vP, LK' }, 1231 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_dotacie', className: 'agenda-label-titlegray', label_style: 'top', control: React.createElement(StudentDotacieField, { valueRef: rowRef.sub('sk_dotacie'), dbi: dbi, row: row, year: year }) }), 1232 React.createElement(asc_react_1.HGap, null), 1233 React.createElement(asc_react2_1.RClassGroupBox, { title: "Cestovné" }, column_cestovne && React.createElement("div", { className: "agenda-cols-2" }, 1234 column_cestovne, 1235 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'cestovne_sposobdopravy' }), 1236 column_cestovneMDPM)), 1237 React.createElement(asc_react_1.HGap, null), 1238 React.createElement(asc_react2_1.RClassGroupBox, { title: "Å koly v prÃrode a lyžiarsky kurz v Å¡k. roku " + (req.getSchoolYearName(year)) }, 1239 React.createElement("div", { style: { display: 'flex', flexFlow: 'row nowrap', gap: '8px', alignItems: 'center', padding: '0 8px' } }, 1240 React.createElement("div", { style: { flex: 'auto 1 1' } }, 1241 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_ucast_svp', label_style: 'embeded' }), 1242 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_ucast_lk', label_style: 'embeded' })), 1243 React.createElement("div", { style: { flex: '40% 1 1' } }, 1244 React.createElement("div", { style: { opacity: 0.6, fontSize: '0.9em' } }, "Vopred m\u00F4\u017Eete evidova\u0165 predpoklad \u00FA\u010Dasti, nesk\u00F4r po \u0160vP alebo LK ozna\u010Dte skuto\u010Dn\u00FA \u00FA\u010Das\u0165.")))), 1245 React.createElement(asc_react_1.HGap, null), 1246 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_stipendia', className: 'agenda-label-titlegray', label_style: 'top', control: React.createElement(StudentStipendiaField, { valueRef: rowRef.sub('sk_stipendia'), dbi: dbi, row: row, year: year }) })))], parentEditingState.tabs, false), [req.school_country != 'sk' && req.school_country != 'gr' && React.createElement(tabview_1.RTabViewTab, { id: 'admissions', label: req.ls(4474) }, 1247 false && req.isAgenda() && React.createElement(MoreFieldsContactUs, { dlgRow: dlgRow, column: 'admissionids' }), 1248 (0, asc_react_1.wrapSuspense)(React.createElement(React.Fragment, null, 1249 React.createElement("div", { className: 'agenda-cols-2' }, 1250 React.createElement("div", { style: { breakInside: 'avoid' } }, 1251 req.school_country != 'sk' && React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'prevschoolid', control: req.school_country == 'cz' ? CzSchoolCombo : undefined }), 1252 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'prevschool_code', className: 'agenda-label-valign-top', control: req.school_country == 'sk' ? SkSchoolCombo : undefined }), 1253 React.createElement(CzODHL, { dlgRow: dlgRow, archive: archive, cz_school_druhy: cz_school_druhy }), 1254 !cz_urcite_ms && React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'cz_matrika_STUPEN' }), 1255 (cz_school_druhy.includes('Z') || cz_school_druhy.includes('M')) && React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'cz_admission_spadovy' }), 1256 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'admission_resultid' }), 1257 dbi.tableData('admissions').length > 0 && React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'admissionids' }), 1258 cz_school_druhy.includes('V') && React.createElement(React.Fragment, null, 1259 React.createElement(asc_react_1.VGap, null), 1260 React.createElement(asc_react2_1.RGroupBox, { title: 'VO\u0160' }, 1261 React.createElement(autocomplete_1.DlgFieldAutocomplete, { dlgRow: dlgRow, column: 'cz_matrika_OBORS' }), 1262 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'cz_matrika_RMAT' })))), 1263 React.createElement("div", { style: { breakInside: 'avoid' } }, 1264 req.school_country != 'sk' && React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'nextschoolid', control: req.school_country == 'cz' ? CzSchoolCombo : undefined }), 1265 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'nextschool_code', className: 'agenda-label-valign-top', control: req.school_country == 'sk' ? SkSchoolCombo : undefined }), 1266 !cz_urcite_ms && React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'nextodbor_code' }), 1267 !cz_urcite_ms && React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'cz_zapisovylistok_number' }))), 1268 cz_school_druhy.includes('Z') && td.column('nextschools') && React.createElement(React.Fragment, null, 1269 React.createElement(asc_react_1.VGap, null), 1270 React.createElement(asc_react2_1.RClassGroupBox, { title: td.column('nextschools').name() }, 1271 React.createElement("div", { style: { padding: '0 10px' } }, 1272 React.createElement(subtableinput_1.default, { dataRef: rowRef.sub('nextschools'), dbiColumn: td.column('nextschools'), cols: [ 1273 { key: 'schoolid', width: 150, }, 1274 { key: 'odbor_code', width: 80, }, 1275 { key: 'odbor_note', width: 100, }, 1276 ], cssClass: 'compact nowrap nowrap-th light-theme', fitWidth: true, style: { 1277 height: 150, 1278 }, compactView: true, onEditRow: function (row) { return onEditNextSchool({ row: row, year: year }); } }))))))), !adding && React.createElement(tabview_1.RTabViewTab, { id: 'archive', label: req.ls(1162) }, 1279 React.createElement(ArchiveTab, { archive: archive, dlgRow: dlgRow })), !adding && hasExams && !cz_urcite_ms && React.createElement(tabview_1.RTabViewTab, { id: 'scertificates', label: req.ls(10708) }, 1280 React.createElement(ExamsTab, { archive: archive, dlgRow: dlgRow })), !adding && req.school_country != 'gr' && React.createElement(tabview_1.RTabViewTab, { id: 'rozhodnutia', label: req.ls(4880) }, 1281 React.createElement(RozhodnutiaTab, { archive: archive, dlgRow: dlgRow })), React.createElement(tabview_1.RTabViewTab, { id: 'other', label: req.ls(4349) }, 1282 React.createElement("div", { className: 'agenda-cols-2' }, 1283 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'cz_matrika_exclude', label_style: 'embeded' }), 1284 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'external', label_style: 'embeded' }), 1285 ((_c = rowRef.value) === null || _c === void 0 ? void 0 : _c.external) 1286 ? (React.createElement("div", { className: "agenda-dbifield-outer labelstyle-embeded" }, 1287 React.createElement("div", { className: "agenda-dbifield-field" }, 1288 React.createElement("input", { type: "checkbox", checked: fal
1288se, disabled: true }), 1289 React.createElement("label", null, "Posiela\u0165 do centr\u00E1lneho registra RIS")), 1290 React.createElement("div", { className: "agenda-dbifield-after agenda-dbifield-icons" }))) 1291 : React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_ris_exclude', label_style: 'embeded' })), 1292 req.school_country == 'sk' && (React.createElement(asc_react2_1.RClassGroupBox, { title: "Å koly" }, 1293 React.createElement("div", { className: 'agenda-cols-2' }, 1294 React.createElement("div", { style: { breakInside: 'avoid' } }, 1295 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'prevschool_code', className: 'agenda-label-valign-top', control: req.school_country == 'sk' ? SkSchoolCombo : undefined })), 1296 React.createElement("div", { style: { breakInside: 'avoid' } }, 1297 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'nextschool_code', className: 'agenda-label-valign-top', control: req.school_country == 'sk' ? SkSchoolCombo : undefined }))))), 1298 React.createElement(asc_react2_1.RClassGroupBox, { title: "" }, 1299 !cz_urcite_ms && React.createElement("div", { className: 'agenda-cols-2' }, 1300 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'nameprefix' }), 1301 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'namesuffix' })), 1302 React.createElement("div", { className: 'agenda-cols-2' }, 1303 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'alternate_firstname' }), 1304 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'alternate_lastname' })), 1305 React.createElement("div", { className: 'agenda-cols-2' }, 1306 req.school_country != 'sk' && req.school_country != 'gr' && !cz_urcite_ms && (React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'prax_firmaid' })), 1307 !cz_urcite_ms && React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'isic_order' }), 1308 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'de_hortbetreuung' }), 1309 !number_inBasic && column_number, 1310 req.school_country != 'gr' && (React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sisid' })), 1311 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'de_univentionid' }), 1312 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sso1_id' }), 1313 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'at_bpk' }), 1314 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'reason_application' }), 1315 !showPlatbyTab && column_cestovne, 1316 !showPlatbyTab && column_cestovneMDPM, 1317 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_poistenie' }))), 1318 td.column('cz_nedojizdi_denne') && React.createElement(React.Fragment, null, 1319 React.createElement(asc_react2_1.RClassGroupBox, { title: 'T\u0159\u00EDdn\u00ED v\u00FDkaz' }, 1320 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'cz_nebydli_v_miste_skoly', label_style: 'embeded' }), 1321 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'cz_nedojizdi_denne', label_style: 'embeded' }
1321))), 1322 React.createElement(asc_react_1.VGap, null), 1323 React.createElement(asc_react_1.VGap, null), 1324 req.school_country != 'sk' && React.createElement(React.Fragment, null, 1325 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'note_katlist', label_style: 'top', className: 'agenda-label-titlegray' }), 1326 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_dolozka_katlist', label_style: 'top', className: 'agenda-label-titlegray' }), 1327 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'cb_note', label_style: 'top', className: 'agenda-label-titlegray' }), 1328 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'note', label_style: 'top', className: 'agenda-label-titlegray' }), 1329 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_posledna_cinnost', label_style: 'top', className: 'agenda-label-titlegray' })), 1330 req.school_country != 'gr' && (React.createElement(React.Fragment, null, 1331 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'educloudids', label_style: 'top', className: 'agenda-label-titlegray' }), 1332 React.createElement(asc_react_1.VGap, null), 1333 React.createElement(asc_react_1.VGap, null), 1334 req.school_country == 'de' && React.createElement(asc_react2_1.RClassGroupBox, { title: '\u00D6PNV' }, 1335 React.createElement("div", { className: 'agenda-cols-2' }, 1336 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'transport_pickup' }), 1337 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'transport_dropoff' }), 1338 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'transport_school' }), 1339 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'transport_typ' }))), 1340 React.createElement(asc_react2_1.RClassGroupBox, { title: req.ls(2077) }, 1341 React.createElement("div", { style: { padding: '0 8px' } }, 1342 React.createElement(ecards_1.ECardsDiv, { dbi: dbi, table: 'studentkopias', valueRef: rowRef.sub('ekarty') }))), 1343 React.createElement(asc_react_1.VGap, null), 1344 React.createElement(asc_react_1.VGap, null), 1345 React.createElement(asc_react2_1.RClassGroupBox, { title: req.ls(1190) }, 1346 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'representative_classids', className: 'agenda-label-valign-top', field_note: ls(13513) }))))), has_cf && 1347 React.createElement(tabview_1.RTabViewTab, { id: 'cf', label: req.ttls(3119) }, cb_cols.map(function (c) { return React.createElement(dbi_react_1.DlgField, { key: c, dlgRow: dlgRow, column: c }); })), req.school_country == 'sk' && 1348 React.createElement(tabview_1.RTabViewTab, { id: "sk_spis", label: "Pozn\u00E1mky (KL / OS)", title: 'Pozn\u00E1mky a r\u00F4zne dopl\u0148uj\u00FAce inform\u00E1cie do katal\u00F3gov\u00E9ho listu, triedneho v\u00FDkazu alebo osobn\u00E9ho spisu die\u0165a\u0165a' }, 1349 (req.jeZUS() || req.jeSUS()) && React.createElement(React.Fragment, null, 1350 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'zus_prijimacia_skuska_datum' }), 1351 React.createElement(asc_react_1.VGap, null), 1352 React.createElement(asc_react_1.VGap, null)), 1353 React.createElement(asc_react2_1.RClassGroupBox, { title: "Poznámky v katalógovom liste / osobnom spise dieťaťa (" + req.getSchoolYearName(year) + ')' }, 1354 React.createElement(KatListNotes, { dlgRow: dlgRow, archive: archive, type: 'katlist' }), 1355 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'note_katlist', label: 'V\u0161eobecn\u00E1 pozn\u00E1mka', className: 'agenda-label-valign-top', field_note: "Všeobecná poznámka do katalógového listu alebo osobného spisu dieťata pre školský rok " + req.getSchoolYearName(year) })), 1356 React.createElement(asc_react_1.VGap, null), 1357 React.createElement(asc_react_1.VGap, null), 1358 React.createElement(asc_react2_1.RClassGroupBox, { title: "Poznámky v osobnom spise dieťaťa v ŠKD (" + req.getSchoolYearName(year) + ')' }, 1359 React.createElement(KatListNotes, { dlgRow: dlgRow, archive: archive, type: 'skdlist' }), 1360 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'note_skdlist', className: 'agenda-label-valign-top', label: 'V\u0161eobecn\u00E1 pozn\u00E1mka', field_note: "Všeobecná poznámka do osobného spisu dieťaťa v školskom klube detà pre školský rok " + req.getSchoolYearName(year) })), 1361 React.createElement(asc_react_1.VGap, null), 1362 React.createElement(asc_react_1.VGap, null), 1363 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'cb_note', label_style: 'top', className: 'agenda-label-titlegray', field_note: "Poznámka v triednej knihe pre školský rok " + req.getSchoolYearName(year) }), 1364 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'note', label_style: 'top', className: 'agenda-label-titlegray', field_note: "Všeobecné poznámky za celé štúdium" }), 1365 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_posledna_cinnost', label_style: 'top', className: 'agenda-label-titlegray', field_note: "Všeobecné poznámky za celé štúdium" }), 1366 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_dolozka_katlist', label_style: 'top', className: 'agenda-label-titlegray', field_note: "Doložka v triednom v
1366ýkaze pre špeciálne školy pre školský rok " + req.getSchoolYearName(year) }), 1367 React.createElement(asc_react_1.VGap, null), 1368 React.createElement(asc_react2_1.RClassGroupBox, { title: "Triedny výkaz pre špeciálne školy" }, 1369 React.createElement("div", { className: "agenda-cols-2" }, 1370 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_ms_datefrom' }), 1371 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_ms_dateto' })), 1372 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_ms_v' }), 1373 React.createElement(asc_react_1.VGap, null), 1374 React.createElement("div", { className: "agenda-cols-2" }, 1375 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_psd_datefrom' }), 1376 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_psd_v' }))), 1377 (row === null || row === void 0 ? void 0 : row.id) && ((_d = dbi.rowData('studentkopias', row === null || row === void 0 ? void 0 : row.id)) === null || _d === void 0 ? void 0 : _d.sk_spis_info) && (React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: "sk_spis_info", label_style: "top", className: 'agenda-label-titlegray' }))), req.school_country == 'sk' && skRisEditingState.visible && (React.createElement(tabview_1.RTabViewTab, { id: "sk_ris", label: "RIS" }, 1378 React.createElement("div", { style: { margin: '-5px 0 -8px -8px' } }, 1379 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_ris_exclude', label_style: 'embeded' })), 1380 React.createElement(SkRisTab, { editingState: skRisEditingState, dbi: dbi, row: row, key: row.id }))), req.school_country == 'sk' && row.id && (React.createElement(tabview_1.RTabViewTab, { id: "egov", label: "Registrat\u00FAra" }, 1381 React.createElement(EGovRsFileCard, { userid: 'Student' + row.id, yearid: year })))], false)))))); 1382} 1383function StudentTypProspechField(props) { 1384 var req = edurequest_1.client_req; 1385 var dlgRow = props.dlgRow; 1386 var dbi = dlgRow.dbi, row = dlgRow.rowRef.value; 1387 var _a = React.useState(row.sk_typ_prospechu2 && row.sk_typ_prospechu != row.sk_typ_prospechu2 ? true : false), isDiff = _a[0], setIsDiff = _a[1]; 1388 function diffChange(e) { 1389 var val = e.currentTarget.checked; 1390 setIsDiff(val); 1391 if (!val) { 1392 dlgRow.rowRef.sub('sk_typ_prospechu2').set(''); 1393 } 1394 } 1395 React.useMemo(function () { 1396 setIsDiff(row.sk_typ_prospechu2 && row.sk_typ_prospechu != row.sk_typ_prospechu2 ? true : false); 1397 }, [dlgRow]); 1398 var readonly = dlgRow.rowRef.sub('sk_typ_prospechu2').set ? false : true; 1399 return (React.createElement(React.Fragment, null, 1400 React.createElement("div", { className: "agenda-dbifield-outer agenda-label-valign-top" }, 1401 React.createElement("div", { className: 'agenda-dbifield-label', style: { paddingTop: isDiff ? '25px' : '7px' } }, "Typ prospechu:"), 1402 React.createElement("div", { className: 'agenda-dbifield-field', style: { paddingTop: '0' } }, 1403 React.createElement("div", { className: isDiff ? 'agenda-cols-2' : '' }, 1404 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_typ_prospechu', placeholder: props.placeholder, className: isDiff ? 'agenda-label-fw' : 'agenda-label-hidden', label: isDiff ? '1. polrok' : '' }), 1405 isDiff && (React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'sk_typ_prospechu2', className: isDiff ? 'agenda-label-fw' : 'agenda-label-hidden', label: isDiff ? '2. polrok' : '' }))), 1406 !readonly && (React.createElement("label", null, 1407 React.createElement("input", { type: "checkbox", name: "isdiff", value: "1", checked: isDiff, onChange: diffChange }), 1408 "R\u00F4zny typ prospechu v 1. a 2. polroku")))))); 1409} 1410function CertificatesArchive(props) { 1411 var req = edurequest_1.client_req; 1412 var dlgRow = props.dlgRow, archive = props.archive; 1413 var dbi = dlgRow.dbi; 1414 var top_rows = []; 1415 var main_rows = []; 1416 var footer_rows = []; 1417 var columns = [ 1418 { 1419 key: 'name', 1420 label: req.ls(1299), 1421 width: 150, 1422 frozen: true, 1423 }, 1424 ]; 1425 var subject2row = new Map(); 1426 var years = (archive === null || archive === void 0 ? void 0 : archive.years) || []; 1427 var halves = dbi.tableIds('halves'); 1428 function getCert(year, half) { 1429 return archive.certificates.find(function (cert) { return cert.year == year && cert.half == half; }); 1430 } 1431 var show_grade = false;
1432 for (var _i = 0, years_1 = years; _i < years_1.length; _i++) { 1433 var y = years_1[_i]; 1434 for (var _a = 0, _b = y.halves; _a < _b.length; _a++) { 1435 var h = _b[_a]; 1436 if (h.grade && y.grade && h.grade != y.grade) { 1437 show_grade = true; 1438 } 1439 } 1440 } 1441 for (var _c = 0, years_2 = years; _c < years_2.length; _c++) { 1442 var y = years_2[_c]; 1443 for (var _d = 0, _e = y.halves; _d < _e.length; _d++) { 1444 var h = _e[_d]; 1445 var half = h.half; 1446 var key = "yh_".concat(y.year + half); 1447 var parentLabel = h.class_name + "\n" + req.getSchoolYearName(y.year); 1448 if (show_grade) { 1449 parentLabel += "\n" + h.grade; 1450 } 1451 columns.push({ 1452 key: key, 1453 label: half + '.', 1454 parentLabel: parentLabel, 1455 width: 30, 1456 align: 'center', 1457 resizable: true, 1458 formatter: function (_a) { 1459 var row = _a.row, key = _a.cd.key; 1460 var v = ASC.strVal(row[key]); 1461 if (row.id == 'value' && v.length > 10) { 1462 return React.createElement("span", { style: { fontSize: '80%' } }, v); 1463 } 1464 return v; 1465 } 1466 }); 1467 var cert = getCert(y.year, half); 1468 if (cert) { 1469 for (var _f = 0, _g = cert.subjects; _f < _g.length; _f++) { 1470 var subject = _g[_f]; 1471 var subjectid = subject.subjectid; 1472 var row = subject2row.get(subjectid); 1473 if (!row) { 1474 subject2row.set(subjectid, row = { 1475 id: subjectid, 1476 subjectid: subjectid, 1477 name: archive.certificates_subject2name[subjectid], 1478 }); 1479 (subject.top ? top_rows : main_rows).push(row); 1480 } 1481 row[key] = subject.text; 1482 } 1483 } 1484 } 1485 } 1486 while (columns.length < 7) { 1487 columns.push({ 1488 key: 'dummy_' + columns.length, 1489 label: '', 1490 }); 1491 } 1492 for (var _h = 0, _j = (archive === null || archive === void 0 ? void 0 : archive.certificates_footer_columns) || []; _h < _j.length; _h++) { 1493 var _k = _j[_h], column = _k.id, name = _k.name; 1494 var row = { 1495 id: column, 1496 column: column, 1497 name: name, 1498 }; 1499 for (var _l = 0, years_3 = years; _l < years_3.length; _l++) { 1500 var y = years_3[_l]; 1501 for (var _m = 0, halves_1 = halves; _m < halves_1.length; _m++) { 1502 var half = halves_1[_m]; 1503 var key = "yh_".concat(y.year + half); 1504 var cert = getCert(y.year, half); 1505 if (cert) { 1506 var v = cert[column]; 1507 if (typeof v == 'number') 1508 v = '' + v; 1509 row[key] = v; 1510 } 1511 } 1512 } 1513 footer_rows.push(row); 1514 } 1515 if (!archive) 1516 return React.createElement(asc_react_1.Loading, null); 1517 if (true) { 1518 return React.createElement(asc_react_1.RScopedStyle, { style: tslib_1.__assign({ display: 'flex', flexDirection: 'column' }, props.style || {}), rules: { 1519 ".asc-dt TH, .asc-dt TD": { 1520 padding: '1px 2px', 1521 height: 'auto', 1522 }, 1523 ".asc-dt TH": { 1524 whiteSpace: 'pre', 1525 }, 1526 ".asc-dt TD": {}, 1527 ".asc-dt TH, TR.footer TD": { 1528 background: '#eee', 1529 border: '1px solid #fff', 1530 } 1531 } }, 1532 React.createElement(datatable_1.RDatatable, { columns: columns, data: tslib_1.__spreadArray(tslib_1.__spreadArray(tslib_1.__spreadArray([], top_rows, true), main_rows, true), footer_rows, true), cssClass: 'light-theme', fitWidth: columns.length <= 1 + 2 * 9, rowClassNames: function (row) { return row.column && 'footer'; }, style: { 1533 flex: '1 1 0px', 1534 } })); 1535 } 1536 else { 1537 return React.createElement(asc_react_1.RScopedStyle, { style: tslib_1.__assign({}, props.style), rules: { 1538 ".yh": { 1539 width: 50, 1540 textAlign: 'center' 1541 } 1542 } },
1543 React.createElement("table", null, 1544 React.createElement("colgroup", null, 1545 React.createElement("col", { className: 'name' }), 1546 React.createElement("col", { span: columns.length - 1, className: 'yh' })), 1547 React.createElement("thead", null, 1548 React.createElement("tr", null, columns.map(function (cd, cdi) { 1549 var _a, _b; 1550 if (cd.parentLabel) { 1551 if (((_a = columns[cdi - 1]) === null || _a === void 0 ? void 0 : _a.parentLabel) == cd.parentLabel) 1552 return null; 1553 var colSpan = 1; 1554 while (((_b = columns[cdi + colSpan]) === null || _b === void 0 ? void 0 : _b.parentLabel) == cd.parentLabel) 1555 colSpan++; 1556 return React.createElement("th", { key: cd.key, colSpan: colSpan }, cd.parentLabel); 1557 } 1558 else { 1559 return React.createElement("th", { key: cd.key, rowSpan: 2 }, cd.label); 1560 } 1561 })), 1562 React.createElement("tr", null, columns.map(function (cd) { 1563 if (!cd.parentLabel) 1564 return null; 1565 return React.createElement("th", { key: cd.key }, cd.label); 1566 }))), 1567 React.createElement("tbody", null, tslib_1.__spreadArray(tslib_1.__spreadArray([], top_rows, true), main_rows, true).map(function (row) { return React.createElement("tr", { key: row.id }, columns.map(function (cd) { return React.createElement("td", { key: cd.key }, row[cd.key]); })); })), 1568 React.createElement("tfoot", null, footer_rows.map(function (row) { return React.createElement("tr", { key: row.id }, columns.map(function (cd) { return React.createElement("td", { key: cd.key }, row[cd.key]); })); })))); 1569 } 1570} 1571function GroupSubjectsList(props) { 1572 var req = edurequest_1.client_req; 1573 var dlgRow = props.dlgRow; 1574 var dbi = dlgRow.dbi, row = dlgRow.rowRef.value; 1575 return (React.createElement(React.Fragment, null, 1576 React.createElement("div", { className: 'agenda-dbifield-multiitems', style: { margin: '-4px 0 4px 0' } }, row.groupsubjectids.map(function (gsid, i) { return React.createElement("div", { key: gsid, className: 'agenda-dbifield-multi-item', "data-id": gsid, onClick: function () { return dbi.frontend.showItemDlg('groupsubjects', gsid); } }, dbi.rowName('groupsubjects', gsid)); })), 1577 dbi.rowData('global_settings', '1', {}).noveKurzy && req.isAdmin() && React.createElement(anchor_1.RAnchor, { label: req.ls(8827), onClick: function () { 1578 var dlg = barNewDialog({ 1579 'source': '/customize/helpus.php?cmd=HelpusHelpDialog&helpid=2058&retf=1', 1580 'dialogClass': 'whiteDialog', 1581 'returnFunc': function () { 1582 barCloseDialog(dlg); 1583 document.location.href = '/elearning/?eqa=Y21kPUNvdXJzZXNFZGl0b3ImdHBvaGxhZD1jb3Vyc2Vz'; 1584 } 1585 }); 1586 } }))); 1587} 1588function VzdelavaciPoukaz(props) { 1589 var req = edurequest_1.client_req; 1590 var dlgRow = props.dlgRow; 1591 var row = dlgRow.rowRef.value; 1592 return (React.createElement(React.Fragment, null, 1593 React.createElement(dbi_react_1.DBIField, { column: 'sk_vzdelavaci_poukaz', dlgRow: dlgRow, readonly: true }), 1594 (req.isAdmin() || req.hasRight('vzdelavaciepoukazy')) && 1595 React.createElement(anchor_1.RAnchor, { label: "otvori\u0165 Vzdel\u00E1vacie poukazy", onClick: function () { 1596 window.open(barEncLink('/vzdelavaciepoukazy/?tab=prehlad&studentid=' + row.studentid), '_blank'); 1597 } }))); 1598} 1599function VzdelavaciPoukazNaKruzok(props) { 1600 var dbi = props.dbi, valueRef = props.valueRef; 1601 var kruzky = dbi.tableFilterData('groupsubjects', { subjectid: '6' }); 1602 var items = kruzky.map(function (k) { return { name: k.name, value: k.id }; }); 1603 return (React.createElement(combobox_1.default, { items: items, valueRef: valueRef })); 1604} 1605function validate_duplicates(params) { 1606 return tslib_1.__awaiter(this, void 0, void 0, function () { 1607 var req, row, origrow, dbi, year, checkRow, bol, _i, duplicates_columns_1, col, dup, cd, res; 1608 return tslib_1.__generator(this, function (_a) { 1609 switch (_a.label) { 1610 case 0: 1611 req = edurequest_1.client_req; 1612 row = params.row, origrow = params.origrow, dbi = params.dbi; 1613 year = parseInt(dbi.dbid); 1614 checkRow = { 1615 id: row.id, 1616 classid: row.classid, 1617 }; 1618 bol = false;
1619 for (_i = 0, duplicates_columns_1 = exports.duplicates_columns; _i < duplicates_columns_1.length; _i++) { 1620 col = duplicates_columns_1[_i]; 1621 if (row[col] !== undefined && row[col] !== origrow[col]) { 1622 checkRow[col] = row[col]; 1623 bol = true; 1624 } 1625 } 1626 if (!bol) 1627 return [2, true]; 1628 return [4, ASC.blockUI((0, student_1.studentDlg_checkDuplicate)(null, year, checkRow))]; 1629 case 1: 1630 dup = _a.sent(); 1631 if (!dup) 1632 return [2, true]; 1633 cd = dbi.column('studentkopias', dup.column); 1634 return [4, asc_react_1.RDialog.showConfirm(React.createElement("div", null, 1635 req.ls(6358) + ':', 1636 React.createElement(asc_react_1.VGap, null), 1637 cd.name() + ': ' + cd.textValue(checkRow[dup.column]), 1638 React.createElement(asc_react_1.VGap, null), 1639 React.createElement("div", { style: { 1640 overflow: "auto", 1641 maxHeight: '50vh' 1642 } }, dup.duplicates.join(', '))), { 1643 msgType: 'warn', 1644 buttons: [ 1645 { 1646 action: 'ok', 1647 type: 'green', 1648 label: req.ls(1529), 1649 }, 1650 'cancel', 1651 ] 1652 })]; 1653 case 2: 1654 res = _a.sent(); 1655 return [2, res == 'ok']; 1656 } 1657 }); 1658 }); 1659} 1660function validate_emailUnique(params) { 1661 return tslib_1.__awaiter(this, void 0, void 0, function () { 1662 var req, row, origrow, dbi, year, changes, names; 1663 return tslib_1.__generator(this, function (_a) { 1664 switch (_a.label) { 1665 case 0: 1666 req = edurequest_1.client_req; 1667 row = params.row, origrow = params.origrow, dbi = params.dbi; 1668 year = parseInt(dbi.dbid); 1669 changes = dbi_1.DBITools.rowChanges2write(origrow || {}, row); 1670 if (req.school_country != 'sk' 1671 || !changes 1672 || !(changes.email 1673 || 'email_private' in changes)) { 1674 return [2, true]; 1675 } 1676 return [4, ASC.blockUI((0, student_1.studentDlg_checkEmail)(null, year, params.table, row))]; 1677 case 1: 1678 names = _a.sent(); 1679 if (!names || names.length == 0) { 1680 return [2, true]; 1681 } 1682 return [4, asc_react_1.RDialog.showMessage(React.createElement("div", null, 1683 req.ls(6358) + ':', 1684 React.createElement(asc_react_1.VGap, null), 1685 'Email: ' + row.email, 1686 React.createElement(asc_react_1.VGap, null), 1687 React.createElement("div", { style: { 1688 overflow: "auto", 1689 maxHeight: '50vh' 1690 } }, 1691 "Pros\u00EDm zadajte in\u00FD email, tento u\u017E m\u00E1:", 1692 React.createElement("br", null), 1693 React.createElement("ul", { className: "circles" }, names.map(function (name) { return React.createElement("li", { key: name }, name); })))), { 1694 msgType: 'warn', 1695 width: '400px', 1696 buttons: [ 1697 'cancel', 1698 ] 1699 })]; 1700 case 2: 1701 _a.sent(); 1702 return [2, false]; 1703 } 1704 }); 1705 }); 1706} 1707exports.validate_emailUnique = validate_emailUnique; 1708function czSchoolDruh_filterComboDB(cz_school_druhy, db) { 1709 if (!db) 1710 return db; 1711 return db.map(function (row) { 1712 if (!Array.isArray(row) && row.tag) { 1713 var ok = cz_school_druhy.includes(row.tag); 1714 if (!ok && row.tag == 'S' && cz_school_druhy.includes('V')) 1715 ok = true; 1716 if (!ok) 1717 return tslib_1.__assign(tslib_1.__assign({}, row), { hidden: true }); 1718 } 1719 return row; 1720 }); 1721} 1722function czDetectPT(props) { 1723 var _a; 1724 var dlgRow = props.dlgRow, archive = props.archive, cz_school_druhy = props.cz_school_druhy; 1725 var dbi = dlgRow.dbi, srow = dlgRow.rowRef.value; 1726 var req = dbi.req; 1727 var pt = false;
1728 var zs_year = null; 1729 var pt_only = false; 1730 if (cz_school_druhy.join() == 'Z') { 1731 { 1732 var crow = dbi.rowData('classes', srow.classid); 1733 var grade = srow.grade || (crow === null || crow === void 0 ? void 0 : crow.grade); 1734 pt = grade === '0'; 1735 } 1736 if (archive) { 1737 var y0 = archive.years[0]; 1738 if (y0 && y0.year != parseInt(dbi.dbid)) { 1739 pt = y0.grade === '0'; 1740 if (pt) { 1741 zs_year = (_a = archive.years.find(function (y) { return y.grade != '0'; })) === null || _a === void 0 ? void 0 : _a.year; 1742 } 1743 } 1744 if (srow.dateto) { 1745 var y_last = archive.years[archive.years.length - 1]; 1746 if (req.getSchoolYear(srow.dateto) == (y_last === null || y_last === void 0 ? void 0 : y_last.year) && y_last.grade == '0') { 1747 pt_only = true; 1748 } 1749 } 1750 } 1751 } 1752 return { pt: pt, zs_year: zs_year, pt_only: pt_only }; 1753} 1754function CzDateFromTo(props) { 1755 var dlgRow = props.dlgRow, archive = props.archive, cz_school_druhy = props.cz_school_druhy; 1756 var dbi = dlgRow.dbi; 1757 var req = dbi.req; 1758 var srow = dlgRow.rowRef.value; 1759 var _a = czDetectPT({ dlgRow: dlgRow, archive: archive, cz_school_druhy: cz_school_druhy }), pt = _a.pt, zs_year = _a.zs_year, pt_only = _a.pt_only; 1760 var CzSchoolDruh_FilterCombo = React.useCallback(function (props) { 1761 var dbiColumn = props.dbiColumn; 1762 var s_druhy = cz_school_druhy; 1763 if (dbiColumn.id == 'cz_matrika_KOD_UKON' && pt_only) 1764 s_druhy = ['M']; 1765 return React.createElement(combobox_1.default, { valueRef: props.valueRef, db: czSchoolDruh_filterComboDB(s_druhy, dbiColumn.comboDB) }); 1766 }, [cz_school_druhy, pt_only]); 1767 var datefrom_el = React.createElement(React.Fragment, null, 1768 React.createElement("div", { className: 'agenda-cols-2' }, 1769 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'datefrom' }), 1770 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'cz_matrika_KOD_ZAH', control: CzSchoolDruh_FilterCombo }))); 1771 if (pt) 1772 datefrom_el = React.createElement(React.Fragment, null, 1773 React.createElement("div", { className: 'agenda-cols-2' }, 1774 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'datefrom', label: 'Za\u010D\u00E1tek studia (PT)' }), 1775 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'cz_matrika_pt_KOD_ZAH', label: 'K\u00F3d zah\u00E1jen\u00ED vzd\u011Bl\u00E1v\u00E1n\u00ED' })), 1776 (zs_year || srow.cz_matrika_KOD_ZAH) && React.createElement(React.Fragment, null, 1777 React.createElement("div", { className: 'agenda-cols-2' }, 1778 React.createElement("div", { className: "agenda-dbifield-outer" }, 1779 React.createElement("div", { className: 'agenda-dbifield-label' }, 1780 React.createElement(asc_react_1.RLabel, { text: 'Za\u010D\u00E1tek studia (Z\u0160)' })), 1781 React.createElement("div", { className: 'agenda-dbifield-field' }, 1782 React.createElement("span", { className: 'agenda-dbifield-readonly' }, zs_year && (0, lib_date_1.date_format_date)(req, zs_year + '-09-01'))), 1783 React.createElement("div", { className: 'agenda-dbifield-after agenda-dbifield-icons' })), 1784 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'cz_matrika_KOD_ZAH', control: CzSchoolDruh_FilterCombo })))); 1785 return React.createElement(React.Fragment, null, 1786 datefrom_el, 1787 React.createElement("div", { className: 'agenda-cols-2' }, 1788 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'dateto' }), 1789 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'cz_matrika_KOD_UKON', control: CzSchoolDruh_FilterCombo }))); 1790} 1791function CzODHL(props) { 1792 var dlgRow = props.dlgRow, archive = props.archive, cz_school_druhy = props.cz_school_druhy; 1793 var dbi = dlgRow.dbi, rowRef = dlgRow.rowRef;
1794 var td = dbi.table('studentkopias'); 1795 var cd = td.column('cz_matrika_ODHL'); 1796 if (!cd) 1797 return null; 1798 var pt = czDetectPT({ dlgRow: dlgRow, archive: archive, cz_school_druhy: cz_school_druhy }).pt; 1799 return React.createElement(React.Fragment, null, 1800 pt && React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'cz_matrika_pt_ODHL' }), 1801 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'cz_matrika_ODHL', label: pt ? 'PÅedchozà působiÅ¡tÄ (pÅed ZÅ )' : undefined, control: React.createElement(combobox_1.default, { valueRef: rowRef.sub('cz_matrika_ODHL'), db: czSchoolDruh_filterComboDB(cz_school_druhy, cd.comboDB) }) })); 1802} 1803function CzHealthinput(props) { 1804 var dlgRow = props.dlgRow, archive = props.archive, cz_urcite_ms = props.cz_urcite_ms; 1805 var dbi = dlgRow.dbi, table = dlgRow.table; 1806 var adding = !dlgRow.rowRef.value.id; 1807 var dop_tcols = React.useMemo(function () { 1808 var dop_tcols = [ 1809 { 1810 key: '_edit', label: '', width: 16, 1811 formatter: function (_a) { 1812 var row = _a.row; 1813 return React.createElement("img", { src: (0, actions_1.action_icon)('edit'), style: { height: 16, cursor: 'pointer' }, onClick: function () { return (0, maindbi_ui_1.showMainDbiItemDlg)(row.year, 'cz_doporuceni_vzsvp', row.id); } }); 1814 } 1815 }, 1816 { key: 'datefrom', width: 50, resizable: true }, 1817 { key: 'cz_matrika_ID_ZNEV_name', width: 150, resizable: true }, 1818 ]; 1819 return dop_tcols; 1820 }, []); 1821 if (!dbi.column(table, 'cz_matrika_POSTIZ1')) 1822 return null; 1823 var gb_minHeight = 160; 1824 return React.createElement(React.Fragment, null, 1825 React.createElement("div", { className: 'agenda-cols-2' }, 1826 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'cz_zdr_poist' }), 1827 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'cz_zdr_cpoj' }), 1828 !cz_urcite_ms && React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'cz_matrika_INDI' }), 1829 !cz_urcite_ms && React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'cz_matrika_UVP' }), 1830 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'cz_matrika_PSPO1', label_style: 'embeded' })), 1831 !adding && React.createElement(asc_react2_1.RGroupBox, { title: React.createElement(React.Fragment, null, 1832 React.createElement("div", { style: { float: 'right' } }, 1833 React.createElement(anchor_1.RAnchor, { label: (0, actions_1.action_name)('help'), onClick: function () { return (0, asc_react_1.openUrl)('https://help.edupage.org/cz/e1361'); } })), 1834 'DoporuÄenà pro vzdÄlávánà žáka se SVP'), style: { minHeight: gb_minHeight } }, 1835 React.createElement("div", { style: { paddingLeft: '16px' } }, archive 1836 ? (archive.cz_doporuceni_vzsvp.length > 0 && React.createElement(datatable_1.RDatatable, { data: archive.cz_doporuceni_vzsvp, columns: dop_tcols, dbi: dbi, dbi_table: 'cz_doporuceni_vzsvp', cssClass: 'compact light-theme', fitWidth: true })) 1837 : React.createElement(asc_react_1.Loading, null))), 1838 React.createElement(asc_react_1.VGap, null), 1839 React.createElement(asc_react2_1.RGroupBox, { title: 'Star\u00FD zp\u016Fsob evidence', style: { minHeight: gb_minHeight } }, 1840 React.createElement("div", { className: 'agenda-cols-2' }, 1841 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'cz_matrika_POSTIZ1' }), 1842 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'cz_matrika_POSTIZ2' }), 1843 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'cz_matrika_SZ', control: cz_controls_1.CzStudentSZField }), 1844 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'cz_matrika_VICE_VAD', label_style: 'embeded' }), 1845 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'cz_matrika_ZZ', label_style: 'embeded' }), 1846 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgRow, column: 'cz_matrika_NADANI', label_style: 'embeded' }
1846)))); 1847} 1848CzHealthinput.needed_part = (0, dbi_1.typed)({ 1849 studentkopias: [ 1850 'cz_matrika_POSTIZ1', 1851 'cz_matrika_POSTIZ2', 1852 'cz_matrika_INDI', 1853 'cz_matrika_UVP', 1854 'cz_matrika_VICE_VAD', 1855 'cz_matrika_SZ', 1856 'cz_matrika_ZZ', 1857 'cz_matrika_NADANI', 1858 'cz_matrika_PSPO1', 1859 'cz_zdr_cpoj', 1860 'cz_matrika_SZ_vysl', 1861 ], 1862 cz_doporuceni_vzsvp: [ 1863 'studentid', 1864 'cz_matrika_ID_ZNEV', 1865 'cz_matrika_ID_ZNEV_name', 1866 'datefrom', 1867 'dateto', 1868 ], 1869}); 1870CzHealthinput.needed_combos = (0, dbi_1.typed)({ 1871 studentkopias: [ 1872 'cz_matrika_POSTIZ1', 1873 'cz_matrika_POSTIZ2', 1874 'cz_matrika_INDI', 1875 'cz_matrika_UVP', 1876 'cz_matrika_SZ', 1877 'cz_matrika_SZ_vysl', 1878 ], 1879}); 1880function useParentEditingState(params) { 1881 var _this = this; 1882 var req = edurequest_1.client_req; 1883 var dbi = params.dbi, srow = params.srow, blank_add = params.blank_add, readonly = params.readonly, onChange = params.onChange, selectTab = params.selectTab, log_module = params.log_module; 1884 var studentid = srow.id.split(':')[0] || ''; 1885 var blankState = React.useMemo(function () { return ({ 1886 studentid: studentid, 1887 changes_parent: {}, 1888 changes_relation: {}, 1889 addids: [], 1890 deleteids: [], 1891 linkExisting: [], 1892 setpreferred: '', 1893 }); }, [studentid]); 1894 var _a = (0, asc_react_1.useStateRef)(blankState), state = _a[0], stateRef0 = _a[1]; 1895 React.useDebugValue(state); 1896 React.useEffect(function () { return stateRef0.set(blankState); }, [studentid]); 1897 var stateRef = React.useMemo(function () { return readonly ? new asc_react_1.ValueRef(state, null) : stateRef0; }, [readonly, state, stateRef0]); 1898 var isChanged = state.studentid == studentid 1899 && (ASC.count(state.changes_parent) > 0 || ASC.count(state.changes_relation) > 0 || !!state.setpreferred); 1900 React.useEffect(function () { 1901 if (isChanged) 1902 onChange(); 1903 }, [isChanged, onChange]); 1904 var parentids = (0, asc_react_1.useMemoArray)(tslib_1.__spreadArray(tslib_1.__spreadArray(tslib_1.__spreadArray([], (0, dbi_1.idsArrayDiff)(srow.parentids || [], state.deleteids), true), state.addids, true), state.linkExisting.map(function (d) { return d.id; }), true)); 1905 var preferredRef = React.useMemo(function () { 1906 var orig_preferred = parentids[0] || ''; 1907 return stateRef 1908 .sub('setpreferred') 1909 .cast(function (o) { return o || orig_preferred; }, function (n) { return n == orig_preferred ? '' : n; }); 1910 }, [parentids, stateRef]); 1911 var addParent = function (parentData, relationData, silent) { 1912 if (silent === void 0) { silent = false; } 1913 var addid = '*' + Math.random(); 1914 if (!silent) 1915 selectTab('parent_' + addid); 1916 stateRef.set(function (state) { 1917 var _a, _b; 1918 return tslib_1.__assign(tslib_1.__assign({}, state), { changes_parent: tslib_1.__assign(tslib_1.__assign({}, state.changes_parent), (_a = {}, _a[addid] = parentData, _a)), changes_relation: tslib_1.__assign(tslib_1.__assign({}, state.changes_relation), (_b = {}, _b[addid] = relationData || {}, _b)), addids: tslib_1.__spreadArray(tslib_1.__spreadArray([], state.addids, true), [addid], false) }); 1919 }); 1920 }; 1921 (0, asc_react_1.useCallOnce)(!studentid && blank_add && !dbi.mock, function () { 1922 var pcols = ParentInput.npp().parents; 1923 for (var _i = 0, _a = ['parent1_', 'parent2_', 'parent3_']; _i < _a.length; _i++) { 1924 var prefix = _a[_i]; 1925 var prow = {}; 1926 var bol = false; 1927 for (var _b = 0, pcols_1 = pcols; _b < pcols_1.length; _b++) { 1928 var c = pcols_1[_b]; 1929 var v = blank_add[prefix + c]; 1930 if (v === undefined || v === '') 1931 continue; 1932 prow[c] = v; 1933 bol = true; 1934 } 1935 if (bol) { 1936 addParent(prow, null, true); 1937 } 1938 } 1939 }); 1940 var afterOk_ref = React.useRef([]); 1941 return React.useMemo(function () { 1942 var _a; 1943 var year = parseInt(dbi.dbid); 1944 var res = { 1945 isChanged: isChanged, 1946 tabs: [], 1947 onValidate: function (_a) { 1948 var srow = _a.srow; 1949 return tslib_1.__awaiter(_this, void 0, void 0, function () { 1950 var preferredid, write_parentids, afterOk, _loop_2, _i, parentids_2, parentid, state_1, i, _loop_3, _b, _c, parentid; 1951 var _this = this; 1952 return tslib_1.__generator(this, function (_d) { 1953 switch (_d.label) { 1954 case 0: 1955 preferredid = preferredRef.value; 1956 write_parentids = []; 1957 afterOk = []; 1958 _loop_2 = function (parentid) { 1959 var link, doLink, doAdd, change_parent, change_relation_1, tempid, duplicates, link_1, res_1; 1960 return tslib_1.__generator(this, function (_e) { 1961 switch (_e.label) { 1962 case 0: 1963 link = state.linkExisting.find(function (l) { return l.id == parentid; }); 1964 doLink = function (link) { return tslib_1.__awaiter(_this, void 0, void 0, function () { 1965 var dbi2; 1966 return tslib_1.__generator(this, function (_a) { 1967 switch (_a.label) { 1968 case 0: 1969 if (!(link.yearto && link.yearto < year)) return [3, 3]; 1970 return [4, req.maindbi(link.yearto, {})]; 1971 case 1: 1972 dbi2 = _a.sent(); 1973 return [4, ASC.blockUI(dbi2.backend.updateRow('parents', { id: link.id, yearto: null }, { log_module: log_module }))]; 1974 case 2: 1975 _a.sent(); 1976 _a.label = 3; 1977 case 3: return [2]; 1978 } 1979 }); 1980 }); }; 1981 doAdd = function (prow) { return tslib_1.__awaiter(_this, void 0, void 0, function () { 1982 return tslib_1.__generator(this, function (_a) { 1983 switch (_a.label) { 1984 case 0: return [4, ASC.blockUI(dbi.backend.addRow('parents', prow, { log_module: log_module }))]; 1985 case 1: return [2, _a.sent()]; 1986 } 1987 }); 1988 }); }; 1989 if (!link) return [3, 2]; 1990 return [4, doLink(link)]; 1991 case 1: 1992 _e.sent(); 1993 return [3, 18]; 1994 case 2: 1995 change_parent = state.changes_parent[parentid] || {}; 1996 change_relation_1 = state.changes_relation[parentid] || {}; 1997 if (!change_parent.email) return [3, 4]; 1998 return [4, validate_emailUnique({ 1999 dbi: dbi, 2000 origrow: dbi.rowData('parents', parentid), 2001 table: 'parents', 2002 row: tslib_1.__assign(tslib_1.__assign({}, dbi.rowData('parents', parentid)), change_parent) 2003 })]; 2004 case 3: 2005 if (!(_e.sent())) { 2006 return [2, { value: null }]; 2007 } 2008 _e.label = 4; 2009 case 4: 2010 if (!parentid.startsWith('*')) return [3, 15]; 2011 if (!parentHasSomeData(ch
2011ange_parent)) 2012 return [2, "continue"]; 2013 tempid = parentid; 2014 return [4, ASC.blockUI((0, parent_1.parentPossibleDuplicates)(null, year, change_parent))]; 2015 case 5: 2016 duplicates = (_e.sent()).duplicates; 2017 if (!(duplicates.length > 0)) return [3, 12]; 2018 link_1 = null; 2019 return [4, asc_react_1.RDialog.show(React.createElement(parent_2.DuplicateParentsDlg, { dbi: dbi, prow: change_parent, duplicates: duplicates, onUse: function (d) { return link_1 = d; } }))]; 2020 case 6: 2021 res_1 = _e.sent(); 2022 if (!link_1) return [3, 8]; 2023 return [4, doLink(link_1)]; 2024 case 7: 2025 _e.sent(); 2026 parentid = link_1.id; 2027 return [3, 11]; 2028 case 8: 2029 if (!(res_1 == 'no')) return [3, 10]; 2030 return [4, doAdd(change_parent)]; 2031 case 9: 2032 parentid = _e.sent(); 2033 return [3, 11]; 2034 case 10: return [2, { value: null }]; 2035 case 11: return [3, 14]; 2036 case 12: return [4, doAdd(change_parent)]; 2037 case 13: 2038 parentid = _e.sent(); 2039 _e.label = 14; 2040 case 14: 2041 if (parentid.startsWith('*')) 2042 ASC.dieError('9333464420', [parentid, tempid]); 2043 if (preferredid == tempid) 2044 preferredid = parentid; 2045 return [3, 17]; 2046 case 15: 2047 if (!(ASC.count(change_parent) > 0)) return [3, 17]; 2048 if (!parentHasSomeData(tslib_1.__assign(tslib_1.__assign({}, dbi.rowData('parents', parentid)), change_parent))) { 2049 asc_react_1.RDialog.showMessage(req.ls(2921)); 2050 selectTab('parent_' + parentid); 2051 return [2, { value: null }]; 2052 } 2053 return [4, ASC.blockUI(dbi.backend.updateRow('parents', tslib_1.__assign(tslib_1.__assign({}, change_parent), { id: parentid }), { log_module: log_module }))]; 2054 case 16: 2055 _e.sent(); 2056 _e.label = 17; 2057 case 17: 2058 if (ASC.count(change_relation_1) > 0) { 2059 afterOk.push(function (srow) { return tslib_1.__awaiter(_this, void 0, void 0, function () { 2060 var studentid; 2061 return tslib_1.__generator(this, function (_a) { 2062 switch (_a.label) { 2063 case 0: 2064 studentid = srow.id.split(':')[0]; 2065 return [4, (0, parent_1.parentSetStudentRelation)(null, year, parentid, studentid, change_relation_1, { log_module: log_module })]; 2066 case 1: 2067 _a.sent(); 2068 return [2]; 2069 } 2070 }); 2071 }); }); 2072 } 2073 _e.label = 18; 2074 case 18: 2075 write_parentids.push(parentid); 2076 return [2]; 2077 } 2078 }); 2079 }; 2080 _i = 0, parentids_2 = parentids; 2081 _d.label = 1; 2082 case 1: 2083 if (!(_i < parentids_2.length)) return [3, 4]; 2084 parentid = parentids_2[_i]; 2085 return [5, _loop_2(parentid)]; 2086 case 2: 2087 state_1 = _d.sent(); 2088 if (typeof state_1 === "object") 2089 return [2, state_1.value]; 2090 _d.label = 3; 2091 case 3: 2092 _i++; 2093 return [3, 1]; 2094 case 4: 2095 write_parentids = (0, dbi_1.idsArrayUnique)(write_parentids); 2096 { 2097 i = write_parentids.indexOf(preferredid); 2098 if (i > 0) { 2099 write_parentids = tslib_1.__spreadArray([preferredid], write_parentids.filter(function (id) { return id != preferredid; }), true); 2100 } 2101 } 2102 _loop_3 = function (parentid) { 2103 afterOk.push(function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { 2104 var _a; 2105 return tslib_1.__generator(this, function (_b) { 2106 switch (_b.label) { 2107 case 0: return [4, (0, parent_1.parentMaybeDelete)(null, year, parentid, { log_module: log_module, orig_uial: (_a = dbi.rowData('parents', parentid)) === null || _a === void 0 ? void 0 : _a._uial })]; 2108 case 1: 2109 _b.sent(); 2110 return [2]; 2111 } 2112 }); 2113 }); }); 2114 }; 2115 for (_b = 0, _c = state.deleteids; _b < _c.length; _b++) { 2116 parentid = _c[_b]; 2117 _loop_3(parentid); 2118 } 2119 afterOk_ref.current = afterOk; 2120 return [2, tslib_1.__assign(tslib_1.__assign({}, srow), { parentids: write_parentids })]; 2121 } 2122 }); 2123 }); 2124 }, 2125 onAfterOk: function (_a) { 2126 var srow = _a.srow; 2127 return tslib_1.__awaiter(this, void 0, void 0, function () { 2128 var _i, _b, f; 2129 return tslib_1.__generator(this, function (_c) { 2130 switch (_c.label) { 2131 case 0: 2132 _i = 0, _b = afterOk_ref.current; 2133 _c.label = 1; 2134 case 1: 2135 if (!(_i < _b.length)) return [3, 4]; 2136 f = _b[_i]; 2137 return [4, f(srow)]; 2138 case 2: 2139 _c.sent(); 2140 _c.label = 3; 2141 case 3: 2142 _i++; 2143 return [3, 1]; 2144 case 4: 2145 afterOk_ref.current = []; 2146 return [2]; 2147 } 2148 }); 2149 }); 2150 }, 2151 }; 2152 var tabs = []; 2153 var hasGender = new Set(); 2154 var _loop_1 = function (parentid) { 2155 var tab_name = req.ls(2079); 2156 var tab_content = null; 2157 var mode = 'edit'; 2158 var linked = state.linkExisting.find(function (l) { return l.id == parentid; }); 2159 if (linked) { 2160 mode = 'link'; 2161 } 2162 else { 2163 if (parentid.startsWith('*')) 2164 mode = 'add'; 2165 } 2166 if (mode == 'edit' && !dbi.rowData('parents', parentid) && !dbi.mock) { 2167 tab_content = React.createElement(React.Fragment, null, 2168 "Parent not found: ", 2169 parentid, 2170 req.props.isAsc && React.createElement(React.Fragment, null, 2171 React.createElement(asc_react_1.HGap, null), 2172 React.createElement(anchor_1.RAnchor, { label: 'Fix (aSc)', onClick: function () { return ASC.blockUI((0, student_1.studentDlg_fixParentNotFound)(null, year, parentid)); } }))); 2173 } 2174 else { 2175 var origprow = (mode == 'link' && linked.yearto < year) 2176 ? tslib_1.__assign(tslib_1.__assign({}, linked.data), { id: linked.id }) : dbi.rowData('parents', parentid) || tslib_1.__assign(tslib_1.__assign({}, dbi.table('parents').blankRow()), { id: parentid }); 2177 var ptd_1 = dbi.table('parents'); 2178 var prowRef = withChanges(origprow, stateRef.sub('changes_parent').sub(parentid, {})).readonly(mode == 'link' 2179 || ptd_1.columns().filter(function (c) { return ptd_1.column(c).def.readonly; })); 2180 var prow = prowRef.value; 2181 var origrelation = (mode == 'edit' ? origprow === null || origprow === void 0 ? void 0 : origprow.studentdata[studentid] : null) 2182 || { relation: '', relation_note: '' }; 2183 var relationRef = withChanges(origrelation, stateRef.sub('changes_relation').sub(parentid, {})); 2184 var relation = relationRef.value.relation; 2185 if (!relation || relation == 'p') { 2186 if (prow.gender == 'M') 2187 tab_name = req.ls(4112); 2188 if (prow.gender == 'F') 2189 tab_name = req.ls(4113); 2190 hasGender.add(prow.gender); 2191 } 2192 else if (relation) { 2193 tab_name = dbi.column('parents', 'studentdata', 'relation').textValue(relation); 2194 } 2195 tab_content = React.createElement(ParentInput, { dbi: dbi, studentid: studentid, srow: srow, parentRef: prowRef, relationRef: relationRef, preferredRef: preferredRef, mode: mode, onLink: mode == 'add' 2196 ? function (d) { 2197 stateRef.set(function (s0) { 2198 var s = tslib_1.__assign(tslib_1.__assign({}, s0), { changes_parent: tslib_1.__assign({}, s0.changes_parent), changes_relation: tslib_1.__assign({}, s0.changes_relation) }); 2199 s.addids = s.addids.filter(function (id) { return id != parentid; }); 2200 delete s.changes_parent[parentid]; 2201 delete s.changes_relation[parentid]; 2202 s.changes_relation[d.id] = s0.changes_relation[parentid] || {}; 2203 if (s.deleteids.includes(d.id)) { 2204 s.deleteids = s.deleteids.filter(function (id) { return id != d.id; }); 2205 } 2206 else { 2207 s.linkExisting = tslib_1.__spreadArray(tslib_1.__spreadArray([], s.linkExisting, true), [d], false); 2208 } 2209 return s; 2210 }); 2211 selectTab('parent_' + d.id); 2212 } 2213 : undefined }); 2214 } 2215 if (tabs.find(function (t) { return t.parentid == parentid; })) { 2216 tabs.push({ 2217 parentid: '*duplicate_' + tabs.length, 2218 name: tab_name, 2219 content: React.createElement("div", null, 2220 'Error' + '2518596497 - Duplicate parent', 2221 React.createElement("br", null), 2222 req.props.isAsc && req.isAdmin() && React.createElement(asc_react_1.RButton, { label: 'Fix (aSc)', onClick: function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { 2223 return tslib_1.__generator(this, function (_a) { 2224 ASC.blockUI((0, student_1.studentDlg_fixDuplicateParents)(null, year, studentid)); 2225 return [2]; 2226 }); 2227 }); } })) 2228 }); 2229 return "continue";
2230 } 2231 var delLabel = req.ls(12389); 2232 if ((_a = dbi.rowData('parents', parentid)) === null || _a === void 0 ? void 0 : _a.students.find(function (s) { return s.studentid != studentid; })) 2233 delLabel += ' (' + req.ls(1600) + ')'; 2234 var doDelete = function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { 2235 var select_parentid; 2236 return tslib_1.__generator(this, function (_a) { 2237 switch (_a.label) { 2238 case 0: return [4, asc_react_1.RDialog.showConfirm(delLabel, { msgType: 'areyousure' })]; 2239 case 1: 2240 if (!(_a.sent())) 2241 return [2]; 2242 if (state.linkExisting.find(function (li) { return li.id == parentid; })) { 2243 stateRef.sub('linkExisting').set(state.linkExisting.filter(function (li) { return li.id != parentid; })); 2244 } 2245 else if (state.addids.includes(parentid)) { 2246 stateRef.sub('addids').includes(parentid).set(false); 2247 } 2248 else { 2249 stateRef.sub('deleteids').includes(parentid).set(true); 2250 } 2251 select_parentid = parentids.filter(function (id) { return id != parentid; })[0] || '*'; 2252 setTimeout(function () { return selectTab('parent_' + select_parentid); }, 100); 2253 return [2]; 2254 } 2255 }); 2256 }); }; 2257 var detailsClick = function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { 2258 return tslib_1.__generator(this, function (_a) { 2259 (0, parent_2.showParentDlg)(year, 'parents', parentid); 2260 return [2]; 2261 }); 2262 }); }; 2263 var detailsDiv = (React.createElement("div", { style: (0, asc_react_1.rtlCss)({ textAlign: 'right' }) }, 2264 !readonly && (React.createElement(asc_react_1.RButton, { label: delLabel, onClick: doDelete })), 2265 React.createElement(asc_react_1.RButton, { label: req.ls(1920), onClick: detailsClick, type: 'blue' }))); 2266 tab_content = React.createElement(React.Fragment, null, 2267 tab_content, 2268 detailsDiv); 2269 tabs.push({ 2270 parentid: parentid, 2271 name: tab_name, 2272 content: tab_content, 2273 }); 2274 }; 2275 for (var _i = 0, parentids_1 = parentids; _i < parentids_1.length; _i++) { 2276 var parentid = parentids_1[_i]; 2277 _loop_1(parentid); 2278 } 2279 if (parentids.length < 3 && !readonly) { 2280 var asTab = tabs.length == 0; 2281 var addEl = React.createElement("div", { style: (0, asc_react_1.rtlCss)({ textAlign: asTab ? 'left' : 'right' }) }, 2282 req.ls(1257) + ':', 2283 React.createElement(asc_react_1.HGap, null), 2284 !hasGender.has('M') && React.createElement(asc_react_1.RButton, { label: req.ls(4112), onClick: function () { return addParent({ gender: 'M' }, { relation: 'p' }); } }), 2285 !hasGender.has('F') && React.createElement(asc_react_1.RButton, { label: req.ls(4113), onClick: function () { return addParent({ gender: 'F' }, { relation: 'p' }); } }), 2286 React.createElement(asc_react_1.RButton, { label: req.ls(4349), onClick: function () { return addParent({}, { relation: 'lg' }); } })); 2287 if (asTab) { 2288 tabs.push({ 2289 parentid: '*', 2290 name: req.ls(2080), 2291 content: addEl, 2292 }); 2293 } 2294 else { 2295 var tab = tabs[tabs.length - 1]; 2296 tab.content = React.createElement(React.Fragment, null, 2297 tab.content, 2298 React.createElement("div", { style: { 2299 flex: '1 0 auto', 2300 height: 20, 2301 } }), 2302 addEl); 2303 } 2304 } 2305 if (state.deleteids.length > 0) { 2306 var tab = tabs[tabs.length - 1]; 2307 if (tab) { 2308 tab.content = React.createElement(React.Fragment, null, 2309 tab.content, 2310 React.createElement("div", { style: { marginTop: 5, color: '#c0c0c0' } }, (0, actions_1.action_name)('delete') + ': ' + state.deleteids.length)); 2311 } 2312 } 2313 var tab_name_count = {}; 2314 for (var _b = 0, tabs_1 = tabs; _b < tabs_1.length; _b++) { 2315 var t = tabs_1[_b]; 2316 var name = t.name; 2317 tab_name_count[name] = (tab_name_count[name] || 0) + 1; 2318 } 2319 for (var name in tab_name_count) { 2320 if (tab_name_count[name] > 1) { 2321 tab_name_count[name] = 1; 2322 } 2323 else { 2324 tab_name_count[name] = undefined; 2325 } 2326 } 2327 for (var _c = 0, tabs_2 = tabs; _c < tabs_2.length; _c++) { 2328 var t = tabs_2[_c]; 2329 var tabid = 'parent_' + t.parentid; 2330 var name = t.name; 2331 var num = tab_name_count[name]; 2332 if (num) { 2333 tab_name_count[name]++; 2334 name += ' ' + num; 2335 } 2336 res.tabs.push(React.createElement(tabview_1.RTabViewTab, { label: name, id: tabid, key: tabid, style: { display: 'flex', flexDirection: 'column', overflow: 'auto' } }, t.content)); 2337 } 2338 return res; 2339 }, [state, stateRef, preferredRef, srow, dbi, readonly]); 2340} 2341function withChanges(orig, changesRef) { 2342 return changesRef.cast(function (o) { return (tslib_1.__assign(tslib_1.__assign({}, orig), o)); }, function (n) { return dbi_1.DBITools.rowChanges2write(orig, n) || {}; }); 2343} 2344function parentHasSomeData(prow) { 2345 for (var _i = 0, _a = [ 2346 'firstname', 2347 'lastname', 2348 'email', 2349 'mobile' 2350 ]; _i < _a.length; _i++) { 2351 var c = _a[_i]; 2352 if (prow[c]) 2353 return true; 2354 } 2355 return false;
2356} 2357function ParentInput(props) { 2358 var _this = this; 2359 var req = edurequest_1.client_req; 2360 var dbi = props.dbi, studentid = props.studentid, srow = props.srow, parentRef = props.parentRef, relationRef = props.relationRef, preferredRef = props.preferredRef, mode = props.mode, onLink = props.onLink; 2361 var year = parseInt(dbi.dbid); 2362 var prow = parentRef.value; 2363 var readonly = !parentRef.set; 2364 var duplicates = (0, asc_react_1.useAsyncMemo)(function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { 2365 return tslib_1.__generator(this, function (_a) { 2366 switch (_a.label) { 2367 case 0: 2368 if (mode != 'add') 2369 return [2, []]; 2370 if (!parentHasSomeData(prow)) 2371 return [2, []]; 2372 return [4, (0, parent_1.parentPossibleDuplicates)(null, year, prow)]; 2373 case 1: return [2, (_a.sent()).duplicates]; 2374 } 2375 }); 2376 }); }, [mode, prow], [], { delay: 500 }); 2377 var startWithFirst = req.sort_name_col == 'FSL'; 2378 var dlgPRow = { 2379 dbi: dbi, 2380 table: 'parents', 2381 rowRef: parentRef, 2382 }; 2383 var moreStudents = (prow.students || []).filter(function (s) { return s.studentid != studentid; }); 2384 var copy_address_cols = [ 2385 'address_street', 2386 'address_street_number', 2387 'address_city', 2388 'address_zip', 2389 'address_country', 2390 'address_district', 2391 ]; 2392 return React.createElement("div", { style: { position: 'relative' } }, 2393 mode != 'edit' && React.createElement(React.Fragment, null, 2394 React.createElement("div", { style: { fontWeight: 'bold' } }, 2395 req.ls(2079) + ' - ' + (mode == 'add' ? req.ls(1257) : req.ls(1724)) + ':', 2396 React.createElement(asc_react_1.HGap, null), 2397 mode == 'add' && duplicates.length > 0 && React.createElement(anchor_1.RAnchor, { label: req.ls(11613) + '!', style: { color: 'red' }, onClick: function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { 2398 return tslib_1.__generator(this, function (_a) { 2399 return [2, asc_react_1.RDialog.show(React.createElement(parent_2.DuplicateParentsDlg, { dbi: dbi, prow: prow, duplicates: duplicates, onUse: function (d) { return onLink(d); } }))]; 2400 }); 2401 }); } })), 2402 React.createElement(asc_react_1.VGap, null)), 2403 React.createElement(asc_react2_1.RClassGroupBox, { title: req.ls(3688) }, 2404 React.createElement("div", { className: 'agenda-cols-2' }, 2405 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgPRow, column: startWithFirst ? 'firstname' : 'lastname' }), 2406 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgPRow, column: !startWithFirst ? 'firstname' : 'lastname' }), 2407 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgPRow, column: 'gender' }), 2408 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgPRow, column: 'email', control: validatefield_1.REmailField }), 2409 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgPRow, column: 'mobile' }), 2410 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgPRow, column: 'edesk_number', style: { width: 80 }, control: validatefield_1.REDeskNumberField }), 2411 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgPRow, column: 'nameprefix' }), 2412 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgPRow, column: 'namesuffix' }), 2413 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgPRow, column: 'studentdata', subcolumn: 'relation', valueRef: relationRef.sub('relation') }), 2414 prow.username && React.createElement(dbi_react_1.DlgField, { dlgRow: dlgPRow, column: 'username', readonly: true }), 2415 moreStudents.length > 0 && (React.createElement("div", { className: "agenda-dbifield-outer " }, 2416 React.createElement("div", { className: 'agenda-dbifield-label' }, 2417 React.createElement(asc_react_1.RLabel, { text: req.ls(6438) + ': ' })), 2418 React.createElement("div", { className: 'agenda-dbifield-field' }, 2419 React.createElement("span", { className: 'agenda-dbifield-readonly', style: { 2420 display: 'inline-block', 2421 verticalAlign: 'text-top', 2422 whiteSpace: 'pre-wrap', 2423 } }, moreStudents.map(function (s) { return s.firstname + ' ' + s.lastname + ' ' + s.class_name; }).join('\n'))), 2424 React.createElement("div", { className: 'agenda-dbifield-after' }))))), 2425 React.createElement(address_1.AddressInput, { dlgRow: dlgPRow, separator: React.createElement(asc_react_1.HGap, null), right: !readonly && copy_address_cols.find(function (c) { return srow[c]; }) && React.createElement(anchor_1.RAnchor, { label: req.ls(1575) + ' â ' + req.ls(2079), onClick: function () { 2426 for (var _i = 0, copy_address_cols_1 = copy_address_cols; _i < copy_address_cols_1.length; _i++) { 2427 var c = copy_address_cols_1[_i]; 2428 if (srow[c]) 2429 parentRef.sub(c).set(srow[c]); 2430 } 2431 } }) }), 2432 React.createElement(asc_react2_1.RClassGroupBox, { title: req.ls(1601) }, 2433 React.createElement("div", { className: 'agenda-cols-2' }, 2434 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgPRow, column: 'birthlastname' }), 2435 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgPRow, column: 'nin', control: React.createElement(validatefield_1.RNinField, { valueRef: parentRef.sub('nin').onSet(function (nin) { 2436 setTimeout(function () { 2437 var _a, _b, _c, _d; 2438 var res = getNinDetails(req, nin); 2439 if (res) { 2440 (_b = (_a = parentRef.sub('birthdate')).set) === null || _b === void 0 ? void 0 : _b.call(_a, res.birthdate); 2441 res.gender && ((_d = (_c = parentRef.sub('gender')).set) === null || _d === void 0 ? void 0 : _d.call(_c, res.gender)); 2442 } 2443 }, 0); 2444 }) }) }), 2445 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgPRow, column: 'birthdate' }), 2446 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgPRow, column: 'is_dead' }), 2447 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgPRow, column: 'occupation' }), 2448 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgPRow, column: 'company_name', label: req.lang == 'sk' && relationRef.sub('relation').value == 'lg' ? 'Názov zariadenia' : undefined }), 2449 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgPRow, column: 'ico' }))), 2450 React.createElement(dbi_react_1.DlgField, { dlgRow: dlgPRow, column: 'studentdata', subcolumn: 'relation_note', valueRef: relationRef.sub('relation_note'), label_style: 'top', className: 'agenda-label-titlegray', label: req.ls(1579) + ' (' + req.ls(3927) + ')', style: { height: 35 } }), 2451 React.createElement(asc_react_1.VGap, null), 2452 React.createElement(asc_react_1.RCheckBox, { valueRef: preferredRef.equals(prow.id), label: req.ls(6241) })); 2453} 2454ParentInput.npp = (0, dbi_1.neededPartProvider)(function () { return [ 2455 parent_2.RDuplicateParent, 2456 { 2457 parents: tslib_1.__spreadArray([ 2458 '__name', 2459 'gender', 2460 'email', 2461 'mobile', 2462 'nameprefix', 2463 'namesuffix', 2464 'username', 2465 'edesk_number', 2466 'company_name', 2467 'ico', 2468 'occupation', 2469 'students', 2470 'studentdata', 2471 '_uial' 2472 ], address_1.AddressInput.part_columns, true) 2473 } 2474]; }); 2475ParentInput.needed_combos = (0, dbi_1.typed)({ 2476 parents: tslib_1.__spreadArray([ 2477 'studentdata', 2478 'gender' 2479 ], address_1.AddressInput.part_combos, true), 2480}); 2481function MoreFieldsContactUs(props) { 2482 var req = edurequest_1.client_req; 2483 var dlgRow = props.dlgRow, column = props.column; 2484 if (dlgRow.dbi.column(dlgRow.table, column)) 2485 return null; 2486 var msg = ''; 2487 var hide_contact = false;
2488 switch (req.lang) { 2489 case 'de': 2490 msg = 'Um diese Felder zu bearbeiten, kontaktieren Sie uns bitte.'; 2491 break; 2492 case 'sk': 2493 msg = 'Tieto údaje zatiaľ nie sú dostupné na webe, nájdete ich v programe aSc Agenda.'; 2494 hide_contact = true; 2495 break; 2496 default: 2497 msg = 'Please contact us if you want to input these fields.'; 2498 break; 2499 } 2500 return React.createElement("div", { style: { color: '#808080' } }, 2501 msg, 2502 !hide_contact && React.createElement(React.Fragment, null)); 2503} 2504function StudentOutField(props) { 2505 var req = edurequest_1.client_req; 2506 var valueRef = props.valueRef, dbi = props.dbi, row = props.row; 2507 var readonly = !valueRef.set; 2508 var value = valueRef.value || []; 2509 var cz_school_druhy = student_cz_school_druhy(dbi, props.row || {}); 2510 var cd = dbi.column('studentkopias', 'out'); 2511 var scds = cd.subcolumns || []; 2512 var allow_PSD = cz_school_druhy.includes('Z'); 2513 if (cz_school_druhy.includes('S')) { 2514 var crow = dbi.rowData('classes', row.classid, {}); 2515 if (['60', '80'].includes(crow.cz_matrika_DELST)) 2516 allow_PSD = true; 2517 } 2518 var outTypeCombo = null; 2519 for (var _i = 0, scds_1 = scds; _i < scds_1.length; _i++) { 2520 var r = scds_1[_i]; 2521 if (r.id == 'sk_ristype') { 2522 outTypeCombo = r.combo(); 2523 } 2524 } 2525 var cb_scds = scds 2526 .filter(function (scd) { return scd.type() == 'checkbox'; }) 2527 .filter(function (scd) { 2528 var id = scd.id; 2529 if (value.find(function (o) { return o[id]; })) 2530 return true; 2531 switch (id) { 2532 case 'cz_par38_1a': 2533 case 'cz_par38_1b': 2534 case 'cz_par38_1c': 2535 case 'cz_par38_1d': 2536 case 'cz_par38_2': 2537 case 'cz_par41': 2538 return allow_PSD; 2539 case 'cz_par34b': 2540 case 'cz_par34_10': 2541 return cz_school_druhy.includes('M'); 2542 case 'cz_par18': 2543 case 'cz_vzp': 2544 return cz_school_druhy.includes('S'); 2545 } 2546 return true; 2547 }); 2548 var cb_scs = cb_scds 2549 .map(function (scd) { return scd.id; }); 2550 var style = {}; 2551 var fillListName = function () { 2552 var list = []; 2553 var val2count = {}; 2554 for (var _i = 0, _a = dbi.tableData('studentkopias'); _i < _a.length; _i++) { 2555 var srow = _a[_i]; 2556 for (var _b = 0, _c = srow.out; _b < _c.length; _b++) { 2557 var o = _c[_b]; 2558 if (o.name) { 2559 var index = '' + o.name; 2560 if (outTypeCombo) { 2561 index += '#' + o.sk_ristype; 2562 } 2563 for (var _d = 0, cb_scs_1 = cb_scs; _d < cb_scs_1.length; _d++) { 2564 var cbid = cb_scs_1[_d]; 2565 index += '#' + (o[cbid] ? '1' : '0'); 2566 } 2567 if (!val2count.hasOwnProperty(index)) { 2568 var item = { 'name': o.name, 'count': 1 }; 2569 if (outTypeCombo) { 2570 item['sk_ristype'] = o.sk_ristype; 2571 } 2572 for (var _e = 0, cb_scs_2 = cb_scs; _e < cb_scs_2.length; _e++) { 2573 var cbid = cb_scs_2[_e]; 2574 item[cbid] = o[cbid]; 2575 } 2576 val2count[index] = item; 2577 } 2578 else { 2579 val2count[index].count += 1; 2580 } 2581 } 2582 } 2583 } 2584 var vals = []; 2585 for (var valStr in val2count) { 2586 vals.push(val2count[valStr]); 2587 } 2588 vals.sort(function (a, b) { return b.count - a.count; }); 2589 for (var _f = 0, vals_1 = vals; _f < vals_1.length; _f++) { 2590 var val = vals_1[_f]; 2591 if (val.sk_ristype && outTypeCombo) { 2592 for (var _g = 0, outTypeCombo_1 = outTypeCombo; _g < outTypeCombo_1.length; _g++) { 2593 var r = outTypeCombo_1[_g]; 2594 if (r.value == val.sk_ristype) { 2595 val.code = r.name; 2596 break; 2597 } 2598 } 2599 } 2600 list.push(val); 2601 } 2602 return list; 2603 };
2604 function edit() { 2605 return tslib_1.__awaiter(this, void 0, void 0, function () { 2606 var blankOut, _i, scds_2, sc, res, out; 2607 return tslib_1.__generator(this, function (_a) { 2608 switch (_a.label) { 2609 case 0: 2610 blankOut = {}; 2611 for (_i = 0, scds_2 = scds; _i < scds_2.length; _i++) { 2612 sc = scds_2[_i]; 2613 blankOut[sc.id] = sc.blank(); 2614 } 2615 return [4, asc_react_1.RDialog.showInput(tslib_1.__spreadArray(tslib_1.__spreadArray([], value, true), [blankOut], false), function (_a) { 2616 var stateRef = _a.stateRef; 2617 var el_style = { 2618 width: 100, 2619 marginRight: 5, 2620 }; 2621 return React.createElement(React.Fragment, null, 2622 React.createElement("div", null, 2623 React.createElement(asc_react_1.RLabel, { text: cd.subcolumn('datefrom').name(), style: el_style }), 2624 React.createElement(asc_react_1.RLabel, { text: cd.subcolumn('dateto').name(), style: el_style }), 2625 React.createElement(asc_react_1.RLabel, { text: cd.subcolumn('name').name(), style: { width: '205px' } }), 2626 outTypeCombo && React.createElement(asc_react_1.RLabel, { text: cd.subcolumn('sk_ristype').name(), style: { width: '150px' } }), 2627 React.createElement(asc_react_1.RLabel, { text: (0, actions_1.action_name)('settings'), style: el_style })), 2628 (0, asc_react_1.rangeFromTo)(0, stateRef.value.length - 1).map(function (i) { 2629 var oRef = stateRef.index(i); 2630 var cbRef = oRef.cast(function (o) { return cb_scs.filter(function (c) { return o[c]; }); }, function (n, o) { 2631 var v = tslib_1.__assign({}, o); 2632 for (var _i = 0, cb_scs_3 = cb_scs; _i < cb_scs_3.length; _i++) { 2633 var c = cb_scs_3[_i]; 2634 v[c] = n.includes(c); 2635 } 2636 return v; 2637 }); 2638 return React.createElement("div", { key: i, style: { display: 'flex', flexFlow: 'row nowrap', alignItems: 'center', marginBottom: '4px' } }, 2639 React.createElement(datefield_1.default, { valueRef: oRef.sub('datefrom'), style: el_style }), 2640 React.createElement(datefield_1.default, { valueRef: oRef.sub('dateto'), style: el_style }), 2641 React.createElement(autocomplete_1.RAutocompleteInput, { valueRef: oRef.sub('name'), items: fillListName(), onSelect: function (item) { 2642 oRef.sub('name').set(item.name); 2643 if (outTypeCombo) { 2644 oRef.sub('sk_ristype').set(item.sk_ristype); 2645 } 2646 for (var _i = 0, cb_scs_4 = cb_scs; _i < cb_scs_4.length; _i++) { 2647 var cbid = cb_scs_4[_i]; 2648 oRef.sub(cbid).set(item[cbid]); 2649 } 2650 } }), 2651 outTypeCombo && React.createElement(combobox_1.default, { valueRef: oRef.sub('sk_ristype'), items: outTypeCombo, style: { width: '150px' } }), 2652 React.createElement(comboboxmulti_1.default, { valueRef: cbRef, items: cb_scds.map(function (scd) { return ({ value: scd.id, name: scd.name() }); }), style: el_style }), 2653 React.createElement(asc_react_1.HGap, null), 2654 !(0, dbi_1.deepStrictEqual)(oRef.value, blankOut) && React.createElement(anchor_1.RAnchor, { label: req.ls(1586), onClick: function () { return oRef.set(blankOut); } }), 2655 React.createElement(asc_react_1.VGap, null)); 2656 })); 2657 }, { width: 780, header: cd.name() })]; 2658 case 1: 2659 res = _a.sent(); 2660 if (!res) 2661 return [2]; 2662 out = res.filter(function (o) { return o.datefrom && (!o.dateto || o.dateto >= o.datefrom); }); 2663 out.sort(function (a, b) { return a.datefrom < b.datefrom ? -1 : 1; }); 2664 valueRef.set(out); 2665 return [2]; 2666 } 2667 }); 2668 }); 2669 } 2670 return (React.createElement("div", { className: 'agenda-dbifield-multiitems', style: { margin: '-4px 0 4px 0' }, onClick: readonly ? null : edit }, 2671 value.length == 0 && (React.createElement("div", { className: 'agenda-dbifield-multi-item' }, readonly ? '- ' : req.ls(1257))), 2672 value.map(function (o, i) { 2673 var s = o.dateto 2674 ? (0, lib_date_1.date_format_2dates)(req, o.datefrom, o.dateto) 2675 : (0, lib_date_1.date_format_date)(req, o.datefrom) + ' - â'; 2676 var ss = []; 2677 if (o.name) 2678 ss.push(o.name); 2679 for (var _i = 0, cb_scds_1 = cb_scds; _i < cb_scds_1.length; _i++) { 2680 var scd = cb_scds_1[_i]; 2681 if (o[scd.id]) 2682 ss.push(scd.name()); 2683 } 2684 if (ss.length) 2685 s += ': ' + ss.join(', '); 2686 return React.createElement("div", { className: 'agenda-dbifield-multi-item', key: i }, s); 2687 }))); 2688} 2689function ArchiveTab(props) { 2690 var req = edurequest_1.client_req; 2691 var archive = props.archive, dlgRow = props.dlgRow; 2692 var dbi = dlgRow.dbi, rowRef = dlgRow.rowRef; 2693 var srow = rowRef.value; 2694 var readonly = !rowRef.set; 2695 var years = (archive === null || archive === void 0 ? void 0 : archive.years) || []; 2696 var formatChanges = function (props) { 2697 var _a; 2698 var key = props.cd.key; 2699 if (((_a = props.row.changes) === null || _a === void 0 ? void 0 : _a.length) > 0) { 2700 return React.createElement(React.Fragment, null, 2701 props.row.changes.filter(function (change) { return key in change; }).map(function (change) { return React.createElement("span", { key: change.dateto },
2702 React.createElement("span", { className: "item-old" }, change[key]), 2703 React.createElement("span", null, " \u2192 ")); }), 2704 props.row[key]); 2705 } 2706 return props.row[key]; 2707 }; 2708 var tcols = [ 2709 { 2710 key: 'year', 2711 label: req.ls(1578), 2712 type: 'year', 2713 width: 80, 2714 }, 2715 { 2716 key: 'class_name', 2717 label: dbi.tools.itemName('classes'), 2718 width: 100, 2719 formatter: formatChanges 2720 }, 2721 { 2722 key: 'odbor_name', 2723 width: 400, 2724 label: req.ls(6297), 2725 formatter: formatChanges 2726 }, 2727 ]; 2728 if (!archive) 2729 return React.createElement(asc_react_1.Loading, null); 2730 var add_menu = []; 2731 if (!readonly && req.hasRight('agenda') && srow._uial == 2 && years.length > 0 && !req.isAgenda()) { 2732 var min_year = years[0].year; 2733 var max_year = min_year; 2734 for (var _i = 0, years_4 = years; _i < years_4.length; _i++) { 2735 var r = years_4[_i]; 2736 min_year = Math.min(min_year, r.year); 2737 max_year = Math.max(max_year, r.year); 2738 } 2739 var _loop_4 = function (add_year) { 2740 if (years.find(function (r) { return r.year == add_year; })) 2741 return "continue"; 2742 add_menu.push({ 2743 text: req.getSchoolYearName(add_year), 2744 onClick: function () { return addYear(dlgRow, add_year); }, 2745 }); 2746 }; 2747 for (var add_year = min_year - 1; add_year <= max_year + 1; add_year++) { 2748 _loop_4(add_year); 2749 } 2750 } 2751 return React.createElement(React.Fragment, null, 2752 React.createElement(datatable_1.RDatatable, { data: years, columns: tcols, cssClass: (years.length > 4 ? 'compact ' : '') + 'nowrap light-theme', resizable: true, rowClassNames: function (row) { return row.class_name ? null : 'item-old'; } }), 2753 add_menu.length > 0 && React.createElement(React.Fragment, null, 2754 React.createElement(asc_react_1.VGap, null), 2755 React.createElement(asc_react_1.RButton, { label: req.ls(1257), menu: add_menu }))); 2756} 2757function addYear(dlgRow, add_year) { 2758 return tslib_1.__awaiter(this, void 0, void 0, function () { 2759 var req, orig_year, srow, studentkopiaid, add_dbi, classid; 2760 return tslib_1.__generator(this, function (_a) { 2761 switch (_a.label) { 2762 case 0: 2763 req = edurequest_1.client_req; 2764 orig_year = parseInt(dlgRow.dbi.dbid); 2765 srow = dlgRow.rowRef.value; 2766 studentkopiaid = srow.id; 2767 return [4, ASC.blockUI(req.maindbi(add_year, { 2768 needed_part: { 2769 classes: ['__name'], 2770 studentkopias: [], 2771 } 2772 }))]; 2773 case 1: 2774 add_dbi = _a.sent(); 2775 if (add_dbi.rowData('studentkopias', studentkopiaid)) 2776 ASC.dieError('5262799711'); 2777 classid = srow.classid; 2778 if (!add_dbi.rowData('classes', classid)) 2779 classid = ''; 2780 return [4, asc_react_1.RDialog.showInput(classid, function (_a) { 2781 var stateRef = _a.stateRef; 2782 return React.createElement("div", null, 2783 React.createElement(asc_react_1.RLabel, { text: req.ls(1263) }), 2784 React.createElement(combobox_1.default, { valueRef: stateRef, items: add_dbi.tools.tableCombo('classes') })); 2785 }, { 2786 header: req.lsf(1911, { year: req.getSchoolYearName(add_year) }), 2787 msgType: 'warn', 2788 buttons: [ 2789 { action: 'add', label: req.ls(1257), type: 'green' }, 2790 'cancel' 2791 ], 2792 width: 400, 2793 })]; 2794 case 2: 2795 classid = _a.sent(); 2796 if (classid === null) 2797 return [2]; 2798 return [4, ASC.blockUI((0, student_1.studentDlg_addYear)(null, orig_year, studentk
2798opiaid, add_year, { classid: classid }))]; 2799 case 3: 2800 _a.sent(); 2801 return [2]; 2802 } 2803 }); 2804 }); 2805} 2806function RozhodnutiaTab(props) { 2807 var req = edurequest_1.client_req; 2808 var archive = props.archive, dlgRow = props.dlgRow; 2809 var dbi = dlgRow.dbi, rowRef = dlgRow.rowRef; 2810 var row = rowRef.value; 2811 var year = parseInt(dbi.dbid); 2812 var rozhodnuties = (archive === null || archive === void 0 ? void 0 : archive.rozhodnuties) || []; 2813 var tcols = [ 2814 { 2815 key: 'year', 2816 label: req.ls(1578), 2817 type: 'year', 2818 width: 80, 2819 }, 2820 { 2821 key: 'typ_icon', 2822 label: '', 2823 width: 20, 2824 formatter: function (_a) { 2825 var row = _a.row; 2826 return React.createElement(React.Fragment, null, 2827 React.createElement("div", { style: { textAlign: 'center' } }, 2828 React.createElement("img", { src: row.typ_icon, style: { height: 16 } }))); 2829 } 2830 }, 2831 { 2832 key: 'typ_text', 2833 label: req.ls(1302), 2834 width: 250, 2835 }, 2836 { 2837 key: 'text', 2838 label: req.ls(1045), 2839 width: 250, 2840 }, 2841 { 2842 key: 'subject_name', 2843 width: 100, 2844 label: req.ls(1299), 2845 formatter: function (props) { var row = props.row; return row.subjectid == '1' ? '-' : row.subject_name; } 2846 }, 2847 { 2848 key: 'date', 2849 width: 90, 2850 label: req.ls(1251), 2851 type: 'date', 2852 }, 2853 ]; 2854 function itemClick(vcid, y, r) { 2855 var _a; 2856 if ((_a = r === null || r === void 0 ? void 0 : r.id) === null || _a === void 0 ? void 0 : _a.toString().endsWith(':printlog')) { 2857 showPrintlog(r); 2858 return; 2859 } 2860 barNewDialog({ 2861 source: '/znamky/?what=PoznamkaEditor&vcelickaid=' + vcid + '&znamky_yearid=' + (y || year) + '&znamky_yearid_ns=1', 2862 'postData': { ibaOficialne: '1', 'studentids': row.studentid }, 2863 'returnFunc': function (vcelicka, oficialne) { 2864 var _a; 2865 ASC.changeEvents.post('dbi:rozhodnuties', (((_a = ASC.changeEvents.current) === null || _a === void 0 ? void 0 : _a['dbi:rozhodnuties']) || 0) + 1); 2866 } 2867 }); 2868 } 2869 function showPrintlog(r) { 2870 asc_react_1.RDialog.show((React.createElement(asc_react_1.RDialog, { header: req.ls(1162), width: 600, buttons: ['ok', 'cancel'] }, 2871 React.createElement("div", { style: { marginBottom: '12px' } }, 2872 React.createElement("b", null, "Z\u00E1znam poch\u00E1dza z arch\u00EDvu v PC programe aScAgenda")), 2873 React.createElement("div", { className: 'agenda-dbifield-outer' }, 2874 React.createElement("div", { className: 'agenda-dbifield-label light' }, 2875 req.ls(1578), 2876 ":"), 2877 React.createElement("div", { className: 'agenda-dbifield-field' }, req.getSchoolYearName(r === null || r === void 0 ? void 0 : r.year))), 2878 React.createElement("div", { className: 'agenda-dbifield-outer' }, 2879 React.createElement("div", { className: 'agenda-dbifield-label light' }, 2880 req.ls(1279), 2881 ":"), 2882 React.createElement("div", { className: 'agenda-dbifield-field' }, r === null || r === void 0 ? void 0 : r.typ_text)), 2883 React.createElement("div", { className: 'agenda-dbifield-outer' }, 2884 React.createElement("div", { className: 'agenda-dbifield-label light' }, 2885 req.ls(7237), 2886 ":"), 2887 React.createElement("div", { className: 'agenda-dbifield-field' }, r === null || r === void 0 ? void 0 : r.text)), 2888 React.createElement("div", { className: 'agenda-dbifield-outer' }, 2889 React.createElement("div", { className: 'agenda-dbifield-label light' }, 2890 req.ls(1251), 2891 ":"), 2892 React.createElement("div", { className: 'agenda-dbifield-field' }, (0, lib_date_1.date_format_date)(req, r === null || r === void 0 ? void 0 : r.date)))))); 2893 } 2894 if (!archive) 2895 return React.createElement(asc_react_1.Loading, null); 2896 return React.createElement(React.Fragment, null, 2897 React.createElement(datatable_1.RDatatable, { data: rozhodnuties, columns: tcols, cssClass: 'light-theme', resizable: true, fitWidth: true, onRowClick: function (row) { 2898 var _a; 2899 var _b = (_a = row.id) === null || _a === void 0 ? void 0 : _a.split(':'), y = _b[0], vcid = _b[1]; 2900 itemClick(vcid, y, row); 2901 } }), 2902 rozhodnuties.length == 0 && (React.createElement("div", { style: { padding: '15px', textAlign: 'center', opacity: 0.5, marginBottom: '8px' } }, ls(4447))), 2903 React.createElement(asc_react_1.VGap, null), 2904 React.createElement("div", { style: { position: 'sticky', bottom: 0 } }, 2905 React.createElement(asc_react_1.RButton, { label: ' + ' + req.ls(3229), onClick: function () { 2906 itemClick(''); 2907 } }), 2908 React.createElement(asc_react_1.RButton, { label: req.ls(4880) + ' (' + req.getSchoolYearName(year) + ')', onClick: function () { return (0, asc_react_1.openUrl)('/skd/?cmd=OfficialLetters&triedaid=' + row.classid + '&znamky_yearid=' + year + '&force=1'); } }))); 2909} 2910function KatListNotes(props) { 2911 var req = edurequest_1.client_req; 2912 var archive = props.archive, dlgRow = props.dlgRow; 2913 var dbi = dlgRow.dbi, rowRef = dlgRow.rowRef; 2914 var row = rowRef.value; 2915 var year = parseInt(dbi.dbid); 2916 var type = props.type; 2917 var rozhodnuties = (archive === null || archive === void 0 ? void 0 : archive.rozhodnuties) || []; 2918 var items = rozhodnuties.filter(function (r) { 2919 if (r.year != year) 2920 return false;
2921 if (props.type == 'skdlist') { 2922 return r.typ_id == 'skdpoznamka' || r.typ_id == 'prispevokskd'; 2923 } 2924 return r.typ_id != 'skdpoznamka'; 2925 }); 2926 function showItem(vcid, y, r) { 2927 barNewDialog({ 2928 source: '/znamky/?what=PoznamkaEditor&vcelickaid=' + vcid + '&znamky_yearid=' + (y || year) + '&znamky_yearid_ns=1&typ=' + (type == 'skdlist' ? 'skdpoznamka' : 'katpoznamka'), 2929 'postData': { ibaOficialne: '1', 'studentids': row.studentid }, 2930 'returnFunc': function (vcelicka, oficialne) { 2931 var _a; 2932 ASC.changeEvents.post('dbi:rozhodnuties', (((_a = ASC.changeEvents.current) === null || _a === void 0 ? void 0 : _a['dbi:rozhodnuties']) || 0) + 1); 2933 } 2934 }); 2935 } 2936 function itemClick(e) { 2937 var id = e.currentTarget.getAttribute('data-id'); 2938 showItem(id, year); 2939 } 2940 return (React.createElement("div", null, 2941 React.createElement("div", { className: 'agenda-dbifield-field-note', style: { padding: '4px 8px 4px 12px', margin: '-8px 0 8px 0' } }, type == 'skdlist' 2942 ? 'V osobnom spise dieÅ¥aÅ¥a v Å KD sa v Äasti poznámky zobrazujú rozhodnutia o výške prÃspevku na Å KD a Å¡peciálny typ poznámky "' + req.ls(15464) + '"' 2943 : 'V katalógovom liste a osobnom spise dieÅ¥aÅ¥a v MÅ sa v Äasti poznámky predvolene zobrazujú vÅ¡etky výchovné opatrenia a rozhodnutia. Môžete pridaÅ¥ aj Å¡peciálny typ poznámky "' + req.ls(12685) + '"'), 2944 React.createElement("div", { className: 'agenda-dbifield-outer ' }, 2945 React.createElement("div", { className: 'agenda-dbifield-label', style: { alignSelf: 'flex-start', paddingRight: '5px' } }, type == 'skdlist' ? 'Å KD poznámky:' : 'Poznámky, opatrenia, rozhodnutia:'), 2946 React.createElement("div", { className: 'agenda-dbifield-field', style: { paddingTop: 0, overflow: 'visible' } }, 2947 React.createElement("div", null, items.map(function (r) { 2948 return React.createElement("div", { key: r.id, className: 'agenda-katlist-item ' + (r.katlistshow == 'no' ? 'agenda-katlist-item-hidden' : ''), "data-id": r.rozhodnutieid, onClick: itemClick }, 2949 React.createElement("div", null, 2950 " ", 2951 React.createElement("img", { src: r.typ_icon, style: { height: 16 } })), 2952 React.createElement("div", null, 2953 r.katlistshow == 'no' ? '(neuvádzaÅ¥) ' : '', 2954 r.typ_text, 2955 r.text ? ': ' + r.text : '', 2956 React.createElement("div", { className: 'agenda-dbifield-field-note' }, 2957 (0, lib_date_1.date_format_date)(req, r.date), 2958 r.subjectid == '1' ? '' : ' · ' + r.subject_name))); 2959 })), 2960 React.createElement("div", { style: { marginTop: items.length > 0 ? '8px' : '-5px' } }, 2961 React.createElement(asc_react_1.RButton, { label: ' + ' + req.ls(3229), onClick: function () { 2962 showItem(''); 2963 } })))))); 2964} 2965function ExamsTab(props) { 2966 var req = edurequest_1.client_req; 2967 var archive = props.archive, dlgRow = props.dlgRow; 2968 var dbi = dlgRow.dbi, rowRef = dlgRow.rowRef; 2969 var row = rowRef.value; 2970 var exams = (archive === null || archive === void 0 ? void 0 : archive.exams) || []; 2971 var year = parseInt(dbi.dbid); 2972 var tcols = [ 2973 { 2974 key: '_edit', label: '', width: 16, 2975 formatter: function (_a) { 2976 var row = _a.row; 2977 return row._uial > 0 && React.createElement("img", { src: (0, actions_1.action_icon)('edit'), style: { height: 16, cursor: 'pointer' }, onClick: function () { return (0, maindbi_ui_1.showMainDbiItemDlg)(row.year, row.typ, row.rowid); } }); 2978 } 2979 }, 2980 { 2981 key: 'year', 2982 label: req.ls(1578), 2983 type: 'year', 2984 width: 80, 2985 }, 2986 { 2987 key: 'typ_name', 2988 label: req.ls(1302), 2989 width: 200, 2990 }, 2991 { 2992 key: 'date', 2993 width: 120, 2994 label: req.ls(1251), 2995 type: 'date', 2996 }, 2997 { 2998 key: 'value_text', 2999 width: 150, 3000 label: req.ls(2774), 3001 }, 3002 { 3003 key: 'info', 3004 width: 240, 3005 label: '', 3006 }, 3007 ]; 3008 function itemClick(r) { 3009 var _a; 3010 var _b = (_a = r.id) === null || _a === void 0 ? void 0 : _a.split(':'), tbl = _b[0], y = _b[1], vcid = _b[2]; 3011 (0, maindbi_ui_1.showMainDbiItemDlg)(parseInt(y), tbl, vcid); 3012 } 3013 if (!archive) 3014 return React.createElement(asc_react_1.Loading, null); 3015 return React.createElement(React.Fragment, null, 3016 React.createElement(datatable_1.RDatatable, { data: exams, columns: tcols, cssClass: 'nowrap light-theme', resizable: true, fitWidth: true, onRowClick: function (r) { 3017 itemClick(r); 3018 } }), 3019 exams.length == 0 && (React.createElement("div", { style: { padding: '15px', textAlign: 'center', opacity: 0.5, marginBottom: '8px' } }, ls(4447))), 3020 React.createElement(asc_react_1.VGap, null), 3021 React.createElement("div", { style: { position: 'sticky', bottom: 0 } }, 3022 React.createElement(asc_react_1.RButton, { label: ' + ' + req.ls(3229), onClick: function () {
3023 dbi.frontend.showItemDlg('komisionalnaskuskas', '', { row: { studentid: row.id.split(':')[0] } }); 3024 } }), 3025 React.createElement(asc_react_1.RButton, { label: req.ls(12082) + ' (' + req.getSchoolYearName(year) + ')', onClick: function () { return (0, asc_react_1.openUrl)('/skd/?cmd=KomisionalneSkusky&znamky_yearid=' + year + '&force=1'); } }))); 3026} 3027function NextSchoolInput(props) { 3028 var _a; 3029 var req = edurequest_1.client_req; 3030 var valueRef = props.valueRef; 3031 var row = tslib_1.__assign({ schoolid: '', odbor_code: '', odbor_note: '' }, (valueRef.value || {})); 3032 var rowRef = new asc_react_1.ValueRef(row, function (a) { 3033 if (typeof a == 'function') 3034 a = a(row); 3035 valueRef.set({ 3036 schoolid: a.schoolid, 3037 odbor_code: a.odbor_code, 3038 odbor_note: a.odbor_note, 3039 }); 3040 }); 3041 var dbi = (0, dbi_react_1.useMainDBI)(props.year, { 3042 needed_part: { 3043 studentkopias: ['nextschools'], 3044 schools: ['__name', 'cz_izo'], 3045 } 3046 }); 3047 var cd = dbi.column('studentkopias', 'nextschools'); 3048 var cd_schoolid = cd.subcolumn('schoolid'); 3049 var cd_odbor_code = cd.subcolumn('odbor_code'); 3050 var cd_odbor_note = cd.subcolumn('odbor_note'); 3051 var odbor_ac = (((_a = (0, autocomplete_1.useMainDBIAutocompleteData)('odbors', 'name')) === null || _a === void 0 ? void 0 : _a.data) || []) 3052 .map(function (row) { return (tslib_1.__assign(tslib_1.__assign({}, row), { code: row.code.replace(/[\-/]/g, '') })); }); 3053 return React.createElement("div", null, 3054 React.createElement(asc_react_1.RLabel, { text: cd_schoolid.name() }), 3055 req.school_country == 'cz' 3056 ? (0, asc_react_1.wrapSuspense)(React.createElement(CzSchoolCombo, { dbi: dbi, valueRef: rowRef.sub('schoolid') })) 3057 : React.createElement(combobox_1.default, { valueRef: rowRef.sub('schoolid'), items: dbi.tools.tableCombo('schools') }), 3058 React.createElement("br", null), 3059 cd_odbor_code && React.createElement(React.Fragment, null, 3060 React.createElement(asc_react_1.RLabel, { text: cd_odbor_code.name() }), 3061 React.createElement(autocomplete_1.RAutocompleteInput, { valueRef: rowRef.sub('odbor_code'), items: odbor_ac, onSelect: function (i) { return rowRef.sub('odbor_code').set(i.code); } }), 3062 React.createElement("br", null)), 3063 cd_odbor_note && React.createElement(React.Fragment, null, 3064 React.createElement(asc_react_1.RLabel, { text: cd_odbor_note.name() }), 3065 React.createElement(asc_react_1.RInput, { valueRef: rowRef.sub('odbor_note') }), 3066 React.createElement("br", null))); 3067} 3068function De_fsnInput(props) { 3069 var _this = this; 3070 var req = edurequest_1.client_req; 3071 var valueRef = props.valueRef, dbiColumn = props.dbiColumn, dlgRow = props.dlgRow; 3072 var value = valueRef.value; 3073 var cnt = value.length; 3074 var srow = dlgRow.rowRef.value; 3075 var dbi = dlgRow.dbi; 3076 var crow = dbi.rowData('classes', srow.classid); 3077 return React.createElement(anchor_1.RAnchor, { label: cnt > 0 3078 ? "(".concat(cnt, ") ") + req.ls(1053) 3079 : req.ls(1257), onClick: function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { 3080 var res, De_fsnInput; 3081 return tslib_1.__generator(this, function (_a) { 3082 switch (_a.label) { 3083 case 0: 3084 res = value; 3085 De_fsnInput = function () { 3086 var _a = (0, asc_react_1.useStateRef)(value), state = _a[0], stateRef = _a[1]; 3087 res = state; 3088 return React.createElement(asc_react_1.RDialog, { header: dbiColumn.name(), width: 500, buttons: ['ok', 'cancel'], footer: React.createElement(asc_react_1.RButton, { label: 'Automatisch vorbef\u00FCllen', onClick: function () { 3089 var gradeto = srow.grade || (crow === null || crow === void 0 ? void 0 : crow.grade) || ''; 3090 var ns = tslib_1.__spreadArray([], state, true); 3091 var _loop_5 = function (foreignlang, foreignlang_type, gradefrom, de_ger) { 3092 if (foreignlang && !ns.find(function (s) { return s.foreignlang == foreignlang; })) { 3093 ns.push({ 3094 foreignlang: foreignlang, 3095 foreignlang_type: foreignlang_type, 3096 gradefrom: gradefrom, 3097 gradeto: gradeto, 3098 de_ger: de_ger 3099 }); 3100 } 3101 }; 3102 for (var _i = 0, _a = [ 3103 [srow.foreignlang1, srow.foreignlang1_type, '5', 'B1'], 3104 [srow.foreignlang2, srow.foreignlang2_type, '7', 'B1'], 3105 [srow.foreignlang3, srow.foreignlang3_type, '', ''], 3106 [srow.foreignlang4, srow.foreignlang4_type, '', ''], 3107 ]; _i < _a.length; _i++) { 3108 var _b = _a[_i], foreignlang = _b[0], foreignlang_type = _b[1], gradefrom = _b[2], de_ger = _b[3]; 3109 _loop_5(foreignlang, foreignlang_type, gradefrom, de_ger); 3110 } 3111 stateRef.set(ns); 3112 } }) }, 3113 React.createElement(subtableinput_1.default, { dataRef: stateRef, dbiColumn: dbiColumn, compactView: true, idcol: 'foreignlang', fitWidth: true, style: { 3114 height: 200 3115 }, cols: [ 3116 { key: 'foreignlang', width: 100 }, 3117 { key: 'foreignlang_type', width: 100 }, 3118 { key: 'gradefrom', width: 50 }, 3119 { key: 'gradeto', width: 50 }, 3120 { key: 'de_ger', width: 50, formatter: function (_a) { 3121 var row = _a.row; 3122 return row.de_ger; 3123 } },
3124 ], editCols: [ 3125 'foreignlang', 3126 'foreignlang_type', 3127 'gradefrom', 3128 'gradeto', 3129 { key: 'de_ger', name_col: 'IDN' }, 3130 ] })); 3131 }; 3132 return [4, asc_react_1.RDialog.show(React.createElement(De_fsnInput, null))]; 3133 case 1: 3134 if (!(_a.sent())) 3135 return [2]; 3136 valueRef.set(res); 3137 return [2]; 3138 } 3139 }); 3140 }); } }); 3141} 3142function StudentVysetreniaField(props) { 3143 var req = edurequest_1.client_req; 3144 var valueRef = props.valueRef, dbi = props.dbi, row = props.row; 3145 var readonly = !valueRef.set; 3146 var value = valueRef.value || []; 3147 var cz_school_druhy = student_cz_school_druhy(dbi, props.row || {}); 3148 var cd = dbi.column('studentkopias', 'sk_vysetrenia'); 3149 var scds = cd.subcolumns || []; 3150 var allow_PSD = cz_school_druhy.includes('Z'); 3151 if (cz_school_druhy.includes('S')) { 3152 var crow = dbi.rowData('classes', row.classid, {}); 3153 if (['60', '80'].includes(crow.cz_matrika_DELST)) 3154 allow_PSD = true; 3155 } 3156 var druhCombo = null; 3157 for (var _i = 0, scds_3 = scds; _i < scds_3.length; _i++) { 3158 var r = scds_3[_i]; 3159 if (r.id == 'sk_druh_vysetrenia') { 3160 druhCombo = r.combo(); 3161 } 3162 } 3163 function showItem(e) { 3164 return tslib_1.__awaiter(this, void 0, void 0, function () { 3165 var ind, obj, sorted; 3166 return tslib_1.__generator(this, function (_a) { 3167 switch (_a.label) { 3168 case 0: 3169 ind = e.currentTarget.getAttribute('data-ind'); 3170 if ($(e.target).closest('button').length > 0) 3171 return [2]; 3172 obj = ind ? valueRef.value[ind] : { sk_druh_vysetrenia: '1', date: (new Date()).format('Y-m-d') }; 3173 _a.label = 1; 3174 case 1: return [4, asc_react_1.RDialog.showInput(obj, function (_a) { 3175 var stateRef = _a.stateRef; 3176 return (React.createElement("div", null, 3177 React.createElement("div", { style: { background: '#eee', padding: '0.5em 1em', margin: '-0.5em -1em 1em -1em' } }, 3178 React.createElement("b", { style: { fontSize: '1.5em' } }, 3179 row.firstname, 3180 " ", 3181 row.lastname)), 3182 React.createElement("div", { className: "agenda-dbifield-outer" }, 3183 React.createElement("div", { className: 'agenda-dbifield-label' }, 3184 React.createElement(asc_react_1.RLabel, { text: cd.subcolumn('date').name(), style: { width: 'auto', display: 'block', padding: 0, whiteSpace: 'inherit' } })), 3185 React.createElement("div", { className: 'agenda-dbifield-field' }, readonly 3186 ? React.createElement("span", { className: 'agenda-dbifield-readonly' }, cd.subcolumn('date').textValue(stateRef.sub('date').value)) 3187 : React.createElement(datefield_1.default, { valueRef: stateRef.sub('date') }))), 3188 React.createElement("div", { className: "agenda-dbifield-outer" }, 3189 React.createElement("div", { className: 'agenda-dbifield-label' }, 3190 React.createElement(asc_react_1.RLabel, { text: cd.subcolumn('sk_druh_vysetrenia').name(), style: { width: 'auto', display: 'block', padding: 0, whiteSpace: 'inherit' } })), 3191 React.createElement("div", { className: 'agenda-dbifield-field' }, readonly 3192 ? React.createElement("span", { className: 'agenda-dbifield-readonly' }, cd.subcolumn('sk_druh_vysetrenia').textValue(stateRef.sub('sk_druh_vysetrenia').value)) 3193 : React.createElement(combobox_1.default, { valueRef: stateRef.sub('sk_druh_vysetrenia'), items: druhCombo }))), 3194 React.createElement("div", { className: "agenda-dbifield-outer" }, 3195 React.createElement("div", { className: 'agenda-dbifield-label' }, 3196 React.createElement(asc_react_1.RLabel, { text: cd.subcolumn('physicianid').name(), style: { width: 'auto', display: 'block', padding: 0, whiteSpace: 'inherit' } })), 3197 React.createElement("div", { className: 'agenda-dbifield-field' }, readonly 3198 ? React.createElement("span", { className: 'agenda-dbifield-readonly' }, cd.subcolumn('physicianid').textValue(stateRef.sub('physicianid').value)) 3199 : React.createElement(combobox_1.default, { valueRef: stateRef.sub('physicianid'), items: cd.subcolumn('physicianid').combo() }))), 3200 React.createElement("div", { className: "agenda-dbifield-outer agenda-label-valign-top" }, 3201 React.createElement("div", { className: 'agenda-dbifield-label' }, 3202 React.createElement(asc_react_1.RLabel, { text: cd.subcolumn('text').name(), style: { width: 'auto', display: 'block', padding: 0, whiteSpace: 'inherit' } })), 3203 React.createElement("div", { className: 'agenda-dbifield-field ' }, readonly 3204 ? React.createElement("span", { className: 'agenda-dbifield-readonly' }, cd.subcolumn('text').textValue(stateRef.sub('text').value)) 3205 : React.createElement(asc_react_1.RTextArea, { valueRef: stateRef.sub('text'), autoSize: true }))), 3206 React.createElement("div", { className: "agenda-dbifield-outer" }, 3207 React.createElement("div", { className: 'agenda-dbifield-label' }, 3208 React.createElement(asc_react_1.RLabel, { text: cd.subcolumn('rediagnosis').name(), style: { width: 'auto', display: 'block', padding: 0, whiteSpace: 'inherit' } })), 3209 React.createElement("div", { className: 'agenda-dbifield-field' }, readonly 3210 ? React.createElement("span", { className: 'agenda-dbifield-readonly' }, cd.subcolumn('rediagnosis').textValue(stateRef.sub('rediagnosis').value)) 3211 : React.createElement(datefield_1.default, { valueRef: stateRef.sub('rediagnosis') }))))); 3212 }, { 3213 width: 500, 3214 header: cd.name() 3215 })]; 3216 case 2: 3217 obj = _a.sent(); 3218 if (readonly) 3219 return [2]; 3220 if (!obj) 3221 return [2]; 3222 if (!obj.date || !obj.sk_druh_vysetrenia) { 3223 return [3, 3]; 3224 } 3225 return [3, 4]; 3226 case 3: return [3, 1]; 3227 case 4: 3228 if (obj) { 3229 sorted = valueRef.value.map(function (r) { return r; }); 3230 if (ind === '') { 3231 sorted.push(obj); 3232 } 3233 else { 3234 sorted[ind] = obj; 3235 } 3236 sorted.sort(function (a, b) { 3237 if (a.date > b.date) 3238 return 1; 3239 if (a.date < b.date) 3240 return -1; 3241 return (a.text || "").localeCompare(b.text || ""); 3242 }); 3243 valueRef.set(sorted); 3244 } 3245 return [2]; 3246 } 3247 }); 3248 }); 3249 } 3250 function removeItemClick(e) { 3251 var ind = e.currentTarget.getAttribute('data-ind'); 3252 barShowMessageBox(req.ls(4013), 'fa-question', { 3253 confirm: function () { 3254 var sorted = valueRef.value.map(function (r) { return r; }); 3255 sorted.splice(ind, 1); 3256 valueRef.set(sorted); 3257 } 3258 }); 3259 } 3260 return (React.createElement("div", { className: 'agenda-dbifield-multiitems', style: { margin: '-4px 0 4px 0' } }, 3261 value.map(function (o, i) { 3262 var _a; 3263 var s = (0, lib_date_1.date_format_date)(req, o.date); 3264 var ss = []; 3265 var druh = (_a = druhCombo.find(function (e) { return e.value == o.sk_druh_vysetrenia; })) === null || _a === void 0 ? void 0 : _a.name; 3266 if (druh) { 3267 ss.push(druh); 3268 } 3269 if (o.text) 3270 ss.push(o.text); 3271 if (ss.length) 3272 s += ': ' + ss.join(' · '); 3273 return React.createElement("div", { className: 'agenda-dbifield-multi-item large fw', key: i, onClick: showItem, "data-ind": i, style: { display: 'flex', flexFlow: 'row nowrap' } }, 3274 React.createElement("div", { style: { flex: '90px 0 0' } }, (0, lib_date_1.date_format_date)(req, o.date)), 3275 React.createElement("div", { style: { flex: '40% 1 1' } }, 3276 React.createElement("b", null, druh), 3277 o.text && druh ? ': ' + o.text : o.text, 3278 o.rediagnosis ? ' (rediagnostika: ' + (0, lib_date_1.date_format_date)(req, o.rediagnosis) + ')' : ''), 3279 !readonly && (React.createElement("div", { style: { flex: 'auto 0 0', margin: '-8px -8px -8px 0' } }, 3280 React.createElement("button", { className: 'agenda-link-button', title: "Odobra\u0165", onClick: removeItemClick, "data-ind": i }, 3281 React.createElement("i", { className: 'fa fa-fw fa-tras
3281h' }))))); 3282 }), 3283 value.length == 0 && (React.createElement("div", { style: { flex: '100% 1 1', opacity: 0.5, marginBottom: '8px' } }, "Zatia\u013E nie je evidovan\u00E9 \u017Eiadne vy\u0161etrenie")), 3284 !readonly && (React.createElement("div", { className: 'agenda-dbifield-multi-item large', onClick: showItem, "data-ind": "", style: { marginTop: '8px' } }, 3285 React.createElement("i", { className: 'fa fa-fw fa-plus' }), 3286 " ", 3287 req.ls(1257))))); 3288} 3289function StudentDotacieField(props) { 3290 var valueRef = props.valueRef, dbi = props.dbi, row = props.row, year = props.year; 3291 return (React.createElement(subtableinput_1.SubTableInputEx, { dataRef: valueRef, hideHeader: true, dbiColumn: dbi.column('studentkopias', 'sk_dotacie'), idcol: 'id', style: { height: 'auto' }, fitWidth: true, onValidate: function (r) { 3292 var _a, _b; 3293 if (!r.subsidy_type) { 3294 ASC.flashMessage('VyplÅte prosÃm typ dotácie'); 3295 return false; 3296 } 3297 if (!r.amount) { 3298 ASC.flashMessage('Zadajte prosÃm sumu'); 3299 return false; 3300 } 3301 if (!r.year) { 3302 ASC.flashMessage('VyplÅte prosÃm Å¡kolský rok'); 3303 return false; 3304 } 3305 if (((_b = (_a = valueRef.value) === null || _a === void 0 ? void 0 : _a.filter(function (r0) { return r0.subsidy_type == r.subsidy_type && r0.id != r.id; })) === null || _b === void 0 ? void 0 : _b.length) > 0) { 3306 ASC.flashMessage('Zvolený typ dotácie už žiak má pridelený'); 3307 return false; 3308 } 3309 return true; 3310 }, blank: { year: year }, cols: [ 3311 { key: 'subsidy_type', width: 220 }, 3312 { key: 'year', width: 120 }, 3313 { key: 'amount', width: 170, formatter: function (_a) { 3314 var row = _a.row; 3315 return row.amount ? row.amount.toFixed(2) + ' â¬' : '-'; 3316 } }, 3317 ], onSort: function (val) { return val.sort(function (a, b) { return a.year - b.year; }); }, onItemChange: function (val, prev) { 3318 if (val.subsidy_type == 'svp' && prev.subsidy_type != val.subsidy_type) 3319 val.amount = 100; 3320 if (val.subsidy_type == 'lvvk2' && prev.subsidy_type != val.subsidy_type) 3321 val.amount = 150; 3322 if (val.subsidy_type == 'lvvk3' && prev.subsidy_type != val.subsidy_type) 3323 val.amount = 150; 3324 return val; 3325 } })); 3326} 3327exports.StudentDotacieField = StudentDotacieField; 3328function StudentStipendiaField(props) { 3329 var req = edurequest_1.client_req; 3330 var valueRef = props.valueRef, dbi = props.dbi, row = props.row, year = props.year; 3331 var dbiColumn = dbi.column('studentkopias', 'sk_stipendia'); 3332 function onEditRow(row) { 3333 return tslib_1.__awaiter(this, void 0, void 0, function () { 3334 var _i, _a, sc, c; 3335 return tslib_1.__generator(this, function (_b) { 3336 if (!row) { 3337 row = { year: year }; 3338 for (_i = 0, _a = dbiColumn.subcolumns; _i < _a.length; _i++) { 3339 sc = _a[_i]; 3340 c = sc.id; 3341 if (row[c] === undefined) 3342 row[c] = sc.blank(); 3343 } 3344 } 3345 return [2, asc_react_1.RDialog.showInput(row, function (_a) { 3346 var stateRef = _a.stateRef; 3347 var editCols = stateRef.value["scholarship_type"] == '4' 3348 ? [{ key: 'scholarship_type' }, { key: 'date_pregnancy_end', label: 'Dátum skonÄenia tehotenstva' }, { key: 'account_number' }, { key: 'date' }, { key: 'amount_1', label: 'Suma v â¬' }] 3349 : [{ key: 'scholarship_type' }, { key: 'year' }, { key: 'amount_1', label: 'Suma v ⬠za 1.polrok' }, { key: 'amount_2', label: 'Suma v ⬠za 2.polrok' }]; 3350 return (React.createElement("div", null, editCols.map(function (ec) { 3351 ec = tslib_1.__assign({}, ec); 3352 var ecd = dbiColumn.subcolumn(ec.key); 3353 return React.createElement(React.Fragment, { key: ec.key }, 3354 React.createElement("div", { className: "agenda-dbifield-outer" }, 3355 React.createElement("div", { className: 'agenda-dbifield-label' }, 3356 React.createElement(asc_react_1.RLabel, { text: ec.label || ecd.name() })), 3357 React.createElement("div", { className: 'agenda-dbifield-field' }, 3358 React.createElement(dbi_react_1.DBIColumnField, { dbiColumn: ecd, valueRef: stateRef.sub(ec.key), name_col: ec.name_col })))); 3359 }))); 3360 }, { width: 400, header: dbiColumn.name() })]; 3361 }); 3362 }); 3363 } 3364 return (React.createElement(subtableinput_1.SubTableInputEx, { dataRef: valueRef, hideHeader: true, dbiColumn: dbi.column('studentk
3364opias', 'sk_stipendia'), idcol: 'id', style: { height: 'auto' }, fitWidth: true, onEditRow: onEditRow, onValidate: function (r) { 3365 if (!r.scholarship_type) { 3366 ASC.flashMessage('VyplÅte prosÃm typ Å¡tipendia'); 3367 return false; 3368 } 3369 if (!r.year) { 3370 ASC.flashMessage('VyplÅte prosÃm Å¡kolský rok'); 3371 return false; 3372 } 3373 return true; 3374 }, blank: { year: year }, onSort: function (val) { return val.sort(function (a, b) { return a.year - b.year; }); }, cols: [ 3375 { key: 'scholarship_type', width: 220 }, 3376 { key: 'year', width: 120, formatter: function (_a) { 3377 var row = _a.row; 3378 return row.scholarship_type == '4' ? (0, lib_date_1.date_format_date)(req, row.date) : req.getSchoolYearName(row.year); 3379 } }, 3380 { key: 'amount_1', width: 80, formatter: function (_a) { 3381 var row = _a.row; 3382 return row.amount_1 ? row.amount_1.toFixed(2) + ' â¬' : '-'; 3383 } }, 3384 { key: 'amount_2', width: 80, formatter: function (_a) { 3385 var row = _a.row; 3386 return row.amount_2 ? row.amount_2.toFixed(2) + ' â¬' : '-'; 3387 } }, 3388 { key: 'account_number', width: 170 }, 3389 ] })); 3390} 3391exports.StudentStipendiaField = StudentStipendiaField; 3392function SkPostihnutiaInput(props) { 3393 var valueRef = props.valueRef, dbiColumn = props.dbiColumn; 3394 var combo = React.useMemo(function () { 3395 var _a; 3396 var combo = []; 3397 for (var _i = 0, _b = dbiColumn.combo(); _i < _b.length; _i++) { 3398 var c = _b[_i]; 3399 if (Array.isArray(c)) { 3400 combo.push(c); 3401 continue; 3402 } 3403 if (c.hidden && !((_a = valueRef.value) === null || _a === void 0 ? void 0 : _a.includes(c.value))) 3404 continue; 3405 var text_r = ''; 3406 if (c['ris']) 3407 text_r = 'RIS'; 3408 combo.push(tslib_1.__assign(tslib_1.__assign({}, c), { _react: React.createElement(React.Fragment, null, 3409 text_r && React.createElement("span", { style: { float: 'right', marginLeft: 20, color: 'green' } }, text_r), 3410 c.name) })); 3411 } 3412 return combo; 3413 }, [dbiColumn]); 3414 return React.createElement(comboboxmulti_1.default, { valueRef: valueRef, items: combo }); 3415} 3416exports.SkPostihnutiaInput = SkPostihnutiaInput; 3417function onEditNextSchool(params) { 3418 return tslib_1.__awaiter(this, void 0, void 0, function () { 3419 var year; 3420 return tslib_1.__generator(this, function (_a) { 3421 year = params.year; 3422 return [2, asc_react_1.RDialog.showInput(params.row, function (_a) { 3423 var stateRef = _a.stateRef; 3424 return React.createElement(NextSchoolInput, { valueRef: stateRef, year: year }); 3425 }, { width: 500 })]; 3426 }); 3427 }); 3428} 3429function getNinDetails(req, nin) { 3430 if (nin && ASC.validatorRC(nin)) { 3431 if (['cz', 'sk'].includes(req.school_country)) { 3432 var bd = nin.substr(0, 2) >= '30' ? '19' : '20'; 3433 bd += nin.substr(0, 2); 3434 bd += '-'; 3435 bd += nin[2].replace('5', '0').replace('6', '1') + nin[3]; 3436 bd += '-'; 3437 bd += nin.substr(4, 2); 3438 var gender = { 0: 'M', 1: 'M', 5: 'F', 6: 'F' }[nin[2]]; 3439 return { 3440 birthdate: bd, 3441 gender: gender 3442 }; 3443 } 3444 if (req.school_country == 'se') { 3445 var bd = (nin.substring(0, 2) >= '30' ? '19' : '20') 3446 + nin.substring(0, 2) 3447 + '-' 3448 + nin.substring(2, 4) 3449 + '-' 3450 + nin.substring(4, 6); 3451 var bn = nin.replace("-", "").substring(6, 9); 3452 var genderDigit = bn && parseInt(bn) > 0 ? parseInt(bn.substring(2)) : null; 3453 return { 3454 birthdate: bd, 3455 gender: genderDigit ? (genderDigit % 2 == 1 ? 'M' : 'F') : null 3456 }; 3457 } 3458 } 3459} 3460exports._hotswap = [ 3461 ParentInput, 3462 CzHealthinput, 3463 StudentDlg, 3464 RozhodnutiaTab, 3465];
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.