<?php
namespace myresto\controllers;

use Yii;
use yii\web\Controller;
use myresto\models\ImportPayment;
use myresto\models\SyncConfig;

class ImportPaymentController extends Controller {
    public function actionIndex() {
        $model = new ImportPayment();
        $tipe_tabel = $model->tipe_tabel;
        $conn = SyncConfig::getConnection();
        $config = SyncConfig::find()->where(['type_con' => 'resto'])->one();
        $access_token = $config->api_key;

        if (isset($_POST['date_start'])) {$start = $_POST['date_start'];} else {$start = '0000-00-00';}
        if (isset($_POST['date_end'])) {$end = $_POST['date_end'];} else {$end = '0000-00-00';}

        $idHeaderLog = $_POST['idHeaderLog'];

        $stmt = mysqli_query($conn, "SELECT id_header FROM sync_to_jurnal WHERE id_header < '$idHeaderLog' ORDER BY id_header DESC LIMIT 1");
        $row = mysqli_fetch_assoc($stmt);
        $lastheader = $row['id_header'];

        $result = $model->ambilData("import", $tipe_tabel, $access_token, $start, $end);

        if ($result != NULL) {
            $jurnal_entry = $result['jurnal'];
            $pembulatan = $result['pembulatan'];
            $account = $result['method'];
            unset($result['jurnal']);
            unset($result['pembulatan']);
            unset($result['method']);
            $response = $model->kirimData($result, $access_token, 'receive_payments/batch_create');
            
            // BEGIN - Proses mengirim data jurnal entry ke jurnal
            $hasil = $jurnal_entry - $pembulatan;
            if ($hasil < 2) {
                $model->kirimJurnalEntry($jurnal_entry, $result, $access_token, $account);
            }
            // END - Proses mengirim data jurnal entry ke jurnal

            $simpan = $model->simpanStatus($response, $tipe_tabel, $idHeaderLog, $lastheader);
            $echo = $simpan;
            // END - proses ambil, kirim dan simpan data yang baru
        } else {
            // BEGIN - proses ambil, kirim dan simpan data yang gagal diimport
            $echo = "pay";
            /*$stmt = mysqli_query($conn, "SELECT * FROM sync_to_jurnal WHERE status_sinkron = 'proses' AND tipe_tabel = '$tipe_tabel'");
            if (mysqli_fetch_assoc($stmt) > 0) {
                $result = $model->ambilData("reimport", $tipe_tabel, $access_token, $start, $end);
                //echo json_encode($result);
                for ($i=0; $i < count($result['receive_payments']); $i++) { 
                    $id_lokal[$i] = $result['receive_payments'][$i]['receive_payment']['id'];
                    unset($result['receive_payments'][$i]['receive_payment']['id']);
                }
                $response = $model->kirimData($result, $access_token, 'receive_payments/batch_create');
                $simpan = $model->simpanStatus($response, $tipe_tabel, $id_lokal, $idHeaderLog);
                $echo = $simpan;
            } else {
                mysqli_query($conn, "UPDATE sync_to_jurnal SET status_sinkron = 'proses' WHERE status_sinkron = 'failed' AND tipe_tabel = '$tipe_tabel'");

            }*/
            // END - proses ambil, kirim dan simpan data yang gagal diimport
        }

        return $echo;
    }
}