<!-- d9b9a198-c9a5-4592-967c-f339f1923e38 cefe1f3b-cb13-493a-bd00-beabc0b129a7 -->
# Sửa lỗi Timezone trong DateRange Left Sidebar

## Vấn đề

Component `left-sidebar.vue` đang sử dụng `.utcOffset(0, false)` để convert về UTC trước khi tính toán ngày, gây ra lỗi khi local time là GMT+7. Ví dụ: lúc 6h sáng GMT+7 sẽ bị convert thành 23h ngày hôm trước UTC, dẫn đến kết quả sai.

## Giải pháp

Bỏ `.utcOffset(0, false)` trong tất cả các hàm để moment tự động sử dụng local timezone của browser (GMT+7).

## Thay đổi cần thực hiện

### File: `src/components/daterange/left-sidebar.vue`

**1. Hàm `today()` (dòng 17-19):**

```javascript
// Trước
emit('changeDate', [moment().utcOffset(0, false).startOf('day').toDate(), moment().utcOffset(0, false).endOf('day').toDate()]);

// Sau
emit('changeDate', [moment().startOf('day').toDate(), moment().endOf('day').toDate()]);
```

**2. Hàm `yesterday()` (dòng 20-23):**

```javascript
// Trước
const yesterday = moment().utcOffset(0, false).subtract(1, 'days');

// Sau
const yesterday = moment().subtract(1, 'days');
```

**3. Hàm `thisMonth()` (dòng 24-28):**

```javascript
// Trước
var start = moment().utcOffset(0, false).startOf('month').toDate();
var end = moment().utcOffset(0, false).toDate();

// Sau
var start = moment().startOf('month').toDate();
var end = moment().toDate();
```

**4. Hàm `lastMonth()` (dòng 29-33):**

```javascript
// Trước
var start = moment().utcOffset(0, false).subtract(1, 'months').startOf('month').toDate();
var end = moment().utcOffset(0, false).subtract(1, 'months').endOf('month').toDate();

// Sau
var start = moment().subtract(1, 'months').startOf('month').toDate();
var end = moment().subtract(1, 'months').endOf('month').toDate();
```

**5. Hàm `thisYear()` (dòng 34-38):**

```javascript
// Trước
var start = moment().utcOffset(0, false).startOf('year').toDate();
var end = moment().utcOffset(0, false).endOf('day').toDate();

// Sau
var start = moment().startOf('year').toDate();
var end = moment().endOf('day').toDate();
```

## Component bị ảnh hưởng

Component này được sử dụng ở 5 nơi, tất cả sẽ được fix cùng lúc:

- `src/views/users/index.vue`
- `src/views/users/roles.vue`
- `src/views/reconciliation/CustomerShippingFeeReconciliationList.vue`
- `src/views/reconciliation/CustomerReconciliationList.vue`
- `src/views/crm/customer/list/index.vue`

## Kết quả mong đợi

- "Hôm nay" sẽ trả về: 00:00:00 GMT+7 đến 23:59:59 GMT+7
- "Hôm qua" sẽ trả về: 00:00:00 GMT+7 đến 23:59:59 GMT+7 (ngày hôm trước)
- "Tháng này" sẽ trả về: Ngày đầu tháng 00:00:00 GMT+7 đến thời điểm hiện tại GMT+7
- "Tháng trước" sẽ trả về: Ngày đầu tháng trước 00:00:00 GMT+7 đến ngày cuối tháng trước 23:59:59 GMT+7
- "Năm nay" sẽ trả về: Ngày 01/01 00:00:00 GMT+7 đến thời điểm hiện tại GMT+7