แจกระบบแจ้งซ่อม, Helpdesk System สำหรับศึกษาและพัฒนาต่อยอด v0.6
Features
-พัฒนาด้วย CodeIgniter framework + Mysql + AdminLTE + Bootstrap4
เงื่อนไขการแจก
-แจก Source code ให้ไปศึกษาและพัฒนาต่อยอด แจกเป็นเวอร์ชั่น มีการอัพเดทเรื่อยๆ
v0.6
Release Date: June 03, 2020.
Features updates
Controllers
– Jobs => add Fn. index, getupdate, updatedata
Models
– Update Data_model => add Fn. all, update_job
Views
– Update template/header.php => add menu Job link to Controller Jobs
– add backend/jobs_list.php, jobs_form_update.php
Databases
– Update tbl_case added tech_id, tech_name, case_update, case_update_log
Set_time_zone
– index.php (Asia/Bangkok)
โค้ดต้นฉบับ *จำเป็นต้องโหลดครับ *แต่ละ version จะมีการอัพเดทและนำมาต่อกันเรื่อยๆ คล้ายๆ จิ๊กซอ ครับ
v0.2 https://devbanban.com/?p=3325
v0.3 https://devbanban.com/?p=3381
v0.4 https://devbanban.com/?p=3479
v0.5 https://devbanban.com/?p=3496
*คลิปแนะนำการอัพเดทระบบ
https://www.youtube.com/watch?v=Kv2GNkpB67A
Code
controllers/Jobs.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Jobs extends CI_Controller { public function __construct() { parent::__construct(); //chk admin status if($this->session->userdata('admin_status') !=1){ redirect('login/logout','refresh'); } $this->load->model('data_model'); } public function index() { //print_r($_SESSION); $data['query']=$this->data_model->all(); $this->load->view('template/header'); $this->load->view('backend/jobs_list',$data); $this->load->view('template/footer'); } public function getupdate($id) { $data['query']=$this->data_model->get_detail($id); // echo '<pre>'; // print_r($data['rsedit']); // echo '</pre>'; // exit(); $this->load->view('template/header'); $this->load->view('backend/jobs_form_update',$data); $this->load->view('template/footer'); } public function updatedata() { // echo '<pre>'; // print_r($_POST); // echo '</pre>'; // exit; $this->form_validation->set_rules('id', 'id', 'trim|required|min_length[1]'); $this->form_validation->set_rules('tech_id', 'tech_id', 'trim|required|min_length[1]'); $this->form_validation->set_rules('case_status', 'case_status', 'trim|required|min_length[1]'); $this->form_validation->set_rules('case_update_log', 'บันทึกการอัพเดทงานซ่อม', 'trim|required|min_length[1]', array('required' => 'กรุณากรอกข้อมูล %s.', 'min_length' => 'กรุณากรอกข้อมูลขั้นต่ำ 1 ตัว')); $this->form_validation->set_rules('tech_name', 'tech_name', 'trim|required|min_length[1]', array('required' => 'ชื่อช่างห้ามว่าง %s.', 'min_length' => 'ชื่อช่างห้ามว่าง')); if ($this->form_validation->run() == FALSE) { $id = $this->input->post('id'); $data['query']=$this->data_model->get_detail($id); $this->load->view('template/header'); $this->load->view('backend/jobs_form_update',$data); $this->load->view('template/footer'); }else{ $this->data_model->update_job(); $this->session->set_flashdata('save_success', TRUE); redirect('jobs','refresh'); } //form vali } } |
models/Data_model.php
1 2 3 4 5 |
public function all() { $query = $this->db->get('tbl_case'); return $query->result(); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
public function update_job() { //Set ว/ด/ป เวลา ให้เป็นของประเทศไทย //date_default_timezone_set('Asia/Bangkok'); //index.php //https://www.codexworld.com/how-to/change-timezone-in-codeigniter/ $data = array( 'case_status' => $this->input->post('case_status'), 'tech_id' => $this->input->post('tech_id'), 'tech_name' => $this->input->post('tech_name'), 'case_update_log' => $this->input->post('case_update_log'), 'case_update' => date('Y-m-d H:i:s') ); $this->db->where('id', $this->input->post('id')); $query=$this->db->update('tbl_case',$data); } |
views/backend
jobs_list.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
<div class="content-wrapper"> <!-- Content Header (Page header) --> <section class="content-header"> <h1> จัดการรายการแจ้งซ่อม </h1> </section> <!-- Top menu --> <?php // echo $this->session->flashdata('msginfo'); ?> <!-- Main content --> <section class="content"> <!-- Your Page Content Here --> <div class="box"> <div class="box-header"> <h3 class="box-title">ตารางข้อมูล</h3> </div><!-- /.box-header --> <div class="box-body"> <div id="example1_wrapper" class="dataTables_wrapper form-inline dt-bootstrap"> <div class="row"> <div class="col-sm-12"> <br /> <table id="example1" class="table table-bordered table-striped dataTable" role="grid" aria-describedby="example1_info"> <thead> <tr role="row" class="info"> <th tabindex="0" rowspan="1" colspan="1" style="width: 5%;">No.</th> <th tabindex="0" rowspan="1" colspan="1" style="width: 10%;">ประเภท</th> <th tabindex="0" rowspan="1" colspan="1" style="width: 45%;">รายละเอียด</th> <th tabindex="0" rowspan="1" colspan="1" style="width: 25%;">ผู้แจ้ง</th> <th tabindex="0" rowspan="1" colspan="1" style="width: 15%;">สถานะ</th> <th tabindex="0" rowspan="1" colspan="1" style="width: 5%;">จัดการ</th> </tr> </thead> <tbody> <?php foreach ($query as $rs) { ?> <tr role="row"> <td align="center"><?= $rs->id;?></td> <td><?= $rs->case_type;?></td> <td><?= $rs->case_detail .'<br>' .'ว/ด/ป ' .date('d/m/Y H:i:s',strtotime($rs->date_save)) .' น.' ;?></td> <td> <?= $rs->p_name .'<br>' .'email : ' .$rs->p_email ;?></td> <td> <?php if($rs->case_status==1){ echo 'รอดำเนินการ'; }elseif($rs->case_status==2){ echo 'กำลังดำเนินการ'; }elseif($rs->case_status==3){ echo 'เสร็จสิ้น'; }else{ echo 'ยกเลิก'; } ?> </td> <td> <a href="<?php echo site_url('jobs/getupdate/'.$rs->id); ?>" class="btn btn-success btn-xs"> จัดการ </a> </td> </tr> <?php } ?> </tbody> </table> </div> </div> </div> </div><!-- /.box-body --> </div> </section><!-- /.content --> </div><!-- /.content-wrapper --> |
jobs_form_update.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 |
<div class="content-wrapper"> <!-- Content Header (Page header) --> <section class="content-header"> <h1> ฟอร์มอัพเดทงานซ่อม </h1> </section> <!-- Main content --> <section class="content"> <div class="container"> <div class="row"> <div class="col-sm-12"> <!-- Your Page Content Here --> <div class="box box-primary"> <div class="box-header with-border"> <!-- <h3 class="box-title"> +ข่าวใหม่ </h3> --> </div><!-- /.box-header --> <!-- form start --> <form role="form" action="<?= site_url('jobs/updatedata'); ?>" method="post" class="form-horizontal"> <div class="box-body"> <div class="col-sm-6"> <div class="form-group"> <div class="col-sm-3 control-label"> JobNo. </div> <div class="col-sm-3"> <input type="number" name="id" class="form-control" readonly value="<?= $query->id;?>"> <span class="fr"><?= form_error('id'); ?></span> </div> </div> <div class="form-group"> <div class="col-sm-3 control-label"> ประเภทการแจ้ง </div> <div class="col-sm-7"> <select class="form-control" disabled> <option value="<?= $query->case_type;?>"><?= $query->case_type;?></option> </select> </div> </div> <div class="form-group"> <div class="col-sm-3 control-label"> รายละเอียด </div> <div class="col-sm-8"> <textarea class="form-control" disabled><?= $query->case_detail;?></textarea> </div> </div> <div class="form-group"> <div class="col-sm-3 control-label"> สถานที่ </div> <div class="col-sm-8"> <textarea class="form-control" disabled><?= $query->case_loc;?></textarea> </div> </div> <div class="form-group"> <div class="col-sm-3 control-label"> ผู้แจ้ง </div> <div class="col-sm-7"> <input type="text" class="form-control" disabled value="<?= $query->p_name;?>"> </div> </div> <div class="form-group"> <div class="col-sm-3 control-label"> อีเมลผู้แจ้ง </div> <div class="col-sm-7"> <input type="text" class="form-control" disabled value="<?= $query->p_email;?>"> </div> </div> <div class="form-group"> <div class="col-sm-3 control-label"> ภาพประกอบ </div> <div class="col-sm-5"> <img src="<?= base_url('./asset/uploads/'.$query->p_img); ?>" width="100%"> <br> ว/ด/ป : <?= $query->date_save;?> </div> </div> </div> <!-- sm-6 --> <div class="col-sm-6"> <div class="form-group"> <div class="col-sm-6"> สถานะล่าสุด <span class="fr">*</span> <span class="fr"><?= form_error('case_status'); ?></span> <select name="case_status" required class="form-control"> <option value=""> <?php if($query->case_status==1){ echo 'รอดำเนินการ'; }elseif($query->case_status==2){ echo 'กำลังดำเนินการ'; }elseif($query->case_status==3){ echo 'เสร็จสิ้น'; }else{ echo 'ยกเลิก'; } ?> </option> <option value="">--เปลี่ยน---</option> <option value="1">-รอดำเนินการ</option> <option value="2">-กำลังดำเนินการ</option> <option value="3">-เสร็จสิ้น</option> <option value="4">-ยกเลิก</option> </select> </div> <div class="col-sm-5"> ว/ด/ป (ล่าสุด) <input type="text" class="form-control" value="<?= $query->case_update; ?>" disabled> </div> </div> <div class="form-group"> <div class="col-sm-7"> บันทึกการอัพเดทงานซ่อม<span class="fr">*</span> <textarea name="case_update_log" placeholder="*ต้องการข้อมูล" class="form-control" required><?= $query->case_update_log;?></textarea> <span class="fr"><?= form_error('case_update_log'); ?></span> </div> </div> <div class="form-group"> <div class="col-sm-4"> ผู้บันทึก <input type="text" class="form-control" readonly name="tech_name" value="<?= $_SESSION['admin_name'];?>"> <input type="hidden" class="form-control" name="tech_id" value="<?= $_SESSION['id'];?>"> <span class="fr"><?= form_error('admin_name'); ?></span> <span class="fr"><?= form_error('tech_id'); ?></span> </div> </div> <div class="form-group"> <div class="col-sm-12"> <button class="btn btn-primary" type="submit"> <i class="fa fa-fw fa-save"></i> บันทึกข้อมูล</button> <a class="btn btn-danger" href="<?= site_url('jobs'); ?>" role="button"><i class="fa fa-fw fa-close"></i> ยกเลิก</a> </div> </div> </div> </div><!-- /.box-body --> </form> </div> </div> </div> </div> </section><!-- /.content --> </div><!-- /.content-wrapper --> |
views/template
header.php
1 |
<li><a href="<?= site_url('jobs');?>"><i class="fa fa-home"></i> <span>Jobs</span></a></li> |
*คอร์สออนไลน์สอน CodeIgniter แบบละเอียดทุกขั้นตอนคลิก
สนใจระบบนี้ inbox มาที่เพจครับ
ร่วมสนับสนุน ค่ากาแฟ ค่าโฮส devbanban.com ได้ที่
ธนาคารกรุงไทย สาขาเดอะมอลล์ท่าพระ
ชื่อบัญชี นายพิศิษฐ์ บวรเลิศสุธี เลขที่ 878-0-17747-6
————————————————————————————
ธนาคารไทยพาณิชย์ สาขามหาวิทยาลัยราชภัฏธนบุรี
ชื่อบัญชี นายพิศิษฐ์ บวรเลิศสุธี เลขที่ 406-359094-1
————————————————————————————
ธนาคารกสิกร สาขาเออร์เบิร์น สแควร์ ประชาชื่น
ชื่อบัญชี นายพิศิษฐ์บวรเลิศสุธี เลขที่ 048-1-17571-2
แฟนเพจ : https://www.facebook.com/sornwebsites/