80 lines
3 KiB
Markdown
80 lines
3 KiB
Markdown
# پیادهسازی کارمزد در بخش دریافت و پرداخت
|
|
|
|
## تغییرات اعمال شده
|
|
|
|
### 1. سرویس دریافت و پرداخت (`receipt_payment_service.py`)
|
|
|
|
#### تغییرات اصلی:
|
|
- **محاسبه مجموع کارمزدها**: مجموع کارمزدهای همه تراکنشها محاسبه میشود
|
|
- **ایجاد خطوط کارمزد جداگانه**: برای هر کارمزد، دو خط جداگانه ایجاد میشود:
|
|
- خط کارمزد برای حساب (بانک/صندوق/تنخواهگردان)
|
|
- خط کارمزد برای حساب کارمزد خدمات بانکی (کد 70902)
|
|
|
|
#### منطق کارمزد:
|
|
|
|
**در دریافت (Receipt):**
|
|
- کارمزد از حساب بانک/صندوق/تنخواهگردان کم میشود (Credit)
|
|
- کارمزد به حساب کارمزد خدمات بانکی اضافه میشود (Debit)
|
|
|
|
**در پرداخت (Payment):**
|
|
- کارمزد به حساب بانک/صندوق/تنخواهگردان اضافه میشود (Debit)
|
|
- کارمزد از حساب کارمزد خدمات بانکی کم میشود (Credit)
|
|
|
|
#### کدهای حساب:
|
|
- بانک: `10203`
|
|
- صندوق: `10202`
|
|
- تنخواهگردان: `10201`
|
|
- چک دریافتی: `10403`
|
|
- چک پرداختی: `20202`
|
|
- **کارمزد خدمات بانکی: `70902`**
|
|
|
|
### 2. نمایش خطوط کارمزد
|
|
|
|
در تابع `document_to_dict`:
|
|
- خطوط کارمزد با فلگ `is_commission_line: true` تشخیص داده میشوند
|
|
- خطوط کارمزد همیشه در `account_lines` نمایش داده میشوند
|
|
|
|
## نحوه استفاده
|
|
|
|
### فرانتاند:
|
|
```dart
|
|
// در InvoiceTransaction
|
|
final transaction = InvoiceTransaction(
|
|
// ... سایر فیلدها
|
|
commission: 5000, // کارمزد به ریال
|
|
);
|
|
```
|
|
|
|
### API:
|
|
```json
|
|
{
|
|
"account_lines": [
|
|
{
|
|
"transaction_type": "bank",
|
|
"amount": 1000000,
|
|
"commission": 5000,
|
|
"bank_id": "123"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
## نتیجه
|
|
|
|
✅ کارمزد از فرانت به سرور ارسال میشود
|
|
✅ کارمزد به عنوان سطر جداگانه در `document_lines` ثبت میشود
|
|
✅ کارمزد برای بانک، صندوق و تنخواهگردان به صورت جداگانه ثبت میشود
|
|
✅ کارمزد در حساب کارمزد خدمات بانکی (کد 70902) ثبت میشود
|
|
✅ تعادل حسابداری حفظ میشود
|
|
|
|
## مثال عملی
|
|
|
|
**دریافت 1,000,000 ریال از شخص با کارمزد 5,000 ریال:**
|
|
|
|
1. خط اصلی: شخص بستانکار 1,000,000 ریال
|
|
2. خط اصلی: بانک بدهکار 1,000,000 ریال
|
|
3. خط کارمزد: بانک بستانکار 5,000 ریال (کم شدن کارمزد)
|
|
4. خط کارمزد: کارمزد خدمات بانکی بدهکار 5,000 ریال (اضافه شدن کارمزد)
|
|
|
|
**مجموع:** شخص = 1,000,000 ریال، بانک = 995,000 ریال، کارمزد خدمات بانکی = 5,000 ریال ✅
|