Files
ImportDokMag/.svn/pristine/c4/c42d693e0b03c0838953a4044ac75be7688dc3b9.svn-base
T

258 lines
9.6 KiB
Plaintext
Raw Normal View History

2026-10-14 11:31:36 +02:00
'Public Module ImportDM
Partial Public Class MainFrm
Public GIDTyp, GIDFirma, GIDNumer, GIDLp As Integer 'aktualny dekret
Public DecimalGroupSep As String
Public DecimalSep As String
Function szukaj_sep(ByVal line As String, ByVal start As Integer, ByVal separator As String) As Integer
Dim i As Integer
szukaj_sep = -1
i = InStr(start, line, separator, CompareMethod.Text)
If i > start Then szukaj_sep = i
End Function
Function ToDate(Data As String) As Date
Dim dd As Date
Dim pos As Integer
Data = Replace(Data, "/", ".")
Data = Replace(Data, "-", ".")
pos = szukaj_sep(Data, 1, ".")
Dim TestAr() As String = Split(Data, ".", , CompareMethod.Text)
If pos = 5 Then 'rrrr.mm.dd
dd = DateSerial(TestAr(0), TestAr(1), TestAr(2))
Else 'dd.mm.rrrr
dd = DateSerial(TestAr(2), TestAr(1), TestAr(0))
End If
ToDate = dd
End Function
Function XL_Date(Data As Date) As Integer
XL_Date = 36161 + CInt(Data.ToOADate())
End Function
Function Liczba(bf As String) As String
Dim w As String
w = Replace(bf, ",", DecimalSep)
w = Replace(bf, ".", DecimalSep)
Liczba = w
End Function
Public Function ZamknijDekret(ByVal CzyZapisac As Boolean) As Boolean
Dim ZamknijDekretZbiorczyInfo As New cdn_api.XLDekretZbiorczyInfo_20182
Dim ret As Boolean = False
With ZamknijDekretZbiorczyInfo
.Wersja = Wersja
.Tryb = 2 'Tryb wystawienia (interakcyjny/wsadowy)
.GIDTyp = GIDTyp 'GID dekretu (zwracanego po dodaniu)
.GIDFirma = GIDFirma '
.GIDNumer = GIDNumer '
.GIDLp = 0 '
End With
XLZamknijDekretZb(ZamknijDekretZbiorczyInfo)
If wynikXL = 0 Then
ret = True
End If
If Not CzyZapisac Then
Dim KasujDekretInfo As New cdn_api.XLDekretInfo_20182
With ZamknijDekretZbiorczyInfo
.Wersja = Wersja
.Tryb = 2 'Tryb wystawienia (interakcyjny/wsadowy)
.GIDTyp = GIDTyp 'GID dekretu (zwracanego po dodaniu)
.GIDFirma = GIDFirma '
.GIDNumer = GIDNumer '
.GIDLp = 0 '
End With
XLKasujDekretzb(KasujDekretInfo)
End If
Return (ret)
End Function
Public Function UtworzDekretZbiorczy(ByVal IdentKsieg As String, ByVal Data As Date, ByVal DokData As Date, ByVal DokZrodlowy As String, ByVal Opis As String, ByVal SumaCT As Decimal, ByVal SumaDT As Decimal) As Boolean
Dim DekretZbiorczyInfo As New cdn_api.XLDekretZbiorczyInfo_20182
listuj(CStr(Now) + "-> Dokument: " + IdentKsieg)
With DekretZbiorczyInfo
.Wersja = Wersja
.Tryb = 2 'Tryb wystawienia wsadowy
.Data = XL_Date(Data) 'Data dekretu
.DataDokumentu = XL_Date(DokData) 'Data dokumentu
.KwotaDebet = Str(SumaDT) + Chr(0) 'Kwota sumaryczna winien
.KwotaCredit = Str(SumaCT) + Chr(0) 'Kwota sumaryczna ma
.NumerDokumentu = DokZrodlowy + Chr(0) 'Numer dokumentu źródłowego
.Dziennik = My.Settings.Seria + Chr(0) 'Dziennik księgowań
.Bufor = "BUFOR" + Chr(0) 'Bufor księgowań (pusty = KG)
.Identyfikator = IdentKsieg 'identyfikator księgowy - numer dokument z Jastrzębia
.Opis = Opis + Chr(0) 'Opis dekretu
End With
XLDodajDekretZb(DekretZbiorczyInfo)
If wynikXL = 0 Then
GIDFirma = DekretZbiorczyInfo.GIDFirma
GIDTyp = DekretZbiorczyInfo.GIDTyp
GIDNumer = DekretZbiorczyInfo.GIDNumer
GIDLp = DekretZbiorczyInfo.GIDLp
Return (True)
Else
GIDFirma = 0
GIDTyp = 0
GIDNumer = 0
GIDLp = 0
Return (False)
End If
End Function
Public Function DodajSkladowy(ByVal DZKNumer As Integer) As Boolean
Dim DekretSkladowyInfo As New cdn_api.XLDekretInfo_20182
Dim ret As Boolean = True
Dim i As Integer
Dim line As String
i = 0
Try
Tamy_ImpDM_Dekr.Fill(DsMain.Tbmy_ImpDM_Dekr, DZKNumer)
BsTbmy_ImpDM_Dekr.ResetBindings(False)
BsTbmy_ImpDM_Dekr.MoveFirst()
While i < BsTbmy_ImpDM_Dekr.Count
With DekretSkladowyInfo
.Kwota = Str(BsTbmy_ImpDM_Dekr.Current("Kwota")) + Chr(0) 'Kwota pomnożona przez 100
.NumerDokumentu = BsTbmy_ImpDM_Dekr.Current("DokZr") + Chr(0) 'Numer dokumentu
.KontoDebet = BsTbmy_ImpDM_Dekr.Current("KontoDebet") + Chr(0) 'Numer konta winien (WN)
.KontoCredit = BsTbmy_ImpDM_Dekr.Current("KontoCredit") + Chr(0) 'Numer konta ma (MA)
.Identyfikator = BsTbmy_ImpDM_Dekr.Current("Identyfikator")
.Opis = BsTbmy_ImpDM_Dekr.Current("Opis") + Chr(0) 'Opis dekretu
End With
line = " Dekret-> " & BsTbmy_ImpDM_Dekr.Current("DokZr")
line = line & " - Wn: " & BsTbmy_ImpDM_Dekr.Current("KontoDebet")
line = line & ", Ma: " & BsTbmy_ImpDM_Dekr.Current("KontoCredit")
line = line & ", kwota: " & Str(BsTbmy_ImpDM_Dekr.Current("Kwota"))
listuj(line)
XLDodajDekretSkl(DekretSkladowyInfo)
If wynikXL <> 0 Then ret = False
BsTbmy_ImpDM_Dekr.MoveNext()
i += 1
End While
Catch ex As System.Exception
ret = False
System.Windows.Forms.MessageBox.Show(ex.Message)
End Try
Return (ret)
End Function
Public Function UtworzNote(ByVal NrDokumentu As String, ByVal Data As Date, ByVal DokData As Date, ByVal DokZrodlowy As String, ByVal tresc As String) As Boolean
Dim NotaInfo As New cdn_api.XLNotaInfo_20182
listuj(CStr(Now) + "-> Nota do: " + NrDokumentu)
With NotaInfo
.GIDTyp = 4145 'nota uproszczona
.DataWprow = XL_Date(Data) 'Data dekretu
.DataDok = XL_Date(DokData) 'Data dokumentu
.DataOper = XL_Date(DokData) 'Data dokumentu
.Seria = My.Settings.Seria + Chr(0)
.NumerDokumentu = NrDokumentu + Chr(0) 'Numer dokumentu źródłowego
.Tresc = tresc + Chr(0) 'treść noty
End With
XLDodajNoteMem(NotaInfo)
If wynikXL = 0 Then
GIDFirma = NotaInfo.GIDFirma
GIDTyp = NotaInfo.GIDTyp
GIDNumer = NotaInfo.GIDNumer
GIDLp = NotaInfo.GIDLp
Return (True)
Else
GIDFirma = 0
GIDTyp = 0
GIDNumer = 0
GIDLp = 0
Return (False)
End If
End Function
Public Function DodajPozycjeNoty(ByVal DZKNumer As Integer, ByVal DataDok As Date, ByVal DataOper As Date, ByVal opis As String) As Boolean
Dim NotaPozycjaInfo As New cdn_api.XLPozycjaNotyInfo_20182
Dim ret As Boolean = True
Dim i, KKS_Wn, KKS_Ma As Integer
Dim Rok As Integer
Dim sql, line, KontoWn, KontoMa As String
i = 0
Try
Tamy_ImpDM_Dekr.Fill(DsMain.Tbmy_ImpDM_Dekr, DZKNumer)
BsTbmy_ImpDM_Dekr.ResetBindings(False)
BsTbmy_ImpDM_Dekr.MoveFirst()
While i < BsTbmy_ImpDM_Dekr.Count
KontoWn = BsTbmy_ImpDM_Dekr.Current("KontoDebet")
KontoMa = BsTbmy_ImpDM_Dekr.Current("KontoCredit")
KKS_Wn = 0
KKS_Ma = 0
Rok = Year(DataDok)
sql = "select KKS_GIDNumer from CDN.Konta where KKS_Rok = " & CStr(Rok) & " and KKS_Konto = '" & KontoWn & "'"
line = GetOneVal(sql, DstConn_str)
If line > "" Then KKS_Wn = CInt(line)
sql = "select KKS_GIDNumer from CDN.Konta where KKS_Rok = " & CStr(Rok) & " and KKS_Konto = '" & KontoMa & "'"
line = GetOneVal(sql, DstConn_str)
If line > "" Then KKS_Ma = CInt(line)
With NotaPozycjaInfo
.Kwota = Str(BsTbmy_ImpDM_Dekr.Current("Kwota")) + Chr(0) 'Kwota
.NumerDokumentu = BsTbmy_ImpDM_Dekr.Current("DokZr") + Chr(0) 'Numer dokumentu
.KKSNumerDT = KKS_Wn
.KKSNumerCT = KKS_Ma
.Opis = BsTbmy_ImpDM_Dekr.Current("Opis") + Chr(0)
.DataDok = XL_Date(DataDok)
.DataOper = XL_Date(DataDok)
End With
line = " pozycja -> " & BsTbmy_ImpDM_Dekr.Current("DokZr")
line = line & " - Wn: " & KontoWn
line = line & ", Ma: " & KontoMa
line = line & ", kwota: " & Str(BsTbmy_ImpDM_Dekr.Current("Kwota"))
listuj(line)
XLDodajPozycjeNotyMem(NotaPozycjaInfo)
If wynikXL <> 0 Then ret = False
BsTbmy_ImpDM_Dekr.MoveNext()
i += 1
End While
Catch ex As System.Exception
ret = False
System.Windows.Forms.MessageBox.Show(ex.Message)
End Try
Return (ret)
End Function
Public Function ZamknijNote(ByVal CzyZapisac As Boolean) As Boolean
Dim NotaInfo As New cdn_api.XLNotaInfo_20182
Dim ret As Boolean = False
With NotaInfo
.Wersja = Wersja
.Tryb = 2 'Tryb wystawienia (interakcyjny/wsadowy)
.GIDTyp = GIDTyp 'GID dekretu (zwracanego po dodaniu)
.GIDFirma = GIDFirma '
.GIDNumer = GIDNumer '
.GIDLp = 0 '
End With
XLZamknijNoteMem(NotaInfo)
If wynikXL = 0 Then
ret = True
End If
If Not CzyZapisac Then
Dim KasNotaInfo As New cdn_api.XLNotaInfo_20182
With KasNotaInfo
.Wersja = Wersja
.Tryb = 2 'Tryb wystawienia (interakcyjny/wsadowy)
.GIDTyp = GIDTyp 'GID dekretu (zwracanego po dodaniu)
.GIDFirma = GIDFirma '
.GIDNumer = GIDNumer '
.GIDLp = 0 '
End With
XLKasujNoteMem(KasNotaInfo)
End If
Return (ret)
End Function
End Class