Estou a desenvolver um software para controlar as entradas e saídas de funcionários numa empresa, e também o total de horas trabalhadas num dia. Para isso, precisava de somar as horas realizadas da parte da manhã e da parte da tarde, consegui somar isso de forma separada, o que não está errado mas queria juntar os dois valores, a condição seria, quando o dia fosse o mesmo, somar o total de horas da manhã, com o total de horas da tarde.
Deu para entender?
@section('scripts')
<script src="{{ asset('/assets/vendor/air-datepicker/dist/js/datepicker.min.js') }}"></script>
<script src="{{ asset('/assets/vendor/air-datepicker/dist/js/i18n/datepicker.pt.js') }}"></script>
<script type="text/javascript">
$('#dataTables-example').DataTable({responsive: true,pageLength: 15,lengthChange: false,searching: false,ordering: true});
$('.airdatepicker').datepicker({ language: 'pt', dateFormat: 'yyyy-mm-dd' });
// transfer idno
$('.ui.dropdown.getid').dropdown({ onChange: function(value, text, $selectedItem) {
$('select[name="employee"] option').each(function() {
if($(this).val()==value) {var id = $(this).attr('data-id');$('input[name="emp_id"]').val(id);};
});
}});
$('#btnfilter').click(function(event) {
event.preventDefault();
var emp_id = $('input[name="emp_id"]').val();
var date_from = $('#datefrom').val();
var date_to = $('#dateto').val();
var url = $("#_url").val();
var gtr = 0;
$.ajax({
url: url + '/get/employee-attendance/', type: 'get', dataType: 'json', data: {id: emp_id, datefrom: date_from, dateto: date_to}, headers: { 'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content') },
success: function(response) {
function ConvertSectoDay(gtr) {
var day = parseInt(gtr / (24 * 3600));
//gtr = gtr % (24 * 3600);
var hour = parseInt(gtr / 3600);
gtr %= 3600;
var minutes = gtr / 60;
gtr %= 60;
var seconds = gtr;
//return day + " " + "dias " + hour + " " + "hours " + minutes.toFixed() + " " + "minutes " + seconds.toFixed() + " " + "segundos ";
return hour + " " + "horas " + minutes.toFixed() + " " + "minutos " + seconds.toFixed() + " " + "segundos ";
}
showdata(response);
function showdata(jsonresponse) {
var employee = jsonresponse;
var tbody = $('#dataTables-example tbody');
// clear data and destroy datatable
$('#dataTables-example').DataTable().destroy();
tbody.children('tr').remove();
// append table row data
for (var i = 0; i < employee.length; i++) {
gtr += +employee[i].totalhours;
//gtr += +employee[i].totalhours*60*60;
var time_in = employee[i].timein;
var t_in = time_in.split(" ");
if (employee[i].timeout) {
var time_out = employee[i].timeout;
var t_out = time_out.split(" ");
tbody.append("<tr>"+
"<td>"+employee[i].date+"</td>" +
"<td>"+employee[i].employee+"</td>" +
"<td>"+ t_in[1]+" "+t_in[2] +"</td>" +
"<td>"+ t_out[1]+" "+t_out[2] +"</td>" +
"<td>"+employee[i].totalhours+"</td>"+
//"<td><strong>"+gtr.toFixed(2)+"</strong></td>"+
"</tr>");
} else {
tbody.append("<tr>"+
"<td>"+employee[i].date+"</td>" +
"<td>"+employee[i].employee+"</td>" +
"<td>"+ t_in[1]+" "+t_in[2] +"</td>" +
"<td>"+ 'no time out' +"</td>" +
"<td>"+employee[i].totalhours+"</td>" +
"</tr>");
}
}
tbody.append("<tr class='tablefooter'>"+
"<td colspan='4'><strong>TOTAL HOURS</strong></td>"+
"<td><strong>"+gtr.toFixed(2)+"</strong></td>"+
//"<td><strong>"+ConvertSectoDay(gtr)+"</strong></td>"+
"<td class='hide'></td>"+
"<td class='hide'></td>"+
"<td class='hide'></td>"+
"<td class='hide'></td>"+
"<td class='hide'></td>"+
"</tr>");
// initialize datatable
$('#dataTables-example').DataTable({responsive: true,pageLength: 15,lengthChange: false,searching: false,ordering: false});
}
}
})
});
</script>
@endsection
Tenho este código, que faz a soma separadamente da parte da manha e da parte da tarde com a variável "totalhours", soma o "time in" com o "time out".
Alguma ajuda?