ผลต่างระหว่างรุ่นของ "Tqf/employmentstats"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
 
(ไม่แสดง 1 รุ่นระหว่างกลางโดยผู้ใช้คนเดียวกัน)
แถว 57: แถว 57:
  
 
== ปรับโมเดล CurriculumEmploymentStat เดิม ==
 
== ปรับโมเดล CurriculumEmploymentStat เดิม ==
 +
 +
อย่างที่ผมบอกไว้ ปกติผมจะมีข้อมูลจริงที่ลิงก์กับ curriculum result อีกอัน (จะไม่ขึ้นด้วย imported)  แต่ของเดิมมันฟิลด์ไม่ครบ จะลบก็ไม่ได้ เพราะว่ามีข้อมูลของปีก่อน ๆ อยู่ ผมเลยกะว่าจะเติมฟิลด์ในนี้
 +
 +
คุณก็อาจจะไปเติมใน phpmyadmin แล้วไปสร้างเพิ่มใน migration
 +
 +
ส่วนของโมเดลนี้ ปกติที่ผมทำคือพอโหลดหน้าข้อมูล employmentstats ครั้งแรก ผมก็จะ import ข้อมูลมาจาก ImportedCurriculumEmploymentStat มาใส่ใน model ของจริงอันนี้  (เดี๋ยวผมเอาตัวอย่างมาใส่ให้)
  
 
== หน้า employmentstats ==
 
== หน้า employmentstats ==
 +
 +
: ''เดี๋ยวมาเขียนเพิ่มครับ ผมว่าเท่าที่เขียนมาคุณก็น่าจะต้องสู้กับมันสักพักล่ะ''
  
 
=== เพื่อ test: ตั้งค่า annualcurriculumresult_id เอง ===
 
=== เพื่อ test: ตั้งค่า annualcurriculumresult_id เอง ===
  
 
=== สร้าง controller / ใช้ TQFFastForm ===
 
=== สร้าง controller / ใช้ TQFFastForm ===

รุ่นแก้ไขปัจจุบันเมื่อ 03:34, 5 มิถุนายน 2558

รายละเอียดข้อมูล

แหล่งข้อมูล: จากกองแผนงาน http://www.planning.ku.ac.th/planning/downloads/work/work_index.htm (น่าจะดูของเป็นสรุปผลครั้งที่ 2 นะครับ)

1. ข้อมูลมันจะมีอยู่ 3 ส่วน น่าจะเอามาใส่ฟอร์มข้างต้นได้หมด ยกเว้น field จำนวนผู้สำเร็จการศึกษาที่มีงานทำก่อนเข้าศึกษา ซึ่งเราต้องไปคุยกับเค้าอีกทีว่าจะเอาไง

2. ปัญหาคือในข้อมูลระบุสาขามาอาจจะไม่ตรงกับในหลักสูตร เช่น "วิศวกรรมศาสตรบัณฑิต (วิศวกรรมโยธา-ทรัพยากรน้ำ)" ชื่อในระบบเราเป็น "วิศวกรรมศาสตรบัณฑิต สาขาวิศวกรรมโยธา-ทรัพยากรน้ำ" ซึ่งตรงนี้ช่างมันก่อน เราค่อยไปทำหน้าให้เค้าลิงก์ข้อมูลมา (แถมมีภาคปกติภาคพิเศษแยกกันอีก)

สิ่งที่คุณน่าจะทำคร่าว ๆ

1. สร้างตาราง importedcurriculumemploymentstats (อย่าลืม migration) และโมเดล Model_ImportedCurriculumEmploymentStat

2. เขียน script นำเข้าข้อมูล

3. manually เชื่อมโยงของข้อมูลที่ import มา กับข้อมูลหลักสูตรที่ต้องการกรอก (สักวิธี เดี๋ยวผมเขียนอธิบายเมลถัดไป)

4. ทำหน้า employmentstats ที่แสดงข้อมูลดังกล่าว และมีช่องหนึ่งช่องให้เขียนอธิบาย

ตารางและโมเดล

โดยมากเวลานำเข้าข้อมูลจากภายนอก ผมจะไม่เก็บลงข้อมูลจริงโดยตรง แต่จะสร้างตารางและโมเดลที่ prefix ว่า imported ไว้ก่อน กันบึ้ม

สำหรับข้อมูลการได้งานทำนั้น จริง ๆ มันมีโมเดลอยู่แล้ว ชื่อ Model_CurriculumEmploymentStat (curriculumemploymentstat) แต่ฟิลด์มันจะไม่ครบ (เพราะว่ามันตามฟอร์มเดิม)

ผมเสนอให้คุณดำเนินการดังนี้

1. สร้างตาราง importedcurriculumemploymentstats (ปกติผมจะสร้างใน phpmyadmin สร้าง key อะไรให้เรียบร้อย แล้ว export มาใส่ migration (อยู่ที่ application/migration) อย่าลืม postfix มันด้วย _UP นะ) ตารางนี้จะล้อกับ curriculumemploymentstats

  • convention ของตาราง ต้องมี field id เป็น primary key เป็น int แล้วก็ auto increment
  • ให้เพิ่มฟิลด์ให้ครบตามฟอร์ม
  • ให้มีฟิลด์ imported_curriculum_title (ตรงนี้จะเป็นชื่อที่ไม่ตรง แต่ตรงตามที่เรา import มา)
  • เพิ่มพิลด์ year ระบุปีของข้อมูลด้วย
  • เพิ่มฟิลด์ annualcurriculumresult_id (ตรงนี้ ถ้าเค้าเชื่อมข้อมูลแล้ว เราจะปรับให้ตรงกับ id ของตัวมคอ.7)

2. สร้างโมเดล Model_ImportedCurriculumEmploymentStat (ล้อกับ Model_CurriculumEmploymentStat)

การนำเข้าข้อมูล

เขียนสคริปต์นำเข้าข้อมูลโดยดูตัวอย่างจากบรรดา application/classes/controller/cli/import* เช่น importtqf7curriculuminstructors.php

พวกนี้จะเป็น controller ที่คุณจะเรียกผ่าน CLI โดยจะเรียกจาก tqf directory เลย ประมาณ

$ php index.php --uri=cli/importtqf7curriculuminstructors --file=data.csv --year=2557

เจ้า --file และ --year เนี่ยะ จะเป็น options ที่คุณจะอ่านได้โดยสั่งประมาณ

   $options = CLI::options('file','year');
   if((!isset($options['file'])) || (!isset($options['year']))) {
     exit(1);
   }
   $filename = $options["file"];

ที่เหลือคุณลองดูตัวอย่างในโค้ดเอานะครับ

ทีนี้ ข้อมูลคุณมาจาก excel 3 ไฟล์ คุณอาจจะฟิตเขียน script 3 อันก็ได้ หรือจะเอามารวมด้วยมือก่อน แล้วค่อย export มาเป็น csv ไฟล์เดียวก็ได้นะครับ (ผมนิยมทำแบบนี้)

ปรับโมเดล CurriculumEmploymentStat เดิม

อย่างที่ผมบอกไว้ ปกติผมจะมีข้อมูลจริงที่ลิงก์กับ curriculum result อีกอัน (จะไม่ขึ้นด้วย imported) แต่ของเดิมมันฟิลด์ไม่ครบ จะลบก็ไม่ได้ เพราะว่ามีข้อมูลของปีก่อน ๆ อยู่ ผมเลยกะว่าจะเติมฟิลด์ในนี้

คุณก็อาจจะไปเติมใน phpmyadmin แล้วไปสร้างเพิ่มใน migration

ส่วนของโมเดลนี้ ปกติที่ผมทำคือพอโหลดหน้าข้อมูล employmentstats ครั้งแรก ผมก็จะ import ข้อมูลมาจาก ImportedCurriculumEmploymentStat มาใส่ใน model ของจริงอันนี้ (เดี๋ยวผมเอาตัวอย่างมาใส่ให้)

หน้า employmentstats

เดี๋ยวมาเขียนเพิ่มครับ ผมว่าเท่าที่เขียนมาคุณก็น่าจะต้องสู้กับมันสักพักล่ะ

เพื่อ test: ตั้งค่า annualcurriculumresult_id เอง

สร้าง controller / ใช้ TQFFastForm