<?php
include_once('../common.php');
include_once ('config.php');
include_once(LOTTO_LIB_PATH.'/lotto.lib.php');

check_device('both');

if( $is_guest ) {
    alert('로그인 후 이용가능합니다.', G5_BBS_URL.'/login.php?url='.urlencode(LOTTO_URL.'/number.php'.($_POST['item'] ? '?item='.$_POST['item'] : '')));
}

$item = $_POST['numberItem'];

if( !$item ) {
    alert('item 값이 없습니다.', LOTTO_URL."/number.php");
}

// if( !$row['ht_min_limit'] ) {
//     $row['ht_min_limit'] = 1;
// }

// if( $numbers_count < $row['ht_min_limit'] ) {
//     alert_ajax(0, "복권은 최소 {$row['ht_min_limit']}장이상 구매해야합니다.", $number_url);
// }

// if( $numbers_count > $row['ht_max_limit'] ) {
//     alert_ajax(0, "복권은 최대 {$row['ht_max_limit']}장까지 구매 가능합니다.", $number_url);
// }

// if( !$draw_count ) {
//     $draw_count = 1;
// }

$available_lotto = get_available_lotto($item);

// if( $draw_count > count($available_lotto['data']) ) {
//     alert_ajax(0, "복권을 연속구매 할 수 없습니다.", $number_url);
// }

// $total_amount = $available_lotto['sum_price'][$draw_count] * $numbers_count;

// if( $member['mb_cash'] < $total_amount ) {
//     alert_ajax(0, "캐시가 부족합니다.", $number_url);
// }

// Create ball number list by Billy
$ball_list_all = [];
for ( $b=0; $b < 100; $b++ ) {
    array_push($ball_list_all, $_POST['BALL'.strval($b+1)]);
}

$game_cnt = $_POST['GAMECNT'];


$draw_count = 1; // 구매 화면에서 즉시주문일 경우 '1'로 초기설정함.
$is_auto_order = isset($_POST['autoOrderChk']) ? trim($_POST['autoOrderChk']) : 0; 
$auto_date_list = array(); // Initiate Arrey for Auto Purchase Date
$auto_time_list = array(); // Initiate Arrey for Auto Purchase Time
if ($is_auto_order == 1) {
    //자동예약주문일 경우 반복 회수 설정.
    $draw_count = isset($_POST['autoOrdCnt']) ? trim($_POST['autoOrdCnt']) : 0; 

    /*** 예약주문 Draw Date 가져오기. -- 로직필요없음
    $auto_sql = "SELECT * FROM {$lo['history_table']} WHERE ht_name = '{$item}' AND ht_result = 'N' AND ht_draw_date > '{$available_lotto['data'][0]['ht_draw_date']}' ORDER BY ht_draw_date ";
    $auto_sql = "SELECT * FROM {$lo['history_table']} WHERE ht_name = '{$item}' AND ht_result = 'N' AND ht_draw_date > '2024-06-28' ORDER BY ht_draw_date ";
    $auto_result = sql_query($auto_sql);
    for( $i=0; $row = sql_fetch_array($auto_result); $i++ ) {
        if ($i < $draw_count) {
            array_push($auto_date_list, $row['ht_draw_date']);
            array_push($auto_time_list, $row['ht_draw_time']);
        }
    } */
}

$ht_price = isset($_POST['price']) ? trim($_POST['price']) : 0; // 새로운 로또가격은 1번호당 3.5캐시, pass from front.
// $ht_price = "3.5"; 
$ki_id = "0"; // Kiosk Id is a Constant
$platform = 'WEB'; // 고정값
$ht_name = isset($_POST['numberItem']) ? trim($_POST['numberItem']) : null;
if (is_null($ht_name)) {
    echo '<script>alert("This is an alert message!");</script>';
    exit();
    header('Location: '.LOTTO_URL.'/number.php');
}

$total_amount = (double)$draw_count * (double)$game_cnt * (double)$ht_price; // Only CASH
if( $member['mb_cash'] < $total_amount ) {
    alert_ajax(0, "캐시가 부족합니다.", $number_url);
}
$tot_amt = isset($_POST['totamt']) ? trim($_POST['totamt']) : 0; // 보너스와 마일리지 포함해서 계산한 금액 받아오기
if( $member['mb_cash'] < (double)$draw_count * $tot_amt ) {
    alert_ajax(0, "캐시가 부족합니다.", $number_url);
}

/*** Save to Database Tables...Payment, Payment Comment, Order */
$amount_for_mileage = 0.0;
for( $i=0; $i < $draw_count; $i++ ) {
    $lotto_info = $available_lotto['data'][$i];
    //$lotto_amount = $lotto_info['ht_price'] * $numbers_count;
    $lotto_amount = (double)$game_cnt * (double)$ht_price;
    $lotto_count = (int)$game_cnt;
    $numbers_count = $lotto_count;

    $sql = "insert into {$lo['payment_table']} set
              mb_id          = '{$member['mb_id']}',
              ht_id          = '{$lotto_info['ht_id']}',
              ki_id          = '{$ki_id}',
              pa_name        = '{$ht_name}',
              pa_draw_date   = '{$lotto_info['ht_draw_date']}',
              pa_draw_time   = '{$lotto_info['ht_draw_time']}',
              pa_price       = '{$ht_price}',
              pa_count       = '{$lotto_count}',
              pa_amount      = '{$lotto_amount}',
              pa_pg          = '{$pg}',
              pa_tid         = '',
              pa_pos_no      = '{$response['TID']}',
              pa_pos_ymdhis  = '{$response['TRANDATE']}',
              pa_issuer_code = '{$response['CARDCODE']}',
              pa_issuer_name = '{$response['CARDNAME']}',
              pa_buyer_code  = '{$response['CARDCODE']}',
              pa_buyer_name  = '{$response['CARDNAME']}',
              pa_card_type   = '',
              pa_card_no     = '{$response['CARDNO']}',
              pa_response    = '{$pay_data}',
              pa_platform    = '{$platform}',
              pa_datetime    = '".G5_TIME_YMDHIS."' ";

    sql_query($sql);
    $pa_id = sql_insert_id();

    if( !$pa_id ) {
        alert_ajax(0, 'DB오류!');
    }

    // 웹에서 구매 시 kiosk 정보가 모두 동일함으로 강제 입력 함. By Billy
    $sql = "insert into {$lo['payment_comm_table']} set
                    pa_id             = '{$pa_id}',
                    pc_class          = 'H',
                    pc_type           = 'A',
                    ki_id             = '0',
                    pc_platform       = '{$platform}',
                    pc_payment_count  = '{$lotto_count}',
                    pc_payment_amount = '{$lotto_amount}',
                    pc_refund_count   = '0',
                    pc_refund_amount  = '0',
                    pc_agency_mb_id   = '',
                    pc_comm_percent   = '100',
                    pc_comm_amount    = '{$lotto_amount}',
                    pc_datetime       = '".G5_TIME_YMDHIS."' ";
    sql_query($sql);
    /*** 
    $comm = get_calc_comm($kiosk, $platform, $lotto_amount);
    foreach( $comm as $val ) {
        $sql = "insert into {$lo['payment_comm_table']} set
                    pa_id             = '{$pa_id}',
                    pc_class          = '{$val['class']}',
                    pc_type           = '{$val['type']}',
                    ki_id             = '{$kiosk['ki_id']}',
                    pc_platform       = '{$platform}',
                    pc_payment_count  = '{$lotto_count}',
                    pc_payment_amount = '{$lotto_amount}',
                    pc_refund_count   = '0',
                    pc_refund_amount  = '0',
                    pc_agency_mb_id   = '{$val['mb_id']}',
                    pc_comm_percent   = '{$val['percent']}',
                    pc_comm_amount    = '{$val['amount']}',
                    pc_datetime       = '".G5_TIME_YMDHIS."' ";
        sql_query($sql);
    }
    */

    for( $j=0; $j < $numbers_count; $j++ ) {
        //$main_set = implode(",", $numbers_array[$j][0]);
        $number_set_array = explode(",", $ball_list_all[$j]);
        $main_set = $number_set_array[0].",".$number_set_array[1].",".$number_set_array[2].",".$number_set_array[3].",".$number_set_array[4];
        $sql = "insert into {$lo['order_table']} set
                  pa_id        = '{$pa_id}',
                  ht_id        = '{$lotto_info['ht_id']}',
                  mb_id        = '{$member['mb_id']}',
                  ki_id        = '0',
                  od_name      = '{$ht_name}',
                  od_draw_date = '{$lotto_info['ht_draw_date']}',
                  od_draw_time = '{$lotto_info['ht_draw_time']}',
                  od_main_set  = '{$main_set}',
                  od_main_1    = '{$number_set_array[0]}',
                  od_main_2    = '{$number_set_array[1]}',
                  od_main_3    = '{$number_set_array[2]}',
                  od_main_4    = '{$number_set_array[3]}',
                  od_main_5    = '{$number_set_array[4]}',
                  od_bonus     = '{$number_set_array[5]}',
                  od_price     = '{$lotto_amount}',
                  od_datetime  = '".G5_TIME_YMDHIS."' ";
        sql_query($sql);
    }

    $cr_content = '복권구매';

    if ($i==0) {
        insert_cash($member['mb_id'], -1 * $tot_amt, $cr_content, $lo['payment_table'], $member['mb_id'], $pa_id."-복권구매");
        $amount_for_mileage = $amount_for_mileage + $tot_amt;
    } else {
        insert_cash($member['mb_id'], -1 * $lotto_amount, $cr_content, $lo['payment_table'], $member['mb_id'], $pa_id."-복권구매");
        $amount_for_mileage = $amount_for_mileage + $lotto_amount;
    }
}

$mb_id = $member['mb_id'];

/** 복권 구매 과정에서 마일리지 및 보너스 포인트 사용 및 적립 처리, by billy at 102624  */
// Find current mb_rank and set mileage
$current_point = (double)$member['mb_point'];
$current_mileage = (double)$member['mb_mileage'];
$calc_mb_mileage = 0.0;

if ($member['mb_mileage'] == 'GOLD') {
    $calc_mb_mileage = $current_mileage + ($amount_for_mileage * 0.5);
} else if ($member['mb_mileage'] == 'PLATINUM') {
    $calc_mb_mileage = $current_mileage + ($amount_for_mileage * 2.5);
} else if ($member['mb_mileage'] == 'DIAMOND') {
    $calc_mb_mileage = $current_mileage + ($amount_for_mileage * 5);
} else if ($member['mb_mileage'] == 'SEVENSTARS') {
    $calc_mb_mileage = $current_mileage + ($amount_for_mileage * 8);
}

// UPDATE Mileage
$sql = " update {$g5['member_table']} set mb_mileage = '{$calc_mb_mileage}',  where mb_id = '{$mb_id}' ";
sql_query($sql);

// Set mb_rank by cash purchase.
$sql2 = " select sum(ca_cash) as cash_sum from {$lo['cash_table']} where mb_id = '{$mb_id}' and ca_content = '복권구매' ";
$row2 = sql_fetch($sql2);
if (($row2*-1) >= 1200) {
    $sql = " update {$g5['member_table']} set mb_rank = 'SEVENSTARS',  where mb_id = '{$mb_id}' ";
    sql_query($sql);
} else if (($row2*-1) >= 600) {
    $sql = " update {$g5['member_table']} set mb_rank = 'DIAMOND',  where mb_id = '{$mb_id}' ";
    sql_query($sql);
} else if (($row2*-1) >= 300) {
    $sql = " update {$g5['member_table']} set mb_rank = 'PLATINUM',  where mb_id = '{$mb_id}' ";
    sql_query($sql);
}
/**************************************************************/

$sql3 = "select * from {$lo['payment_table']} where mb_id = '{$mb_id}' ";
$payment = sql_fetch($sql3);
//$pa_id = 2386;

//alert_ajax(1, "복권구매가 완료되었습니다.", LOTTO_URL."/order_result.php?pa_id={$pa_id}");
//alert_ajax(1, "", LOTTO_URL."/order_result.php?pa_id={$pa_id}");
header('Location: '.LOTTO_URL.'/order_result.php?pa_id='.$pa_id);
exit();