kb:kb:dodatni_moduli:modul75_xamlprocs

This is an old revision of the document!


frImpPurInvWiz: Čarobnjak za uvoz SEF računa (VB6)

1. mXamlGetProcedure – glavna razgraničavajuća funkcija

Opis: Ova funkcija služi kao router (usmerivač) koji na osnovu trenutno odabrane procedure (čuva se u moInput(“procedure”)) poziva odgovarajuću mXamlProcedureSEF… funkciju koja generiše XAML prikaz (dinamički interfejs) za tu konkretnu proceduru uvoza.

Ulaz: nema eksplicitne parametre, ali koristi:

  • moInput.Exists(“procedure”) – da li je odabrana neka procedura
  • moInput.CurOption.Value – kod trenutne procedure (npr. “SEFPURIEXSMPL”)

Izlaz: String – XAML kod koji definiše korisnički interfejs za odabranu proceduru. Ako nema odabrane procedure, vraća prazan string.

Pozvane funkcije (u zavisnosti od procedure):

  • mXamlProcedureSEFPURIEXSMPL()
  • mXamlProcedureSEFPURIEXCPLX1()
  • mXamlProcedureSEFPURIMATSMPL()
  • mXamlProcedureSEFPURIMATSTD()
  • mXamlProcedureSEFPURIMATKALK()
  • mXamlProcedureSEFCRNOTFINTARS()
  • mXamlProcedureSEFDENOTFINTARS()

Opis: Generiše interfejs za jednostavan uvoz računa za troškove (bez raspodele na više stavki). Prikazuje se tabela sa poreskim stopama (TaxSubtotal) iz SEF dokumenta. Za svaku stopu se nudi:

  • dugme za mapiranje troška (otvara formu za odabir obračunske strukture, tarife, sektora, projekta…)
  • prikaz već mapiranih podataka (obračunska struktura, vrsta troška, troškovno mesto, analitika, projekat)

Povezane funkcije:

  • mDecodeExpenseMap – učitava prethodno mapiranje za datu šifru
  • OnMapExpenseClick – akcija na dugme za mapiranje

Koristi se za procedure: SEFPURIEXSMPL, SEFPURINVADVPAY

Opis: Generiše interfejs za složeniji uvoz računa za troškove – raspodela po stavkama računa (InvoiceLine), a ne samo po poreskim stopama. Svaka stavka dobija svoj red u tabeli sa:

  • šifrom, opisom, stopom poreza
  • dugmetom za mapiranje troška
  • prikazom obračunske strukture, vrste troška, sektora, analitike, projekta

Razlika u odnosu na SEFPURIEXSMPL: Ova procedura tretira svaku liniju računa zasebno, što omogućava precizniju raspodelu troškova.

Povezane funkcije:

  • mGetSefDocumentLines – vraća kolekciju linija (InvoiceLine ili CreditNoteLine)
  • mDecodeExpenseMap, OnMapExpenseClick

Koristi se za proceduru: SEFPURIEXCPLX1

Opis: Generiše interfejs za pojednostavljeni uvoz računa za robu – mapiranje se vrši na nivou poreskih stopa, a ne pojedinačnih artikala. Korisnik za svaku poresku stopu bira:

  • vrstu artikla, tarifu, šifru, naziv, jedinicu mere

Ključna karakteristika: Ne koriste se pojedinačne stavke računa, već agregirani iznosi po stopama PDV-a.

Povezane funkcije:

  • mDecodeGoodsTaxMap – učitava prethodno mapiranje za datu poresku kategoriju
  • OnMapItemClick – otvara formu za izbor artikla

Koristi se za proceduru: SEFPURIMATSMPL

Opis: Generiše interfejs za standardni uvoz računa za robu – svaka stavka računa (InvoiceLine) se mapira na artikal iz šifarnika. Tabela sadrži:

  • redni broj, šifru, opis, stopu PDV-a, akciju
  • vrstu artikla, tarifu, šifru artikla, opis artikla, jedinicu mere

Povezane funkcije:

  • mGetSefDocumentLines
  • mDecodeGoodsMap – učitava mapiranje za datu šifru artikla
  • OnMapItemClick – odabir artikla

Koristi se za procedure: SEFPURIMATSTD, SEFPURICNRETURNNEW, SEFPURICNASSORT

Opis: Generiše interfejs za uvoz računa koji se vezuje za postojeće prijemnice (kalkulacije). Prikazuje:

  • listu nefakturisanih prijemnica (ili povratnica) dobavljača
  • filter po skladištu i tekstualni filter
  • mogućnost odabira jedne ili više prijemnica
  • zatim vrši verifikaciju (upoređivanje količina, cena, ukupnih iznosa) između računa i odabranih prijemnica

Verifikacija se radi kroz mXamlProcedureSEFPURIMATKALKVerify() koja prikazuje sve neusaglašenosti (nepoznati artikli, viškovi, manjkovi, cene…).

Povezane funkcije:

  • mXamlProcedureSEFPURIMATKALKVerify
  • OnDocumentChecked, OnDocumentAction, OnDocumentLinkClick

Koristi se za procedure: SEFPURIMATKALK, SEFPURICNRETURN

Opis: Generiše interfejs za finansijsko knjižno odobrenje (CreditNote) – mapiranje po poreskim stopama. Svaka poreska stopa dobija red sa:

  • tarifnom grupom
  • obračunskom strukturom
  • iznosom osnovice, PDV-a i ukupno
  • checkbox-om za potvrdu

Takođe se prikazuje i zaglavlje odobrenja (mXamlProcedureSEFCRNOTFINK) gde se bira obračunska struktura i osnov za knjiženje.

Povezane funkcije:

  • mXamlProcedureSEFCRNOTFINK
  • mDecodeExpenseMap – za učitavanje mapiranja po šifri poreske kategorije
  • OnApproveAction – potvrda stavke

Koristi se za proceduru: SEFPURICNFIN

Opis: Veoma slična prethodnoj, ali namenjena za knjižno zaduženje (DebitNote). Takođe koristi:

  • zaglavlje (mXamlProcedureSEFCRNOTFINK)
  • tabelu po poreskim stopama sa tarifom, strukturom, iznosima i potvrdom

Razlika: Umesto moSef.CreditNote koristi moSef.Invoice (jer zaduženje u UBL-u često dolazi kao Invoice sa negativnim predznakom ili posebnom oznakom).

Koristi se za proceduru: SEFPURIDNFIN

Opis: Vraća artikal iz Balans šifarnika (IArtLstItem) koji odgovara datoj liniji SEF računa. Logika:

1. Prvo pokušava da pronađe artikal na osnovu šifre artikla (''oInvLine.Code'') i dobavljača (''kupid'') kroz standardne funkcije (''FSefGetInvoiceLineItem'')
2. Ako ne uspe, čita prethodna mapiranja iz tabele ''kupciizjave'' za dati kod (''brojizjave'')
3. Ako postoji JSON zapis, popunjava ''IArtLstItem'' iz njega (''elid'', ''tarbr'', ''artikal'', ''tip'', ''boja''...)
4. Na kraju proverava da li taj artikal i dalje postoji u bazi i osvežava podatke

Važno: Uvek vraća inicijalizovan objekat. Ako artikal nije pronađen, ElID = 0.

Opis: Slično mDecodeGoodsMap, ali umesto linije računa koristi poresku kategoriju (TaxSubtotal). Ovo se koristi kod pojednostavljenih procedura gde se mapiranje ne vrši po artiklima već po stopama PDV-a.

Logika:

  • Preskače se prvi korak (pretraga po šifri artikla u bazi)
  • Direktno se čita prethodno mapiranje iz kupciizjave gde je ključ šifra poreske kategorije (TaxCategory.Code)
  • Zatim isto osvežavanje iz baze ako elid postoji

Koristi se u proceduri: SEFPURIMATSMPL

Opis: Vraća objekat troška (IUlazFaktSas) za dati ključ (šifra poreske kategorije ili složeni ključ linije računa). Logika:

  • Čita prethodno mapiranje iz tabele kupciizjave gde je brojizjave = sCode
  • Parsira JSON i popunjava svojstva objekta:
    • RacTip – obračunska struktura poreza
    • TarID, TarOpis – tarifa
    • TroNazID, TroOpis – naziv/pojam troška
    • KontoAnalit, KontoSint – konti
    • SekRefID – troškovno mesto
    • SubAnalitika – analitika
    • DocRefID – projekat
  • Takođe postavlja i iznose (Osnovica, PDV, Ukupno) na osnovu tipa procedure (preko mFindTaxSubtotalByCode ili mFindLineByCode)

Koristi se u procedurama: SEFPURIEXSMPL, SEFPURIEXCPLX1, SEFCRNOTFINTARS, SEFDENOTFINTARS

Opis: Generiše zaglavlje za knjižna odobrenja/zaduženja – mali XAML formular sa dva polja:

  • Obračunska struktura (ractip)
  • Osnov za knjiženje (naziv – npr. “Nabavna vrednost”, “Troškovi” itd.)

Korisnik bira vrednosti kroz posebne forme za odabir, a dugmad za brisanje omogućavaju resetovanje.

Opis: Proverava da li se poreska stopa iz SEF dokumenta (iUblPercent) poklapa sa stopom koja je definisana za odabrani artikal ili tarifu u Balansu. Ako se ne poklapa, prikazuje poruku i vraća False. Ako jeste, vraća True.

Upotreba: Poziva se prilikom mapiranja artikla ili troška da bi se sprečilo unošenje pogrešne poreske stope. Preskače se ako je SEF stopa 0 (poresko oslobođenje).

Funkcija Opis
mGetSefDocumentLines() Vraća kolekciju linija (InvoiceLines ili CreditNoteLines) iz trenutnog SEF dokumenta.
mFindTaxSubtotalByCode(sCode) Pronalazi TaxSubtotal objekat po šifri kategorije (npr. “S”, “P”, “Z”).
mFindLineByCode(sCode) Pronalazi InvoiceLine ili CreditNoteLine po kombinaciji šifre i naziva artikla.
mCreateItemVerificationCollections(oArt) Inicijalizuje kolekcije za praćenje grešaka prilikom verifikacije (unknown, foreign, shortage, excess, price, missing).
  • kb/kb/dodatni_moduli/modul75_xamlprocs.1779270867.txt.gz
  • Last modified: 2026/05/20 09:54
  • by milica