|
|
@@ -109,7 +109,7 @@
|
|
|
|
|
|
(defun saver/get-expense-info (payment incomes &optional (moment (get-universal-time)))
|
|
|
(let* ((next-payment (saver/payment-next-time payment moment))
|
|
|
- (prev-payment (max (saver/payment-next-time payment moment nil)
|
|
|
+ (prev-payment (max (or (saver/payment-next-time payment moment nil) 0)
|
|
|
(or (saver/payment-started payment) 0))))
|
|
|
(when next-payment
|
|
|
(multiple-value-bind (total-periods total-income)
|
|
|
@@ -291,7 +291,7 @@
|
|
|
(bot-send-message chat-id (%saver/format-info payments) :parse-mode "markdown")
|
|
|
(bot-send-message chat-id (format nil "Нет поступлений, ничего не посчитать :( /saver add ...")))))
|
|
|
|
|
|
-(defparameter +saver/add-scanner+ (cl-ppcre:create-scanner "^(.+?) (-?\\d+(?:\\.\\d*)?) ((?:\\d+(?:,\\d+)*(?:-\\d+)?|\\*)(?:\\/\\d+)?(?: (?:\\d+(?:,\\d+)*(?:-\\d+)?|\\*)(?:\\/\\d+)?){0,2})(?: (\\d{4}-\\d{2}-\\d{2}))?$"))
|
|
|
+(defparameter +saver/add-scanner+ (cl-ppcre:create-scanner "^(.+?) (-?\\d+(?:\\.\\d*)?) ((?:\\d+(?:,\\d+)*(?:-(?:\\d+)?)?|\\*)(?:\\/\\d+)?(?: (?:\\d+(?:,\\d+)*(?:-(?:\\d+)?)?|\\*)(?:\\/\\d+)?){0,2})(?: (\\d{4}-\\d{2}-\\d{2}))?$"))
|
|
|
|
|
|
(defun saver/add-payment (chat-id args)
|
|
|
(multiple-value-bind (matched groups) (cl-ppcre:scan-to-strings +saver/add-scanner+ (spaced args))
|