Q:

How to fix a line at the end of table with Datatables?

I'm using Datatables and at the end of the table I have a line with a total of each columns and I would like to fix this line at the end of the table for when I'll use the sorting option this line stay at the end. You can see on the picture the line Island Total is this line I would like to fix at the of the table. For the table I get the value by AJAX request and the total is calculate is the javascript. I know I can use the footerCallBack option include in DataTables but I can't edit the total line with this method therefore I can't use the footerCallBack.
JS for the table : 
var data_use = [["Le Gold", 77.5, 10190, 789666], ["Bois Rouge", 68.9, 10031, 691571], ["Total île", 73.2, 20221, 1481237]];

$('#datatable').DataTable({
    "sPaginationType" : "full_numbers",
    "lengthMenu" : [[5, 10, 20, 30, -1], [5, 10, 20, 30, "All"]],
    "iDisplayLength" : -1,
    data : data_use,
    columns : column_name,
    dom : 'lfrtip',
    responsive : true,
    destroy : true,
    searching: true,
});

A:

The simplest workaround for your case that I can think of is to filter 'totals' out of your table data and append those to the bottom of the table (modify DOM) upon each re-draw.
It does not obviate my above comments and doesn't seem to be very good solution, nevertheless, does exactly what's expected:

//src data
const data_use = [{basin:'Beaufond',yield:66,area:5183,production:342041},{basin:'Boid Rouge',yield:72.1,area:4848,production:349530},{basin:'Grand-Bois',yield:80.5,area:3519,production:238200},{basin:'Island Total',yield:73.3,area:20220,production:1481237},{basin:'Le Gol',yield:82.9,area:4282,production:354983},{basin:'Savanna',yield:63.4,area:2388,production:151483}];
//columns config
const column_name = [{title:'Basin',data:'basin'},{title:'Yield (T/ha)',data:'yield'},{title:'Surface area (ha)',data:'area'},{title:'Production (T)',data:'production'},{title:'',data:()=>'<button>Edit</button>'}];

//datatables initialization
$('#datatable').DataTable({
    sPaginationType : "full_numbers",
    lengthMenu : [[5, 10, 20, 30, -1], [5, 10, 20, 30, "All"]],
    iDisplayLength : -1,
    data : data_use.filter(({basin}) => basin != 'Island Total'),
    columns : column_name,
    dom : 'lfrtip',
    responsive : true,
    destroy : true,
    searching: true,
    drawCallback: () => {
      const totals = data_use.find(({basin}) => basin == 'Island Total');
      const bottomRowHtml = '<tr>'+Object.values(totals).reduce((r,e) => r+=`<td>${e}</td>`,'')+'<td><button>Edit</button></td></tr>';
      $('#datatable tbody').append(bottomRowHtml);
    }
});
<!doctype html><html><head><link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/v/dt/jq-3.3.1/dt-1.10.18/rg-1.1.0/datatables.min.css" /><script type="application/javascript" src="https://code.jquery.com/jquery-3.3.1.min.js"></script><script type="text/javascript" src="https://cdn.datatables.net/v/dt/jq-3.3.1/dt-1.10.18/rg-1.1.0/datatables.min.js"></script></head><body><table id="datatable"></table></body></html>

