13 KiB
Executable file
راهنمای استفاده از فایل Excel برای ایمپورت فاکتورها
📋 ساختار فایل Excel
فایل Excel تمپلیت دارای یک Sheet است که در آن هر ردیف = یک ردیف فاکتور است.
نکته مهم: گروهبندی فاکتورها
- ردیفهایی که
invoice_numberیکسان دارند، متعلق به یک فاکتور هستند - برای هر فاکتور میتوانید چند ردیف (چند کالا/خدمت) وارد کنید
- اطلاعات هدر فاکتور (مثل نوع فاکتور، تاریخ، مشتری) باید فقط در ردیف اول هر فاکتور وارد شوند
- در ردیفهای بعدی همان فاکتور، ستونهای هدر میتوانند خالی باشند (سیستم از ردیف اول استفاده میکند)
- فقط
invoice_numberو اطلاعات ردیف (product_code, quantity, ...) در همه ردیفها باید وارد شوند
📊 ستونهای فایل Excel
ستونهای هدر فاکتور (در همه ردیفهای یک فاکتور یکسان)
| ستون | نام | الزامی | توضیحات | مثال |
|---|---|---|---|---|
| invoice_number | شماره فاکتور | ✅ | شناسه یکتا برای گروهبندی ردیفها | INV-001 |
| invoice_type | نوع فاکتور | ✅ | sales, purchase, sales_return, purchase_return, direct_consumption, production, waste |
sales |
| document_date | تاریخ فاکتور | ✅ | فرمت: YYYY-MM-DD یا YYYY/MM/DD |
2024-01-15 |
| currency_code | کد ارز | ✅ | کد ارز موجود در سیستم | IRR, USD |
| is_proforma | پیشفاکتور | ❌ | TRUE یا FALSE (پیشفرض: FALSE) |
FALSE |
| description | توضیحات فاکتور | ❌ | توضیحات کلی فاکتور | فاکتور فروش نمونه |
| person_code | کد مشتری/تامینکننده | ⚠️ | برای sales و purchase الزامی است |
CUST-001 |
| seller_code | کد فروشنده/بازاریاب | ❌ | برای محاسبه کارمزد | SELLER-001 |
| due_date | تاریخ سررسید | ❌ | فرمت: YYYY-MM-DD |
2024-02-15 |
| post_inventory | ثبت انبار | ❌ | TRUE یا FALSE (پیشفرض: TRUE) |
TRUE |
ستونهای ردیف فاکتور (برای هر کالا/خدمت)
| ستون | نام | الزامی | توضیحات | مثال |
|---|---|---|---|---|
| product_code | کد کالا/خدمت | ✅ | کد محصول موجود در سیستم | P1001 |
| quantity | تعداد | ✅ | مقدار کالا/خدمت | 10 |
| unit | واحد | ❌ | main یا secondary (پیشفرض: main) |
main |
| unit_price | قیمت واحد | ✅ | قیمت به ازای واحد انتخابی | 100000 |
| discount_type | نوع تخفیف | ❌ | percent یا amount (پیشفرض: amount) |
amount |
| discount_value | مقدار تخفیف | ❌ | درصد یا مبلغ (بسته به نوع) | 5000 |
| tax_rate | نرخ مالیات | ❌ | درصد مالیات (پیشفرض: 0) |
9 |
| line_description | توضیحات ردیف | ❌ | توضیحات این ردیف خاص | ردیف اول |
| movement | جهت حرکت | ⚠️ | in یا out (فقط برای فاکتور تولید) |
out |
| warehouse_code | کد انبار | ❌ | کد انبار موجود در سیستم | WH-001 |
📝 مثال عملی
مثال 1: فاکتور فروش با 2 ردیف
فرض کنید میخواهید یک فاکتور فروش با 2 کالا ایجاد کنید:
| invoice_number | invoice_type | document_date | currency_code | is_proforma | description | person_code | seller_code | due_date | post_inventory | product_code | quantity | unit | unit_price | discount_type | discount_value | tax_rate | line_description | movement | warehouse_code |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| INV-001 | sales | 2024-01-15 | IRR | FALSE | فاکتور فروش | CUST-001 | 2024-02-15 | TRUE | P1001 | 10 | main | 100000 | amount | 5000 | 9 | ردیف اول | WH-001 | ||
| INV-001 | P1002 | 5 | main | 200000 | percent | 10 | 9 | ردیف دوم | WH-001 |
نکات:
- هر دو ردیف
invoice_numberیکسان دارند (INV-001) → متعلق به یک فاکتور - ردیف اول: اطلاعات هدر کامل وارد شده است
- ردیف دوم: ستونهای هدر خالی هستند (سیستم از ردیف اول استفاده میکند)
- فقط
invoice_numberو اطلاعات ردیف (product_code, quantity, unit_price, ...) در ردیف دوم وارد شده است
مثال 2: فاکتور خرید با 1 ردیف
| invoice_number | invoice_type | document_date | currency_code | is_proforma | description | person_code | seller_code | due_date | post_inventory | product_code | quantity | unit | unit_price | discount_type | discount_value | tax_rate | line_description | movement | warehouse_code |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| INV-002 | purchase | 2024-01-16 | IRR | FALSE | فاکتور خرید | SUPP-001 | TRUE | P1003 | 20 | main | 50000 | amount | 0 | 9 | WH-001 |
مثال 3: فاکتور تولید با 3 ردیف (2 خروجی + 1 ورودی)
| invoice_number | invoice_type | document_date | currency_code | is_proforma | description | person_code | seller_code | due_date | post_inventory | product_code | quantity | unit | unit_price | discount_type | discount_value | tax_rate | line_description | movement | warehouse_code |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| INV-003 | production | 2024-01-17 | IRR | FALSE | فاکتور تولید | TRUE | P2001 | 5 | main | 0 | amount | 0 | 0 | مواد اولیه 1 | out | WH-001 | |||
| INV-003 | production | 2024-01-17 | IRR | FALSE | فاکتور تولید | TRUE | P2002 | 3 | main | 0 | amount | 0 | 0 | مواد اولیه 2 | out | WH-001 | |||
| INV-003 | production | 2024-01-17 | IRR | FALSE | فاکتور تولید | TRUE | P3001 | 2 | main | 0 | amount | 0 | 0 | محصول نهایی | in | WH-001 |
نکات:
- برای فاکتور تولید،
movementالزامی است - ردیفهای با
movement: out= مواد اولیه (خروجی از انبار) - ردیفهای با
movement: in= محصول نهایی (ورودی به انبار) - باید حداقل یک ردیف
outو یک ردیفinداشته باشید
✅ مراحل وارد کردن اطلاعات
مرحله 1: دانلود تمپلیت
- در صفحه لیست فاکتورها، روی دکمه "ایمپورت از اکسل" کلیک کنید
- در Dialog باز شده، روی "دانلود تمپلیت" کلیک کنید
- فایل Excel را ذخیره کنید
مرحله 2: پر کردن فایل Excel
برای هر فاکتور:
-
تعیین شماره فاکتور: یک
invoice_numberیکتا انتخاب کنید (مثلاًINV-001) -
وارد کردن اطلاعات هدر فاکتور (فقط در ردیف اول):
invoice_type: نوع فاکتور (sales, purchase, ...)document_date: تاریخ فاکتورcurrency_code: کد ارزis_proforma: پیشفاکتور یا قطعیdescription: توضیحات (اختیاری)person_code: کد مشتری/تامینکننده (برای sales/purchase)due_date: تاریخ سررسید (اختیاری)post_inventory: ثبت انبار یا نه
⚠️ توجه: در ردیفهای بعدی همان فاکتور، این ستونها میتوانند خالی باشند.
-
وارد کردن ردیفهای فاکتور (برای هر کالا/خدمت یک ردیف):
product_code: کد کالا/خدمتquantity: تعدادunit: واحد (main/secondary)unit_price: قیمت واحدdiscount_type: نوع تخفیف (percent/amount)discount_value: مقدار تخفیفtax_rate: نرخ مالیاتline_description: توضیحات ردیف (اختیاری)warehouse_code: کد انبار (اختیاری)movement: جهت حرکت (فقط برای فاکتور تولید)
-
ردیفهای بعدی همان فاکتور:
- فقط
invoice_numberرا وارد کنید (باید همان شماره فاکتور باشد) - ستونهای هدر را خالی بگذارید
- فقط اطلاعات ردیف (product_code, quantity, unit_price, ...) را وارد کنید
- فقط
-
تکرار برای فاکتور بعدی:
- یک
invoice_numberجدید انتخاب کنید - مراحل 2، 3 و 4 را تکرار کنید
- یک
مرحله 3: ذخیره و ایمپورت
- فایل Excel را ذخیره کنید
- در Dialog ایمپورت، فایل را انتخاب کنید
- روی "بررسی (Dry Run)" کلیک کنید تا خطاها را ببینید
- پس از رفع خطاها، روی "ایمپورت واقعی" کلیک کنید
⚠️ نکات مهم
1. کدهای موجود در سیستم
product_code: باید کد محصولی باشد که قبلاً در سیستم ثبت شده استperson_code: باید کد مشتری/تامینکنندهای باشد که قبلاً در سیستم ثبت شده استcurrency_code: باید کد ارزی باشد که در سیستم وجود داردwarehouse_code: باید کد انباری باشد که در سیستم وجود دارد
2. فرمت تاریخ
- فرمتهای پشتیبانی شده:
YYYY-MM-DDیاYYYY/MM/DD - مثال:
2024-01-15یا2024/01/15
3. مقادیر Boolean
- برای
is_proformaوpost_inventory:TRUEیاFALSE - میتوانید از
1/0یابله/خیرهم استفاده کنید
4. واحدها
main: واحد اصلی محصولsecondary: واحد فرعی محصول- اگر خالی بگذارید، پیشفرض
mainاست
5. تخفیف
discount_type: amount→discount_valueبه صورت مبلغ (مثلاً5000ریال)discount_type: percent→discount_valueبه صورت درصد (مثلاً10درصد)
6. فاکتور تولید
- باید حداقل یک ردیف با
movement: out(مواد اولیه) داشته باشید - باید حداقل یک ردیف با
movement: in(محصول نهایی) داشته باشید - برای فاکتور تولید،
person_codeنیاز نیست
🔍 مثال کامل در Excel
Row 1 (Header):
invoice_number | invoice_type | document_date | currency_code | is_proforma | description | person_code | seller_code | due_date | post_inventory | product_code | quantity | unit | unit_price | discount_type | discount_value | tax_rate | line_description | movement | warehouse_code
Row 2 (ردیف اول فاکتور INV-001):
INV-001 | sales | 2024-01-15 | IRR | FALSE | فاکتور فروش | CUST-001 | | 2024-02-15 | TRUE | P1001 | 10 | main | 100000 | amount | 5000 | 9 | ردیف اول | | WH-001
Row 3 (ردیف دوم فاکتور INV-001 - ستونهای هدر خالی):
INV-001 | | | | | | | | | | P1002 | 5 | main | 200000 | percent | 10 | 9 | ردیف دوم | | WH-001
Row 4 (ردیف اول فاکتور INV-002):
INV-002 | purchase | 2024-01-16 | IRR | FALSE | فاکتور خرید | SUPP-001 | | | TRUE | P1003 | 20 | main | 50000 | amount | 0 | 9 | | | WH-001
❓ سوالات متداول
Q: آیا میتوانم چند فاکتور را در یک فایل Excel وارد کنم؟
A: بله! فقط کافی است invoice_number متفاوت برای هر فاکتور استفاده کنید.
Q: اگر یک فاکتور چند ردیف داشته باشد، باید چه کنم؟
A: برای هر ردیف، یک سطر در Excel ایجاد کنید و invoice_number را یکسان نگه دارید.
Q: آیا میتوانم ستونهای اختیاری را خالی بگذارم؟
A: بله، ستونهای اختیاری میتوانند خالی باشند. مقادیر پیشفرض اعمال میشود.
Q: اگر کد محصول یا مشتری را اشتباه وارد کنم چه میشود؟
A: در مرحله "بررسی (Dry Run)" خطا نمایش داده میشود و میتوانید قبل از ایمپورت واقعی آن را اصلاح کنید.
آخرین بهروزرسانی: 2024