|
|
@@ -6,6 +6,11 @@
|
|
|
(eval-when (:compile-toplevel :load-toplevel :execute)
|
|
|
(ql:quickload '(:cxml-stp :pta-ledger)))
|
|
|
|
|
|
+(defsetting *account-aliases* nil "account to ledger account")
|
|
|
+(defsetting *account-default-prefix* "assets:Raiffeisen")
|
|
|
+(defsetting *move-aliases* nil "move account aliases")
|
|
|
+(defsetting *account-cash* "assets:Cash:RUB")
|
|
|
+
|
|
|
(defvar *raif-ws* "https://connect.raiffeisen.ru/Mobile-WS/services/" "Base WS URL")
|
|
|
(defvar *ua* "Dalvik/2.1.0 (Linux; U; Android 6.0.1; ONE A2003 Build/MMB29M) Android/3.19.0(459)" "User agent")
|
|
|
(defvar *soap-dom* (cxml:parse "<?xml version='1.0' encoding='UTF-8' standalone='yes' ?><soapenv:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://entry.rconnect/xsd\" xmlns:ser=\"http://service.rconnect\" xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\"><soapenv:Header /><soapenv:Body></soapenv:Body></soapenv:Envelope>" (stp:make-builder)) "XML SOAP raif service envelope")
|
|
|
@@ -140,19 +145,12 @@
|
|
|
(t currency))))
|
|
|
|
|
|
(defun get-account-name (account)
|
|
|
- (let ((num (agets account :number)))
|
|
|
- (concatenate 'string "assets:Raiffeisen:"
|
|
|
- (cond
|
|
|
- ((string= num "40817810503000266700") "Debit")
|
|
|
- ((string= num "40817978803000110883") "Savings:EUR")
|
|
|
- ((string= num "40817810203001534278") "Savings:Kopilka")
|
|
|
- ((string= num "40817810103001667025") "Saver")
|
|
|
- (:overwise (concatenate 'string
|
|
|
- (agets account :account-type)
|
|
|
- ":"
|
|
|
- num
|
|
|
- ":"
|
|
|
- (get-account-currency account)))))))
|
|
|
+ (or (agets *account-aliases* (agets account :number))
|
|
|
+ (format nil "~A:~A:~A:~A"
|
|
|
+ *account-default-prefix*
|
|
|
+ (agets account :account-type)
|
|
|
+ (agets account :number)
|
|
|
+ (get-account-currency account))))
|
|
|
|
|
|
(defun get-move-payee (move)
|
|
|
(agets move :short-description))
|
|
|
@@ -166,10 +164,8 @@
|
|
|
(defun get-move-account2 (move)
|
|
|
(let ((desc (agets move :short-description)))
|
|
|
(cond
|
|
|
- ((equal desc "P/O 001,40817810503000266700RC") "assets:Raiffeisen:Debit")
|
|
|
- ((equal desc "P/O 001,40817810203001534278RC") "assets:Raiffeisen:Savings:Kopilka")
|
|
|
- ((equal desc "TINKOFF BANK CARD2CARD MOSCOW") "assets:Tinkoff:Debit")
|
|
|
- ((equal (subseq desc 0 (min 7 (length desc))) "RBA ATM") "assets:Cash:RUB")
|
|
|
+ ((agets *move-aliases* desc))
|
|
|
+ ((equal (subseq desc 0 (min 7 (length desc))) "RBA ATM") *account-cash*)
|
|
|
(t (if (string= "1" (agets move :type)) "income" "expenses")))))
|
|
|
|
|
|
(defun short-date (date)
|