|
8 | 8 | * @author Tran Ngoc Duc <ductn@diepxuan.com> |
9 | 9 | * @author Tran Ngoc Duc <caothu91@gmail.com> |
10 | 10 | * |
11 | | - * @lastupdate 2026-04-06 18:47:51 |
| 11 | + * @lastupdate 2026-04-12 17:19:23 |
12 | 12 | */ |
13 | 13 |
|
14 | 14 | namespace Diepxuan\Simba\StoredProcedures; |
|
20 | 20 | /** |
21 | 21 | * Class AsCAGetPH2. |
22 | 22 | * |
23 | | - * Stored procedure: asCAGetPH2 |
24 | | - * Mục đích: Lấy danh sách phiếu hàng 2 (PH2) từ hệ thống Simba. |
25 | | - * Procedure trả về danh sách các phiếu hàng loại 2 được sử dụng trong quản lý kho. |
| 23 | + * Stored procedure: `asCAGetPH2` |
26 | 24 | * |
27 | | - * Tham số: |
28 | | - * - Không có tham số đầu vào. |
| 25 | + * ## Mục đích |
29 | 26 | * |
30 | | - * Giá trị trả về: |
31 | | - * - Collection chứa danh sách phiếu hàng 2 với các trường thông tin liên quan. |
| 27 | + * Lấy thông tin phiếu hàng 2 (PH2) từ hệ thống Simba. |
| 28 | + * Procedure trả về danh sách các phiếu thuộc bảng CA_PH2 (Cash Phiếu 2). |
| 29 | + * |
| 30 | + * ## Parameters (theo SQL Server) |
| 31 | + * |
| 32 | + * | Name | Type | Required | Description | |
| 33 | + * |------|------|----------|-------------| |
| 34 | + * | `@pMa_cty` | nvarchar(3) | ❌ | Mã công ty | |
| 35 | + * | `@pStt_rec` | nvarchar(20) | ❌ | Số tham chiếu (stt_rec) cần lấy | |
| 36 | + * |
| 37 | + * ## Fields trả về |
| 38 | + * |
| 39 | + * Procedure trả về Collection với các fields từ bảng `CA_PH2`: |
| 40 | + * |
| 41 | + * | Field | Kiểu | Diễn giải | |
| 42 | + * |-------|------|-----------| |
| 43 | + * | `ma_cty` | string(3) | Mã công ty | |
| 44 | + * | `stt_rec` | string(20) | Số thứ tự bản ghi (PK) | |
| 45 | + * | `ma_ct` | string(3) | Mã chứng từ (CA1, CA2, CA3, CA4, CA5, CA6) | |
| 46 | + * | `so_ct` | string(20) | Số chứng từ | |
| 47 | + * | `ngay_ct` | datetime | Ngày chứng từ | |
| 48 | + * | `ngay_lct` | datetime | Ngày lập chứng từ | |
| 49 | + * | `kht_tain` | boolean | Kế hoạch tài chính | |
| 50 | + * | `ma_kh` | string(20) | Mã khách hàng | |
| 51 | + * | `dia_chi` | string(255) | Địa chỉ | |
| 52 | + * | `nguoi_gd` | string(30) | Người giao dịch | |
| 53 | + * | `dien_giai` | string(255) | Diễn giải | |
| 54 | + * | `tk_co` | string(20) | Tài khoản Có | |
| 55 | + * | `ma_nt` | string(3) | Mã ngoại tệ | |
| 56 | + * | `ty_gia` | float | Tỷ giá | |
| 57 | + * | `t_tien` | float | Tổng tiền VNĐ | |
| 58 | + * | `t_tien_nt` | float | Tổng tiền ngoại tệ | |
| 59 | + * | `t_thue_nt` | float | Thuế ngoại tệ | |
| 60 | + * | `t_thue` | float | Thuế VNĐ | |
| 61 | + * | `t_tt` | float | Tổng thanh toán VNĐ | |
| 62 | + * | `t_tt_nt` | float | Tổng thanh toán ngoại tệ | |
| 63 | + * | `stt_rec_hd` | string(20) | STT rec hóa đơn | |
| 64 | + * | `trang_thai` | string | Trạng thái | |
| 65 | + * | `post2gl` | string | Đã post GL chưa | |
| 66 | + * | `cdate` | datetime | Ngày tạo | |
| 67 | + * | `cuser` | string | Người tạo | |
| 68 | + * | `ldate` | datetime | Ngày sửa | |
| 69 | + * | `luser` | string | Người sửa | |
| 70 | + * |
| 71 | + * ## Ví dụ sử dụng |
32 | 72 | * |
33 | | - * Ví dụ gọi: |
34 | 73 | * ```php |
35 | | - * // Sử dụng method call() |
36 | | - * $result = AsCAGetPH2::call([]); |
| 74 | + * use Diepxuan\Simba\StoredProcedures\AsCAGetPH2; |
| 75 | + * |
| 76 | + * // 1. Lấy 1 phiếu theo stt_rec |
| 77 | + * $phieu = AsCAGetPH2::call([ |
| 78 | + * 'pStt_rec' => '001wCA40000000676570', |
| 79 | + * ])->first(); |
37 | 80 | * |
38 | | - * // Sử dụng method callWithParams() |
39 | | - * $result = AsCAGetPH2::callWithParams(); |
| 81 | + * // 2. Lấy tất cả phiếu của công ty |
| 82 | + * $allPhieu = AsCAGetPH2::call([ |
| 83 | + * 'pMa_cty' => '001', |
| 84 | + * ]); |
| 85 | + * |
| 86 | + * // 3. Lấy tất cả phiếu (không filter) |
| 87 | + * $allPhieu = AsCAGetPH2::call([]); |
| 88 | + * |
| 89 | + * // 4. Gọi với callWithParams() |
| 90 | + * $phieu = AsCAGetPH2::callWithParams( |
| 91 | + * Ma_cty: '001', |
| 92 | + * Stt_rec: '001wCA40000000676570' |
| 93 | + * )->first(); |
40 | 94 | * ``` |
41 | 95 | * |
42 | | - * Lưu ý: |
43 | | - * - Procedure thuộc nhóm Get (asCAGet*), không có output parameter. |
44 | | - * - Sử dụng method callWithParams() để gọi với các tham số đặt tên (nếu có trong tương lai). |
| 96 | + * ## Lưu ý |
| 97 | + * |
| 98 | + * - Procedure thuộc nhóm Get (`asCAGet*`), không có output parameter |
| 99 | + * - Kết quả trả về là Laravel Collection |
| 100 | + * - Nếu không truyền params → trả về tất cả phiếu |
| 101 | + * - Dùng `pStt_rec` để filter theo 1 phiếu cụ thể |
| 102 | + * - Dùng `pMa_cty` để filter theo công ty |
| 103 | + * |
| 104 | + * ## Tham chiếu |
| 105 | + * |
| 106 | + * - Bảng: `CA_PH2` |
| 107 | + * - Procedure liên quan: `asCAGetCT2` (lấy chi tiết phiếu) |
45 | 108 | */ |
46 | 109 | class AsCAGetPH2 |
47 | 110 | { |
48 | 111 | /** |
49 | 112 | * Gọi stored procedure asCAGetPH2. |
50 | 113 | * |
51 | | - * @param array $params mảng tham số (hiện tại không sử dụng) |
| 114 | + * @param array $params Mảng tham số với các khóa: pMa_cty, pStt_rec |
52 | 115 | * |
53 | | - * @return Collection kết quả trả về từ procedure |
| 116 | + * @return Collection kết quả từ procedure |
54 | 117 | */ |
55 | 118 | public static function call(array $params): Collection |
56 | 119 | { |
57 | 120 | $paramObj = ParamHelper::fromArray($params); |
58 | 121 | $connection = (new SModel())->getConnectionName(); |
59 | 122 |
|
60 | 123 | return ProcedureCaller::call('asCAGetPH2', [ |
| 124 | + 'pMa_cty' => $paramObj->pMa_cty ?? null, |
| 125 | + 'pStt_rec' => $paramObj->pStt_rec ?? null, |
61 | 126 | ], $connection); |
62 | 127 | } |
63 | 128 |
|
64 | 129 | /** |
65 | 130 | * Call stored procedure asCAGetPH2 with named parameters. |
66 | 131 | * |
67 | | - * @return Collection kết quả trả về từ procedure |
| 132 | + * @param null|string $Ma_cty Mã công ty |
| 133 | + * @param null|string $Stt_rec Số tham chiếu |
| 134 | + * |
| 135 | + * @return Collection Kết quả từ procedure |
68 | 136 | */ |
69 | | - public static function callWithParams(): Collection |
70 | | - { |
71 | | - return self::call([]); |
| 137 | + public static function callWithParams( |
| 138 | + ?string $Ma_cty = null, |
| 139 | + ?string $Stt_rec = null, |
| 140 | + ): Collection { |
| 141 | + return self::call([ |
| 142 | + 'pMa_cty' => $Ma_cty, |
| 143 | + 'pStt_rec' => $Stt_rec, |
| 144 | + ]); |
72 | 145 | } |
73 | 146 | } |
0 commit comments