Dodaj pliki projektów.

This commit is contained in:
Krzysztof committed 2026-10-14 11:31:36 +02:00
1 parent 1d6a7b0924
commit da030eff7c
298 files changed
+83623

No files matched your search

@@ -0,0 +1,371 @@
Imports System.Globalization
Imports System.IO
Imports System.Text
Public Class MainFrm
Public Tylko_Listing As Boolean
Public f_out As StreamWriter ' Plik wyjściowy
Private SpFlag, ZakFlag, WewFlag As Integer
Private RM, Rok, Mies As Integer
Private SrcConn_str, DstConn_str As String
'----------------------------------------------------------
Private Const INT_lens As Integer = 1
Private p() As Integer = {2, 4, 7, 9, 3, INT_lens}
Public Function Encrypt(ByVal inputstr As String) As String
Dim str As StringBuilder
Dim b As Integer = 6
Dim i, j, k, c, cc, bb, lens As Integer
If inputstr > "" Then
str = New StringBuilder(inputstr)
lens = str.Length
While (lens < b) OrElse (lens Mod b)
str.Append(” “)
lens += INT_lens
End While
cc = (lens / b) - INT_lens
For i = 0 To cc
bb = b - INT_lens
For j = 0 To bb
k = p(j) + 100
c = (6 * i + j)
str.Replace(str.Chars(c), Chr(Asc(str.Chars(c)) + k), c, INT_lens)
Next
Next
Return str.ToString
Else
Return ""
End If
str = Nothing
End Function
Public Function Decrypt(ByVal inputstr As String) As String
Dim str As StringBuilder
Dim b As Integer = 6
Dim i, j, k, c, c1, cc, bb, lens As Integer
If inputstr > "" Then
str = New StringBuilder(inputstr)
lens = str.Length
While (lens < b) OrElse (lens Mod b)
str.Append(” “)
lens += INT_lens
End While
cc = (lens / b) - INT_lens
For i = 0 To cc
bb = b - INT_lens
For j = 0 To bb
k = p(j) + 100
c = (6 * i + j)
c1 = Asc(str.Chars(c))
c1 -= k
str.Replace(str.Chars(c), Chr(c1), c, INT_lens)
Next j
Next i
Return str.ToString
Else
Return ""
End If
str = Nothing
End Function
Private Function zrob_polaczenie(srv As String, baza As String, user As String, pass As String)
Dim cnstr As String
cnstr = "Data Source=" + srv + ";Initial Catalog=" + baza
cnstr += ";Persist Security Info=false;User ID=" + Decrypt(user).Trim + ";Password=" + Decrypt(pass).Trim
Return (cnstr)
End Function
Private Function PolaczBaze() As Boolean
Dim B1, conn, pp, K1 As String
Dim ret As Boolean = False
lbUwaga.Text = "Czekaj: Logowanie do ERPXL"
lbUwaga.Visible = True
lbUwaga.BringToFront()
lbUwaga.Refresh()
If Strings.Left(UCase(My.Settings.BazaDst), 6) = "CDNXL_" Or Strings.Left(UCase(My.Settings.BazaDst), 6) = "ERPXL_" Then
B1 = Mid(My.Settings.BazaDst, 7)
Else
B1 = My.Settings.BazaDst
End If
K1 = My.Settings.SerwerKlucza
If Not Zalogowany Then listuj(" Logowanie do ERP XL - proszę czekać...")
ret = Zaloguj(B1, "", "", K1)
If ret Then
listuj(" sprawdzanie dostępności licencji...")
ret = XLSprawdzLicencje()
If ret Then
listuj(" Zalogowano pomyslnie do ERP XL")
conn = FunkcjeXL.Polaczenie(My.Settings.BazaDst, My.Settings.SerwerDst) 'string połączenia wyznaczony przez API
pp = InStr(conn, "SERVER=")
conn = Mid(conn, pp)
DstConn_str = conn
ret = True
Else
listuj("!! Nie udało się pobrać licencji stanowiskowej ERP XL.")
Wyloguj()
End If
Else
listuj("!! Nie udało się zalogować")
End If
If Not ret Then
TcZakladki.SelectedTab = TpList
TpList.Select()
End If
lbUwaga.Text = "Czekaj: pobieranie danych"
lbUwaga.Visible = False
lbUwaga.Invalidate()
Return ret
End Function
'----------------------------------------------------------
Private Sub CbWewn_CheckedChanged(sender As Object, e As EventArgs) Handles CbWewn.CheckedChanged
If CbWewn.Checked Then
WewFlag = 1
Else
WewFlag = 0
End If
OdswiezDane()
End Sub
Private Sub BtOdswiez_Click(sender As Object, e As EventArgs) Handles BtOdswiez.Click
OdswiezDane()
End Sub
Private Sub CbZakup_CheckedChanged(sender As Object, e As EventArgs) Handles CbZakup.CheckedChanged
If CbZakup.Checked Then
ZakFlag = 1
Else
ZakFlag = 0
End If
OdswiezDane()
End Sub
Private Sub edRok_ValueChanged(sender As Object, e As EventArgs) Handles edRok.ValueChanged
If IsNumeric(edRok.Value) Then
Rok = edRok.Value
OdswiezDane()
End If
End Sub
Private Sub CbMiesiac_TextChanged(sender As Object, e As EventArgs) Handles CbMiesiac.TextChanged
Mies = CbMiesiac.Items.IndexOf(CbMiesiac.Text) + 1
OdswiezDane()
End Sub
Private Sub DgvDokumenty_KeyPress(sender As Object, e As KeyPressEventArgs) 'Handles DgvDokumenty.KeyPress
Dim wiersz As DataGridViewRow
Dim check As Boolean
Dim colWybrany, colData, kk As Integer
Select Case e.KeyChar
Case " "
kk = 0
colWybrany = DgvDokumenty.CurrentRow.Cells("Wybrany").ColumnIndex
colData = DgvDokumenty.CurrentRow.Cells("colDataImportu").ColumnIndex
For Each wiersz In DgvDokumenty.SelectedRows
If wiersz.Cells(colData).Value <= "1990-01-01 00:00:00" Then
check = wiersz.Cells(colWybrany).Value
wiersz.Cells(colWybrany).Value = Not check
If (kk Mod 10) = 0 Then Application.DoEvents()
End If
kk += 1
Next
End Select
End Sub
Private Sub CbSprzedaz_CheckedChanged(sender As Object, e As EventArgs) Handles CbSprzedaz.CheckedChanged
If CbSprzedaz.Checked Then
SpFlag = 1
Else
SpFlag = 0
End If
OdswiezDane()
End Sub
Private Sub DgvDokumenty_RowPostPaint(sender As Object, e As DataGridViewRowPostPaintEventArgs) Handles DgvDokumenty.RowPostPaint
If Not DgvDokumenty.Rows(e.RowIndex).Cells("colDataImportu").Value Is DBNull.Value Then
If CStr(DgvDokumenty.Rows(e.RowIndex).Cells("colDataImportu").Value) > "1990-01-01" Then DgvDokumenty.Rows(e.RowIndex).DefaultCellStyle.ForeColor = Color.Red
End If
End Sub
Private Sub BtImport_Click(sender As Object, e As EventArgs) Handles BtImport.Click
Dim DoImportu As New List(Of DataGridViewRow) 'kopia zaznaczonych do importu dokumentów
Dim Aktwiersz As DataGridViewRow
Dim AktualnyDokument As String = ""
Dim ret, Nr_ZapisuSrc As Integer
If DgvDokumenty.Rows.Count > 0 Then
DoImportu.Clear()
'For Each wiersz In DgvDokumenty.Rows 'zrób kopię zaznaczonych (checkboxem Do Importu) dokumentów
' If wiersz.Cells.Item("Wybrany").Value = 1 Then
' Dim targetRow = CType(wiersz.Clone(), DataGridViewRow)
' For Each cell As DataGridViewCell In wiersz.Cells
' targetRow.Cells(cell.ColumnIndex).Value = cell.Value
' Next
' DoImportu.Add(targetRow)
' End If
'Next
For Each wiersz In DgvDokumenty.SelectedRows 'zrób kopię zaznaczonych na niebiesko dokumentów
Dim targetRow = CType(wiersz.Clone(), DataGridViewRow)
For Each cell As DataGridViewCell In wiersz.Cells
targetRow.Cells(cell.ColumnIndex).Value = cell.Value
Next
DoImportu.Add(targetRow)
Next
'zaloguj do XL
listuj("Start importu: " + Now)
ret = PolaczBaze()
If ret Then
DgvDokumenty.CurrentCell = DgvDokumenty(0, 0)
Aktwiersz = DgvDokumenty.CurrentRow
For Each wiersz In DoImportu
Aktwiersz = wiersz
DgvDokumenty.CurrentCell = DgvDokumenty(0, wiersz.Cells.Item(0).Value - 1) 'pokaż aktualnie przetwarzany wiersz
If wiersz.Cells.Item(12).Value <= "1990-01-01 00:00:00" Then 'dekret nie zaimportowany
AktualnyDokument = wiersz.Cells.Item(2).Value 'Nowy dekret zbiorczy
Nr_ZapisuSrc = wiersz.Cells.Item(10).Value 'Dekret (DZK_GIDNumer) źródłowy
If UtworzDekretZbiorczy(AktualnyDokument, wiersz.Cells.Item(5).Value, '"Data Wystawienia"
wiersz.Cells.Item(6).Value, '"Data operacji"
wiersz.Cells.Item(3).Value, '"Dokument źródłowy"
wiersz.Cells.Item(4).Value, '"Opis dekretu"
wiersz.Cells.Item(7).Value, '"Suma Ma"
wiersz.Cells.Item(8).Value) Then '"Suma Winien"
If DodajSkladowy(Nr_ZapisuSrc) Then 'dodaj dekrety składowe
ZamknijDekret(True) 'zamknij dekret zbiorczy
'oznacz dokument jako zaimportowany
AktualnyDokument = ""
Else
ZamknijDekret(False) 'usuń utworzony dekret zbiorczy
AktualnyDokument = ""
End If
End If
End If
Next
End If
Tylko_Listing = False
TcZakladki.SelectedTab = TpList
TpList.Select()
End If
End Sub
Private Sub BtKonfig_Click(sender As Object, e As EventArgs) Handles BtKonfig.Click
dlgKonfig.ShowDialog()
End Sub
Private Sub Timer_Tick(sender As Object, e As EventArgs) Handles Timer.Tick
Dim plik As String
Timer.Stop()
Try
plik = My.Settings.FolderR_Roboczy + "\ImportDM-" + Replace(Replace(Replace(Now, ":", "."), "/", "."), " ", "_") + ".LOG"
f_out = System.IO.File.CreateText(plik)
Tylko_Listing = False
Catch
Tylko_Listing = True
End Try
Timer.Enabled = False
Application.DoEvents()
PolaczBaze()
End Sub
Private Sub BtKoniec_Click(sender As Object, e As EventArgs) Handles BtKoniec.Click
Wyloguj()
f_out.Flush()
f_out.Close()
Close()
End Sub
Private Sub OdswiezDane()
RM = CInt(CStr(Rok) & IIf(Mies < 10, "0", "") & CStr(Mies))
SrcConn_str = zrob_polaczenie(My.Settings.SerwerSrc, My.Settings.BazaSrc, My.Settings.MCsrc, My.Settings.Comsrc)
' DstConn_str = zrob_polaczenie(My.Settings.SerwerDst, My.Settings.BazaDst, My.Settings.MCdst, My.Settings.Comdst)
Me.Tamy_ImpDM_Src.Connection.ConnectionString = SrcConn_str
Tamy_ImpDM_Dekr.Connection.ConnectionString = SrcConn_str
Try
lbUwaga.Visible = True
lbUwaga.BringToFront()
lbUwaga.Refresh()
Me.Tamy_ImpDM_Src.Fill(Me.DsMain.Tbmy_ImpDM_Src, SpFlag, ZakFlag, WewFlag, RM, Rok, Mies)
lbUwaga.Visible = False
lbUwaga.Invalidate()
Catch ex As System.Exception
lbUwaga.Visible = False
lbUwaga.Refresh()
System.Windows.Forms.MessageBox.Show(ex.Message)
End Try
End Sub
Private Sub MainFrm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim spr As String
SpFlag = 0
ZakFlag = 0
WewFlag = 0
Rok = Year(Now)
Mies = Month(Now)
spr = Encrypt(Environment.MachineName.ToUpper + Environment.UserName.ToUpper)
DecimalSep = NumberFormatInfo.CurrentInfo.NumberDecimalSeparator.ToString
DecimalGroupSep = NumberFormatInfo.CurrentInfo.NumberGroupSeparator.ToString
If spr <> My.Settings.check Then
MsgBox("Niezgodna konfiguracja. Ustaw od nowa")
My.Settings.SerwerSrc = ""
My.Settings.SerwerDst = ""
My.Settings.SerwerKlucza = ""
My.Settings.BazaSrc = ""
My.Settings.BazaDst = ""
My.Settings.FolderR_Roboczy = ""
My.Settings.MCsrc = ""
My.Settings.MCdst = ""
My.Settings.Comsrc = ""
My.Settings.Comdst = ""
My.Settings.check = spr
My.Settings.Save()
End If
Timer.Start()
OdswiezDane()
End Sub
Public Sub listuj(ByVal linia As String)
If linia > "" Then
LstWynik.Items.Add(linia)
If Not Tylko_Listing Then
f_out.WriteLine(linia)
End If
If (LstWynik.Items.Count - 1) > 0 Then
LstWynik.TopIndex = Me.LstWynik.Items.Count - 1
Else
LstWynik.TopIndex = 0
End If
Application.DoEvents()
End If
End Sub
Public Function SqlCmd(ByVal sql As String, conn_str As String) As Boolean
Dim wynik As Boolean
wynik = False
Try
Using connection As New SqlClient.SqlConnection(conn_str)
Dim command As New SqlClient.SqlCommand(sql, connection)
connection.Open()
command.ExecuteNonQuery()
wynik = True
End Using
Catch ex As Exception
My.Forms.MainFrm.listuj(ex.Message)
End Try
Return (wynik)
End Function
End Class
@@ -0,0 +1,979 @@
Public Module FunkcjeXL
Const API_VERSION = 20193
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_20193
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
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_20193 With
{
.Wersja = Wersja, ' numer wersji API (20193) 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_20193
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_20193)
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_20193)
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_20193
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_20193
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_20193
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_20193 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_20193
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_20193)
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_20193)
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_20193)
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_20193)
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_20193)
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_20193)
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_20193)
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_20193)
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_20193)
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