<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class TambahAbsen extends CI_Controller {

	public function __construct()
    {
		
        parent::__construct();
        $this->load->model("UserModel");
		$this->load->model("AbsenModel");
		$this->load->model("AbsensiModel");
		$this->load->model("UmkmModel");
		$this->load->model("LaporanModel");

		if($this->UserModel->isNotLogin()) {
			redirect(site_url('login'));
		} elseif(!($this->UserModel->isAdmin())) {
			redirect(site_url('dashboard'));
		} 
		
    }

	public function index()
	{
		$data['tahun']=date('Y');
		if($this->input->post()){
			
			$post = $this->input->post();
			$data['tahun']=$post['tahun'];
			$cek_absen = $this->AbsenModel->getAbsenCountByBulanAndYear($post['bulan'],$post['tahun']);

			if($cek_absen>0){
				$data['msg']="error!";
				
			} else {
				$cek_laporan = $this->LaporanModel->getLaporanCountByYear($post['tahun']);
				if($cek_laporan>0){
					$data['error_tutup_tahun']=$post['tahun'];
				} else {

					if($post['bulan']!=='1'){
						$cek_last_month_absen = $this->AbsenModel->getLastMonthAbsenCountByBulanAndYear($post['bulan'],$post['tahun']);
						if($cek_last_month_absen<1){
	
							if($post['bulan']=='2'){
								$last_mont = 'Januari';
							} elseif($post['bulan']=='3'){
								$last_mont = 'Februari';
							} elseif($post['bulan']=='4'){
								$last_mont = 'Maret';
							} elseif($post['bulan']=='5'){
								$last_mont = 'April';
							} elseif($post['bulan']=='6'){
								$last_mont = 'Mei';
							} elseif($post['bulan']=='7'){
								$last_mont = 'Juni';
							} elseif($post['bulan']=='8'){
								$last_mont = 'Juli';
							} elseif($post['bulan']=='9'){
								$last_mont = 'Agustus';
							} elseif($post['bulan']=='10'){
								$last_mont = 'September';
							} elseif($post['bulan']=='11'){
								$last_mont = 'Oktober';
							} elseif($post['bulan']=='12'){
								$last_mont = 'November';
							} else {
								$last_mont = 'n/a';
							}
	
							$data['error_last_mont']=$last_mont;
	
						} else {
							$jumlahumkm = $this->UmkmModel->getUmkmCount();
							
							$listlastabsensi = $this->AbsensiModel->getLastMonthAbsensi($post['bulan'],$post['tahun']);
	
							$omset = 0;
							$aset = 0;
							$karyawan_l = 0;
							$karyawan_p = 0;
	
							foreach($listlastabsensi as $lastabsensi){
								$aset = $aset + $lastabsensi->aset;
								$karyawan_l = $karyawan_l + $lastabsensi->karyawan_l;
								$karyawan_p = $karyawan_p + $lastabsensi->karyawan_p;
							}
	
							if($this->AbsenModel->save($jumlahumkm,$omset,$aset,$karyawan_l,$karyawan_p)){
								$daftarumkm = $this->UmkmModel->getUmkm();
								$new_absen = $this->AbsenModel->getAbsenByBulanAndYear($post['bulan'],$post['tahun']);
								$id_absen = $new_absen->id_absen;
								$bulan_absen = $new_absen->bulan;
								$tahun_absen =  $new_absen->tahun;
	
								$this->AbsenModel->setOpenAbsen($id_absen);
	
								foreach($daftarumkm as $umkm){
									if($bulan_absen!=='1'){
										if(count($this->AbsensiModel->getLatestAbsensi($post['bulan'],$post['tahun'],$umkm->id_umkm))>0){
											$latestabsensi = $this->AbsensiModel->getLatestAbsensi($post['bulan'],$post['tahun'],$umkm->id_umkm);
											$aset_absensi= $latestabsensi->aset;
											$karyawan_absensi_l = $latestabsensi->karyawan_l;
											$karyawan_absensi_p = $latestabsensi->karyawan_p;
										} else{
											$aset_absensi= $umkm->aset_awal;
											$karyawan_absensi_l= $umkm->karyawan_l;
											$karyawan_absensi_p= $umkm->karyawan_p;
										}
										
									} else {
										$aset_absensi= $umkm->aset_awal;
										$karyawan_absensi_l= $umkm->karyawan_l;
										$karyawan_absensi_p= $umkm->karyawan_p;
									}
									$omset_absensi= 0;
									$this->AbsensiModel->save($id_absen,$umkm->id_umkm,$umkm->id_pemilik,$umkm->id_jenis,$umkm->id_kategori,$umkm->kecamatan,$umkm->kelurahan,$bulan_absen,$tahun_absen,$omset_absensi,$aset_absensi,$karyawan_absensi_l,$karyawan_absensi_p);
									
								}
	
								$data['msg']="success";
								redirect(site_url('admin/absensi'));
							} else {
								$data['msg']="error!";
							}
						}
					} else {
	
					$jumlahumkm = $this->UmkmModel->getUmkmCount();
					$listumkm = $this->UmkmModel->getUmkm();
	
					$omset = 0;
					$aset = 0;
					$karyawan_l = 0;
					$karyawan_p = 0;

					foreach($listumkm as $umkm){
						$aset = $aset + $umkm->aset_awal;
						$karyawan_l = $karyawan_l + $umkm->karyawan_l;
						$karyawan_p = $karyawan_p + $umkm->karyawan_p;
					}
	
					if($this->AbsenModel->save($jumlahumkm,$omset,$aset,$karyawan_l,$karyawan_p)){
						$daftarumkm = $this->UmkmModel->getUmkm();
						$new_absen = $this->AbsenModel->getAbsenByBulanAndYear($post['bulan'],$post['tahun']);
						$id_absen = $new_absen->id_absen;
						$bulan_absen = $new_absen->bulan;
						$tahun_absen =  $new_absen->tahun;
	
						$this->AbsenModel->setOpenAbsen($id_absen);
	
						foreach($daftarumkm as $umkm){
							if($bulan_absen!=='1'){
								$latestabsensi = $this->AbsensiModel->getLatestAbsensi($post['bulan'],$post['tahun'],$umkm->id_umkm);
								$aset_absensi= $latestabsensi->aset;
								$karyawan_absensi_l = $latestabsensi->karyawan_l;
								$karyawan_absensi_p = $latestabsensi->karyawan_p;
							} else {
								$aset_absensi= $umkm->aset_awal;
								$karyawan_absensi_l= $umkm->karyawan_l;
								$karyawan_absensi_p= $umkm->karyawan_p;
							}
							$omset_absensi= 0;
							$this->AbsensiModel->save($id_absen,$umkm->id_umkm,$umkm->id_pemilik,$umkm->id_jenis,$umkm->id_kategori,$umkm->kecamatan,$umkm->kelurahan,$bulan_absen,$tahun_absen,$omset_absensi,$aset_absensi,$karyawan_absensi_l,$karyawan_absensi_p);
							
						}
	
						$data['msg']="success";
						redirect(site_url('admin/absensi'));
					  } else {
						$data['msg']="error!";
					  }
	
					}
				}
				

			}
         
        }


			$data['user_logged'] = $this->session->userdata('user_logged');
			$this->load->view('admin/tambahabsen',$data);
		
	}

	
}