I try code like on this page how to start and end grouping with counting salary. But I have Uncaught TypeError: Cannot read property 'replace' of undefined on line return a + b.replace(/[^\d]/g, '')*1;
My Controller like this
function viewAnggaran(){
$data = $this->m_anggaran->anggaran();
foreach($data as $p) {
$query[] = array(
'kd_anggaran' => '<a href="javascript:void(0)" id="btn-detail" data-toggle="modal" title="Detail" data-kode='.$p->kode_anggaran.' data-tahun='.$p->thn_anggaran.' data-nama_unit='.$p->nama_unit.' data-ruangan='.$p->nama_ruangan.'>'.$p->kode_anggaran.'</a>',
'unit' => $p->nama_unit,
'ruangan' => $p->nama_ruangan,
'tahun' => $p->thn_anggaran,
'barang' => $p->nama_barang,
'jumlah' => $p->jml_barang,
'satuan' => rupiah($p->nilai),
'harga' => rupiah($p->Anggaran),
'edit' => anchor('anggaran/edit/'.$p->kode_anggaran,'<i class="btn btn-info btn-sm glyphicon glyphicon-edit" data-toggle="tooltip" title="Edit"></i>'),
'hapus' => anchor('anggaran/delete/' . $p->kode_anggaran, '<i class="btn-sm btn-danger glyphicon glyphicon-trash" data-toggle="tooltip" title="Delete"></i>', array('onclick' => "return confirm('Data Akan di Hapus?')"))
);
}
$result=array('data'=>$query);
echo json_encode($result);
}
My view:
$.fn.dataTable.ext.errMode = 'throw';
$('#tb-anggaran').dataTable( {
Processing: true,
ServerSide: true,
iDisplayLength: 25,
oLanguage: {
sSearch: "Pencarian Data : ",
sZeroRecords: "Tidak Ada Data yg ditampilkan",
sEmptyTable: "Tidak ada data yang tersedia di tabel"
},
dom: 'Bfrtip',
select: true,
responsive: true,
orderFixed: [[1, 'asc'], [0, 'asc']],
buttons: [
{
extend: 'print',
exportOptions: {
columns: ':visible',
stripHtml: false,
}
},
{
extend: 'excelHtml5',
title: 'Laporan Anggaran Per Ruang',
exportOptions: {
columns: ':visible',
stripHtml: false,
}
},
'colvis'
],
columnDefs: [{
targets: [ 0, 1, -1 ],
visible: false
}],
ajax: "<?php echo base_url('anggaran/viewAnggaran');?>",
columns: [
{ "mData": "kd_anggaran" },
{ "mData": "unit"},
{ "mData": "ruangan" },
{ "mData": "tahun" },
{ "mData": "barang" },
{ "mData": "jumlah" },
{ "mData": "satuan" },
{ "mData": "harga" },
{ "mData": "edit" },
{ "mData": "hapus" },
],
rowGroup: {
endRender: function ( rows, group ) {
var salaryAvg = rows
.data()
.pluck(7)
.reduce( function (a, b) {
return a + b.replace(/[^\d]/g, '')*1;
}, 0);
salaryAvg = $.fn.dataTable.render.number('.', '.', 0, 'Rp ').display( salaryAvg );
return $('<tr/>')
.append( '<td colspan="5">Total Anggaran '+group+'</td>' )
.append( '<td>'+salaryAvg+'</td>' )
.append( '<td/>' );
},
dataSrc: [ 1, 0 ]
}
});
Please, help me