980 lines
40 KiB
Plaintext
980 lines
40 KiB
Plaintext
Public Module FunkcjeXL
|
||||
|
|
Public Const API_VERSION = 20241
|
|||
|
|
|
|||
|
|
Public Zalogowany As Boolean
|
|||
|
|
Public wynikXL As Integer
|
|||
|
|
Public Wersja As Integer
|
|||
|
|
Dim Ilosc_Bledow As Integer
|
|||
|
|
Dim Sesja As Integer
|
|||
|
|
Dim IDDokumentu As Integer
|
|||
|
|
Public NotaID As Integer
|
|||
|
|
Dim Flagi As Integer
|
|||
|
|
Dim Komunikat As String
|
|||
|
|
|
|||
|
|
|
|||
|
|
'-------------------------------------------------------
|
|||
|
|
' Funkcja XLLogin - W przypadku podania poprawnych parametrów poprzez strukturę XLLoginInfo _
|
|||
|
|
' logowanie następuję automatycznie. W przeciwnym przypadku otwiera się okno _
|
|||
|
|
' logowania do systemu CDN XL, w którym należy podać poprawne dane. _
|
|||
|
|
' Poprzez parametr sesja zwracany jest numer przydzielonej dla programu sesji. _
|
|||
|
|
' Numerem tym należy się posługiwać przy wywoływaniu następnych funkcji API.
|
|||
|
|
|
|||
|
|
Public Function Zaloguj(ByVal Baza As String, ByVal CDNop As String, ByVal Haslo As String, ByVal SerwerKlucza As String) As Boolean
|
|||
|
|
Dim LoginInfo As New cdn_api.XLLoginInfo_20241
|
|||
|
|
Dim sesja_temp As Int32
|
|||
|
|
|
|||
|
|
If Zalogowany And Sesja > 0 Then
|
|||
|
|
wynikXL = 0
|
|||
|
|
Ilosc_Bledow = 0
|
|||
|
|
Zaloguj = Zalogowany
|
|||
|
|
Exit Function
|
|||
|
|
End If
|
|||
|
|
Try
|
|||
|
|
' listuj(" Logowanie do ERP XL - proszę czekać...", 1)
|
|||
|
|
Zalogowany = False
|
|||
|
|
Ilosc_Bledow = 0
|
|||
|
|
' AttachThread()
|
|||
|
|
Wersja = API_VERSION
|
|||
|
|
LoginInfo.Wersja = Wersja ' numer wersji API
|
|||
|
|
LoginInfo.UtworzWlasnaSesje = 0
|
|||
|
|
LoginInfo.Winieta = -1
|
|||
|
|
LoginInfo.TrybWsadowy = 1
|
|||
|
|
LoginInfo.TrybNaprawy = 1
|
|||
|
|
LoginInfo.ProgramID = "Import dok. magazynowych z Jastrzębia" ' nazwa programu korzystającego z XL-API (pojawia się na liście sesji)
|
|||
|
|
LoginInfo.Baza = Baza & Chr(0) ' nazwa bazy danych do której ma nastąpić login pobierana
|
|||
|
|
' z klucza HKEY_CURRENT_USER oraz HKEY_LOCAL_MACHINE (nazwa rejestracji w managerze baz an tym komputerze, nie rzeczywista nazwa bazy !!)
|
|||
|
|
' LoginInfo.OpeIdent = CDNop & Chr(0) ' identyfikator CDNOpera logującego się
|
|||
|
|
' LoginInfo.OpeHaslo = Haslo & Chr(0) ' hasło CDNOpera logującego się
|
|||
|
|
LoginInfo.PlikLog = ""
|
|||
|
|
LoginInfo.SerwerKlucza = SerwerKlucza
|
|||
|
|
Sesja = 0
|
|||
|
|
sesja_temp = 0
|
|||
|
|
wynikXL = 0
|
|||
|
|
wynikXL = cdn_api.cdn_api.XLLogin(LoginInfo, sesja_temp)
|
|||
|
|
Catch ex As Exception
|
|||
|
|
wynikXL = -200
|
|||
|
|
Komunikat = "Nie rozpoznany błąd API XLLogin"
|
|||
|
|
End Try
|
|||
|
|
If wynikXL = 0 Then
|
|||
|
|
Sesja = sesja_temp
|
|||
|
|
Ilosc_Bledow = 0
|
|||
|
|
Zalogowany = True
|
|||
|
|
Else
|
|||
|
|
Komunikat = "Nieokreślony błąd logowania do XL = " & CStr(wynikXL)
|
|||
|
|
Select Case wynikXL
|
|||
|
|
Case -9
|
|||
|
|
Komunikat = "XLLogin: operator nie jest podpięty do żadnego centrum"
|
|||
|
|
Case -8
|
|||
|
|
Komunikat = "XLLogin: Nie podano nazwy bazy danych"
|
|||
|
|
Case -7
|
|||
|
|
Komunikat = "XLLogin: Baza niezarejestrowana w systemie"
|
|||
|
|
Case -6
|
|||
|
|
Komunikat = "XLLogin: Nie podano hasła lub brak operatora"
|
|||
|
|
Case -5
|
|||
|
|
Komunikat = "XLLogin: nieprawidłowe hasło"
|
|||
|
|
Case -4
|
|||
|
|
Komunikat = "XLLogin: konto operatora zablokowane"
|
|||
|
|
Case -3
|
|||
|
|
Komunikat = "XLLogin: nie podano nazwy programu (pole ProgramID)"
|
|||
|
|
Case -2
|
|||
|
|
Komunikat = "XLLogin: błąd otwarcia pliku tekstowego, do którego mają być zapisywane komunikaty. Nie znaleziono ścieżki lub nazwa pliku jest nieprawidłowa."
|
|||
|
|
Case -1
|
|||
|
|
Komunikat = "XLLogin: podano niepoprawną wersję API"
|
|||
|
|
Case 1
|
|||
|
|
Komunikat = "XLLogin: inicjalizacja nie powiodła się"
|
|||
|
|
Case 2
|
|||
|
|
Komunikat = "XLLogin: istnieje już jedna instancja programu i nastąpiło ponowne logowanie (z tego samego komputera i na tego samego operatora)"
|
|||
|
|
Case 3
|
|||
|
|
Komunikat = "XLLogin: istnieje już jedna instancja programu i nastąpiło ponowne logowanie z innego komputera i na tego samego operatora, ale operatora nie posiada prawa do wielokrotnego logowania"
|
|||
|
|
Case 5
|
|||
|
|
Komunikat = "XLLogin: występuje przy pracy terminalowej w przypadku, gdy operatora nie ma prawa do wielokrotnego logowania i na pytanie czy usunąć istniejące sesje terminalowe wybrano odpowiedź ‘Nie’"
|
|||
|
|
Case 61
|
|||
|
|
Komunikat = "XLLogin: błąd zakładania nowej sesji"
|
|||
|
|
End Select
|
|||
|
|
MainFrm.listuj(Komunikat)
|
|||
|
|
Zalogowany = False
|
|||
|
|
Ilosc_Bledow = Ilosc_Bledow + 1
|
|||
|
|
End If
|
|||
|
|
System.Threading.Thread.Sleep(200)
|
|||
|
|
If Zalogowany Then MainFrm.listuj("Zalogowano")
|
|||
|
|
Zaloguj = Zalogowany
|
|||
|
|
End Function
|
|||
|
|
|
|||
|
|
|
|||
|
|
'--------------------------------------------------------------------------------------------------
|
|||
|
|
'Funkcja XLPolaczenie - podaje ConnectionStgring do bazy danych
|
|||
|
|
' Funkcja XLPolaczenie - Funkcja umozliwia identyfikację połączenia do bazy
|
|||
|
|
' zwraca nazwę serwera, bazy oraz connect string dla raportowania
|
|||
|
|
'--------------------------------------------------------------------------------------------------
|
|||
|
|
Public Function Polaczenie() As String
|
|||
|
|
Dim PolaczenieInfo As New cdn_api.XLPolaczenieInfo_20241 With
|
|||
|
|
{
|
|||
|
|
.Wersja = Wersja, ' numer wersji API (20241) ustawiony w funkcji Zaloguj()
|
|||
|
|
.NTMode = 0,
|
|||
|
|
.Serwer = "" + Chr(0),
|
|||
|
|
.Baza = "" + Chr(0),
|
|||
|
|
.ConnectString = "" + Chr(0)
|
|||
|
|
}
|
|||
|
|
wynikXL = 0
|
|||
|
|
wynikXL = cdn_api.cdn_api.XLPolaczenie(PolaczenieInfo)
|
|||
|
|
If wynikXL >= 0 Then
|
|||
|
|
Polaczenie = PolaczenieInfo.ConnectString
|
|||
|
|
' Serwer = PolaczenieInfo.Serwer
|
|||
|
|
Else
|
|||
|
|
Polaczenie = ""
|
|||
|
|
Komunikat = "XLPolaczenie: nieaktywna sesja API lub nieprawidłowy numer wersji"
|
|||
|
|
End If
|
|||
|
|
End Function
|
|||
|
|
|
|||
|
|
'--------------------------------------------------------------------------------------------------
|
|||
|
|
' Funkcja XLLogout - Funkcja ta służy do zamykania sesji otwartej funkcją XLLogin. _
|
|||
|
|
' Parametr sesja określa numer sesji, którą chcemy zamknąć _
|
|||
|
|
' (numer przydzielany funkcją XLLogin).
|
|||
|
|
'--------------------------------------------------------------------------------------------------
|
|||
|
|
Public Sub Wyloguj()
|
|||
|
|
Dim LogoutInfo As New cdn_api.XLLogoutInfo_20241
|
|||
|
|
Dim wynik As Integer
|
|||
|
|
|
|||
|
|
If Zalogowany Or Sesja > 0 Then
|
|||
|
|
LogoutInfo.Wersja = Wersja
|
|||
|
|
LogoutInfo.TrybUsuwaniaDok = 0
|
|||
|
|
If Sesja > 0 Then
|
|||
|
|
Try
|
|||
|
|
cdn_api.cdn_api.XLLogoutEx(LogoutInfo, Sesja)
|
|||
|
|
Catch ex As Exception
|
|||
|
|
wynik = -200
|
|||
|
|
Komunikat = "Nie rozpoznany błąd API XLLogout"
|
|||
|
|
End Try
|
|||
|
|
End If
|
|||
|
|
Zalogowany = False
|
|||
|
|
Sesja = 0
|
|||
|
|
End If
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
'--------------------------------------------------------------------------------------------------
|
|||
|
|
' Funkcja XLNowyDokument - Jest to funkcja, która zapoczątkowuje wystawianie dokumentu. _
|
|||
|
|
' Nadaje ona nowy numer nagłówka, pobiera kontrahenta, _
|
|||
|
|
' wypełnia rekord standardowymi ustawieniami i ustawia go w stan zajętości. _
|
|||
|
|
' Wymagane jest użycie w komplecie co najmniej funkcji XLZamknijDokument _
|
|||
|
|
' w celu zakończenia dokumentu i zwolnienia jego zajętości (bez wywołania _
|
|||
|
|
' tej funkcji wewnętrzna kontrola XL'a spowoduje wycofanie wszelkich zapisów _
|
|||
|
|
' do tego dokumentu).
|
|||
|
|
'--------------------------------------------------------------------------------------------------
|
|||
|
|
Public Sub UtworzNowyDok(DokNagInfo As cdn_api.XLDokumentNagInfo_20241)
|
|||
|
|
Dim w, i As Integer
|
|||
|
|
|
|||
|
|
wynikXL = 0
|
|||
|
|
For i = 1 To 200
|
|||
|
|
Try
|
|||
|
|
wynikXL = cdn_api.cdn_api.XLNowyDokument(Sesja, IDDokumentu, DokNagInfo)
|
|||
|
|
Catch ex As Exception
|
|||
|
|
wynikXL = -200
|
|||
|
|
Komunikat = "Nie rozpoznany błąd API XLNowyDokument"
|
|||
|
|
Exit For
|
|||
|
|
End Try
|
|||
|
|
If wynikXL <> 106 Then Exit For
|
|||
|
|
System.Threading.Thread.Sleep(40)
|
|||
|
|
Next
|
|||
|
|
Flagi = DokNagInfo.Flagi
|
|||
|
|
w = OpisBledu(1, wynikXL, Flagi)
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
'--------------------------------------------------------------------------------------------------
|
|||
|
|
' Funkcja XLDodajPozycje - Funkcja ta jest odpowiedzialna za dodawanie do dokumentu elementów _
|
|||
|
|
' oraz związanych z nim subelementów.
|
|||
|
|
'--------------------------------------------------------------------------------------------------
|
|||
|
|
Public Sub DodajPozycjeDok(DokEleInfo As cdn_api.XLDokumentElemInfo_20241)
|
|||
|
|
Dim w, i As Integer
|
|||
|
|
|
|||
|
|
wynikXL = 0
|
|||
|
|
If IDDokumentu > 0 Then
|
|||
|
|
For i = 1 To 200
|
|||
|
|
Try
|
|||
|
|
wynikXL = cdn_api.cdn_api.XLDodajPozycje(IDDokumentu, DokEleInfo)
|
|||
|
|
Catch ex As Exception
|
|||
|
|
wynikXL = -200
|
|||
|
|
Komunikat = "Nie rozpoznany błąd API XLDodajPozycje"
|
|||
|
|
Exit For
|
|||
|
|
End Try
|
|||
|
|
If wynikXL <> 106 Then Exit For
|
|||
|
|
System.Threading.Thread.Sleep(40)
|
|||
|
|
Next
|
|||
|
|
End If
|
|||
|
|
Flagi = DokEleInfo.Flagi
|
|||
|
|
If wynikXL <> 17 Then w = OpisBledu(2, wynikXL, Flagi) 'bez drukowania kmunikatu, że zabrakło towaru
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
'--------------------------------------------------------------------------------------------------
|
|||
|
|
' Funkcja XLZamknijDokument - Funkcja odpowiada za zakończenie pracy z dokumentem.
|
|||
|
|
'--------------------------------------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
Public Sub ZamknijDokument(ByVal Tryb As Integer, Magazynowe As Integer)
|
|||
|
|
Dim ZamkniecieDokumentuInfo As New cdn_api.XLZamkniecieDokumentuInfo_20241
|
|||
|
|
Dim w, i As Integer
|
|||
|
|
|
|||
|
|
Try
|
|||
|
|
With ZamkniecieDokumentuInfo
|
|||
|
|
.Wersja = Wersja
|
|||
|
|
.Tryb = Tryb '-10, 0 - zatwierdz dokument, 1 - do bufora, -3 - zamknięcie otwartego dok., -1 - skasowanie dokumentu, -2 - anulowanie
|
|||
|
|
.Magazynowe = Magazynowe 'generowanie dokumentów WM i MMP: 0-wg. konfig., 1-nie generuj, 2-gen. do bufora, 3-gen. zatwierdzone
|
|||
|
|
'dla MMW: 0x,1x,2x - WM (bez, bufor, zatw.); x1,x2,x3 - MMP (bez, bufor, zatw.)
|
|||
|
|
End With
|
|||
|
|
wynikXL = 0
|
|||
|
|
If IDDokumentu > 0 Then
|
|||
|
|
For i = 1 To 200
|
|||
|
|
Try
|
|||
|
|
wynikXL = cdn_api.cdn_api.XLZamknijDokument(IDDokumentu, ZamkniecieDokumentuInfo)
|
|||
|
|
Catch ex As Exception
|
|||
|
|
wynikXL = -200
|
|||
|
|
Komunikat = "Nie rozpoznany błąd API XLZamknijDokument"
|
|||
|
|
Exit For
|
|||
|
|
End Try
|
|||
|
|
If wynikXL <> 106 Then Exit For
|
|||
|
|
System.Threading.Thread.Sleep(40)
|
|||
|
|
Next
|
|||
|
|
End If
|
|||
|
|
w = OpisBledu(7, wynikXL, 0)
|
|||
|
|
Catch ex As Exception
|
|||
|
|
wynikXL = -201
|
|||
|
|
Komunikat = "Błąd w dostępie do danych w API XLZamknijDokument"
|
|||
|
|
End Try
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
'--------------------------------------------------------------------------------------------------
|
|||
|
|
' Funkcja XLPodajKomunikat - Funkcja rozwiązuje podane numery bledów i ostrzeżeń na stringowy
|
|||
|
|
' komunikat, rodzaje trybów: 0-tryb cichy, 1-tylko bledy, 2-bledy i ostrzeżenia
|
|||
|
|
'--------------------------------------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
Public Function OpisBledu(ByVal Funkcja As Integer, ByVal wynik_lokalny As Integer, ByVal Flagi As Integer) As Integer
|
|||
|
|
Dim KomunikatInfo As New cdn_api.XLKomunikatInfo_20241
|
|||
|
|
Dim Komunikat As String
|
|||
|
|
|
|||
|
|
OpisBledu = 0
|
|||
|
|
If wynik_lokalny < -199 Then
|
|||
|
|
MainFrm.listuj("Nie rozpoznany błąd API w funkcji " + CStr(Funkcja))
|
|||
|
|
Ilosc_Bledow = Ilosc_Bledow + 1
|
|||
|
|
OpisBledu = Ilosc_Bledow
|
|||
|
|
ElseIf wynik_lokalny <> 0 And Funkcja < 900 Then
|
|||
|
|
KomunikatInfo.Wersja = Wersja
|
|||
|
|
KomunikatInfo.Funkcja = Funkcja
|
|||
|
|
KomunikatInfo.Blad = wynik_lokalny
|
|||
|
|
KomunikatInfo.Ostrzezenie = Flagi
|
|||
|
|
KomunikatInfo.Tryb = 0
|
|||
|
|
Try
|
|||
|
|
cdn_api.cdn_api.XLOpisBledu(KomunikatInfo)
|
|||
|
|
Catch ex As Exception
|
|||
|
|
wynik_lokalny = -200
|
|||
|
|
Komunikat = "Nie rozpoznany błąd API XLOpisBledu"
|
|||
|
|
End Try
|
|||
|
|
Komunikat = "!------! UWAGA: " + KomunikatInfo.OpisBledu
|
|||
|
|
MainFrm.listuj(Komunikat)
|
|||
|
|
Ilosc_Bledow = Ilosc_Bledow + 1
|
|||
|
|
OpisBledu = Ilosc_Bledow
|
|||
|
|
ElseIf wynik_lokalny <> 0 And Funkcja = 999 Then
|
|||
|
|
Komunikat = "XLOpisBledu: Nieokreślony błąd API XL"
|
|||
|
|
Select Case wynik_lokalny
|
|||
|
|
Case 2
|
|||
|
|
Komunikat = "XLOpisBledu: UWAGA: ustalono wybór z listy, a brak ustawienia trybu selekcji"
|
|||
|
|
Case 3
|
|||
|
|
Komunikat = "XLOpisBledu: UWAGA: błąd otwarcia tabeli"
|
|||
|
|
Case 4
|
|||
|
|
Komunikat = "XLOpisBledu: UWAGA: nie znaleziono rekordu o podanym GIDzie"
|
|||
|
|
Case 5
|
|||
|
|
Komunikat = "XLOpisBledu: UWAGA: ustalono wybór elementu z listy a brak procedury listy dla takiego typu dokumentu"
|
|||
|
|
Case 6
|
|||
|
|
Komunikat = "XLOpisBledu: UWAGA: ustalono wybór grupy z listy, a brak procedury listy dla takiego typu dokumentu"
|
|||
|
|
Case 7
|
|||
|
|
Komunikat = "XLOpisBledu: UWAGA: ustalono podgląd elementów listy, a brak procedury listy dla takiego typu dokumentu"
|
|||
|
|
Case 8
|
|||
|
|
Komunikat = "XLOpisBledu: UWAGA: nieobsługiwany GIDTyp"
|
|||
|
|
Case Else
|
|||
|
|
Komunikat = "XLOpisBledu: UWAGA: Nieznany błąd"
|
|||
|
|
End Select
|
|||
|
|
MainFrm.listuj(Komunikat)
|
|||
|
|
Ilosc_Bledow = Ilosc_Bledow + 1
|
|||
|
|
OpisBledu = Ilosc_Bledow
|
|||
|
|
ElseIf wynik_lokalny <> 0 And Funkcja = 998 Then 'Generuj EAN
|
|||
|
|
Komunikat = "Nieokreślony błąd API XL"
|
|||
|
|
Select Case wynik_lokalny
|
|||
|
|
Case -1
|
|||
|
|
Komunikat = "UWAGA: API nie zostało aktywowane bądź błąd wersji"
|
|||
|
|
Case 1
|
|||
|
|
Komunikat = "UWAGA: Niepoprawny zakres"
|
|||
|
|
Case 2
|
|||
|
|
Komunikat = "UWAGA: Wystąpił niezidentyfikowany błąd, kod EAN nie został wygenerowany"
|
|||
|
|
Case Else
|
|||
|
|
Komunikat = "UWAGA: Nieznany błąd"
|
|||
|
|
End Select
|
|||
|
|
MainFrm.listuj(Komunikat)
|
|||
|
|
Ilosc_Bledow = Ilosc_Bledow + 1
|
|||
|
|
OpisBledu = Ilosc_Bledow
|
|||
|
|
ElseIf wynik_lokalny <> 0 And Funkcja = 997 Then 'DodajAtrybut do obiektu
|
|||
|
|
Komunikat = "Nieokreślony błąd API XL"
|
|||
|
|
Select Case wynik_lokalny
|
|||
|
|
Case -1
|
|||
|
|
Komunikat = "UWAGA: brak sesji"
|
|||
|
|
Case 2
|
|||
|
|
Komunikat = "UWAGA: błąd przy zakładaniu logout"
|
|||
|
|
Case 3
|
|||
|
|
Komunikat = "UWAGA: nie znaleziono obiektu"
|
|||
|
|
Case 4
|
|||
|
|
Komunikat = "UWAGA: nie znalezniono klasy atrybutu"
|
|||
|
|
Case 5
|
|||
|
|
Komunikat = "UWAGA: klasa nieprzypisana do definicji obiektu"
|
|||
|
|
Case 6
|
|||
|
|
Komunikat = "UWAGA: atrybut juz istnieje w kolejce"
|
|||
|
|
Case 7
|
|||
|
|
Komunikat = "UWAGA: błąd ADO Connection"
|
|||
|
|
Case 8
|
|||
|
|
Komunikat = "UWAGA: błąd ADO"
|
|||
|
|
Case 9
|
|||
|
|
Komunikat = "UWAGA: brak zdefiniowanego obiektu"
|
|||
|
|
Case Else
|
|||
|
|
Komunikat = "UWAGA: Nieznany błąd"
|
|||
|
|
End Select
|
|||
|
|
MainFrm.listuj(Komunikat)
|
|||
|
|
Ilosc_Bledow = Ilosc_Bledow + 1
|
|||
|
|
OpisBledu = Ilosc_Bledow
|
|||
|
|
ElseIf wynik_lokalny <> 0 And Funkcja = 996 Then 'Dodaj Partię
|
|||
|
|
Komunikat = "Nieokreślony błąd API XL"
|
|||
|
|
Select Case wynik_lokalny
|
|||
|
|
Case -1
|
|||
|
|
Komunikat = "UWAGA: API nie zostało aktywowane bądź błąd wersji"
|
|||
|
|
Case 2
|
|||
|
|
Komunikat = "UWAGA: Wystąpił błąd przy próbie zablokowania tabel dla wykonania transakcji"
|
|||
|
|
Case 11
|
|||
|
|
Komunikat = "UWAGA: nie znaleziono towaru"
|
|||
|
|
Case 12
|
|||
|
|
Komunikat = "UWAGA: Nie podano towaru"
|
|||
|
|
Case 106
|
|||
|
|
Komunikat = "UWAGA: Wystąpił błąd DeadLock"
|
|||
|
|
Case 160
|
|||
|
|
Komunikat = "UWAGA: Nie znaleziono podanej dostawy"
|
|||
|
|
Case 178
|
|||
|
|
Komunikat = "UWAGA: Partia o takich parametrach nie istnieje"
|
|||
|
|
Case 210
|
|||
|
|
Komunikat = "UWAGA: Nie znaleziono podanego identyfikatora partii"
|
|||
|
|
Case Else
|
|||
|
|
Komunikat = "UWAGA: Nieznany błąd"
|
|||
|
|
End Select
|
|||
|
|
MainFrm.listuj(Komunikat)
|
|||
|
|
Ilosc_Bledow = Ilosc_Bledow + 1
|
|||
|
|
OpisBledu = Ilosc_Bledow
|
|||
|
|
ElseIf wynik_lokalny <> 0 And Funkcja = 995 Then 'Dokumenty związane
|
|||
|
|
Komunikat = "Nieokreślony błąd API XL"
|
|||
|
|
Select Case wynik_lokalny
|
|||
|
|
Case -1
|
|||
|
|
Komunikat = "UWAGA: API nie zostało aktywowane bądź błąd wersji"
|
|||
|
|
Case 1
|
|||
|
|
Komunikat = "UWAGA: taki dokument jest już na liście (błąd zwracany przy akcji dodawania)"
|
|||
|
|
Case 30
|
|||
|
|
Komunikat = "UWAGA: nie znaleziono dokumentu na liście"
|
|||
|
|
Case Else
|
|||
|
|
Komunikat = "UWAGA: Nieznany błąd"
|
|||
|
|
End Select
|
|||
|
|
MainFrm.listuj(Komunikat)
|
|||
|
|
Ilosc_Bledow = Ilosc_Bledow + 1
|
|||
|
|
OpisBledu = Ilosc_Bledow
|
|||
|
|
ElseIf wynik_lokalny <> 0 And Funkcja = 994 Then 'Dodaj Dekret zbiorczy
|
|||
|
|
Komunikat = "Nieokreślony błąd API XL"
|
|||
|
|
Select Case wynik_lokalny
|
|||
|
|
Case -1
|
|||
|
|
Komunikat = "BŁĄD: API nie zostało aktywowane bądź błąd wersji"
|
|||
|
|
Case 101
|
|||
|
|
Komunikat = "BŁĄD: Niepoprawny dziennik księgowań"
|
|||
|
|
Case 102
|
|||
|
|
Komunikat = "BŁĄD: Niepoprawny bufor księgowań"
|
|||
|
|
Case 103
|
|||
|
|
Komunikat = "BŁĄD: Kwota = 0"
|
|||
|
|
Case 104
|
|||
|
|
Komunikat = "BŁĄD: Brak opisu"
|
|||
|
|
Case 105
|
|||
|
|
Komunikat = "BŁĄD: Dodawanie dekretu składowego bez otwarcia dekretu zbiorczego"
|
|||
|
|
Case 1002
|
|||
|
|
Komunikat = "BŁĄD: Otwarty poprzedni dekret lub zamknięty modyfikowany dekret"
|
|||
|
|
Case 1031
|
|||
|
|
Komunikat = "BŁĄD: Uruchomienie tej operacji nie jest możliwe ze względu na brak dostępu do modułu, problem z połączeniem lub niezgodność danych w kluczu ze stanem faktycznym."
|
|||
|
|
Case 8001
|
|||
|
|
Komunikat = "BŁĄD: Niepoprawne konto księgowań"
|
|||
|
|
Case 8005
|
|||
|
|
Komunikat = "BŁĄD: Bieżący okres obrachunkowy jest zamknięty do x.
|
|||
|
|
Próbujesz księgować lub kasować księgowanie z datą y."
|
|||
|
|
Case 8006
|
|||
|
|
Komunikat = "BŁĄD: Data nie mieści się w żadnym z zadeklarowanych okresów obrachunkowych. Załóż okres i powtórz operację"
|
|||
|
|
Case 8008
|
|||
|
|
Komunikat = "BŁĄD: Zła data . Załóż nowy dekret księgowy. Błąd ten wyświetla się zawsze kiedy data nie mieści się w okresie obrachunkowym"
|
|||
|
|
Case 8046
|
|||
|
|
Komunikat = "BŁĄD: Nie można księgować na to samo konto"
|
|||
|
|
Case 8190
|
|||
|
|
Komunikat = "BŁĄD: Dokonywanie zapisu księgowego bez podania żadnego z kont"
|
|||
|
|
Case Else
|
|||
|
|
Komunikat = "UWAGA: Nieznany błąd"
|
|||
|
|
End Select
|
|||
|
|
MainFrm.listuj(Komunikat)
|
|||
|
|
Ilosc_Bledow = Ilosc_Bledow + 1
|
|||
|
|
OpisBledu = Ilosc_Bledow
|
|||
|
|
ElseIf wynik_lokalny <> 0 And Funkcja = 993 Then 'Dodaj dekret składowy
|
|||
|
|
Komunikat = "Nieokreślony błąd API XL"
|
|||
|
|
Select Case wynik_lokalny
|
|||
|
|
Case -1
|
|||
|
|
Komunikat = "BŁĄD: API nie zostało aktywowane bądź błąd wersji"
|
|||
|
|
Case 101
|
|||
|
|
Komunikat = "BŁĄD: Niepoprawny dziennik księgowań"
|
|||
|
|
Case 102
|
|||
|
|
Komunikat = "BŁĄD: Niepoprawny bufor księgowań"
|
|||
|
|
Case 103
|
|||
|
|
Komunikat = "BŁĄD: Kwota = 0"
|
|||
|
|
Case 104
|
|||
|
|
Komunikat = "BŁĄD: Brak opisu"
|
|||
|
|
Case 105
|
|||
|
|
Komunikat = "BŁĄD: Dodawanie dekretu składowego bez otwarcia dekretu zbiorczego"
|
|||
|
|
Case 1002
|
|||
|
|
Komunikat = "BŁĄD: Otwarty poprzedni dekret lub zamknięty modyfikowany dekret"
|
|||
|
|
Case 8001
|
|||
|
|
Komunikat = "BŁĄD: Niepoprawne konto księgowań"
|
|||
|
|
Case 8003
|
|||
|
|
Komunikat = "BŁĄD: Konto posiada analitykę"
|
|||
|
|
Case 8006
|
|||
|
|
Komunikat = "BŁĄD: Data nie mieści się w żadnym z zadeklarowanych okresów obrachunkowych. Załóż okres i powtórz operację"
|
|||
|
|
Case 8008
|
|||
|
|
Komunikat = "BŁĄD: Zła data . Załóż nowy dekret księgowy. Błąd ten wyświetla się zawsze kiedy data nie mieści się w okresie obrachunkowym"
|
|||
|
|
Case 8046
|
|||
|
|
Komunikat = "BŁĄD: Nie można księgować na to samo konto"
|
|||
|
|
Case 8190
|
|||
|
|
Komunikat = "BŁĄD: Dokonywanie zapisu księgowego bez podania żadnego z kont"
|
|||
|
|
Case Else
|
|||
|
|
Komunikat = "UWAGA: Nieznany błąd"
|
|||
|
|
End Select
|
|||
|
|
MainFrm.listuj(Komunikat)
|
|||
|
|
Ilosc_Bledow = Ilosc_Bledow + 1
|
|||
|
|
OpisBledu = Ilosc_Bledow
|
|||
|
|
ElseIf wynik_lokalny <> 0 And Funkcja = 992 Then 'Zamknij dekret zbiorczy, sumuj dekret zbiorczy
|
|||
|
|
Komunikat = "Nieokreślony błąd API XL"
|
|||
|
|
Select Case wynik_lokalny
|
|||
|
|
Case -1
|
|||
|
|
Komunikat = "BŁĄD: API nie zostało aktywowane bądź błąd wersji"
|
|||
|
|
Case 101
|
|||
|
|
Komunikat = "BŁĄD: Niepoprawny dziennik księgowań"
|
|||
|
|
Case 102
|
|||
|
|
Komunikat = "BŁĄD: Niepoprawny bufor księgowań"
|
|||
|
|
Case 103
|
|||
|
|
Komunikat = "BŁĄD: Kwota = 0"
|
|||
|
|
Case 104
|
|||
|
|
Komunikat = "BŁĄD: Brak opisu"
|
|||
|
|
Case 105
|
|||
|
|
Komunikat = "BŁĄD: Dodawanie dekretu składowego bez otwarcia dekretu zbiorczego"
|
|||
|
|
Case 8001
|
|||
|
|
Komunikat = "BŁĄD: Niepoprawne konto księgowań"
|
|||
|
|
Case 8006
|
|||
|
|
Komunikat = "BŁĄD: Data nie mieści się w żadnym z zadeklarowanych okresów obrachunkowych. Załóż okres i powtórz operację"
|
|||
|
|
Case 8008
|
|||
|
|
Komunikat = "BŁĄD: Zła data . Załóż nowy dekret księgowy. Błąd ten wyświetla się zawsze kiedy data nie mieści się w okresie obrachunkowym"
|
|||
|
|
Case 8046
|
|||
|
|
Komunikat = "BŁĄD: Nie można księgować na to samo konto"
|
|||
|
|
Case 8190
|
|||
|
|
Komunikat = "BŁĄD: Dokonywanie zapisu księgowego bez podania żadnego z kont"
|
|||
|
|
Case Else
|
|||
|
|
Komunikat = "UWAGA: Nieznany błąd"
|
|||
|
|
End Select
|
|||
|
|
MainFrm.listuj(Komunikat)
|
|||
|
|
Ilosc_Bledow = Ilosc_Bledow + 1
|
|||
|
|
OpisBledu = Ilosc_Bledow
|
|||
|
|
ElseIf wynik_lokalny <> 0 And Funkcja = 990 Then 'Dodaj dekret pojedynczy
|
|||
|
|
Komunikat = "Nieokreślony błąd API XL"
|
|||
|
|
Select Case wynik_lokalny
|
|||
|
|
Case -1
|
|||
|
|
Komunikat = "BŁĄD: API nie zostało aktywowane bądź błąd wersji"
|
|||
|
|
Case 101
|
|||
|
|
Komunikat = "BŁĄD: Niepoprawny dziennik księgowań"
|
|||
|
|
Case 102
|
|||
|
|
Komunikat = "BŁĄD: Niepoprawny bufor księgowań"
|
|||
|
|
Case 103
|
|||
|
|
Komunikat = "BŁĄD: Kwota = 0"
|
|||
|
|
Case 104
|
|||
|
|
Komunikat = "BŁĄD: Brak opisu"
|
|||
|
|
Case 105
|
|||
|
|
Komunikat = "BŁĄD: Dodawanie dekretu składowego bez otwarcia dekretu zbiorczego"
|
|||
|
|
Case 1002
|
|||
|
|
Komunikat = "BŁĄD: Otwarty poprzedni dekret lub zamknięty modyfikowany dekret"
|
|||
|
|
Case 8001
|
|||
|
|
Komunikat = "BŁĄD: Niepoprawne konto księgowań"
|
|||
|
|
Case 8003
|
|||
|
|
Komunikat = "BŁĄD: Konto posiada analitykę"
|
|||
|
|
Case 8006
|
|||
|
|
Komunikat = "BŁĄD: Data nie mieści się w żadnym z zadeklarowanych okresów obrachunkowych. Załóż okres i powtórz operację"
|
|||
|
|
Case 8008
|
|||
|
|
Komunikat = "BŁĄD: Zła data . Załóż nowy dekret księgowy. Błąd ten wyświetla się zawsze kiedy data nie mieści się w okresie obrachunkowym"
|
|||
|
|
Case 8046
|
|||
|
|
Komunikat = "BŁĄD: Nie można księgować na to samo konto"
|
|||
|
|
Case 8190
|
|||
|
|
Komunikat = "BŁĄD: Dokonywanie zapisu księgowego bez podania żadnego z kont"
|
|||
|
|
Case Else
|
|||
|
|
Komunikat = "BŁĄD: Nieznany błąd"
|
|||
|
|
End Select
|
|||
|
|
MainFrm.listuj(Komunikat)
|
|||
|
|
Ilosc_Bledow = Ilosc_Bledow + 1
|
|||
|
|
OpisBledu = Ilosc_Bledow
|
|||
|
|
ElseIf wynik_lokalny <> 0 And Funkcja = 989 Then 'Dodaj uproszczoną notę memoriałową
|
|||
|
|
Komunikat = "Nieokreślony błąd API XL"
|
|||
|
|
Select Case wynik_lokalny
|
|||
|
|
Case -3
|
|||
|
|
Komunikat = "BŁĄD: brak GIDTypu noty"
|
|||
|
|
Case -2
|
|||
|
|
Komunikat = "BŁĄD: błąd zakładania transakcji"
|
|||
|
|
Case -1
|
|||
|
|
Komunikat = "BŁĄD: niewłaściwy parametr SesjaID"
|
|||
|
|
Case 1
|
|||
|
|
Komunikat = "BŁĄD: błąd dodawania/aktualizacji/kasowania nagłówka;"
|
|||
|
|
Case 2
|
|||
|
|
Komunikat = "BŁĄD: błędny numer noty (XLNotaInfo.Numer już istnieje w ramach serii/miesiąca);"
|
|||
|
|
Case 3
|
|||
|
|
Komunikat = "BŁĄD: brak definicji noty"
|
|||
|
|
Case 4
|
|||
|
|
Komunikat = "BŁĄD: brak podmiotu (kontrahenta lub pracownika);"
|
|||
|
|
Case 5
|
|||
|
|
Komunikat = "BŁĄD: Nie znaleziono podanej waluty"
|
|||
|
|
Case 6
|
|||
|
|
Komunikat = "BŁĄD: brak płatnika"
|
|||
|
|
Case 7
|
|||
|
|
Komunikat = "BŁĄD: nota nie posiada treści"
|
|||
|
|
Case 8
|
|||
|
|
Komunikat = "BŁĄD: brak praw do używania tego modułu"
|
|||
|
|
Case 9
|
|||
|
|
Komunikat = "BŁĄD: seria nie istnieje w systemie"
|
|||
|
|
Case 8001
|
|||
|
|
Komunikat = "BŁĄD: Niepoprawne konto księgowań lub konto nie znajduje się w bieżącym okresie"
|
|||
|
|
Case 8046
|
|||
|
|
Komunikat = "BŁĄD: Nie można księgować na to samo konto lub oba konta puste"
|
|||
|
|
Case 8047
|
|||
|
|
Komunikat = "BŁĄD: po obu stronach pozycji noty konta rozrachunkowe"
|
|||
|
|
Case Else
|
|||
|
|
Komunikat = "BŁĄD: Nieznany błąd"
|
|||
|
|
End Select
|
|||
|
|
MainFrm.listuj(Komunikat)
|
|||
|
|
Ilosc_Bledow = Ilosc_Bledow + 1
|
|||
|
|
OpisBledu = Ilosc_Bledow
|
|||
|
|
ElseIf wynik_lokalny <> 0 And Funkcja = 988 Then 'Dodaj pozycję noty
|
|||
|
|
Komunikat = "Nieokreślony błąd API XL"
|
|||
|
|
Select Case wynik_lokalny
|
|||
|
|
Case -2
|
|||
|
|
Komunikat = "BŁĄD: błąd zakładania transakcji"
|
|||
|
|
Case -1
|
|||
|
|
Komunikat = "BŁĄD: niewłaściwy parametr SesjaID"
|
|||
|
|
Case 3
|
|||
|
|
Komunikat = "BŁĄD: brak definicji noty"
|
|||
|
|
Case 5
|
|||
|
|
Komunikat = "BŁĄD: brak noty o podanym ID"
|
|||
|
|
Case 7
|
|||
|
|
Komunikat = "BŁĄD: pozycja noty nie posiada opisu"
|
|||
|
|
Case 8
|
|||
|
|
Komunikat = "BŁĄD: brak symbolu kwoty"
|
|||
|
|
Case 9
|
|||
|
|
Komunikat = "BŁĄD: błąd dodawania pozycji noty"
|
|||
|
|
Case 10
|
|||
|
|
Komunikat = "BŁĄD: błąd synchronizacji konta walutowego"
|
|||
|
|
Case 8001
|
|||
|
|
Komunikat = "BŁĄD: Niepoprawne konto księgowań lub konto nie znajduje się w bieżącym okresie"
|
|||
|
|
Case 8046
|
|||
|
|
Komunikat = "BŁĄD: Nie można księgować na to samo konto lub oba konta puste"
|
|||
|
|
Case 8047
|
|||
|
|
Komunikat = "BŁĄD: z uwagi na płatności, wygenerowanie noty nie jest możliwe. W ramach zapisu wprowadzono dekrety dwustronne, zawierające po obydwu stronach konta rozrachunkowe"
|
|||
|
|
Case Else
|
|||
|
|
Komunikat = "BŁĄD: Nieznany błąd"
|
|||
|
|
End Select
|
|||
|
|
MainFrm.listuj(Komunikat)
|
|||
|
|
Ilosc_Bledow = Ilosc_Bledow + 1
|
|||
|
|
OpisBledu = Ilosc_Bledow
|
|||
|
|
ElseIf wynik_lokalny <> 0 And Funkcja = 987 Then 'Zamknij notę
|
|||
|
|
Komunikat = "Nieokreślony błąd API XL"
|
|||
|
|
Select Case wynik_lokalny
|
|||
|
|
Case -2
|
|||
|
|
Komunikat = "BŁĄD: błąd zakładania transakcji"
|
|||
|
|
Case -1
|
|||
|
|
Komunikat = "BŁĄD: niewłaściwy parametr SesjaID"
|
|||
|
|
Case 1
|
|||
|
|
Komunikat = "BŁĄD: błąd dodawania/aktualizacji/kasowania nagłówka"
|
|||
|
|
Case 2
|
|||
|
|
Komunikat = "BŁĄD: błędny numer noty (XLNotaInfo.Numer już istnieje w ramach serii/miesiąca);"
|
|||
|
|
Case 3
|
|||
|
|
Komunikat = "BŁĄD: brak definicji noty"
|
|||
|
|
Case 5
|
|||
|
|
Komunikat = "BŁĄD: brak noty o podanym ID"
|
|||
|
|
Case 6
|
|||
|
|
Komunikat = "BŁĄD: nota niezgodna z definicją (przychodowa/rozchodowa, podmiot);"
|
|||
|
|
Case 7
|
|||
|
|
Komunikat = "BŁĄD: nie udało się wygenerowanie płatności;"
|
|||
|
|
Case Else
|
|||
|
|
Komunikat = "BŁĄD: Nieznany błąd"
|
|||
|
|
End Select
|
|||
|
|
MainFrm.listuj(Komunikat)
|
|||
|
|
Ilosc_Bledow = Ilosc_Bledow + 1
|
|||
|
|
OpisBledu = Ilosc_Bledow
|
|||
|
|
ElseIf wynik_lokalny <> 0 And Funkcja = 986 Then 'kasuj notę
|
|||
|
|
Komunikat = "Nieokreślony błąd API XL"
|
|||
|
|
Select Case wynik_lokalny
|
|||
|
|
Case -2
|
|||
|
|
Komunikat = "BŁĄD: błąd zakładania transakcji"
|
|||
|
|
Case -1
|
|||
|
|
Komunikat = "BŁĄD: niewłaściwy parametr SesjaID"
|
|||
|
|
Case 1
|
|||
|
|
Komunikat = "BŁĄD: błąd dodawania/aktualizacji/kasowania nagłówka"
|
|||
|
|
Case 5
|
|||
|
|
Komunikat = "BŁĄD: brak noty o podanym ID"
|
|||
|
|
Case Else
|
|||
|
|
Komunikat = "BŁĄD: Nieznany błąd"
|
|||
|
|
End Select
|
|||
|
|
MainFrm.listuj(Komunikat)
|
|||
|
|
Ilosc_Bledow = Ilosc_Bledow + 1
|
|||
|
|
OpisBledu = Ilosc_Bledow
|
|||
|
|
End If
|
|||
|
|
End Function
|
|||
|
|
|
|||
|
|
|
|||
|
|
'--------------------------------------------------------------------------------------------------
|
|||
|
|
' Funkcja XLPobierzNumerDokumentu rozwiązuje GID na sformatowany numer dokumentu
|
|||
|
|
'--------------------------------------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
Public Function NumerDokumentu(ByVal GIDTyp As Integer, ByVal GIDFirma As Integer, ByVal GIDNumer As Integer, ByVal GIDLp As Integer) As String
|
|||
|
|
Dim NumerDokumentuInfo As New cdn_api.XLNumerDokumentuInfo_20241
|
|||
|
|
Dim nrd As String
|
|||
|
|
|
|||
|
|
NumerDokumentuInfo.Wersja = Wersja
|
|||
|
|
NumerDokumentuInfo.GIDTyp = GIDTyp
|
|||
|
|
NumerDokumentuInfo.GIDFirma = GIDFirma
|
|||
|
|
NumerDokumentuInfo.GIDNumer = GIDNumer
|
|||
|
|
NumerDokumentuInfo.GIDLp = GIDLp
|
|||
|
|
|
|||
|
|
Try
|
|||
|
|
wynikXL = cdn_api.cdn_api.XLPobierzNumerDokumentu(NumerDokumentuInfo)
|
|||
|
|
Catch ex As Exception
|
|||
|
|
wynikXL = -200
|
|||
|
|
Komunikat = "Nie rozpoznany błąd API XLPobierzNumerDokumentu"
|
|||
|
|
End Try
|
|||
|
|
NumerDokumentu = ""
|
|||
|
|
nrd = ""
|
|||
|
|
If wynikXL = 0 Then
|
|||
|
|
nrd = NumerDokumentuInfo.NumerDokumentu
|
|||
|
|
Else
|
|||
|
|
If wynikXL = -1 Then
|
|||
|
|
Komunikat = "XLPobierzNumerDokumentu: nieaktywna sesja API lub nieprawidłowy numer wersji"
|
|||
|
|
ElseIf wynikXL = 1 Then
|
|||
|
|
Komunikat = "XLPobierzNumerDokumentu: nie znaleziono dokumentu"
|
|||
|
|
ElseIf wynikXL = 2 Then
|
|||
|
|
Komunikat = "XLPobierzNumerDokumentu: podano nieobsługiwany GIDTyp"
|
|||
|
|
End If
|
|||
|
|
MainFrm.listuj(Komunikat)
|
|||
|
|
End If
|
|||
|
|
NumerDokumentu = RTrim(nrd)
|
|||
|
|
End Function
|
|||
|
|
|
|||
|
|
'--------------------------------------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
Public Function XLSprawdzLicencje() As Boolean
|
|||
|
|
Dim LicencjaInfo As New cdn_api.XLLicencjaInfo_20241 With
|
|||
|
|
{
|
|||
|
|
.Wersja = Wersja,
|
|||
|
|
.Licencja = 1,
|
|||
|
|
.Odswiez = 1,
|
|||
|
|
.Stan = 0
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
wynikXL = 0
|
|||
|
|
XLSprawdzLicencje = False
|
|||
|
|
Try
|
|||
|
|
wynikXL = cdn_api.cdn_api.XLSprawdzLicencje(LicencjaInfo)
|
|||
|
|
Catch ex As Exception
|
|||
|
|
wynikXL = -200
|
|||
|
|
Komunikat = "Nie rozpoznany błąd API XLSprawdzLicencje"
|
|||
|
|
End Try
|
|||
|
|
If LicencjaInfo.Stan = 1 Then
|
|||
|
|
XLSprawdzLicencje = True
|
|||
|
|
Else
|
|||
|
|
Komunikat = "Błąd API XLSprawdzLicencje = " & CStr(wynikXL)
|
|||
|
|
If wynikXL = 0 Then
|
|||
|
|
Select Case LicencjaInfo.Stan
|
|||
|
|
Case 0
|
|||
|
|
Komunikat = "XLSprawdzLicencje: nie pobrano licencji"
|
|||
|
|
Case 2
|
|||
|
|
Komunikat = "XLSprawdzLicencje: nie pobrano licencji - błąd pobrania licencji bądź ilość licencji wyczerpana"
|
|||
|
|
Case 3
|
|||
|
|
Komunikat = "XLSprawdzLicencje: licencja przeterminowana"
|
|||
|
|
Case 4
|
|||
|
|
Komunikat = "XLSprawdzLicencje: licencja promocyjna"
|
|||
|
|
End Select
|
|||
|
|
ElseIf wynikXL = -1 Then
|
|||
|
|
Komunikat = "XLSprawdzLicencje: Sesja API nieaktywna lub nieprawidłowy numer"
|
|||
|
|
ElseIf wynikXL = 1 Then
|
|||
|
|
Komunikat = "XLSprawdzLicencje: błąd klucza sprzętowego"
|
|||
|
|
End If
|
|||
|
|
MainFrm.listuj(Komunikat)
|
|||
|
|
End If
|
|||
|
|
End Function
|
|||
|
|
|
|||
|
|
|
|||
|
|
'-------------------------------------------------------------------------------------
|
|||
|
|
' Funkcja XLDodajDekretPojedynczy - Funkcja dodaje jeden dekret pojedynczy - bez nagłówka
|
|||
|
|
|
|||
|
|
Sub XLDodajDekretPoj()
|
|||
|
|
Dim DekretInfo As New cdn_api.XLDekretInfo_20241
|
|||
|
|
Dim w As Integer
|
|||
|
|
|
|||
|
|
With DekretInfo
|
|||
|
|
.Wersja = Wersja
|
|||
|
|
'.Tryb = Range("b6").Value 'Tryb wystawienia (interakcyjny/wsadowy)
|
|||
|
|
'.GIDTyp = Range("b7").Value 'GID dekretu (zwracanego po dodaniu)
|
|||
|
|
'.GIDFirma = Range("b8").Value '
|
|||
|
|
'.GIDNumer = Range("b9").Value '
|
|||
|
|
'.GIDLp = Range("b10").Value '
|
|||
|
|
'.Data = Range("b11").Value 'Data dekretu
|
|||
|
|
'.DataDokumentu = Range("b12").Value 'Data dokumentu
|
|||
|
|
'.Kwota = Str(Range("b13").Value) 'Kwota pomnożona przez 100
|
|||
|
|
'.KwotaWalDT = Str(Range("b14").Value) 'Kwota winien w walucie pomnożona przez 100
|
|||
|
|
'.KwotaWalCT = Str(Range("b15").Value) 'Kwota ma w walucie pomnożona przez 100
|
|||
|
|
'.NumerDokumentu = Range("b16").Value + Chr(0) 'Numer dokumentu
|
|||
|
|
'.Dziennik = Range("b17").Value + Chr(0) 'Dziennik księgowań
|
|||
|
|
'.Bufor = Range("b18").Value + Chr(0) 'Bufor księgowań (pusty = KG)
|
|||
|
|
'.KontoDebet = Range("b19").Value + Chr(0) 'Numer konta winien (WN)
|
|||
|
|
'.KontoCredit = Range("b20").Value + Chr(0) 'Numer konta ma (MA)
|
|||
|
|
'.KontoWalDT = Range("b21").Value + Chr(0)
|
|||
|
|
'.KontoWalCT = Range("b22").Value + Chr(0)
|
|||
|
|
'.Identyfikator = Range("b23").Value
|
|||
|
|
'.Opis = Range("b24").Value + Chr(0) 'Opis dekretu
|
|||
|
|
End With
|
|||
|
|
wynikXL = 0
|
|||
|
|
Try
|
|||
|
|
wynikXL = cdn_api.cdn_api.XLDodajDekretPojedynczy(Sesja, DekretInfo)
|
|||
|
|
Catch ex As Exception
|
|||
|
|
wynikXL = -200
|
|||
|
|
Komunikat = "Nie rozpoznany błąd API XLDodajDekretPojedynczy"
|
|||
|
|
End Try
|
|||
|
|
w = OpisBledu(990, wynikXL, 0)
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
|
|||
|
|
'-------------------------------------------------------------------------------------
|
|||
|
|
' Funkcja XLDodajDekretZbiorczy - Funkcja dodaje nagłówek dekretu zbiorczego
|
|||
|
|
|
|||
|
|
Sub XLDodajDekretZb(DekretZbiorczyInfo As cdn_api.XLDekretZbiorczyInfo_20241)
|
|||
|
|
Dim w As Integer
|
|||
|
|
|
|||
|
|
With DekretZbiorczyInfo
|
|||
|
|
.Wersja = Wersja
|
|||
|
|
.Tryb = 2 'Tryb wystawienia wsadowy
|
|||
|
|
End With
|
|||
|
|
|
|||
|
|
wynikXL = 0
|
|||
|
|
Try
|
|||
|
|
wynikXL = cdn_api.cdn_api.XLDodajDekretZbiorczy(Sesja, DekretZbiorczyInfo)
|
|||
|
|
Catch ex As Exception
|
|||
|
|
wynikXL = -200
|
|||
|
|
Komunikat = "Nie rozpoznany błąd API XLDodajDekretZbiorczy"
|
|||
|
|
End Try
|
|||
|
|
w = OpisBledu(994, wynikXL, 0)
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
|
|||
|
|
'-------------------------------------------------------------------------------------
|
|||
|
|
' Funkcja XLDodajDekretSkladowy - Funkcja dodaje jeden dekret składowy w otwartym dekrecie zbiorczym
|
|||
|
|
|
|||
|
|
Sub XLDodajDekretSkl(DekretSkladowyInfo As cdn_api.XLDekretInfo_20241)
|
|||
|
|
Dim w As Integer
|
|||
|
|
|
|||
|
|
With DekretSkladowyInfo
|
|||
|
|
.Wersja = Wersja
|
|||
|
|
.Tryb = 2 'Tryb wystawienia wsadowy
|
|||
|
|
End With
|
|||
|
|
|
|||
|
|
wynikXL = 0
|
|||
|
|
Try
|
|||
|
|
wynikXL = cdn_api.cdn_api.XLDodajDekretSkladowy(Sesja, DekretSkladowyInfo)
|
|||
|
|
Catch ex As Exception
|
|||
|
|
wynikXL = -200
|
|||
|
|
Komunikat = "Nie rozpoznany błąd API XLDodajDekretSkładowy"
|
|||
|
|
End Try
|
|||
|
|
w = OpisBledu(993, wynikXL, 0)
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
|
|||
|
|
'-------------------------------------------------------------------------------------
|
|||
|
|
' Funkcja XLZamknijDekretZbiorczy - Funkcja zamyka dekret zbiorczy
|
|||
|
|
|
|||
|
|
Sub XLZamknijDekretZb(ZamknijDekretZbiorczyInfo As cdn_api.XLDekretZbiorczyInfo_20241)
|
|||
|
|
Dim w As Integer
|
|||
|
|
|
|||
|
|
With ZamknijDekretZbiorczyInfo
|
|||
|
|
.Wersja = Wersja
|
|||
|
|
.Tryb = 2 'Tryb wystawienia wsadowy
|
|||
|
|
End With
|
|||
|
|
|
|||
|
|
wynikXL = 0
|
|||
|
|
Try
|
|||
|
|
wynikXL = cdn_api.cdn_api.XLZamknijDekretZbiorczy(Sesja, ZamknijDekretZbiorczyInfo)
|
|||
|
|
Catch ex As Exception
|
|||
|
|
wynikXL = -200
|
|||
|
|
Komunikat = "Nie rozpoznany błąd API XLZamknijDekretZbiorczy"
|
|||
|
|
End Try
|
|||
|
|
w = OpisBledu(992, wynikXL, 0)
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
'-------------------------------------------------------------------------------------
|
|||
|
|
' Funkcja XLSumujDekret - Funkcja podaje sumę dekretu zbiorczego
|
|||
|
|
|
|||
|
|
Sub XLSumujDekretZb(SumujDekretZbiorczyInfo As cdn_api.XLDekretZbiorczyInfo_20241)
|
|||
|
|
Dim w As Integer
|
|||
|
|
|
|||
|
|
With SumujDekretZbiorczyInfo
|
|||
|
|
.Wersja = Wersja
|
|||
|
|
.Tryb = 2 'Tryb wystawienia (interakcyjny/wsadowy)
|
|||
|
|
'.GIDTyp = Range("n7").Value 'GID dekretu (zwracanego po dodaniu)
|
|||
|
|
'.GIDFirma = Range("n8").Value '
|
|||
|
|
'.GIDNumer = Range("n9").Value '
|
|||
|
|
'.GIDLp = Range("n10").Value '
|
|||
|
|
'.Data = Range("n11").Value 'Data dekretu
|
|||
|
|
'.DataDokumentu = Range("n12").Value 'Data dokumentu
|
|||
|
|
'.KwotaDebet = Str(Range("n13").Value) + Chr(0) 'Kwota sumaryczna winien pomnożona przez 100
|
|||
|
|
'.KwotaCredit = Str(Range("n14").Value) + Chr(0) 'Kwota sumaryczna ma pomnożona przez 100
|
|||
|
|
'.NumerDokumentu = Range("n15").Value + Chr(0) 'Numer dokumentu
|
|||
|
|
'.Dziennik = Range("n16").Value + Chr(0) 'Dziennik księgowań
|
|||
|
|
'.Bufor = Range("n17").Value + Chr(0) 'Bufor księgowań (pusty = KG)
|
|||
|
|
'.Identyfikator = Range("n18").Value
|
|||
|
|
'.Opis = Range("n19").Value + Chr(0) 'Opis dekretu
|
|||
|
|
End With
|
|||
|
|
|
|||
|
|
wynikXL = 0
|
|||
|
|
Try
|
|||
|
|
wynikXL = cdn_api.cdn_api.XLSumujDekretZbiorczy(Sesja, SumujDekretZbiorczyInfo)
|
|||
|
|
Catch ex As Exception
|
|||
|
|
wynikXL = -200
|
|||
|
|
Komunikat = "Nie rozpoznany błąd API XLSumujDekretZbiorczy"
|
|||
|
|
End Try
|
|||
|
|
w = OpisBledu(992, wynikXL, 0)
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
'-------------------------------------------------------------------------------------
|
|||
|
|
' Funkcja XLKasujDekret - Funkcja kasuje dekret
|
|||
|
|
|
|||
|
|
Sub XLKasujDekretzb(KasujDekretInfo As cdn_api.XLDekretInfo_20241)
|
|||
|
|
Dim w As Integer
|
|||
|
|
|
|||
|
|
With KasujDekretInfo
|
|||
|
|
.Wersja = Wersja
|
|||
|
|
.Tryb = 2 'Tryb wystawienia (interakcyjny/wsadowy)
|
|||
|
|
End With
|
|||
|
|
|
|||
|
|
wynikXL = 0
|
|||
|
|
Try
|
|||
|
|
wynikXL = cdn_api.cdn_api.XLKasujDekret(Sesja, KasujDekretInfo)
|
|||
|
|
Catch ex As Exception
|
|||
|
|
wynikXL = -200
|
|||
|
|
Komunikat = "Nie rozpoznany błąd API XLKasujDekret"
|
|||
|
|
End Try
|
|||
|
|
w = OpisBledu(992, wynikXL, 0)
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
'--------------------------------------------------------------------------------------------------
|
|||
|
|
' Funkcja XLDodajNote
|
|||
|
|
|
|||
|
|
Sub XLDodajNoteMem(NotaInfo As cdn_api.XLNotaInfo_20241)
|
|||
|
|
Dim w, IDNoty As Integer
|
|||
|
|
|
|||
|
|
NotaID = 0
|
|||
|
|
With NotaInfo
|
|||
|
|
.Wersja = Wersja
|
|||
|
|
.Tryb = 2
|
|||
|
|
.GIDTyp = 4145 'nota uproszczona
|
|||
|
|
'.DataWprow = Range("b24").Value
|
|||
|
|
'.DataDok = Range("b25").Value
|
|||
|
|
'.DataOper = Range("b26").Value
|
|||
|
|
'.Seria = Range("b32").Value + Chr(0)
|
|||
|
|
'.NumerDokumentu = Range("b33").Value + Chr(0)
|
|||
|
|
'.Tresc = Range("b34").Value + Chr(0)
|
|||
|
|
End With
|
|||
|
|
|
|||
|
|
wynikXL = 0
|
|||
|
|
Try
|
|||
|
|
wynikXL = cdn_api.cdn_api.XLDodajNote(Sesja, IDNoty, NotaInfo)
|
|||
|
|
NotaID = IDNoty
|
|||
|
|
Catch ex As Exception
|
|||
|
|
wynikXL = -200
|
|||
|
|
NotaID = 0
|
|||
|
|
Komunikat = "Nie rozpoznany błąd API XLDodajNote"
|
|||
|
|
End Try
|
|||
|
|
w = OpisBledu(989, wynikXL, 0)
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
'--------------------------------------------------------------------------------------------------
|
|||
|
|
' Funkcja XLDodajPozycjeNoty - Funkcja ta dodaje element do otwartej wcześniej noty
|
|||
|
|
|
|||
|
|
Sub XLDodajPozycjeNotyMem(PozycjaNotyInfo As cdn_api.XLPozycjaNotyInfo_20241)
|
|||
|
|
Dim w As Integer
|
|||
|
|
|
|||
|
|
With PozycjaNotyInfo
|
|||
|
|
.Wersja = Wersja
|
|||
|
|
.Tryb = 2
|
|||
|
|
'.KKSNumerDT = Range("e15").Value
|
|||
|
|
'.KKSNumerCT = Range("e16").Value
|
|||
|
|
'.DataDok = Range("e21").Value
|
|||
|
|
'.DataOper = Range("e22").Value
|
|||
|
|
'.Kwota = Str(Range("e23").Value) + Chr(0)
|
|||
|
|
'.Opis = Range("e24").Value + Chr(0)
|
|||
|
|
'.NumerDokumentu = Range("e29").Value
|
|||
|
|
End With
|
|||
|
|
wynikXL = 0
|
|||
|
|
Try
|
|||
|
|
wynikXL = cdn_api.cdn_api.XLDodajPozycjeNoty(Sesja, NotaID, PozycjaNotyInfo)
|
|||
|
|
Catch ex As Exception
|
|||
|
|
wynikXL = -200
|
|||
|
|
Komunikat = "Nie rozpoznany błąd API XLDodajPozycjeNoty"
|
|||
|
|
End Try
|
|||
|
|
w = OpisBledu(988, wynikXL, 0)
|
|||
|
|
End Sub
|
|||
|
|
'--------------------------------------------------------------------------------------------------
|
|||
|
|
' Funkcja XLZamknijNote - Funkcja ta zamyka otwartą notę memoriałową
|
|||
|
|
|
|||
|
|
Sub XLZamknijNoteMem(NotaInfo As cdn_api.XLNotaInfo_20241)
|
|||
|
|
Dim w As Integer
|
|||
|
|
|
|||
|
|
With NotaInfo
|
|||
|
|
.Wersja = Wersja
|
|||
|
|
.Tryb = 2
|
|||
|
|
End With
|
|||
|
|
|
|||
|
|
wynikXL = 0
|
|||
|
|
Try
|
|||
|
|
wynikXL = cdn_api.cdn_api.XLZamknijNote(Sesja, NotaID, NotaInfo)
|
|||
|
|
NotaID = 0
|
|||
|
|
Catch ex As Exception
|
|||
|
|
wynikXL = -200
|
|||
|
|
Komunikat = "Nie rozpoznany błąd API XLZamknijNote"
|
|||
|
|
End Try
|
|||
|
|
w = OpisBledu(987, wynikXL, 0)
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
|
|||
|
|
'--------------------------------------------------------------------------------------------------
|
|||
|
|
' Funkcja XLKasujNote - Funkcja ta kasuje notę memoriałową
|
|||
|
|
|
|||
|
|
Sub XLKasujNoteMem(NotaInfo As cdn_api.XLNotaInfo_20241)
|
|||
|
|
Dim w As Integer
|
|||
|
|
|
|||
|
|
With NotaInfo
|
|||
|
|
.Wersja = Wersja
|
|||
|
|
.Tryb = 2
|
|||
|
|
'.GIDTyp = Range("k7").Value
|
|||
|
|
'.GIDFirma = Range("k8").Value
|
|||
|
|
'.GIDNumer = Range("k9").Value
|
|||
|
|
'.GIDLp = Range("k10").Value
|
|||
|
|
End With
|
|||
|
|
|
|||
|
|
wynikXL = 0
|
|||
|
|
Try
|
|||
|
|
wynikXL = cdn_api.cdn_api.XLKasujNote(Sesja, NotaID, NotaInfo)
|
|||
|
|
NotaID = 0
|
|||
|
|
Catch ex As Exception
|
|||
|
|
wynikXL = -200
|
|||
|
|
Komunikat = "Nie rozpoznany błąd API XLKasujNote"
|
|||
|
|
End Try
|
|||
|
|
w = OpisBledu(986, wynikXL, 0)
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
End Module
|