Advertisement
jamboljack

Sync Klasemen/Medali

Nov 21st, 2022
729
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.84 KB | None | 0 0
  1. public function syncdata()
  2.     {
  3.         $listKontingen = $this->db->order_by('kontingen_id', 'asc')->get_where('porprov_kontingen', array('kontingen_status' => 'A'))->result();
  4.         foreach ($listKontingen as $r) {
  5.             $kontingen_id = $r->kontingen_id;
  6.             // Tipe Cabor Medali per Nomor
  7.             $dataEmasNomor     = $this->db->group_by('kontingen_id')->group_by('medali_id')->group_by('cabor_nomor_id')->get_where('v_medali_peserta', array('kontingen_id' => $kontingen_id, 'cabor_nomor_medali' => 'N', 'medali_id' => 1))->result();
  8.             $dataPerakNomor    = $this->db->group_by('kontingen_id')->group_by('medali_id')->group_by('cabor_nomor_id')->get_where('v_medali_peserta', array('kontingen_id' => $kontingen_id, 'cabor_nomor_medali' => 'N', 'medali_id' => 2))->result();
  9.             $dataPerungguNomor = $this->db->group_by('kontingen_id')->group_by('medali_id')->group_by('cabor_nomor_id')->get_where('v_medali_peserta', array('kontingen_id' => $kontingen_id, 'cabor_nomor_medali' => 'N', 'medali_id' => 3))->result();
  10.             // Tipe Cabor Medali per Medali
  11.             $queryEmas = "SELECT COUNT(medali_peserta_id) AS total FROM v_medali_peserta WHERE kontingen_id=$kontingen_id AND medali_id=1
  12.            AND cabor_nomor_medali='M' GROUP BY kontingen_id, cabor_nomor_id";
  13.             $dataEmasMedali = $this->db->query($queryEmas)->row();
  14.             $emasMedali     = $dataEmasMedali->total;
  15.             $queryPerak     = "SELECT COUNT(medali_peserta_id) AS total FROM v_medali_peserta WHERE kontingen_id=$kontingen_id AND medali_id=2
  16.            AND cabor_nomor_medali='M' GROUP BY kontingen_id, cabor_nomor_id";
  17.             $dataPerakMedali = $this->db->query($queryPerak)->row();
  18.             $perakMedali     = $dataPerakMedali->total;
  19.             $queryPerunggu   = "SELECT COUNT(medali_peserta_id) AS total FROM v_medali_peserta WHERE kontingen_id=$kontingen_id AND medali_id=3
  20.            AND cabor_nomor_medali='M' GROUP BY kontingen_id, cabor_nomor_id";
  21.             $dataPerungguMedali = $this->db->query($queryPerunggu)->row();
  22.             $perungguMedali     = $dataPerungguMedali->total;
  23.  
  24.             // Total Medali
  25.             $emas          = (count($dataEmasNomor) + $emasMedali);
  26.             $perak         = (count($dataPerakNomor) + $perakMedali);
  27.             $perunggu      = (count($dataPerungguNomor) + $perungguMedali);
  28.             $total         = ($emas + $perak + $perunggu);
  29.             $checkKlasemen = $this->db->get_where('porprov_klasemen', array('kontingen_id' => $kontingen_id));
  30.             $num_klas      = $checkKlasemen->num_rows();
  31.             if ($num_klas == 0) {
  32.                 $data = array(
  33.                     'kontingen_id'      => $kontingen_id,
  34.                     'klasemen_emas'     => $emas,
  35.                     'klasemen_perak'    => $perak,
  36.                     'klasemen_perunggu' => $perunggu,
  37.                     'klasemen_total'    => $total,
  38.                     'klasemen_update'   => date('Y-m-d H:i:s'),
  39.                 );
  40.  
  41.                 $this->db->insert('porprov_klasemen', $data);
  42.             } else {
  43.                 $klas = $checkKlasemen->row();
  44.                 $data = array(
  45.                     'klasemen_emas'     => $emas,
  46.                     'klasemen_perak'    => $perak,
  47.                     'klasemen_perunggu' => $perunggu,
  48.                     'klasemen_total'    => $total,
  49.                     'klasemen_update'   => date('Y-m-d H:i:s'),
  50.                 );
  51.  
  52.                 $this->db->where('klasemen_id', $klas->klasemen_id);
  53.                 $this->db->update('porprov_klasemen', $data);
  54.             }
  55.         }
  56.  
  57.         // Update Klasemen di Event
  58.         $dataUpdate = array(
  59.             'meta_update_klasemen' => date('Y-m-d H:i:s'),
  60.         );
  61.  
  62.         $this->db->where('meta_id', 1);
  63.         $this->db->update('porprov_meta', $dataUpdate);
  64.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement