kb:kb:dodatni_moduli:modul75_xamlprocs

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
kb:kb:dodatni_moduli:modul75_xamlprocs [2026/05/20 09:57] – milicakb:kb:dodatni_moduli:modul75_xamlprocs [2026/10/22 09:49] (current) – milica
Line 1: Line 1:
 ====== Čarobnjak za uvoz SEF računa (BLExDocApp.frImpPurInvWiz) ====== ====== Čarobnjak za uvoz SEF računa (BLExDocApp.frImpPurInvWiz) ======
  
-====== 1. mXamlGetProcedure – glavna razgraničavajuća funkcija ======+===== 1. mXamlGetProcedure – glavna razgraničavajuća funkcija =====
  
-**Opis**:   +**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.+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 konkretnu proceduru uvoza.
  
-**Ulaz**: nema eksplicitne parametre, ali koristi: +**Ulaz:** Nema eksplicitne parametre, ali koristi: 
-  * ''moInput.Exists("procedure")'' – da li je odabrana neka procedura +  * ''moInput.Exists("procedure")'' – proverava da li je odabrana procedura. 
-  * ''moInput.CurOption.Value'' – kod trenutne procedure (npr. "SEFPURIEXSMPL")+  * ''moInput.CurOption.Value'' – kod trenutno odabrane procedure (npr. ''SEFPURIEXSMPL'').
  
-**Izlaz**: ''String'' – XAML kod koji definiše korisnički interfejs za odabranu proceduru. Ako nema odabrane procedure, vraća prazan string.+**Izlaz:** ''String'' – XAML kod koji definiše korisnički interfejs za odabranu proceduru. Ako procedura nije odabrana, vraća prazan string.
  
 **Pozvane funkcije** (u zavisnosti od procedure): **Pozvane funkcije** (u zavisnosti od procedure):
Line 18: Line 18:
   * ''mXamlProcedureSEFPURIMATSTD()''   * ''mXamlProcedureSEFPURIMATSTD()''
   * ''mXamlProcedureSEFPURIMATKALK()''   * ''mXamlProcedureSEFPURIMATKALK()''
 +  * ''mXamlProcedureSEFPURIEXKALK()''
   * ''mXamlProcedureSEFCRNOTFINTARS()''   * ''mXamlProcedureSEFCRNOTFINTARS()''
   * ''mXamlProcedureSEFDENOTFINTARS()''   * ''mXamlProcedureSEFDENOTFINTARS()''
Line 23: Line 24:
 ===== 2. mXamlProcedureSEFPURIEXSMPL() ===== ===== 2. mXamlProcedureSEFPURIEXSMPL() =====
  
-**Opis**:   +**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: +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...) +  * 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)+  * Prikaz već mapiranih podataka (obračunska struktura, vrsta troška, troškovno mesto, analitika, projekat).
  
-**Povezane funkcije**: +**Povezane funkcije:** 
-  * ''mDecodeExpenseMap'' – učitava prethodno mapiranje za datu šifru +  * ''mDecodeExpenseMap'' – učitava prethodno mapiranje za datu šifru. 
-  * ''OnMapExpenseClick'' – akcija na dugme za mapiranje+  * ''OnMapExpenseClick'' – akcija na dugme za mapiranje.
  
-**Koristi se za procedure**: ''SEFPURIEXSMPL'', ''SEFPURINVADVPAY''+**Koristi se za procedure:** ''SEFPURIEXSMPL'', ''SEFPURIEXKALK'', ''SEFPURINVADVPAY''. 
 + 
 +**Napomena:** Kod procedure ''SEFPURIEXKALK'' ova funkcija se poziva iz ''mXamlProcedureSEFPURIEXKALK()'', nakon prikaza liste nefakturisanih zavisnih troškova.
  
 ===== 3. mXamlProcedureSEFPURIEXCPLX1() ===== ===== 3. mXamlProcedureSEFPURIEXCPLX1() =====
  
-**Opis**:   +**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: +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 +  * Šifrom, opisom, stopom poreza. 
-  * dugmetom za mapiranje troška +  * Dugmetom za mapiranje troška. 
-  * prikazom obračunske strukture, vrste troška, sektora, analitike, projekta+  * Prikazom obračunske strukture, vrste troška, sektora, analitike, projekta.
  
 **Razlika u odnosu na ''SEFPURIEXSMPL'':**   **Razlika u odnosu na ''SEFPURIEXSMPL'':**  
 Ova procedura tretira svaku //liniju// računa zasebno, što omogućava precizniju raspodelu troškova. Ova procedura tretira svaku //liniju// računa zasebno, što omogućava precizniju raspodelu troškova.
  
-**Povezane funkcije**: +**Povezane funkcije:** 
-  * ''mGetSefDocumentLines'' – vraća kolekciju linija (InvoiceLine ili CreditNoteLine) +  * ''mGetSefDocumentLines'' – vraća kolekciju linija (''InvoiceLine'' ili ''CreditNoteLine''). 
-  * ''mDecodeExpenseMap'', ''OnMapExpenseClick''+  * ''mDecodeExpenseMap'', ''OnMapExpenseClick''.
  
-**Koristi se za proceduru**: ''SEFPURIEXCPLX1''+**Koristi se za proceduru:** ''SEFPURIEXCPLX1''.
  
 ===== 4. mXamlProcedureSEFPURIMATSMPL() ===== ===== 4. mXamlProcedureSEFPURIMATSMPL() =====
  
-**Opis**:  +**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: 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+  * Vrstu artikla, tarifu, šifru, naziv, jedinicu mere.
  
-**Ključna karakteristika**:  +**Ključna karakteristika:**  
 Ne koriste se pojedinačne stavke računa, već agregirani iznosi po stopama PDV-a. Ne koriste se pojedinačne stavke računa, već agregirani iznosi po stopama PDV-a.
  
-**Povezane funkcije**: +**Povezane funkcije:** 
-  * ''mDecodeGoodsTaxMap'' – učitava prethodno mapiranje za datu poresku kategoriju +  * ''mDecodeGoodsTaxMap'' – učitava prethodno mapiranje za datu poresku kategoriju. 
-  * ''OnMapItemClick'' – otvara formu za izbor artikla+  * ''OnMapItemClick'' – otvara formu za izbor artikla.
  
-**Koristi se za proceduru**: ''SEFPURIMATSMPL''+**Koristi se za proceduru:** ''SEFPURIMATSMPL''.
  
 ===== 5. mXamlProcedureSEFPURIMATSTD() ===== ===== 5. mXamlProcedureSEFPURIMATSTD() =====
  
-**Opis**:   +**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: +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 +  * Redni broj, šifru, opis, stopu PDV-a, akciju. 
-  * vrstu artikla, tarifu, šifru artikla, opis artikla, jedinicu mere+  * Vrstu artikla, tarifu, šifru artikla, opis artikla, jedinicu mere.
  
-**Povezane funkcije**: +**Povezane funkcije:** 
-  * ''mGetSefDocumentLines'' +  * ''mGetSefDocumentLines''. 
-  * ''mDecodeGoodsMap'' – učitava mapiranje za datu šifru artikla +  * ''mDecodeGoodsMap'' – učitava mapiranje za datu šifru artikla. 
-  * ''OnMapItemClick'' – odabir artikla+  * ''OnMapItemClick'' – odabir artikla.
  
-**Koristi se za procedure**: ''SEFPURIMATSTD'', ''SEFPURICNRETURNNEW'', ''SEFPURICNASSORT''+**Koristi se za procedure:** ''SEFPURIMATSTD'', ''SEFPURICNRETURNNEW'', ''SEFPURICNASSORT''.
  
 ===== 6. mXamlProcedureSEFPURIMATKALK() ===== ===== 6. mXamlProcedureSEFPURIMATKALK() =====
  
-**Opis**:  +**Opis:**  
 Generiše interfejs za **uvoz računa koji se vezuje za postojeće prijemnice (kalkulacije)**. Prikazuje: Generiše interfejs za **uvoz računa koji se vezuje za postojeće prijemnice (kalkulacije)**. Prikazuje:
-  * listu nefakturisanih prijemnica (ili povratnica) dobavljača +  * Listu nefakturisanih prijemnica (ili povratnica) dobavljača. 
-  * filter po skladištu i tekstualni filter +  * Filter po skladištu i tekstualni filter. 
-  * mogućnost odabira jedne ili više prijemnica +  * 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+  * 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...).+**Verifikacija** se radi kroz ''mXamlProcedureSEFPURIMATKALKVerify()'', koja prikazuje sve neusaglašenosti (nepoznati artikli, viškovi, manjkovi, cene...).
  
-**Povezane funkcije**: +**Povezane funkcije:** 
-  * ''mXamlProcedureSEFPURIMATKALKVerify'' +  * ''mXamlProcedureSEFPURIMATKALKVerify''. 
-  * ''OnDocumentChecked'', ''OnDocumentAction'', ''OnDocumentLinkClick''+  * ''OnDocumentChecked'', ''OnDocumentAction'', ''OnDocumentLinkClick''.
  
-**Koristi se za procedure**: ''SEFPURIMATKALK'', ''SEFPURICNRETURN''+**Koristi se za procedure:** ''SEFPURIMATKALK'', ''SEFPURICNRETURN''.
  
-===== 7. mXamlProcedureSEFCRNOTFINTARS() =====+**Razlika u odnosu na ''SEFPURIEXKALK'':**   
 +''SEFPURIMATKALK'' povezuje SEF račun za robu sa postojećim robnim prijemima i proverava usaglašenost robnih stavki, dok ''SEFPURIEXKALK'' povezuje SEF račun za troškove sa već evidentiranim zavisnim troškovima kalkulacije, bez ponovne raspodele troškova.
  
-**Opis**:   +===== 7. mXamlProcedureSEFPURIEXKALK() ===== 
-Generiše interfejs za **finansijsko knjižno odobrenje** (CreditNote) – mapiranje po **poreskim stopama**. Svaka poreska stopa dobija red sa: + 
-  * tarifnom grupom +**Opis:**   
-  * obračunskom strukturom +Generiše interfejs za **uvoz SEF računa za troškove uz povezivanje sa postojećim zavisnim troškovima kalkulacije**. 
-  * iznosom osnovice, PDV-a i ukupno + 
-  * checkbox-om za potvrdu+Procedura je namenjena situacijama kada je kalkulacija robe već formirana, a zavisni trošak evidentiran, ali još nije povezan sa ulaznom fakturom dobavljača. 
 + 
 +==== 7.1. Prikaz i izbor zavisnih troškova ==== 
 + 
 +  * Prikazuje listu nefakturisanih zavisnih troškova izabranog dobavljača. 
 +  * Za svaki trošak prikazuje objekat, datum prijema, referencu, broj matične kalkulacije i iznos troška sa PDV-om. 
 +  * Omogućava tekstualnu pretragu po referenci troška i broju kalkulacije. 
 +  * Automatski označava trošak čija referenca odgovara broju SEF računa. 
 +  * Korisnik može ručno označiti ili ukloniti jedan ili više troškova. 
 +  * Klikom na broj kalkulacije otvara se odgovarajući dokument. 
 + 
 +==== 7.2. Izvor podataka ==== 
 + 
 +Koristi pogled ''doc_sqlhprijemnefakt'', proširen nefakturisanim zavisnim troškovima. Polje ''f_trosak'' razlikuje zavisne troškove od robnih prijema. 
 + 
 +Za zavisne troškove: 
 +  * ''docid'' – identifikator zavisnog troška (''Troskovi.TroID''). 
 +  * ''link'' – identifikator matične kalkulacije (''Ulaz.UlID''). 
 +  * ''doctip'' – vrsta dokumenta iz ''Troskovi.DocTip''. 
 +  * ''total'' – iznos zavisnog troška (''Troskovi.Suma''). 
 +  * ''totalnds'' – pripadajući PDV (''Troskovi.TotPDV''). 
 + 
 +**Napomena:** Za otvaranje matične kalkulacije koristi se ''UlID'', dok se za povezivanje fakture koristi ''TroID''. 
 + 
 +==== 7.3. Čuvanje izbora i priprema povezivanja ==== 
 + 
 +  * ''moInput("checked")'' – kolekcija izabranih ''TroID'' vrednosti. 
 +  * ''moInput("available_troskovi")'' – kolekcija pripremljenih ''IDocHead'' objekata za povezivanje sa ulaznom fakturom. 
 +  * ''IDocHead'' objekti formiraju se prilikom učitavanja liste, kako bi se izbeglo ponovno čitanje istih podataka iz baze prilikom uvoza. 
 + 
 +Za popunjavanje ''IDocHead'' koriste se sledeća svojstva: 
 +  * ''DocID'' – ''Troskovi.TroID''. 
 +  * ''DocTip'' – ''Troskovi.DocTip''. 
 +  * ''DatDoc'' – datum prijema matične kalkulacije. 
 +  * ''DocBroj'' – broj matične kalkulacije. 
 +  * ''DopPod'' – referenca zavisnog troška. 
 +  * ''Total'' – iznos zavisnog troška (''Troskovi.Suma''), bez dodavanja PDV-a. 
 + 
 +==== 7.4. Mapiranje stavki računa ==== 
 + 
 +Nakon izbora zavisnih troškova poziva se ''mXamlProcedureSEFPURIEXSMPL()'', koja omogućava mapiranje troškova po poreskim kategorijama (''TaxSubtotal''). 
 + 
 +Koristi se postojeći mehanizam mapiranja preko ''OnMapExpenseClick'', uključujući popunjavanje osnovice i PDV-a pre prikaza forme za mapiranje. 
 + 
 +U ''mPrepareMappedExpencesForSaving'' procedura ''SEFPURIEXKALK'' obrađuje se kao ''SEFPURIEXSMPL'', uključujući formiranje: 
 +  * ''taxable_amount'' – poreska osnovica. 
 +  * ''tax_amount'' – iznos PDV-a. 
 + 
 +Mapiranje se čuva standardnim mehanizmom, zajedno sa mapiranjima ostalih procedura za uvoz troškovnih računa. 
 + 
 +==== 7.5. Formiranje ulazne fakture ==== 
 + 
 +U ''IExDocSefProcessIncoming_ImportExpencePurchaseInvoice'' koristi se postojeći postupak: 
 +  * ''mTransToUlFaktHeader'' – prenos zaglavlja SEF računa. 
 +  * ''mTransToUlFaktTrosLines'' – formiranje troškovnih stavki prema mapiranim poreskim kategorijama. 
 +  * ''oDoc.Ulazi.LoadFromIDocHead'' – povezivanje fakture sa izabranim zavisnim troškovima. 
 + 
 +Povezivanje koristi isti mehanizam kao ručni izbor nefakturisanih zavisnih troškova u ulaznoj fakturi. 
 + 
 +**Važno:**   
 +Ne formira se nova kalkulacija, ne preuzimaju se ponovo robne stavke i ne vrši se ponovna raspodela zavisnih troškova. Ulazna faktura povezuje se sa već evidentiranim zavisnim troškovima postojeće kalkulacije. 
 + 
 +==== 7.6. Povezane funkcije ==== 
 + 
 +  * ''mXamlProcedureSEFPURIEXSMPL''. 
 +  * ''OnDocumentChecked'', ''OnDocumentAction'', ''OnDocumentLinkClick''. 
 +  * ''OnMapExpenseClick''. 
 +  * ''mPrepareMappedExpencesForSaving''. 
 +  * ''mTransToUlFaktHeader'', ''mTransToUlFaktTrosLines''. 
 +  * ''IExDocSefProcessIncoming_ImportExpencePurchaseInvoice''. 
 + 
 +**Koristi se za proceduru:** ''SEFPURIEXKALK''. 
 + 
 +===== 8. mXamlProcedureSEFCRNOTFINTARS() ===== 
 + 
 +**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. Takođe se prikazuje i **zaglavlje odobrenja** (''mXamlProcedureSEFCRNOTFINK'') gde se bira obračunska struktura i osnov za knjiženje.
  
-**Povezane funkcije**: +**Povezane funkcije:** 
-  * ''mXamlProcedureSEFCRNOTFINK'' +  * ''mXamlProcedureSEFCRNOTFINK''. 
-  * ''mDecodeExpenseMap'' – za učitavanje mapiranja po šifri poreske kategorije +  * ''mDecodeExpenseMap'' – za učitavanje mapiranja po šifri poreske kategorije. 
-  * ''OnApproveAction'' – potvrda stavke+  * ''OnApproveAction'' – potvrda stavke.
  
-**Koristi se za proceduru**: ''SEFPURICNFIN''+**Koristi se za proceduru:** ''SEFPURICNFIN''.
  
-===== 8. mXamlProcedureSEFDENOTFINTARS() =====+===== 9. mXamlProcedureSEFDENOTFINTARS() =====
  
-**Opis**:   +**Opis:**   
-Veoma slična prethodnoj, ali namenjena za **knjižno zaduženje** (DebitNote). Takođe koristi: +Veoma slična prethodnoj, ali namenjena za **knjižno zaduženje** (''DebitNote''). Takođe koristi: 
-  * zaglavlje (''mXamlProcedureSEFCRNOTFINK'') +  * Zaglavlje (''mXamlProcedureSEFCRNOTFINK''). 
-  * tabelu po poreskim stopama sa tarifom, strukturom, iznosima i potvrdom+  * Tabelu po poreskim stopama sa tarifom, strukturom, iznosima i potvrdom.
  
-**Razlika**:   +**Razlika:**   
-Umesto ''moSef.CreditNote'' koristi ''moSef.Invoice'' (jer zaduženje u UBL-u često dolazi kao Invoice sa negativnim predznakom ili posebnom oznakom).+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''+**Koristi se za proceduru:** ''SEFPURIDNFIN''.
  
-===== 9. mDecodeGoodsMap(oInvLine As IUblDocumentLine) As IArtLstItem =====+===== 10. mDecodeGoodsMap(oInvLine As IUblDocumentLine) As IArtLstItem =====
  
-**Opis**:   +**Opis:**   
-Vraća **artikal iz Balans šifarnika** (''IArtLstItem'') koji odgovara datoj liniji SEF računa. Logika: +Vraća **artikal iz Balans šifarnika** (''IArtLstItem'') koji odgovara datoj liniji SEF računa.
-  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.+**Logika:** 
 +  - Prvo pokušava da pronađe artikal na osnovu šifre artikla (''oInvLine.Code'') i dobavljača (''kupid'') kroz standardne funkcije (''FSefGetInvoiceLineItem''). 
 +  - Ako ne uspe, čita prethodna mapiranja iz tabele ''kupciizjave'' za dati kod (''brojizjave''). 
 +  - Ako postoji JSON zapis, popunjava ''IArtLstItem'' iz njega (''elid'', ''tarbr'', ''artikal'', ''tip'', ''boja''...). 
 +  - Na kraju proverava da li taj artikal i dalje postoji u bazi i osvežava podatke.
  
-===== 10. mDecodeGoodsTaxMap(oTax As TaxSubtotal) As IArtLstItem =====+**Važno:** Uvek vraća inicijalizovan objekat. Ako artikal nije pronađen, ''ElID'' = 0.
  
-**Opis**:  +===== 11. mDecodeGoodsTaxMap(oTax As TaxSubtotal) As IArtLstItem ===== 
 + 
 +**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. 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**: +**Logika:** 
-  * Preskače se prvi korak (pretraga po šifri artikla u bazi) +  * 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'') +  * Direktno se čita prethodno mapiranje iz ''kupciizjave'' gde je ključ šifra poreske kategorije (''TaxCategory.Code''). 
-  * Zatim isto osvežavanje iz baze ako ''elid'' postoji+  * Zatim isto osvežavanje iz baze ako ''elid'' postoji. 
 + 
 +**Koristi se u proceduri:** ''SEFPURIMATSMPL''.
  
-**Koristi se u proceduri**: ''SEFPURIMATSMPL''+===== 12. mDecodeExpenseMap(sCode As String) As IUlazFaktSas =====
  
-===== 11. mDecodeExpenseMap(sCode As String) As IUlazFaktSas =====+**Opis:**   
 +Vraća **objekat troška** (''IUlazFaktSas'') za dati ključ (šifra poreske kategorije ili složeni ključ linije računa).
  
-**Opis**:   +**Logika:** 
-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''.
-  * Čita prethodno mapiranje iz tabele ''kupciizjave'' gde je ''brojizjave'' = ''sCode''+
   * Parsira JSON i popunjava svojstva objekta:   * Parsira JSON i popunjava svojstva objekta:
-    * ''RacTip'' – obračunska struktura poreza +    * ''RacTip'' – obračunska struktura poreza. 
-    * ''TarID'', ''TarOpis'' – tarifa +    * ''TarID'', ''TarOpis'' – tarifa. 
-    * ''TroNazID'', ''TroOpis'' – naziv/pojam troška +    * ''TroNazID'', ''TroOpis'' – naziv/pojam troška. 
-    * ''KontoAnalit'', ''KontoSint'' – konti +    * ''KontoAnalit'', ''KontoSint'' – konti. 
-    * ''SekRefID'' – troškovno mesto +    * ''SekRefID'' – troškovno mesto. 
-    * ''SubAnalitika'' – analitika +    * ''SubAnalitika'' – analitika. 
-    * ''DocRefID'' – projekat +    * ''DocRefID'' – projekat. 
-  * Takođe postavlja i iznose (''Osnovica'', ''PDV'', ''Ukupno'') na osnovu tipa procedure (preko ''mFindTaxSubtotalByCode'' ili ''mFindLineByCode'')+  * Takođe postavlja iznose (''Osnovica'', ''PDV'', ''Ukupno'') na osnovu tipa procedure (preko ''mFindTaxSubtotalByCode'' ili ''mFindLineByCode'').
  
-**Koristi se u procedurama**: ''SEFPURIEXSMPL'', ''SEFPURIEXCPLX1'', ''SEFCRNOTFINTARS'', ''SEFDENOTFINTARS''+**Koristi se u procedurama:** ''SEFPURIEXSMPL'', ''SEFPURIEXKALK'', ''SEFPURIEXCPLX1'', ''SEFCRNOTFINTARS'', ''SEFDENOTFINTARS''.
  
-===== 12. Dodatne pomoćne funkcije =====+===== 13. Dodatne pomoćne funkcije =====
  
-==== 12.1 mXamlProcedureSEFCRNOTFINK() ====+==== 13.1. mXamlProcedureSEFCRNOTFINK() ====
  
-**Opis**:  +**Opis:**  
 Generiše **zaglavlje za knjižna odobrenja/zaduženja** – mali XAML formular sa dva polja: Generiše **zaglavlje za knjižna odobrenja/zaduženja** – mali XAML formular sa dva polja:
-  * Obračunska struktura (''ractip'') +  * Obračunska struktura (''ractip''). 
-  * Osnov za knjiženje (''naziv'' – npr. "Nabavna vrednost", "Troškovi" itd.)+  * 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. Korisnik bira vrednosti kroz posebne forme za odabir, a dugmad za brisanje omogućavaju resetovanje.
  
-==== 12.2 mCheckTaxRates(iUblPercent As Long, oArt As IArtLstItem, oFaktSas As IUlazFaktSas) As Boolean ====+==== 13.2. mCheckTaxRates(iUblPercent As Long, oArt As IArtLstItem, oFaktSas As IUlazFaktSas) As Boolean ==== 
 + 
 +**Opis:**   
 +Proverava da li se **poreska stopa iz SEF dokumenta** (''iUblPercent'') poklapa sa stopom koja je definisana za odabrani artikal ili tarifu u Balansu.
  
-**Opis**:   +Ako se ne poklapa, prikazuje poruku i vraća ''False''. Ako jeste, vraća ''True''.
-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).+**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).
  
-==== 12.3 Ostale često korišćene funkcije ====+==== 13.3. Ostale često korišćene funkcije ====
  
-| Funkcija | Opis | +^ Funkcija ^ Opis ^
-| --- | --- |+
 | ''mGetSefDocumentLines()'' | Vraća kolekciju linija (''InvoiceLines'' ili ''CreditNoteLines'') iz trenutnog SEF dokumenta. | | ''mGetSefDocumentLines()'' | Vraća kolekciju linija (''InvoiceLines'' ili ''CreditNoteLines'') iz trenutnog SEF dokumenta. |
-| ''mFindTaxSubtotalByCode(sCode)'' | Pronalazi ''TaxSubtotal'' objekat po šifri kategorije (npr. "S", "P", "Z"). |+| ''mFindTaxSubtotalByCode(sCode)'' | Pronalazi ''TaxSubtotal'' objekat po šifri kategorije (npr. „S“, „P“, „Z“). |
 | ''mFindLineByCode(sCode)'' | Pronalazi ''InvoiceLine'' ili ''CreditNoteLine'' po kombinaciji šifre i naziva artikla. | | ''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). | | ''mCreateItemVerificationCollections(oArt)'' | Inicijalizuje kolekcije za praćenje grešaka prilikom verifikacije (unknown, foreign, shortage, excess, price, missing). |
  • kb/kb/dodatni_moduli/modul75_xamlprocs.txt
  • Last modified: 2026/10/22 09:49
  • by milica