Wstęp
Zalogowanie użytkownika
{"login":"admin", "pass":"secret"}
odpowiedź w przypadku sukcesu
HTTP/1.1 200 OK
Set-Cookie: sess_ci=k6vb0i7brpb5u6394cl6qde6l99g3887
Content-Type: application/json; charset=utf-8
"k6vb0i7brpb5u6394cl6qde6l99g3887"
POST /auth
Wymagane podanie parametrów:
| Parametr | Opis |
|---|---|
| login | login konta operatora |
| pass | ustalone hasło |
W wyniku zwrócony zostanie identyfikator sesji, w nagłówku ustawione zostanie ciasteczko sess_ci=id_sesji.
Kolejne żądania muszą być wysyłane z autoryzacją - w nagłówku mieć ustawione otrzymane ciasteczko.
Pobranie danych zalogowanego użytkownika
{
"session_id": "e5f0228d53a8b62b7ff27c063d5f2504",
"admin_id": "99",
"admin_login": "test",
"admin_name": "Operator Testowy",
"admin_type": "1",
"admin_firmid": "1",
"firmid": "1"
}
GET /auth
Zwrócone zostaną pola:
| Pole |
|---|
| session_id |
| admin_id |
| admin_login |
| admin_name |
| admin_type |
| admin_firmid |
| firmid |
Dodatkowe parametry GET
Dla każdego zapytania GET podając parametr _fields istnieje możliwość ograniczenia listy pól jakie mają zostać zwrócone. Domyślnie zwracane są wszystkie pola.
Listy GET /
Zapytania GET bez podania identyfikatora zwracają listę rekordów.
Filtrowanie listy realizowane jest przez podanie parametru z nazwą pola i przypisaniem mu szukanej wartości, np. /?name=test
W nawiasach kwadratowych można użyć pozostałych operatorów porównujących:
- lt (<)
- lte (<=)
- gt (>)
- gte (>=)
- ne (!=)
- like - do przeszukiwania tekstu w dowolnym miejscu, np.
?desc[like]=testoznaczaLIKE '%test%' - rlike - do przeszukiwania tekstu, który ma się rozpoczynać od zadanej frazy, np.
?desc[rlike]=testoznaczaLIKE 'test%' - regexp - wyrażenia regularne do przeszukiwania tekstu, np.
?desc[regexp]=[0-9]{9} - in - wymagana jedna z wymienionych po przecinku wartości, np.:
?group[in]=1,2,5
Możliwe jest użycie kilku operatorów dla jednego pola, np.: ?date[gte]=2019-11-01&date[lt]=2019-12-01
Można dodatkowo podać parametry:
- _fields - lista pól rozdzielona przecinkiem jakie mają zostać zwrócone. Domyślna wartość to * (zwracane są podstawowe pola), możliwe jest rozszerzenie listy o powiązane struktury, np.
?_fields=*,ProfileData - _orderby - pole po którym wynik ma zostać posortowany (lub lista pól rozdzielona przecinkiem)
- _order - kolejność sortowania: ASC - rosnąco lub DESC - malejąco
- _limit - maksymalna ilość rekordów jaka ma zostać zwrócona, największy dopuszczalny limit to 1000 (domyślnie)
- _page - numer strony, liczone od 1 (domyślnie pobierana będzie pierwsza strona)
Pobranie danych rekordu GET /id/
Zapytania zwracają dane rekordu w postaci tablicy asocjacyjnej. Klucze - nazwy pól - opisane są osobno dla każdego kontrolera.
Jeżeli zwrócone mają być tylko wybrane pola można użyć parametru _fields z wartością listy pól rozdzielonych przecinkiem (np. /?_fields=name,status). Domyślnie zwracane są wszystkie pola, także struktury powiązane według kluczy obcych.
W przypadku gdy rekord z podanym identyfikatorem nie zostanie znaleziony zwrócona będzie pusta odpowiedź z kodem 204 - HTTP_NO_CONTENT.
TR069
Opis pól
| Pole | Typ | Opis | Edycja - POST / PUT |
|---|---|---|---|
| id | int(11) | unikalne, autonumerowane id rekordu | |
| firmid | int(11) | id firmy === mms.firms.id | |
| userid | int(11) | id klienta/ uzytkownika == users.id | + |
| tr069_acs_id | int(11) | serwer ACS === tr069_acsservers.id | + |
| tr069_model_id | int(11) | model urzadzenia === tr069_models.id | + |
| tr069_profiles_id | int(11) | wybrany profil dla urzadzenia === tr069_profiles.id | + |
| serial | varchar(40) | numer seryjny urzadzenia na opakowaniu | + |
| mac | varchar(20) | adres MAC | + |
| description | varchar(255) | opis / uwagi | + |
| passwd_admin | varchar(80) | haslo do konfiguracji urzadzenia, NULL = pobierz z profilu | + |
| voip_line1_name | varchar(40) | Linia 1 - numer VOIP | + |
| voip_line1_secret | varchar(40) | Linia 1 - haslo | + |
| voip_line2_name | varchar(40) | Linia 2 - numer VOIP | + |
| voip_line2_secret | varchar(40) | Linia 2 - haslo | + |
| version | varchar(80) | wersja oprogramowania ONT | + |
| upgrade_soft | tinyint(1) | zezwolenie na upgrade softu | + |
| creationdate | int(11) | data utworzenia | |
| creatorid | int(11) | id administratora tworzacego rekord === admins.id | |
| moddate | int(11) | data modyfikacji | |
| modid | int(11) | zmodyfikowany przez === admins.id | |
| updated | tinyint(1) | flaga aktualizacji danych: 1= zaktualizowane, wygeneruj nowy plik xml | + |
| customconfig | text | dodatkowe pola konfigurowalne (JSON) - array(name => value) | + |
| ProfileData | array | Dane profilu | |
| ports | array | Lista skonfigurowanych portów | |
| services | array | Skonfigurowane usługi - internet / iptv / voip / bridge | |
| wifi | array | Lista skonfigurowanych sieci WiFi |
+ pole edytowalne
* pole wymagane przy dodawaniu
Pobieranie listy urządzeń
GET /netdevices/tr069_devices/
{
"total": 2,
"list": [
{
"id": "1",
"firmid": "1",
"userid": "0",
"tr069_acs_id": "1",
"tr069_model_id": "2",
"tr069_profiles_id": "1",
"serial": "QXNN1I8000683",
"mac": "58:D5:6E:9E:D7:84",
"description": "aaa",
"passwd_admin": "secret12",
"voip_line1_name": "",
"voip_line1_secret": "",
"voip_line2_name": "",
"voip_line2_secret": "",
"version": "",
"upgrade_soft": "1",
"creationdate": "1571058198",
"creatorid": "53",
"moddate": "1571666315",
"modid": "53",
"updated": "0",
"customconfig": [],
"ProfileData": {
"id": "1",
"firmid": "1",
"tr069_model_id": "2",
"name": "Test",
"sipproxy": "",
"lan_network": "",
"lan_dhcpstart": "",
"lan_dhcpend": "",
"passwd_admin": "",
"ports": "4",
"ports_wifi": "1",
"ports_internet": "1",
"wifi_essid_template": "",
"wifi_security": "-",
"wifi_password_length": "0",
"customconfig": [],
"ports_all": 5
},
"ports": {
"1": {
"service": "internet",
"tr069_ports_id": "1",
"vlan": null,
"vlan_active": "",
"vlan_description": "-"
},
"2": {
"service": ""
},
"3": {
"service": ""
},
"4": {
"service": ""
}
},
"services": {
"internet": {
"id": "1",
"tr069_deviceid": "1",
"service": "internet",
"ports": [
"1"
],
"vlan": null,
"nodeid": "0",
"protocol": "bridge",
"active": 1,
"AddressIP": "",
"pppoe_login": "",
"pppoe_password": "",
"vlan_network": "",
"vlan_active": "",
"vlan_description": "-"
}
},
"wifi": [
{
"id": "1",
"tr069_deviceid": "1",
"tr069_ports_id": "0",
"wifi_essid": "",
"wifi_security": "-",
"wifi_password": "",
"vlan": "",
"service": ""
}
]
},
{
"id": "2",
"firmid": "1",
"userid": "0",
"tr069_acs_id": "0",
"tr069_model_id": "0",
"tr069_profiles_id": "0",
"serial": "",
"mac": "",
"description": "",
"passwd_admin": null,
"voip_line1_name": "",
"voip_line1_secret": "",
"voip_line2_name": "",
"voip_line2_secret": "",
"version": "",
"upgrade_soft": "1",
"creationdate": "0",
"creatorid": "0",
"moddate": "0",
"modid": "0",
"updated": "0",
"customconfig": [],
"ProfileData": null,
"ports": [],
"services": [],
"wifi": []
}
]
}
Pobranie danych urządzenia o wskazanym id
GET /netdevices/tr069_devices/{id}
{
"id": "9999",
"firmid": "1",
"userid": "0",
"tr069_acs_id": "1",
"tr069_model_id": "2",
"tr069_profiles_id": "1",
"serial": "QXNN1I8000683",
"mac": "58:D5:6E:9E:D7:84",
"description": "aaa",
"passwd_admin": "secret12",
"voip_line1_name": "",
"voip_line1_secret": "",
"voip_line2_name": "",
"voip_line2_secret": "",
"version": "",
"upgrade_soft": "1",
"creationdate": "1571058198",
"creatorid": "53",
"moddate": "1571666315",
"modid": "53",
"updated": "0",
"customconfig": [],
"ProfileData": {
"id": "1",
"firmid": "1",
"tr069_model_id": "2",
"name": "Test",
"sipproxy": "",
"lan_network": "",
"lan_dhcpstart": "",
"lan_dhcpend": "",
"passwd_admin": "",
"ports": "4",
"ports_wifi": "1",
"ports_internet": "1",
"wifi_essid_template": "",
"wifi_security": "-",
"wifi_password_length": "0",
"customconfig": [],
"ports_all": 5
},
"ports": {
"1": {
"service": "internet",
"tr069_ports_id": "1",
"vlan": null,
"vlan_active": "",
"vlan_description": "-"
},
"2": {
"service": ""
},
"3": {
"service": ""
},
"4": {
"service": ""
}
},
"services": {
"internet": {
"id": "1",
"tr069_deviceid": "1",
"service": "internet",
"ports": [
"1"
],
"vlan": null,
"nodeid": "0",
"protocol": "bridge",
"active": 1,
"AddressIP": "",
"pppoe_login": "",
"pppoe_password": "",
"vlan_network": "",
"vlan_active": "",
"vlan_description": "-"
}
},
"wifi": [
{
"id": "1",
"tr069_deviceid": "1",
"tr069_ports_id": "0",
"wifi_essid": "",
"wifi_security": "-",
"wifi_password": "",
"vlan": "",
"service": ""
}
]
}
Dodanie urządzenia
POST /netdevices/tr069_devices
Edycja urządzenia
PUT /netdevices/tr069_devices/{id}
Usunięcie urządzenia
DELETE /netdevices/tr069_devices/{id}
E-BOK - pobieranie
Logowanie
POST /ebok/auth
{"login":"kl9999", "pass":"123456"}
odpowiedź w przypadku poprawnego zalogowania
HTTP/1.1 200 OK
Set-Cookie: sess_ci=l40vrm6kvcfdn6tj4etpdsp3h3k239bu
Set-Cookie: authorization=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzZXNzaW9uX2lkIjoibDQwdnJtNmt2Y2ZkbjZ0ajRldHBkc3AzaDNrMjM5YnUiLCJBUElfVElNRSI6MTY5NzM4NzQxN30.YaKaNahhFAo8HAVLJKbbplyKKVjW-oOn47s348K6ZtI
Content-Type: application/json; charset=utf-8
"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzZXNzaW9uX2lkIjoibDQwdnJtNmt2Y2ZkbjZ0ajRldHBkc3AzaDNrMjM5YnUiLCJBUElfVElNRSI6MTY5NzM4NzQxN30.YaKaNahhFAo8HAVLJKbbplyKKVjW-oOn47s348K6ZtI"
Wymagane podanie parametrów:
| Parametr | Opis |
|---|---|
| login | nazwa konta e-bok |
| pass | hasło podstawowe konta |
W wyniku zwrócony zostanie identyfikator sesji, w nagłówku ustawione zostanie ciasteczko authorization.
Kolejne żądania muszą być wysyłane z autoryzacją - w nagłówku mieć ustawione otrzymane ciasteczko.
Reset hasła
POST /ebok/auth/resetpassword/
{"login": "k9999", "email": "kl9999@test.pl"}
odpowiedź w przypadku sukcesu
true
Wymagane podanie parametrów:
| Parametr | Opis |
|---|---|
| login | nazwa konta e-bok |
| email przypisany do konta |
Zmiana hasła
`PUT /ebok/auth/changepassword/
{"pass":"foo", "new_pass":"bar", "confirm_pass":"bar"}
odpowiedź w przypadku sukcesu
true
Wymagane podanie parametrów:
| Parametr | Opis |
|---|---|
| pass | obecne hasło |
| new_pass | nowe hasło |
| confirm_pass | nowe hasło |
Wylogowanie
DELETE /ebok/auth/
Pobranie danych firmy
GET /firms/active/
| Zwracane pola | Opis |
|---|---|
| id | |
| name | pelna nazwa firmy (bez wlasciciela) |
| ownername | nazwa wlasciciela firmy |
| firmsite | pelny adres www strony firmowej |
| nip | nip firmy, w postaci xxx-xxx-xx-xx |
| regon | regon firmy, w postaci xxxxxxxxx |
| krs | numer w rejestrze KRS |
| rpt | numer w rejestrze przedsiebiorcow telekomunikacyjnych |
| rjst | numer w rejestrze jednostek samorzadu terytorialnego |
| invoiceperson | osoba uprawniona do wystawienia faktury |
| bankname | nazwa banku |
| bankaccount | firmowe konto bankowe |
| officetime | godziny pracy biura / kasy |
| owneremail | adres email wlasciciela firmy |
| services | flaga wspoldzielenia uslug z partnerem, 0 - firma glowna, 1 - partner ma tylko wlasne uslugi i taryfy (bez wspoldzielenia), 2 - wspolne uslugi i taryfy z partnerem |
| routers | flaga wspoldzielenia routerow / sieci / adresow ip, 0 - firma glowna, 1 - partner ma tylko wlasne, 2 - firma nadrzedna wspoldzieli z partnerem strukture sieci |
| address_full | |
| email_name | |
| phone | |
| phone_name | |
| url_smalllogo | |
| url_biglogo | |
| url_eboklogo | |
| ebok_rights | |
| speedtest_url |
Pobranie danych zalogowanego użytkownika
GET /ebok/user/
Pobranie salda
GET /ebok/user/balance
{
"id": "10681",
"userno": "712",
"usercode": "kl000712",
"usertype": "1",
"customertype": "2",
"fullname": "0110e12f18ee6f6d3f87 73626141e35854811d17",
"name": "73626141e35854811d17",
"lastname": "0110e12f18ee6f6d3f87",
"address1": "Łódź,4221ee54ee1d847e022d 9 m./pok. 126A,91-851 Łódź",
"address2": "Łódź,Sukiennicza 9 m./pok. 126A,91-851 Łódź",
"bankaccount": "24160010718230000000000712",
"email": "",
"email2": "",
"email3": "",
"email_invoices": "",
"phone1": "",
"phone2": "",
"phone3": "",
"ebok_password_changed": "1",
"accepteddate_rodo": "2023-10-15 19:45:22",
"accepteddate_regulations": "0"
}
Zwrócone zostaną pola:
| Pole |
|---|
| id |
| userno |
| usercode |
| usertype |
| customertype |
| fullname |
| name |
| lastname |
| address1 |
| address2 |
| bankaccount |
| email2 |
| email3 |
| email_invoices |
| phone1 |
| phone2 |
| phone3 |
| ebok_password_changed |
| accepteddate_rodo |
| accepteddate_regulations |
Pobranie danych ostatniej faktury
GET /invoicesheader/last
{
"id": "16130018",
"userid": "10681",
"TrN_NumerPelny": "FV/004547/03/18/I",
"TrN_RazemNetto": "28.46",
"TrN_RazemVAT": "6.54",
"TrN_RazemBrutto": "35.00",
"TrN_DataDok_UTS": "2018-03-01",
"TrN_DataWys_UTS": "2018-03-01",
"TrN_Termin_UTS": "2018-03-15",
"TrN_DataAnulacji_UTS": "0",
"TrN_Bufor": "0",
"TrN_Korekta": "0",
"TrN_KorektaDoID": "0",
"settled": 1,
"settled_left": "0.00"
"no_download": 0
}
Zwrócone zostaną pola:
| Pole |
|---|
| id |
| userid |
| TrN_NumerPelny |
| TrN_RazemNetto |
| TrN_RazemVAT |
| TrN_RazemBrutto |
| TrN_DataDok_UTS |
| TrN_DataWys_UTS |
| TrN_Termin_UTS |
| TrN_DataAnulacji_UTS |
| TrN_Bufor |
| TrN_Korekta |
| TrN_KorektaDoID |
| settled |
| settled_left |
| no_download |
Pobranie faktur od 2021-01-01
GET /invoicesheader/shortlist?trn_datadok_year=2021
Podsumowanie faktur wg filtra
GET /invoicesheader/summary?trn_datadok_year=2021
Lista dostępnych lat dla daty faktury
GET /invoicesheader/values/trn_datadok_year
Słownik dla pola rozliczona na liście faktur
GET /invoicesheader/values/settled
[
"nieopłacona",
"opłacona"
]
Pobranie PDF faktury
(TODO: narazie template pliku)
GET /invoicesheader/{RecordId}/download
Pobranie blankietu do wpłaty
(TODO: narazie template pliku)
GET /invoicesheader/{RecordId}/payform_download
Pobranie wpłat od 2021-01-01
GET /invoicespayments/shortlist?bzp_datadok_year=2021
Podsumowanie wpłat wg filtra
GET /invoicespayments/summary?trn_datadok_year=2021
Lista dostępnych lat dla daty wpłaty
GET /invoicespayments/values/bzp_datadok_year
Harmonogram płatności
GET /internal_invoices/shortlist
Pobranie harmonogramu płatności
GET /internal_invoices/download
Pobranie dat końca umów klienta / lista samych umów
GET /contracts/shortlist
Pobranie listy umów z aneksami
GET /contracts/with_annexes
Pobranie pełnych danych umowy, razem z html
(tymczasowo html szablonu z bazy, uzupełnienie parametrów {XXX} potrwa chwilę dłużej)
GET /contracts/{recordId}
Pobranie listy samych aneksow
GET /annex/shortlist
Pobranie pełnych danych aneksu, razem z html
(tymczasowo html szablonu z bazy, uzupełnienie parametrów {XXX} potrwa chwilę dłużej)
GET /annex/{recordId}
Słowniki dla umów aktywna / zawieszona / zablokowana
GET /contracts/values/active
GET /contracts/values/paused
GET /contracts/values/blocked
GET /annex/values/activated
Pobranie usług klienta
GET /actual_services/shortlist
Adresy IP klienta
GET /nodes/shortlist
{
"total": 1,
"pages": 1,
"list": [
{
"id": "40173",
"ipaddr": "171049364",
"ipaddr_string": "10.50.1.148",
"userid": "10681",
"serverid": "86",
"networkid": "766",
"name": "WOLSKI12545,1",
"mac": "00:27:19:FE:BB:A5",
"upceil": "25600",
"downceil": "40960",
"access": "1"
}
]
}
Szczegóły adresu IP
GET /nodes/{RecordID}
{
"id": "40173",
"firmid": "1",
"name": "WOLSKI12545,1",
"mac": "00:27:19:FE:BB:A5",
"mac2": "00:00:00:00:00:00",
"ipaddr": "171049364",
"ipaddr_dynamic": null,
"userid": "10681",
"serverid": "86",
"networkid": "766",
"locationid": "0",
"contractid": "12545",
"annexid": "0",
"actualctariffstgroupid": "9",
"actualctariffsid": "61571",
"speedstgroupid": "9",
"speedtariffid": "61571",
"before_speedstgroupid": "0",
"before_speedtariffid": "0",
"tariffid": "979",
"netdev": "0",
"port": "0",
"porttype": null,
"portname": "",
"uprate": "12800",
"downrate": "20480",
"upceil": "25600",
"downceil": "40960",
"creationdate": "2010-05-25 09:06:38",
"moddate": "2018-02-01 01:10:50",
"creatorid": "40",
"modid": "0",
"access": "1",
"reserved": "0",
"annexedto": "0",
"todelete": "0",
"todeletedate": "0",
"warning": "0",
"stats": "0",
"showinfo": "0",
"showinfo_code": "DEFAULT",
"supload": "0",
"sdownload": "0",
"voiponly": "0",
"proxyaddress": "w3cache.4web.pl",
"proxyport": "8080",
"proxyactive": "1",
"blockproxy": "0",
"junior": "0",
"onlyjunior": "0",
"limitupceil": "0",
"limitdownceil": "0",
"limituprate": "0",
"limitdownrate": "0",
"monthlimit": "0",
"nightupceil": "25600",
"nightdownceil": "40960",
"nightuprate": "12800",
"nightdownrate": "20480",
"special": "0",
"specialplus": "0",
"qoscheck": null,
"junior_age": "older",
"esecurity": "0",
"pppoe_login": "pppoe10681.hDJ2qh",
"pppoe_password": "j2eg3S",
"servers_core_aliases_id": null,
"ipaddrnat11": null,
"ether_devices_id": "0",
"ether_devices_object_id": "0",
"ether_devices_object_chanell_id": "0",
"pppoe_enforce": "1",
"pppoe_enforce_enabled": "1",
"fullduplex": "0",
"loyality_download_percent": "100",
"loyality_upload_percent": "100",
"loyality_plan_enabled": "0",
"workhour_type": "1",
"workhour_start": "00:00:00",
"workhour_end": "23:59:59",
"workhour_blocked": "0",
"netflow_daily": "0",
"netflow_monthly": "1",
"pppoe_logged": "1",
"hbspammed": "0",
"agent_remoteid": "",
"agent_circutid": "",
"agent_vlan": "0",
"ipaddr_string": "10.50.1.148",
"workhour_type_desc": "włączony tylko pomiędzy",
"NetworkData": {
"id": "766",
"firmid": "1",
"serverid": "86",
"name": "10.50.0.0",
"address": "171048960",
"prefix": "19",
"mask": "255.255.224.0",
"gateway": "10.50.0.1",
"domain": "",
"wins": "",
"tr069_acs_id": "0",
"dhcpstart": "",
"dhcpend": "",
"size": "8192",
"public": "0",
"locationsstatus": "",
"voiponly": "0",
"nettype": "1",
"netoptions": null,
"netprototype": "staticip",
"routed_via": null,
"servers_customer_interfaces_id": "389",
"vlan": null,
"nat_policy": "",
"nat_priv_network": "1",
"servers_core_aliases_id": "0",
"address_ip": "10.50.0.0/19"
},
"ServerData": {
"id": "86",
"type": "bras",
"name": "SE600_BRAS01",
"dns1": "194.63.133.4",
"dns2": "193.239.206.254"
},
"ServiceData": {
"id": "61571",
"firmid": "1",
"stgroupid": "9",
"serviceid": "25",
"tariffid": "979",
"userid": "10681",
"actualcdataid": "10045",
"contractid": "12545",
"annexid": "26908",
"annexedparentid": "54231",
"contractsid": "0",
"annexsid": "175522",
"paymentperiodid": "2",
"paymentperiodname": "miesięcznie",
"pricenetto": "28.46",
"vatid": "6",
"vatrate": "23",
"pricebrutto": "35.00",
"currency": "PLN",
"valorization": "0",
"valorization_date": "0",
"tariffcode": "LACZE40960",
"sww": "",
"servicename": "Dostęp do internetu - FORWEB",
"tariffname": "Łącze 40/25 Mbit/s",
"description": "",
"addinfo": "",
"servicepricenetto": "0.00",
"servicepricebrutto": "0.00",
"servicevatid": "6",
"servicevatrate": "23",
"tariff_pricenetto": "0.00",
"tariff_pricebrutto": "0.00",
"tariffattributesdescription": "Prędkości standardowe: download: 40960 kbps, upload: 25600 kbps; Prędkości nocne: download: 40960 kbps, upload: 25600 kbps; ilość adresów IP: 2 szt.;",
"active": "1",
"activedate": "2018-02-01",
"lastdeactivdate": "0",
"blocked": "0",
"paused": "0",
"pausetimetype": "0",
"pausedpricepercent": "0.00",
"pausestartdate": "0",
"pauseenddate": "0",
"pausereason": "",
"promotion": "0",
"actualparentid": "0",
"promotiontype": "1",
"promotionpricenetto": "0.00",
"promotionpricebrutto": "0.00",
"promotionvatid": "0",
"promotionvatrate": "0",
"promotionprice": "0",
"promotiondatestart": "0",
"promotiondateend": "0",
"promotiontime": "0",
"promotioninvoice": "1",
"testservice": "0",
"teststartdate": "0",
"testenddate": "0",
"teryt_spotid_locationcity": "957650",
"teryt_spotid_locationstreet": "957666",
"teryt_streetid_locationstreet": "21541",
"teryt_nobcid_location": "2175",
"locationstreetname": "Sukiennicza",
"locationstreetno": "9",
"locationblockno": "",
"locationstaircaseno": "",
"locationlocal": "126A",
"locationzip": "91-851",
"locationcity": "Łódź",
"locationcountry": "",
"creatorid": "123",
"modid": "0",
"creationdate": "2018-01-18 15:41:37",
"moddate": "0",
"breakdate": "0",
"expiredate": "0",
"todelete": "0",
"todeletedate": "0",
"deleted": "0",
"location_address": "Łódź,Sukiennicza 9 m./pok. 126A,91-851 Łódź"
}
}
Słownik opcji kontroli rodzicielskiej
GET /nodes/values/workhour_type
{
"1": "włączony tylko pomiędzy",
"2": "wyłączony pomiędzy"
}
Lista kont IPTV
GET /iptv_accounts/shortlist
{
"total": 1,
"pages": 1,
"list": [
{
"id": "2697",
"userid": "17372",
"iptv_program": "METRO",
"status": "active",
"tariffname": "Dostęp do MetroTV",
"count_stbs": "2",
"count_orders": "5",
"total_netto": "73.15",
"total_brutto": "79.00"
}
]
}
Lista aktywnych subskrypcji dla konta (->active) oraz możliwych do aktywacji w taryfie (->available)
Lista aktywnych subskrypcji dla konta (->active) oraz możliwych do aktywacji w taryfie (->available). Pakiety już zamówione są usuwane z listy dostępnych do zamówienia
GET /iptv_accounts/{RecordId}/packages
Lista aktywnych subskrypcji dla konta (ta sama lista zwracana jest wyżej)
GET /iptv_orders/shortlist?iptv_accountid={RecordId}
Biling telefonii stacjonarnej
GET /voip_billing/shortlist?calldate_month=2021-12
Podsumowanie bilingu tel. stacj.
GET /voip_billing/summary?calldate_month=2021-12
Dane mini-bilingu VOIP wg kategorii
GET /voip_billing/summary?_categories=1&calldate_month=2021-12
Słownik rodzajów połączeń
GET /voip_billing/values/dcontext
Słownik statusu połączenia
GET /voip_billing/values/disposition
Słownik dla filtra krajowe / międzynarodowe
GET /voip_billing/values/international
Słownik daty (ostatnie 12 miesiecy)
GET /voip_billing/values/calldate_month
Słownik kategorii tel. stacj.
GET /voip_traffic_categories/shortlist
Lista numerów stacjonarnych klienta (dla słownika w bilingu)
GET /phones/shortlist
Pobranie bilingu ogólnego VOIP
(narazie CSV)
GET /voip_billing/download?calldate_month=2021-12
Pobranie mini-bilingu VOIP
(narazie CSV)
GET /voip_billing/summary_download?calldate_month=2021-12
Biling telefonii mobilnej
GET /mvno_billing/shortlist?calldate_month=2021-12
Podsumowanie bilingu tel. mob.
GET /mvno_billing/summary?calldate_month=2021-12
Słownik daty (ostatnie 12 miesiecy)
GET /mvno_billing/values/calldate_month
Słownik kategorii tel. mob.
GET /mvno_traffic_categories/shortlist
Słownik typów kategorii tel. mob.
GET /mvno_traffic_types/shortlist
Lista numerów MVNO klienta
GET /mobiles/shortlist
Pobranie bilingu ogólnego MVNO
(narazie CSV)
GET /mvno_billing/download?calldate_month=2021-12
Pobranie mini-bilingu MVNO
GET /mvno_billing/summary_download?calldate_month=2021-12
E-BOK - zapisy
Pobranie listy wszystkich tematów kontaktowych
GET /mail_boktopics/
Pobranie tematu dla akcji "przedłuż umowę"
GET /mail_boktopics/action/contract
Pobranie tematu dla akcji "zgłoś błąd"
GET /mail_boktopics/action/apperror
Wysłanie formularza kontaktowego
POST /ebok/contact
{"subject": 3, "body": "Treść wiadomości"}
Zmiana danych karty klienta
PUT /ebok/user
Dostępne pola do edycji: email, email2, email3, email_invoices, phone1, phone2, phone3 Zmienione będą tylko te pola, które zostaną wysłane w body.
{"email":"email@domena.pl", "email_invoices": "email@domena.pl", "phone1": "111111111"}
Pobranie słownika zgód marketingowych
GET /cfg_dataprocess
Pobranie tylko ustawionych zgód marketingowych klienta
GET /users_dataprocess
Pobranie wszystkich zgód marketingowych
GET /ebok/user/dataprocess
Pobranie zgód z ustawionymi wartosciami dla klienta. Zdefiniowane w słowniku ale nie ustawione będą mieć wartości dpvalue = null,
Parametr options informuje o dozwolonych wartościach dla danej zgody. Domyślnie, jeśli puste to akceptowalne są 0 (brak zgody) lub 1 (wyrażona zgoda).
Zapisanie zgód marketingowych
POST /ebok/user/dataprocess
zbiorczo: [{"cdpid": "1", "dpvalue": "1"}, {"cdpid": "2", "dpvalue": "1"}, ...] lub pojedynczo: {"cdpid": "1", "dpvalue": "1"}
Pobranie listy rozpoczętych szybkich płatności klienta
GET /ebok/payments
Pobranie statusu szybkiej płatności z danym {ID}
GET /ebok/payments/{ID}
Pobranie tylko dostępnych kanałów płatności
GET /ebok/payments/channels
Zwrotka 503: {errors: [Płatności online obecnie nie są obsługiwane]} - jeśli w systemie operator płatności nie będzie skonfigurowany lub wystąpi błąd przy inicjowaniu połączenia
Przygotowanie danych do szybkiej płatności
Zwrócenie dostępnych kanałów płatności, listy faktur i danych klienta jakie zostaną przekazane operatorowi płatności (imię, nazwisko, email)
GET /ebok/payments/prepare
Zwrotka 503: {errors: [Płatności online obecnie nie są obsługiwane]} - jeśli w systemie operator płatności nie będzie skonfigurowany lub wystąpi błąd przy inicjowaniu połączenia
Realizacja szybkiej płatności
POST /ebok/payments
Klient musi mieć podany adres email, inaczej api zwróci błąd.
{"channel_id": "tester", "invoices": [1111,1112,...]}
Wysłanie kodu sms-em do podpisania umowy
POST /contracts/{RecordID}/sign
{}
Podpisanie umowy
POST /contracts/{RecordID}/sign
{"pin": "12345678"}
Wysłanie kodu sms-em do podpisania aneksu
POST /annex/{RecordID}/sign
{}
Podpisanie aneksu
POST /annex/{RecordID}/sign
{"pin": "12345678"}
Słownik włączony / zablokowany w godzinach (dla pola workhour_type)
GET /nodes/values/workhour_type
Zmiana ustawień kontroli rodzicielskiej dla adresu IP
PUT /nodes/{RecordID}
{"access": "1", "workhour_type": "1", "workhour_start": "00:00:00", "workhour_end": "23:59:59"}
Aktywacja subskrypcji na pakiet IPTV
POST /iptv_orders
{"iptv_accountid": "", "packageid": "", "iptv_cust_master_pin": ""}
Wysłanie faksu
POST /phones/{RecordID}/web2fax
Pola opcjonalne: faxheader, retries i notify_email Oczekiwana nazwa pola z plikiem: "faxfile" Dopuszczalne rozszerzenia: *.tiff | *.tif | *.pdf | *.jpg | *.jpeg
multipart/form-data Content-Type: application/json {"dst": "423123123", "faxheader": "Nagłówek faksu", "retries": "3", "notify_email": "potwierdzenie_dostarczenia@mail.pl"} Content-Disposition: form-data; name="faxfile"; filename="fax.jpeg" Content-Type: image/jpeg Zawartosc pliku
Pobranie listy złożonych wniosków
GET /ebok/declarations
Ogólne dane ostatniego wniosku dla danej umowy
GET /contracts/{RecordId}/lastdeclaration
Możliwe typy wniosków dla danej umowy
GET /contracts/{RecordId}/declarationtypes
Słownik wszystkich możliwych do złożenia wniosków
GET /ebok/declarations/values/type
Pobranie danych do złożenia wniosku
GET /ebok/declarations/prepare?type=contract_break&type_id=9999
Wymagane parametry: type - rodzaj wniosku wg ww słownika type_id - ID umowy której dotyczy wniosek Zwracane dane: title - tytuł wniosku body - szablon html wniosku, dla contract_break zawiera parametr {expiredate} - data wypowiedzenia umowy reason - lista możliwych powodów rozwiązania umowy
Zapisanie wniosku
POST /ebok/declarations
{"type": "contract_break", "type_id": "9999", "expiredate": "2022-05-01", "reason": "Podpisanie nowej umowy na nowych warunkach"}
W reason jest pole txt - można podać 1 z predefiniowanych powodów lub wpisać własny. Zwrócony zostanie ID którego trzeba użyć do wysłania SMS i podpisania wniosku.
Podpisanie wniosku - wysłanie SMS z kodem PIN
POST /ebok/declarations/{RecordID}/sign
{}
Podpisanie wniosku
POST /ebok/declarations/{RecordID}/sign
{"pin": "12345678"}
Anulowanie wniosku (po podpisaniu nie jest już to możliwe)
DELETE /ebok/declarations/{RecordID}
Zlecenia serwisowe
Opis pól
| Pole | Typ | Opis | Edycja - POST / PUT |
|---|---|---|---|
| id | int(11) | unikalne, autonumerowane id rekordu | |
| firmid | int(11) | id firmy === mms.firms.id | |
| userid | int(11) | id klienta / uzytkownika === mms.users.id | + |
| teryt_nobcid | int(11) | id lokalizacji wg TERYT == teryt_nobc.nobcid | + |
| globaldamageid | int(11) | id usterki globalnej (zbiorczej) === mms.globaldamages.id | + |
| status | enum('0','1','2','3','4','5','6','7') | status usterki, 1 - nowa, 2 - nierozpoczeta, 3 - rozpoczeta, 4 - niezakonczona, 5 - zakonczona, 6 - zamknieta, 7 - zamknieta i rozliczona (faktura) | + |
| priorityid | int(11) | id priorytetu usterki === mms.dictionaries.id dla mms.dictionaries.type=2 | + |
| dictionaryid | int(11) | id slownika usterki === mms.dictionaries.id dla mms.dictionaries.type=3 | + |
| damageno | int(11) | numer usterki (numeracja mms.damages.damageno/mms.damages.month/mms.damages.year) | + |
| month | tinyint(4) | miesiac usterki (do numeracji) | + |
| year | year(4) | rok usterki (do numeracji) | + |
| damagedate | int(11) | pelna data usterki | + |
| fixtype | enum('1','2') | flaga pomocy telefonicznej (natychmiastowej z zamknieciem awarii), 1,0 - usterka normalna z historia, 2 - usterka rozwiazana telefonicznie | + |
| payable | enum('0','1') | flaga usterki platnej (np na prosbe klienta) z wystawieniem faktury, 1 - platna, 0 - bezplatna | + |
| invoiceid | int(11) | id planu wygenerowanego planu platnosci (faktura za naprawe awarii) | + |
| netto | decimal(15,2) | sumaryczna kwota (wartosc) netto za naprawe awarii, wartosc w PLN | + |
| vat | tinyint(4) | wartosc stawki vat | + |
| vatid | int(11) | id vatu == mms.vatrates.id | + |
| vatvalue | decimal(15,2) | sumaryczna kwota (wartosc) vat za naprawe awarii, wartosc w PLN | + |
| brutto | decimal(15,2) | sumaryczna kwota (wartosc) brutto za naprawe awarii, wartosc w PLN | + |
| varchar(150) | adres email klienta na ktory idzie powiadomienie o zakonczeniu uslugi serwisowej | + | |
| email_content | longtext | tresc maila, ktory idzie do klienta po zakonczeniu uslugi serwisowej | + |
| description | longtext | opis zgloszenia usterki (pokazany w ebok) / przy edycji - wpis do historii zlecenia | + |
| affectedip | array | lista adresow ip, ktorych dotyczyla awaria | + |
| affectedadreses | array | lista lokalizacji, ktorych dotyczyla awaria | + |
| creatorid | int(11) | id administratora tworzacego rekord === mms.admins.id | |
| creationdate | int(11) | data utworzenia rekordu (int timestamp) | |
| moddate | int(11) | id administratora ostatnio modyfikujacego rekord === mms.admins.id | |
| modid | int(11) | data ostatniej modyfikacji rekordu (int timestamp) | |
| fixstartdate | int(11) | data rozpoczecia naprawy awarii (int timestamp) | + |
| fixfinishdate | int(11) | data i czas zakonczenia prac nad usunieciem awarii (int timestamp) | + |
| closetime | int(11) | data zamkniecia usterki (int timestamp) | + |
| closeid | int(11) | id administratora zamykajacego usterke === mms.admins.id | + |
| showdescr | enum('0','1') | flaga pokazania informacji oraz historii awarii w ebok (podglad dla klienta), 1 - tak (klient widzi tresc zgloszenia i rozwiazania), 0 - nie (klient widzi tylko zgloszenie) | + |
| servicedescription | longtext | opis serwisowy (widoczny jedynie dla administratorow / pracownikow) | + |
| notify_firmpositions_id | int(11) | wybrany dzial, na ktorego adres email beda przychodzic powiadomienia o kazdym nowym wpisie w awarii | + |
| OverdueStatus | boolean | TRUE jeśli zlecenie jest przeterminowane | |
| Admins | array of arrays | lista operatorów powiadomionych o zleceniu, klucze: adminid, responsible, name, email, firmphone | + |
| AdminsResponsible | array | lista operatorów odpowiedzialnych za zlecenie - skrócona lista Admins gdzie responsible=1 | + |
| Procedures | array of arrays | lista wykonanych procedur podczas przyjmowania zlecenia, klucze: name, result | + |
| Services | array of arrays | lista usług których dotyczy zlecenie | + |
| sendmail | int | 1=powiadomienie mailowe dla klienta o zmianie statusu usługi serwisowej, wymagane ustawienie pola email przy przyjmowaniu zgłoszenia | + |
| history_entry | longtext | Wpis do dodania do historii zlecenia | + |
| GlobalDamageData | array | Dane usterki globalnej lub null jeśli niepowiązana | |
| NewHistory | int(1) | 1= Dane zlecenie ma nieprzeczytane wpisy w historii dla aktualnie zalogowanego operatora |
+ pole edytowalne
* pole wymagane przy dodawaniu
GET /damages/
Pobranie listy urządzeń.
Dodatkowe parametry GET
Przykłady:
Pobranie zleceń przypisanych do operatora 99
https://api.system-dev.4web.pl/damages/?Admins=99Pobranie zleceń aktywnych - ze statusem 1, 2, 3 lub 4
https://api.system-dev.4web.pl/damages/?status[in]=1,2,3,4Pobranie zleceń klienta 9999
https://api.system-dev.4web.pl/damages/?userid=9999
Odpowiedź:
{
"total": 3,
"list": [
{
"id": "53185",
"firmid": "1",
"userid": "9999",
"teryt_nobcid": "2312",
"globaldamageid": "0",
"status": "6",
"priorityid": "0",
"dictionaryid": "61",
"damageno": "52",
"month": "1",
"year": "2011",
"damagedate": "1294076372",
"fixtype": "2",
"payable": "0",
"invoiceid": "0",
"netto": "0.00",
"vat": "0",
"vatid": "0",
"vatvalue": "0.00",
"brutto": "0.00",
"email": "",
"email_content": "",
"description": "podano klientowi wszelkie dane niezbedne do ustawienia polaczenia lokalnego",
"affectedip": [
"10.3.0.9"
],
"affectedadreses": [
"Testowa 12 m./pok. 11, 11-233 Łódź"
],
"creatorid": "108",
"creationdate": "1294076372",
"moddate": "0",
"modid": "0",
"fixstartdate": "1294076372",
"fixfinishdate": "1294076372",
"closetime": "0",
"closeid": "0",
"showdescr": "1",
"servicedescription": "",
"notify_firmpositions_id": "0",
"NewHistory": "0"
},
{
"id": "53186",
"firmid": "1",
"userid": "9999",
"teryt_nobcid": "2312",
"globaldamageid": "0",
"status": "6",
"priorityid": "0",
"dictionaryid": "0",
"damageno": "53",
"month": "1",
"year": "2011",
"damagedate": "1294077940",
"fixtype": "1",
"payable": "0",
"invoiceid": "0",
"netto": "0.00",
"vat": "0",
"vatid": "0",
"vatvalue": "0.00",
"brutto": "0.00",
"email": "",
"email_content": "",
"description": "Brak internetu, kontakt- 123123123",
"affectedip": [
"10.3.0.9"
],
"affectedadreses": [
"Testowa 12 m./pok. 11, 11-233 Łódź"
],
"creatorid": "65",
"creationdate": "1294077940",
"moddate": "1294767205",
"modid": "63",
"fixstartdate": "1294134866",
"fixfinishdate": "1294155720",
"closetime": "1294767205",
"closeid": "63",
"showdescr": "0",
"servicedescription": "nie widac nikogo na Testowej 12",
"notify_firmpositions_id": "0",
"NewHistory": "0"
},
{
"id": "54644",
"firmid": "1",
"userid": "9999",
"teryt_nobcid": "2312",
"globaldamageid": "0",
"status": "6",
"priorityid": "0",
"dictionaryid": "0",
"damageno": "506",
"month": "2",
"year": "2011",
"damagedate": "1297764540",
"fixtype": "1",
"payable": "0",
"invoiceid": "0",
"netto": "0.00",
"vat": "0",
"vatid": "0",
"vatvalue": "0.00",
"brutto": "0.00",
"email": "",
"email_content": "",
"description": "brak internetu - kontakt 123123123",
"affectedip": [
"10.3.0.9"
],
"affectedadreses": [
"Testowa 12 m./pok. 11, 11-233 Łódź"
],
"creatorid": "108",
"creationdate": "1297764590",
"moddate": "1297787165",
"modid": "110",
"fixstartdate": "1297787153",
"fixfinishdate": "1297788900",
"closetime": "1297787165",
"closeid": "110",
"showdescr": "0",
"servicedescription": "nie widac klienta na sieci - wg relacji klienta co chwile laczy i rozlacza polaczenie lokalne (czerwony krzyzyk) - poprosilem zeby klient podlaczyl jakis inny komputer - sprawdzi czy problem wystepuje na innym kompie i da znac - prosba o weryfikacje",
"notify_firmpositions_id": "0",
"NewHistory": "0"
}
]
}
GET /damages/id/
Pobranie danych zlecenia serwisowego o wskazanym id, np. dla 99999:
https://api.system-dev.4web.pl/damages/99999/
Odpowiedź:
{
"id": "99999",
"firmid": "1",
"userid": "9999",
"teryt_nobcid": "2312",
"globaldamageid": "0",
"status": "6",
"priorityid": "0",
"dictionaryid": "61",
"damageno": "52",
"month": "1",
"year": "2011",
"damagedate": "1294076372",
"fixtype": "2",
"payable": "0",
"invoiceid": "0",
"netto": "0.00",
"vat": "0",
"vatid": "0",
"vatvalue": "0.00",
"brutto": "0.00",
"email": "",
"email_content": "",
"description": "podano klientowi wszelkie dane niezbedne do ustawienia polaczenia lokalnego",
"affectedip": [
"10.3.0.9"
],
"affectedadreses": [
"Testowa 12 m./pok. 11, 11-233 Łódź"
],
"creatorid": "108",
"creationdate": "1294076372",
"moddate": "0",
"modid": "0",
"fixstartdate": "1294076372",
"fixfinishdate": "1294076372",
"closetime": "0",
"closeid": "0",
"showdescr": "1",
"servicedescription": "",
"notify_firmpositions_id": "0",
"Admins": [],
"Procedures": [
{
"procedureid": "1",
"name": "Widać klienta komputer/router/rgw/bramkę VoIP?",
"result": "2",
"result_desc": "Nie"
},
{
"procedureid": "2",
"name": "Widać innych na bloku?",
"result": null,
"result_desc": "Nie sprawdzono"
},
{
"procedureid": "3",
"name": "Widać radio/switch?",
"result": null,
"result_desc": "Nie sprawdzono"
},
{
"procedureid": "4",
"name": "Widać stację bazową?",
"result": null,
"result_desc": "Nie sprawdzono"
},
{
"procedureid": "5",
"name": "Restartowano urządzenia?",
"result": "1",
"result_desc": "Tak"
},
{
"procedureid": "8",
"name": "Ustawienia IP/PPPoE poprawne?",
"result": null,
"result_desc": "Nie sprawdzono"
},
{
"procedureid": "6",
"name": "Poproszono o restart k.sieciowej?",
"result": "1",
"result_desc": "Tak"
},
{
"procedureid": "7",
"name": "Sprawdzono numer kontaktowy?",
"result": "1",
"result_desc": "Tak"
},
{
"procedureid": "9",
"name": "Klient prosi o kontakt przed zamknięciem awarii?",
"result": null,
"result_desc": "Nie sprawdzono"
}
],
"Services": [
"9,19194"
],
"contractid": "11422",
"OverdueStatus": false
}
POST /damages/
Dodanie zlecenia serwisowego
Treść żądania POST:
{
"userid":9999,
"description":"usterka testowa",
"servicedescription":"opis zlecenia",
"fixtype":1,
"priorityid":0,
"dictionaryid":0,
"Services":["9,19194"],
"Procedures":[{"procedureid":1, "result":2}, {"procedureid":4, "result":2}, {"procedureid":7, "result":1}],
"payable":0
}
Odpowiedź - ID dodanego zlecenia
71778
PUT /damages/id/
Edycja zlecenia serwisowego
Po udanym wykonaniu operacji w odpowiedzi jest wartość true:
true
Przykłady żądań POST:
- Przypisanie operatorów - zlecenie nierozpoczęte (status => 2)
{
"status": 2,
"Admins": [50,51,52],
"notify_firmpositions_id": 2,
"history_entry": "przypisano do serwisu"
}
- Rozpoczęcie obsługi zlecenia, wybranie osób odpowiedzialnych za zlecenie (status => 3)
{
"status": 3,
"Admins": [50, 51, 52],
"AdminsResponsible": [50, 51],
"fixstartdate": "2020-02-20 13:30:00",
"fixfinishdate": "2020-02-21 14:30:00",
"history_entry": "wybranie osób odpowiedzialnych"
}
- Zaplanowanie czasu wykonania zlecenia - zlecenie niezakończone (status => 4)
{
"status": 4,
"history_entry": "potrzebna rekonfiguracja rutera",
"fixfinishdate": "2020-02-21 15:30:00"
}
- Zakończenie zlecenia (status => 5)
{
"status": 5,
"history_entry": "konfiguracja rutera"
}
- Zamknięcie zlecenia (status => 6)
{
"status": 6,
"history_entry": "zlecenie zamknięte, wszystko działa"
}
POST /damages/id/assignadmins
Zmiana przypisanych operatorów
POST:
{
"Admins": [50, 51, 52],
"AdminsResponsible": [50, 51]
}
POST /damages/id/setglobal
Przypisanie do awarii globalnej
POST:
{
"globaldamageid": 99
}
DELETE /damages/id/setglobal
Odpięcie od awarii globalnej
DELETE /damages/id/
Usunięcie zlecenia serwisowego. Można wykonać tylko dla nowo utworzonego, nieprzypisanego zlecenia.
Procedury zleceń
Opis parametrów
| Pole | Typ | Opis | Edycja - POST / PUT |
|---|---|---|---|
| id | int(11) | unikalne, autonumerowane id rekordu | |
| firmid | int(11) | id firmy === mms.firms.id | |
| name | varchar(255) | nazwa procedury / czynności | + |
| result_1 | varchar(100) | wynik 1 do wyboru dla procedury | + |
| result_2 | varchar(100) | wynik 2 do wyboru dla procedury | + |
| result_def | varchar(100) | wynik domyslny dla procedury (nic nie wybrano) | + |
| sequence | int(11) | kolejność wyświetlania procedur awarii | + |
| deleted | tinyint(1) | flaga usuniecia procedury |
+ pole edytowalne
* pole wymagane przy dodawaniu
GET /damages_procedures/
Pobranie listy procedur zleceń serwisowych. Domyślnie procedury z ustawioną flagą deleted nie są pobierane.
Dodatkowe parametry GET
GET /damages_procedures/id/
Pobranie danych procedury zlecenia serwisowego o wskazanym id, np. dla 9999:
POST /damages_procedures/
Dodanie procedury
PUT /damages_procedures/id/
Edycja procedury
DELETE /damages_procedures/id/
Usunięcie procedury - ustawiona zostanie flaga deleted.
Historia zlecenia
Opis parametrów
| Pole | Typ | Opis | Edycja - POST / PUT |
|---|---|---|---|
| id | int(11) | unikalne, autonumerowane id rekordu | |
| firmid | int(11) | id firmy === mms.firms.id | |
| damageid | int(11) | id awarii === mms.damages.id | * |
| type | enum('0','1','2','3','4','5','6') | typ rekordu historycznego: 0-nic, 1-zmiana daty usterki, 2-przeniesienie do usterki globalnej, 3-przeniesienie z usterki globalnej, 4-powiadomienie adminow, 5 - ustawienie planowanej daty rozpoczecia naprawy, 6 - zaplanowanie zakonczenia naprawy | |
| status | enum('0','1','2','3','4','5','6','7') | status awarii, 0 - nic (nie ma zastosowania), 1 - nowa, 2 - nierozpoczeta, 3 - rozpoczeta, 4 - niezakonczona, 5 - zakonczona, 6 - zamknieta, 7 - rozliczona (zamknieta i zafakturowana - tylko dla napraw platnych z faktura) | |
| planneddate | int(11) | planowana data rozpoczecia (dla status=2) lub zakonczenia naprawy | + |
| description | longtext | opis / tresc zdarzenia historycznego | + |
| sendmail | text | wyslany e-mail do klienta | + |
| creatorid | int(11) | id administratora tworzacego rekord === mms.admins.id | |
| creationdate | int(11) | data utworzenia rekordu (int timestamp) | |
| NewHistory | int(1) | 1= Wpis nie został jeszcze przeczytany przez aktualnie zalogowanego operatora |
+ pole edytowalne
* pole wymagane przy dodawaniu
GET /damageshistory/
Pobranie listy wpisów dla zlecenia serwisowego
Dodatkowe parametry GET
Przykład - pobranie listy dla zlecenia 9999, posortowanie według daty malejąco:
https://api.system-dev.4web.pl/damageshistory/?damageid=9999&_orderby=creationdate&_order=desc
Odpowiedź:
{
"total": 5,
"list": [
{
"id": "16702",
"firmid": "1",
"damageid": "9999",
"type": "0",
"status": "6",
"planneddate": "0",
"description": "dziala restart radio",
"sendmail": "",
"creatorid": "5",
"creationdate": "1148064594",
"NewHistory": "0"
},
{
"id": "16252",
"firmid": "1",
"damageid": "9999",
"type": "0",
"status": "5",
"planneddate": "0",
"description": "zalogowanie i konfiguracja radio",
"sendmail": "",
"creatorid": "38",
"creationdate": "1147641359",
"NewHistory": "0"
},
{
"id": "16251",
"firmid": "1",
"damageid": "9999",
"type": "0",
"status": "3",
"planneddate": "0",
"description": "",
"sendmail": "",
"creatorid": "38",
"creationdate": "1147641242",
"NewHistory": "0"
},
{
"id": "16250",
"firmid": "1",
"damageid": "9999",
"type": "4",
"status": "2",
"planneddate": "0",
"description": "",
"sendmail": "",
"creatorid": "38",
"creationdate": "1147641201",
"NewHistory": "0"
},
{
"id": "16247",
"firmid": "1",
"damageid": "9999",
"type": "0",
"status": "1",
"planneddate": "0",
"description": "Brak internetu ust.poprawne nie widac apry podjechac jutro po 15",
"sendmail": "",
"creatorid": "38",
"creationdate": "1147595440",
"NewHistory": "0"
}
]
}
GET /damageshistory/id/
Pobranie danych wpisu.
Przykład:
https://api.system-dev.4web.pl/damageshistory/16702/
Odpowiedź:
{
"id": "16702",
"firmid": "1",
"damageid": "9999",
"type": "0",
"status": "6",
"planneddate": "0",
"description": "dziala restart radio",
"sendmail": "",
"creatorid": "5",
"creationdate": "1148064594"
}
POST /damageshistory/
Dodanie wpisu do historii zlecenia
Zawartość POST:
{
"damageid": 9999,
"description": "opis podjętych czynności"
}
Odpowiedź - id dodanego wpisu:
495277
PUT /damageshistory/id/
Edycja wpisu
Zawartość POST:
{
"description": "edycja opisu podjętych czynności"
}
Odpowiedź - true:
true
PUT /damageshistory/id/setread
Oznacz wpis jako przeczytany dla aktualnie zalogowanego operatora.
Funkcja nie ma parametrów w BODY.
Odpowiedź - true:
true
Usuwanie
Dla historii zlecenia usuwanie wpisów nie jest możliwe.
Awarie globalne
Opis pól
| Pole | Typ | Opis | Edycja - POST / PUT |
|---|---|---|---|
| id | int(11) | unikalne, autonumerowane id rekordu | |
| firmid | int(11) | id firmy === mms.firms.id | |
| name | varchar(255) | nazwa usterki globalnej | + |
| status | enum('0','1','2','3','4','5') | status usterki globalnej, 1 - nowa, 2 - nierozpoczeta, 3 - rozpoczeta, 4 - niezakonczona, 5 - zakonczona | + |
| damageno | int(11) | numer usterki globalnej (numeracja mms.globaldamages.damageno/mms.globaldamages.year) | + |
| year | year(4) | rok usterki globalnej (do numeracji) | + |
| date | int(11) | pelna data usterki globalnej | + |
| type | enum('damage', 'plan') | damage - awaria globalna / plan - prace planowe | + |
| locationid | int(11) | id lokalizacji === mms.servers.id | + |
| damageinfo | longtext | informacja / komentarz awarii | + |
| userinfo | longtext | informacja dla klientow na stronie www / ebok | + |
| submitedto | longtext | administratorzy (pracownicy) powiadomieni o awarii, id-y administratorow rozdzielone znakie | (kazdy id === mms.admins.id) | + |
| fixstarttime | int(11) | data rozpoczecia naprawy usterki globalnej | + |
| fixinfo | longtext | informacje dotyczace rozpoczecia naprawy | + |
| fixfinishtime | int(11) | data zakonczenia naprawy usterki | + |
| note | longtext | notatka dotyczaca zakonczenia / zamkniecia awarii | + |
| creatorid | int(11) | id administratora tworzacego rekord === mms.admins.id | |
| creationdate | int(11) | data utworzenia rekordu (int timestamp) | |
| modid | int(11) | id administratora ostatnio modyfikujacego rekord === mms.admins.id | |
| moddate | int(11) | data ostatniej modyfikacji rekordu (int timestamp) | |
| notify_firmpositions_id | int(11) | wybrany dzial, na ktorego adres email beda przychodzic powiadomienia o kazdym nowym wpisie w awarii globalnej | + |
+ pole edytowalne
* pole wymagane przy dodawaniu
GET /globaldamages/
Pobranie listy urządzeń.
Dodatkowe parametry GET
Przykłady:
- Pobranie zleceń klienta 9999
https://api.system-dev.4web.pl/globaldamages/
Odpowiedź:
GET /globaldamages/id/
Pobranie danych zlecenia serwisowego o wskazanym id, np. dla 9999:
https://api.system-dev.4web.pl/damages/99999/
Odpowiedź:
{
"id": "99999",
"firmid": "1",
"name": "Awaria Testowa",
"type": "plan",
"status": "5",
"damageno": "7",
"year": "2024",
"date": "1707390000",
"userid": "0",
"damageinfo": "test",
"userinfo": "",
"submitedto": "|162|",
"fixstarttime": "1709821817",
"fixinfo": "",
"fixfinishtime": "1709821862",
"note": "",
"creatorid": "0",
"creationdate": "0",
"modid": "195",
"moddate": "1709821862",
"notify_firmpositions_id": "0",
"serverid": "0"
}
POST /globaldamages/
Dodanie usterki globalnej
PUT /globaldamages/id/
Edycja usterki globalnej
DELETE /globaldamages/id/
Usunięcie usterki globalnej. Można wykonać tylko dla nowej usterki, do której nie przypisano jeszcze żadnego zgłoszenia.