Integracja Comarch e-sprawozdania

Podobne dokumenty
Zmiany funkcjonalne wprowadzone w Comarch e-sprawozdania w wersji

Comarch e-sklep Sync. wersja

Comarch BI Point Standalone ulotka. Wersja: 6.2

Zmiany funkcjonalne wprowadzone w Comarch e-sprawozdania w wersji

Instrukcja konfiguracji Comarch ERP Altum z komponentem Crystal Reports w wersji

Instrukcja użytkownika Porównywarki cen Liquid

Comarch BI Point Standalone ulotka. Wersja: 6.2

Ulotka. Zmiany w wersji

Comarch B2B Ulotka. Comarch ERP XL / Comarch ERP Altum. Zmiany w wersji

Wprowadzenie do Doctrine ORM

Lista błędów poprawionych w uaktualnieniach Hot Fix. w wersji

Comarch ERP XL Business Intelligence Start. Migracja do wersji 2018

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław r.

w wersji Comarch ERP XL Zmiany techniczne w wersji

Zmiany techniczne wprowadzone w wersji

Lista błędów poprawionych w uaktualnieniach Hot Fix. w wersji

Zmiany funkcjonalne i lista obsłużonych zgłoszeń Comarch DMS

w wersji Comarch ERP XL Zmiany techniczne w wersji

Instrukcja użytkownika. Synchronizacja modułu Płace i Kadry z systemem Comarch ERP XL. Wersja

Migracja Business Intelligence do wersji 11.0

w wersji Comarch ERP XL Zmiany techniczne w wersji

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1

Comarch B2B Ulotka. Comarch ERP XL / Comarch ERP Altum. Zmiany w wersji

Migracja XL Business Intelligence do wersji

Dokumentacja Użytkownika systemu. Google Tag Manager. Wersja

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie

Zmiany techniczne wprowadzone w systemie Comarch CDN XL oraz przygotowanie do konwersji

Migracja Business Intelligence do wersji

Paweł Cieśla. Dokumentacja projektu

Wymagania techniczne. Comarch e-sklep

Comarch ERP XL Business Intelligence Start. Zmiany funkcjonalne wprowadzone w wersji 2013

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie

Comarch B2B Ulotka. Comarch ERP XL / Comarch ERP Altum. Zmiany w wersji 2018

Migracja Business Intelligence do wersji

Pierwsze kroki. Comarch e-sklep

Lista zgłoszeń zrealizowanych w uaktualnieniach Hot Fix w wersji

Ulotka. Zmiany w wersji

Nowy interfejs w wersji 11.0 C8 BETA

Lista zgłoszeń zrealizowanych w uaktualnieniach Hot Fix w wersji

Struktura tabel Obieg Dokumentów NE

Zaawansowane aplikacje WWW - laboratorium

Migracja Business Intelligence do wersji

w wersji Comarch ERP XL Zmiany techniczne w wersji

Zmiany techniczne wprowadzone w wersji

Instrukcja instalacji serwera Microsoft SQL Server 2014 Express. Aktualizacja dokumentu:

Migracja Comarch ERP Altum Business Intelligence do wersji 2019

Migracja Comarch ERP Altum Business Intelligence do wersji

Użytkowanie Web Catalog

Praca z ebay. Dokumentacja Użytkownika Systemu. od wersji

Platforma Informacyjno-Płatnicza PLIP

Nowości SEE Electrical Expert V4R3 Service Pack 3 (4.83A)

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Licencja SEE Electrical zabezpieczona kluczem lokalnym

MVC w praktyce tworzymy system artykułów. cz. 1

Poznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner

1. Opis ogólny. 2. Opis techniczny. 3. Wymagania techniczne

Lista zgłoszeń zrealizowanych w uaktualnieniach Hot Fix w wersji

Nowości SEE Electrical 3D panel Wersja V1R2

NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI. asix. Aktualizacja pakietu asix 4 do wersji 5 lub 6. Pomoc techniczna

Ulotka. Zmiany w wersji

Wdrożenie modułu płatności eservice. dla systemu Zen Cart

Ulotka. Zmiany w wersji Data produkcji wersji: 25 września Wersja

SPECYFIKACJA FUNKCJONALNA OPROGRAMOWANIA 11 marca 2014 XLZEBRAPRINTER

Zmiany funkcjonalne wprowadzone w Comarch e-sprawozdania w wersji

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x

Ulotka. Zmiany w wersji Data produkcji wersji: 26 marca Wersja

Specyfikacja API Runtime BAS 3.0

ESDI. WebService. Wersja 1.2. Strona 1

Copyright 2012 COIG SA Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek

WayBillsWebService. identyfikator kontrahenta, jeśli wartość zwracana jest mniejsza od zera to numer błędu.

Asix.Evo - Uruchomienie aplikacji WWW

iqportal abonencki panel zarządzania

Lista zgłoszeń zrealizowanych w uaktualnieniach Hot Fix w wersji

Metody dostępu do danych

Spis treści. 1. Konfiguracja systemu ewuś Logowanie się do systemu ewuś Korzystanie z systemu ewuś Weryfikacja cykliczna...

Licencja SEE Electrical Free

Ulotka Comarch ERP Klasyka Firma ++ (FPP) wersja 3.82

Instrukcja użytkownika Konfiguracja konta

Budowa aplikacji wielowarstwowych zastosowanie szablonów. Laboratorium 2 Programowanie komponentowe Zofia Kruczkiewicz

Ulotka Comarch ERP Klasyka Płace i Kadry (PIK)

Laboratorium 15: Bazy Danych Tworzenie bazy danych i programowanie elementów nawigacyjnych aplikacji stworzonej przy pomocy technologii dbexpress

Lista zgłoszeń zrealizowanych w uaktualnieniach Hot Fix w wersji

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Lista, Stos, Kolejka, Tablica Asocjacyjna

Centrum Szkoleo w Sochaczewie. Grzegorz Domaoski. MS Access 2010

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Centralny Ośrodek Informatyki Górnictwa S.A. KSOP. Opis formatki Potwierdzenie wykonania badań

Kowalski Marcin Wrocław, dn Jaśkiewicz Kamil Bazy Danych 1 Podstawy Projekt Temat: Baza danych do zarządzania projektami

Aplikacje www laboratorium

Biuletyn techniczny. Korekta nabycia wewnątrzwspólnotowego. Wersja:

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Dokumentacja instalacyjna i konfiguracyjna Aplikacja ADR. Wersja dokumentu 1.0. Strona 1/9

4. Projekt Bazy Danych

asix4 Podręcznik użytkownika BUFOR - drajwer protokołu uniwersalnego Podręcznik użytkownika

1Executive summary Comarch ERP XLBI Wersja:

Podstawy Pentaho Data Integration

Walidacja danych w ASP.NET MVC

Klasy i obiekty cz II

Migracja XL Business Intelligence do wersji

Transkrypt:

Integracja

Spis treści 1 Repozytorium... 3 Konektor... 3 Struktura bazy... 3 1.2.1 Tabela główna sprawozdania... 3 1.2.2 Tabela załączników sprawozdania... 3 Mapowanie struktury na kod.net... 3 1.3.1 Tabela główna sprawozdania... 4 1.3.2 Tabela załączników sprawozdania... 4 2 Lista wykorzystywanych metod... 4 Specyfikacja interfejsu... 4 Wykorzystywane metody... 5 2.2.1 Logowanie... 5 2.2.2 Zarządzanie uprawnieniami użytkowników... 5 2.2.3 Pobranie sprawozdania... 5 2.2.4 Pobranie załącznika... 6 2.2.5 Zestawienia księgowe... 6 Instalacja biblioteki... 6 3 Przykładowy kod... 7 2

1 Repozytorium Konektor Aplikacja może zostać oparta o repozytorium, gdzie będzie przechowywane sprawozdanie finansowe oraz jego załączniki. W dalszym ciągu tej instrukcji będzie mowa o tabelach bazy, chociaż źródło może być dowolne. Biblioteka odpowiedzialna za zarządzanie integracją, czyli odczytem i zapisem odpowiednich informacji z repozytorium, w dalszej części instrukcji będzie umownie nazywana Konektorem. Struktura bazy Miejsce gdzie przechowywane będą odpowiednie informacje pochodzące z aplikacji powinno mieć odpowiednią strukturę. W przypadku tabeli bazy powinna ona wyglądać następująco: 1.2.1 Tabela główna sprawozdania Tabela główna sprawozdania przechowuje podstawowe informacje o sprawozdaniu finansowym jak i samą jego treść PlikXML. Zawiera także plik konfiguracyjny PlikKonfigXML przechowujący ustawienia parametrów sprawozdania. Id [int] IDENTITY(1,1) NOT NULL, Identyfikator NazwaFirmy [varchar](3500) NULL, Nazwa firmy DataDo [int] NULL, Data do kiedy okres sprawozdania DataSporzadzenia [int] NULL, Data sporządzenia Typ [int] NULL, Typ sprawozdania WersjaSchemy [varchar](10) NULL, Wersja schemy Status [int] NULL, Status Aktywny [int] NULL, Czy dokument jest aktywny PlikXml [varbinary](max) NULL, Plik XML zawierający dane sprawozdania PlikKonfigXm [varbinary](max) NULL, Plik konfiguracyjny w postaci XML 1.2.2 Tabela załączników sprawozdania Ze względów wydajnościowych załączniki do sprawozdania finansowe w postaci m.in. dokumentów PDF przechowywane są w oddzielnej tabeli. Id [int] IDENTITY(1,1) NOT NULL, Identyfikator SFNId [int] NULL, Identyfikator sprawozdania finansowego Nazwa [varchar](400) NULL, Nazwa pliku Plik [varbinary](max) NULL, Plik Typ [int] NULL, Typ dokumentu Mapowanie struktury na kod.net Przedstawione wyżej tabele mapowane są na następujące klasy w interfejsie konektora 3

1.3.1 Tabela główna sprawozdania public class FinancialStatementBasic public int Id -> [Id] public string CompanyName -> [NazwaFirmy] public int Active -> [Aktywny] public DateTime DateTo -> [DataDo] public DateTime PreparationDate -> [DataSporzadzenia] public FinancialStatementType FinancialStatementType -> [Typ] public FinancialStatementStatus Status - >[Status] public class FinancialStatement : FinancialStatementBasic public string FileXml - > [PlikXml] public string FileXmlConfig -> [PlikKonfigXml] public string Version -> [WersjaSchemy] 1.3.2 Tabela załączników sprawozdania public class Attachment : AttachmentBasic public byte[] File -> [Plik] public class AttachmentBasic public int Id -> [Id] public int IdFinancialStatementId -> [SFNId] public string FileName -> [Nazwa] public DocumentTypeAttachment DocumentType -> [Typ] 2 Lista wykorzystywanych metod Specyfikacja interfejsu Wszystkie metody wywoływane przez aplikację należą do intefejsu IFinancialStatementRepository_2019_1_0, który należy zaimplementować. Interfejs i definicja poszczególnych klas znajdują się w bibliotece ESprawozdania.Integration.dll 4

Wykorzystywane metody 2.2.1 Logowanie //Metoda do logowania. bool CheckUser(Database database, Company company, User user, string password); //Metoda to weryfikacji NIP-u. bool CheckTaxIdentificationNumber(string taxidentificationnumberkey); //Pobranie klucza z licencją, nie jest konieczne do implementacji. string GetKeyServer(); //Wylogowanie z konektora. bool Logout(); 2.2.2 Zarządzanie uprawnieniami użytkowników //Pobieranie listy dostępnych baz. IList<Database> GetDatebases(); //Pobieranie listy dostępnych baz na podstawie wybranego użytkownika. IList<Database> GetDatebases(User user); //Pobieranie listy użytkowników. IList<User> GetUsers(); //Pobieranie listy użytkowników na podstawie wybranej bazy. IList<User> GetUsers(Database database); //Pobranie nazwy komponentu który zostanie wyświetlony na liście do wyboru. string GetComponentName(); //Pobranie typu logowania, zostały udostępnione trzy sposoby logowania, dostępne są do wyboru LoginType.DatabaseUser, LoginType.UserDatabase, LoginType.DatabaseUserDatabase LoginType GetLoginType(); //Pobieranie listy firm na podstawie bazy. IList<Company> GetCompanies(Database database); 2.2.3 Pobranie sprawozdania //Dodawanie sprawozdania finansowego. int InsertFinancialStatement(FinancialStatement FinancialStatement); //Aktualizacja sprawozdania finansowego. bool UpdateFinancialStatement(FinancialStatement FinancialStatement); //Usunięcie sprawozdania finansowego. 5

bool DeleteFinancialStatement(int idfinancialstatement); //Pobranie sprawozdania finasowego. FinancialStatement GetFinancialStatement(int idfinancialstatement); //Lista wszystkich sprawozdań finansowych(obiekt nie zawiera wszystkich pól tabeli). Dane są wyświetlane na liście sprawozdań finasowych. IList<FinancialStatementBasic> GetFinancialStatements(); 2.2.4 Pobranie załącznika //Pobranie pliku z tabeli z załącznikami, w przykładzie jest to pole Plik. byte[] GetAttachmentFile(int idattachment); //Usunięcie załącznika do sprawozdania finansowego. bool DeleteAttachment(int idattachment); //Dodanie załącznika do sprawozdania finasowego. int InsertAttachment(Attachment attachment); //Aktualizacja załącznika do sprawozdania fiansowego. bool UpdateAttachment(Attachment attachment); 2.2.5 Zestawienia księgowe //Pobranie listy zestawień finansowych które można importować do sprawozdania finansowego. Dane są wyświetlane na liście zestawień. IList<FinancialReport> GetFinancialReports(); //Pobranie zestawienia finansowego które można importować do sprawozdania finansowego. string GetFinancialReport(int idfinancialreport, bool calculate, DateTime periodfrom, DateTime periodto); Instalacja biblioteki Bibliotekę DLL z z zaimplementowanym interfejsem należy umieścić w katalogu Integration, w miejscu gdzie są zainstalowane e-sprawozdania Rys 1. Instalacja nowej biblioteki 6

3 Przykładowy kod Poniżej przykładowa implementacja interfejsu konektora public bool CheckTaxIdentificationNumber(string taxidentificationnumberkey) if (GetFirmaRoot().Frm_NIP == taxidentificationnumberkey) return true; else return false; public bool CheckUser(Database database, Company company, User user, string password) DatabaseManager databasemanager = new DatabaseManager(); string decryptfrowanavalue = encryptionmanager.decrypt(databasemanager.getconnectionstring(database.name )); connectionstring = decryptfrowanavalue.split(':')[1]; if (connectionstring == "") return false; string hash = String.Empty; OpeKarty opekarty; opekarty = dbcontext.opekarty.single(ope => ope.ope_gidnumer == user.id); using (SHA256 passwordsha256 = SHA256.Create()) byte[] crypto = passwordsha256.computehash(encoding.ascii.getbytes(password)); foreach (byte thebyte in crypto) hash += thebyte.tostring("x2"); hash = hash.toupper(); if (opekarty.ope_haslo == hash) return true; else 7

connectionstring = ""; return false; public bool DeleteAttachment(int idattachment) bool wynik = false; SFZalaczniki zalacznik = dbcontext.sfzalaczniki.single(r => r.sfz_id == idattachment); dbcontext.sfzalaczniki.remove(zalacznik); wynik = dbcontext.savechanges() == 0? false : true; dbcontext.dispose(); return wynik; public bool DeleteFinancialStatement(int idfinancialstatement) bool wynik = false; SFNag nagloweksf = dbcontext.sfnag.single(r => r.sfn_id == idfinancialstatement); dbcontext.sfnag.remove(nagloweksf); wynik = dbcontext.savechanges() == 0? false : true; dbcontext.dispose(); return wynik; public byte[] GetAttachmentFile(int idattachment) SFZalaczniki zalacznik = dbcontext.sfzalaczniki.single(r => r.sfz_id == idattachment); return zalacznik.sfz_plik; 8

public IList<Company> GetCompanies(Database database) List<Company> companies = new List<Company>(); Firma firma = GetFirmaRoot(database); Company company = new Company() Name = firma.frm_nazwa1 ; companies.add(company); return companies; public string GetComponentName() return "KONEKTOR PRZYKLADOWY"; public IList<Database> GetDatebases() List<Database> databases = new List<Database>(); DatabaseManager databasemanager = new DatabaseManager(); foreach (string datebasename in databasemanager.getdatabasenameslists()) databases.add(new Database() Name = datebasename ); return databases; public IList<Database> GetDatebases(User user) List<Database> databases = new List<Database>(); DatabaseManager databasemanager = new DatabaseManager(); foreach (string datebasename in databasemanager.getdatabasenameslists()) databases.add(new Database() Name = datebasename ); return databases; public string GetFinancialReport(int idfinancialreport, bool calculate, DateTime periodfrom, DateTime periodto) FinancialReportService frs = new FinancialReportService(connectionString); return frs.getfinancialreport(idfinancialreport, calculate, periodfrom, periodto); 9

public IList<FinancialReport> GetFinancialReports() FinancialReportService frs = new FinancialReportService(connectionString); return frs.getfinancialreports(); public FinancialStatement GetFinancialStatement(int idfinancialstatement) SFNag nagloweksf = dbcontext.sfnag.single(r => r.sfn_id == idfinancialstatement); FinancialStatement financialstatement = CreateFinancialStatementFromSFNag(naglowekSF); financialstatement.attachmentbasic = new List<AttachmentBasic>(); foreach (var attachmentb in dbcontext.sfzalaczniki.select(zal => new zal.sfz_id, zal.sfz_sfnid, zal.sfz_nazwa, zal.sfz_typ ).Where(z => z.sfz_sfnid == idfinancialstatement).tolist()) AttachmentBasic attachmentbasic = new AttachmentBasic(); attachmentbasic.id = attachmentb.sfz_id; attachmentbasic.idfinancialstatementid = idfinancialstatement; attachmentbasic.filename = attachmentb.sfz_nazwa; attachmentbasic.documenttype = (DocumentTypeAttachment)attachmentB.SFZ_Typ; financialstatement.attachmentbasic.add(attachmentbasic); return financialstatement; public IList<FinancialStatementBasic> GetFinancialStatements() List<FinancialStatementBasic> financialstatements = new List<FinancialStatementBasic>(); foreach (SFNag row in dbcontext.sfnag.tolist()) financialstatements.add(createfinancialstatementbasicfromsfnag(row)); return financialstatements; public LoginType GetLoginType() 10

return LoginType.DatabaseUser; public IList<User> GetUsers() return new List<User>(); public IList<User> GetUsers(Database database) List<User> users = new List<User>(); using (Entities dbcontext = new Entities(GetEntityConnectionString(database))) foreach (OpeKarty row in dbcontext.opekarty.where(ope => ope.ope_esprawozdaniafinansowe == 1 && ope.ope_zablokowane < 1).ToList()) users.add(convertopekartytouser(row)); return users; public int InsertAttachment(Attachment attachment) SFZalaczniki zalacznik = new SFZalaczniki(); MapAttachmentToSFZalaczniki(ref zalacznik, attachment); dbcontext.sfzalaczniki.add(zalacznik); dbcontext.savechanges(); dbcontext.dispose(); attachment.id = zalacznik.sfz_id; return zalacznik.sfz_id; public int InsertFinancialStatement(FinancialStatement FinancialStatement) SFNag nagloweksf = new SFNag(); MapFinancialStatementToSFNag(ref nagloweksf, FinancialStatement); dbcontext.sfnag.add(nagloweksf); dbcontext.savechanges(); dbcontext.dispose(); 11

FinancialStatement.Id = nagloweksf.sfn_id; return nagloweksf.sfn_id; public bool UpdateAttachment(Attachment attachment) bool wynik = false; SFZalaczniki zalacznik = dbcontext.sfzalaczniki.single(r => r.sfz_id == attachment.id); MapAttachmentToSFZalaczniki(ref zalacznik, attachment); wynik = dbcontext.savechanges() == 0? false : true; dbcontext.dispose(); return wynik; public bool UpdateFinancialStatement(FinancialStatement FinancialStatement) bool wynik = false; SFNag nagloweksf = dbcontext.sfnag.single(r => r.sfn_id == FinancialStatement.Id); MapFinancialStatementToSFNag(ref nagloweksf, FinancialStatement); List<int> attachmentdatabaseidlist = dbcontext.sfzalaczniki.select(zal => new Id = zal.sfz_id, SFNId = zal.sfz_sfnid ).Where(z => z.sfnid == FinancialStatement.Id).Select(s => s.id).tolist(); List<int> attachmentinterfaceidlist = new List<int>(); foreach (AttachmentBasic attachmentb in FinancialStatement.AttachmentBasic) attachmentinterfaceidlist.add(attachmentb.id); foreach (int id in attachmentdatabaseidlist) if (!attachmentinterfaceidlist.contains(id)) SFZalaczniki sfzalaczniki = dbcontext.sfzalaczniki.single(z => z.sfz_id == id); dbcontext.sfzalaczniki.remove(sfzalaczniki); 12

wynik = dbcontext.savechanges() == 0? false : true; return wynik; public bool Logout() return true; public string GetKeyServer() return ""; 13

COMARCH ERP Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie na nośniku filmowym, magnetycznym lub innym, powoduje naruszenie praw autorskich niniejszej publikacji. Copyright 2019 COMARCH Wszelkie prawa zastrzeżone. 14