prepare($salesBeforeSql); // $salesBeforeStmt->execute([':lastMonthEnd' => $lastMonthEnd]); // $salesBeforeData = $salesBeforeStmt->fetchAll(PDO::FETCH_ASSOC); // $paymentBeforeStmt = $pdo->prepare($paymentBeforeSql); // $paymentBeforeStmt->execute([':lastMonthEnd' => $lastMonthEnd]); // $paymentBeforeData = $paymentBeforeStmt->fetchAll(PDO::FETCH_ASSOC); // // 이월 잔액 계산 // foreach ($salesBeforeData as $row) { // $secondordnum = $row['secondordnum']; // $total_sales_before = round((float)$row['total_sales'],2); // 부가세 포함(이미 ET_total은 부가세 포함) // if (!isset($initialBalances[$secondordnum])) { // $initialBalances[$secondordnum] = 0; // } // $initialBalances[$secondordnum] += $total_sales_before; // } // foreach ($paymentBeforeData as $row) { // $secondordnum = $row['secondordnum']; // $total_payment_before = (float)$row['total_payment']; // if (!isset($initialBalances[$secondordnum])) { // $initialBalances[$secondordnum] = 0; // } // $initialBalances[$secondordnum] -= $total_payment_before; // } // // 당월 매출 내역 가져오기 (work + output_extra, outdate, ET_total) // $salesSql = " // SELECT o.secondordnum, COALESCE(e.ET_total, 0) AS ET_total // FROM {$DB}.work o // LEFT JOIN {$DB}.output_extra e ON o.num = e.parent_num // WHERE (o.outdate BETWEEN date('$fromdate') AND date('$todate')) AND (o.is_deleted IS NULL or o.is_deleted = 0) // "; // $salesStmt = $pdo->prepare($salesSql); // $salesStmt->execute(); // $salesData = $salesStmt->fetchAll(PDO::FETCH_ASSOC); // $salesResults = []; // foreach ($salesData as $row) { // $secondordnum = $row['secondordnum']; // $total_sales = (float)$row['ET_total']; // ET_total은 부가세 포함 // if (!isset($salesResults[$secondordnum])) { // $salesResults[$secondordnum] = 0; // } // $salesResults[$secondordnum] += round($total_sales,2); // } // // 당월 수금 내역 가져오기 (account_juil 테이블) // $paymentSql = " // SELECT secondordnum, SUM(CAST(REPLACE(amount, ',', '') AS SIGNED)) AS total_payment // FROM {$DB}.account_juil // WHERE registDate BETWEEN date('$fromdate') AND date('$todate') // AND (is_deleted IS NULL or is_deleted = 0) AND content = '거래처 수금' // AND (dueDate = '0000-00-00' OR dueDate IS NULL OR dueDate = '') // GROUP BY secondordnum // "; // $paymentStmt = $pdo->prepare($paymentSql); // $paymentStmt->execute(); // $paymentData = $paymentStmt->fetchAll(PDO::FETCH_ASSOC); // $paymentResults = []; // foreach ($paymentData as $row) { // $secondordnum = $row['secondordnum']; // $total_payment = (float)$row['total_payment']; // if (!isset($paymentResults[$secondordnum])) { // $paymentResults[$secondordnum] = 0; // } // $paymentResults[$secondordnum] += $total_payment; // } // // 모든 거래처 목록을 생성 (매출, 기초채권) // $allResults = array_unique(array_merge(array_keys($salesResults), array_keys($initialBalances))); // // 최종 잔액 계산 // $balances = []; // foreach ($allResults as $secondordnum) { // $initialReceivable = isset($initialBalances[$secondordnum]) ? $initialBalances[$secondordnum] : 0; // $total_sales = isset($salesResults[$secondordnum]) ? $salesResults[$secondordnum] : 0; // 부가세 포함 // $total_payment = isset($paymentResults[$secondordnum]) ? $paymentResults[$secondordnum] : 0; // // 최종 잔액 // $balances[$secondordnum] = $initialReceivable + $total_sales - $total_payment; // } // return $balances; } ?>