{# Template For UG Students In STHOMAS Collagees  #}
<style>
     td, th { padding: 5px; }
     body{
        font-family: \"Times New Roman\", Times, serif; 
    }
     @media print {
        #printBtnDiv { display : none !important; }
    }
	.primary-table {
		border-collapse: collapse !important;
		page-break-inside: auto;
		width: 100% !important;
	}

	.primary-table th {
		text-align: center;
		background: none !important;
		height: 4mm !important;
		border: 1px solid #000 !important;
		padding: 1mm !important;
	}
	.primary-table td {
		padding: 3px;
		line-height: 20px !important;
		height: 4mm !important;
		border: 1px solid #000;
		text-align: center;
		vertical-align: middle !important;
	}
	#subjectHeader {
		width: 100% !important;
	}
	#subjectHeader td {
		padding: 2mm;
		line-height: 15px !important;
		height: 4mm !important;
		vertical-align: middle !important;
		text-align: center !important;
	}
	.no-border {
		border-left: 1px solid #fff !important;
		border-right: 1px solid #fff !important;
		border-top: 1px solid #fff !important;
        border-bottom: 1px solid #fff !important;
	}
    .college-header {
		height: 35mm;
		width: auto;
		margin: 0 10%;
	}
    .text-left{
        text-align:left!important;
    }
    .text-center{
        text-align:center!important;
    }
    .text-right{
        text-align:right!important;
    }
    .p-t-20{
        padding-top:10px!important;
    }
	.p-t-50{
        padding-top:50px!important;
    }
	
    .p-b-10p-b-10{
        padding-bottom:10px!important;
    }
    .p-20{
        padding:20px!important;
    }
    .outer-border {
        border: 1px solid black;
        border-collapse: collapse;
    }
    .center {
        margin-left: auto;
        margin-right: auto;
    }
    .abbr-table td{
        padding: 2mm 10mm 2mm 10mm;
		line-height: 14px !important;
		margin-top:5mm;
    }
	.tabular-table {
		border-collapse: collapse !important;
		page-break-inside: auto;
		page-break-before:always;
		width: 100% !important;
	}

	.tabular-table th {
		text-align: center;
		background: none !important;
		height: 5mm !important;
		/* border: 1px solid #000 !important; */
		padding: 2mm !important;
		font-size:15px !important;
	}
	.tabular-table-border{
		border: 1px solid #000 !important;
        padding:7px !important;
	}
	.tabular-table td {
		padding: 4px;
		line-height: 20px !important;
		height: 6mm !important;
		border: 1px solid #000;
		text-align: center;
		vertical-align: middle !important;
		font-size: 14px !important;
		/* page-break-after:always; */
	}
	.tabular-table tr{
		/* page-break-after:always; */
		height: 8mm !important;
	}
	.small-font{
		font-weight: normal !important;
		font-size: 13px !important;
	}
	.failed{
		background-color:#c0c0c0 !important;
	}
    
</style>
    <div class="page" style="width:100%;">
    <table id="subjectHeader">
        <tr style="padding-top:300px!important">
			<td><img src="{{data.collegeData.collegeHeader}}" class="college-header"></td>
		</tr>
        <tr>
			<td><b style="font-size: 18px;">{{data.examRegistrationData.name}}</br></td>
		</tr>
        <tr>
			<td><b style="font-size: 18px;">TABULATION REGISTER</br></td>
		</tr>
    </table>
    <table style="width:100%!important;">
        <tr>
            <th data-f-bold='true' class="text-left" width="15%" style="padding: 2px !important;">Programme : </th>
            <th data-f-bold='true' class="text-left" width="85%" style="padding: 2px !important;">{{data.examRegistrationData.programName| raw}}</th>
        </tr>
        <tr>
            <th data-f-bold='true' class="text-left" width="15%" style="padding: 2px !important;">Date Of Publication of Result : </th>
            <th data-f-bold='true' class="text-left" width="85%" style="padding: 2px !important;">{{data.examRegistrationData.resultPublishDate}}</th>
        </tr>
        <tr>
            <th data-f-bold='true' class="text-left" width="15%" style="padding: 2px !important;">Month & Year :</th>
            <th data-f-bold='true' class="text-left" width="85%" style="padding: 2px !important;">{{data.examRegistrationData.examMonthName}} {{data.examRegistrationData.examYear}}</th>
        </tr>
    </table>
    <br>
    <br>
    <table style="width:100%!important;">
        <tr>
            <th data-f-bold='true' class="text-center" style="padding: 2px !important;">Board Meeting Held on : {{data.examRegistrationData.boardMeatingDate| raw}}</th>
        </tr>
        <tr>
            <th data-f-bold='true' class="text-center" style="padding: 2px !important;">Result Published on : {{data.examRegistrationData.resultPublishDate| raw}}</th>
        </tr>
        <tr>
            <th data-f-bold='true' class="text-center" style="padding: 2px !important;">Moderation : {{data.examRegistrationData.moderation}} </th>
        </tr>
    </table>
    <br>
    <br>
    <!-- start index tables   -->
    {% set subject_count = data.examRegistrationData.subjects|length %}
    {% set split_table = subject_count > 20 %}
    {% set mid_index = (subject_count // 2) + (subject_count is odd ? 1 : 0) %}
    
    {% macro render_subjects(subjects) %}
        {% for subject in subjects %}
            <tr>
                <td class="text-left">{{ subject.code | raw }}</td>
                <td class="text-left">{{ subject.name | raw }}</td>
                <td>{{ subject.credit }}</td>
                <td>{{ subject.internalMaxMark }}</td>
                <td>{{ subject.externalMaxMark }}</td>
                <td>{{ subject.totalMarks }}</td>
            </tr>
        {% endfor %}
    {% endmacro %}
    
    {% macro render_table(subjects) %}
        <table class="primary-table" style="width: 100%;">
            <tr>
                <th data-f-bold='true' style="width:15%" rowspan="2">Course Code</th>
                <th data-f-bold='true' style="width:45%" rowspan="2">Course</th>
                <th data-f-bold='true' style="width:10%" rowspan="2">Credit</th>
                <th data-f-bold='true' style="width:30%" colspan="3">Max Marks</th>
            </tr>
            <tr>
                <th data-f-bold='true' style="width:5%">IA</th>
                <th data-f-bold='true' style="width:5%">ESE</th>
                <th data-f-bold='true' style="width:5%">Total</th>
            </tr>
            {{ _self.render_subjects(subjects) }}
        </table>
    {% endmacro %}
    
    {% if split_table %}
        <div style="width: 100%; overflow: hidden;">
            <div style="float: left; width: 48%;">
                {{ _self.render_table(data.examRegistrationData.subjects[:mid_index]) }}
            </div>
            <div style="float: right; width: 48%;">
                {{ _self.render_table(data.examRegistrationData.subjects[mid_index:]) }}
            </div>
        </div>
    {% else %}
        {{ _self.render_table(data.examRegistrationData.subjects) }}
    {% endif %}
    
    <!-- end index table -->

    <br>
    <table class="primary-table center" style="width:20%!important;">
        <tr>
            <td><b>Total Credit :</b></td>
            <td><b>{{data.examRegistrationData.totalCredit}}</b></td>
        </tr>
    </table>
    <br>
    <table class="center outer-border abbr-table" style="width:60%!important;">

        <tr>
            <td class="text-center" colspan="3"><b>Abbreviations :</b></td>
        </tr>
        <tr>
            <td class="text-left">C => Credit</td>
            <td class="text-left">P => Practical</td>
            <td class="text-left">AB => ABSENT</td>
        </tr>
        <tr>
            <td class="text-left">T => Theory</td>
            <td class="text-left">D => Project / Dissertation</td>
            <td class="text-left">V => Viva</td>
        </tr>
        <tr>
            <td class="text-left">IA => Internal Mark</td>
            <td class="text-left">G => Grade</td>
            <td class="text-left">IC => Incomplete</td>
        </tr>
        <tr>
            <td class="text-left">Tot => Total Marks</td>
            <td class="text-left">ESE => External Mark</td>
            <td class="text-left">EC => Exam Cancelled</td>
        </tr>
        <tr>    
            <td class="text-left">CP => Credit Point</td> 
            <td class="text-left">GP => Grade Point</td>  
            <td></td>
        </tr>
    </table>
    <br>
    
{# start tabulation register #}
    <table id="subjectHeader" style="page-break-before: always">
        {# <tr style="padding-top:300px!important">
            <td><img src="{{data.collegeData.collegeHeader}}" class="college-header"></td>
        </tr> #}
        <tr>
            <td><b style="font-size: 18px;">{{data.examRegistrationData.name}}</br></td>
        </tr>
        <tr>
            <td><b style="font-size: 18px;">TABULATION REGISTER</br></td>
        </tr>
    </table>
    <table style="width:100%!important;">
        <tr>
            <th data-f-bold='true' class="text-left">Programme : {{data.examRegistrationData.programName| raw}}</th>
            <th data-f-bold='true' class="text-right">&nbsp;</th>
        </tr>
        <tr>
            <th data-f-bold='true' class="text-left">Academic Year :  {{data.examRegistrationData.academicExamYear}} </th>
            <th data-f-bold='true' class="text-right">Date Of Publication : {{data.examRegistrationData.resultPublishDate}}</th>
        </tr>
        {% if data.displayContentOptions.rules.EnableBoardMeetingShow %}
        <tr>
            <th data-f-bold='true' class="text-left">Board Meeting Held on : {{data.examRegistrationData.boardMeatingDate}}</th>
            <th data-f-bold='true' class="text-right">&nbsp;</th>
        </tr>
        {% endif %}
        
    </table>
    {% set updatedPaperSubjectIds = [] %}
    {% set updatedPaperSubjectIdsForHead = [] %}
    {% set slno = 0 %}
    {% for subjectGroups in data.examRegistrationData.subjectGroups %}
        {% set pageCount = 0 %}
        {% for studentDataChunk in data.studentDataChunks %}
            {% if pageCount == 0 %}
                <table class="tabular-table" id="tabulationRegisterReportExcel" style="width:100%!important; page-break-before: avoid !important">
            {% else %}
                <table class="tabular-table" id="tabulationRegisterReportExcel" style="width:100%!important; page-break-before: always !important">
            {% endif %}
            {% set pageCount = 1 %}
            <thead>
                <tr>
                    {% if data.isPrint == false and data.displayContentOptions.printForSelectedStudents == 1 %}
                        <th data-f-bold='true' data-exclude="true" class="tabular-table-border sticky-column sticky-column-1 sticky-header" style="width:2%" rowspan="2">Select</th>
                    {% endif %}
                    <th data-f-bold='true' data-exclude="true" class="tabular-table-border" style="width:2%" rowspan="2">Sl No.</th>
                    <th data-f-bold='true' class="tabular-table-border" style="width:10%" rowspan="2">Name & Register Number</th>
                    {% set haslang = 0 %}
                    <!--tag3-->
                    {% for subject in subjectGroups %}
                        {% set colspan = 6 %}
                        {% if data.displayContentOptions.rules.showModerationMark %}
                        {% set colspan = colspan + 1 %}
                        {% endif %}
                        {% if data.displayContentOptions.rules.showGraceMark %}
                        {% set colspan = colspan + 1 %}
                        {% endif %}
                        <th data-f-bold='true' class="tabular-table-border text-center" colspan="{{colspan}}" style="width:20%">
                        {% if subject.isGrouped == true %}{{subject.name |raw}}{%else%} {{subject.subjectNameToDisplay | raw}} {% endif %}
                            <br><span class="small-font">Credit : {{subject.credit}}</span><!--subject_tag--> <!--subjectHead_tag-->
                            <br><span class="small-font" style="float:left;">INT Max - {{subject.internalMaxMark}}</span>
                            <span class="small-font" style="float:right;">EXT Max - {{subject.externalMaxMark}}</span>
                        </th> 
                    {% endfor %}
                    <th data-f-bold='true' class="tabular-table-border text-center" style="width:2%" rowspan="2">Total Credit Points</th>
                    <th data-f-bold='true' class="tabular-table-border text-center" style="width:2%" rowspan="2">SGPA </th>
                    <th data-f-bold='true' class="tabular-table-border text-center" style="width:1%" rowspan="2">Grade </th>
                    <th data-f-bold='true' class="tabular-table-border text-center" style="width:1%" rowspan="2">Remarks </th>
                </tr>
                <tr>
                    {% for subject in subjectGroups %}
                        {% if data.displayContentOptions.rules.showModerationMark %}
                        <th data-f-bold='true' class="tabular-table-border text-center" style="width:1%">MDN</th>
                        {% endif %}
                        {% if data.displayContentOptions.rules.showGraceMark %}
                        <th data-f-bold='true' class="tabular-table-border text-center" style="width:1%">GRM</th>
                        {% endif %}
                        <th data-f-bold='true' class="tabular-table-border text-center" style="width:1%">Int</th>
                        <th data-f-bold='true' class="tabular-table-border text-center" style="width:1%">Ext</th>
                        <th data-f-bold='true' class="tabular-table-border text-center" style="width:1%">Tot</th>
                        <th data-f-bold='true' class="tabular-table-border text-center" style="width:1%">GR</th>
                        <th data-f-bold='true' class="tabular-table-border text-center" style="width:1%">GP</th>
                        <th data-f-bold='true' class="tabular-table-border text-center" style="width:1%">CP</th>
                    {% endfor %} 
                <!--tag2-->
                </tr>
            <!--tag1-->
            </thead>
            <!--tag1-->
            <!--tag1-->
                {% for student in studentDataChunk %}
                    <tr>
                    <!--tag2-->
                        {% set academicTerm = student.academicTerms |first %}
                        {% if data.isPrint == false and data.displayContentOptions.printForSelectedStudents == 1%}
                        <td data-exclude="true" rowspan="2" class="text-center tabular-table-border text-center tabular-table-border sticky-column sticky-column-1"><input type="checkbox" class="studentName" value='{{student.id}}'/></td>
                        {% endif %}
                        {% set slno = slno + 1 %}
                        <td data-exclude="true" class="text-center tabular-table-border" rowspan='2'>{{slno}}</td>
                        <td class="text-center tabular-table-border" rowspan='2' style="font-size:18px !important;">{{student.name}} <br> {{student.registerNo}}</td>
                        {% set langcount = 0 %}
                        {% set displayHeadCount = 0 %}
                        {% set displayHeadTag3Display = displayHeadCount %}
                        {% for subject in subjectGroups %}
                            {% set isEntered = false %}
                            {% set isEnteredGroup = false %}
                            {% for studentSubject in academicTerm.subjects %}
                                {% if studentSubject.id in subject.academicPaperSubjectIds and isEnteredGroup == false %}
                                    {% set subjectKey = studentSubject.id ~ '-' ~ student.id %}
                                    {% if subjectKey not in updatedPaperSubjectIdsForHead %}
                                        {% set updatedPaperSubjectIdsForHead = updatedPaperSubjectIdsForHead|merge([subjectKey]) %}
                                        <!--subject_tag-->
                                        {% set displayHeadCount = displayHeadCount + 1 %}
                                        <td class="tabular-table-border text-center" colspan="6" style="padding:5px">{{studentSubject.code}}</td>
                                        {% set isEnteredGroup = true %}
                                        {% set isEntered = true %}
                                    {% endif %}
                                {% endif %}
                            {% endfor %}
                            {% if isEntered == false %}
                                <td class="tabular-table-border text-center" colspan="6" style="padding:10px"></td>
                            {% endif %}
                        {% endfor %}
                            <td class="tabular-table-border text-center" rowspan='2'>{{academicTerm.failedStatus == 'PASSED' ? academicTerm.semesterCreditGradePoint : '-'}}</td>
                            <td class="tabular-table-border text-center" rowspan='2'>{{academicTerm.failedStatus == 'PASSED' ?  academicTerm.semesterSgpa|number_format(student.roundOff, '.') : '-' }}</td>
                            <td class="tabular-table-border text-center" rowspan='2'>{{academicTerm.failedStatus == 'PASSED' ?  academicTerm.semesterGrade : '-' }}</td>
                            <td class="tabular-table-border text-center" rowspan='2'></td>
                    </tr>
                    <tr>
                    <!--tag2-->
                        {% set academicTerm = student.academicTerms |first %}
                        {% set langcount = 0 %}
                        {% set displayHeadCount = 0 %}
                        {% set displayHeadTag3Display = displayHeadCount %}
                    <!--tag3-->
                        {% for subject in subjectGroups %}
                            {% set isEntered = false %}
                            {% set isEnteredGroup = false %}
                            {% for studentSubject in academicTerm.subjects %}
                                {% if studentSubject.id in subject.academicPaperSubjectIds and isEnteredGroup == false %}
                                    {% set subjectKey = studentSubject.id ~ '-' ~ student.id %}
                                    {% if subjectKey not in updatedPaperSubjectIds %}
                                        {% set updatedPaperSubjectIds = updatedPaperSubjectIds|merge([subjectKey]) %}
                                        <!--subject_tag-->
                                        {% set displayHeadCount = displayHeadCount + 1 %}
                                        {% if studentSubject.attendanceStatus != "PRESENT" and studentSubject.isExternal %}
                                            {% if data.displayContentOptions.rules.showModerationMark %}
                                            <td class="failed tabular-table-border text-center">{{studentSubject.moderationMark ? studentSubject.moderationMark | round:'0' }}</td>
                                            {% endif %}
                                            {% if data.displayContentOptions.rules.showGraceMark %}
                                            <td class="failed tabular-table-border text-center">{{studentSubject.graceMark ? studentSubject.graceMark | round:'0'}}</td>
                                            {% endif %}
                                            <td class="failed tabular-table-border text-center">{{studentSubject.isInternal? studentSubject.internalMark : '-'}}</td>
                                            <td class="failed tabular-table-border text-center">{{ studentSubject.attendanceStatus == "MALPRACTICE" ? "MAL" : "AB"}}</td>
                                            <td class="failed tabular-table-border text-center">{{studentSubject.markObtained}}</td>
                                            <td class="failed tabular-table-border text-center">-</td>
                                            <td class="failed tabular-table-border text-center">-</td>
                                            <td class="failed tabular-table-border text-center">-</td>
                                        {% elseif studentSubject.failedStatus == 'FAILED' %}
                                            {% if data.displayContentOptions.rules.showModerationMark %}
                                            <td class="failed tabular-table-border text-center">{{studentSubject.moderationMark ? studentSubject.moderationMark | round:'0' }}</td>
                                            {% endif %}
                                            {% if data.displayContentOptions.rules.showGraceMark %}
                                            <td class="failed tabular-table-border text-center">{{studentSubject.graceMark ? studentSubject.graceMark | round:'0'}}</td>
                                            {% endif %}
                                            <td class="failed tabular-table-border text-center">{{studentSubject.isInternal? studentSubject.internalMark : '-'}}</td>
                                            <td class="failed tabular-table-border text-center">{{studentSubject.isExternal? studentSubject.externalMark |number_format(0) : '-'}}</td>
                                            {% if studentSubject.internalAbsentStatus == "ABSENT" or studentSubject.internalResultStatus == 'FAILED' %}
                                                <td class="failed tabular-table-border text-center">-</td>
                                            {% else %}
                                                <td class="failed tabular-table-border text-center">{{studentSubject.markObtained}}</td>
                                            {% endif %}
                                            <td class="failed tabular-table-border text-center">-</td>
                                            <td class="failed tabular-table-border text-center">-</td>
                                            <td class="failed tabular-table-border text-center">-</td>
                                        {% else %}
                                            {% if data.displayContentOptions.rules.showModerationMark %}
                                            <td class="tabular-table-border text-center">{{studentSubject.moderationMark ? studentSubject.moderationMark | round:'0' }}</td>
                                            {% endif %}
                                            {% if data.displayContentOptions.rules.showGraceMark %}
                                            <td class="tabular-table-border text-center">{{studentSubject.graceMark ? studentSubject.graceMark | round:'0'}}</td>
                                            {% endif %}
                                            <td class="tabular-table-border text-center">{{studentSubject.isInternal? studentSubject.internalMark : '-'}}</td>
                                            <td class="tabular-table-border text-center">{{studentSubject.isExternal? studentSubject.externalMark |number_format(0) : '-'}}</td>
                                            <td class="tabular-table-border text-center">{{studentSubject.markObtained}}</td>
                                            <td class="tabular-table-border text-center">{{studentSubject.grade}}</td>
                                            <td class="tabular-table-border text-center">{{studentSubject.gradePoint}}</td>
                                            <td class="tabular-table-border text-center">{{studentSubject.creditGradePoint}}</td>
                                        {% endif %}
                                        {% set isEnteredGroup = true %}
                                        {% set isEntered = true %}
                                    {% endif %}
                                {% endif %}
                            {% endfor %}
                            {% if isEntered == false %}
                                <!--subject_tag-->
                                {% if data.displayContentOptions.rules.showModerationMark %}
                                <td class="tabular-table-border text-center"></td>
                                {% endif %}
                                {% if data.displayContentOptions.rules.showGraceMark %}
                                <td class="tabular-table-border text-center"></td>
                                {% endif %}
                                <td class="tabular-table-border text-center"></td>
                                <td class="tabular-table-border text-center"></td>
                                <td class="tabular-table-border text-center"></td>
                                <td class="tabular-table-border text-center"></td>
                                <td class="tabular-table-border text-center"></td>
                                <td class="tabular-table-border text-center"></td>
                            {% endif %}
                        {% endfor %}
                    <!--tag2-->
                    </tr>
                {% endfor %} 
            <!--tag1-->
        </table>
    {% endfor %}
    {% endfor %}
    </br></br>
    <table style="width:100%!important; page-break:before: avoid !important">
        {% if data.displayContentOptions.rules.isShowFooterValue is not empty %}
        <tr>
            <td colspan="100" class="no-border p-t-20 text-center" style="font-size:12px!important; font-weight: bold !important">
               {{ data.displayContentOptions.rules.isShowFooterValue }}
            </td>
        </tr>
       {% else %}
        <tr>
            <td colspan="100" class="no-border p-t-20 text-center" style="font-size:12px!important; font-weight: bold !important">
               Grade: O - OUTSTANDING (9.50 - 10.00 ), A+ - EXCELLENT (8.50 - 9.50 ), A - VERY GOOD (7.50 - 8.50 ), B+ - GOOD (6.50 - 7.50 ), B - SATISFACTORY (5.50 - 6.50 ), C - AVERAGE (4.50 - 5.50 ), P - PASS (3.50 - 4.50 ), F - FAIL (0.00 - 3.50 )
            </td>
        </tr>
        {% endif %}
        <tr>
            <td colspan="100" class="no-border p-t-50" style="font-weight: bold !important; padding-top: 85px !important; padding-bottom: 30px;">
                <div style="display: flex; justify-content: space-between; width: 100%;">
                 {% if data.displayContentOptions.rules.isEnablePreparedBy %}
                 <span style="display: inline-block; width: 20%; text-align: center;">Prepared by</span>
                {% endif %}
                 <span style="display: inline-block; width: 20%; text-align: center;">Checked by</span>
                <span style="display: inline-block; width: 25%; text-align: center;">Controller of Examinations</span>
                <span style="display: inline-block; width: 25%; text-align: center;">Principal</span>
                </div>
            </td>
        </tr>
    </table>
<!--tag1-->
</div>
