Đơn hàng công trình
Mục tiêu:
CRM sẽ tạo ra 1 khái niệm "Đơn hàng công trình" mới, phục vụ việc duyệt các đơn hàng đồng bộ từ hệ thống IWM.
Hệ thống CRM chỉ có quyền xem + thay đổi đại ý bán và thầu thợ + duyệt đơn.
Chú ý: Việc chọn tt dựa vào khu vực làm việc
Tên class: SaleOrder
| Tên trường | Kiểu biến | Ý nghĩa |
| Id | long | Id đơn hàng |
| Code | string | Mã đơn hàng |
| AppUserCreatorId | long? | Id admin tạo đơn hàng |
| ConstructionId | long | Id công trình mà đơn hàng được tạo |
| ConstructionCustomerTypeId | long | Id kiểu Kh (enum) |
| CustomerId | long? | Id khách hàng |
| CustomerName | string | tên kh |
| CustomerPhone | string | sdt kh |
| CustomerEmail | string | email kh |
| CustomerProvinceId | long? | |
| CustomerDistrictId | long? | |
| CustomerWardId | long? | |
| CustomerAddress | string | |
| BrokerWorkerId | long? | Id KH thầu thợ môi giới |
| WorkerId | long? | Id KH thầu thợ thực hiện đơn |
| CustomerSellId | long? | Id KH đại lý bán hàng |
| PaymentTypeId | long? | Phương thức thanh toán (enum) |
| InformationBonus | decimal? | Phí cung cấp thông tin |
| InstallationBonus | decimal? | Phí cài đặt |
| MaintainBonus | decimal? | Phí bảo hành |
| UseInformationBonus | bool | |
| UseInstallationBonus | bool | |
| UseMaintainBonus | bool | |
| SubTotal | decimal | Giá niêm yết |
| DiscountAmount | decimal? | Chiết khấu |
| Total | decimal | Tổng đơn |
| AssignmentStatusId | long | Trạng thái điều phối (enum) |
| ApprovalStateId | long | Trạng thái duyệt (enum) |
| CreatedAt | datetime | ngày tạo |
| UpdatedAt | datetime | ngày cập nhật cuối |
| DeletedAt | datetime? | ngày xoá |
Tên class: SaleOrderContent
| Tên trường | Kiểu biến | Ý nghĩa |
| Id | long | |
| SaleOrderId | long | |
| ItemId | long | Id sản phẩm |
| Quantity | decimal | Số lượng theo dvt đã chọn |
| UnitOfMeasureId | long | đvt đã chọn |
| RequestedQuantity | decimal | số lượng theo đvt cơ bản của sp |
| PrimaryUnitOfMeasureId | long | dvt cơ bản của sp |
| SalePrice | decimal? | Giá niêm yết |
| RetailPriceNotVAT | decimal | Giá bán chưa thuế |
| RetailPrice | decimal | Giá bán đã thuế |
| Amount | decimal | Tổng giá trị dòng |
| Factor | decimal? | hệ số quy đổi đơn vị tính |
| DiscountAmount | decimal | Chiết khấu dòng |
Các luồng logic chính:
- Đồng bộ đơn hàng từ IWM: Sau khi tạo, cập nhật đơn hàng trên IWM thì sẽ bắn Rabbit qua cho CRM với key SaleOrder.Sync
- Cập nhật thông tin đại lý + thầu thợ thực hiện trên CRM sẽ gọi api /update của thầu thợ để có thể lưu lại lịch sử ( nên viết controller riêng)
- Duyệt/từ chối đơn trên CRM cũng sẽ gọi api /send hoặc /reject của IWM
Mô tả api:
| API | Chức năng | Payload mẫu | Response mẫu |
| /rpc/crm/sale-order/list | Lấy danh sách các đơn hàng của công trình |
|
[] |
| /rpc/crm/sale-order/count | Lấy tổng số lượng đơn hàng của công trình |
|
10 |
| /rpc/crm/sale-order/filter-list-customer | Filter đại lý bán ( CustomerTypeId là 1) và thầu thợ thực hiện (CustomerTypeId là 6) |
hoặc
|
[] |
| /rpc/crm/sale-order/filter-list-assignment-status | filter trạng thái điều phối | {} | [] |
| /rpc/crm/sale-order/filter-list-approval-state | filter trạng thái duyệt đơn | {} | [] |
| rpc/crm/sale-order/get | Xem thông tin chi tiết đơn hàng | {"id":1} | |
| rpc/crm/sale-order/ |
Filter kiểu khách hàng |
{} | [] |
| rpc/crm/sale-order/update-sale-information | Update thông tin đại lý bán và khách hàng thầu thợ | ||
rpc/crm/sale-order/approve |
Duyệt đơn hàng với thông tin đại lý bán và khách hàng thầu thợ hiện tại |
|
|
rpc/crm/sale-order/reject |
Từ chối đơn hàng với thông tin đại lý bán và khách hàng thầu thợ hiện tại |
|

lter-danh sách-phê duyệt-s
