Files
manjapro_v6/list_data/list_generate_voucher.php

71 lines
2.1 KiB
PHP

<?php
include '../config/connect.php';
$id_agen_voucher = isset($_GET['id']) ? intval($_GET['id']) : 0;
$offset = isset($_GET['offset']) ? intval($_GET['offset']) : 0;
$limit = isset($_GET['limit']) ? intval($_GET['limit']) : 25;
$search = isset($_GET['search']) ? $_GET['search'] : '';
$start_date = isset($_GET['start_date']) ? $_GET['start_date'] : '';
$end_date = isset($_GET['end_date']) ? $_GET['end_date'] : '';
if ($id_agen_voucher > 0) {
$data_voucher = [];
$sql = "SELECT voucher, harga, create_time, active_time, expaired_time
FROM ganerate_voucher
WHERE id_agen_voucher = :id_agen_voucher";
if ($start_date) {
$sql .= " AND create_time >= :start_date";
}
if ($end_date) {
$sql .= " AND create_time <= :end_date";
}
if ($search) {
$sql .= " AND (
voucher LIKE :search OR
DATE_FORMAT(create_time, '%Y-%m-%d %H:%i:%s') LIKE :search OR
DATE_FORMAT(active_time, '%Y-%m-%d %H:%i:%s') LIKE :search OR
DATE_FORMAT(expaired_time, '%Y-%m-%d %H:%i:%s') LIKE :search
)";
}
$sql .= " ORDER BY create_time DESC LIMIT :offset, :limit";
$stmt = $pdo->prepare($sql);
$stmt->bindValue(':id_agen_voucher', $id_agen_voucher, PDO::PARAM_INT);
if ($start_date) {
$stmt->bindValue(':start_date', $start_date, PDO::PARAM_STR);
}
if ($end_date) {
$stmt->bindValue(':end_date', $end_date, PDO::PARAM_STR);
}
if ($search) {
$searchTerm = '%' . $search . '%';
$stmt->bindValue(':search', $searchTerm, PDO::PARAM_STR);
}
$stmt->bindValue(':offset', $offset, PDO::PARAM_INT);
$stmt->bindValue(':limit', $limit, PDO::PARAM_INT);
$stmt->execute();
$data_voucher = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($data_voucher as &$voucher) {
foreach ($voucher as $key => &$value) {
if (is_null($value)) {
$value = '-';
}
}
}
header('Content-Type: application/json');
echo json_encode(['data' => $data_voucher]);
} else {
echo json_encode(['error' => 'Invalid parameters']);
}
?>