- Beranda
- Komunitas
- Tech
- Programmer Forum
[Ask:CI] Cek Data Sudah Ada Dalam Database Atau Belum?


TS
skiddie
[Ask:CI] Cek Data Sudah Ada Dalam Database Atau Belum?
Quote:
"SOLVED"
Mohon diclose Thread ini, mod
Mohon diclose Thread ini, mod

Permisi mastah-mastah sekalian.
Nubie mau tanya sesuatu nih.
Jadi gini, ane buat sebuah App Web Dev dengan PHP Framework CI.
Nah, pada 'Form Add New Data' kan ada isian Kode (semacam no pembayaran gitu gan, red) yang harus diisi manual, karena saya set tidak Auto Increment.
[Q]Nah pertanyaannya, kurang lebih codenya bagaimana yah jika dibuat dengan MVC ?
Kalau untuk query pengecekan sendiri, ane gunain yang seperti ini :
Code:
select count(invoice_id) as ada from tbl_invoice where invoice_id = ? and vendor_id = ?
Tambahan :
> Controller :
Spoiler for "Controller Panjang":
Code:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Invoice extends MY_Controller {
function __construct(){
parent::__construct();
$this->load->model('m_invoice','invoice');
}
public function index()
{
$data = $this->invoice->list_invoice();
$data['title'] = "Lihat Semua Invoice";
$data['content'] = $this->load->view('invoice/v_list',$data,TRUE);
$this->load->view('v_index_wrapper',$data);
}
public function page()
{
$this->index();
}
public function detail()
{
$data = $this->invoice->detail_invoice();
$this->load->view('invoice/v_modal_detail',$data);
}
public function exp_pdf()
{
$data = $this->invoice->detail_invoice();
$html = $this->load->view('invoice/v_detail',$data,TRUE);
$this->load->library('mpdf');
$this->mpdf->WriteHTML($html);
$this->mpdf->Output();
//$data['content'] = $this->load->view('invoice/v_detail',$data,TRUE);
//$this->load->view('v_index_wrapper',$data);
}
public function add()
{
$data['title'] = "Tambah Invoice";
$data['vendor'] = $this->invoice->drop_vendor(); //ambil data vendor untuk isi dropdown
if(@$this->session->flashdata('post_item')){
$data['inv']= (object)@$this->session->flashdata('post_item');
}
$data['content'] = $this->load->view('invoice/v_form',$data,TRUE);
$this->load->view('v_index_wrapper',$data);
}
public function do_add()
{
$param = $this->input->post();
$this->invoice->save_invoice($param);
}
public function pay()
{
$data['title'] = "Pembayaran Invoice";
$data['vendor'] = $this->invoice->drop_vendor(); //ambil data vendor untuk isi dropdown
$data['bank'] = $this->invoice->drop_bank(); //ambil data bank untuk isi dropdown
if(@$this->session->flashdata('post_item')){
$data['inv']= (object)@$this->session->flashdata('post_item');
}
//print_r($data['inv']);
$data['content'] = $this->load->view('invoice/v_form_pay',$data,TRUE);
$this->load->view('v_index_wrapper',$data);
}
public function do_pay()
{
$param = $this->input->post();
//echo "<pre>"; print_r($param); die();
$this->invoice->save_payment($param);
}
public function edit($id)
{
$data['title'] = "Edit Invoice";
$data = $this->invoice->edit_invoice($id);
//$data['inv'] = (object)$res['invoice'][0];
if(@$this->session->flashdata('post_item')){
$data['inv']= (object)@$this->session->flashdata('post_item');
}
$data['vendor'] = $this->invoice->drop_vendor(); //ambil data vendor untuk isi dropdown
$data['content'] = $this->load->view('invoice/v_form_edit',$data,TRUE);
$this->load->view('v_index_wrapper',$data);
}
public function do_edit()
{
$this->invoice->update_invoice();
}
public function parsial()
{
$data['title'] = "Cicil Pembayaran Invoice";
$data['bank'] = $this->invoice->drop_bank();
if(@$this->session->flashdata('post_item')){
$data['inv']= (object)@$this->session->flashdata('post_item');
}
$data['content'] = $this->load->view('invoice/v_form_cicilan',$data,TRUE);
$this->load->view('v_index_wrapper',$data);
}
public function do_parsial()
{
//print_r($this->input->post());
$this->invoice->save_cicilan();
}
public function delete()
{
$this->invoice->delete();
}
public function lookup()
{
$this->invoice->lookup();
}
public function parsial_lookup()
{
$this->invoice->parsial_lookup();
}
public function lookup_vendor()
{
if($this->input->post('submit')==1)
{
$param['id'] = $this->input->post('vnd_id');
$result = $this->invoice->get_vendor($param);
echo json_encode($result);
}
}
public function lookup_invoice()
{
if($this->input->post('submit')==1)
{
$param['id'] = $this->input->post('vnd_id');
$data = $this->invoice->get_invoice($param);
$this->load->view('invoice/v_tabel_invoice',$data);
//echo json_encode($result);
}
}
public function get_cicilan()
{
if($this->input->post('submit')==1)
{
$data = $this->invoice->get_parsial();
$this->load->view('invoice/v_tabel_cicilan',$data);
//echo json_encode($result);
}
}
public function lookup_bank()
{
if($this->input->post('submit')==1)
{
$param['id'] = $this->input->post('bank_id');
$result = $this->invoice->get_bank($param);
echo json_encode($result);
}
}
/*public function check_uid() {
$this->form_validation->set_rules('invoice_id','invoice_id','required|xss_clean');
if($this->form_validation->run() == FALSE) {
$data['content'] = $this->load->view('invoice/v_form',$data,TRUE);
$this->load->view('v_index_wrapper',$data);
}
else {
$this->load->model('num');
$invoice_id = $this->input_post('invoice_id');
$invoice_id_result = $this->num->check_uid_exist('invoice_id',$invoice_id);
$data['invoice_id_response'] = ($invoice_id_result == TRUE ? 'ID Exist' : 'ID Doesnt Exist');
$this->load->view('invoice/v_form',$data);
}
}*/
}
> Model :
Spoiler for "Model Panjang":
Code:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class M_invoice extends MY_Model {
public function get_vendor($param)
{
$data = $this->mgb->find("tbl_vendor",array('vendor_id' => $param['id'],));
if(!$data)
{
$res = array();
}else{
$data = $data->row();
$res = array(
"vendor_name" => $data->vendor_name,
"vendor_addr" => $data->vendor_address,
);
}
return $res;
}
public function get_invoice($param)
{
$data = $this->mgb->find("vw_invoice",array("vendor_id" => $param['id'], 'status' => 2 ));
if(!$data)
{
$res['invoice'] = array();
}else{
$data = $data->result_array();
$res['invoice'] = $data;
}
return $res;
}
public function edit_invoice($param)
{
$data = $this->mgb->find("vw_invoice",array("concat(invoice_id,'-',vendor_id)" => $param, 'status' => 2 ));
if(!$data)
{
show_404();
}else{
$data = $data->result_array();
$res['inv'] = (object)$data[0];
}
return $res;
}
public function update_invoice()
{
$param = $this->input->post();
$this->load->library('form_validation');
$this->form_validation->set_rules('vendor_id', 'Vendor', 'required');
$this->form_validation->set_rules('invoice_id', 'Invoice No', 'required');
$this->form_validation->set_rules('date', 'Date', 'required');
$this->form_validation->set_rules('due_date', 'Due Date', 'required');
$this->form_validation->set_rules('currency', 'Currency', 'required');
$this->form_validation->set_rules('dpp_amount', 'DPP Amount', 'required');
$this->form_validation->set_rules('vat_in', 'VAT In', 'required');
$this->form_validation->set_rules('tax_other', 'W/H Tax Other', 'required');
$this->form_validation->set_rules('payable_amount', 'Net Payable Amount', 'required');
$this->form_validation->set_rules('no_ivf', 'No IVF', 'required');
$this->form_validation->set_rules('co_code', 'Co Code', 'required');
$this->form_validation->set_rules('doc_rec_date', 'Docs Acceptance Date', 'required');
if($this->form_validation->run()== FALSE){
$this->session->set_flashdata('flash_msg', warn_msg(validation_errors("<label class='error'>","</label>")));
$this->session->set_flashdata('post_item', $param);
redirect($_SERVER['HTTP_REFERER']);
}else{
$id = $param['id'];
unset($param['vendor']);
unset($param['vendor_addr']);
unset($param['id']);
unset($param['ccd']);
$save = $this->mgb->replace('tbl_invoice',$param,array("concat(invoice_id,'-',vendor_id)" => $id));
if($save == TRUE){
$this->session->set_flashdata('flash_msg', succ_msg('Invoice berhasil diubah.'));
}else{
$this->session->set_flashdata('flash_msg', err_msg('Terjadi Kesalahan'));
}
redirect('invoice');
}
}
public function get_bank($param)
{
$data = $this->mgb->find("tbl_bank",array('bank_id' => $param['id'],));
if(!$data)
{
$res = array();
}else{
$data = $data->result_array();
$res = $data[0];
}
return $res;
}
public function save_invoice($param)
{
$this->load->library('form_validation');
$this->form_validation->set_rules('vendor_id', 'Vendor', 'required');
$this->form_validation->set_rules('invoice_id', 'Invoice No', 'required');
$this->form_validation->set_rules('date', 'Date', 'required');
$this->form_validation->set_rules('due_date', 'Due Date', 'required');
$this->form_validation->set_rules('currency', 'Currency', 'required');
$this->form_validation->set_rules('dpp_amount', 'DPP Amount', 'required');
$this->form_validation->set_rules('vat_in', 'VAT In', 'required');
$this->form_validation->set_rules('tax_other', 'W/H Tax Other', 'required');
$this->form_validation->set_rules('payable_amount', 'Net Payable Amount', 'required');
$this->form_validation->set_rules('no_ivf', 'No IVF', 'required');
$this->form_validation->set_rules('co_code', 'Co Code', 'required');
$this->form_validation->set_rules('doc_rec_date', 'Docs Acceptance Date', 'required');
if($this->form_validation->run()== FALSE){
$this->session->set_flashdata('flash_msg', warn_msg(validation_errors("<label class='error'>","</label>")));
$this->session->set_flashdata('post_item', $param);
redirect($_SERVER['HTTP_REFERER']);
}else{
//save proses
$this->invoice_check();
$param = $this->input->post();
unset($param['vendor']);
unset($param['vendor_addr']);
unset($param['ccd']);
$save = $this->mgb->write('tbl_invoice',$param);
if($save == TRUE){
$this->session->set_flashdata('flash_msg', succ_msg('Invoice berhasil ditambahkan.'));
}else{
$this->session->set_flashdata('flash_msg', err_msg('Terjadi Kesalahan'));
}
redirect('invoice');
}
}
function invoice_check()
{
$vendor = $this->input->post('vendor_id');
$invoice = $this->input->post('invoice_id');
$param = array($invoice.'-'.$vendor,);
$qry = 'SELECT concat(invoice_id, "-", vendor_id) as gabung
FROM tbl_invoice
WHERE concat(invoice_id, "-", vendor_id) = ?';
$hasil = $this->db->query($qry,$param);
if ($hasil->num_rows() < 1)
{
return TRUE;
}
else
{
$this->session->set_flashdata('flash_msg', warn_msg("<label class='error'>Duplicate Invoice Detected</label>"));
$this->session->set_flashdata('post_item', $this->input->post());
redirect($_SERVER['HTTP_REFERER']);
}
}
public function save_payment($param)
{
$this->load->library('form_validation');
$this->form_validation->set_rules('vendor_id', 'Vendor', 'required');
$this->form_validation->set_rules('bank_name', 'Bank', 'required');
$this->form_validation->set_rules('dibayar', 'Invoice', 'required');
$this->form_validation->set_rules('date_acq', 'Date Acquittance', 'required');
$this->form_validation->set_rules('no_pvaf', 'No PVAF', 'required');
if($this->form_validation->run()== FALSE){
$this->session->set_flashdata('flash_msg', warn_msg(validation_errors("<label class='error'>","</label>")));
$this->session->set_flashdata('post_item', $param);
redirect($_SERVER['HTTP_REFERER']);
}else{
//save proses
$this->db->trans_begin();
foreach($this->input->post('dibayar') as $val)
{
$param = array(
'bank_id' => $this->input->post('bank_id'),
'date_acq' => $this->input->post('date_acq'),
'no_pvaf' => $this->input->post('no_pvaf'),
'status' => 1,
);
$save = $this->mgb->replace('tbl_invoice',$param,array("concat(invoice_id,'-',vendor_id)" => $val));
}
if($this->db->trans_status() === TRUE){
$this->session->set_flashdata('flash_msg', succ_msg('Pembayaran Invoice telah berhasil'));
$this->db->trans_commit();
}else{
$this->session->set_flashdata('flash_msg', err_msg('Terjadi kesalahan, coba beberapa saat lagi'));
$this->db->trans_rollback();
}
redirect('invoice');
}
}
public function list_invoice()
{
$page = $this->uri->segment(3) ? $this->uri->segment(3) : 1;
$limit = 10;
$offset = ($page - 1 ) * $limit;
$url= site_url().'invoice/page/';
$lo = array($offset, $limit);
//---------------------------------------------------------
$param=array();
if(@$this->input->get('status') > 0)
{
$param = array_merge($param,array('status' => @$this->input->get('status')));
}
if(@$this->input->get('due_date') != '')
{
$param = array_merge($param,array('due_date' => @$this->input->get('due_date')));
}
$order = array('doc_rec_date', 'desc',);
if($this->input->get('sort') !='')
{
$order = array(
$this->input->get('sort'),
$this->input->get('order')
);
}
//----------------------------------------------------------
//get total row untuk paging
$total = $this->mgb->total("vw_invoice",@$param,'invoice_id');
//load paging
$res['paging'] = paging($url,$total,$limit);
//load data
$data = $this->mgb->find("vw_invoice",@$param,'invoice_id, vendor_id, vendor_name, doc_rec_date, due_date, currency, payable_amount, status',$lo,$order);
if(!$data)
{
$res['inv'] = array();
}else{
$data = $data->result_array();
$res['inv'] = $data;
}
return $res;
}
public function detail_invoice()
{
$id = $this->uri->segment(3);
if(@$id)
{
$param = array("concat(invoice_id,'-',vendor_id)" => @$id);
}else{
redirect('invoice');
}
$data = $this->mgb->find("vw_invoice",@$param);
if(!$data)
{
redirect('invoice');
}else{
$data = $data->row();
$res['inv'] = $data;
}
return $res;
}
public function drop_vendor()
{
$res = array(' ' => 'Pilih Salah Satu');
$data = $this->mgb->find('tbl_vendor')->result_array();
foreach($data as $i){
$arr = array( $i['vendor_id'] => $i['vendor_id'].' - '.$i['vendor_name']);
$res = $res + $arr;
}
return $res;
}
public function drop_invoice()
{
$res = array(' ' => 'Pilih Salah Satu');
$data = $this->mgb->find('vw_invoice',array('status' => 2, 'vendor_id' => $this->input->post('vnd') ))->result_array();
foreach($data as $i){
$arr = array( $i['invoice_id'].'-'.$i['vendor_id'] => $i['invoice_id'].' - '.$i['vendor_name']);
$res = $res + $arr;
}
return $res;
}
public function drop_bank()
{
$res = array(' ' => 'Pilih Salah Satu');
$data = $this->mgb->find('tbl_bank')->result_array();
foreach($data as $i){
$arr = array( $i['bank_id'] => $i['bank_id'].' - '.$i['bank_name']);
$res = $res + $arr;
}
return $res;
}
public function lookup()
{
$keyword = $this->input->post('term');
$data['response'] = 'false'; //Set default response
$this->db->select('*')->from('tbl_vendor');
$this->db->like('vendor_name',$keyword,'both');
$query = $this->db->get();
$result = $query->result();
if( ! empty($result) )
{
$data['response'] = 'true'; //Set response
$data['message'] = array(); //Create array
foreach( $result as $row )
{
$data['message'][] = array(
'id' => $row->vendor_id,
'value' => $row->vendor_id.' - '.$row->vendor_name,
'addr' => $row->vendor_address,
''
); //Add a row to array
}
}
if('IS_AJAX')
{
echo json_encode($data); //echo json string if ajax request
}
else
{
return false;
}
}
public function parsial_lookup()
{
$keyword = $this->input->post('term');
$vendor = $this->input->post('vnd');
$data['response'] = 'false'; //Set default response
$this->db->select('*')->from('tbl_invoice');
$this->db->like('invoice_id', $keyword, 'both');
$this->db->where('vendor_id', $vendor);
$this->db->where('status = 2 OR status = 4');
$query = $this->db->get();
$result = $query->result();
if( ! empty($result) )
{
$data['response'] = 'true'; //Set response
$data['message'] = array(); //Create array
foreach( $result as $row )
{
$data['message'][] = array(
'id' => $row->invoice_id,
'value' => $row->invoice_id,
'pvaf' => $row->no_pvaf,
'payable' => $row->payable_amount,
'sisa' => $row->sisa,
); //Add a row to array
}
}
if('IS_AJAX')
{
echo json_encode($data); //echo json string if ajax request
}
else
{
return false;
}
}
public function get_parsial()
{
$data = $this->mgb->find("tbl_invoice_cicilan",array("concat(invoice_id,'-',vendor_id)" => $this->input->post('aidi') ));
if(!$data)
{
$res['invoice'] = array();
}else{
$data = $data->result_array();
$res['invoice'] = $data;
}
return $res;
}
public function save_cicilan()
{
$this->db->trans_begin();
$param = $this->input->post();
$qry = "SELECT (MAX(cicilan_ke)+1) AS cicilan FROM tbl_invoice_cicilan
WHERE invoice_id = ? AND vendor_id = ?";
$cicilanke = $this->db->query($qry,array($param['invoice_id'], $param['vendor_id']))->row();
$cicilanke = $cicilanke->cicilan;
$cicilanke == '' ? $cicilanke = 1 : $cicilanke ;
$save = $this->mgb->replace('tbl_invoice',array('status' => 4, 'no_pvaf' => $param['no_pvaf']),array("concat(invoice_id,'-',vendor_id)" => $param['invoice_id'].'-'.$param['vendor_id']));
unset($param['no_pvaf']);
unset($param['vendor']);
unset($param['invoice']);
unset($param['bank_name']);
$param['cicilan_ke'] = $cicilanke;
$save = $this->mgb->write('tbl_invoice_cicilan',$param);
$qry = "UPDATE tbl_invoice ti,tbl_invoice_cicilan tic SET tic.sisa_bayar = ti.sisa
WHERE ti.invoice_id = tic.invoice_id AND ti.vendor_id = tic.vendor_id AND tic.cicilan_ke = ?";
$this->db->query($qry,array($cicilanke));
if($this->db->trans_status() === TRUE){
$this->session->set_flashdata('flash_msg', succ_msg('Pembayaran Invoice telah berhasil'));
$this->db->trans_commit();
}else{
$this->session->set_flashdata('flash_msg', err_msg('Terjadi kesalahan, coba beberapa saat lagi'));
$this->db->trans_rollback();
}
redirect('invoice');
}
public function delete()
{
//print_r($this->input->post());
$param = $this->input->post();
$param['status'] = 3;
$save = $this->mgb->replace('tbl_invoice',$param,array("invoice_id" => $param['invoice_id'], "vendor_id" => $param['vendor_id']));
if($save == TRUE){
$this->session->set_flashdata('flash_msg', succ_msg('Invoice berhasil dihapus.'));
}else{
$this->session->set_flashdata('flash_msg', err_msg('Terjadi Kesalahan'));
}
redirect('invoice');
}
}
* Lanjutan Di Post #2 Gan *
Diubah oleh skiddie 16-07-2013 17:49


zharki memberi reputasi
1
5.9K
Kutip
5
Balasan
Thread Digembok
Urutan
Terbaru
Terlama
Thread Digembok
Komunitas Pilihan