WayBillsWebService WeyBillsWebSendce jest usługą sieciową, niezależną od platformy i implementacji dostarczającym funkcjonalność pozwalającą na generowanie listów przewozowych w systemie spedycyjnym JAS-FBG S.A. Działanie usługi WayBillsWebSendce jest analogiczne do wypisywania listów przewozowych poprzez stronę http ://www.przesylka.j asfb g. com.pl. Usługa działa w dwóch środowiskach: testowym (http://webtest.przesylka.jasfbg.com.pd. umożliwiającym testy podczas implementacji, oraz produkcyjnym (http://web.przesylka.jasfbg.com.pl'). generującym listy przewozowe w systemie JAS-FBG S.A. Wyniki działania usługi WayBillsWebService można sprawdzić analogicznie dla wersji testowej pod adresem: http://test.jasfbg.com.pl oraz dla wersji produkcyjnej pod adresem: http://www.przesylka.jasfbg.com.pl. Usługa WayBillsWebSendce udostępnia następujące metody: 1. int Logon(string user, string password) logowanie do systemu; user nazwa użytkownika, password hasło; identyfikator użytkownika, jeśli wartość zwracana jest mniejsza od zera to numer 2. int NewContractor(int userid, string name, string NIP, string postalcode, string city, string address, string houseno, string placeno, string contact) dodawanie nowego kontrahenta; name nazwa kontrahenta, NIP nr identyfikacji podatkowej, postalcode kod pocztowy, city miejscowość, address adres (ulica), houseno numer domu, placeno numer lokalu, contact kontakt (osoba lub nr telefonu) identyfikator kontrahenta, jeśli wartość zwracana jest mniejsza od zera to numer int NewContractor1(int userid, string name, string postalcode, string city, string address, string houseno, string placeno, string contact) dodawanie nowego kontrahenta (wersja dla kontrahentów bez nip); name nazwa kontrahenta, postalcode kod pocztowy, city miejscowość, address adres (ulica), houseno numer domu, plcano numer lokalu, contact kontakt (osoba lub nr telefonu) identyfikator kontrahenta, jeśli wartość zwracana jest mniejsza od zera to numer
3. int NewWayBill(int userid, int freightpay, int otherloadplaceid, int addresseeid, int otherunloadplaceid, string senddate, string sendhour, string deliverydate, string deliveryhour, string goodskind, double cashongoods, double declarevalue, string bank, string IBAN, bool palletreturn, int palletvalue, bool waybillreturn, bool documentreturn, string remark, bool duty, int customofficeid, string dutyzone, string remarkbeforduty, string remarkafterduty) dodawanie nowego listu przewozowego; freightpay fracht opłaca: 3 zleceniodawca, 2 - odbiorca, otherloadplaceid identyfikator kontrahenta (pole inne miejsce załadunku) jeśli inne miejsce załadunku takie samo jak nadawca to wpisujemy wartość -1, addresseeid - identyfikator kontrahenta (pole odbiorca) jeśli pole fracht opłaca ma wartość 3 (czyli fracht opłaca zleceniodawca) i pola inne miejsce rozładunku i odbiorca są takie same to wpisujemy -1 jeśli pole fracht opłaca ma wartość 3 (czyli fracht opłaca zleceniodawca) i pola inne miejsce rozładunku i odbiorca są różne to wpisujemy identyfikator kontrahenta będącego odbiorcą (wymagany NIP dla tego kontrahenta) jeśli pole fracht opłaca ma wartość 3 (czyli fracht opłaca odbiorca) podajemy identyfikator kontrahenta będącego odbiorcą otherunloadplaceid identyfikator kontrahenta (pole inne miejsce rozładunku) jeśli pola odbiorca i inne miejsce rozładunku są takie same to w pole addresseeid wpisujemy wartość -1 a w pole otherunloadplaceid - identyfikator kontrahenta będącego odbiorcą, senddate data nadania w formacie RRRR-MM-DD, sendhour godzina nadania: 00:00, deliverydate data dostawy w formacie RRRR-MM-DD, deliveryhour godzina dostawy: 00:00, goodskind rodzaj towaru, cashongoods wartość pobrania, declarevalue wartość deklarowana towaru, bank nazwa banku, IBAN numer konta bankowego, palletreturn zwrot palet typu EURO, palletvalue ilość palet EURO do zwrotu, jeśli pola palletreturn jest true to w polu palletvalue podajemy ilość palet typu EURO do zwrotu, ilość ta nie może być większa niż suma ilości palet EURO podana w ładunkach, waybillreturn zwrot potwierdzonego listu przewozowego, documentreturn zwrot dokumentów, remark uwagi przy przyjęciu przesyłki, duty znacznik oclić, jeśli przesyłka ma być oclona to wpisujemy wartość true w przeciwnym wypadku false, customofficeid identyfikator urzędu celnego, jeśli pole duty ma wartość false to wpisujemy wartość 0 w przeciwnym wypadku identyfikator Urzędu Celnego zwrócony przez metodę GetCustomOfficeByTown, dutyzone - rejon urzędu celnego, jeśli pole duty ma wartość false to wpisujemy pusty string w przeciwnym wypadku rejon dla wybranego Urzędu Celnego zwrócony przez metodę GetCustomOfficeByTown, remarkbeforduty uwagi przed ocleniem, jeśli pole duty ma wartość false to wpisujemy pusty, remarkafterduty uwagi po ocleniu, jeśli pole duty ma wartość false to wpisujemy pusty, identyfikator listu przewozowego (nie mylić z numerem listu przewozowego), jeśli wartość zwracana jest mniejsza od zera to numer
int NewWayBill1(int userid, int addresseeid, string senddate, string sendhour, string deliverydate, string deliveryhour, string goodskind, double cashongoods, double declarevalue, string bank, string IBAN, bool palletreturn, int palletvalue, bool waybillreturn, bool documentreturn, string remark) dodawanie nowego listu przewozowego (wersja uproszczona); addresseeid - identyfikator kontrahenta będącego odbiorcą senddate data nadania w formacie RRRR-MM-DD, sendhour godzina nadania: 00:00, deliverydate data dostawy w formacie RRRR-MM-DD, deliveryhour godzina dostawy: 00:00, goodskind rodzaj towaru, cashongoods wartość pobrania, declarevalue wartość deklarowana towaru, bank nazwa banku, IBAN numer konta bankowego, palletreturn zwrot palet typu EURO, palletvalue ilość palet EURO do zwrotu, jeśli pola palletreturn jest true to w polu palletvalue podajemy ilość palet typu EURO do zwrotu, ilość ta nie może być większa niż suma ilości palet EURO podana w ładunkach, waybillreturn zwrot potwierdzonego listu przewozowego, documentreturn zwrot dokumentów, remark uwagi przy przyjęciu przesyłki, identyfikator listu przewozowego (nie mylić z numerem listu przewozowego), jeśli wartość zwracana jest mniejsza od zera to numer 4. int NewCargo(int userid, int shipmentid, string packaging, string packagingid, int length, int width, int height, int weight, int quantity, string remark, bool adr, int adrid, string adrun, string adrclass, float adrqty, int Temp, bool settemp) dodawanie nowego nowego ładunku; shipmentid - identyfikator listu przewozowego, packaging nazwa opakowania zwrócona przez metodę GetPackagings, packagingid identyfikator opakowania zwrócony przez metodę GetPackagings, length, width, height wymiary przesyłki w [cm], weight waga przesyłki w [kg], quantity ilość opakowań, remark uwagi (charakter ładunku), adr znacznik przesyłki ADR, adrid identyfikator ADR, jeśli znacznik ADR false to wpisujemy 0 w przeciwnym przypadku wpisujemy identyfikator ADR uzyskany za pomocą metod GetADRList lub GetADRByUn adrun numer ADR UN, jeśli znacznik ADR false to wpisujemy pusty string w przeciwnym przypadku wpisujemy numer ADR UN uzyskany za pomocą metod GetADRList lub GetADRByUn, adrclass - klasa ADR, jeśli znacznik ADR false to wpisujemy pusty string w przeciwnym przypadku wpisujemy klasę ADR uzyskaną za pomocą metod GetADRList lub GetADRByUn, adrqty ilość ADR, jeśli znacznik ADR false to wpisujemy wartość 0 w przeciwnym wypadku wartość wylicza się mnożąc wagę towaru podlegającego ADR przez mnożnik dla danego ADR uzyskanego za pomocą metod GetADRList lub GetADRByUn, Temp jeśli settemp ma wartość false to ustawiamy 0 w przeciwnym wypadku podajemy wartość TemperatureValue zwracanego przez metodę GetTemperatures, settemp - wskaźnik temperatury kontolowanej wartość true lub false. identyfikator ładunku, jeśli wartość zwracana jest mniejsza od zera to numer
int NewCargo1(int userid, int shipmentid, string packaging, string packagingid, int length, int width, int height, int weight, int quantity, string remark) dodawanie nowego nowego ładunku (wersja uproszczona); shipmentid - identyfikator listu przewozowego, packaging nazwa opakowania zwrócona przez metodę GetPackagings, packagingid identyfikator opakowania zwrócony przez metodę GetPackagings, length, width, height wymiary przesyłki w [cm], weight waga przesyłki w [kg], quantity ilość opakowań, remark uwagi (charakter ładunku), identyfikator ładunku, jeśli wartość zwracana jest mniejsza od zera to numer 5. int NewDocument(int shipmentid, string type, string number) dodawanie nowego dokumentu; shipmentid - identyfikator listu przewozowego, type typ dokumentu np.: WZ, number numer dokumentu, identyfikator dokumentu, jeśli wartość zwracana jest mniejsza od zera to numer 6. string ApproveWayBill(int userid, int shipmentid) dodawanie nowego nowego ładunku (wersja uproszczona); shipmentid - identyfikator listu przewozowego, wartość zwracana: w przypadku poprawnie założonego listu przewozowego metoda zwraca numer listu przewozowego, jeśli wartość zwracana poprzedzona jest znakiem minus to jest to numer 7. List<DutyDetails> GetCustomOfficeByTown(string town) lista Urzędów Celnych dla podanej nazwy miejscowości; town nazwa lub początek nazwy miejscowości, wartość zwracana: lista obiektów typu DutyDetails. public class DutyDetails private int _dutyid = 0; public int DutyID get return _dutyid; set _dutyid = value; private string _name = string.empty; public string Name get return _name; set _name = value; private string _address = string.empty; public string Address get return _address; set _address = value; private string _city = string.empty; public string City get return _city; set _city = value; private string _postalcode = string.empty;
public string PostalCode get return _postalcode; set _postalcode = value; private string _region = string.empty; public string Region get return _region; set _region = value; public DutyDetails() public DutyDetails(int dutyid, string name, string address, string city, string postalcode, string region) this.dutyid = dutyid; this.name = name; this.address = address; this.city = city; this.postalcode = postalcode; this.region = region; 8. List<PackagingDetails> GetPackagings() lista rodzajów opakowania; brak wartość zwracana: lista obiektów typu PackagingDetails. public class PackagingDetails private int _packagingid = 0; public int packagingid get return _packagingid; set _packagingid = value; private string _name = string.empty; public string Name get return _name; set _name = value; public PackagingDetails() public PackagingDetails(int packagingid, string name) this.packagingid = packagingid; this.name = name; 9. List<AdrDetails> GetADRList() lista kodów ADR; brak wartość zwracana: pełna lista obiektów typu AdrDetails. List<AdrDetails> GetADRByUn(string un) lista kodów ADR dla podanego numer u ADR UN; un - numer u ADR UN wartość zwracana: lista obiektów typu AdrDetails. public class AdrDetails // identyfikator ID private int _adrid = 0; public int AdrID get return _adrid; set _adrid = value; // nr UN private string _nrun = string.empty;
public string NrUN get return _nrun; set _nrun = value; // nazwa private string _nazwa = string.empty; public string Nazwa get return _nazwa; set _nazwa = value; // klasa private string _klasa = string.empty; public string Klasa get return _klasa; set _klasa = value; // uwagi private string _uwagi = string.empty; public string Uwagi get return _uwagi; set _uwagi = value; // mnożnik private int _mnoznik = 0; public int Mnoznik get return _mnoznik; set _mnoznik = value; // kategoria transportowa private int _kattran = 0; public int KategoriaTransportowa get return _kattran; set _kattran = value; // grupa pakowania private string _grpak = string.empty; public string GrupaPakowania get return _grpak; set _grpak = value; // nalepki private string _nalepki = string.empty; public string Nalepki get return _nalepki; set _nalepki = value; public AdrDetails() public AdrDetails(int adrid, string nrun, string nazwa, string klasa, string uwagi, int mnoznik, int kattransp, string grpakowania, string nalepki) this.adrid = adrid; this.nrun = nrun; this.nazwa = nazwa; this.klasa = klasa; this.uwagi = uwagi; this.mnoznik = mnoznik; this.kategoriatransportowa = kattransp; this.grupapakowania = grpakowania; this.nalepki = nalepki;
10. List<TemperatureDetails> GetTemperatures() lista temperatur kontrolowanych; brak wartość zwracana: pełna lista obiektów typu TemperatureDetails. public class TemperatureDetails private int _temperatureid = 0; public int TemperatureID get return _temperatureid; set _temperatureid = value; private string _temperaturedesc = string.empty; public string TemperatureDesc get return _temperaturedesc; set _temperaturedesc = value; private string _temperaturevalue = string.empty; public string TemperatureValue get return _temperaturevalue; set _temperaturevalue = value; public TemperatureDetails(int id, string desc, string val) this.temperatureid = id; this.temperaturedesc = desc; this.temperaturevalue = val; 11. string GetError(int errorcode) pobiera opis błędu dla danego kodu; errorcode kod błędu zwrócony przez inną funkcję; wartość zwracana: opis Tabela kodów i opisów błędów zwracanych przez funkcję GetError ERRORCODE METHOD DESCRIPTION -2 Logon Nazwa uzytkownika musi miec dlugosc wieksza od 0-3 Logon Haslo musi miec dlugosc wieksza od 0-4 Logon Blad podczas operacji bazodanowych -5 NewContractor Identyfikator uzytkownika musi byc wiekszy od 0-6 NewContractor Nazwa musi miec dlugosc wieksza od 0-7 NewContractor Kod pocztowy musi miec dlugosc wieksza od 0-8 NewContractor Kod pocztowy musi byc w formacie 99-999 -9 NewContractor Miejscowosc musi miec dlugosc wieksza od 0-10 NewContractor Adres musi miec dlugosc wieksza od 0-11 NewContractor Blad podczas operacji bazodanowych -12 NewWayBill Identyfikator uzytkownika musi byc wiekszy od 0-13 NewWayBill Identyfikator odbiorcy musi byc wiekszy od 0 lub rowny -1-14 NewWayBill Identyfikator innego miejsca zaladunku musi byc wiekszy od 0 lub rowny -1-15 NewWayBill Identyfikator innego miejsca rozladunku musi byc wiekszy od 0-16 NewWayBill Data nadania musi miec dlugosc wieksza od 0-17 NewWayBill Data dostawy musi miec dlugosc wieksza od 0-18 NewWayBill Data nadania musi miec dlugosc wieksza od 0-19 NewWayBill Rodzaj towaru musi miec wartosc wieksza od 0-20 NewWayBill Blad podczas operacji bazodanowych -21 NewCargo Identyfikator uzytkownika musi byc wiekszy od 0-22 NewCargo Identyfikator przesylki musi byc wiekszy od 0-23 NewCargo Opakowanie musi miec dlugosc wieksza od 0-24 NewCargo Identyfikator opakowania musi miec wartosc wieksza od 0-25 NewCargo Dlugosc musi miec wartosc wieksza od 0-26 NewCargo Szerokosc musi miec wartosc wieksza od 0-27 NewCargo Wysokosc musi miec wartosc wieksza od 0-28 NewCargo Waga musi miec wartosc wieksza od 0
-29 NewCargo Ilosc musi miec wartosc wieksza od 0 ERRORCODE METHOD DESCRIPTION -30 NewCargo Blad podczas operacji bazodanowych -31 NewDocument Identyfikator uzytkownika musi byc wiekszy od 0-32 NewDocument Typ dokumentu musi miec dlugosc wieksza od 0-33 NewDocument Numer dokumentu musi miec dlugosc wieksza od 0-34 NewDocument Blad podczas operacji bazodanowych -35 ApproveWayBill Identyfikator uzytkownika musi byc wiekszy od 0-36 ApproveWayBill Identyfikator przesylki musi byc wiekszy od 0-37 ApproveWayBill Blad podczas operacji bazodanowych -38 ApproveWayBill Brak zalaczonych dokumentow -39 ApproveWayBill Nie zaznaczono pola ZWROT DOKUMENTOW Poniżej schemat blokowy użycia WayBillsWebService:
START Int UsrID = 0; errid = 0; UsrID = Logon( username, password ); If(UsrID < 0) errid = UsrID; Int conid = 0; conid = NewContractor(UsrID, ); If(conID < 0) blok objęty linią przerywaną powtarzamy max. 3 razy (dla odbiorcy, innego miejsca załadunku i innego miejsca rozładunku, jeśli nie wypełniamy pól inne miejsce załadunku lun inne miejsce rozładunku to w te pola wpisujemy wartość -1) errid = conid; Int shid = 0; shid = NewWayBills(UsrID, ); If(shID < 0) errid = shid; Int cid = 0; cid = NewCargo(shID, ); blok objęty linią przerywaną powtarzamy tyle razy ile ładunków wysyłamy If(cID < 0) errid = cid; If( ZD == true) ZD znacznik zwrot dokumentów ustawiany w funkcji NewWayBill( ) Int did = 0; did = NewDocument(shID, ); blok objęty linią przerywaną powtarzamy tyle razy ile dokumentów załączamy If(dID < 0) errid = did; string nrlp = nrlp = ApproveWayBill(UsrID,shID); If((Int)nrLP < 0) errid = (Int)nrLP; String msg = GetError(int)errID); Display(msg); Display(nrLP); END