إنشاء رمز للغة المحاسبة ذات القيد المزدوج بناءً على الفواتير. دعم الفاتورة الحالية:
دعم لغات المحاسبة الحالية:
تدعم البنية التوسعة إذا كنت بحاجة إلى دعم فواتير جديدة (مثل فواتير البنك، وما إلى ذلك)، فيمكنك إضافة مزود. إذا كنت بحاجة إلى دعم لغات المحاسبة الجديدة، يمكنك إضافة مترجم.
┌───────────┐ ┌──────────┐ ┌────┐ ┌──────────┐ ┌──────────┐
│ translate │->│ provider │->│ IR │->│ compiler │->│ analyser │
└───────────┘ └──────────┘ └────┘ └──────────┘ └──────────┘
alipay beancount alipay
wechat ledger wechat
huobi huobi
htsec htsec
icbc icbc
td td
bmo bmo
التثبيت باستخدام Homebrew:
brew install deb-sig/tap/double-entry-generator
تحديث البرنامج باستخدام Homebrew:
brew upgrade deb-sig/tap/double-entry-generator
ما عليك سوى تنزيل الملف الثنائي للبنية المقابلة لجهاز الكمبيوتر المحلي الخاص بك من صفحة إصدار GitHub.
go get -u github.com/deb-sig/double-entry-generator
يرجى الاطلاع على وثائق الاستخدام
double-entry-generator translate
--config ./example/alipay/config.yaml
--output ./example/alipay/example-alipay-output.beancount
./example/alipay/example-alipay-records.csv
من بينها، --config
هو ملف التكوين افتراضيًا، يتم استخدام Alipay كموفر، ويمكن أيضًا تحديد --provider
يدويًا. يرجى الرجوع إلى وثائق الاستخدام للحصول على التفاصيل. الملف الذي تم إنشاؤه افتراضيًا هو default_output.beancount
إذا حدد --output
أو -o
ملف إخراج، فسيتم إخراجه إلى الملف المحدد. في المثال أعلاه، سيتم إخراج نتائج التحويل إلى ملف ./example/alipay/example-alipay-output.beancount
.
double-entry-generator translate
--config ./example/wechat/config.yaml
--provider wechat
--output ./example/wechat/example-wechat-output.beancount
./example/wechat/example-wechat-records.csv
double-entry-generator translate
--config ./example/huobi/config.yaml
--provider huobi
--output ./example/huobi/example-huobi-output.beancount
./example/huobi/example-huobi-records.csv
double-entry-generator translate
--config ./example/htsec/config.yaml
--provider htsec
--output ./example/htsec/example-htsec-output.beancount
./example/htsec/example-htsec-records.xlsx
double-entry-generator translate
--config ./example/icbc/credit/config.yaml
--provider icbc
--output ./example/icbc/credit/example-icbc-credit-output.beancount
./example/icbc/credit/example-icbc-credit-records.csv
double-entry-generator translate
--config ./example/td/config.yaml
--provider td
--output ./example/td/example-td-output.beancount
./example/td/example-td-records.csv
double-entry-generator translate
--config ./example/bmo/credit/config.yaml
--provider bmo
--output ./example/bmo/credit/example-bmo-output.beancount
./example/bmo/credit/example-bmo-records.csv
double-entry-generator translate
--config ./example/alipay/config.yaml
--target ledger
--output ./example/alipay/example-alipay-output.ledger
./example/alipay/example-alipay-records.csv
double-entry-generator translate
--config ./example/wechat/config.yaml
--provider wechat
--target ledger
--output ./example/wechat/example-wechat-output.ledger
./example/wechat/example-wechat-records.csv
double-entry-generator translate
--config ./example/huobi/config.yaml
--provider huobi
--target ledger
--output ./example/huobi/example-huobi-output.ledger
./example/huobi/example-huobi-records.csv
double-entry-generator translate
--config ./example/htsec/config.yaml
--provider htsec
--target ledger
--output ./example/htsec/example-htsec-output.ledger
./example/htsec/example-htsec-records.xlsx
double-entry-generator translate
--config ./example/icbc/credit/config.yaml
--provider icbc
--target ledger
--output ./example/icbc/credit/example-icbc-credit-output.ledger
./example/icbc/credit/example-icbc-credit-records.csv
double-entry-generator translate
--config ./example/td/config.yaml
--provider td
--target ledger
--output ./example/td/example-td-output.ledger
./example/td/example-td-records.csv
double-entry-generator translate
--config ./example/bmo/debit/config.yaml
--provider bmo
--target ledger
--output ./example/bmo/debit/example-bmo-output.ledger
./example/bmo/debit/example-bmo-records.csv
بالنسبة للإصدارات v1.0.0
وما فوق، يرجى الرجوع إلى هذه المقالة للحصول على فاتورة Alipay.
بالنسبة للإصدارات v0.2.0
والإصدارات الأقدم، يرجى استخدام هذه الطريقة للحصول على الفاتورة: بعد تسجيل الدخول إلى PC Alipay، قم بزيارة هنا، وحدد النطاق الزمني، ثم انزل إلى أسفل الصفحة، وانقر فوق لتنزيل نتائج الاستعلام. ملحوظة: يرجى تنزيل نتائج الاستعلام وليس تفاصيل الإيرادات والنفقات.
مثال-alipay-records.csv
هذا المثال هو تنسيق الفاتورة الذي تم الحصول عليه من تطبيق "Alipay".
مثال على النتيجة المحولة: exmaple-alipay-output.beancount.
انظر هنا لمعرفة كيفية تنزيل WeChat Pay.
مثال-wechat-records.csv
مثال على النتيجة المحولة: exmaple-wechat-output.beancount.
في الوقت الحاضر، يضمن المشروع فقط تحويل أوامر التداول من العملة إلى العملة المشفرة، ولم يختبر بعد العقود والرافعة المالية وأوامر التداول الأخرى.
ترحيب العلاقات العامة :)
قم بتسجيل الدخول إلى موقع Huobi Global، وأدخل إلى صفحة تفاصيل المعاملة الخاصة بطلب العملة، وحدد النطاق الزمني المناسب، وانقر على زر التصدير في الزاوية اليمنى العليا من تفاصيل المعاملة.
exmaple-huobi-records.csv
مثال على النتيجة المحولة: exmaple-huobi-output.beancount.
قم بتسجيل الدخول إلى عميل الكمبيوتر الشخصي ذو الإصدار التجاري المستقل لـ eHaitongcai PC، وحدد طلب التسليم - الاستعلام في شريط التنقل الأيسر، وانقر فوق زر الاستعلام الموجود على اليمين لتصدير ملف Excel لأمر التسليم.
مثال-htsec-records.csv
مثال على النتيجة المحولة: exmaple-htsec-output.beancount.
يمكن العثور على كيفية تنزيل بيان ICBC هنا.
يمكن
double-entry-generator
التعرف تلقائيًا على نوع الفاتورة (بطاقة الخصم / بطاقة الائتمان) الخاصة بالبنك الصناعي والتجاري الصيني.
مثال على فاتورة بطاقة الخصم: example-icbc-debit-records.csv
مثال على نتيجة تحويل فاتورة بطاقة الخصم: example-icbc-debit-output.beancount.
مثال على فاتورة بطاقة الائتمان: example-icbc-credit-records.csv
مثال على النتيجة المحولة لفاتورة بطاقة الائتمان: example-icbc-credit-output.beancount.
سبيل المثال-td-records.csv
مثال-bmo-record.csv
مثال-JD-records.csv
defaultMinusAccount : Assets:FIXME
defaultPlusAccount : Expenses:FIXME
defaultCurrency : CNY
title : 测试
alipay :
rules :
- category : 日用百货
targetAccount : Expenses:Groceries
- category : 餐饮美食
time : 11:00-14:00
targetAccount : Expenses:Food:Lunch
- category : 餐饮美食
time : 16:00-22:00
targetAccount : Expenses:Food:Dinner
- peer : 滴露
targetAccount : Expenses:Groceries
- peer : 苏宁
targetAccount : Expenses:Electronics
- item : 相互宝
targetAccount : Expenses:Insurance
- method : 余额
fullMatch : true
methodAccount : Assets:Alipay
- method : 余额宝
fullMatch : true
methodAccount : Assets:Alipay
- method : 招商银行(9876)
fullMatch : true
methodAccount : Assets:Bank:CN:CMB-9876:Savings
- type : 收入 # 其他转账收款
targetAccount : Income:FIXME
methodAccount : Assets:Alipay
- type : 收入 # 收款码收款
item : 商品
targetAccount : Income:Alipay:ShouKuanMa
methodAccount : Assets:Alipay
# 交易类型为其他
- type : 其他
item : 收益发放
methodAccount : Income:Alipay:YuEBao:PnL
targetAccount : Assets:Alipay
- type : 其他
item : 余额宝-单次转入
targetAccount : Assets:Alipay
methodAccount : Assets:Alipay
- peer : 基金
type : 其他
item : 黄金-买入
methodAccount : Assets:Alipay
targetAccount : Assets:Alipay:Invest:Gold
- peer : 基金
type : 其他
item : 黄金-卖出
methodAccount : Assets:Alipay:Invest:Gold
targetAccount : Assets:Alipay
pnlAccount : Income:Alipay:Invest:PnL
- peer : 基金
type : 其他
item : 买入
methodAccount : Assets:Alipay
targetAccount : Assets:Alipay:Invest:Fund
- peer : 基金
type : 其他
item : 卖出
methodAccount : Assets:Alipay:Invest:Fund
targetAccount : Assets:Alipay
pnlAccount : Income:Alipay:Invest:PnL
defaultMinusAccount
و defaultPlusAccount
و defaultCurrency
هي القيم الافتراضية العالمية المطلوبة. من بينها، defaultMinusAccount
هو الحساب الذي تم تخفيض المبلغ الافتراضي فيه، defaultPlusAccount
هو الحساب الذي تم زيادة المبلغ الافتراضي فيه. defaultCurrency
هي العملة الافتراضية.
alipay
هو التكوين الخاص بموفر Alipay ولديه آلية مطابقة القواعد.
التكوين المتعلق بفاتورة alipay
ant. ويوفر المطابقة القائمة على القواعد. يمكنك تحديد:
peer
(الطرف المقابل).item
(وصف العنصر).type
(إيصال/مصروفات).method
(طريقة الاستلام/الدفع).category
(فئة المعاملة).time
(وقت التداول).يمكن كتابة وقت التداول بالشكلين التاليين:
11:00-13:00
11:00:00-13:00:00
نظام 24 ساعة، يتم فصل وقت البدء ووقت الانتهاء بـ-
.
minPrice
(الحد الأدنى للمبلغ) و maxPrice
(الحد الأقصى للمبلغ).يمكنك استخدام الفاصل (sep) لملء كلمات رئيسية متعددة في قاعدة واحدة، وفي نفس الكائن، توجد علاقة OR بين كل كلمة رئيسية.
يمكنك استخدام fullMatch
لتعيين قواعد مطابقة الأحرف في قاعدة واحدة. true
يعني استخدام المطابقة الكاملة، ويعني false
استخدام المطابقة الجزئية. إذا لم يتم تعيين هذا العنصر، فسيتم استخدام المطابقة الشاملة بشكل افتراضي.
في قاعدة واحدة، يمكنك استخدام tag
لتعيين علامة خط الأنابيب، واستخدام sep
كفاصل.
يمكنك استخدام ignore
في قاعدة واحدة لتعيين ما إذا كنت تريد تجاهل المعاملات المطابقة للقاعدة أم لا. true
يعني تجاهل المعاملات المطابقة للقاعدة، ويعني fasle
عدم التجاهل، والقيمة الافتراضية هي false
.
إذا نجحت المطابقة، فسيتم استخدام targetAccount
و methodAccount
والحسابات الأخرى المحددة في القاعدة للكتابة فوق الحساب المحدد الافتراضي.
ترتيب مطابقة القاعدة هو: بدء المطابقة من العنصر الأول في تكوين rules
، ومواصلة المطابقة إذا كانت المطابقة ناجحة. أي أن أولوية القواعد اللاحقة أعلى من أولوية القواعد السابقة.
يوفر Alipay حقل "طريقة المعاملة" لتحديد الأموال التي تدخل الحساب وتخرج منه. وبهذه الطريقة، يمكنك مباشرة استخدام "طريقة المعاملة" وحقل "الدخل/الإنفاق" لتأكيد ما إذا كان الحساب في زيادة أو نقصان. تتطلب طريقة المحاسبة ذات القيد المزدوج حسابين على الأقل لكل معاملة، ويمكن إدخال الحساب الآخر من خلال "النظير"، و"السلعة" (البند)، و"الاستلام/النفقة" (النوع)، و"طريقة المعاملة" (الطريقة). ) يتم الحصول عليها من خلال مطابقات التضمين المتعددة. إذا نجحت المطابقة، فسيتم استخدام targetAccount
و methodAccount
المحددين في القاعدة، ومن خلال تأكيد ما إذا كانت المعاملة عبارة عن دخل أو نفقات، سيتم تحديد العلاقة الإيجابية والسلبية بين targetAccount
و methodAccount
لتجاوز حساب الزيادة أو النقصان المحدد افتراضيًا .
علاقة الحساب بين targetAccount
و methodAccount
هي كما يلي:
الدخل/النفقات | تصنيف المعاملات | minusAccount | plusAccount |
---|---|---|---|
دخل | * | targetAccount | this.methodAccount |
دخل | استرداد | targetAccount | this.methodAccount |
الإنفاق | * | this.methodAccount | targetAccount |
آخر | * | this.methodAccount | targetAccount |
آخر | استرداد | targetAccount | this.methodAccount |
عندما يكون نوع المعاملة "أخرى"، يتعين عليك تحديد حساب القرض يدويًا بنفسك. في هذا الوقت، سيعتقد البرنامج
methodAccount
هو حساب ائتماني وأنtargetAccount
هو حساب مدين.
defaultMinusAccount : Assets:FIXME
defaultPlusAccount : Expenses:FIXME
defaultCommissionAccount : Expenses:Commission:FIXME
defaultCurrency : CNY
title : 测试
wechat :
rules :
# type (additional condition)
- type : 收入 # 微信红包
method : /
item : /
targetAccount : Income:Wechat:RedPacket
- type : / # 转入零钱通
txType : 转入零钱
peer : /
item : /
targetAccount : Assets:Digital:Wechat:Cash
- type : / # 零钱提现
txType : 零钱提现
targetAccount : Assets:Digital:Wechat:Cash
commissionAccount : Expenses:Wechat:Commission
- type : / # 零钱充值
txType : 零钱充值
targetAccount : Assets:Digital:Wechat:Cash
- type : / # 零钱通转出-到工商银行(9876)
txType : 零钱通转出-到工商银行(9876)
targetAccount : Assets:Bank:CN:ICBC:Savings
- peer : 云膳过桥米线,餐厅
sep : ' , '
time : 11:00-15:00
targetAccount : Expenses:Food:Meal:Lunch
- peer : 云膳过桥米线,餐厅
sep : ' , '
time : 16:30-21:30
targetAccount : Expenses:Food:Meal:Dinner
- peer : 餐厅
time : 23:55-00:10 # test T+1
targetAccount : Expenses:Food:Meal:MidNight
- peer : 餐厅
time : 23:50-00:05 # test T-1
targetAccount : Expenses:Food:Meal:MidNight
- peer : 房东
type : 支出
targetAccount : Expenses:Housing:Rent
- peer : 用户
type : 收入
targetAccount : Income:Service
- peer : 理财通
type : /
targetAccount : Assets:Trade:Tencent:LiCaiTong
- peer : 建设银行
txType : 信用卡还款
targetAccount : Liabilities:Bank:CN:CCB
- method : / # 一般为收入,存入零钱
methodAccount : Assets:Digital:Wechat:Cash
- method : 零钱
fullMatch : true
methodAccount : Assets:Digital:Wechat:Cash
- method : 零钱通
fullMatch : true
methodAccount : Assets:Digital:Wechat:Cash
- method : 工商银行
methodAccount : Assets:Bank:CN:ICBC:Savings
- method : 中国银行
methodAccount : Assets:Bank:CN:BOC:Savings
defaultMinusAccount
و defaultPlusAccount
و defaultCurrency
هي القيم الافتراضية العالمية المطلوبة. من بينها، defaultMinusAccount
هو الحساب الذي تم تخفيض المبلغ الافتراضي فيه، defaultPlusAccount
هو الحساب الذي تم زيادة المبلغ الافتراضي فيه. defaultCurrency
هي العملة الافتراضية.
defaultCommissionAccount
هو حساب رسوم الخدمة الافتراضي. إذا لم تكن هناك معاملات متعلقة برسوم الخدمة، فلن تحتاج إلى ملؤها. ومع ذلك، لا يزال المؤلف يوصي بملء عنصر نائب في حساب FIXME، وإلا فسيخرج المحول مع وجود خطأ عند مواجهة معاملة برسوم خدمة.
wechat
هو التكوين الخاص بالموفر ولديه آلية مطابقة القواعد.
wechat
هو التكوين المتعلق بـ WeChat. ويوفر المطابقة القائمة على القواعد. يمكنك تحديد:
peer
(الطرف المقابل).item
(اسم العنصر).type
(إيصال/مصروفات).txType
(نوع المعاملة).method
(طريقة الدفع).time
(وقت التداول).يمكن كتابة وقت التداول بالشكلين التاليين:
11:00-13:00
11:00:00-13:00:00
نظام 24 ساعة، يتم فصل وقت البدء ووقت الانتهاء بـ-
.
minPrice
(الحد الأدنى للمبلغ) و maxPrice
(الحد الأقصى للمبلغ).يمكنك استخدام الفاصل (sep) لملء كلمات رئيسية متعددة في قاعدة واحدة، وفي نفس الكائن، توجد علاقة OR بين كل كلمة رئيسية.
يمكنك استخدام fullMatch
لتعيين قواعد مطابقة الأحرف في قاعدة واحدة. true
يعني استخدام المطابقة الكاملة، ويعني false
استخدام المطابقة الجزئية. إذا لم يتم تعيين هذا العنصر، فسيتم استخدام المطابقة الشاملة بشكل افتراضي.
في قاعدة واحدة، يمكنك استخدام tag
لتعيين علامة خط الأنابيب، واستخدام sep
كفاصل.
يمكنك استخدام ignore
في قاعدة واحدة لتعيين ما إذا كنت تريد تجاهل المعاملات المطابقة للقاعدة أم لا. true
يعني تجاهل المعاملات المطابقة للقاعدة، ويعني fasle
عدم التجاهل، والقيمة الافتراضية هي false
.
إذا نجحت المطابقة، فسيتم استخدام targetAccount
و methodAccount
والحسابات الأخرى المحددة في القاعدة للكتابة فوق الحساب المحدد الافتراضي.
ترتيب مطابقة القاعدة هو: بدء المطابقة من العنصر الأول في تكوين rules
، ومواصلة المطابقة إذا كانت المطابقة ناجحة. أي أن أولوية القواعد اللاحقة أعلى من أولوية القواعد السابقة.
توفر فاتورة WeChat حقل "طريقة المعاملة" لتحديد الأموال التي تدخل الحساب وتخرج منه. وبهذه الطريقة، يمكنك مباشرة استخدام "طريقة المعاملة" وحقل "الدخل/الإنفاق" لتأكيد ما إذا كان الحساب في زيادة أو نقصان. تتطلب طريقة المحاسبة ذات القيد المزدوج حسابين على الأقل لكل معاملة، ويمكن إدخال الحساب الآخر من خلال "النظير"، و"السلعة" (البند)، و"الاستلام/النفقة" (النوع)، و"طريقة المعاملة" (الطريقة). ) يتم الحصول عليها من خلال مطابقات التضمين المتعددة. إذا كان تكوين Alipay مشابهًا، وإذا نجحت المطابقة، فسيتم استخدام targetAccount
و methodAccount
المحددين في القواعد، ومن خلال تأكيد ما إذا كانت المعاملة عبارة عن دخل أو نفقات، سيتم تحديد العلاقة الإيجابية والسلبية بين targetAccount
و methodAccount
للتجاوز حساب الزيادة أو النقصان المحدد افتراضيًا.
علاقة الحساب بين targetAccount
و methodAccount
هي كما يلي:
الدخل/النفقات | minusAccount | plusAccount |
---|---|---|
دخل | targetAccount | this.methodAccount |
الإنفاق | this.methodAccount | targetAccount |
defaultCashAccount : Assets:Huobi:Cash
defaultPositionAccount : Assets:Huobi:Positions
defaultCommissionAccount : Expenses:Huobi:Commission
defaultPnlAccount : Income:Huobi:PnL
defaultCurrency : USDT
title : 测试
huobi :
rules :
- item : BTC/USDT,BTC1S/USDT # multiple keywords with separator
type : 买入
txType : 币币交易
fullMatch : true
sep : ' , ' # define separator as a comma
cashAccount : Assets:Rule1:Cash
positionAccount : Assets:Rule1:Positions
CommissionAccount : Expenses:Rule1:Commission
pnlAccount : Income:Rule1:PnL
defaultCashAccount
و defaultPositionAccount
و defaultCommissionAccount
و defaultPnlAccount
و defaultCurrency
هي القيم الافتراضية العالمية المطلوبة.
huobi
هو التكوين الخاص بالموفر ولديه آلية مطابقة القواعد.
huobi
هو التكوين المتعلق بـ Huobi. ويوفر المطابقة القائمة على القواعد. يمكنك تحديد:
item
(زوج التداول).type
(اتجاه التداول).txType
(نوع المعاملة).time
(وقت التداول).يمكن كتابة وقت التداول بالشكلين التاليين:
11:00-13:00
11:00:00-13:00:00
نظام 24 ساعة، يتم فصل وقت البدء ووقت الانتهاء بـ-
.
يمكنك استخدام الفاصل (sep) لملء كلمات رئيسية متعددة في قاعدة واحدة، وفي نفس الكائن، توجد علاقة OR بين كل كلمة رئيسية.
يمكنك استخدام fullMatch
لتعيين قواعد مطابقة الأحرف في قاعدة واحدة. true
يعني استخدام المطابقة الكاملة، ويعني false
استخدام المطابقة الجزئية. إذا لم يتم تعيين هذا العنصر، فسيتم استخدام المطابقة الشاملة بشكل افتراضي.
يمكنك استخدام ignore
في قاعدة واحدة لتعيين ما إذا كنت تريد تجاهل المعاملات المطابقة للقاعدة أم لا. true
يعني تجاهل المعاملات المطابقة للقاعدة، ويعني fasle
عدم التجاهل، والقيمة الافتراضية هي false
.
إذا نجحت المطابقة، فسيتم استخدام cashAccount
و positionAccount
و commissionAccount
و pnlAccount
المحددة في القاعدة لتجاوز التعريف الافتراضي.
ترتيب مطابقة القاعدة هو: بدء المطابقة من العنصر الأول في تكوين rules
، ومواصلة المطابقة إذا كانت المطابقة ناجحة. أي أن أولوية القواعد اللاحقة أعلى من أولوية القواعد السابقة.
في:
defaultCashAccount
هو حساب رأس المال الافتراضي، والذي يُستخدم بشكل عام لتخزين USDT.defaultPositionAccount
هو حساب المركز الافتراضي.defaultCommissionAccount
هو حساب العمولة الافتراضي.defaultPnlAccount
هو حساب الربح والخسارة الافتراضي.defaultCurrency
هي العملة الافتراضية. defaultCashAccount : Assets:Htsec:Cash
defaultPositionAccount : Assets:Htsec:Positions
defaultCommissionAccount : Expenses:Htsec:Commission
defaultPnlAccount : Income:Htsec:PnL
defaultCurrency : CNY
title : 测试
htsec :
rules :
- item : 兴业转债
type : 卖
sep : ' , '
cashAccount : Assets:Rule1:Cash
positionAccount : Assets:Rule1:Positions
CommissionAccount : Expenses:Rule1:Commission
pnlAccount : Income:Rule1:PnL
defaultCashAccount
و defaultPositionAccount
و defaultCommissionAccount
و defaultPnlAccount
و defaultCurrency
هي القيم الافتراضية العالمية المطلوبة.
htsec
هو التكوين الخاص بالموفر ولديه آلية مطابقة القواعد.
htsec
هو تكوين متعلق بـ Haitong Securities. ويوفر المطابقة القائمة على القواعد. يمكنك تحديد:
item
(اتجاه التداول - رمز الأمان - القيمة السوقية للأمان).type
(اتجاه التداول).time
(وقت التداول).يمكن كتابة وقت التداول بالشكلين التاليين:
11:00-13:00
11:00:00-13:00:00
> نظام 24 ساعة، استخدم-
للفصل بين وقت البدء ووقت الانتهاء.
يمكنك استخدام الفاصل (sep) لملء كلمات رئيسية متعددة في قاعدة واحدة، وفي نفس الكائن، توجد علاقة OR بين كل كلمة رئيسية.
يمكنك استخدام fullMatch
لتعيين قواعد مطابقة الأحرف في قاعدة واحدة. true
يعني استخدام المطابقة الكاملة، ويعني false
استخدام المطابقة الجزئية. إذا لم يتم تعيين هذا العنصر، فسيتم استخدام المطابقة الشاملة بشكل افتراضي.
يمكنك استخدام ignore
في قاعدة واحدة لتعيين ما إذا كنت تريد تجاهل المعاملات المطابقة للقاعدة أم لا. true
يعني تجاهل المعاملات المطابقة للقاعدة، ويعني fasle
عدم التجاهل، والقيمة الافتراضية هي false
.
إذا نجحت المطابقة، فسيتم استخدام cashAccount
و positionAccount
و commissionAccount
و pnlAccount
المحددة في القاعدة لتجاوز التعريف الافتراضي.
ترتيب مطابقة القاعدة هو: بدء المطابقة من العنصر الأول في تكوين rules
، ومواصلة المطابقة إذا كانت المطابقة ناجحة. أي أن أولوية القواعد اللاحقة أعلى من أولوية القواعد السابقة.
في:
defaultCashAccount
هو حساب رأس المال الافتراضي، والذي يستخدم بشكل عام لتخزين الأموال المتاحة في حسابات الأوراق المالية.defaultPositionAccount
هو حساب المركز الافتراضي.defaultCommissionAccount
هو حساب العمولة الافتراضي.defaultPnlAccount
هو حساب الربح والخسارة الافتراضي.defaultCurrency
هي العملة الافتراضية. defaultMinusAccount : Assets:FIXME
defaultPlusAccount : Expenses:FIXME
defaultCashAccount : Liabilities:Bank:CN:ICBC
defaultCurrency : CNY
title : 测试
icbc :
rules :
- peer : 财付通,支付宝
ignore : true
- peer : 广东联合电子收费股份
targetAccount : Expenses:Transport:Highway
- txType : 人民币自动转帐还款
targetAccount : Assets:Bank:CN:ICBC:Savings
- peer : XX旗舰店
targetAccount : Expenses:Joy
defaultMinusAccount
و defaultPlusAccount
و defaultCashAccount
و defaultCurrency
هي القيم الافتراضية العالمية المطلوبة. من بينها، defaultMinusAccount
هو الحساب الذي تم تخفيض المبلغ الافتراضي فيه، و defaultPlusAccount
هو الحساب الذي تم زيادة المبلغ الافتراضي فيه، defaultCashAccount
هو حساب البطاقة المصرفية المستخدم افتراضيًا في هذا التكوين (أي ما يعادل methodAccount
في Alipay/WeChat). defaultCurrency
هي العملة الافتراضية.
icbc
هو التكوين المتعلق بالبنك الصناعي والتجاري الصيني. ويوفر المطابقة القائمة على القواعد. يمكنك تحديد:
peer
(الطرف المقابل).type
(إيصال/مصروفات).txType
(نوع المعاملة). في قاعدة واحدة، يمكنك استخدام الفاصل sep
لملء كلمات رئيسية متعددة في نفس الكائن، توجد علاقة OR بين كل كلمة رئيسية.
يمكنك استخدام fullMatch
لتعيين قواعد مطابقة الأحرف في قاعدة واحدة. true
يعني استخدام المطابقة الكاملة، ويعني false
استخدام المطابقة الجزئية. إذا لم يتم تعيين هذا العنصر، فسيتم استخدام المطابقة الشاملة بشكل افتراضي.
في قاعدة واحدة، يمكنك استخدام tag
لتعيين علامة خط الأنابيب، واستخدام sep
كفاصل.
يمكنك استخدام ignore
في قاعدة واحدة لتعيين ما إذا كنت تريد تجاهل المعاملات المطابقة للقاعدة أم لا. true
يعني تجاهل المعاملات المطابقة للقاعدة، ويعني fasle
عدم التجاهل، والقيمة الافتراضية هي false
.
إذا نجحت المطابقة، فسيتم استخدام حساب targetAccount
المحدد في القاعدة لاستبدال الحساب المحدد الافتراضي.
ترتيب مطابقة القاعدة هو: بدء المطابقة من العنصر الأول في تكوين rules
، ومواصلة المطابقة إذا كانت المطابقة ناجحة. أي أن أولوية القواعد اللاحقة أعلى من أولوية القواعد السابقة.
يتم تقسيم المبلغ المسجل في كشف حساب ICBC إلى دخل/مصروفات، ومن خلال هذه الآلية يمكن الحكم على العلاقة الإيجابية والسلبية بين حساب البطاقة المصرفية في المعاملة. إذا كان تكوين Alipay مشابهًا، وإذا نجحت المطابقة، فسيتم استخدام targetAccount
والقيمة العالمية defaultCashAccount
المحددة في القاعدة، ومن خلال تأكيد ما إذا كانت المعاملة عبارة عن دخل أو نفقات، سيتم تحديد العلاقة الإيجابية والسلبية بين targetAccount
و defaultCashAccount
لتجاوز حساب الزيادة أو النقصان المحدد افتراضيًا.
علاقة الحساب بين targetAccount
و defaultCashAccount
هي كما يلي:
الدخل/النفقات | minusAccount | plusAccount |
---|---|---|
دخل | targetAccount | defaultCashAccount |
الإنفاق | defaultCashAccount | targetAccount |
defaultMinusAccount : Assets:FIXME
defaultPlusAccount : Expenses:FIXME
defaultCashAccount : Assets:DebitCard:TDChequing
defaultCurrency : CAD
title : 测试
td :
rules :
- item : " T T "
targetAccount : Expenses:Grocery
tag : tt_tag
- item : " DOLLARAMA "
targetAccount : Expenses:Grocery
tag : grocery_tag1,cheap_tag2
- item : " DEVELOPM MSP "
targetAccount : Income:Salary
- type : 收入
item : " SEND E-TFR "
targetAccount : Income:FIXME
defaultMinusAccount
و defaultPlusAccount
و defaultCashAccount
و defaultCurrency
هي القيم الافتراضية العالمية المطلوبة. من بينها، defaultMinusAccount
هو الحساب الذي تم تخفيض المبلغ الافتراضي فيه، و defaultPlusAccount
هو الحساب الذي تم زيادة المبلغ الافتراضي فيه، defaultCashAccount
هو حساب البطاقة المصرفية المستخدم افتراضيًا في هذا التكوين (أي ما يعادل methodAccount
في Alipay/WeChat). defaultCurrency
هي العملة الافتراضية.
td
هو تكوين متعلق ببنك Toronto-Dominion. ويوفر المطابقة القائمة على القواعد. نظرًا لأن فاتورة TD بسيطة نسبيًا، فلا توجد قواعد كثيرة يمكن تحديدها:
item
: (عنصر التداول).type
: مطابقة تامة/شاملة لـ (إيصال/مصروفات). في قاعدة واحدة، يمكنك استخدام الفاصل sep
لملء كلمات رئيسية متعددة في نفس الكائن، توجد علاقة OR بين كل كلمة رئيسية.
يمكنك استخدام fullMatch
لتعيين قواعد مطابقة الأحرف في قاعدة واحدة. true
يعني استخدام المطابقة الكاملة، ويعني false
استخدام المطابقة الجزئية. إذا لم يتم تعيين هذا العنصر، فسيتم استخدام المطابقة الشاملة بشكل افتراضي.
في قاعدة واحدة، يمكنك استخدام tag
لتعيين علامة Beancount أو علامة تعريف Ledger لخط الأنابيب، واستخدام sep
كفاصل.
يمكنك استخدام ignore
في قاعدة واحدة لتعيين ما إذا كنت تريد تجاهل المعاملات المطابقة للقاعدة أم لا. true
يعني تجاهل المعاملات المطابقة للقاعدة، ويعني fasle
عدم التجاهل، والقيمة الافتراضية هي false
.
إذا نجحت المطابقة، فسيتم استخدام حساب targetAccount
المحدد في القاعدة لاستبدال الحساب المحدد الافتراضي.
ترتيب مطابقة القاعدة هو: بدء المطابقة من العنصر الأول في تكوين rules
، ومواصلة المطابقة إذا كانت المطابقة ناجحة. أي أن أولوية القواعد اللاحقة أعلى من أولوية القواعد السابقة.
يتم تقسيم المبلغ المسجل في فاتورة TD إلى دخل/مصروف، ومن خلال هذه الآلية يمكن الحكم على العلاقة الإيجابية والسلبية بين حساب البطاقة المصرفية في المعاملة. إذا كان تكوين Alipay مشابهًا، وإذا نجحت المطابقة، فسيتم استخدام targetAccount
والقيمة العالمية defaultCashAccount
المحددة في القاعدة، ومن خلال تأكيد ما إذا كانت المعاملة عبارة عن دخل أو نفقات، سيتم تحديد العلاقة الإيجابية والسلبية بين targetAccount
و defaultCashAccount
لتجاوز حساب الزيادة أو النقصان المحدد افتراضيًا.
علاقة الحساب بين targetAccount
و defaultCashAccount
هي كما يلي:
الدخل/النفقات | minusAccount | plusAccount |
---|---|---|
دخل | targetAccount | defaultCashAccount |
الإنفاق | defaultCashAccount | targetAccount |
defaultMinusAccount : Assets:FIXME
defaultPlusAccount : Expenses:FIXME
defaultCashAccount : Assets:DebitCard:BMOChequing
defaultCurrency : CAD
title : 测试
bmo :
rules :
- item : " T T "
targetAccount : Expenses:Grocery
tag : tt_tag
- item : " DOLLARAMA "
targetAccount : Expenses:Grocery
tag : grocery_tag1,cheap_tag2
- item : " DEVELOPM MSP "
targetAccount : Income:Salary
- type : 收入
item : " SEND E-TFR "
targetAccount : Income:FIXME
defaultMinusAccount
و defaultPlusAccount
و defaultCashAccount
و defaultCurrency
هي القيم الافتراضية العالمية المطلوبة. من بينها، defaultMinusAccount
هو الحساب الذي تم تخفيض المبلغ الافتراضي فيه، و defaultPlusAccount
هو الحساب الذي تم زيادة المبلغ الافتراضي فيه، defaultCashAccount
هو حساب البطاقة المصرفية المستخدم افتراضيًا في هذا التكوين (أي ما يعادل methodAccount
في Alipay/WeChat). defaultCurrency
هي العملة الافتراضية.
bmo
هو تكوين متعلق ببنك Toronto-Dominion. ويوفر المطابقة القائمة على القواعد. نظرًا لأن الفوترة الخاصة بشركة BMO بسيطة نسبيًا، فلا توجد قواعد كثيرة يمكن تحديدها:
item
: (عنصر التداول).type
: مطابقة تامة/شاملة لـ (إيصال/مصروفات). في قاعدة واحدة، يمكنك استخدام الفاصل sep
لملء كلمات رئيسية متعددة في نفس الكائن، توجد علاقة OR بين كل كلمة رئيسية.
يمكنك استخدام fullMatch
لتعيين قواعد مطابقة الأحرف في قاعدة واحدة. true
يعني استخدام المطابقة الكاملة، ويعني false
استخدام المطابقة الجزئية. إذا لم يتم تعيين هذا العنصر، فسيتم استخدام المطابقة الشاملة بشكل افتراضي.
في قاعدة واحدة، يمكنك استخدام tag
لتعيين علامة Beancount أو علامة تعريف Ledger لخط الأنابيب، واستخدام sep
كفاصل.
يمكنك استخدام ignore
في قاعدة واحدة لتعيين ما إذا كنت تريد تجاهل المعاملات المطابقة للقاعدة أم لا. true
يعني تجاهل المعاملات المطابقة للقاعدة، ويعني fasle
عدم التجاهل، والقيمة الافتراضية هي false
.
إذا نجحت المطابقة، فسيتم استخدام حساب targetAccount
المحدد في القاعدة لاستبدال الحساب المحدد الافتراضي.
ترتيب مطابقة القاعدة هو: بدء المطابقة من العنصر الأول في تكوين rules
، ومواصلة المطابقة إذا كانت المطابقة ناجحة. أي أن أولوية القواعد اللاحقة أعلى من أولوية القواعد السابقة.
يتم تقسيم المبلغ المسجل في فاتورة BMO إلى دخل/مصروف، ومن خلال هذه الآلية يمكن الحكم على العلاقة الإيجابية والسلبية بين حساب البطاقة المصرفية في المعاملة. إذا كان تكوين Alipay مشابهًا، وإذا نجحت المطابقة، فسيتم استخدام targetAccount
والقيمة العالمية defaultCashAccount
المحددة في القاعدة، ومن خلال تأكيد ما إذا كانت المعاملة عبارة عن دخل أو نفقات، سيتم تحديد العلاقة الإيجابية والسلبية بين targetAccount
و defaultCashAccount
لتجاوز حساب الزيادة أو النقصان المحدد افتراضيًا.
علاقة الحساب بين targetAccount
و defaultCashAccount
هي كما يلي:
الدخل/النفقات | minusAccount | plusAccount |
---|---|---|
دخل | targetAccount | defaultCashAccount |
الإنفاق | defaultCashAccount | targetAccount |
defaultMinusAccount : Assets:FIXME
defaultPlusAccount : Expenses:FIXME
defaultCurrency : CNY
title : 测试
jd :
rules :
- method : 京东白条
methodAccount : Liabilities:Baitiao
- method : 小金库零用钱
methodAccount : Assets:EPay:JD
- item : 椰子
targetAccount : Expenses:Food
- item : 京东小金库-转入
peer : 京东金融
targetAccount : Assets:EPay:JD
- category : 美妆个护
targetAccount : Expenses:MakeUp
- item : "食品酒饮"
targetAccount : Assets:Food
- peer : 亲密卡
targetAccount : Expenses:Prpaid
- item : 白条,还款
targetAccount : Liabilities:Baitiao
- item : 京东小金库收益
fullMatch : true
targetAccount : Income:PnL:JD
methodAccount : Assets:EPay:JD
يشبه تنسيق فواتير JD.com بشكل عام Alipay.
عندما تكون فئة المعاملات الخاصة بفاتورة JD.com不计收支
، فإن معالجة الحساب تنقسم إلى حالتين:
الوضع العام:收/付款方式
(أي الحقل المطابق method
) هي بشكل عام حساب النفقات،交易分类
(أي الحقل المطابق category
) هو بشكل عام حساب الدخل. على سبيل المثال، عندما يتم تحويل أموال البطاقة المصرفية إلى قبو Jingdong الصغير،收/付款方式
هي البطاقة المصرفية، ويتم交易分类
المعاملة على أنها قبو صغير. عند سداد الأموال من I Tiao، تكون收/付款方式
هي البطاقة المصرفية أو الصغيرة مصروف الجيب،交易分类
على أنها باي تياو.
حالة خاصة: عندما يتم冻结-
أو إلغاء تجميد بادئة交易说明
(أي الحقل المطابق item
)解冻-
فهي حالة خاصة不计收支
. في حالة冻结-
،收/付款方式
هي حساب المصروفات؛ في حالة解冻-
收/付款方式
هي حساب الدخل ولكن المبلغ 0. في الوقت الحالي، سيتم تجاهل جميع المعاملات المتعلقة冻结
解冻
.
علاقة الحساب بين targetAccount
و methodAccount
هي كما يلي:
الدخل/النفقات | minusAccount | plusAccount |
---|---|---|
دخل | targetAccount | this.methodAccount |
الإنفاق | this.methodAccount | targetAccount |
بغض النظر عن الدخل والنفقات | this.methodAccount | targetAccount |