|
8 | 8 | * @author Tran Ngoc Duc <ductn@diepxuan.com> |
9 | 9 | * @author Tran Ngoc Duc <caothu91@gmail.com> |
10 | 10 | * |
11 | | - * @lastupdate 2026-02-12 13:15:00 |
| 11 | + * @lastupdate 2026-04-06 08:36:17 |
12 | 12 | */ |
13 | 13 |
|
14 | 14 | namespace Diepxuan\Simba\StoredProcedures; |
15 | 15 |
|
| 16 | +use Diepxuan\Simba\Helper\ParamHelper; |
16 | 17 | use Diepxuan\Simba\SModel\SModel; |
17 | 18 | use Illuminate\Support\Collection; |
18 | | -use Diepxuan\Simba\Helper\ParamHelper; |
19 | 19 |
|
| 20 | +/** |
| 21 | + * Class AsCARptTMNH02. |
| 22 | + * |
| 23 | + * Stored procedure: asCARptTMNH02 |
| 24 | + * Mục đích: Báo cáo lưu chuyển tiền tệ mẫu 02 (TMNH02). |
| 25 | + * Procedure thực hiện truy vấn và trả về báo cáo lưu chuyển tiền tệ theo tài khoản và khoảng thời gian. |
| 26 | + * |
| 27 | + * Tham số (theo định nghĩa thực tế trong SQL Server): |
| 28 | + * - @pMa_Cty (nvarchar(3)): Mã công ty. Default 'A01'. |
| 29 | + * - @pTk (nvarchar(20)): Tài khoản. Default '112'. |
| 30 | + * - @pNgay_Ct1 (smalldatetime): Từ ngày. Default '2015-10-01'. |
| 31 | + * - @pNgay_ct2 (smalldatetime): Đến ngày. Default '2015-10-31'. |
| 32 | + * - @pMa_Nt (nvarchar(3)): Mã ngoại tệ. Default ''. |
| 33 | + * |
| 34 | + * Giá trị trả về: |
| 35 | + * - Procedure trả về result set chứa dữ liệu báo cáo lưu chuyển tiền tệ. |
| 36 | + * - Không có output parameter pRet (procedure SELECT, không INSERT/UPDATE). |
| 37 | + * |
| 38 | + * Ví dụ gọi: |
| 39 | + * ```php |
| 40 | + * $result = AsCARptTMNH02::call([ |
| 41 | + * 'pMa_Cty' => '001', |
| 42 | + * 'pTk' => '112', |
| 43 | + * 'pNgay_Ct1' => '2026-01-01', |
| 44 | + * 'pNgay_ct2' => '2026-01-31', |
| 45 | + * 'pMa_Nt' => 'VND', |
| 46 | + * ]); |
| 47 | + * ``` |
| 48 | + * |
| 49 | + * Lưu ý: |
| 50 | + * - Procedure chỉ thực hiện SELECT, không thay đổi dữ liệu. |
| 51 | + */ |
20 | 52 | class AsCARptTMNH02 |
21 | 53 | { |
| 54 | + /** |
| 55 | + * Gọi stored procedure asCARptTMNH02. |
| 56 | + * |
| 57 | + * @param array $params Mảng tham số với các khóa tương ứng tên tham số. |
| 58 | + * Các parameters có thể thiếu, sẽ dùng giá trị default. |
| 59 | + * |
| 60 | + * @return Collection kết quả từ procedure (dữ liệu báo cáo) |
| 61 | + */ |
22 | 62 | public static function call(array $params): Collection |
23 | 63 | { |
24 | | - $paramObj = ParamHelper::fromArray($params); |
| 64 | + $paramObj = ParamHelper::fromArray($params); |
25 | 65 | $connection = (new SModel())->getConnectionName(); |
26 | 66 |
|
27 | 67 | return ProcedureCaller::call('asCARptTMNH02', [ |
28 | | - |
| 68 | + 'pMa_Cty' => $paramObj->pMa_Cty ?? SModel::CTY, |
| 69 | + 'pTk' => $paramObj->pTk ?? '112', |
| 70 | + 'pNgay_Ct1' => $paramObj->pNgay_Ct1 ?? '2015-10-01', |
| 71 | + 'pNgay_ct2' => $paramObj->pNgay_ct2 ?? '2015-10-31', |
| 72 | + 'pMa_Nt' => $paramObj->pMa_Nt ?? '', |
29 | 73 | ], $connection); |
30 | 74 | } |
| 75 | + |
| 76 | + /** |
| 77 | + * Call stored procedure asCARptTMNH02 with named parameters (helper method). |
| 78 | + * |
| 79 | + * @param null|string $Ma_Cty Mã công ty |
| 80 | + * @param null|string $Tk Tài khoản |
| 81 | + * @param null|string $Ngay_Ct1 Từ ngày |
| 82 | + * @param null|string $Ngay_ct2 Đến ngày |
| 83 | + * @param null|string $Ma_Nt Mã ngoại tệ |
| 84 | + * |
| 85 | + * @return Collection Kết quả từ procedure |
| 86 | + */ |
| 87 | + public static function callWithParams( |
| 88 | + ?string $Ma_Cty = null, |
| 89 | + ?string $Tk = null, |
| 90 | + ?string $Ngay_Ct1 = null, |
| 91 | + ?string $Ngay_ct2 = null, |
| 92 | + ?string $Ma_Nt = null, |
| 93 | + ): Collection { |
| 94 | + return self::call([ |
| 95 | + 'pMa_Cty' => $Ma_Cty, |
| 96 | + 'pTk' => $Tk, |
| 97 | + 'pNgay_Ct1' => $Ngay_Ct1, |
| 98 | + 'pNgay_ct2' => $Ngay_ct2, |
| 99 | + 'pMa_Nt' => $Ma_Nt, |
| 100 | + ]); |
| 101 | + } |
31 | 102 | } |
0 commit comments