====== Billing system - PR & contracting services ======
Modul proširuje Balans procedurama za izradu velikog broja računa (billing) prema pravilima registrovanim u ugovorima.
===== Markeri =====
Sledeći markeri (//markup text//) biće dinamički zamenjeni odgovarajućim vrednostima iz okruženja:
^ Marker ^ Značenje ^ Napomena ^
|''{{cassa_amount}}''|Ukupan iznos uslovnog rabata.|Iznos uslovnog rabata koji se može ostvariti izražen u valuti računa blnsDDIzlaz.TotCassa
.|
|''{{cassa_duedate}}''|Datum do kada treba izvršiti uplatu.|Datum je zadat u //short date// formatu.|
|''{{cassa_percent}}''|Ukupno umanjenje izraženo kroz procenat od početne vredosti.| |
|''{{cassa_reducedtotal}}''|Vrednost računa umanjena za vrednost uslovnog rabata.| Formula je Format(blnsDDIzlaz.Total - blnsDDIzlaz.TotCassa, gcRNDSTD)
.|
|''{{cassa_valuta}}''|Oznaka valute u kojoj su izraženi iznosi kase.| |
|''{{transmonth_srb}}''|Naziv meseca datuma prometa na srpskom.|Postojanje ovog markera automatski prikazuje izbornik datuma prometa na formi za odabir ugovora.|
|''{{transyear_num}}''|Godina (u vidu broja) datuma prometa.|Postojanje ovog markera automatski prikazuje izbornik datuma prometa na formi za odabir ugovora.|
===== Parametri =====
Parametri modula zadaju se JSON objektom u polju **Parametri** definicije modula (''fn_dodatnimoduli'').
==== JSON objekat ====
{
{"procedures":[{JSON "procedure"}]} -- matrica billing procedura sa različitim postavkama obračuna (minimalno jedan član).
}
==== JSON "procedure" ====
[
{
"procedure_id": -- Numerička oznaka procedure - jedinstvena unutar matrice definisanih procedura.
"procedure_name":"" -- Naziv procedure od značaja za korisnika. Ovo će biti prikazano u izborniku.
"procedure_type": -- Identifikator način obračuna iz enumeratora ''BE_BillingProcedures'', služi za rutiranje procedure kroz Billing sistem.
"document_header":{} -- JSON objekat sa definicijom zaglavlja računa-obračuna.
"line_item":{} -- JSON objekat sa definicijom linije računa.
Ukoliko ne postoji ili je prazno linije će se povući prema definiciji u ugovoru. Pri tom važe zamene ''{{}}'' tagova u skladu sa definicijom.
"payment_terms":{} -- JSON objekat sa parametrima sa uslovima plaćanja.
}
]
=== BE_BillingProcedures ===
^Enumerator^Vrednost^Opis|
|beBillingProcDefault| 0 ||
|beBillingProcEnpSrb| 12407080 | Obračun po ugovorima za elektronsku naplatu putarine. Od "Puteva Srbije" se dobija fajl koji služi kao izvor za fakturisanje.|
|beBillingProcSimple| 12411120 | Obračun jednostavnim množenjem cene i količine zadate u ugovoru.|
=== JSON "document_header" ===
{
"issuing_date": "+-wd0" -- Pomeraj u radnim danima datuma izdavanja računa.
Mora početi sa "+" ili "-" što znači da se dani dodaju ili oduzimaju.
Sledi uvek dvokarakterska oznaka:
"wd" označava radni dan; Npr. "+wd1" znači: "Jedan dan nakon današnjeg dana (sutra) pod uslovom da to nisu subota ili nedelja."
Ako jesu uzeće prvi dan nakon njih, tj. ponedeljak."
"ds" bilo koji dan osim nedelje; Npr. "-ds2" znači: "Dva dana pre današnjeg dana (prekjuče) ali ako to nije bila nedelja."
Ako jeste uzeće se dan koji joj prethodi, tj. subota.
"ad" bilo koji dan; Npr. "+ad2" znači: "Dva dana od sada, pa makar to bila i nedelja."
"ld" Poslednji dan meseca; Npr. "-ld1" znači "poslednji dan prethodnog meseca", dok "+ld0" znači "poslednji dan tekućeg meseca".
Nakon toga sledi broj dana/mesci/perioda na šta se već oznaka odnosila.
"transac_date": "+-wd0" -- Tumačenje je isto kao u prethodnom slučaju.
"currency": "contract" -- Id valute se određuje na osnovu ugovora ("contract") ili ...
"tax_struct": "contract" | "" -- Id obračunske strukture:
"contract" - preuzeti iz ugovora,
ractip - Id obračunske strukture za domaće kupce.
}
=== JSON "line_item" ===
{
"id": -- Balans ''elementi.elid'' id artikla koji služi za iskazivanje obračuna.
"stock_id": -- Balans ''skladista.sklid" Id skladišta sa kog će se stavka fakturisati.
"custom_text":"" -- Markup tekst sa aktivnim elementima koji će biti zamenjeni odgovarajućim vrednostima pri izradi linije.
}
=== JSON "payment_terms" ===
{
"cassa":[{}] -- Matrica definicija kasa skonta koje mogu da se dobiju ukoliko se ispune uslovi.
}
== JSON "cassa" ==
{
"id":, -- Id kasa-skonta koji će biti ubačen u račun (referenca na ''defCustData.CusID'')
"due_term":["fixed_day"], -- Način obračuna datuma važenja kase:
-- "fixed_day" znači da je zadat dan u mesecu zaključno sa kojim trba izvršiti zadati procenat da bi se kasa ostvarila.
"due_day":, -- Dan u mesecu zaključno sa kojim treba izvršiti plaćanje.
"due_perc":, -- Procenat plaćanja koji treba da se izvrši za uzimanje kase.
"invoice_comment":"" -- Dodatak na prateći tekst računa u kom se ova kasa iskoristi. Napomena se provlači kroz marker-parser.
}