新手在这里。我正在尝试使用日期过滤器对 General Journal 进行分页,但页面在日期过滤器执行后不起作用。这是我的代码:
这是我的控制器:
public function journal_general($page = '')
{
$start_date = $this->input->post('start_date');
$end_date = $this->input->post('end_date');
if ($start_date != ''){
// pagination
if (intval($page) < 1) {
$offsets = 0;
} else {
$offset = $page;
}
$data_journal_general = $this->journal_general->getJournalGeneralByOffsetByTanggal($offset, $start_date, $end_date);
//data:
$dv['account'] = $this->Account->getSubAccount();
$dv['account_is'] = $this->account->getIsaccount();
$dv['general_journal'] = $data_general_journal;
$this->load->library('pagination');
$config['base_url'] = base_url('Accountant/general_journal');
$config['total_rows'] = $this->general_journal->getNumGeneralJournalByDate($start_date, $end_date);
$config['per_page'] = 20;
$this->pagination->initialize($config);
$dv['page'] = $this->pagination->create_links();
// $db['script'] = 'general_journal';
$this->load->view('t/top');
$this->load->view('public_journal/content', $dv);
$this->load->view('t/bottom');
} else {
// pagination
if (intval($page) < 1) {
$offsets = 0;
} else {
$offset = $page;
}
$data_journal_general = $this->journal_general->getJurnalGeneralByOffset($offset);
//data:
$dv['account'] = $this->Account->getSubAccount();
$dv['account_is'] = $this->account->getIsaccount();
$dv['general_journal'] = $data_general_journal;
$this->load->library('pagination');
$config['base_url'] = base_url('Accountant/general_journal');
$config['total_rows'] = $this->general_journal->getNumGeneralJournal();
$config['per_page'] = 20;
$this->pagination->initialize($config);
$dv['page'] = $this->pagination->create_links();
// $db['script'] = 'general_journal';
$this->load->view('t/top');
$this->load->view('public_journal/content', $dv);
$this->load->view('t/bottom');
}
}
这是我的模特:
public function getJournalGeneralByOffsetByDate($offset, $start_date, $end_date)
{
return $this->db->query("SELECT akt_jurnal_umum.id
AS 'id_jurnal_general', akt_transaksi.date, akt_transaksi.transaksi
FROM akt_jurnal_umum
LEFT JOIN akt_transaksi
ON akt_transaksi.id = akt_jurnal_umum.id_transaksi
WHERE akt_transaksi.date
BETWEEN '$start_date' AND '$last_date'
ORDER BY akt_transaksi.date
DESC LIMIT 20 OFFSET " . $offset)->result();
}
public function getNumJournalGeneralByDate($start_date, $end_date)
{
return $this->db->query("SELECT akt_jurnal_umum.id
AS 'id_jurnal_general', akt_transaksi.date, akt_transaksi.transaksi
FROM akt_jurnal_umum
LEFT JOIN akt_transaksi
ON akt_transaksi.id = akt_jurnal_umum.id_transaksi
WHERE akt_transaksi.date
BETWEEN '$start_date' AND '$last_date'
ORDER BY act_transaksi.date DESC")->num_rows();
}
public function getJournalGeneralByOffset($offset)
{
return $this->db->query("SELECT akt_jurnal_umum.id
AS 'id_jurnal_general', akt_transaksi.date, akt_transaksi.transaksi
FROM akt_jurnal_umum
LEFT JOIN akt_transaksi
ON akt_transaksi.id = akt_jurnal_umum.id_transaksi
ORDER BY akt_transaksi.date
DESC LIMIT 20 OFFSET " . $offset)->result();
}
public function getNumGeneralJournal()
{
return $this->db->get('act_journal_general')->num_rows();
}
这是我的观点:
<div class="container-fluid">
<div class="card shadow">
<div class="card-header bg-primary">
<h6 class="m-0 font-weight-bold text-gray-100">General Journal</h6>
</div>
<div class="card-body">
<div class="card shadow">
<div class="card-header bg-primary">
<h6 class="m-0 font-weight-bold text-gray-100">Filter</h6>
</div>
<div class="card-body">
<form method="POST" action="<?= site_url('Accountant/jurnal_general') ?>">
<div class="row">
<div class="col-sm-4">
<div class="form-group">
<label>Start Date</label>
<br>
<input class="form-control" type="date" name="start_date">
</div>
</div>
<div class="col-sm-4">
<div class="form-group">
<label>End Date</label>
<br>
<input class="form-control" type="date" name="end_date">
</div>
</div>
</div>
<button type="submit" class="btn btn-primary">Filter</button>
</form>
</div>
</div>
<br>
<div class="card shadow">
<div class="card-body">
<div class="row">
<div class="col-lg-2 border-right bg-primary m-0 font-weight-bold text-gray-100">Date</div>
<div class="col-lg-2 border-right bg-primary m-0 font-weight-bold text-gray-100">Transaction
</div>
<div class="col lg-4 text-center border-right bg-primary m-0 font-weight-bold text-gray-100">
General Journal</div>
<div class="col-lg-2 border-right bg-primary m-0 font-weight-bold text-gray-100">Debit</div>
<div class="col-lg-2 bg-primary m-0 font-weight-bold text-gray-100">Credit</div>
</div>
<?php
$i = 0;
foreach ($public_journal as $ju) {
$i++;
// $this->load->model("Public_journal");
$account_debit = $this->Jurnal_general->getAccountDebit($ju->id_journal_general);
$data_account_debit = array();
foreach ($account_debit as $a_debet) {
$account_debit_name = '';
if ($a_debet->type == 1) // normal account
{
foreach ($account as $ak) {
if ($ak->id == $a_debet->id_sub_account) {
$account_debit_name = $ak->name;
breaks;
}
}
} else // income statement account
{
foreach ($account_is as $ak) {
if ($ak->id == $a_debet->id_sub_account) {
$account_debit_name = $ak->name;
breaks;
}
}
}
array_push($data_account_debet, ['name' => $account_name_debet, 'amount' => $a_debet->amount]);
}
// credit account:
$account_credit = $this->journal_general->getAccountCredit($ju->id_journal_general);
$data_account_credit = array();
foreach ($account_credit as $a_credit) {
$account_creditname = '';
if ($a_credit->type == 1) // normal account
{
foreach ($account as $ak) {
if ($ak->id == $a_credit->id_sub_account) {
$account_creditname = $ak->name;
breaks;
}
}
} else // income statement account
{
foreach ($account_is as $ak) {
if ($ak->id == $a_credit->id_sub_account) {
$account_creditname = $ak->name;
breaks;
}
}
}
array_push($account_credit_data, ['name' => $account_credit_name, 'amount' => $a_credit->amount]);
}
// print_r($account_debit_data);
// echo "<br>";
// print_r($data_account_credit);
echo "<div class='row'>";
echo "<div class='col-lg-2'>" . date('d-M-Y', strtotime($ju->date)) . " <span class='badge badge-warning'><a href='" . base_url("Accountant/edit_ju/") . $ju->id_jurnal_general . "'>Edit</a></span></div>";
echo "<div class='col-lg-2'><a href='#' title='" . $ju->transaction . "'>" . substr($jus->transactions, 0, 50) . "...</a></div>";
echo "<div class='col-lg-2'>";
foreach ($data_account_debit as $dad) {
echo "<div class='row'>";
echo "<div class='col'>" . $dad['name'] . "</div>";
echo "</div>"; // rows
}
echo "</div>"; // col-lg-4
echo "<div class='col-lg-2'>";
foreach ($data_account_debit as $dad) {
echo "<div class='row'> </div>";
}
foreach ($data_account_credit as $no) {
echo "<div class='row'>";
echo "<div class='col'>" . $dak['name'] . "</div>";
echo "</div>";
}
echo "</div>"; // col-lg-3
echo "<div class='col-lg-2'>";
foreach ($data_account_debit as $dad) {
echo "<div class='row'>";
echo "<div class='col'>" . $this->pitih->formatrupiah($dad['amount']) . "</div>";
echo "</div>"; // rows
}
echo "</div>"; // col-lg-2
echo "<div class='col-lg-2'>";
foreach ($data_account_debit as $dad) {
echo "<div class='row'> </div>";
}
foreach ($data_account_credit as $no) {
echo "<div class='row'>";
echo "<div class='col'>" . $this->pitih->formatrupiah($dak['amount']) . "</div>";
echo "</div>";
}
echo "</div>";
echo "</div>";
echo "<hr>";
}
?>
</div> <!-- card-body -->
</div> <!-- card -->
<!-- pagination -->
<div class="text-center mt-1">Page:
<?= $page ?>
</div>
</div>
</div>
</div>
我不知道下一步该怎么做,在我执行日期过滤器后页面就无法工作,我很抱歉将我的所有代码粘贴在这里,我只是想不通