From 90e96ddbe099e840d15584fef0d26b1621568974 Mon Sep 17 00:00:00 2001 From: Daniel Date: Tue, 8 Nov 2022 16:57:45 +0100 Subject: [PATCH] filter appointments --- .../appointments/AppointmentSelectTable.js | 53 ++++++++++++++++++- .../appointment-select-table.html | 2 + .../ContractUnchargedMemberDataTable.js | 20 ++++--- .../contract-uncharged-member-data-table.html | 8 +-- .../app/views/appointments/AppointmentList.js | 2 + .../TB_Shared_Ent_TeamData_Appointment.php | 2 + 6 files changed, 74 insertions(+), 13 deletions(-) diff --git a/src/client/manager/js/app/components/appointments/AppointmentSelectTable.js b/src/client/manager/js/app/components/appointments/AppointmentSelectTable.js index 3fdd8c4..50fbedb 100644 --- a/src/client/manager/js/app/components/appointments/AppointmentSelectTable.js +++ b/src/client/manager/js/app/components/appointments/AppointmentSelectTable.js @@ -5,9 +5,33 @@ const AppointmentSelectTable = { var app = this.app, $container = $( this.container ); - this.render( { apps: appointments.getAll(), activeGroup : this.app.user.getActiveGroup() } ); + let date = new Date(); + let strFrom = ''; + date.setMonth(date.getMonth() - 3); + let dd = String(date.getDate()).padStart(2, '0'); + let mm = String(date.getMonth() + 1).padStart(2, '0'); //January is 0! + let yyyy = date.getFullYear(); + strFrom = yyyy + '-' + mm + '-' + dd; - $container.find( '.datatable' ).DataTable( { + date = new Date(); + let strTo = ''; + date.setMonth(date.getMonth() + 3); + dd = String(date.getDate()).padStart(2, '0'); + mm = String(date.getMonth() + 1).padStart(2, '0'); //January is 0! + yyyy = date.getFullYear(); + strTo = yyyy + '-' + mm + '-' + dd; + + let appointmentItems = appointments.getAll(); + + this.render( + { apps: appointmentItems, + activeGroup : this.app.user.getActiveGroup(), + strFrom: strFrom, + strTo: strTo + } + ); + + let table = $container.find( '.datatable' ).DataTable( { pageLength: 50, responsive: true, dom: '<"html5buttons"B>lTfgitp', @@ -78,6 +102,31 @@ const AppointmentSelectTable = { app.openInApp( '/#/appointment/' + $( this ).attr( 'data-appointment-id' ) + '/chat' ); e.stopPropagation(); }); + + $('input.dateStart').on('change', function() { + table.draw(); + }); + + $('input.dateEnd').on('change', function() { + table.draw(); + }); + + $.fn.dataTable.ext.search.push( + function(settings, searchData, index, rowData, counter) { + const dateFrom = $('input.dateStart').val(); + const dateTo = $('input.dateEnd').val(); + const item = appointmentItems[index]; + const startDate = item['start_dt']; + const strStartDate = startDate.date.substring(0,10); + + if (strStartDate >= dateFrom && strStartDate <= dateTo) { + return true; + } + return false; + } + ); + // Initial drawing needed to filter by date interval + table.draw(); }, getSelectedIds : function() diff --git a/src/client/manager/js/app/components/appointments/appointment-select-table.html b/src/client/manager/js/app/components/appointments/appointment-select-table.html index e18f43e..21812c8 100644 --- a/src/client/manager/js/app/components/appointments/appointment-select-table.html +++ b/src/client/manager/js/app/components/appointments/appointment-select-table.html @@ -1,4 +1,6 @@
+ + diff --git a/src/client/manager/js/app/components/contract/ContractUnchargedMemberDataTable.js b/src/client/manager/js/app/components/contract/ContractUnchargedMemberDataTable.js index 729f8f9..91ba5f7 100644 --- a/src/client/manager/js/app/components/contract/ContractUnchargedMemberDataTable.js +++ b/src/client/manager/js/app/components/contract/ContractUnchargedMemberDataTable.js @@ -4,9 +4,11 @@ const ContractUnchargedMemberDataTable = { { var app = this.app, groupId = props.get( 'groupId' ), + items = props.get( 'unchargedItems' ), $container = $( this.container ); - this.render( { ui: props.get( 'unchargedItems' ), activeGroup : groupId } ); + this.render( { ui: items, activeGroup : groupId } ); + let table = $container.find( '.datatable' ).DataTable( { pageLength: 50, @@ -60,13 +62,17 @@ const ContractUnchargedMemberDataTable = { $.fn.dataTable.ext.search.push( function(settings, searchData, index, rowData, counter) { - if ($('.filterContract:checked').length === 1) { - // @Todo: this hardcoded index is sth to refactor (but haven't column as object yet) - return rowData[6] === 'nein'; + const contractChecked = $('.filterContract:checked').length === 1; + const openClaimChecked = $('.filterOpenClaim:checked').length === 1; + const item = items[index]; + if (contractChecked && openClaimChecked) { + return item['hasActiveContract'] === false && parseInt(item['count']) !== 0; + } + if (contractChecked) { + return item['hasActiveContract'] === false; } - if ($('.filterOpenClaim:checked').length === 1) { - // @Todo: this hardcoded index is sth to refactor (but haven't column as object yet) - return parseInt(rowData[5]) !== 0 ; + if (openClaimChecked) { + return parseInt(item['count']) !== 0; } return true; } diff --git a/src/client/manager/js/app/components/contract/contract-uncharged-member-data-table.html b/src/client/manager/js/app/components/contract/contract-uncharged-member-data-table.html index c6cee46..2323a23 100644 --- a/src/client/manager/js/app/components/contract/contract-uncharged-member-data-table.html +++ b/src/client/manager/js/app/components/contract/contract-uncharged-member-data-table.html @@ -1,6 +1,6 @@
- - + +
@@ -10,7 +10,7 @@ - + @@ -36,7 +36,7 @@ - diff --git a/src/client/manager/js/app/views/appointments/AppointmentList.js b/src/client/manager/js/app/views/appointments/AppointmentList.js index 5dee478..40e6a47 100644 --- a/src/client/manager/js/app/views/appointments/AppointmentList.js +++ b/src/client/manager/js/app/views/appointments/AppointmentList.js @@ -59,6 +59,8 @@ const AppointmentList = { } } + + let compAst = this.createComponent( 'appointment-select-table', $container.find( '[f-id="container-appointment-data-table"]' ).first().get( 0 ), diff --git a/src/server/shared/ent/teamdata/TB_Shared_Ent_TeamData_Appointment.php b/src/server/shared/ent/teamdata/TB_Shared_Ent_TeamData_Appointment.php index a552eee..fcb2902 100644 --- a/src/server/shared/ent/teamdata/TB_Shared_Ent_TeamData_Appointment.php +++ b/src/server/shared/ent/teamdata/TB_Shared_Ent_TeamData_Appointment.php @@ -250,6 +250,8 @@ class TB_Shared_Ent_TeamData_Appointment extends Francis_Db_Row if ( false === $filterGetOld ) { $sql .= "AND end_dt > UTC_TIMESTAMP() "; + } else { + $sql .= "AND end_dt > UTC_TIMESTAMP() - INTERVAL 1 MONTH "; } $sql .= "ORDER BY start_dt ASC"; $stmt = $dbh->prepare( $sql );
PLZ Stadt Offene VerrechnungenAktiver Vertrag vorhandenAktiver Vertrag vorhanden
<%= ui[ i ].count %> + <%= ui[ i ].hasActiveContract ? 'ja' : 'nein' %>