Сообщество
FAQ
Логин
Пароль
Войти при помощи
Кстати, вы можете
Установить drebedengi.ru на свой сервер.
Общение / Веб версия / уведомления о предельном расходе

Уведомления о предельном расходе

RsH
22 мая 16:31
Привет. хотел бы обсудить насколько интересно и возможно сделать функционал предупреждения о приближении к лимиту расхода по месту хранения за заданный период.

у меня например есть карта лояльности, по которой я могу потратить сколько угодно, но баллы начисляются только первые 50 тысяч в месяц.
Сейчас я решаю периодически заглядываю в отчет по расходам (сделал шаблон).

Вот насколько это кейс кем-то еще кроме меня востребован?
Admin
22 мая 16:41
Добрый день.

А если создать в плане лимит расходов на нужную сумму и ждать "красной строки" в блоке "контроль расходов", на главной?
RsH
22 мая 17:36
не нашел как создать лимит расходов не по статье а по месту хранения, это можно сделать?
Admin
22 мая 18:56
Ээ.. нет, по месту нельзя. Только общий или по статьям расходов.
Как вариант - собственными силами через API получать остаток по счёту и слать себе что-нибудь куда-нибудь при необходимости.
RsH
23 мая 13:18
как то не задалось у меня с API, хотелки есть, а своего времени на реализацию и отладку функционала нет.

Кстати про API кто нибудь делал работу с API ДД из MS Excel?
Я как то затеялся, но прямое гугление по реализации SOAP клиента в MS Office VB результата не дало :( может тут откликнется кто?
Admin
23 мая 22:32
Один человек делал когда-то и поделился.

VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
END
Attribute VB_Name = "clsSOAP"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
'------------------------------------
' Работа с SOAP источником
'------------------------------------

Option Explicit

Const clsVersion = "1.0.0"
Const Undefined = -1

Public Enum Report
DataTable = 0
IsReport = 1
End Enum

Public Enum ShowDutyStatus
DoNotShowDuty = 0
ShowDuty = 1
End Enum

Public Enum AvailableTables
PlaceList
TagList
AccumList
CategoryList
CurrencyList
SourceList
RecordList
CurrentRevision
ChangeList
End Enum

Public Enum RelativePeriod
CustomPeriod = 0
ThisMonth = 1
LastMonth = 2
ThisQuart = 3
ThisYear = 4
LastYear = 5
AllTime = 6
Today = 7
Last20Records = 8
End Enum

Public Enum TransactionType
Income = 2
Waste = 3
Move = 4
Change = 5
AllTypes = 6
End Enum

Public Enum Who
AllUsers = 0
End Enum

Public Enum CurrencyType
OriginalCurrency = 0
End Enum

Public Enum AverageType
NoAverage = 0
AverageMonthly = 2592000
AverageWeekly = 604800
AveragedOverDays = 86400
End Enum

Public Enum FilterType
IncludeAll = 0
IncludeOnlySelected = 1
AllExceptSelected = 2
End Enum

Public Enum ReportType
ShowRecordListByDetail = 1
GroupIncomesBySource = 2
GroupWastesByCategory = 3
End Enum

Private strAPIID As String
Private strLogin As String
Private strPassword As String
Private strHost As String

' ************************
' --> Инициализация класса
' ************************
Private Sub Class_Initialize()
strAPIID = "user_api"
strLogin = "user_login"
strPassword = "user_password"
strHost = " http://www.drebedengi.ru/soap/"
End Sub

' ************************
' <-- Инициализация класса
' ************************

' ***********************
' --> Внешние функции класса
' ***********************
Function GetXML(ByVal FunctionID As AvailableTables, Optional ByVal strParams As String) As String
Dim xmlhtp As New MSXML2.XMLHTTP60
Dim strXML As String
Dim strFunction As String

strFunction = GetFunctionName(FunctionID)
strXML = "" & strAPIID & "" & strLogin & "" & strPassword & "" & strParams & ""

With xmlhtp
.Open "POST", strHost, False
.setRequestHeader "Host", "wss"
.setRequestHeader "Content-Type", "application/soap+xml; charset=utf-8"
.send strXML
GetXML = .responseText
End With
End Function

Function SetParams( _
Optional ByVal is_report As Report = Undefined, _
Optional ByVal relative_date As Date = 0, _
Optional ByVal period_to = -1, _
Optional ByVal period_from = -1, _
Optional ByVal is_show_duty As ShowDutyStatus = Undefined, _
Optional ByVal r_period As RelativePeriod = Undefined, _
Optional ByVal r_what As TransactionType = Undefined, _
Optional ByVal r_who As Who = Undefined, _
Optional ByVal r_how As ReportType = Undefined, _
Optional ByVal r_middle As AverageType = Undefined, _
Optional ByVal r_currency As CurrencyType = Undefined, _
Optional ByVal r_is_place As FilterType = Undefined, _
Optional ByVal r_is_tag As FilterType = Undefined, _
Optional ByVal r_is_category As FilterType = Undefined, _
Optional ByVal r_place As Variant, _
Optional ByVal r_tag As Variant, _
Optional ByVal r_category As Variant, _
Optional ByVal revision As Variant _
) As String

SetParams = ""

If is_report <> Undefined Then SetParams = SetParams & "is_report" & CBool(is_report) & ""
If relative_date <> "0" Then SetParams = SetParams & "relative_date" & Format(relative_date, "YYYY-MM-DD") & ""
'If period_to <> -1 Then SetParams = SetParams & "period_to" & Format(relative_date, "YYYY-MM-DD") & ""
'If period_from <> -1 Then SetParams = SetParams & "period_from" & Format(relative_date, "YYYY-MM-DD") & ""
If is_show_duty <> Undefined Then SetParams = SetParams & "is_show_duty" & CBool(is_show_duty) & ""
If r_period <> Undefined Then SetParams = SetParams & "r_period" & r_period & ""
If r_what <> Undefined Then SetParams = SetParams & "r_what" & r_what & ""
If r_who <> Undefined Then SetParams = SetParams & "r_who" & r_who & ""

If r_how <> Undefined Then SetParams = SetParams & "r_how" & r_how & ""
If r_how <> ShowRecordListByDetail Then _
If r_middle <> Undefined Then SetParams = SetParams & "r_middle" & r_middle & ""

If r_currency <> Undefined Then SetParams = SetParams & "r_currency" & r_currency & ""
If r_is_place <> Undefined Then SetParams = SetParams & "r_is_place" & r_is_place & ""
If r_is_tag <> Undefined Then SetParams = SetParams & "r_is_tag" & r_is_tag & ""
If r_is_category <> Undefined Then SetParams = SetParams & "r_is_category" & r_is_category & ""

If Not IsMissing(revision) Then SetParams = SetParams & "revision" & revision & ""

SetParams = SetParams & "
"
End Function

Function SetRevision( _
ByVal revision As Long _
) As String

SetRevision = "" & revision & ""
End Function
' ***********************
' <-- Внешние функции класса
' ***********************

' ***********************
' --> Внутренние функции класса
' ***********************
Public Function GetFunctionName(ByVal FunctID As AvailableTables) As String
Select Case FunctID
Case PlaceList
GetFunctionName = "GetPlaceList"
Case TagList
GetFunctionName = "GetTagList"
Case AccumList
GetFunctionName = "GetAccumList"
Case CategoryList
GetFunctionName = "GetCategoryList"
Case CurrencyList
GetFunctionName = "GetCurrencyList"
Case SourceList
GetFunctionName = "GetSourceList"
Case RecordList
GetFunctionName = "GetRecordList"
Case CurrentRevision
GetFunctionName = "GetCurrentRevision"
Case ChangeList
GetFunctionName = "getChangeList"
Case Else
GetFunctionName = ""
End Select
End Function
' ***********************
' <-- Внутренние функции класса
' ***********************
RsH
24 мая 17:31
Спасибо, но оно не создает SOAP клиент, а пытается работать через обычный http get set и сразу получает в ответ заглушку, которая висит на https://www.drebedengi.ru/soap/


но вроде нашел как сделать через доп.библиотеки.
Чтобы отвечать на сообщения - зарегистрируйтесь и войдите в личный кабинет.