Skip to content

MAES-Software/MAES.Fiskal2

MAES.Fiskal2

CI/CD Contributors Issues NuGet NuGet Downloads

MAES.Fiskal2 je C# biblioteka za rad s Hrvatskim fiskalnim posrednicima. Cilj projekta je izraditi zajednički sloj za sve posrednike koji podržavaju razmjenu ulaznih i izlaznih e-računa u C#.

Što projekt radi

Projekt definira zajedničku abstraktnu klasu Posrednik koja opisuje osnovne operacije za posrednike fiskalizacije:

  • dohvat ulaznih i izlaznih e-računa
  • dohvat UBL i PDF sadržaja računa
  • evidentiranje UBL dokumenta
  • evidentiranje uplate
  • odbijanje računa

Modeli UlazniERacun i IzlazniERacun predstavljaju minimalne informacije o računu, uključujući OIB partnera, adresu, datum i status.

Trenutno podržani posrednici

U Posrednici/ direktoriju nalaze se konkretne implementacije

Značajka / posrednik Super EPoslovanje Fina Moj eRačun Redok Parra
Dohvat ulaznih e-računa ❌*
Dohvat izlaznih e-računa ❌*
Dohvat UBL sadržaja ❌*
Dohvat PDF sadržaja ❌* ❌**
Evidentiranje UBL dokumenta
Evidentiranje uplate ❌*
Odbijanje računa ❌*

* Fina nema pola ovih api callova ili su na nekom drugom endpointu treba vidit

** MER ne podržava dohvat PDF byte[]

Instalacija

Instalirajte paket iz NuGeta:

dotnet add package MAES.Fiskal2

Ili direktno u datoteku .csproj:

<ItemGroup>
    <PackageReference Include="MAES.Fiskal2" Version="*" />
</ItemGroup>

Inicijalizacija posrednika

using MAES.Fiskal2.Posrednici;

// Super.hr
var posrednik = new Super
{
    IsDev = true,
    BusinessGuid = "...",
    Username = "...",
    Password = "..."
};

// ePoslovanje
var posrednik = new EPoslovanje
{
    IsDev = true,
    OIB = "...",
    Username = "...",
    Password = "..."
};

// Fina
var posrednik = new Fina
{
    IsDev = true,
    OIB = "...",
    Certificate = ...
};

// Moj eRačun
var posrednik = new MER
{
    IsDev = true,
    Username = "...",
    Password = "...",
    OIB = "..."
};

Primjer korištenja posrednika

// dohvat računa u razdoblju zadnjih mj. dana ili dohvati paginacijom zavisi sto posrednik podržava
var racuni = posrednik.UlazniListAsync(DateTime.Now.AddMonths(-1), DateTime.Now);
var racuni = posrednik.UlazniListAsync(1, 20);

var racun = racuni.FirstOrDefault();
if(racun != null)
{
    // dohvat ubl stringa i pdf byteova
    string ubl = await posrednik.UlazniUBLAsync(racun.Id);
    byte[] pdf = await posrednik.UlazniPdfAsync(racun.Id);
}

// evidentiranje računa
posrednik.EvidentirajUBLAsync(ubl);

Neki posrednici nemaju podržane sve metode, neki nemaju sve fieldove u modelima tipa UlazniERacun i sl. Mora se voditi računa o tome...

Dostupne metode

Svaka metoda ima na kraju CancellationToken kojeg je poželjno postaviti, ali se može izostaviti

Abstraktna klasa Posrednik nudi sljedeće metode:

Dohvat ulaznih e-računa

  • Task<IEnumerable<UlazniERacun>> UlazniListAsync(DateTime from, DateTime to)

    Dohvaća popis ulaznih računa u vremenskom rasponu

  • Task<IEnumerable<UlazniERacun>> UlazniListAsync(int page, int pageSize)

    Dohvaća popis ulaznih računa (pagination)

  • Task<string> UlazniUBLAsync(string id)

    Dohvaća XML/UBL sadržaj ulaznog računa

  • Task<byte[]> UlazniPdfAsync(string id)

    Dohvaća PDF sadržaj ulaznog računa

Dohvat izlaznih e-računa

  • Task<IEnumerable<IzlazniERacun>> IzlazniListAsync(DateTime from, DateTime to)

    Dohvaća popis izlaznih računa u vremenskom rasponu

  • Task<IEnumerable<IzlazniERacun>> IzlazniListAsync(int page, int pageSize)

    Dohvaća popis izlaznih računa (pagination)

  • Task<string> IzlazniUBLAsync(string id)

    Dohvaća XML/UBL sadržaj izlaznog računa

  • Task<byte[]> IzlazniPdfAsync(string id)

    Dohvaća PDF sadržaj izlaznog računa

Operacije na računima

  • Task EvidentirajUBLAsync(string ubl)

    Evidentira UBL dokument

  • Task EvidentirajUplatuAsync(string id, DateTime datum, double iznos, NacinPlacanja nacinPlacanja)

    Evidentira uplatu za račun

  • Task OdbijRacunAsync(string id, RazlogOdbijana razlog, string opis)

    Odbija račun

Izgradnja i pakiranje

Za izgradnju upotrijebite:

dotnet build MAES.Fiskal2.csproj --configuration Release

Ako želite napraviti NuGet paket:

dotnet pack MAES.Fiskal2.csproj --configuration Release

Napomene

  • Projekt je u razvoju.
  • Neke metode još nisu implementirane.
  • Trenutna sučelja i model podataka mogu se mijenjati dok se dovršava podrška za različite posrednike.

About

C#/.NET library za rad s Hrvatskim fiskalnim posrednicima. Cilj projekta je izraditi zajednički sloj za posrednike fiskalizacije.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Contributors

Languages