To fix the total issue in V4...
in html look for
{php}
$invoiceid = $this->_tpl_vars['invoiceid'];
$clientsdetails = $this->_tpl_vars['clientsdetails'];
$total = $this->_tpl_vars['total'];
/*echo '<pre>' . print_r($clientsdetails) . '</pre>';
echo 'userid=' . $clientsdetails["userid"] . ' AND status="Unpaid" AND id<' . $invoiceid;*/
$result = select_query("tblinvoices","SUM(total)","userid='".$clientsdetails['userid']."' AND status='Unpaid' AND id<'".$invoiceid."'");
$data = mysql_fetch_array($result);
$balancebroughtforward = format_as_currency($data[0]);
$grandtotal = format_as_currency($data[0])+$total;
$this->assign('balancebroughtforward',$balancebroughtforward);
$this->assign('grandtotal',$grandtotal);
{/php}
Replace with
{php}
$invoiceid = $this->_tpl_vars['invoiceid'];
$clientsdetails = $this->_tpl_vars['clientsdetails'];
$total = $this->_tpl_vars['total'];
/*echo '<pre>' . print_r($clientsdetails) . '</pre>';
echo 'userid=' . $clientsdetails["userid"] . ' AND status="Unpaid" AND id<' . $invoiceid;*/
$result = select_query("tblinvoices","SUM(total)","userid='".$clientsdetails['userid']."' AND status='Unpaid' AND id<'".$invoiceid."'");
$result2 = select_query("tblinvoices","SUM(total)","userid='".$clientsdetails['userid']."' AND status='Unpaid' AND id='".$invoiceid."'");
$data = mysql_fetch_array($result);
$data2 = mysql_fetch_array($result2);
$balancebroughtforward = format_as_currency($data[0]);
$grandtotal = format_as_currency($data[0]+$data2[0]);
$this->assign('balancebroughtforward',$balancebroughtforward);
$this->assign('grandtotal',$grandtotal);
{/php}