<?php
require_once 'conn.php';
checkLogin();

// 辅助函数
function textDecode($str) {
    return htmlspecialchars_decode($str, ENT_QUOTES);
}

function htmlDecode($str) {
    return htmlspecialchars_decode($str, ENT_QUOTES);
}

$act = $_GET['act'] ?? '';
$urlStr = '';

// 处理筛选条件
$fliterFromDate = $_GET['fliterFromDate'] ?? '';
$fliterToDate = $_GET['fliterToDate'] ?? '';

$fliterStr = "";

if (!empty($fliterFromDate)) {
    $fliterStr .= " AND o.order_date >= '" . mysqli_real_escape_string($conn, $fliterFromDate) . "'";
    $urlStr .= "&fliterFromDate=" . urlencode($fliterFromDate);
}

if (!empty($fliterToDate)) {
    $fliterStr .= " AND o.order_date <= '" . mysqli_real_escape_string($conn, $fliterToDate) . " 23:59:59'";
    $urlStr .= "&fliterToDate=" . urlencode($fliterToDate);
}

// 搜索和排序
$keys = $_GET['Keys'] ?? '';
$keyscode = mysqli_real_escape_string($conn, $keys);
$page = $_GET['Page'] ?? 1;
$ord = $_GET['Ord'] ?? '';



$ordStr = !empty($ord) ? "$ord," : "";

// 构建查询SQL
$employee_id = $_SESSION['employee_id'];
$sqlStr = "SELECT o.*, c.cs_company, c.cs_code
           FROM orders o
           LEFT JOIN customer c ON o.customer_id = c.id
           WHERE o.employee_id = $employee_id";

if (!empty($keyscode)) {
    $sqlStr .= " AND (o.order_code LIKE '%$keyscode%'
           OR c.cs_company LIKE '%$keyscode%'
           OR c.cs_code LIKE '%$keyscode%')";
}

$sqlStr .= " $fliterStr ORDER BY {$ordStr}o.created_at DESC";

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>订单列表</title>
    <link rel="stylesheet" href="css/common.css" type="text/css" />
    <link rel="stylesheet" href="css/alert.css" type="text/css" />
    <script src="js/jquery-1.7.2.min.js"></script>
    <script src="js/js.js"></script>
    <style>
        body {
            margin: 0;
            padding: 20px;
            background: #fff;
        }
        #man_zone {
            margin-left: 0;
        }
        
        /* 表格布局修复 */
        .table2 {
            width: 100%;
        }
        
        .theader, .tline {
            display: flex;
            flex-direction: row;
            align-items: center;
            width: 100%;
            border-bottom: 1px solid #ddd;
        }
        
        .theader {
            background-color: #f2f2f2;
            font-weight: bold;
            height: 40px;
        }
        
        .tline {
            height: 45px;
        }
        
        .tline:hover {
            background-color: #f5f5f5;
        }
        
        .col2 { width: 5%; text-align: center; }
        .col3 { width: 10%; }
        .col4 { width: 20%; }
        .col5 { width: 30%; }
        .col7 { width: 16%; }
        .col9 { width: 14%; text-align: right; }
        .col10 { width: 16%; text-align: center; }



        /* 表格布局修复,因为 "css/common.css 覆盖了 */
        .table2 .col2 { width: 5%; text-align: center; }
        .table2 .col3 { width: 10%; }
        .table2 .col4 { width: 20%; }
        .table2 .col5 { width: 30%; }
        .table2 .col7 { width: 16%; }
        .table2 .col9 { width: 14%; text-align: right; }
        .table2 .col10 { width: 16%; text-align: center; }








        .theader > div, .tline > div {
            padding: 0 5px;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }
        
        /* 日期选择器样式 */
        .date-input {
            padding: 5px;
            border: 1px solid #ccc;
            border-radius: 3px;
        }
        
        /* 滑动面板样式 */
        .slidepanel {
            cursor: pointer;
        }
        
        .slidepanel.open {
            font-weight: bold;
            color: #3366cc;
        }
        
        .notepanel {
            display: none;
            background: #f9f9f9;
            padding: 10px;
            border: 1px solid #eee;
            margin-bottom: 10px;
        }
        
        .notepanel .noteItem {
            font-weight: bold;
            margin-bottom: 5px;
        }
        
        .notepanel .noteItem2 {
            font-weight: bold;

            margin-bottom: 5px;
        }
        
        .lx {
            display: flex;
            flex-wrap: wrap;
            gap: 15px;
        }
        
        .lx > div {
            margin-bottom: 10px;
        }
        
        .lx > div > div {
            margin-bottom: 5px;
        }

        /* 按钮样式 */
        .ico_del {
            color: #e74c3c;
        }
        
        .ico_del:hover {
            color: #c0392b;
        }
    </style>
</head>
<body>
<div id="man_zone">
    <div class="fastSelect clear">
        <H1>筛选条件</H1>
        <div class="selectItem">
            <label>订单日期</label>
            <input type="date" name="fliterFromDate" class="date-input filterSearch" value="<?= $fliterFromDate ?>">
            <label>到</label>
            <input type="date" name="fliterToDate" class="date-input filterSearch" value="<?= $fliterToDate ?>">
        </div>
        <div class="inputSearch" >
            <input type="text" id="keys" class="inputTxt" placeholder="请输入搜索关键词"
                value="<?= empty($keyscode) ? '' : $keyscode ?>" />
            <input type="button" id="searchgo" class="searchgo" value="搜索"
                onClick="location.href='?Keys='+encodeURIComponent(document.getElementById('keys').value)" />
        </div>
    </div>

    <div align="right" style="margin-bottom: 10px;">
        <input type="button" value="新增订单" class="btn1" onClick="location.href='order_add.php'" />
    </div>

    <div class="table2 em<?= $_SESSION['employee_id'] ?>">
        <div class="theader">
            <div class="col2">序号</div>
            <div class="col3">销售订单号</div>
            <div class="col4">客户编码</div>
            <div class="col5">客户</div>
            <div class="col7">订单日期</div>
            <div class="col9">订单金额</div>
            <div class="col10">操作</div>
        </div>

        <?php
        // 设置每页显示记录数
        $pageSize = 20;

        // 获取总记录数
        $employee_id = $_SESSION['employee_id'];
        $countSql = "SELECT COUNT(*) AS total FROM orders o
                     LEFT JOIN customer c ON o.customer_id = c.id
                     WHERE o.employee_id = $employee_id";
        if (!empty($keyscode)) {
            $countSql .= " AND (o.order_code LIKE '%$keyscode%'
                         OR c.cs_company LIKE '%$keyscode%'
                         OR c.cs_code LIKE '%$keyscode%')";
        }
        $countSql .= $fliterStr;

        $countResult = mysqli_query($conn, $countSql);
        $countRow = mysqli_fetch_assoc($countResult);
        $totalRecords = $countRow['total'];

        // 计算总页数
        $totalPages = ceil($totalRecords / $pageSize);
        if ($totalPages < 1) $totalPages = 1;

        // 验证当前页码
        $page = (int)$page;
        if ($page < 1) $page = 1;
        if ($page > $totalPages) $page = $totalPages;

        // 计算起始记录
        $offset = ($page - 1) * $pageSize;

        // 添加分页条件
        $sqlStr .= " LIMIT $offset, $pageSize";

        $result = mysqli_query($conn, $sqlStr);

        if (mysqli_num_rows($result) > 0) {
            $tempNum = ($page - 1) * $pageSize;
            while ($row = mysqli_fetch_assoc($result)) {
                $tempNum++;
                ?>
                <div class="tline">
                    <div class="col2"><?= $tempNum ?></div>
                    <div class="col3 slidepanel"><?= htmlspecialcharsFix($row['order_code']) ?></div>
                    <div class="col4"><?= htmlspecialcharsFix($row['cs_code']) ?></div>
                    <div class="col5"><?= htmlspecialcharsFix($row['cs_company']) ?></div>
                    <div class="col7"><?= date('Y-m-d', strtotime($row['order_date'])) ?></div>
                    <div class="col9"><?= number_format($row['total_amount'], 2) ?></div>
                    <div class="col10">
                        <a href="order_edit.php?id=<?= $row['id'] ?>&keys=<?= $keys ?>&page=<?= $page ?>" class="ico_edit ico">修改</a>
                        <a href="order_details.php?id=<?= $row['id'] ?>" class="ico_view ico">查看详情</a>
                        <a href="javascript:void(0)" onclick="confirmDelete(<?= $row['id'] ?>, '<?= htmlspecialcharsFix($row['order_code']) ?>')" class="ico_del ico">删除</a>
                    </div>
                </div>
                <div class="notepanel clear">
                    <div class="noteItem">订单详情</div>
                    <div class="lx">
                        <div><strong>总金额:</strong> <?= number_format($row['total_amount'], 2) ?></div>
<!--                        <div class="price-details">-->
<!--                            <div><strong>小计:</strong> --><?php //= number_format($row['subtotal'], 2) ?><!--</div>-->
<!--                            <div><strong>折扣金额:</strong> --><?php //= number_format($row['discount_amount'], 2) ?><!--</div>-->

<!--                        </div>-->
                    </div>
                    <div class="noteItem2">备注</div>
                    <div class="notecontent"><?= htmlspecialcharsFix($row['notes']) ?></div>
                </div>
                <?php
            }
        } else {
            if (empty($keys) && empty($fliterStr)) {
                echo '<div class="tline"><div align="center" colspan="9">当前暂无订单记录</div></div>';
            } else {
                echo '<div class="tline"><div align="center" colspan="9"><a href="?">没有找到匹配的订单记录,点击返回</a></div></div>';
            }
        }
        ?>

        <div class="showpagebox">
            <?php
            if ($totalPages > 1) {
                $pageName = "?Keys=$keys$urlStr&";
                $pageLen = 3;

                if ($page > 1) {
                    echo "<a href=\"{$pageName}Page=1\">首页</a>";
                    echo "<a href=\"{$pageName}Page=" . ($page - 1) . "\">上一页</a>";
                }

                if ($pageLen * 2 + 1 >= $totalPages) {
                    $startPage = 1;
                    $endPage = $totalPages;
                } else {
                    if ($page <= $pageLen + 1) {
                        $startPage = 1;
                        $endPage = $pageLen * 2 + 1;
                    } else {
                        $startPage = $page - $pageLen;
                        $endPage = $page + $pageLen;
                    }
                    if ($page + $pageLen > $totalPages) {
                        $startPage = $totalPages - $pageLen * 2;
                        $endPage = $totalPages;
                    }
                }

                for ($i = $startPage; $i <= $endPage; $i++) {
                    if ($i == $page) {
                        echo "<a class=\"current\">$i</a>";
                    } else {
                        echo "<a href=\"{$pageName}Page=$i\">$i</a>";
                    }
                }

                if ($page < $totalPages) {
                    if ($totalPages - $page > $pageLen) {
                        echo "<a href=\"{$pageName}Page=$totalPages\">...$totalPages</a>";
                    }
                    echo "<a href=\"{$pageName}Page=" . ($page + 1) . "\">下一页</a>";
                    echo "<a href=\"{$pageName}Page=$totalPages\">尾页</a>";
                }
            }
            ?>
        </div>
    </div>

    <script>
    $(document).ready(function() {
        // 添加日期验证逻辑
        $('input[name="fliterToDate"]').on('change', function() {
            var fromDate = $('input[name="fliterFromDate"]').val();
            var toDate = $(this).val();
            
            if (fromDate && toDate && new Date(toDate) < new Date(fromDate)) {
                alert('结束日期不能早于开始日期');
                $(this).val(''); // 清空结束日期
                return false;
            }
        });
        
        // 开始日期变更时也进行验证
        $('input[name="fliterFromDate"]').on('change', function() {
            var fromDate = $(this).val();
            var toDate = $('input[name="fliterToDate"]').val();
            
            if (fromDate && toDate && new Date(toDate) < new Date(fromDate)) {
                alert('开始日期不能晚于结束日期');
                $('input[name="fliterToDate"]').val(''); // 清空结束日期
                return false;
            }
        });

        // 处理筛选条件改变
        $('.filterSearch').change(function() {
            var url = '?';
            var keys = $('#keys').val();
            if (keys && keys != '请输入搜索关键词') {
                url += 'Keys=' + encodeURIComponent(keys) + '&';
            }

            $('.filterSearch').each(function() {
                var name = $(this).attr('name');
                var value = $(this).val();
                if (value) {
                    url += name + '=' + encodeURIComponent(value) + '&';
                }
            });

            // 移除末尾的&
            if (url.endsWith('&')) {
                url = url.substring(0, url.length - 1);
            }

            location.href = url;
        });
    });
    </script>
    
    <script>
    function confirmDelete(id, orderCode) {
        if (confirm("确定要删除订单 " + orderCode + " 吗?此操作不可恢复!")) {
            window.location.href = "order_delete.php?id=" + id + "&keys=<?= urlencode($keys) ?>&page=<?= $page ?>";
        }
    }
    </script>
</div>
</body>
</html>