NO NAME
|
22 мая 2018 16:31
|
Привет. хотел бы обсудить насколько интересно и возможно сделать функционал предупреждения о приближении к лимиту расхода по месту хранения за заданный период.
у меня например есть карта лояльности, по которой я могу потратить сколько угодно, но баллы начисляются только первые 50 тысяч в месяц.
Сейчас я решаю периодически заглядываю в отчет по расходам (сделал шаблон).
Вот насколько это кейс кем-то еще кроме меня востребован?
|
|
|
Admin
|
22 мая 2018 16:41
|
Добрый день.
А если создать в плане лимит расходов на нужную сумму и ждать "красной строки" в блоке "контроль расходов", на главной?
|
|
|
NO NAME
|
22 мая 2018 17:36
|
не нашел как создать лимит расходов не по статье а по месту хранения, это можно сделать?
|
|
|
Admin
|
22 мая 2018 18:56
|
Ээ.. нет, по месту нельзя. Только общий или по статьям расходов.
Как вариант - собственными силами через API получать остаток по счёту и слать себе что-нибудь куда-нибудь при необходимости.
|
|
|
NO NAME
|
23 мая 2018 13:18
|
как то не задалось у меня с API, хотелки есть, а своего времени на реализацию и отладку функционала нет.
Кстати про API кто нибудь делал работу с API ДД из MS Excel?
Я как то затеялся, но прямое гугление по реализации SOAP клиента в MS Office VB результата не дало :( может тут откликнется кто?
|
|
|
Admin
|
23 мая 2018 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
' ***********************
' <-- Внутренние функции класса
' ***********************
|
|
|
NO NAME
|
24 мая 2018 17:31
|
Спасибо, но оно не создает SOAP клиент, а пытается работать через обычный http get set и сразу получает в ответ заглушку, которая висит на https://www.drebedengi.ru/soap/
но вроде нашел как сделать через доп.библиотеки.
|
|
|