Nghiệp vụ | IT | |||
|---|---|---|---|---|
Người lập | Người duyệt | Người lập | Người duyệt | |
Tên, Chức danh | ||||
Ngày ký | ||||
Jira Link | [BPMKVH-4312] Tích hợp SAP - Đồng bộ thông tin hợp đồng - Jira | |||
1. Card (Mô tả tính năng)
Là admin nghiệp vụ, tôi chuyên viên kế hoạch tổng hợp, Tôi muốn đồng bộ thông tin hợp đồng đang quản lý tại BPM về SAP
2. Confirmation/ Acceptance Criteria (Tiêu chí nghiệm thu)
- Tôi muốn đồng bộ thông tin hợp đồng về SAP bao gồm các thông tin:
- Loại hợp đồng*
- Nhà thầu*
- Ngày tạo HĐ*
- Tổ chức mua hàng*
- Phòng ban thực hiện*
- Ngày hiệu lực*
- Ngày hết hạn*
- Tổng GTHĐ trước thuế*
- Đơn vị tiền tệ
- Tỷ giá
- Số HĐ gốc
- Mã HĐ/PL
- Ngày ký
- Ngày bắt đầu hiệu lực
- Ngày hết hạn bảo hành
- Dự án
- Tình trạng
- Nội dung hợp đồng
- Tiến độ thực hiện (Ngày)
- Thông tin chi tiết hàng hóa
- Mã thuế
- Số thứ tự line tổng quan*
- Loại HĐ đặc biệt 1*
- Loại HĐ đặc biệt 2*
- Tên Dịch vụ/Hạng mục tổng quan*
- Kho/Đơn vị*
- Nhóm công việc (Nhóm vật tư/dịch vụ* )
- Số thứ tự line chi tiết*
- Tên Dịch vụ/Hạng mục chi tiết*
- Khối lượng*
- Đơn vị tính*
- Đơn giá*
- Khoản mục phí (Thêm trên BoQ)
- Hạng mục
- Phòng ban KD: Để sẵn, hiện tại với XDCB chưa dùng đến
- Phòng ban VPTĐ: Để sẵn, hiện tại với XDCB chưa dùng đến
- Tài sản: Để sẵn, hiện tại với XDCB chưa dùng đến
- Validity start date of the condition record ( Truyền theo thông tin ngày hiệu lực)
- ID danh mục tích hợp
- Tôi muốn đồng bộ thông tin hợp đồng sang hệ thống SAP theo sự kiện khi có thông tin hợp đồng cập nhật tại BPM
- Tôi muốn trong trường hợp update hợp đồng, BPM truyền bổ sung thông tin Mã hợp đồng SAP để SAP so sánh theo mã hợp đồng SAP
- Tôi muốn quản lý được lịch sử đồng bộ danh mục
- Thời gian băt đầu
- Thời gian kết thúc
- Người đồng bộ
- Trạng thái
- Mã lỗi
- Mô tả lỗi
- Số hợp đồng BPM
- Số hợp đồng SAP (Có data khi đẩy sang SAP thành công)
- Tôi muốn lọc được thông tin lịch sử đồng bộ theo
- Ngày: Từ- Đến
- Người đồng bộ
- Số hợp đồng BPM
- Số hợp đồng SAP
- Trạng thái
- Mã lỗi
- Thông tin mapping các trường tích hợp tại file: Mapping_SAP_QLHD.docx
3. Conversation (Mô tả chi tiết)
3.1 UIUX:
3.2 Luồng:
- Activity Diagram:
...
:
- Flowchart:
3.3 API Spec: <gắn link tài liệu mô tả API vào đây>
...
| Panel | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1. Headers
2. Request body
3. Response / Incoming Data Specification
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Panel | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1. Headers
2.Body | STT | Path||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
STT | Field | Required | Data Type / Length | Description | Note |
|---|---|---|---|---|---|
| 1 | contractId | true | String | id hợp đồng |
3. Response / Incoming Data Specification
| STT | Field | Data Type / Length | Description | Note | |
|---|---|---|---|---|---|
| 1 | code | Integer | 0: thành công, != 0 thất bại | ||
| 2 | message | String | |||
| 3 | result | Object | |||
| 4 | (result) id | Integer | id | ||
| 5 | (result) projectId | Integer | id dự án | ||
| 6 | (result) organizationId | Integer | id nhà thầu | ||
| 7 | (items) contractTypeId | Integer | id loại hợp đồng | ||
| 8 | (items) departmentId | Integer | id phòng ban thực hiện | ||
| 9 | (items) signedAt | String | Ngày kí hợp đồng | ||
| 10 | (items) executionTime | Integer | Thời gian thực hiện | ||
| 11 | (items) warrantyExpiredAt | String | ngày hết hạn bảo hành | ||
| 12 | (items) amountBeforeTax | BigDecimal | giá trị HĐ trước thuế | ||
| 13 | (items) currencyUnitId | Integer | id tiền tệ | ||
| 14 | (items) exchangeRate | String | tỉ giá tương ứng | ||
| 15 | (items) status | Integer | Tình trạng. 1: Đã quyết toán, 2: Chưa quyết toán, 3: Chưa thực hiện, 4: Đang bảo hành, 5: Hợp đồng đã xóa | ||
| 16 | (items) contractNo | String | số hợp đồng | ||
(items) sapContractNo | String | Mã hợp đồng SAP | |||
(items) fieldId | Integer | id lĩnh vực | |||
(items) implementationProgress | String | tiến độ thực hiện | |||
(items) createdDate | String | Ngày tạo hợp đồng | |||
(items) purchasingOrgId | String | Tổ chức mua hàng | |||
(items) effectiveDate | String | ngày hiệu lực | |||
(items) effectiveStartDate | String | ngày bắt đầu hiệu lực | |||
(items) expectedEndDate | String | Ngày hết hạn | |||
(items) appendixCode | String | mã phụ lục hợp đồng | |||
(items) contractContent | String | Nội dùng hợp đồng | |||
(items) potId | Integer | id hồ sơ | |||
(items) contractId | Integer | id hợp đồng | |||
(items) contractStatus | Integer | Trạng thái hợp đồng | |||
(items) syncStatus | Integer | trạng thái đồng bộ | |||
(items) isSynced | Integer | Đánh dấu bản ghi đã đồng bộ trên SAP | |||
(items) contractTypeName | String | Tên loại hợp đồng | |||
(items) projectName | String | tên dự án | |||
(items) organizationName | String | tên nhà thầu | |||
(items) currencyUnitName | String | tên đơn vị tiền tệ | |||
(items) departmentName | String | tên phòng ban thực hiện | |||
(items) fieldName | String | tên lĩnh vực | |||
(items) purchasingOrgName | String | tên tổ chức mua hàng | |||
(items) contractItems | List<Object> | Thông tin chi tiết hàng hóa | |||
(contractItems) id | Integer | ||||
(contractItems) taxId | Integer | id mã thuế | |||
(contractItems) generalLineNo | String | STT line tổng quan | |||
(contractItems) specialContract1 | String | Loại hợp đồng đặc biệt 1 | |||
(contractItems) specialContract2 | String | Loại hợp đồng đặc biệt 2 | |||
(contractItems) generalServiceName | String | Tên Dịch vụ/ Hạng mục tổng quan | |||
(contractItems) investorId | Integer | id Kho/ Đơn vị | |||
(contractItems) groupId | Integer | id Nhóm vật tư/ Dịch vụ | |||
(contractItems) detailLineNo | String | STT line chi tiết | |||
(contractItems) detailServiceName | String | Tên Dịch vụ/ Hạng mục chi tiết | |||
(contractItems) quantity | Integer | Khối lượng | |||
(contractItems) unitId | Integer | id Đơn vị tính | |||
(contractItems) price | Integer | Đơn giá | |||
(contractItems) feeItemId | Integer | id Khoản mục phí | |||
(contractItems) budgetSection | String | Hạng mục ngân sách | |||
(contractItems) effectiveDate | String | Ngày hiệu lực | |||
(contractItems) integrationCategoryId | String | ID danh mục tích hợp | |||
(contractItems) contractId | String | id hợp đồng | |||
(contractItems) status | String | trạng thái | |||
(contractItems) warehouse | Integer | tên kho/đơn vị | |||
(contractItems) unitName | String | tên đơn vị | |||
(contractItems) feeItemName | String | Khoản mục phí | |||
(contractItems) taxName | String | tên mã thuế | |||
(contractItems) groupName | String | Nhóm vật tư/ Dịch vụ | |||
(contractItems) isDeleted | String | đánh dấu bản ghi bị xóa | |||
(contractItems) taxCode | String | mã thuế | |||
(contractItems) investorSapCode | String | ||||
(contractItems) groupCode | String | ||||
(contractItems) unitCode | String | ||||
(contractItems) feeItemCode | String |
| Panel | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1. Headers
2. Request body
3. Response / Incoming Data Specification
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Panel | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1. Headers
2. Request body
3. Response / Incoming Data Specification
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3.4 Mô tả các trường dữ liệu trên màn hình:
3.4.1 Màn hình danh sách tích hợp thông tin hợp đồng (SAP)
Field (Trường dữ liệu) | Type (Kiểu dữ liệu) | Required (Bắt buộc) | Validation (Quy định) | Description (Mô tả) | |
|---|---|---|---|---|---|
| 1 | STT | Số (Number) | Không bắt buộc |
| Thể hiện thứ tự các bản ghi lịch sử đồng bộ màn hình "Tích hợp thông tin hợp đồng (SAP)" |
| 2 | Thời gian bắt đầu | Thời gian (date-time) | Không bắt buộc |
| Thể hiện thời gian bắt đầu đồng bộ thông tin hợp đồng |
| 3 | Thời gian kết thúc | Thời gian (date-time) | Không bắt buộc |
| Thể hiện thời gian kết thúc đồng bộ thông tin hợp đồng |
| 4 | Người đồng bộ | Văn bản (Text) | Không bắt buộc |
| Thể hiện thông tin người đồng bộ thông tin hợp đồng |
| 5 | Trạng thái | Văn bản (Text) | Không bắt buộc |
+ Thành công: khi cập nhật thông tin thành công + Thất bại: khi cập nhật thông tin xảy ra lỗi + Đang thực hiện: khi hệ thống đang thực hiện cập nhật thông tin | Thể hiển trạng thái đồng bộ thông tin hợp đồng |
| 6 | Mã lỗi | Hyperlink | Không bắt buộc |
| Thể hiện mã lỗi hệ thống trả về khi đồng bộ thất bại |
| 7 | Số hợp đồng | Văn bản (Text) | Không bắt buộc |
| Thể hiện tên số hợp đồng |
| 8 | Mã hợp đồng SAP | Văn bản (Text) | Không bắt buộc | Nguồn dữ liệu: Dữ liệu được lấy theo trường "Mã hợp đồng SAP" từ màn hình thông tin chi tiết đồng bộ thông tin hợp đồng SAP 5029 - User Story -Xử lý nhận kết quả tích hợp SAP và Cập nhật menu QLHĐ | Thể hiện tên mã hợp đồng SAP |
| 9 | Nút lọc | Nút chức năng (Button) | Không bắt buộc |
| Thể hiện nút chức năng bộ lọc |
3.4.2. Màn hình pop-up "Bộ lọc"
Field (Trường dữ liệu) | Type (Kiểu dữ liệu) | Required (Bắt buộc) | Validation (Quy định) | Description (Mô tả) | |
|---|---|---|---|---|---|
| 1 | Tiêu đề bộ lọc | Nhãn hiệu (Label) | Thể hiển thị tiêu đề pop-up “Bộ lọc” | ||
| 2 | Khoảng thời gian | Ngày tháng năm (date) | Không bắt buộc |
| Thể hiện thời gian lọc từ ngày đến ngày |
| 3 | Người đồng bộ | Lựa chọn (Droplist) | Không bắt buộc |
| Thể hiện người thực hiện đồng bộ thông tin hợp đồng |
| 4 | Số hợp đồng | Văn bản (Text) | Không bắt buộc |
| Thể hiện tên số hợp đồng |
| 5 | Mã hợp đồng SAP | Văn bản (Text) | Không bắt buộc |
| Thể hiện tên mã hợp đồng SAP |
| 6 | Trạng thái | Lựa chọn (Droplist) | Không bắt buộc |
+ Thành công + Thất bại + Đang thực hiện + Tất cả (để mặc định) | Thể hiện trạng thái đồng bộ hợp đồng |
| 7 | Mã lỗi | Văn bản (Text) | Không bắt buộc |
| Thể hiện thông tin mã lỗi khi đồng bộ thông tin |
| 8 | Nút "X" | Nút chức năng (Button) | Không bắt buộc |
| Thể hiện nút "X" để hủy bỏ thao tác lọc. |
| 9 | Nút "Đặt lại" | Nút chức năng (Button) | Không bắt buộc | - Cho phép người dùng nhấn để đặt lại tất cả tiêu chí lọc về trạng thái mặc định ban đầu. - Hành vi hệ thống khi người dùng nhấn nút "Đặt lại" như sau:
| Thể hiện nút đặt lại tất cả tiêu chí lọc về trạng thái mặc định ban đầu. |
| 10 | Nút "Áp dụng" | Nút chức năng (Button) | Không bắt buộc | - Cho phép người dùng nhấn để áp dụng những tiêu chí lọc đã chọn. - Hành vi hiển thị kết quả hệ thống khi người dùng nhấn nút "Áp dụng" như sau:
| Thể hiện nút áp dụng tiêu chí lọc được chọn |
3.4.3 Pop-up chi tiết mã lỗi
Field (Trường dữ liệu) | Type (Kiểu dữ liệu) | Required (Bắt buộc) | Validation (Quy định) | Description (Mô tả) | |
|---|---|---|---|---|---|
| 1 | Tiêu đề màn hình | Nhãn hiệu (Label) | Không bắt buộc | Hiển thị tiêu đề "Đồng bộ thất bại" | |
| 2 | Văn bản thông báo | Nút chức năng (Button) | Không bắt buộc |
| - Thể hiện văn bản thông báo - Nội dung văn bản thông báo: "Mã lỗi. Mô tả chi tiết lỗi" |
| 3 | Nút "Thoát | Nút chức năng (Button) | Không bắt buộc |
| Thể hiện nút "Thoát" để đóng màn hình pop up cảnh báo |
...