InvoicesTemplates.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468
  1. <?php
  2. namespace Srmklive\PayPal\Tests\Mocks\Requests;
  3. use GuzzleHttp\Utils;
  4. trait InvoicesTemplates
  5. {
  6. /**
  7. * @return array
  8. */
  9. private function mockCreateInvoiceTemplateParams(): array
  10. {
  11. return Utils::jsonDecode('{
  12. "default_template": true,
  13. "template_info": {
  14. "configuration": {
  15. "tax_calculated_after_discount": true,
  16. "tax_inclusive": false,
  17. "allow_tip": true,
  18. "partial_payment": {
  19. "allow_partial_payment": true,
  20. "minimum_amount_due": {
  21. "currency_code": "USD",
  22. "value": "20.00"
  23. }
  24. }
  25. },
  26. "detail": {
  27. "reference": "deal-ref",
  28. "note": "Thank you for your business.",
  29. "currency_code": "USD",
  30. "terms_and_conditions": "No refunds after 30 days.",
  31. "memo": "This is a long contract",
  32. "attachments": [
  33. {
  34. "id": "Screen Shot 2018-11-23 at 16.45.01.png",
  35. "reference_url": "https://api.paypal.com/invoice/payerView/attachments/RkG9ggQbd4Mwm1tYdcF6uuixfFTFq32bBdbE1VbtQLdKSoS2ZOYpfjw9gPp7eTrZmVaFaDWzixHXm-OXWHbmigHigHzURDxJs8IIKqcqP8jawnBEZcraEAPVMULxf5iTyOSpAUc2ugW0PWdwDbM6mg-guFAUyj3Z98H7htWNjQY95jb9heOlcSXUe.sbDUR9smAszzzJoA1NXT6rEEegwQ&version=1&sig=JNODB0xEayW8txMQm6ZsIwDnd4eh3hd6ijiRLi4ipHE"
  36. }
  37. ],
  38. "payment_term": {
  39. "term_type": "NET_10"
  40. }
  41. },
  42. "invoicer": {
  43. "name": {
  44. "given_name": "David",
  45. "surname": "Larusso"
  46. },
  47. "address": {
  48. "address_line_1": "1234 First Street",
  49. "address_line_2": "337673 Hillside Court",
  50. "admin_area_2": "Anytown",
  51. "admin_area_1": "CA",
  52. "postal_code": "98765",
  53. "country_code": "US"
  54. },
  55. "email_address": "merchant@example.com",
  56. "phones": [
  57. {
  58. "country_code": "001",
  59. "national_number": "4085551234",
  60. "phone_type": "MOBILE"
  61. }
  62. ],
  63. "website": "www.test.com",
  64. "tax_id": "ABcNkWSfb5ICTt73nD3QON1fnnpgNKBy-Jb5SeuGj185MNNw6g",
  65. "logo_url": "https://example.com/logo.PNG",
  66. "additional_notes": "2-4"
  67. },
  68. "primary_recipients": [
  69. {
  70. "billing_info": {
  71. "name": {
  72. "given_name": "Stephanie",
  73. "surname": "Meyers"
  74. },
  75. "address": {
  76. "address_line_1": "1234 Main Street",
  77. "admin_area_2": "Anytown",
  78. "admin_area_1": "CA",
  79. "postal_code": "98765",
  80. "country_code": "US"
  81. },
  82. "email_address": "bill-me@example.com",
  83. "phones": [
  84. {
  85. "country_code": "001",
  86. "national_number": "4884551234",
  87. "phone_type": "MOBILE"
  88. }
  89. ],
  90. "additional_info": "add-info"
  91. },
  92. "shipping_info": {
  93. "name": {
  94. "given_name": "Stephanie",
  95. "surname": "Meyers"
  96. },
  97. "address": {
  98. "address_line_1": "1234 Main Street",
  99. "admin_area_2": "Anytown",
  100. "admin_area_1": "CA",
  101. "postal_code": "98765",
  102. "country_code": "US"
  103. }
  104. }
  105. }
  106. ],
  107. "additional_recipients": [
  108. "inform-me@example.com"
  109. ],
  110. "items": [
  111. {
  112. "name": "Yoga Mat",
  113. "description": "new watch",
  114. "quantity": "1",
  115. "unit_amount": {
  116. "currency_code": "USD",
  117. "value": "50.00"
  118. },
  119. "tax": {
  120. "name": "Sales Tax",
  121. "percent": "7.25"
  122. },
  123. "discount": {
  124. "percent": "5"
  125. },
  126. "unit_of_measure": "QUANTITY"
  127. },
  128. {
  129. "name": "Yoga T Shirt",
  130. "quantity": "1",
  131. "unit_amount": {
  132. "currency_code": "USD",
  133. "value": "10.00"
  134. },
  135. "tax": {
  136. "name": "Sales Tax",
  137. "percent": "7.25"
  138. },
  139. "discount": {
  140. "amount": {
  141. "currency_code": "USD",
  142. "value": "5.00"
  143. }
  144. },
  145. "unit_of_measure": "QUANTITY"
  146. }
  147. ],
  148. "amount": {
  149. "currency_code": "USD",
  150. "value": "74.21",
  151. "breakdown": {
  152. "custom": {
  153. "label": "Packing Charges",
  154. "amount": {
  155. "currency_code": "USD",
  156. "value": "10.00"
  157. }
  158. },
  159. "shipping": {
  160. "amount": {
  161. "currency_code": "USD",
  162. "value": "10.00"
  163. },
  164. "tax": {
  165. "name": "Sales Tax",
  166. "percent": "7.25"
  167. }
  168. },
  169. "discount": {
  170. "invoice_discount": {
  171. "percent": "5"
  172. }
  173. }
  174. }
  175. }
  176. },
  177. "settings": {
  178. "template_item_settings": [
  179. {
  180. "field_name": "items.date",
  181. "display_preference": {
  182. "hidden": true
  183. }
  184. },
  185. {
  186. "field_name": "items.discount",
  187. "display_preference": {
  188. "hidden": false
  189. }
  190. },
  191. {
  192. "field_name": "items.tax",
  193. "display_preference": {
  194. "hidden": false
  195. }
  196. },
  197. {
  198. "field_name": "items.description",
  199. "display_preference": {
  200. "hidden": false
  201. }
  202. },
  203. {
  204. "field_name": "items.quantity",
  205. "display_preference": {
  206. "hidden": true
  207. }
  208. }
  209. ],
  210. "template_subtotal_settings": [
  211. {
  212. "field_name": "custom",
  213. "display_preference": {
  214. "hidden": false
  215. }
  216. },
  217. {
  218. "field_name": "discount",
  219. "display_preference": {
  220. "hidden": false
  221. }
  222. },
  223. {
  224. "field_name": "shipping",
  225. "display_preference": {
  226. "hidden": false
  227. }
  228. }
  229. ]
  230. },
  231. "unit_of_measure": "QUANTITY",
  232. "standard_template": false
  233. }', true);
  234. }
  235. /**
  236. * @return array
  237. */
  238. private function mockUpdateInvoiceTemplateParams(): array
  239. {
  240. return Utils::jsonDecode('{
  241. "default_template": true,
  242. "template_info": {
  243. "configuration": {
  244. "tax_calculated_after_discount": true,
  245. "tax_inclusive": false,
  246. "allow_tip": true,
  247. "partial_payment": {
  248. "allow_partial_payment": true,
  249. "minimum_amount_due": {
  250. "currency_code": "USD",
  251. "value": "20.00"
  252. }
  253. }
  254. },
  255. "detail": {
  256. "reference": "deal-reference-value",
  257. "note": "Thank you for your business.",
  258. "currency_code": "USD",
  259. "terms_and_conditions": "No refunds after 30 days.",
  260. "memo": "This is a long contract",
  261. "attachments": [
  262. {
  263. "id": "Screen Shot 2018-11-23 at 16.45.01.png",
  264. "reference_url": "https://example.com/invoice/payerView/attachments/RkG9ggQbd4Mwm1tYdcF6uuixfFTFq32bBdbE1VbtQLdKSoS2ZOYpfjw9gPp7eTrZmVaFaDWzixHXm-OXWHbmigHigHzURDxJs8IIKqcqP8jawnBEZcraEAPVMULxf5iTyOSpAUc2ugW0PWdwDbM6mg-guFAUyj3Z98H7htWNjQY95jb9heOlcSXUe.sbDUR9smAszzzJoA1NXT6rEEegwQ&version=1&sig=JNODB0xEayW8txMQm6ZsIwDnd4eh3hd6ijiRLi4ipHE"
  265. }
  266. ],
  267. "payment_term": {
  268. "term_type": "NET_10"
  269. }
  270. },
  271. "invoicer": {
  272. "name": {
  273. "given_name": "David",
  274. "surname": "Larusso"
  275. },
  276. "address": {
  277. "address_line_1": "1234 First Street",
  278. "address_line_2": "337673 Hillside Court",
  279. "admin_area_2": "Anytown",
  280. "admin_area_1": "CA",
  281. "postal_code": "98765",
  282. "country_code": "US"
  283. },
  284. "email_address": "merchant@example.com",
  285. "phones": [
  286. {
  287. "country_code": "001",
  288. "national_number": "4085551234",
  289. "phone_type": "MOBILE"
  290. }
  291. ],
  292. "website": "www.test.com",
  293. "tax_id": "ABcNkWSfb5ICTt73nD3QON1fnnpgNKBy-Jb5SeuGj185MNNw6g",
  294. "logo_url": "https://example.com/logo.PNG",
  295. "additional_notes": "2-4"
  296. },
  297. "primary_recipients": [
  298. {
  299. "billing_info": {
  300. "name": {
  301. "given_name": "Stephanie",
  302. "surname": "Meyers"
  303. },
  304. "address": {
  305. "address_line_1": "1234 Main Street",
  306. "admin_area_2": "Anytown",
  307. "admin_area_1": "CA",
  308. "postal_code": "98765",
  309. "country_code": "US"
  310. },
  311. "email_address": "bill-me@example.com",
  312. "phones": [
  313. {
  314. "country_code": "001",
  315. "national_number": "4884551234",
  316. "phone_type": "MOBILE"
  317. }
  318. ],
  319. "additional_info": "add-info"
  320. },
  321. "shipping_info": {
  322. "name": {
  323. "given_name": "Stephanie",
  324. "surname": "Meyers"
  325. },
  326. "address": {
  327. "address_line_1": "1234 Main Street",
  328. "admin_area_2": "Anytown",
  329. "admin_area_1": "CA",
  330. "postal_code": "98765",
  331. "country_code": "US"
  332. }
  333. }
  334. }
  335. ],
  336. "additional_recipients": [
  337. "inform-me@example.com"
  338. ],
  339. "items": [
  340. {
  341. "name": "Yoga Mat",
  342. "description": "new watch",
  343. "quantity": "1",
  344. "unit_amount": {
  345. "currency_code": "USD",
  346. "value": "50.00"
  347. },
  348. "tax": {
  349. "name": "Sales Tax",
  350. "percent": "7.25"
  351. },
  352. "discount": {
  353. "percent": "5"
  354. },
  355. "unit_of_measure": "QUANTITY"
  356. },
  357. {
  358. "name": "Yoga T Shirt",
  359. "quantity": "1",
  360. "unit_amount": {
  361. "currency_code": "USD",
  362. "value": "10.00"
  363. },
  364. "tax": {
  365. "name": "Sales Tax",
  366. "percent": "7.25"
  367. },
  368. "discount": {
  369. "amount": {
  370. "currency_code": "USD",
  371. "value": "5.00"
  372. }
  373. },
  374. "unit_of_measure": "QUANTITY"
  375. }
  376. ],
  377. "amount": {
  378. "currency_code": "USD",
  379. "value": "74.21",
  380. "breakdown": {
  381. "custom": {
  382. "label": "Packing Charges",
  383. "amount": {
  384. "currency_code": "USD",
  385. "value": "10.00"
  386. }
  387. },
  388. "shipping": {
  389. "amount": {
  390. "currency_code": "USD",
  391. "value": "10.00"
  392. },
  393. "tax": {
  394. "name": "Sales Tax",
  395. "percent": "7.25"
  396. }
  397. },
  398. "discount": {
  399. "invoice_discount": {
  400. "percent": "5"
  401. }
  402. }
  403. }
  404. }
  405. },
  406. "settings": {
  407. "template_item_settings": [
  408. {
  409. "field_name": "items.date",
  410. "display_preference": {
  411. "hidden": true
  412. }
  413. },
  414. {
  415. "field_name": "items.discount",
  416. "display_preference": {
  417. "hidden": false
  418. }
  419. },
  420. {
  421. "field_name": "items.tax",
  422. "display_preference": {
  423. "hidden": false
  424. }
  425. },
  426. {
  427. "field_name": "items.description",
  428. "display_preference": {
  429. "hidden": false
  430. }
  431. },
  432. {
  433. "field_name": "items.quantity",
  434. "display_preference": {
  435. "hidden": true
  436. }
  437. }
  438. ],
  439. "template_subtotal_settings": [
  440. {
  441. "field_name": "custom",
  442. "display_preference": {
  443. "hidden": false
  444. }
  445. },
  446. {
  447. "field_name": "discount",
  448. "display_preference": {
  449. "hidden": false
  450. }
  451. },
  452. {
  453. "field_name": "shipping",
  454. "display_preference": {
  455. "hidden": false
  456. }
  457. }
  458. ]
  459. },
  460. "unit_of_measure": "QUANTITY",
  461. "standard_template": false
  462. }', true);
  463. }
  464. }