Thống kê theo nhân viên mượn trả trong phần mềm SliMS

BlogITCode xin chia sẻ cho các bạn cách tạo bộ lọc để thống kê tài liệu mượn trả theo nhân viên thực hiện, bộ lọc này cho phép thống kê theo nhân viên thực hiện và có thể kết hợp với các điều kiện lọc như: ngày mượn trả, nhóm bạn đọc, kho lưu trữ, cho mượn tài liệu, ghi trả tài liệu.

Để tạo bộ lọc này hơi phức tạp một chúc nên các bạn làm chính xác các bước (ưu tiên thực hiện bởi các bạn biết lập trình):

* Lưu ý: 

- Sao lưu source code và cơ sở dữ liệu sql (rất quan trọng vì sẽ can thiệp vào cấu trúc database);

- Tên thư mục chứa source code của BlogITCode là slim, database cũng là slims, khi thực hiện bạn phải thay đổi theo đúng tên thư mục chứa souce code và database của bạn;

* Bước 1 (tạo bộ lọc):

- Tải về file loan_by_staff.php (link tải file hia sẻ bên dưới) và copy bỏ vào thư mục customs (www\slims\admin\modules\reporting\customs);

- Mở file customs_report_list.inc.php nằm trong thư mục customs (www\slims\admin\modules\reporting\customs), thêm đoạn code sau vào vị trí bạn muốn để hiển thị menu truy cập:

/* Custom reports list */

$menu[] = array(__('Loans by staff'), MWB.'reporting/customs/loan_by_staff.php', __('Loans by staff'));

- Mở tiếp file messages.pot thêm đoạn dịch sau:

#: Custom by Garidinh

msgid "Loans by staff"

msgstr "Nhân viên thực hiện"

- Sau đó bạn dùng các phần mềm dịch ngôn ngữ như Poedit để chuyển ngôn ngữ đã dịch (các bạn có thể lên mạng tìm cách sử dụng phần mềm Poedit);

- Sau khi thực hiện các công đoạn trên bạn sẽ được bộ lọc như hình bên dưới


Thống kê theo nhân viên mượn trả trong phần mềm SliMS

Thống kê theo nhân viên mượn trả trong phần mềm SliMS

* Bước 2  (chỉnh sửa cơ sở dữ liệu sql, bước này rất quan trọng):

- Truy cập database slims;

- Mở database này lên bạn sẽ thấy có 2 bảng là 'loan''loan_history'. Bảng loan_history sẽ được lấy dữ liệu tự động từ bảng loan thông qua phương thức Triggers (giải thích thêm cho các bạn lập trình, nếu bạn không quan tâm có thể thực hiện công đoạn tiếp theo);

- Mở bảng 'loan_history' thêm cột "uid" với kiểu giá trị là int;

- Mở tiếp bảng 'loan' lên sau đó chọn menu Triggers để chỉnh sửa dữ liệu;


- Click vào edit của dòng insert_loan_history, ở phần Definition xóa hết đoạn code có sẵn và thay đó đoạn code sau:

INSERT INTO loan_history

     SET loan_id=NEW.loan_id,

     item_code=NEW.item_code,

     member_id=NEW.member_id,

     loan_date=NEW.loan_date,

     due_date=NEW.due_date,

     renewed=NEW.renewed,

     is_lent=NEW.is_lent,

     is_return=NEW.is_return,

     return_date=NEW.return_date,

     input_date=NEW.input_date,

     last_update=NEW.last_update,

     uid =NEW.uid,

     title=(SELECT b.title FROM biblio b LEFT JOIN item i ON i.biblio_id=b.biblio_id WHERE i.item_code=NEW.item_code),

     biblio_id=(SELECT b.biblio_id FROM biblio b LEFT JOIN item i ON i.biblio_id=b.biblio_id WHERE i.item_code=NEW.item_code),

     call_number=(SELECT IF(i.call_number IS NULL, b.call_number,i.call_number) FROM biblio b LEFT JOIN item i ON i.biblio_id=b.biblio_id WHERE i.item_code=NEW.item_code),

     classification=(SELECT b.classification FROM biblio b LEFT JOIN item i ON i.biblio_id=b.biblio_id WHERE i.item_code=NEW.item_code),

     gmd_name=(SELECT g.gmd_name FROM biblio b LEFT JOIN item i ON i.biblio_id=b.biblio_id LEFT JOIN mst_gmd g ON g.gmd_id=b.gmd_id WHERE i.item_code=NEW.item_code),

     language_name=(SELECT l.language_name FROM biblio b LEFT JOIN item i ON i.biblio_id=b.biblio_id LEFT JOIN mst_language l ON b.language_id=l.language_id WHERE i.item_code=NEW.item_code),

     location_name=(SELECT ml.location_name FROM item i LEFT JOIN mst_location ml ON i.location_id=ml.location_id WHERE i.item_code=NEW.item_code),

     collection_type_name=(SELECT mct.coll_type_name FROM mst_coll_type mct LEFT JOIN item i ON i.coll_type_id=mct.coll_type_id WHERE i.item_code=NEW.item_code),

     member_name=(SELECT m.member_name FROM member m WHERE m.member_id=NEW.member_id),

     member_type_name=(SELECT mmt.member_type_name FROM mst_member_type mmt LEFT JOIN member m ON m.member_type_id=mmt.member_type_id WHERE m.member_id=NEW.member_id)

- Bấm Go để chạy câu lệnh cập nhật cho insert_loan_history ;

- Tiếp theo click vào edit của dòng update_loan_history,  ở phần Definition xóa hết đoạn code có sẵn và thay đó đoạn code sau:

UPDATE loan_history 

    SET is_lent=NEW.is_lent,

    is_return=NEW.is_return,

    renewed=NEW.renewed,

    uid =NEW.uid,

    return_date=NEW.return_date

    WHERE loan_id=NEW.loan_id

- Bấm Go để chạy câu lệnh cho update_loan_history;

- Ngoài ra nếu bạn rành sql có thể chạy câu lệnh để cập nhật Triggers cho bảng 'loan' (thêm truy vấn uid =NEW.uid);

* Bước 3 (hoàn thành tạo bộ lọc):

- Truy cập chức năng thống kê -> Nhân viên thực hiện để xem thành quả;

Thống kê theo nhân viên mượn trả trong phần mềm SliMS


- Chúc các bạn thành công.





Nếu bạn thấy nội dung trên blog hữu ích vui lòng chia sẻ bài viết hoặc mời BlogITCode một ly cà phê nhé!

Mới hơn Cũ hơn
Đọc tiếp: