Files
hqland-app/NEXT_SESSION.md
2026-04-25 04:04:14 +00:00

5.0 KiB

HQLAND - HƯỚNG DẪN PHIÊN LÀM VIỆC TIẾP THEO

File này giúp AI Agent nhanh chóng bắt nhịp khi bạn chuyển sang máy tính khác.
Cập nhật: 24/04/2026


⚠️ THÔNG BÁO QUAN TRỌNG

26 file thay đổi CHƯA COMMIT. Bạn cần commit hoặc stash trước khi chuyển máy, nếu không sẽ mất toàn bộ công việc vừa làm!

# Cách 1: Commit ngay (KHUYẾN NGHỊ)
git add -A
git commit -m "Hoan thien core finance v2"

# Cách 2: Hoặc stash để commit sau
git stash -u

1. NHỮNG GÌ VỪA HOÀN THÀNH (Phiên hiện tại)

Fix lỗi quan trọng

  • EditAction not found: Đã sửa namespace Filament\Actions\EditAction (không phải Filament\Tables\Actions\EditAction)
  • User quyền truy cập: Thêm FilamentUser interface vào User.php

ContractForm + Tự động tạo lịch

  • Migration mới: payment_template_id trong bảng contracts
  • payment_template_id đã lưu vào DB, không còn dehydrated(false)
  • Tự động tạo lịch thanh toán khi tạo HĐ mới

PaymentForm Validation

  • Số tiền thu không vượt quá công nợ đợt TT / công nợ HĐ
  • Helper text hiển thị công nợ còn lại
  • Fix lỗi khi edit payment (kiểm tra instanceof Payment)

PaymentsTable

  • Thêm cột: Loại đợt, Trạng thái đối soát (Đủ/Thiếu/Thừa), Còn thiếu

ContractsTable

  • Thêm cột: paid_amount, remaining_amount
  • ContractResource giờ delegate về ContractsTable Schemas

Hiệu năng

  • Fix N+1 query ở PaymentScheduleItem::getPaidAmountAttribute() (kiểm tra relationLoaded)

Command mới

  • php artisan contracts:generate-schedules {--force} - Tạo lịch hàng loạt cho 139 HĐ

Resources mới

  • PaymentFineResource - Quản lý tiền phạt
  • AppendixResource - Quản lý phụ lục HĐ
  • SettlementResource - Quản lý quyết toán & sổ đỏ

Discount Engine

  • DiscountEngine::calculate() - Tính chiết khấu tự động
  • Accessor final_value trong Contract model
  • Hiển thị giá trị sau chiết khấu cả khi create và edit

Dashboard

  • ContractStatsOverview - 5 chỉ số tài chính tổng quan
  • UpcomingPaymentsTable - Danh sách đợt TT sắp đến hạn (30 ngày)

2. CẤU HÌNH DATABASE (QUAN TRỌNG)

Database chính (Production)

  • Connection: pgsql
  • Host: 127.0.0.1 (từ host machine)
  • Database: laravel
  • Username/Password: sail / password

Database test

  • Database: laravel_testing (đã tạo, migrations đã chạy)
  • Chạy test: DB_HOST=127.0.0.1 ./vendor/bin/pest

Lệnh chạy Artisan

  • DB_HOST=127.0.0.1 php artisan tinker
  • DB_HOST=127.0.0.1 php artisan migrate (KHÔNG dùng migrate:fresh!)

3. CÁC FILE CHƯA COMMIT

Modified (17 file)

AGENTS.md
app/Console/Commands/ImportContractsComplex.php
app/Filament/Resources/Contracts/ContractResource.php
app/Filament/Resources/Contracts/Pages/CreateContract.php
app/Filament/Resources/Contracts/Schemas/ContractForm.php
app/Filament/Resources/Contracts/Tables/ContractsTable.php
app/Filament/Resources/Payments/PaymentResource.php
app/Filament/Resources/Payments/Schemas/PaymentForm.php
app/Filament/Resources/Payments/Tables/PaymentsTable.php
app/Models/Contract.php
app/Models/PaymentScheduleItem.php
app/Models/User.php
app/Providers/Filament/AdminPanelProvider.php

Untracked mới (9 file/folder)

app/Console/Commands/GenerateContractSchedules.php
app/Filament/Resources/Appendices/
app/Filament/Resources/PaymentFines/
app/Filament/Resources/Settlements/
app/Filament/Widgets/
app/Services/DiscountEngine.php
database/migrations/2026_04_24_083000_add_payment_template_id_to_contracts.php
tests/Feature/ContractResourceRenderTest.php

4. VIỆC CẦN LÀM TIẾP THEO (Checklist)

🟡 Trung bình ưu tiên

  • Notification: Cảnh báo đợt thanh toán sắp đến hạn (30/7/3 ngày)
  • Export Excel: Xuất báo cáo công nợ khách hàng
  • Báo cáo theo Dự án: Thống kê bán hàng, thanh toán theo dự án

🟢 Thấp ưu tiên

  • Audit Log: Lưu lịch sử sửa HĐ, thu tiền
  • Queue: Generate schedules qua queue nếu >1000 HĐ
  • Email/SMS: Tự động nhắc thanh toán
  • Advanced Filter: Tìm HĐ theo khoảng giá trị, ngày ký

5. CÂU LỆNH TEST QUAN TRỌNG

# Test toàn bộ
DB_HOST=127.0.0.1 ./vendor/bin/pest

# Test cụ thể
DB_HOST=127.0.0.1 ./vendor/bin/pest --filter="ContractFinanceFlowTest"

# Test render (kiểm tra không bị lỗi class not found)
DB_HOST=127.0.0.1 ./vendor/bin/pest --filter="ContractResourceRenderTest"

Kết quả hiện tại: 9 tests passed, 0 failed.


6. TÀI KHOẢN ĐĂNG NHẬP


Lưu ý: Commit ngay lập tức trước khi tắt máy hoặc chuyển sang máy khác!