<?php

namespace App\Http\Controllers\Api;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Http\Models\IbuHamil;
use Validator;
use File;

class APIIstriController extends Controller
{
    public function cariibu(Request $request)
    {
        $ibu = IbuHamil::where('nik',$request->nik)
                ->with('provinsi')
                ->with('desa')
                ->with('kecamatan')
                ->with('kabupaten')
                ->first();
        if($ibu){
            $ibu = [
                "id_bumil" => $ibu->id_bumil,
                "nik" => $ibu->nik,
                "nama_bumil" => $ibu->nama_bumil,
                "tmp_lahir" => $ibu->tmp_lahir,
                "tgl_lahir" => $ibu->tgl_lahir,
                "agama" => $ibu->agama,
                "suku" => $ibu->suku,
                "pendidikan" => $ibu->pendidikan,
                "pekerjaan" => $ibu->pekerjaan,
                "nama_suami" => $ibu->nama_suami,
                "alamat_ktp" => $ibu->alamat_ktp,
                "kabupaten_ktp_id" => $ibu->kabupaten->nama_kabupaten,
                "provinsi_ktp_id" => $ibu->provinsi->nama_provinsi,
                "kecamatan_ktp_id" => $ibu->kecamatan->nama_kecamatan,
                "desa_ktp_id" => $ibu->desa->nama_desa,
                "no_tlp" => $ibu->no_tlp,
                "foto" => $ibu->foto,
            ];
            $return = ['status'=>'success','code'=>'200','message'=>'','data'=>$ibu];
        }else{
            $return = ['status'=>'error','code'=>'404','message'=>'Data Istri tidak ditemukan','data'=>''];
        }
        return response()->json($return);
    }
    
    public function inputdataibu(Request $request){
        $rules = [
            'nik'=>'required',
            'nama'=>'required',
            'tmp_lahir'=>'required',
            'tanggal_lahir'=>'required',
            'no_telp'=>'required',
            'agama'=>'required',
            'suku'=>'required',
            'kabupaten_id'=>'required',
            'kabupaten_id'=>'required',
            'desa_id'=>'required',
            'alamat'=>'required',
            'pendidikan'=>'required',
            'pekerjaan'=>'required',
            'foto'=>'required',
        ];   

        $messages = ['required'=>'Kolom Harus Di isi'];

        $valid = Validator::make($request->all(), $rules, $messages);
        if(!$valid->fails()){
            $cekBumil = IbuHamil::where('nik', $request->nik)->first();
            if (empty($cekBumil)) {
                $IbuHamil = new IbuHamil;
                $IbuHamil->nik = $request->nik;
                $IbuHamil->nama_bumil = $request->nama;
                $IbuHamil->tmp_lahir = $request->tmp_lahir;
                $IbuHamil->tgl_lahir = $request->tanggal_lahir;
                $IbuHamil->agama = $request->agama;
                $IbuHamil->suku = $request->suku;
                $IbuHamil->pendidikan = $request->pendidikan;
                $IbuHamil->nama_suami =  $request->nama_suami;
                $IbuHamil->alamat_ktp = $request->alamat;
                $IbuHamil->provinsi_ktp_id = $request->provinsi_id;
                $IbuHamil->kabupaten_ktp_id = $request->kabupaten_id;
                $IbuHamil->kecamatan_ktp_id = $request->kecamatan_id;
                $IbuHamil->desa_ktp_id = $request->desa_id;
                $IbuHamil->no_tlp = $request->no_telp;
                $IbuHamil->pekerjaan = $request->pekerjaan;
                if (!empty($request->foto)) {
                    date_default_timezone_set('Asia/Jakarta');
                    $ukuranFile = filesize($request->foto);
                    if ($ukuranFile <= 500000) {
                        $ext_foto = $request->foto->getClientOriginalExtension();
                        $filename = "Istri_".date('Ymd-His')."_".$request->nama.".".$ext_foto;
                        $temp_foto = 'dist/img/istri/';
                        $proses = $request->foto->move($temp_foto, $filename);
                        $IbuHamil->foto = $filename;
                    }else{
                        $file=$_FILES['foto']['name'];
                        if(!empty($file)){
                            $direktori="dist/img/istri/"; //tempat upload foto
                            $name='foto'; //name pada input type file
                            $namaBaru="Istri_".date('Ymd-His')."_".$request->nama; //name pada input type file
                            $quality=50; //konversi kualitas gambar dalam satuan %
                            $upload = CompresImage::UploadCompress($namaBaru,$name,$direktori,$quality);
                        }
                        $ext_foto = $request->foto->getClientOriginalExtension();
                        $IbuHamil->foto = $namaBaru.".".$ext_foto;
                    }
                }
                $IbuHamil->save();

                if($IbuHamil){
                    $return = ['status'=>'success','code'=>'200','message'=>'Data Ibu Berhasil Ditambahkan !!', 'data'=>''];
                }else{
                    $return = ['status'=>'error','code'=>'500','message'=>'Data Ibu Gagal Ditambahkan !!', 'data'=>''];
                }
            }else{
                $return = ['status'=>'error','code'=>'500','message'=>'NIK Ibu Sudah Digunakan !!', 'data'=>''];
            }

        }else{
            $pesan = $valid->messages();
            $return = ['status'=>'error','code'=>'400','message'=>$pesan, 'data'=>''];
        }

        return response()->json($return);
    }

    public function editdataibu(Request $request){
        $rules = [
            'id_bumil'=>'required',
            'nik'=>'required',
            'nama'=>'required',
            'tmp_lahir'=>'required',
            'tanggal_lahir'=>'required',
            'agama'=>'required',
            'suku'=>'required',
            'pendidikan'=>'required',
            'alamat'=>'required',
            'provinsi_id'=>'required',
            'kabupaten_id'=>'required',
            'kecamatan_id'=>'required',
            'desa_id'=>'required',
            'no_telp'=>'required',
            'pekerjaan'=>'required',
            /*'foto'=>'required',*/
        ];   

        $messages = ['required'=>'Kolom Harus Di isi'];

        $valid = Validator::make($request->all(), $rules, $messages);
        if(!$valid->fails()){

            $IbuHamil = IbuHamil::find($request->id_bumil);
            $IbuHamil->nik = $request->nik;
            $IbuHamil->nama_bumil = $request->nama;
            $IbuHamil->tmp_lahir = $request->tmp_lahir;
            $IbuHamil->tgl_lahir = $request->tanggal_lahir;
            $IbuHamil->agama = $request->agama;
            $IbuHamil->suku = $request->suku;
            $IbuHamil->pendidikan = $request->pendidikan;
            $IbuHamil->nama_suami =  $request->nama_suami;
            $IbuHamil->alamat_ktp = $request->alamat;
            $IbuHamil->provinsi_ktp_id = $request->provinsi_id;
            $IbuHamil->kabupaten_ktp_id = $request->kabupaten_id;
            $IbuHamil->kecamatan_ktp_id = $request->kecamatan_id;
            $IbuHamil->desa_ktp_id = $request->desa_id;
            $IbuHamil->no_tlp = $request->no_telp;
            $IbuHamil->pekerjaan = $request->pekerjaan;

            if (!empty($request->foto)) {
                if ($IbuHamil->foto != null) {
                    File::delete('dist/img/istri/'.$IbuHamil->foto);
                }
                date_default_timezone_set('Asia/Jakarta');
                $ukuranFile = filesize($request->foto);
                if ($ukuranFile <= 500000) {
                    $ext_foto = $request->foto->getClientOriginalExtension();
                    $filename = "Istri_".date('Ymd-His')."_".$request->nama.".".$ext_foto;
                    $temp_foto = 'dist/img/istri/';
                    $proses = $request->foto->move($temp_foto, $filename);
                    $IbuHamil->foto = $filename;
                }else{
                    $file=$_FILES['foto']['name'];
                    if(!empty($file)){
                        $direktori="dist/img/istri/"; //tempat upload foto
                        $name='foto'; //name pada input type file
                        $namaBaru="Istri_".date('Ymd-His')."_".$request->nama; //name pada input type file
                        $quality=50; //konversi kualitas gambar dalam satuan %
                        $upload = CompresImage::UploadCompress($namaBaru,$name,$direktori,$quality);
                    }
                    $ext_foto = $request->foto->getClientOriginalExtension();
                    $IbuHamil->foto = $namaBaru.".".$ext_foto;
                }
            }
            $IbuHamil->save();

            if($IbuHamil){
                $return = ['status'=>'success','code'=>'200','message'=>'Data Ibu Berhasil Ditambahkan !!', 'data'=>$IbuHamil];
            }else{
                $return = ['status'=>'error','code'=>'500','message'=>'Data Ibu Gagal Ditambahkan !!', 'data'=>''];
            }

        }else{
            $pesan = $valid->messages();
            $return = ['status'=>'error','code'=>'400','message'=>$pesan, 'data'=>''];
        }

        return response()->json($return);
    }
}
