-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathspecificni-primeri
executable file
·205 lines (146 loc) · 6.05 KB
/
specificni-primeri
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
#!/bin/bash
#
##
### Čebelca.biz primeri (novi strežnik z davčnimi blagajnami)
##
#
#
# pred pričetkom v datoteko .token vpišite Čebelca.biz API ključ
#
# ukaze pokličete npr. tako:
#
# ./primeri-spec r1 12
#
TOKEN=`cat .token`
CMD=$1
ARG=$2
ARG2=$3
# ugotovimo kater parameter je za vnos davčne št. ker ni required, da bi videli že na podlagi validacije
if [[ $CMD == "p0" ]]; then
curl -v -k \
-u $TOKEN:x \
-d "" \
"https://www.cebelca.biz/API?_r=partner&_m=assure&_x=1"
fi
#>> ['ok',[{'id':1}]]
# zagotovimo partnerja (če točno tak že obstaja pridobi ID partnerja, će še ne ga doda in pridobi ID partnerja)
if [[ $CMD == "p1" && $ARG != "" ]]; then
curl -v -k \
-u $TOKEN:x \
-d "name=Test d.o.o.&street=Velika cesta&postal=1234&city=Ljubljan&vatid=$ARG" \
"https://www.cebelca.biz/API?_r=partner&_m=assure"
fi
#>> ['ok',[{'id':1}]]
#
## naredimo glavo računa preko invoice-sent insert-smart
#
# ta omogoča da namesto id_partner podamo taxnum (vatid) partnerja
#
# (pred davčnimi blagajnami je metoda lahko tudi sama določila št. računa če smo podali "-" za title
# sedaj se št. računa ne določa ob kreiranju ampak se račun "izda" ločeno. takrat se potencialno davčno potrdi in pridobi št. rač.
#
if [[ $CMD == "rs1" && $ARG != "" ]]; then
curl -v -k \
-u $TOKEN:x \
-d "date_sent=22.12.2015&date_to_pay=30.12.2015&date_served=22.12.2015&taxnum=$ARG" \
"https://www.cebelca.biz/API?_r=invoice-sent&_m=insert-smart"
fi
#>> ['ok',[{'id':1}]]
#
## naredimo glavo računa preko invoice-sent insert-smart-2
#
# omogoča naslednje:
# * taxnum je lahko uporabljena namesto id_partner za določanje partnerja, tako vam ni treba voditi stanja naših id-jev partnerjev na svoji strani
# * v id_document_ext lahko definirate externi id računa / naročila in s tem id-jem lahko potem opravljate določene funkcije, kot zabeležite plačilo, predobite PDF, spet prednost v tem da ni treba dodajati tabele npr. pluginu spletni trgovini
# * če računu določite tujo valuto (id_currency) in conv_rate ne določite (ali je 0) ta metoda sama pridobi conv_rate preden doda zapis
# * v prihodnje, lahko bi preprečeval da z istim externim id-jem naredite dva računa
#
if [[ $CMD == "rs2" && $ARG != "" && $ARG2 != "" ]]; then
curl -v -k \
-u $TOKEN:x \
-d "date_sent=22.12.2015&date_to_pay=30.12.2015&date_served=22.12.2015&id_partner=$ARG&id_currency=2&conv_rate=0&id_document_ext=$ARG2" \
"https://www.cebelca.biz/API?_r=invoice-sent&_m=insert-smart-2"
fi
# dodajmo še postavko, da bo kaj plačati (tu ni opcije externega id-je, ker smo id glave ravno dobili s prejšnjim klicem in ga ni treba hraniti)
if [[ $CMD == "rb1" && $ARG != "" ]]; then
curl -v -k \
-u $TOKEN:x \
-d "title=programming service&qty=10&mu=piece&price=120&vat=20&discount=0&id_invoice_sent=$ARG" \
"https://www.cebelca.biz/API?_r=invoice-sent-b&_m=insert-into"
fi
#
## označimo da je račun plačan v celoti (preprostejša metoda kot jo uporablja app, kjer morate vnesti znesek)
#
# poleg navadnega klica, ki ga uporablja app omogoča nasledje
# * namesto id_invoice_sent lahko uporabite externi id, npr. id naročila na vaši strani
# * sam izračuna znesek plačila, tako da vam ni treba to računati na odjemalcu
#
if [[ $CMD == "mp1" && $ARG != "" && $ARG2 != "" ]]; then
curl -v -k \
-u $TOKEN:x \
-d "date_of=22.12.2015&id_invoice_sent=0&id_payment_method=$ARG¬e=no note&&id_invoice_sent_ext=$ARG2" \
"https://www.cebelca.biz/API?_r=invoice-sent-p&_m=mark-paid"
fi
#
## izdajmo račun in opcijsko davčno potrdimo
#
# fiscalize: 1 / 0 ... send to FURS for EOR or not
#
if [[ $CMD == "f1" && $ARG != "" && $ARG2 != "" ]]; then
curl -v -k \
-u $TOKEN:x \
-d "id=$ARG&id_location=7&fiscalize=$ARG2&op-tax-id=12345678&op-name=PRODAJALEC1&test_mode=1" \
"https://www.cebelca.biz/API?_r=invoice-sent&_m=finalize-invoice"
fi
# >> [[{"docnum":"P1-B1-42","eor":"443d18e9-0f0a-48a6-a27d-7fcea373ef88"}]]
#
## izdajmo račun brez davčnega potrjevanja (negotovinski račun) kot v primeru neaktivirane davčne blagajne
#
# če je "title" prazen ga bo program sam nastavil na naslednjo št. glede na zadnjo
# pri tem je treba biti pozoren da si datumi računov sledijo v istem zaporedju kot številke
# če si ne, potem ta metoda ni v redu, saj lahko pride do ponovitev številk
if [[ $CMD == "f2" && $ARG != "" ]]; then # title - ARG2 je lahko ""
curl -v -k \
-u $TOKEN:x \
-d "id=$ARG&title=$ARG2&doctype=0" \
"https://www.cebelca.biz/API?_r=invoice-sent&_m=finalize-invoice-2015"
fi
# >> [[{"new_title":"18-0005"}]]
#
## pridobimo EOR / ZOI / BARCODE računa
#
#
#
if [[ $CMD == "fi1" && $ARG != "" ]]; then
curl -v -k \
-u $TOKEN:x \
-d "id=$ARG" \
"https://www.cebelca.biz/API?_r=invoice-sent&_m=get-fiscal-info"
fi
# >> [[{"id":80,"tax_id":"10217177","operator_tax_id":"12345678","invoice_amount":1440.0,"location_id":"P1","register_id":"B1","zoi_code":"ad3d87a26aab4a6d5a81c8cfae4b2bac","zoi_code_dec":"230275924372432379612582134529131228076","bar_code":"230275924372432379612582134529131228076102171771512240025088","eor_code":"443d18e9-0f0a-48a6-a27d-7fcea373ef88","date_time":"2015-12-24T00:25:08","operator_name":"PRODAJALEC1"}]]
#
## Definiramo poslovni prostoro blagajno (kot v nastavitve / davčne blagajne)
# Če je tip A ali C potem podamo le interno oznako prostora in interno oznako blagajne.
# Pri B se mora podati vse podatke (glej UI)
#
#
if [[ $CMD == "fi1" && $ARG != "" && $ARG2 != "" ]]; then
curl -v -k \
-u $TOKEN:x \
-d "type=C&location_id=$ARG®ister_id=$ARG2" \
"https://www.cebelca.biz/API?_r=sales-location&_m=insert-into"
fi
# vrne ID prostora
# >> [[{"id":6}]]
#
## Potrdimo prostor na FURS / ali testni FURS
# test_mode=1 potrdi na testni furs, potem lahko na testni furs na ta prostor testno potrjujemo tudi račune
#
if [[ $CMD == "fi1" && $ARG != "" && $ARG2 != "" ]]; then
curl -v -k \
-u $TOKEN:x \
-d "id=$ARG&test_mode=$ARG2" \
"https://www.cebelca.biz/API?_r=sales-location&_m=register-at-furs"
fi
# vrne status
# >> [[{"result":"OK","MessageID":"20f04862-bf0c-4ed0-822d-73e1ffc2bb0a"}]]