<?php
date_default_timezone_set('Asia/Jakarta');

$RECIPIENTS    = [
//"6281806427245",
    "6281281032178", // Geofrey
    "6287875510443", //Bernard
    //"628119785008", //Pak Larry
    "628129787435", //Lisa
    "628118594444", //Aji
    "6287880088880", //Deny
    "628170793555", //Freddy
    "6281927285959", //Yakob
    "6282145050245", //Fajar
    "6285693472881", //Kevin
    "628121070301", //chrisna
    "6282122577997", //bonie
    "628119785008",
    "6282256987315" //welly 
];

$TEMPLATE_NAME = "reporting_odoo_v4c_cakra";

// ===== Helpers =====
function getAccessToken() {
    $email = "freshfactory@mim.in";
    $pass  = "!Werty123";
    $curl = curl_init('https://mimin-api.mimin.io/whatsapp-api/api/v1/auth/login');
    curl_setopt_array($curl, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_POST => true,
        CURLOPT_POSTFIELDS => json_encode(['email'=>$email,'password'=>$pass]),
        CURLOPT_HTTPHEADER => ['Content-Type: application/json']
    ]);
    $resp = curl_exec($curl);
    curl_close($curl);
    $json = json_decode($resp,true);
    return $json['token'] ?? false;
}

function formatAmount($val) {
    $val = $val ?? 0;
    if ($val >= 1_000_000_000) return round($val/1_000_000_000,1).' M';
    if ($val >= 1_000_000) return round($val/1_000_000,1).' jt';
    if ($val >= 1_000) return round($val/1_000).' rb';
    return (string)$val;
}

function formatNumber($val) {
    return number_format($val ?? 0,0,',','.');
}

// ===== Ambil data Odoo =====
$curl = curl_init();
curl_setopt_array($curl, [
    CURLOPT_URL => 'https://freshfactory.odoo.com/api/sale/new_walist',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => '{}',
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer bd2a55cb906bfa313fc7d2a3235ba58b4d1425c5',
        'Content-Type: application/json'
    ],
]);
$response = curl_exec($curl);
curl_close($curl);

if (!$response) die("Gagal ambil data dari Odoo");

$data = json_decode($response,true);
$dataSo = $data['result']['data_so'] ?? [];

// ===== Cari PT. Cakra Guna Distribusi =====
$cakra = null;
foreach($dataSo as $item){
    if($item['name'] === "PT. Cakra Guna Distribusi"){
        $cakra = $item;
        break;
    }
}
if(!$cakra) die("Data PT. Cakra Guna Distribusi tidak ditemukan");

// ===== Build bodyValues =====
$bodyValues = [];

// 1: tanggal kemarin
$bodyValues[] = date('d M Y', strtotime('-1 day'));

// 2-33: posisi sesuai template
$fields = [
    ['so_num_now','so_num_mtd'],
    ['so_amount_now','so_amount_mtd'],
    ['do_num_now','do_num_mtd'],
    ['do_amount_now','do_amount_mtd'],
    ['si_num_now','si_num_mtd'],
    ['si_amount_now','si_amount_mtd'],
    ['pay_num_now','pay_num_mtd'],
    ['pay_amount_now','pay_amount_mtd'],
    ['ret_num_now','ret_num_mtd'],
    ['ret_amount_now','ret_amount_mtd'],
    ['do_cancel_num_now','do_cancel_num_mtd'],
    ['do_cancel_amount_now','do_cancel_amount_mtd'],
    ['rc_new_now','rc_new_mtd'],
    ['ro_new_now','ro_new_mtd'],
    ['rc_num_all','rc_num_all'],
    ['ro_num_all','ro_num_all']
];

foreach($fields as $f){
    $now = $cakra[$f[0]] ?? 0;
    $mtd = $cakra[$f[1]] ?? 0;
    if(strpos($f[0],'amount')!==false){
        $bodyValues[] = formatAmount($now);
        $bodyValues[] = formatAmount($mtd);
    } else {
        $bodyValues[] = formatNumber($now);
        $bodyValues[] = formatNumber($mtd);
    }
}

// ===== Kirim WhatsApp =====
$token = getAccessToken();
if($token){
    foreach($RECIPIENTS as $phone){
        $data = [
            "name"=>$TEMPLATE_NAME,
            "parameter_format"=>"POSITIONAL",
            "phone"=>$phone,
            "category"=>"UTILITY",
            "allow_category_change"=>true,
            "language"=>"id",
            "components"=>[[
                "type"=>"BODY",
                "text"=>"Tim Cakra,\nBerikut laporan kegiatan *Kemarin (& MTD)* tgl *{{1}}* (Odoo)\n\n*CGD:*\n1. SO #  : {{2}} ({{3}})\n2. SO Rp : {{4}} ({{5}})\n3. DO #  : {{6}} ({{7}})\n4. DO Rp : {{8}} ({{9}})\n5. SI #  : {{10}} ({{11}})\n6. SI Rp : {{12}} ({{13}})\n7. Payment #  : {{14}} ({{15}})\n8. Payment Rp : {{16}} ({{17}})\n9. Return #   : {{18}} ({{19}})\n10. Return Rp  : {{20}} ({{21}})\n11. DO Cancel #  : {{22}} ({{23}})\n12. DO Cancel Rp : {{24}} ({{25}})\n13. New RC #  : {{26}} ({{27}})\n14. New RO #  : {{28}} ({{29}})\n15. Total RC #  : {{30}} ({{31}})\n16. Total RO #  : {{32}} ({{33}})",
                "example"=>["body_text"=>[$bodyValues]]
            ]]
        ];

        $ch = curl_init('https://mimin-api.mimin.io/whatsapp-api/api/v1/whatsapp-dynamic/send-waba-template');
        curl_setopt_array($ch, [
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_POST => true,
            CURLOPT_HTTPHEADER => ['Content-Type: application/json',"Authorization: Bearer $token"],
            CURLOPT_POSTFIELDS => json_encode($data,JSON_UNESCAPED_UNICODE)
        ]);
        $resp = curl_exec($ch);
        curl_close($ch);
        echo "Sent to $phone. Response: $resp\n";
    }
} else {
    echo "❌ Failed to retrieve access token.\n";
}
