czech_post_b2b_client 1.1.0 → 1.2.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (470) hide show
  1. checksums.yaml +5 -5
  2. data/.rubocop.yml +1 -1
  3. data/CHANGELOG.md +30 -2
  4. data/README.md +262 -199
  5. data/doc/CzechPostB2bClient.html +31 -35
  6. data/doc/CzechPostB2bClient/B2BErrors.html +26 -13
  7. data/doc/CzechPostB2bClient/B2BErrors/BadRequestError.html +7 -7
  8. data/doc/CzechPostB2bClient/B2BErrors/BaseError.html +75 -40
  9. data/doc/CzechPostB2bClient/B2BErrors/CustomerRequestsCountOverflowError.html +7 -7
  10. data/doc/CzechPostB2bClient/B2BErrors/InternalB2BServerError.html +7 -7
  11. data/doc/CzechPostB2bClient/B2BErrors/InternalBackendServerError.html +7 -7
  12. data/doc/CzechPostB2bClient/B2BErrors/InternalDataPersistenceServerError.html +7 -7
  13. data/doc/CzechPostB2bClient/B2BErrors/ProcessingUnfinishedYetError.html +7 -7
  14. data/doc/CzechPostB2bClient/B2BErrors/ServiceBusyError.html +7 -7
  15. data/doc/CzechPostB2bClient/B2BErrors/UnauthorizedContractAccessError.html +7 -7
  16. data/doc/CzechPostB2bClient/B2BErrors/UnauthorizedRoleAccessError.html +7 -7
  17. data/doc/CzechPostB2bClient/Configuration.html +33 -25
  18. data/doc/CzechPostB2bClient/Error.html +6 -6
  19. data/doc/CzechPostB2bClient/PostServices.html +197 -0
  20. data/doc/CzechPostB2bClient/PostServices/AddreseeVerification.html +129 -0
  21. data/doc/CzechPostB2bClient/PostServices/AddresseeAlertOfArrivalByEmail.html +129 -0
  22. data/doc/CzechPostB2bClient/PostServices/AddresseeAlertOfArrivalBySms.html +140 -0
  23. data/doc/CzechPostB2bClient/PostServices/AddresseeAlertOfArrivalBySmsAndEmail.html +129 -0
  24. data/doc/CzechPostB2bClient/PostServices/AddresseeVerificationOnDelivery.html +129 -0
  25. data/doc/CzechPostB2bClient/PostServices/AfternoonDelivery.html +129 -0
  26. data/doc/CzechPostB2bClient/PostServices/Base.html +351 -0
  27. data/doc/CzechPostB2bClient/PostServices/CashOnDeliveryByPKA.html +129 -0
  28. data/doc/CzechPostB2bClient/PostServices/CashOnDeliveryByPKC.html +129 -0
  29. data/doc/CzechPostB2bClient/PostServices/CashOnDeliveryInternational.html +129 -0
  30. data/doc/CzechPostB2bClient/PostServices/CertificateOfDelivery.html +148 -0
  31. data/doc/CzechPostB2bClient/PostServices/CertificateOfDeliveryWithDeliverToAdresseeOnly.html +140 -0
  32. data/doc/CzechPostB2bClient/PostServices/CertificateOfDeliveryWithDeliverToAdresseePersonOnly.html +129 -0
  33. data/doc/CzechPostB2bClient/PostServices/CompanyRegisteredMail.html +141 -0
  34. data/doc/CzechPostB2bClient/PostServices/CompleteDelivery.html +129 -0
  35. data/doc/CzechPostB2bClient/PostServices/Consignment.html +129 -0
  36. data/doc/CzechPostB2bClient/PostServices/CumbersomeParcel.html +129 -0
  37. data/doc/CzechPostB2bClient/PostServices/DeliverToAdresseeOnly.html +129 -0
  38. data/doc/CzechPostB2bClient/PostServices/DeliverToAdresseePersonOnly.html +129 -0
  39. data/doc/CzechPostB2bClient/PostServices/DeliverToCompany.html +147 -0
  40. data/doc/CzechPostB2bClient/PostServices/DepositFor10Days.html +129 -0
  41. data/doc/CzechPostB2bClient/PostServices/DepositFor10WorkingDays.html +129 -0
  42. data/doc/CzechPostB2bClient/PostServices/DepositFor3Days.html +129 -0
  43. data/doc/CzechPostB2bClient/PostServices/DepositFor7Days.html +129 -0
  44. data/doc/CzechPostB2bClient/PostServices/DepositFor90Days.html +129 -0
  45. data/doc/CzechPostB2bClient/PostServices/DepositIfAdresseeIsUnreachable.html +141 -0
  46. data/doc/CzechPostB2bClient/PostServices/DiscountForCollectiveShippment.html +129 -0
  47. data/doc/CzechPostB2bClient/PostServices/DiscountForOnlinePosting.html +129 -0
  48. data/doc/CzechPostB2bClient/PostServices/DoNotDeposit.html +129 -0
  49. data/doc/CzechPostB2bClient/PostServices/DoNotExtendCollectionTime.html +148 -0
  50. data/doc/CzechPostB2bClient/PostServices/DoNotPutIntoMailbox.html +129 -0
  51. data/doc/CzechPostB2bClient/PostServices/DoNotResend.html +129 -0
  52. data/doc/CzechPostB2bClient/PostServices/DoNotReturnLeaveItInMailbox.html +129 -0
  53. data/doc/CzechPostB2bClient/PostServices/DoNotReturnToSender.html +129 -0
  54. data/doc/CzechPostB2bClient/PostServices/Document.html +129 -0
  55. data/doc/CzechPostB2bClient/PostServices/DocumentlessCashOnDelivery.html +147 -0
  56. data/doc/CzechPostB2bClient/PostServices/DocumentsSignedAtDelivery.html +129 -0
  57. data/doc/CzechPostB2bClient/PostServices/EAlertOfDeliveryEmail.html +129 -0
  58. data/doc/CzechPostB2bClient/PostServices/EAlertOfDeliverySms.html +140 -0
  59. data/doc/CzechPostB2bClient/PostServices/EAlertOfDeliverySmsAndEmail.html +129 -0
  60. data/doc/CzechPostB2bClient/PostServices/EconomyDelivery.html +140 -0
  61. data/doc/CzechPostB2bClient/PostServices/ExtendedCollectionTime.html +129 -0
  62. data/doc/CzechPostB2bClient/PostServices/ForenoonDelivery.html +129 -0
  63. data/doc/CzechPostB2bClient/PostServices/Fragile.html +129 -0
  64. data/doc/CzechPostB2bClient/PostServices/GiftOrNonCommercialGoods.html +148 -0
  65. data/doc/CzechPostB2bClient/PostServices/GoodsWithExportDocumentsProcessed.html +148 -0
  66. data/doc/CzechPostB2bClient/PostServices/GuaranteedDeliveryTimeAtSaturday.html +129 -0
  67. data/doc/CzechPostB2bClient/PostServices/GuaranteedDeliveryTimeAtWeekend.html +129 -0
  68. data/doc/CzechPostB2bClient/PostServices/GuaranteedDeliveryTimeTo2PM.html +129 -0
  69. data/doc/CzechPostB2bClient/PostServices/HeavyParcelDeliveryToHand.html +129 -0
  70. data/doc/CzechPostB2bClient/PostServices/InformSenderAboutDelivery.html +129 -0
  71. data/doc/CzechPostB2bClient/PostServices/InternationalMail.html +129 -0
  72. data/doc/CzechPostB2bClient/PostServices/InternationalMailForBlinds.html +129 -0
  73. data/doc/CzechPostB2bClient/PostServices/InternationalPrintedMatterBag.html +129 -0
  74. data/doc/CzechPostB2bClient/PostServices/InternationalRegisteredMail.html +129 -0
  75. data/doc/CzechPostB2bClient/PostServices/InternationalRegisteredMailForBlinds.html +129 -0
  76. data/doc/CzechPostB2bClient/PostServices/InternationalRegisteredPrintedMatterBag.html +129 -0
  77. data/doc/CzechPostB2bClient/PostServices/ListedPrice.html +129 -0
  78. data/doc/CzechPostB2bClient/PostServices/Missed.html +129 -0
  79. data/doc/CzechPostB2bClient/PostServices/Missive.html +129 -0
  80. data/doc/CzechPostB2bClient/PostServices/MissiveStandard.html +129 -0
  81. data/doc/CzechPostB2bClient/PostServices/MultiParcelShippment.html +129 -0
  82. data/doc/CzechPostB2bClient/PostServices/MultiParcelShippmentBig.html +129 -0
  83. data/doc/CzechPostB2bClient/PostServices/NonStandardPackage.html +148 -0
  84. data/doc/CzechPostB2bClient/PostServices/OldApplianceRemoval.html +129 -0
  85. data/doc/CzechPostB2bClient/PostServices/OnPalette.html +140 -0
  86. data/doc/CzechPostB2bClient/PostServices/ParcelSizeL.html +129 -0
  87. data/doc/CzechPostB2bClient/PostServices/ParcelSizeM.html +129 -0
  88. data/doc/CzechPostB2bClient/PostServices/ParcelSizeS.html +129 -0
  89. data/doc/CzechPostB2bClient/PostServices/ParcelSizeXL.html +129 -0
  90. data/doc/CzechPostB2bClient/PostServices/PickupByThirdPerson.html +129 -0
  91. data/doc/CzechPostB2bClient/PostServices/PosteRestante.html +129 -0
  92. data/doc/CzechPostB2bClient/PostServices/PreprocessedBySorting.html +148 -0
  93. data/doc/CzechPostB2bClient/PostServices/PrioritaireByAir.html +129 -0
  94. data/doc/CzechPostB2bClient/PostServices/RegisteredMail.html +129 -0
  95. data/doc/CzechPostB2bClient/PostServices/RegisteredMailForBlinds.html +129 -0
  96. data/doc/CzechPostB2bClient/PostServices/RegisteredMailStandard.html +129 -0
  97. data/doc/CzechPostB2bClient/PostServices/ResendToOtherAddress.html +129 -0
  98. data/doc/CzechPostB2bClient/PostServices/ResponseEnvelope.html +129 -0
  99. data/doc/CzechPostB2bClient/PostServices/ResponseShipment.html +129 -0
  100. data/doc/CzechPostB2bClient/PostServices/ReturnByAir.html +129 -0
  101. data/doc/CzechPostB2bClient/PostServices/ReturnEconomically.html +129 -0
  102. data/doc/CzechPostB2bClient/PostServices/ReturnOfGoods.html +129 -0
  103. data/doc/CzechPostB2bClient/PostServices/ReturnToSenderAfterXDays.html +148 -0
  104. data/doc/CzechPostB2bClient/PostServices/ReturnToSenderImmediately.html +129 -0
  105. data/doc/CzechPostB2bClient/PostServices/SaveKey.html +148 -0
  106. data/doc/CzechPostB2bClient/PostServices/SubmissionByPostbox.html +129 -0
  107. data/doc/CzechPostB2bClient/PostServices/SubmissionReceiptCopy.html +129 -0
  108. data/doc/CzechPostB2bClient/PostServices/ThisSideUp.html +148 -0
  109. data/doc/CzechPostB2bClient/PostServices/ValuableContent.html +129 -0
  110. data/doc/CzechPostB2bClient/PrintingTemplates.html +16 -16
  111. data/doc/CzechPostB2bClient/PrintingTemplates/AddressData3x8.html +6 -6
  112. data/doc/CzechPostB2bClient/PrintingTemplates/AdressLabel.html +6 -6
  113. data/doc/CzechPostB2bClient/PrintingTemplates/AdressLabel/Blank.html +6 -6
  114. data/doc/CzechPostB2bClient/PrintingTemplates/AdressLabel/Blank4OnPage.html +6 -6
  115. data/doc/CzechPostB2bClient/PrintingTemplates/AdressLabel/BlankLandscape.html +6 -6
  116. data/doc/CzechPostB2bClient/PrintingTemplates/AdressLabel/ForeignPackage.html +7 -7
  117. data/doc/CzechPostB2bClient/PrintingTemplates/AdressLabel/ForeignPackage/EMS.html +6 -6
  118. data/doc/CzechPostB2bClient/PrintingTemplates/AdressLabel/ForeignPackage/EMS2x4.html +6 -6
  119. data/doc/CzechPostB2bClient/PrintingTemplates/AdressLabel/ForeignPackage/HarmonizedLabel.html +141 -0
  120. data/doc/CzechPostB2bClient/PrintingTemplates/AdressLabel/ForeignPackage/HarmonizedLabel4OnPage.html +129 -0
  121. data/doc/CzechPostB2bClient/PrintingTemplates/AdressLabel/ForeignPackage/Standard.html +6 -6
  122. data/doc/CzechPostB2bClient/PrintingTemplates/AdressLabel/ForeignPackage/Standard2OnPage.html +129 -0
  123. data/doc/CzechPostB2bClient/PrintingTemplates/AdressLabel/ForeignPackage/Valuable.html +6 -6
  124. data/doc/CzechPostB2bClient/PrintingTemplates/AdressLabel/ForeignPackage/Valuable4OnPage.html +6 -6
  125. data/doc/CzechPostB2bClient/PrintingTemplates/AdressLabel/Simple.html +6 -6
  126. data/doc/CzechPostB2bClient/PrintingTemplates/AdressLabel/SimpleWithCODVoucherA.html +6 -6
  127. data/doc/CzechPostB2bClient/PrintingTemplates/Base.html +16 -16
  128. data/doc/CzechPostB2bClient/PrintingTemplates/CODVoucherA.html +6 -6
  129. data/doc/CzechPostB2bClient/PrintingTemplates/CODVoucherA3OnPage.html +6 -6
  130. data/doc/CzechPostB2bClient/PrintingTemplates/CODVoucherC.html +6 -6
  131. data/doc/CzechPostB2bClient/PrintingTemplates/CODVoucherForCSOB.html +6 -6
  132. data/doc/CzechPostB2bClient/PrintingTemplates/CustomDeclaration.html +115 -0
  133. data/doc/CzechPostB2bClient/PrintingTemplates/CustomDeclaration/CN22.html +129 -0
  134. data/doc/CzechPostB2bClient/PrintingTemplates/CustomDeclaration/CN224OnPage.html +129 -0
  135. data/doc/CzechPostB2bClient/PrintingTemplates/CustomDeclaration/CN22WithCK.html +129 -0
  136. data/doc/CzechPostB2bClient/PrintingTemplates/CustomDeclaration/CN22WithCK4OnPage.html +129 -0
  137. data/doc/CzechPostB2bClient/PrintingTemplates/CustomDeclaration/CN23.html +129 -0
  138. data/doc/CzechPostB2bClient/PrintingTemplates/DeliveryTicket.html +6 -6
  139. data/doc/CzechPostB2bClient/PrintingTemplates/Envelope.html +6 -6
  140. data/doc/CzechPostB2bClient/PrintingTemplates/Envelope/EnvelopeB4.html +6 -6
  141. data/doc/CzechPostB2bClient/PrintingTemplates/Envelope/EnvelopeC5.html +6 -6
  142. data/doc/CzechPostB2bClient/PrintingTemplates/Envelope/EnvelopeC6.html +6 -6
  143. data/doc/CzechPostB2bClient/PrintingTemplates/Envelope/EnvelopeDL.html +6 -6
  144. data/doc/CzechPostB2bClient/PrintingTemplates/IntegratedDocument.html +6 -6
  145. data/doc/CzechPostB2bClient/PrintingTemplates/RRLabels3x8.html +6 -6
  146. data/doc/CzechPostB2bClient/RequestBuilders.html +8 -8
  147. data/doc/CzechPostB2bClient/RequestBuilders/BaseBuilder.html +9 -9
  148. data/doc/CzechPostB2bClient/RequestBuilders/GetParcelStateBuilder.html +8 -8
  149. data/doc/CzechPostB2bClient/RequestBuilders/GetParcelsPrintingBuilder.html +26 -26
  150. data/doc/CzechPostB2bClient/RequestBuilders/GetResultParcelsBuilder.html +8 -8
  151. data/doc/CzechPostB2bClient/RequestBuilders/GetStatsBuilder.html +9 -9
  152. data/doc/CzechPostB2bClient/RequestBuilders/ParcelServiceSyncBuilder.html +414 -0
  153. data/doc/CzechPostB2bClient/RequestBuilders/SendParcelsBuilder.html +32 -21
  154. data/doc/CzechPostB2bClient/ResponseCodes.html +51 -27
  155. data/doc/CzechPostB2bClient/ResponseCodes/AddressAllowedForBalikovnaOnly.html +7 -7
  156. data/doc/CzechPostB2bClient/ResponseCodes/AddressIsNotValidForSubject.html +7 -7
  157. data/doc/CzechPostB2bClient/ResponseCodes/AddressNeedsPhoneNumber.html +7 -7
  158. data/doc/CzechPostB2bClient/ResponseCodes/AddressSuitableForLocalDelivery.html +7 -7
  159. data/doc/CzechPostB2bClient/ResponseCodes/AddressValidOnlyForNaPostu.html +7 -7
  160. data/doc/CzechPostB2bClient/ResponseCodes/AddressValidOnlyForNaPostuDuplicate.html +7 -7
  161. data/doc/CzechPostB2bClient/ResponseCodes/AddresseeCityRequired.html +7 -7
  162. data/doc/CzechPostB2bClient/ResponseCodes/AlreadyAssignedOrderNumber.html +7 -7
  163. data/doc/CzechPostB2bClient/ResponseCodes/BadAddressee.html +7 -7
  164. data/doc/CzechPostB2bClient/ResponseCodes/BadCODAmount.html +7 -7
  165. data/doc/CzechPostB2bClient/ResponseCodes/BadFormatReturnNumberDays.html +7 -7
  166. data/doc/CzechPostB2bClient/ResponseCodes/BadHeight.html +7 -7
  167. data/doc/CzechPostB2bClient/ResponseCodes/BadLength.html +7 -7
  168. data/doc/CzechPostB2bClient/ResponseCodes/BadPrefix.html +7 -7
  169. data/doc/CzechPostB2bClient/ResponseCodes/BadPrefixForAddress.html +7 -7
  170. data/doc/CzechPostB2bClient/ResponseCodes/BadPrice.html +7 -7
  171. data/doc/CzechPostB2bClient/ResponseCodes/BadVariableSymbol.html +7 -7
  172. data/doc/CzechPostB2bClient/ResponseCodes/BadWeight.html +7 -7
  173. data/doc/CzechPostB2bClient/ResponseCodes/BadWidth.html +7 -7
  174. data/doc/CzechPostB2bClient/ResponseCodes/BaseCode.html +211 -121
  175. data/doc/CzechPostB2bClient/ResponseCodes/BatchClosed.html +7 -7
  176. data/doc/CzechPostB2bClient/ResponseCodes/BatchInvalid.html +7 -7
  177. data/doc/CzechPostB2bClient/ResponseCodes/BatchUnfinished.html +7 -7
  178. data/doc/CzechPostB2bClient/ResponseCodes/CODAmountOutOfRange.html +7 -7
  179. data/doc/CzechPostB2bClient/ResponseCodes/CODAmountTooBig.html +7 -7
  180. data/doc/CzechPostB2bClient/ResponseCodes/CanceledOrderNumber.html +7 -7
  181. data/doc/CzechPostB2bClient/ResponseCodes/CustomGoodQuantityOutOfRange.html +7 -7
  182. data/doc/CzechPostB2bClient/ResponseCodes/CustomerIDNotInAccordanceWithParcelCode.html +7 -7
  183. data/doc/CzechPostB2bClient/ResponseCodes/DensityOutOfRange.html +7 -7
  184. data/doc/CzechPostB2bClient/ResponseCodes/DuplicateDuplicateParcelCode.html +7 -7
  185. data/doc/CzechPostB2bClient/ResponseCodes/DuplicateParcel.html +7 -7
  186. data/doc/CzechPostB2bClient/ResponseCodes/DuplicateParcelCode.html +7 -7
  187. data/doc/CzechPostB2bClient/ResponseCodes/DuplicitParcelCode.html +7 -7
  188. data/doc/CzechPostB2bClient/ResponseCodes/FullSequence.html +7 -7
  189. data/doc/CzechPostB2bClient/ResponseCodes/FullSequenceDuplicate.html +7 -7
  190. data/doc/CzechPostB2bClient/ResponseCodes/IllegalCombinationOfServices.html +7 -7
  191. data/doc/CzechPostB2bClient/ResponseCodes/InfoAddRequiredService75.html +7 -7
  192. data/doc/CzechPostB2bClient/ResponseCodes/InfoAddService1A.html +7 -7
  193. data/doc/CzechPostB2bClient/ResponseCodes/InfoAddService1B.html +7 -7
  194. data/doc/CzechPostB2bClient/ResponseCodes/InfoAddService1D.html +7 -7
  195. data/doc/CzechPostB2bClient/ResponseCodes/InfoAddService9.html +7 -7
  196. data/doc/CzechPostB2bClient/ResponseCodes/InfoAddressWasModified.html +7 -7
  197. data/doc/CzechPostB2bClient/ResponseCodes/InfoAddresseeToLong.html +7 -7
  198. data/doc/CzechPostB2bClient/ResponseCodes/InfoCancelCustCardNumber.html +7 -7
  199. data/doc/CzechPostB2bClient/ResponseCodes/InfoCancelCustCardNumberAddresseeDocument.html +7 -7
  200. data/doc/CzechPostB2bClient/ResponseCodes/InfoCancelHeight.html +7 -7
  201. data/doc/CzechPostB2bClient/ResponseCodes/InfoCancelLength.html +7 -7
  202. data/doc/CzechPostB2bClient/ResponseCodes/InfoCancelMobilePhoneOrEmailAddresseeDocument.html +7 -7
  203. data/doc/CzechPostB2bClient/ResponseCodes/InfoCancelPalettsNumber.html +7 -7
  204. data/doc/CzechPostB2bClient/ResponseCodes/InfoCancelPersonalIdentificationNumber.html +7 -7
  205. data/doc/CzechPostB2bClient/ResponseCodes/InfoCancelService1AB.html +7 -7
  206. data/doc/CzechPostB2bClient/ResponseCodes/InfoCancelService1ABForService40.html +7 -7
  207. data/doc/CzechPostB2bClient/ResponseCodes/InfoCancelService1AForPostCode.html +7 -7
  208. data/doc/CzechPostB2bClient/ResponseCodes/InfoCancelService1AForService40.html +7 -7
  209. data/doc/CzechPostB2bClient/ResponseCodes/InfoCancelService1AWith1B.html +7 -7
  210. data/doc/CzechPostB2bClient/ResponseCodes/InfoCancelService1B.html +7 -7
  211. data/doc/CzechPostB2bClient/ResponseCodes/InfoCancelService1BAddService1A.html +7 -7
  212. data/doc/CzechPostB2bClient/ResponseCodes/InfoCancelService1BForPostCode.html +7 -7
  213. data/doc/CzechPostB2bClient/ResponseCodes/InfoCancelService1BWith1A.html +7 -7
  214. data/doc/CzechPostB2bClient/ResponseCodes/InfoCancelService1D.html +7 -7
  215. data/doc/CzechPostB2bClient/ResponseCodes/InfoCancelService1E.html +7 -7
  216. data/doc/CzechPostB2bClient/ResponseCodes/InfoCancelService1V.html +7 -7
  217. data/doc/CzechPostB2bClient/ResponseCodes/InfoCancelService25.html +7 -7
  218. data/doc/CzechPostB2bClient/ResponseCodes/InfoCancelService27.html +7 -7
  219. data/doc/CzechPostB2bClient/ResponseCodes/InfoCancelService29.html +7 -7
  220. data/doc/CzechPostB2bClient/ResponseCodes/InfoCancelService30.html +7 -7
  221. data/doc/CzechPostB2bClient/ResponseCodes/InfoCancelService31.html +7 -7
  222. data/doc/CzechPostB2bClient/ResponseCodes/InfoCancelService34.html +7 -7
  223. data/doc/CzechPostB2bClient/ResponseCodes/InfoCancelService34InvalidPhoneNumber.html +7 -7
  224. data/doc/CzechPostB2bClient/ResponseCodes/InfoCancelService45.html +7 -7
  225. data/doc/CzechPostB2bClient/ResponseCodes/InfoCancelService45InvalidPhoneNumber.html +7 -7
  226. data/doc/CzechPostB2bClient/ResponseCodes/InfoCancelService46.html +7 -7
  227. data/doc/CzechPostB2bClient/ResponseCodes/InfoCancelService47.html +7 -7
  228. data/doc/CzechPostB2bClient/ResponseCodes/InfoCancelService5B.html +7 -7
  229. data/doc/CzechPostB2bClient/ResponseCodes/InfoCancelService5BAnd5C.html +7 -7
  230. data/doc/CzechPostB2bClient/ResponseCodes/InfoCancelService5BAnd5D.html +7 -7
  231. data/doc/CzechPostB2bClient/ResponseCodes/InfoCancelService5C.html +7 -7
  232. data/doc/CzechPostB2bClient/ResponseCodes/InfoCancelService5CAnd5D.html +7 -7
  233. data/doc/CzechPostB2bClient/ResponseCodes/InfoCancelService5D.html +7 -7
  234. data/doc/CzechPostB2bClient/ResponseCodes/InfoCancelService9.html +134 -0
  235. data/doc/CzechPostB2bClient/ResponseCodes/InfoCancelVSVoucher.html +7 -7
  236. data/doc/CzechPostB2bClient/ResponseCodes/InfoCancelWidth.html +7 -7
  237. data/doc/CzechPostB2bClient/ResponseCodes/InfoCityChanged.html +7 -7
  238. data/doc/CzechPostB2bClient/ResponseCodes/InfoInexactAddress.html +7 -7
  239. data/doc/CzechPostB2bClient/ResponseCodes/InfoInvalidAccount.html +7 -7
  240. data/doc/CzechPostB2bClient/ResponseCodes/InfoInvalidBankCode.html +7 -7
  241. data/doc/CzechPostB2bClient/ResponseCodes/InfoInvalidBirthDay.html +7 -7
  242. data/doc/CzechPostB2bClient/ResponseCodes/InfoInvalidCODAmount.html +7 -7
  243. data/doc/CzechPostB2bClient/ResponseCodes/InfoInvalidCategoryCustomDecalaration.html +7 -7
  244. data/doc/CzechPostB2bClient/ResponseCodes/InfoInvalidEmail.html +7 -7
  245. data/doc/CzechPostB2bClient/ResponseCodes/InfoInvalidMobilePhoneNumber.html +7 -7
  246. data/doc/CzechPostB2bClient/ResponseCodes/InfoInvalidPhoneNumber.html +7 -7
  247. data/doc/CzechPostB2bClient/ResponseCodes/InfoInvalidPrefixAccount.html +7 -7
  248. data/doc/CzechPostB2bClient/ResponseCodes/InfoInvalidPrice.html +7 -7
  249. data/doc/CzechPostB2bClient/ResponseCodes/InfoInvalidSpecificSymbol.html +7 -7
  250. data/doc/CzechPostB2bClient/ResponseCodes/InfoInvalidTelephoneNumber.html +7 -7
  251. data/doc/CzechPostB2bClient/ResponseCodes/InfoInvalidWeight.html +7 -7
  252. data/doc/CzechPostB2bClient/ResponseCodes/InfoMissingPartCityServiceDeliveryOnSundayOrHolidayMayNotBeRealized.html +18 -7
  253. data/doc/CzechPostB2bClient/ResponseCodes/InfoPriceIsNotNumber.html +7 -7
  254. data/doc/CzechPostB2bClient/ResponseCodes/InfoPriceIsTooBig.html +7 -7
  255. data/doc/CzechPostB2bClient/ResponseCodes/InfoService29And47.html +7 -7
  256. data/doc/CzechPostB2bClient/ResponseCodes/InfoSpecialPackagingRequest.html +7 -7
  257. data/doc/CzechPostB2bClient/ResponseCodes/InternalApplicationError.html +7 -7
  258. data/doc/CzechPostB2bClient/ResponseCodes/InvalidAddressAddresseeDocumentForParcelType.html +7 -7
  259. data/doc/CzechPostB2bClient/ResponseCodes/InvalidAddressAddresseeDocumentObjectNotFound.html +7 -7
  260. data/doc/CzechPostB2bClient/ResponseCodes/InvalidAddressAddresseeDocumentWrongCity.html +7 -7
  261. data/doc/CzechPostB2bClient/ResponseCodes/InvalidAddressForBalikovna.html +7 -7
  262. data/doc/CzechPostB2bClient/ResponseCodes/InvalidAddressForBigPackage.html +7 -7
  263. data/doc/CzechPostB2bClient/ResponseCodes/InvalidAddressForCODAmountOver20000.html +7 -7
  264. data/doc/CzechPostB2bClient/ResponseCodes/InvalidAddressForParcelType.html +7 -7
  265. data/doc/CzechPostB2bClient/ResponseCodes/InvalidAddressee.html +7 -7
  266. data/doc/CzechPostB2bClient/ResponseCodes/InvalidAmount.html +7 -7
  267. data/doc/CzechPostB2bClient/ResponseCodes/InvalidAmountCurrency.html +7 -7
  268. data/doc/CzechPostB2bClient/ResponseCodes/InvalidAmountType.html +7 -7
  269. data/doc/CzechPostB2bClient/ResponseCodes/InvalidCODAmount.html +7 -7
  270. data/doc/CzechPostB2bClient/ResponseCodes/InvalidCODCurrency.html +7 -7
  271. data/doc/CzechPostB2bClient/ResponseCodes/InvalidCODCurrencyAccordance.html +7 -7
  272. data/doc/CzechPostB2bClient/ResponseCodes/InvalidCategoryCustomDecalaration.html +7 -7
  273. data/doc/CzechPostB2bClient/ResponseCodes/InvalidContentCustomGood.html +7 -7
  274. data/doc/CzechPostB2bClient/ResponseCodes/InvalidCurrencyCustomDecalaration.html +7 -7
  275. data/doc/CzechPostB2bClient/ResponseCodes/InvalidCustomGoodNumber.html +7 -7
  276. data/doc/CzechPostB2bClient/ResponseCodes/InvalidCustomerCardNumber.html +7 -7
  277. data/doc/CzechPostB2bClient/ResponseCodes/InvalidCustomerId.html +7 -7
  278. data/doc/CzechPostB2bClient/ResponseCodes/InvalidDensity.html +7 -7
  279. data/doc/CzechPostB2bClient/ResponseCodes/InvalidEmail.html +7 -7
  280. data/doc/CzechPostB2bClient/ResponseCodes/InvalidHeight.html +7 -7
  281. data/doc/CzechPostB2bClient/ResponseCodes/InvalidHsCodeCustomGood.html +7 -7
  282. data/doc/CzechPostB2bClient/ResponseCodes/InvalidIsoCustomGood.html +7 -7
  283. data/doc/CzechPostB2bClient/ResponseCodes/InvalidIsoCustomGoodFormat.html +7 -7
  284. data/doc/CzechPostB2bClient/ResponseCodes/InvalidLength.html +7 -7
  285. data/doc/CzechPostB2bClient/ResponseCodes/InvalidLocation.html +7 -7
  286. data/doc/CzechPostB2bClient/ResponseCodes/InvalidMRNCode.html +7 -7
  287. data/doc/CzechPostB2bClient/ResponseCodes/InvalidMRNCodeControl.html +7 -7
  288. data/doc/CzechPostB2bClient/ResponseCodes/InvalidNumberClosure.html +7 -7
  289. data/doc/CzechPostB2bClient/ResponseCodes/InvalidOrderNumber.html +7 -7
  290. data/doc/CzechPostB2bClient/ResponseCodes/InvalidParcelBarcode.html +7 -7
  291. data/doc/CzechPostB2bClient/ResponseCodes/InvalidParcelBarcodeDuplicate.html +7 -7
  292. data/doc/CzechPostB2bClient/ResponseCodes/InvalidParcelCode.html +7 -7
  293. data/doc/CzechPostB2bClient/ResponseCodes/InvalidParcelCodeControl.html +7 -7
  294. data/doc/CzechPostB2bClient/ResponseCodes/InvalidParcelResponseCode.html +7 -7
  295. data/doc/CzechPostB2bClient/ResponseCodes/InvalidParcelTypeForID.html +7 -7
  296. data/doc/CzechPostB2bClient/ResponseCodes/InvalidPartnerCode.html +7 -7
  297. data/doc/CzechPostB2bClient/ResponseCodes/InvalidPayday.html +7 -7
  298. data/doc/CzechPostB2bClient/ResponseCodes/InvalidPhoneNumber.html +7 -7
  299. data/doc/CzechPostB2bClient/ResponseCodes/InvalidPostCode.html +7 -7
  300. data/doc/CzechPostB2bClient/ResponseCodes/InvalidPrefixAccordance.html +7 -7
  301. data/doc/CzechPostB2bClient/ResponseCodes/InvalidPrefixCombination.html +7 -7
  302. data/doc/CzechPostB2bClient/ResponseCodes/InvalidPrefixForDimensionsAndFragile.html +7 -7
  303. data/doc/CzechPostB2bClient/ResponseCodes/InvalidPrice.html +7 -7
  304. data/doc/CzechPostB2bClient/ResponseCodes/InvalidPriceCurrency.html +7 -7
  305. data/doc/CzechPostB2bClient/ResponseCodes/InvalidPriceCurrencyAccordance.html +7 -7
  306. data/doc/CzechPostB2bClient/ResponseCodes/InvalidPriceCustomGood.html +7 -7
  307. data/doc/CzechPostB2bClient/ResponseCodes/InvalidQuantityCustomGood.html +7 -7
  308. data/doc/CzechPostB2bClient/ResponseCodes/InvalidResponsibleConsignmentNumber.html +7 -7
  309. data/doc/CzechPostB2bClient/ResponseCodes/InvalidReturnNumberDays.html +7 -7
  310. data/doc/CzechPostB2bClient/ResponseCodes/InvalidService18.html +7 -7
  311. data/doc/CzechPostB2bClient/ResponseCodes/InvalidService19.html +7 -7
  312. data/doc/CzechPostB2bClient/ResponseCodes/InvalidServiceCombination.html +7 -7
  313. data/doc/CzechPostB2bClient/ResponseCodes/InvalidServicesForDimensions.html +7 -7
  314. data/doc/CzechPostB2bClient/ResponseCodes/InvalidSignNumber.html +7 -7
  315. data/doc/CzechPostB2bClient/ResponseCodes/InvalidSubisoCountry.html +7 -7
  316. data/doc/CzechPostB2bClient/ResponseCodes/InvalidTareWeight.html +7 -7
  317. data/doc/CzechPostB2bClient/ResponseCodes/InvalidTiming.html +7 -7
  318. data/doc/CzechPostB2bClient/ResponseCodes/InvalidTransmissionDate.html +7 -7
  319. data/doc/CzechPostB2bClient/ResponseCodes/InvalidTypePrefix.html +7 -7
  320. data/doc/CzechPostB2bClient/ResponseCodes/InvalidUseOfService36.html +7 -7
  321. data/doc/CzechPostB2bClient/ResponseCodes/InvalidUseOfService37.html +7 -7
  322. data/doc/CzechPostB2bClient/ResponseCodes/InvalidUseOfService38.html +7 -7
  323. data/doc/CzechPostB2bClient/ResponseCodes/InvalidWeight.html +7 -7
  324. data/doc/CzechPostB2bClient/ResponseCodes/InvalidWeightCustomGood.html +7 -7
  325. data/doc/CzechPostB2bClient/ResponseCodes/InvalidWeightCustomGoodSummary.html +7 -7
  326. data/doc/CzechPostB2bClient/ResponseCodes/InvalidWeightForService11.html +7 -7
  327. data/doc/CzechPostB2bClient/ResponseCodes/InvalidWidth.html +7 -7
  328. data/doc/CzechPostB2bClient/ResponseCodes/InvalidZPROOrderNumber.html +7 -7
  329. data/doc/CzechPostB2bClient/ResponseCodes/InvalidZPROOrderNumberFormat.html +7 -7
  330. data/doc/CzechPostB2bClient/ResponseCodes/InvalidostCodeOrCity.html +7 -7
  331. data/doc/CzechPostB2bClient/ResponseCodes/MIssingParcelCode.html +7 -7
  332. data/doc/CzechPostB2bClient/ResponseCodes/MissingAddressee.html +7 -7
  333. data/doc/CzechPostB2bClient/ResponseCodes/MissingAddresseeCity.html +7 -7
  334. data/doc/CzechPostB2bClient/ResponseCodes/MissingAddresseeStreet.html +7 -7
  335. data/doc/CzechPostB2bClient/ResponseCodes/MissingAddresseeZipCode.html +7 -7
  336. data/doc/CzechPostB2bClient/ResponseCodes/MissingCODAmount.html +7 -7
  337. data/doc/CzechPostB2bClient/ResponseCodes/MissingCODAmountType.html +7 -7
  338. data/doc/CzechPostB2bClient/ResponseCodes/MissingCategoryCustomDecalaration.html +7 -7
  339. data/doc/CzechPostB2bClient/ResponseCodes/MissingCompanyName.html +7 -7
  340. data/doc/CzechPostB2bClient/ResponseCodes/MissingContentCustomGood.html +7 -7
  341. data/doc/CzechPostB2bClient/ResponseCodes/MissingCurrencyCustomDeclaration.html +7 -7
  342. data/doc/CzechPostB2bClient/ResponseCodes/MissingHandlingInstructions.html +7 -7
  343. data/doc/CzechPostB2bClient/ResponseCodes/MissingHeight.html +7 -7
  344. data/doc/CzechPostB2bClient/ResponseCodes/MissingHsCodeCustomGood.html +7 -7
  345. data/doc/CzechPostB2bClient/ResponseCodes/MissingIsoCustomGood.html +7 -7
  346. data/doc/CzechPostB2bClient/ResponseCodes/MissingLength.html +7 -7
  347. data/doc/CzechPostB2bClient/ResponseCodes/MissingPalettsNumber.html +7 -7
  348. data/doc/CzechPostB2bClient/ResponseCodes/MissingParcelCustomGood.html +7 -7
  349. data/doc/CzechPostB2bClient/ResponseCodes/MissingParcelCustomGoods.html +7 -7
  350. data/doc/CzechPostB2bClient/ResponseCodes/MissingPhoneNumber.html +7 -7
  351. data/doc/CzechPostB2bClient/ResponseCodes/MissingPrefix.html +7 -7
  352. data/doc/CzechPostB2bClient/ResponseCodes/MissingPrice.html +7 -7
  353. data/doc/CzechPostB2bClient/ResponseCodes/MissingPriceCustomGood.html +7 -7
  354. data/doc/CzechPostB2bClient/ResponseCodes/MissingQuantityCustomGood.html +7 -7
  355. data/doc/CzechPostB2bClient/ResponseCodes/MissingRequiredAddresseeDocument.html +7 -7
  356. data/doc/CzechPostB2bClient/ResponseCodes/MissingRequiredAddresseeDocumentDuplicate.html +7 -7
  357. data/doc/CzechPostB2bClient/ResponseCodes/MissingRequiredAddresseeEmail.html +7 -7
  358. data/doc/CzechPostB2bClient/ResponseCodes/MissingRequiredEmail.html +7 -7
  359. data/doc/CzechPostB2bClient/ResponseCodes/MissingRequiredFirstNameAddresseeDocument.html +7 -7
  360. data/doc/CzechPostB2bClient/ResponseCodes/MissingRequiredMRNCode.html +7 -7
  361. data/doc/CzechPostB2bClient/ResponseCodes/MissingRequiredMobileNumber.html +7 -7
  362. data/doc/CzechPostB2bClient/ResponseCodes/MissingRequiredMobileNumberOrEmail.html +7 -7
  363. data/doc/CzechPostB2bClient/ResponseCodes/MissingRequiredParcelCode.html +7 -7
  364. data/doc/CzechPostB2bClient/ResponseCodes/MissingRequiredPayday.html +7 -7
  365. data/doc/CzechPostB2bClient/ResponseCodes/MissingRequiredPhoneNumber.html +7 -7
  366. data/doc/CzechPostB2bClient/ResponseCodes/MissingRequiredPhoneNumberOrEmail.html +7 -7
  367. data/doc/CzechPostB2bClient/ResponseCodes/MissingRequiredPhoneNumberOrWhat.html +7 -7
  368. data/doc/CzechPostB2bClient/ResponseCodes/MissingRequiredPrice.html +7 -7
  369. data/doc/CzechPostB2bClient/ResponseCodes/MissingRequiredService.html +7 -7
  370. data/doc/CzechPostB2bClient/ResponseCodes/MissingRequiredService10.html +7 -7
  371. data/doc/CzechPostB2bClient/ResponseCodes/MissingRequiredService1AB.html +7 -7
  372. data/doc/CzechPostB2bClient/ResponseCodes/MissingRequiredService1X.html +7 -7
  373. data/doc/CzechPostB2bClient/ResponseCodes/MissingRequiredService2X.html +7 -7
  374. data/doc/CzechPostB2bClient/ResponseCodes/MissingRequiredService3X.html +7 -7
  375. data/doc/CzechPostB2bClient/ResponseCodes/MissingRequiredService3XTrinity.html +7 -7
  376. data/doc/CzechPostB2bClient/ResponseCodes/MissingRequiredService4.html +7 -7
  377. data/doc/CzechPostB2bClient/ResponseCodes/MissingRequiredService4X.html +7 -7
  378. data/doc/CzechPostB2bClient/ResponseCodes/MissingRequiredService4x.html +7 -7
  379. data/doc/CzechPostB2bClient/ResponseCodes/MissingRequiredVoucherPrice.html +7 -7
  380. data/doc/CzechPostB2bClient/ResponseCodes/MissingRequiredZPROOrderNumber.html +7 -7
  381. data/doc/CzechPostB2bClient/ResponseCodes/MissingReturnInstructions.html +7 -7
  382. data/doc/CzechPostB2bClient/ResponseCodes/MissingReturnNumberDays.html +7 -7
  383. data/doc/CzechPostB2bClient/ResponseCodes/MissingSenderEmail.html +7 -7
  384. data/doc/CzechPostB2bClient/ResponseCodes/MissingSizeCategory.html +7 -7
  385. data/doc/CzechPostB2bClient/ResponseCodes/MissingSurname.html +7 -7
  386. data/doc/CzechPostB2bClient/ResponseCodes/MissingVariableSymbol.html +7 -7
  387. data/doc/CzechPostB2bClient/ResponseCodes/MissingVariableSymbolDuplicate.html +7 -7
  388. data/doc/CzechPostB2bClient/ResponseCodes/MissingWeightCustomGood.html +7 -7
  389. data/doc/CzechPostB2bClient/ResponseCodes/MissingWidth.html +7 -7
  390. data/doc/CzechPostB2bClient/ResponseCodes/NoContractService41.html +7 -7
  391. data/doc/CzechPostB2bClient/ResponseCodes/NoContractServiceReturnReceipt.html +7 -7
  392. data/doc/CzechPostB2bClient/ResponseCodes/NotExistingOrderNumber.html +7 -7
  393. data/doc/CzechPostB2bClient/ResponseCodes/Ok.html +7 -7
  394. data/doc/CzechPostB2bClient/ResponseCodes/OverenoVecerniDorucovani.html +7 -7
  395. data/doc/CzechPostB2bClient/ResponseCodes/PalettsNumberOutOfRange.html +7 -7
  396. data/doc/CzechPostB2bClient/ResponseCodes/ParcelCodeNotAllowed.html +7 -7
  397. data/doc/CzechPostB2bClient/ResponseCodes/ParcelCodeNotInAssignedRange.html +7 -7
  398. data/doc/CzechPostB2bClient/ResponseCodes/ParcelDoesNotMeetTheRequirementsForm.html +7 -7
  399. data/doc/CzechPostB2bClient/ResponseCodes/PriceAndCODAmountTooBig.html +7 -7
  400. data/doc/CzechPostB2bClient/ResponseCodes/PriceOutOfRange.html +7 -7
  401. data/doc/CzechPostB2bClient/ResponseCodes/PriceTooBig.html +7 -7
  402. data/doc/CzechPostB2bClient/ResponseCodes/PriceTooLow.html +7 -7
  403. data/doc/CzechPostB2bClient/ResponseCodes/ResponsibleConsignmentNumberCannotBeImported.html +7 -7
  404. data/doc/CzechPostB2bClient/ResponseCodes/ResponsibleConsignmentNumberOutOfRange.html +7 -7
  405. data/doc/CzechPostB2bClient/ResponseCodes/ServicesCombinationNotAllowed.html +7 -7
  406. data/doc/CzechPostB2bClient/ResponseCodes/TransmissionAlreadyClosed.html +7 -7
  407. data/doc/CzechPostB2bClient/ResponseCodes/TransmissionNotExists.html +7 -7
  408. data/doc/CzechPostB2bClient/ResponseCodes/TransmissionOpened.html +7 -7
  409. data/doc/CzechPostB2bClient/ResponseCodes/TransmissionUnfinished.html +7 -7
  410. data/doc/CzechPostB2bClient/ResponseCodes/UnauthorizedAccess.html +7 -7
  411. data/doc/CzechPostB2bClient/ResponseCodes/UnknownAddresseeCity.html +7 -7
  412. data/doc/CzechPostB2bClient/ResponseCodes/UnknownAddresseePostCode.html +7 -7
  413. data/doc/CzechPostB2bClient/ResponseCodes/UnknownPrefix.html +7 -7
  414. data/doc/CzechPostB2bClient/ResponseCodes/VariableSymbolIsNotNumber.html +7 -7
  415. data/doc/CzechPostB2bClient/ResponseCodes/WeightCustomGoodOutOfRange.html +7 -7
  416. data/doc/CzechPostB2bClient/ResponseCodes/WeightIsOutOfRange.html +7 -7
  417. data/doc/CzechPostB2bClient/ResponseCodes/WeightIsOutOfRangeDuplicate.html +7 -7
  418. data/doc/CzechPostB2bClient/ResponseParsers.html +8 -8
  419. data/doc/CzechPostB2bClient/ResponseParsers/BaseParser.html +8 -8
  420. data/doc/CzechPostB2bClient/ResponseParsers/GetParcelStateParser.html +31 -16
  421. data/doc/CzechPostB2bClient/ResponseParsers/GetParcelsPrintingParser.html +21 -21
  422. data/doc/CzechPostB2bClient/ResponseParsers/GetResultParcelsParser.html +18 -12
  423. data/doc/CzechPostB2bClient/ResponseParsers/GetStatsParser.html +6 -6
  424. data/doc/CzechPostB2bClient/ResponseParsers/ParcelServiceSyncParser.html +805 -0
  425. data/doc/CzechPostB2bClient/ResponseParsers/SendParcelsParser.html +153 -10
  426. data/doc/CzechPostB2bClient/Services.html +8 -8
  427. data/doc/CzechPostB2bClient/Services/AddressSheetsGenerator.html +9 -9
  428. data/doc/CzechPostB2bClient/Services/ApiCaller.html +11 -7
  429. data/doc/CzechPostB2bClient/Services/Communicator.html +7 -7
  430. data/doc/CzechPostB2bClient/Services/DeliveringInspector.html +8 -8
  431. data/doc/CzechPostB2bClient/Services/Orchestrator.html +6 -6
  432. data/doc/CzechPostB2bClient/Services/ParcelsAsyncSender.html +402 -0
  433. data/doc/CzechPostB2bClient/Services/ParcelsSendProcessUpdater.html +8 -8
  434. data/doc/CzechPostB2bClient/Services/ParcelsSender.html +21 -233
  435. data/doc/CzechPostB2bClient/Services/ParcelsSubmissionCloser.html +12 -12
  436. data/doc/CzechPostB2bClient/Services/ParcelsSyncSender.html +464 -0
  437. data/doc/CzechPostB2bClient/Services/TimePeriodStatisticator.html +10 -10
  438. data/doc/CzechPostB2bClient/Services/XsdsDownloader.html +289 -0
  439. data/doc/SteppedService.html +8 -7
  440. data/doc/SteppedService/Base.html +31 -31
  441. data/doc/SteppedService/Errors.html +6 -6
  442. data/doc/_index.html +739 -23
  443. data/doc/class_list.html +3 -3
  444. data/doc/css/style.css +2 -2
  445. data/doc/file.README.html +219 -194
  446. data/doc/file_list.html +2 -2
  447. data/doc/frames.html +2 -2
  448. data/doc/index.html +219 -194
  449. data/doc/js/app.js +14 -3
  450. data/doc/method_list.html +278 -70
  451. data/doc/top-level-namespace.html +6 -6
  452. data/lib/czech_post_b2b_client.rb +2 -1
  453. data/lib/czech_post_b2b_client/b2b_errors.rb +8 -3
  454. data/lib/czech_post_b2b_client/configuration.rb +12 -7
  455. data/lib/czech_post_b2b_client/logger.rb +30 -0
  456. data/lib/czech_post_b2b_client/post_services.rb +2 -1
  457. data/lib/czech_post_b2b_client/printing_templates.rb +130 -44
  458. data/lib/czech_post_b2b_client/request_builders/get_parcels_printing_builder.rb +1 -5
  459. data/lib/czech_post_b2b_client/request_builders/parcel_service_sync_builder.rb +20 -48
  460. data/lib/czech_post_b2b_client/request_builders/send_parcels_builder.rb +39 -20
  461. data/lib/czech_post_b2b_client/response_codes.rb +320 -205
  462. data/lib/czech_post_b2b_client/response_parsers/base_parser.rb +1 -3
  463. data/lib/czech_post_b2b_client/response_parsers/get_result_parcels_parser.rb +1 -3
  464. data/lib/czech_post_b2b_client/response_parsers/parcel_service_sync_parser.rb +2 -4
  465. data/lib/czech_post_b2b_client/services/api_caller.rb +14 -2
  466. data/lib/czech_post_b2b_client/services/delivering_inspector.rb +0 -2
  467. data/lib/czech_post_b2b_client/services/parcels_send_process_updater.rb +1 -1
  468. data/lib/czech_post_b2b_client/services/parcels_sync_sender.rb +2 -1
  469. data/lib/czech_post_b2b_client/version.rb +1 -1
  470. metadata +114 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 07426ba1b8f688f648faebda86173b514127a3b9
4
- data.tar.gz: 8cfd179622eaa1aac8b0043acf01089a9d66e1b9
2
+ SHA256:
3
+ metadata.gz: 5b3d8606fd4218b5344ee5b5f6e6f9fae333851654d0b869d57d1c1f98fc16a8
4
+ data.tar.gz: 8c2833143397c0b9d909f63da014f0228a1cd26d254765176b95b523e1ddf231
5
5
  SHA512:
6
- metadata.gz: 538d4a70a50d9b48d3740e67eadcdd82ea8965acd321cbb9bb690ed7cb987966bc03f757ccff7115d67287a581f6dd53a0e948ea14a70168a95e89bb1236c330
7
- data.tar.gz: 5549ec8f20778309738add18ec827a4b20cb449a307e1825e7bd1b2891608129ef1f806e4e73eb101e700640a57d76e0f79f7c0275a291a993f9addcab80bb49
6
+ metadata.gz: 248c7f29bdcbb1d7a50e55d7a81bc72eba16d0dfdbd4b980492501d62d280b8686823130eb3ceaf5853839825639d3aacca31e29777db0182da7407f73e98a67
7
+ data.tar.gz: e92e86057e70d34eb7cb70494545708fa865a6cec42f2c8c0e57106e076dd8fddef4857fe68e6af0503718dc52c7146e6cdd58d56138abda7715f572d26ed26f
@@ -15,7 +15,7 @@ AllCops:
15
15
  Documentation:
16
16
  Enabled: false
17
17
  Layout/LineLength:
18
- Max: 120
18
+ Max: 140
19
19
  Metrics/AbcSize:
20
20
  Max: 20
21
21
  Metrics/MethodLength:
@@ -2,11 +2,40 @@
2
2
 
3
3
  All changes to the gem are documented here.
4
4
 
5
+ ## [1.2.5] - 2020-10-06
6
+
7
+ - `errorDescription` from `B2BError` response is now merged into error message.
8
+
9
+ ## [1.2.4] - 2020-10-06
10
+
11
+ - Added `configuration.log_messages_at_least_as` option, to be able debug client behaviour when app log level is higher (eg. production)
12
+
13
+ ## [1.2.3] - 2020-08-21
14
+
15
+ - Corrected order in XML `sequence` elements
16
+ - Added `schemaLocation` to root element and placed publicly accessible XSDs into Github repo
17
+
18
+ ## [1.2.2] - 2020-08-19
19
+
20
+ - Printing templates now include @page_dimensions
21
+ - Forced secure SSL ciphers for requests
22
+ - `examples/try_api_call.rb` refactored to be more versatile (download XSDs [:do not work], pritn_selected_combinations)
23
+
24
+ ## [1.2.0] - 2020-06-07
25
+
26
+ - **Breaking** Introducing new Printing templates, improved some template names and scopes
27
+ - Added options `custom_card_number` and `print_options` to `Configuration`
28
+
29
+ ## [1.1.0] - 2020-05-28
30
+
31
+ - Introducing new API documentation from Czech Post
32
+ - Added service `ParcelSyncSender` service which uses newly discovered `parcelsServiceSync` API endpoint
33
+ - Renamed `ParcelSender` to `ParcelAsyncSender` . And created deprecating clone `ParcelSender`, so no Breaking change! If You usit it calls `ParcelAsyncSender` and displays deprecation message.
5
34
 
6
35
  ## [1.0.3] - 2020-05-20
7
36
 
8
37
  - Added Czech Post service DiscountForOnlinePosting.
9
- - **Breaking**: Renamed Post service size classes `CzechPostB2bClient::PostServices::Size???` to `CzechPostB2bClient::PostServices::ParcelSize???` (eg. : `CzechPostB2bClient::PostServices::ParcelSizeXL`)
38
+ - **Breaking**: Renamed Post service "Size" classes `CzechPostB2bClient::PostServices::Size???` to `CzechPostB2bClient::PostServices::ParcelSize???` (eg. : `CzechPostB2bClient::PostServices::ParcelSizeXL`)
10
39
  I know, that I have **breaking** in every new version, I hope You are not fast enough.
11
40
 
12
41
  ## [1.0.2] - 2020-05-08
@@ -23,4 +52,3 @@ Production ready release
23
52
  ### Added
24
53
  - All the stuff
25
54
 
26
-
data/README.md CHANGED
@@ -1,3 +1,40 @@
1
+
2
+ # FRESH NEWS
3
+ After full usage in production (vyvolej.to, squared.one), we found that Czech POst have trouble with `parcelServiceSync` (maybe `sendParcels` too). When You try to register package with `:customs_documents`, you get `INVALID_BATCH` response with no error, but with `parcelCode`:
4
+ ```
5
+ <?xml version="1.0" encoding="UTF-8"?>
6
+ <v1:b2bSyncResponse xmlns:v1="https://b2b.postaonline.cz/schema/B2BCommon-v1" xmlns:v1_1="https://b2b.postaonline.cz/schema/POLServices-v1">
7
+ <v1:header>
8
+ <v1:b2bRequestHeader>
9
+ <v1:idExtTransaction>1</v1:idExtTransaction>
10
+ <v1:timeStamp>2020-08-22T07:32:20.496Z</v1:timeStamp>
11
+ <v1:idContract>356936003</v1:idContract>
12
+ </v1:b2bRequestHeader>
13
+ </v1:header>
14
+ <v1:serviceData><v1_1:parcelServiceSyncResponse>
15
+ <v1_1:responseHeader>
16
+ <v1_1:resultHeader>
17
+ <v1_1:responseCode>19</v1_1:responseCode>
18
+ <v1_1:responseText>BATCH_INVALID</v1_1:responseText>
19
+ </v1_1:resultHeader>
20
+ <v1_1:resultParcelData>
21
+ <v1_1:recordNumber>52427</v1_1:recordNumber>
22
+ <v1_1:parcelCode>RR950819194CZ</v1_1:parcelCode>
23
+ <v1_1:parcelDataResponse>
24
+ <v1_1:responseCode>1</v1_1:responseCode>
25
+ <v1_1:responseText>OK</v1_1:responseText>
26
+ </v1_1:parcelDataResponse>
27
+ </v1_1:resultParcelData>
28
+ </v1_1:responseHeader>
29
+ </v1_1:parcelServiceSyncResponse></v1:serviceData>
30
+ </v1:b2bSyncResponse>
31
+ ```
32
+
33
+ *Reality is, that Parcel IS NOT registered!*
34
+
35
+ They say, that this should be fixed in 2020-10-01 release. But I still can not grab new XSD.
36
+
37
+
1
38
  # CzechPostB2bClient
2
39
  Accessing B2B API of Czech Post for bulk processing of parcels ("B2B - WS PodáníOnline").
3
40
 
@@ -10,6 +47,7 @@ There are these supported operations of API:
10
47
  - *getParcelState* - returns all known states for listed parcels [HTTP GET - sync response]
11
48
  - *getParcelsPrinting* - returns PDF with address labels/stickers for listed parcels [HTTP GET - sync response]
12
49
 
50
+ ## Development of this gem is donated by [Squared s.r.o.](https://www.vyvolej.to)
13
51
 
14
52
  ## Installation
15
53
  ### 1) Registration at Czech Post (CP)
@@ -38,216 +76,237 @@ gem 'czech_post_b2b_client'
38
76
 
39
77
  And then execute:
40
78
 
41
- $ bundle
79
+ ```
80
+ $ bundle
81
+ ```
42
82
 
43
83
  Or install it yourself as:
44
84
 
45
85
  $ gem install czech_post_b2b_client
46
86
 
47
87
  ### 4) Setting up gem
48
- Set up your `contract_id`, `customer_id` (both from CP signed contract), `certificate_path`, `private_key_path` and `private_key_password` in configuration:
49
- ```
50
- CzechPostB2bClient.configure do |config|
51
- config.contract_id = 'contract_id'
52
- config.customer_id = 'customer_id'
53
- config.certificate_path = 'full_path/to/your/postsignum_certificate.pem'
54
- config.private_key_path = 'full_path/to/your/postsignum_private.key'
55
- config.private_key_password = 'your_password or nil'
56
-
57
- # this actually do not work, I have to use `sending_post_office_location_number`. But it is REQUIRED!
58
- config.sending_post_office_code = 12_345 # PSC of post office where parcels will be physically delivered and submitted
59
-
60
- # and You can override defaults
61
- # config.sending_post_office_location_number => 1
62
- # config.namespaces #XML namespaces
63
- # config.language => :cs # other languages are not supported now
64
- # config.logger => ::Rails.logger or ::Logger.new(STDOUT),
65
- # config.b2b_api_base_uri => 'https://b2b.postaonline.cz/services/POLService/v1'
66
- end
67
- ```
68
-
69
- - `contract_id` is _"ID CČK"_ (can be found in contract; eg.: _"2511327004"_)
70
- - `customer_id` is _"Technologické číslo"_ (can be found in contract; eg.: _"U123"_ or _"L03022"_; also is visible at [PodaníOnline](https://www.postaonline.cz/podanionline/PrednastaveniUdajuZasilky.action)
71
-
72
- Because PostSignum Certificate Authority is not trusted by default, correct certificate chain is in `certs/` folder. If You have problem with them, create a issue here. Maybe they are outdated now.
88
+ Set up your `contract_id`, `customer_id` (both from CP signed contract), `certificate_path`, `private_key_path` and `private_key_password` in configuration:
89
+ ```
90
+ CzechPostB2bClient.configure do |config|
91
+ config.contract_id = 'contract_id'
92
+ config.customer_id = 'customer_id'
93
+ config.certificate_path = 'full_path/to/your/postsignum_certificate.pem'
94
+ config.private_key_path = 'full_path/to/your/postsignum_private.key'
95
+ config.private_key_password = 'your_password or nil'
96
+
97
+ # these two just save Your time, can be overwritten for each call
98
+ config.custom_card_number = 'ABCD123456'
99
+ config.print_options = { template_id: 21, # 'adresní štítek bianco - samostatný'
100
+ margin_in_mm: { top: 0, left: 0 } }
101
+
102
+ # this actually do not work, I have to use `sending_post_office_location_number`. But it is REQUIRED!
103
+ config.sending_post_office_code = 12_345 # PSC of post office where parcels will be physically delivered and submitted
104
+
105
+ # and You can override defaults
106
+ # config.sending_post_office_location_number => 1
107
+ # config.namespaces #XML namespaces
108
+ # config.language => :cs # other languages are not supported now
109
+ # config.logger => ::Rails.logger or ::Logger.new(STDOUT),
110
+ # config.b2b_api_base_uri => 'https://b2b.postaonline.cz/services/POLService/v1'
111
+ # config.log_messages_at_least_as = :debug
112
+ end
113
+ ```
114
+
115
+ - `contract_id` is _"ID CČK"_ (can be found in contract; eg.: _"2511327004"_)
116
+ - `customer_id` is _"Technologické číslo"_ (can be found in contract; eg.: _"U123"_ or _"L03022"_; also is visible at [PodaníOnline](https://www.postaonline.cz/podanionline/PrednastaveniUdajuZasilky.action)
117
+
118
+ Because PostSignum Certificate Authority is not trusted by default, correct certificate chain is in `certs/` folder. If You have problem with them, create a issue here. Maybe they are outdated now.
73
119
 
74
120
  ## Usage
75
- **You have to know which parcel type (according to CP) you sending!** Eg. 'BA' or 'RR'. See [`documents/parcel_types.md`](./documents/parcel_types.md).
76
-
77
- **And what services You will use for each parcel**, see [`documents/services_list.md`](./documents/services_list.md) and [`documents/parcels_type_and_services_restrictions.md`](./documents/parcels_type_and_services_restrictions.md).
78
-
79
- Hashes used is service calls bellow:
80
- ```
81
- short_sender_data = { address: {
82
- company_name: 'Oriflame',
83
- addition_to_name: 'perfume', # optional
84
- street: 'V olšinách',
85
- house_number: '16',
86
- city_part: 'Strašnice',
87
- city: 'Praha',
88
- post_code: 10_000,
89
- },
90
- mobile_phone: '+420777888999',
91
- email: 'rehor.jan@cpost.cz' }
92
- sending_data = { contract_id: configuration.contract_id,
93
- parcels_sending_date: Date.today,
94
- sending_post_office_location_number: 1,
95
- sender: short_sender_data,
96
- cash_on_delivery: {
97
- address: short_sender_data[:address]
98
- bank_account: '123456-1234567890/1234'
99
- } }
100
-
101
- short_addressee_data = { address: {
102
- first_name: 'Petr',
103
- last_name: 'Foton',
104
- street: 'Fischerova',
105
- house_number: '686',
106
- sequence_number: '32',
107
- city_part: 'Nové Sady',
108
- city: 'Olomouc',
109
- post_code: 77_900
110
- },
111
- email: 'foton@github.com',
112
- mobile_phone: '+420777888999' }
113
-
114
- parcels = [
115
- {
116
- addressee: short_addressee_data,
117
- params: { parcel_id: 'package_1of2',
118
- parcel_code_prefix: 'BA',
119
- weight_in_kg: 1.0,
120
- parcel_order: 1,
121
- parcels_count: 2 },
122
- services: [70, 7, 'S']
123
- },
124
- {
125
- addressee: short_addressee_data,
126
- params: { parcel_id: 'package_2of2',
127
- parcel_code_prefix: 'BA',
128
- weight_in_kg: 1.6,
129
- parcel_order: 2,
130
- parcels_count: 2 },
131
- services: [70,'S']
132
- },
133
- {
134
- addressee: short_addressee_data,
135
- params: { parcel_id: 'package_3',
136
- parcel_code_prefix: 'BA',
137
- weight_in_kg: 1.9 },
138
- services: [7,'M']
139
- }
140
- ]
121
+ **You have to know which parcel type (according to CP) you sending!** Eg. 'BA' or 'RR'. See [`documents/parcel_types.md`](./documents/parcel_types.md).
122
+
123
+ **And what services You will use for each parcel**, see [`documents/services_list.md`](./documents/services_list.md) and [`documents/parcels_type_and_services_restrictions.md`](./documents/parcels_type_and_services_restrictions.md).
124
+
125
+ Hashes used is service calls bellow:
126
+
141
127
  ```
128
+ short_sender_data = { address: {
129
+ company_name: 'Oriflame',
130
+ addition_to_name: 'perfume', # optional
131
+ street: 'V olšinách',
132
+ house_number: '16',
133
+ city_part: 'Strašnice',
134
+ city: 'Praha',
135
+ post_code: 10_000,
136
+ },
137
+ mobile_phone: '+420777888999',
138
+ email: 'rehor.jan@cpost.cz' }
139
+ sending_data = { contract_id: configuration.contract_id,
140
+ parcels_sending_date: Date.today,
141
+ sending_post_office_location_number: 1,
142
+ sender: short_sender_data,
143
+ cash_on_delivery: {
144
+ address: short_sender_data[:address]
145
+ bank_account: '123456-1234567890/1234'
146
+ } }
147
+
148
+ short_addressee_data = { address: {
149
+ first_name: 'Petr',
150
+ last_name: 'Foton',
151
+ street: 'Fischerova',
152
+ house_number: '686',
153
+ sequence_number: '32',
154
+ city_part: 'Nové Sady',
155
+ city: 'Olomouc',
156
+ post_code: 77_900
157
+ },
158
+ email: 'foton@github.com',
159
+ mobile_phone: '+420777888999' }
160
+
161
+ parcels = [
162
+ {
163
+ addressee: short_addressee_data,
164
+ params: { parcel_id: 'package_1of2',
165
+ parcel_code_prefix: 'BA',
166
+ weight_in_kg: 1.0,
167
+ parcel_order: 1,
168
+ parcels_count: 2 },
169
+ services: [70, 7, 'S']
170
+ },
171
+ {
172
+ addressee: short_addressee_data,
173
+ params: { parcel_id: 'package_2of2',
174
+ parcel_code_prefix: 'BA',
175
+ weight_in_kg: 1.6,
176
+ parcel_order: 2,
177
+ parcels_count: 2 },
178
+ services: [70,'S']
179
+ },
180
+ {
181
+ addressee: short_addressee_data,
182
+ params: { parcel_id: 'package_3',
183
+ parcel_code_prefix: 'BA',
184
+ weight_in_kg: 1.9 },
185
+ services: [7,'M']
186
+ }
187
+ ]
188
+ ```
189
+
190
+
191
+ 1 ) Pack your parcel(s)
142
192
 
193
+ 2 ) If you have many parcels and treats them as bulk, use ASYNC registration process (steps 3a - 7a)[15 000 calls per day allowed]. If You want to register parcel and get parcel_code and address sheet immediatelly (3 sec), use SYNC process (step 3b)[1 000 calls per day allowed]
143
194
 
144
- 1) Pack your parcel(s)
145
-
146
- 2) Call `ParcelsAsyncSender`, this will store in `result` `transmission_id` and expected time to ask for results.
147
- ```
148
- psender = CzechPostB2bClient::Services::ParcelsAsyncSender.call(sending_data: sending_data, parcels: parcels)
149
-
150
- if psender.success?
151
- result = psender.result
152
- processing_end_time_utc = (result.processing_end_expected_at - (60 *60)).utc # API returns time in CET but marked as UTC
153
- transaction_id = result.transaction_id
154
- else
155
- puts psender.errors.full_messages
156
- end
157
- ```
158
- For now, `parcels` is array of complicated hashes; each parcel must have `parcel_id` key (your ID of parcel).
159
-
160
- 3) When such expected time pass, ask for results by calling `ParcelsSendProcessUpdater`.
161
-
162
- You can get error `Processing is not yet finished` or hash based on `parcel_id` keys.
163
- Eg. :
164
- ```
165
- pudater = CzechPostB2bClient::Services::ParcelsSendProcessUpdater.call(transmission_id: transmission_id)
166
-
167
- if pupdater.success?
168
- update_my_parcels_with(pupdater.result) # => { 'parcel_1of2' => { parcel_code: 'BA12354678', states: [{ code: 1, text: 'OK' }]},
169
- # 'parcel_2of2' => { parcel_code: 'BA12354679', states: [{ code: 1, text: 'OK' }]},
170
- # 'parcel_3' => { parcel_code: 'BA12354680', states: [{ code: 1, text: 'OK' }]}
171
- else
172
- puts psender.errors.full_messages # => "response_state: ResponseCode[19 BATCH_INVALID] V dávce se vyskytují chybné záznamy"
173
- # "parcels: Parcel[parcel_2of2] => ResponseCode[104 INVALID_WEIGHT] Hmotnost mimo povolený rozsah"
174
- # "parcels: Parcel[parcel_2of2] => ResponseCode[261 MISSING_SIZE_CATEGORY] Neuvedena rozměrová kategorie zásilky"
175
- # "parcels: Parcel[parcel_3] => ResponseCode[310 INVALID_PREFIX] Neplatný typ zásilky"
176
- end
177
- ```
178
- `parcel_code` is CzechPost ID of parcel and is used in following calls.
179
-
180
- 4) Print address sheets of parcels(s) by calling `AddressSheetsGenerator`.
181
- See [template_classes](./lib/czech_post_b2b_client/printing_templates.rb) for available templates.
182
- Eg. :
183
- ```
184
- parcel_codes = %w[RA123456789 RR123456789F RR123456789G] # beware of parcel_id!
185
- options = {
186
- customer_id: configuration.customer_id, # required
187
- contract_number: configuration.contract_id, # not required
188
- template_id: 24, # 'obalka 3 - B4' #
189
- margin_in_mm: { top: 5, left: 3 } # required
190
- }
191
-
192
- adrprinter = CzechPostB2bClient::Services::AddressSheetsGenerator.call(parcel_codes: parcel_codes, options: options )
193
-
194
- if adrprinter.success?
195
- File.write("adrsheet.pdf", adrprinter.result.pdf_content)
196
- else
197
- puts(adrprinter.errors.full_messages)
198
- end
199
- ```
200
-
201
- 5) Repeat steps 1-4 until You decide to deliver packages to post office.
202
-
203
- 6) Close your parcels submission with call `ParcelsSubmissionCloser.call(sending_data: sender_data)`.
204
-
205
- 7) _They will await You at post office with warm welcome (hopefully). Parcels which are not delivered within 60 days are removed from CzechPost systems for free :-)_
206
-
207
- 8) You can check current status of delivering with `DeliveringInspector`, which will return hash based on `parcel_code` keys.
208
- Eg. :
209
- ```
210
- delivery_boy = CzechPostB2bClient::Services::DeliveringInspector.call(parcel_codes: parcel_codes)
211
-
212
- if delivery_boy.success?
213
- update_my_parcels_delivery_status_with(delivery_boy.result)
214
- # result is like:
215
- # { 'RA12345687' => { current_state: { id: '91',
216
- date: Date.parse('2015-09-04'),
217
- text: 'Dodání zásilky.',
218
- post_code: '25756',
219
- post_name: 'Neveklov'},
220
- deposited_until: Date.new(2015, 9, 2),
221
- deposited_for_days: 15,
222
- all_states: [
223
- { id: '21', date: Date.parse('2015-09-02'), text: 'Podání zásilky.', post_code: '26701', post_name: 'Králův Dvůr u Berouna' },
224
- { id: '-F', date: Date.parse('2015-09-03'), text: 'Vstup zásilky na SPU.', post_code: '22200', post_name: 'SPU Praha 022' },
225
- { id: '-I', date: Date.parse('2015-09-03'), text: 'Výstup zásilky z SPU.', post_code: '22200', post_name: 'SPU Praha 022' },
226
- { id: '-B', date: Date.parse('2015-09-03'), text: 'Přeprava zásilky k dodací poště.', post_code: nil, post_name: nil },
227
- { id: '51', date: Date.parse('2015-09-04'), text: 'Příprava zásilky k doručení.', post_code: '25607', post_name: 'Depo Benešov 70' },
228
- { id: '53', date: Date.parse('2015-09-04'), text: 'Doručování zásilky.', post_code: '25756', post_name: 'Neveklov' },
229
- { id: '91', date: Date.parse('2015-09-04'), text: 'Dodání zásilky.', post_code: '25756', post_name: 'Neveklov' }
230
- ]},
231
- 'BA56487125' => {...}
232
- }
233
- else
234
- puts(delivery_boy.errors.full_messages)
235
- end
236
- ```
237
-
238
- 9) And You can always ask for statistics!
239
- ```
240
- tps = CzechPostB2bClient::Services::TimePeriodStatisticator.call(from_date: Date.today - 5, to_date: Date.today)
241
- if tps.success?
242
- result = tps.result
243
- result.requests.total # => 26,
244
- result.requests.with_errors # => 16
245
- result.requests.successful # => 10
246
- result.imported_parcels # => 3
247
- else
248
- puts(tps.errors.full_messages)
249
- end
250
- ```
195
+ 3a) Call `ParcelsAsyncSender`, this will setup `transmission_id` and expected time to ask for results.
196
+ ```
197
+ psender = CzechPostB2bClient::Services::ParcelsAsyncSender.call(sending_data: sending_data, parcels: parcels)
198
+
199
+ if psender.success?
200
+ result = psender.result
201
+ processing_end_time_utc = (result.processing_end_expected_at - (60 *60)).utc # API returns time in CET but marked as UTC
202
+ transaction_id = result.transaction_id
203
+ else
204
+ puts psender.errors.full_messages
205
+ end
206
+ ```
207
+ For now, `parcels` is array of complicated hashes; each parcel must have `parcel_id` key (your ID of parcel).
208
+
209
+ 4a) When such expected time pass, ask for results by calling `ParcelsSendProcessUpdater`. You can get error `Processing is not yet finished` or hash based on `parcel_id` keys.
210
+ ```
211
+ pudater = CzechPostB2bClient::Services::ParcelsSendProcessUpdater.call(transmission_id: transmission_id)
212
+
213
+ if pupdater.success?
214
+ update_my_parcels_with(pupdater.result) # => { 'parcel_1of2' => { parcel_code: 'BA12354678', states: [{ code: 1, text: 'OK' }]},
215
+ # 'parcel_2of2' => { parcel_code: 'BA12354679', states: [{ code: 1, text: 'OK' }]},
216
+ # 'parcel_3' => { parcel_code: 'BA12354680', states: [{ code: 1, text: 'OK' }]}
217
+ else
218
+ puts psender.errors.full_messages # => "response_state: ResponseCode[19 BATCH_INVALID] V dávce se vyskytují chybné záznamy"
219
+ # "parcels: Parcel[parcel_2of2] => ResponseCode[104 INVALID_WEIGHT] Hmotnost mimo povolený rozsah"
220
+ # "parcels: Parcel[parcel_2of2] => ResponseCode[261 MISSING_SIZE_CATEGORY] Neuvedena rozměrová kategorie zásilky"
221
+ # "parcels: Parcel[parcel_3] => ResponseCode[310 INVALID_PREFIX] Neplatný typ zásilky"
222
+ end
223
+ ```
224
+ `parcel_code` is CzechPost Tracking number of parcel and is used in following calls.
225
+
226
+ 5a) Print address sheets of parcel(s) by calling `AddressSheetsGenerator`.
227
+ See [template_classes](./lib/czech_post_b2b_client/printing_templates.rb) for available templates.
228
+ ```
229
+ parcel_codes = %w[RA123456789 RR123456789F RR123456789G] # beware of parcel_id!
230
+ options = {
231
+ customer_id: configuration.customer_id, # required
232
+ contract_number: configuration.contract_id, # not required
233
+ template_id: 24, # 'obalka 3 - B4' #
234
+ margin_in_mm: { top: 5, left: 3 } # required
235
+ }
236
+
237
+ adrprinter = CzechPostB2bClient::Services::AddressSheetsGenerator.call(parcel_codes: parcel_codes, options: options )
238
+
239
+ if adrprinter.success?
240
+ File.write("adrsheet.pdf", adrprinter.result.pdf_content)
241
+ else
242
+ puts(adrprinter.errors.full_messages)
243
+ end
244
+ ```
245
+
246
+ 6a) Repeat steps 1-4 until You decide to deliver packages to post office.
247
+
248
+ 7a) Close your parcels submission with call `ParcelsSubmissionCloser.call(sending_data: sender_data)`.
249
+
250
+ 3b) For immediate (one) parcel registering call `ParcelsSyncSender`. You can optionally request address sheet pdf in response (see step 5a for info)
251
+ ```
252
+ s_data = sending_data.merge(print_params: { template_id: 40, margin_in_mm: { top: 1, left: 1 }})
253
+ psender = CzechPostB2bClient::Services::ParcelsSyncSender.call(sending_data: s_data, parcels: [parcels.first])
254
+
255
+ if psender.success?
256
+ result = psender.result
257
+ update_my_parcels_with(result) # => { 'parcel_1of2' => { parcel_code: 'BA12354678', states: [{ code: 1, text: 'OK' }]},
258
+ File.write("adrsheet.pdf", result.pdf_content)
259
+ else
260
+ puts psender.errors.full_messages
261
+ end
262
+ ```
263
+ `parcel_code` is CzechPost Tracking number of parcel and is used in following calls.
264
+
265
+ 8_) _They will await You at post office with warm welcome (hopefully). Parcels which are not delivered within 60 days are removed from CzechPost systems for free :-)_
266
+
267
+ 9_) You can check current status of delivering with `DeliveringInspector`, which will return hash based on `parcel_code` keys.
268
+ ```
269
+ delivery_boy = CzechPostB2bClient::Services::DeliveringInspector.call(parcel_codes: parcel_codes)
270
+
271
+ if delivery_boy.success?
272
+ update_my_parcels_delivery_status_with(delivery_boy.result)
273
+ # result is like:
274
+ # { 'RA12345687' => { current_state: { id: '91',
275
+ date: Date.parse('2015-09-04'),
276
+ text: 'Dodání zásilky.',
277
+ post_code: '25756',
278
+ post_name: 'Neveklov'},
279
+ deposited_until: Date.new(2015, 9, 2),
280
+ deposited_for_days: 15,
281
+ all_states: [
282
+ { id: '21', date: Date.parse('2015-09-02'), text: 'Podání zásilky.', post_code: '26701', post_name: 'Králův Dvůr u Berouna' },
283
+ { id: '-F', date: Date.parse('2015-09-03'), text: 'Vstup zásilky na SPU.', post_code: '22200', post_name: 'SPU Praha 022' },
284
+ { id: '-I', date: Date.parse('2015-09-03'), text: 'Výstup zásilky z SPU.', post_code: '22200', post_name: 'SPU Praha 022' },
285
+ { id: '-B', date: Date.parse('2015-09-03'), text: 'Přeprava zásilky k dodací poště.', post_code: nil, post_name: nil },
286
+ { id: '51', date: Date.parse('2015-09-04'), text: 'Příprava zásilky k doručení.', post_code: '25607', post_name: 'Depo Benešov 70' },
287
+ { id: '53', date: Date.parse('2015-09-04'), text: 'Doručování zásilky.', post_code: '25756', post_name: 'Neveklov' },
288
+ { id: '91', date: Date.parse('2015-09-04'), text: 'Dodání zásilky.', post_code: '25756', post_name: 'Neveklov' }
289
+ ]},
290
+ 'BA56487125' => {...}
291
+ }
292
+ else
293
+ puts(delivery_boy.errors.full_messages)
294
+ end
295
+ ```
296
+
297
+ 10_) And You can always ask for statistics!
298
+ ```
299
+ tps = CzechPostB2bClient::Services::TimePeriodStatisticator.call(from_date: Date.today - 5, to_date: Date.today)
300
+ if tps.success?
301
+ result = tps.result
302
+ result.requests.total # => 26,
303
+ result.requests.with_errors # => 16
304
+ result.requests.successful # => 10
305
+ result.imported_parcels # => 3
306
+ else
307
+ puts(tps.errors.full_messages)
308
+ end
309
+ ```
251
310
 
252
311
  ### Example usage
253
312
 
@@ -257,6 +316,8 @@ Or install it yourself as:
257
316
 
258
317
  ## Troubleshooting
259
318
 
319
+ You can validate request XML against XSD in [`documents/latest_xsds`](./documents/latest_xsds) (There are no public files from Czech Post :-( )
320
+
260
321
  1) Read all stuff in [`./documents`](./documents/) and [Yard docs](./doc/index.html), maybe it helps.
261
322
  2) If You get "handshake protocol failed" You do not have correct setup for certificates. If You get any xml response (see logger in debug mode) certificates are ok.
262
323
  You can always try `TimePeriodStatisticator` for that check, it do not need any "before" actions.
@@ -264,6 +325,8 @@ Or install it yourself as:
264
325
  4) Error `11: INVALID_LOCATION` was occuring when only `sending_post_office_code` was used. Try to use `sending_post_office_location_number`.
265
326
  5) And last tip `261 MISSING_SIZE_CATEGORY` -> add correct "size service" to services (eg: 'S', 'M')
266
327
  6) Compare resulting request XML with examples in `test/request_builders`
328
+ 7) If You get strings like `"Obdr\xC5\xBEeny \xC3\xBAdaje k z\xC3\xA1silce."` instead of `"Obdrženy údaje k zásilce."`, You need to `str.force_encoding('UTF-8')`. It happens to me, after I started to use gem in app. Something like backward influence.
329
+
267
330
 
268
331
  ## Development
269
332