@ozdao/martyrs 0.2.445 → 0.2.446

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/dist/martyrs/src/components/Chips/{Chips.vue2.cjs → Chips.vue.cjs} +2 -2
  2. package/dist/martyrs/src/components/Chips/Chips.vue.cjs.map +1 -0
  3. package/dist/martyrs/src/components/Chips/{Chips.vue2.js → Chips.vue.js} +2 -2
  4. package/dist/martyrs/src/components/Chips/Chips.vue.js.map +1 -0
  5. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.cjs → Dropdown.vue.cjs} +2 -2
  6. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.js.map → Dropdown.vue.cjs.map} +1 -1
  7. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.js → Dropdown.vue.js} +2 -2
  8. package/dist/martyrs/src/components/Dropdown/Dropdown.vue.js.map +1 -0
  9. package/dist/martyrs/src/components/Feed/Feed.vue.cjs +1 -1
  10. package/dist/martyrs/src/components/Feed/Feed.vue.js +1 -1
  11. package/dist/martyrs/src/components/Menu/{Menu.vue.cjs → Menu.vue2.cjs} +2 -2
  12. package/dist/martyrs/src/components/Menu/Menu.vue2.cjs.map +1 -0
  13. package/dist/martyrs/src/components/Menu/{Menu.vue.js → Menu.vue2.js} +2 -2
  14. package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +1 -0
  15. package/dist/martyrs/src/components/Popup/{Popup.vue.cjs → Popup.vue2.cjs} +2 -2
  16. package/dist/martyrs/src/components/Popup/Popup.vue2.cjs.map +1 -0
  17. package/dist/martyrs/src/components/Popup/{Popup.vue.js → Popup.vue2.js} +2 -2
  18. package/dist/martyrs/src/components/Popup/{Popup.vue.cjs.map → Popup.vue2.js.map} +1 -1
  19. package/dist/martyrs/src/components/SelectMulti/{SelectMulti.vue2.cjs → SelectMulti.vue.cjs} +2 -2
  20. package/dist/martyrs/src/components/SelectMulti/{SelectMulti.vue2.js.map → SelectMulti.vue.cjs.map} +1 -1
  21. package/dist/martyrs/src/components/SelectMulti/{SelectMulti.vue2.js → SelectMulti.vue.js} +2 -2
  22. package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue.js.map +1 -0
  23. package/dist/martyrs/src/components/Tab/{Tab.vue2.cjs → Tab.vue.cjs} +2 -2
  24. package/dist/martyrs/src/components/Tab/{Tab.vue2.js.map → Tab.vue.cjs.map} +1 -1
  25. package/dist/martyrs/src/components/Tab/{Tab.vue2.js → Tab.vue.js} +2 -2
  26. package/dist/martyrs/src/components/Tab/Tab.vue.js.map +1 -0
  27. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs +1 -1
  28. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js +1 -1
  29. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +1 -1
  30. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +1 -1
  31. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +1 -1
  32. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
  33. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +2 -2
  34. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +2 -2
  35. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.cjs +1 -1
  36. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js +1 -1
  37. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs +1 -1
  38. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +1 -1
  39. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs +1 -1
  40. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +1 -1
  41. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs +1 -1
  42. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +1 -1
  43. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs +1 -1
  44. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +1 -1
  45. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.cjs +1 -1
  46. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js +1 -1
  47. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.cjs +1 -1
  48. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js +1 -1
  49. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +2 -2
  50. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +2 -2
  51. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +1 -1
  52. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
  53. package/dist/martyrs/src/modules/community/components/sections/HotPosts.vue.cjs +1 -1
  54. package/dist/martyrs/src/modules/community/components/sections/HotPosts.vue.js +1 -1
  55. package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.cjs +1 -1
  56. package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js +1 -1
  57. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +2 -2
  58. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +2 -2
  59. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +1 -1
  60. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
  61. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +1 -1
  62. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +1 -1
  63. package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs +1 -1
  64. package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +1 -1
  65. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.cjs +1 -1
  66. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js +1 -1
  67. package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.cjs +1 -1
  68. package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.js +1 -1
  69. package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.cjs +1 -1
  70. package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.js +1 -1
  71. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +3 -3
  72. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +3 -3
  73. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue.cjs.map +1 -1
  74. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue.js.map +1 -1
  75. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +1 -1
  76. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +1 -1
  77. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs +1 -1
  78. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js +1 -1
  79. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +1 -1
  80. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +1 -1
  81. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +1 -1
  82. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js +1 -1
  83. package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.cjs +1 -1
  84. package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.js +1 -1
  85. package/dist/martyrs/src/modules/orders/components/elements/PriceTotal.vue.cjs +34 -8
  86. package/dist/martyrs/src/modules/orders/components/elements/PriceTotal.vue.cjs.map +1 -1
  87. package/dist/martyrs/src/modules/orders/components/elements/PriceTotal.vue.js +34 -8
  88. package/dist/martyrs/src/modules/orders/components/elements/PriceTotal.vue.js.map +1 -1
  89. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +27 -18
  90. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs.map +1 -1
  91. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +28 -19
  92. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js.map +1 -1
  93. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs +13 -17
  94. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs.map +1 -1
  95. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +14 -18
  96. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js.map +1 -1
  97. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +3 -3
  98. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +3 -3
  99. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.cjs +1 -1
  100. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js +1 -1
  101. package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.cjs +12 -4
  102. package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.cjs.map +1 -1
  103. package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.js +25 -17
  104. package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.js.map +1 -1
  105. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +1 -1
  106. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +1 -1
  107. package/dist/martyrs/src/modules/orders/store/orders.cjs +11 -0
  108. package/dist/martyrs/src/modules/orders/store/orders.cjs.map +1 -1
  109. package/dist/martyrs/src/modules/orders/store/orders.js +11 -0
  110. package/dist/martyrs/src/modules/orders/store/orders.js.map +1 -1
  111. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.cjs +1 -1
  112. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +1 -1
  113. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +2 -2
  114. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +2 -2
  115. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +3 -3
  116. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +3 -3
  117. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +2 -2
  118. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +2 -2
  119. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +2 -2
  120. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +2 -2
  121. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +3 -3
  122. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +3 -3
  123. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs +1 -1
  124. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +1 -1
  125. package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs +2 -2
  126. package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.js +2 -2
  127. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +1 -1
  128. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +1 -1
  129. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +1 -1
  130. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
  131. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.cjs +1 -1
  132. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +1 -1
  133. package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.cjs +1 -1
  134. package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.js +1 -1
  135. package/dist/martyrs/src/modules/products/components/blocks/ImagesThumbnails.vue.cjs +1 -1
  136. package/dist/martyrs/src/modules/products/components/blocks/ImagesThumbnails.vue.js +1 -1
  137. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs +1 -1
  138. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +1 -1
  139. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +1 -1
  140. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +1 -1
  141. package/dist/martyrs/src/modules/products/components/pages/EditLeftover.vue.cjs +2 -2
  142. package/dist/martyrs/src/modules/products/components/pages/EditLeftover.vue.js +2 -2
  143. package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.cjs +1 -1
  144. package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.js +1 -1
  145. package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +6 -6
  146. package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs.map +1 -1
  147. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +6 -6
  148. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js.map +1 -1
  149. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +2 -2
  150. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +2 -2
  151. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs +1 -1
  152. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +1 -1
  153. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.cjs +1 -1
  154. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +1 -1
  155. package/dist/martyrs/src/modules/rents/views/components/pages/GanttChart.vue.cjs +1 -1
  156. package/dist/martyrs/src/modules/rents/views/components/pages/GanttChart.vue.js +1 -1
  157. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.cjs +1 -1
  158. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js +1 -1
  159. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.cjs +2 -2
  160. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +2 -2
  161. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
  162. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +1 -1
  163. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs +1 -1
  164. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js +1 -1
  165. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs +1 -1
  166. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
  167. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +2 -2
  168. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +2 -2
  169. package/dist/style.css +3 -3
  170. package/package.json +1 -1
  171. package/src/modules/globals/views/components/blocks/BlockFilter.vue +1 -1
  172. package/src/modules/orders/components/elements/PriceTotal.vue +28 -2
  173. package/src/modules/orders/components/pages/OrderBackoffice.vue +14 -2
  174. package/src/modules/orders/components/pages/OrderCreate.vue +13 -19
  175. package/src/modules/orders/components/partials/ShopCart.vue +12 -5
  176. package/src/modules/orders/store/orders.js +14 -0
  177. package/src/modules/products/components/pages/Product.vue +6 -5
  178. package/dist/martyrs/src/components/Chips/Chips.vue2.cjs.map +0 -1
  179. package/dist/martyrs/src/components/Chips/Chips.vue2.js.map +0 -1
  180. package/dist/martyrs/src/components/Dropdown/Dropdown.vue2.cjs.map +0 -1
  181. package/dist/martyrs/src/components/Menu/Menu.vue.cjs.map +0 -1
  182. package/dist/martyrs/src/components/Menu/Menu.vue.js.map +0 -1
  183. package/dist/martyrs/src/components/Popup/Popup.vue.js.map +0 -1
  184. package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue2.cjs.map +0 -1
  185. package/dist/martyrs/src/components/Tab/Tab.vue2.cjs.map +0 -1
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
- const Tab = require("../../../../../components/Tab/Tab.vue2.cjs");
4
+ const Tab = require("../../../../../components/Tab/Tab.vue.cjs");
5
5
  const _hoisted_1 = { class: "flex-v-center flex-nowrap flex" };
6
6
  const _hoisted_2 = { class: "h2 mn-r-auto" };
7
7
  const _hoisted_3 = ["onClick"];
@@ -1,5 +1,5 @@
1
1
  import { resolveComponent, createElementBlock, openBlock, createElementVNode, createBlock, createCommentVNode, toDisplayString, Fragment, renderList, normalizeClass, withCtx, createTextVNode } from "vue";
2
- import _sfc_main$1 from "../../../../../components/Tab/Tab.vue2.js";
2
+ import _sfc_main$1 from "../../../../../components/Tab/Tab.vue.js";
3
3
  const _hoisted_1 = { class: "flex-v-center flex-nowrap flex" };
4
4
  const _hoisted_2 = { class: "h2 mn-r-auto" };
5
5
  const _hoisted_3 = ["onClick"];
@@ -14,13 +14,19 @@ const _hoisted_6 = { class: "w-100 t-transp" };
14
14
  const _hoisted_7 = { class: "w-100 t-right" };
15
15
  const _hoisted_8 = {
16
16
  key: 1,
17
- class: "flex flex-nowrap br-black-transp-10 br-solid br-b pd-b-small pd-t-small"
17
+ class: "flex flex-nowrap pd-t-small"
18
18
  };
19
19
  const _hoisted_9 = { class: "w-100 t-transp" };
20
20
  const _hoisted_10 = { class: "w-100 t-right" };
21
- const _hoisted_11 = { class: "p-big flex flex-nowrap pd-b-small pd-t-small" };
22
- const _hoisted_12 = { class: "w-100 t-medium" };
23
- const _hoisted_13 = { class: "w-100 t-main t-medium t-right" };
21
+ const _hoisted_11 = {
22
+ key: 2,
23
+ class: "flex flex-nowrap br-black-transp-10 br-solid br-b pd-b-small pd-t-small"
24
+ };
25
+ const _hoisted_12 = { class: "w-100 t-transp" };
26
+ const _hoisted_13 = { class: "w-100 t-right" };
27
+ const _hoisted_14 = { class: "p-big flex flex-nowrap pd-b-small pd-t-small" };
28
+ const _hoisted_15 = { class: "w-100 t-medium" };
29
+ const _hoisted_16 = { class: "w-100 t-main t-medium t-right" };
24
30
  const _sfc_main = {
25
31
  __name: "PriceTotal",
26
32
  props: {
@@ -47,6 +53,14 @@ const _sfc_main = {
47
53
  vatRate: {
48
54
  type: Number,
49
55
  default: 0
56
+ },
57
+ showDeliveryFee: {
58
+ type: Boolean,
59
+ default: false
60
+ },
61
+ deliveryRate: {
62
+ type: Number,
63
+ default: 0
50
64
  }
51
65
  },
52
66
  setup(__props) {
@@ -57,12 +71,14 @@ const _sfc_main = {
57
71
  subtotal: "Subtotal",
58
72
  feesRate: "Platform Fee",
59
73
  vat: "VAT ({rate}%)",
74
+ delivery: "Delivery",
60
75
  intotal: "In Total"
61
76
  },
62
77
  ru: {
63
78
  subtotal: "Подытог",
64
79
  feesRate: "Плата за платформу",
65
80
  vat: "НДС ({rate}%)",
81
+ delivery: "Доставка",
66
82
  intotal: "Итого"
67
83
  }
68
84
  }
@@ -77,8 +93,14 @@ const _sfc_main = {
77
93
  if (!props.showFees) return 0;
78
94
  return formatPrice(props.totalPrice * props.feesRate);
79
95
  });
96
+ const deliveryAmount = vue.computed(() => {
97
+ if (!props.showDeliveryFee) return 0;
98
+ return formatPrice(props.deliveryRate);
99
+ });
80
100
  const grandTotal = vue.computed(() => {
81
- return formatPrice(parseFloat(props.totalPrice) + parseFloat(feesRate.value) + parseFloat(vatAmount.value));
101
+ return formatPrice(
102
+ parseFloat(props.totalPrice) + parseFloat(feesRate.value) + parseFloat(vatAmount.value) + parseFloat(deliveryAmount.value)
103
+ );
82
104
  });
83
105
  return (_ctx, _cache) => {
84
106
  return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
@@ -94,9 +116,13 @@ const _sfc_main = {
94
116
  vue.createElementVNode("span", _hoisted_9, vue.toDisplayString(vue.unref(t)("vat", { rate: __props.vatRate * 100 })), 1),
95
117
  vue.createElementVNode("span", _hoisted_10, vue.toDisplayString(__props.currency) + vue.toDisplayString(vatAmount.value), 1)
96
118
  ])) : vue.createCommentVNode("", true),
97
- vue.createElementVNode("p", _hoisted_11, [
98
- vue.createElementVNode("span", _hoisted_12, vue.toDisplayString(vue.unref(t)("intotal")), 1),
99
- vue.createElementVNode("span", _hoisted_13, vue.toDisplayString(__props.currency) + vue.toDisplayString(grandTotal.value), 1)
119
+ __props.showDeliveryFee ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_11, [
120
+ vue.createElementVNode("span", _hoisted_12, vue.toDisplayString(vue.unref(t)("delivery")), 1),
121
+ vue.createElementVNode("span", _hoisted_13, vue.toDisplayString(__props.currency) + vue.toDisplayString(deliveryAmount.value), 1)
122
+ ])) : vue.createCommentVNode("", true),
123
+ vue.createElementVNode("p", _hoisted_14, [
124
+ vue.createElementVNode("span", _hoisted_15, vue.toDisplayString(vue.unref(t)("intotal")), 1),
125
+ vue.createElementVNode("span", _hoisted_16, vue.toDisplayString(__props.currency) + vue.toDisplayString(grandTotal.value), 1)
100
126
  ])
101
127
  ]);
102
128
  };
@@ -1 +1 @@
1
- {"version":3,"file":"PriceTotal.vue.cjs","sources":["../../../../../../../src/modules/orders/components/elements/PriceTotal.vue"],"sourcesContent":["<template>\n <div class=\"total-calculations\">\n <!-- Base price calculation -->\n <p class=\"flex flex-nowrap pd-t-small\">\n <span class=\"w-100 t-transp\">{{ t('subtotal') }}</span>\n <span class=\"w-100 t-right\">{{currency}}{{totalPrice}}</span>\n </p>\n \n <!-- Platform fee (conditional) -->\n <p v-if=\"showFees\" class=\"flex flex-nowrap pd-t-small\">\n <span class=\"w-100 t-transp\">{{ t('feesRate') }}</span>\n <span class=\"w-100 t-right\">{{currency}}{{feesRate}}</span>\n </p>\n \n <!-- VAT calculation (conditional) -->\n <p v-if=\"showVat\" class=\"flex flex-nowrap br-black-transp-10 br-solid br-b pd-b-small pd-t-small\">\n <span class=\"w-100 t-transp\">{{ t('vat', { rate: vatRate * 100 }) }}</span>\n <span class=\"w-100 t-right\">{{currency}}{{vatAmount}}</span>\n </p>\n \n <!-- Grand total -->\n <p class=\"p-big flex flex-nowrap pd-b-small pd-t-small\">\n <span class=\"w-100 t-medium\">{{ t('intotal') }}</span>\n <span class=\"w-100 t-main t-medium t-right\">{{currency}}{{grandTotal}}</span>\n </p>\n </div>\n</template>\n\n\n<script setup>\nimport { computed } from 'vue';\nimport { useI18n } from 'vue-i18n';\n\nconst props = defineProps({\n totalPrice: {\n type: Number,\n required: true\n },\n currency: {\n type: String,\n required: true\n },\n showFees: {\n type: Boolean,\n default: false\n },\n feesRate: {\n type: Number,\n default: 0\n },\n showVat: {\n type: Boolean,\n default: false\n },\n vatRate: {\n type: Number,\n default: 0\n }\n});\n\nconst text = {\n messages: {\n en: {\n subtotal: 'Subtotal',\n feesRate: 'Platform Fee',\n vat: 'VAT ({rate}%)',\n intotal: 'In Total'\n },\n ru: {\n subtotal: 'Подытог',\n feesRate: 'Плата за платформу',\n vat: 'НДС ({rate}%)',\n intotal: 'Итого'\n }\n }\n};\n\nconst { t } = useI18n(text);\n\nconst formatPrice = (value) => value.toFixed(0);\n\nconst vatAmount = computed(() => {\n if (!props.showVat) return 0;\n return formatPrice(props.totalPrice * props.vatRate);\n});\n\nconst feesRate = computed(() => {\n if (!props.showFees) return 0;\n return formatPrice(props.totalPrice * props.feesRate);\n});\n\nconst grandTotal = computed(() => {\n return formatPrice(parseFloat(props.totalPrice) + parseFloat(feesRate.value) + parseFloat(vatAmount.value));\n});\n</script>\n"],"names":["useI18n","computed"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCA,UAAM,QAAQ;AA2Bd,UAAM,OAAO;AAAA,MACX,UAAU;AAAA,QACR,IAAI;AAAA,UACF,UAAU;AAAA,UACV,UAAU;AAAA,UACV,KAAK;AAAA,UACL,SAAS;AAAA,QACV;AAAA,QACD,IAAI;AAAA,UACF,UAAU;AAAA,UACV,UAAU;AAAA,UACV,KAAK;AAAA,UACL,SAAS;AAAA,QACf;AAAA,MACA;AAAA,IACA;AAEA,UAAM,EAAE,EAAC,IAAKA,QAAO,QAAC,IAAI;AAE1B,UAAM,cAAc,CAAC,UAAU,MAAM,QAAQ,CAAC;AAE9C,UAAM,YAAYC,IAAQ,SAAC,MAAM;AAC/B,UAAI,CAAC,MAAM,QAAS,QAAO;AAC3B,aAAO,YAAY,MAAM,aAAa,MAAM,OAAO;AAAA,IACrD,CAAC;AAED,UAAM,WAAWA,IAAQ,SAAC,MAAM;AAC9B,UAAI,CAAC,MAAM,SAAU,QAAO;AAC5B,aAAO,YAAY,MAAM,aAAa,MAAM,QAAQ;AAAA,IACtD,CAAC;AAED,UAAM,aAAaA,IAAQ,SAAC,MAAM;AAChC,aAAO,YAAY,WAAW,MAAM,UAAU,IAAI,WAAW,SAAS,KAAK,IAAI,WAAW,UAAU,KAAK,CAAC;AAAA,IAC5G,CAAC;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"PriceTotal.vue.cjs","sources":["../../../../../../../src/modules/orders/components/elements/PriceTotal.vue"],"sourcesContent":["<template>\n <div class=\"total-calculations\">\n <!-- Base price calculation -->\n <p class=\"flex flex-nowrap pd-t-small\">\n <span class=\"w-100 t-transp\">{{ t('subtotal') }}</span>\n <span class=\"w-100 t-right\">{{currency}}{{totalPrice}}</span>\n </p>\n \n <!-- Platform fee (conditional) -->\n <p v-if=\"showFees\" class=\"flex flex-nowrap pd-t-small\">\n <span class=\"w-100 t-transp\">{{ t('feesRate') }}</span>\n <span class=\"w-100 t-right\">{{currency}}{{feesRate}}</span>\n </p>\n \n <!-- VAT calculation (conditional) -->\n <p v-if=\"showVat\" class=\"flex flex-nowrap pd-t-small\">\n <span class=\"w-100 t-transp\">{{ t('vat', { rate: vatRate * 100 }) }}</span>\n <span class=\"w-100 t-right\">{{currency}}{{vatAmount}}</span>\n </p>\n\n <!-- Delivery fee (conditional) -->\n <p v-if=\"showDeliveryFee\" class=\"flex flex-nowrap br-black-transp-10 br-solid br-b pd-b-small pd-t-small\">\n <span class=\"w-100 t-transp\">{{ t('delivery') }}</span>\n <span class=\"w-100 t-right\">{{currency}}{{deliveryAmount}}</span>\n </p>\n \n <!-- Grand total -->\n <p class=\"p-big flex flex-nowrap pd-b-small pd-t-small\">\n <span class=\"w-100 t-medium\">{{ t('intotal') }}</span>\n <span class=\"w-100 t-main t-medium t-right\">{{currency}}{{grandTotal}}</span>\n </p>\n </div>\n</template>\n\n\n<script setup>\nimport { computed } from 'vue';\nimport { useI18n } from 'vue-i18n';\n\nconst props = defineProps({\n totalPrice: {\n type: Number,\n required: true\n },\n currency: {\n type: String,\n required: true\n },\n showFees: {\n type: Boolean,\n default: false\n },\n feesRate: {\n type: Number,\n default: 0\n },\n showVat: {\n type: Boolean,\n default: false\n },\n vatRate: {\n type: Number,\n default: 0\n },\n showDeliveryFee: {\n type: Boolean,\n default: false\n },\n deliveryRate: {\n type: Number,\n default: 0\n }\n});\n\nconst text = {\n messages: {\n en: {\n subtotal: 'Subtotal',\n feesRate: 'Platform Fee',\n vat: 'VAT ({rate}%)',\n delivery: 'Delivery',\n intotal: 'In Total'\n },\n ru: {\n subtotal: 'Подытог',\n feesRate: 'Плата за платформу',\n vat: 'НДС ({rate}%)',\n delivery: 'Доставка',\n intotal: 'Итого'\n }\n }\n};\n\nconst { t } = useI18n(text);\n\nconst formatPrice = (value) => value.toFixed(0);\n\nconst vatAmount = computed(() => {\n if (!props.showVat) return 0;\n return formatPrice(props.totalPrice * props.vatRate);\n});\n\nconst feesRate = computed(() => {\n if (!props.showFees) return 0;\n return formatPrice(props.totalPrice * props.feesRate);\n});\n\nconst deliveryAmount = computed(() => {\n if (!props.showDeliveryFee) return 0;\n return formatPrice(props.deliveryRate);\n});\n\nconst grandTotal = computed(() => {\n return formatPrice(\n parseFloat(props.totalPrice) +\n parseFloat(feesRate.value) +\n parseFloat(vatAmount.value) +\n parseFloat(deliveryAmount.value)\n );\n});\n</script>\n"],"names":["useI18n","computed"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,UAAM,QAAQ;AAmCd,UAAM,OAAO;AAAA,MACX,UAAU;AAAA,QACR,IAAI;AAAA,UACF,UAAU;AAAA,UACV,UAAU;AAAA,UACV,KAAK;AAAA,UACL,UAAU;AAAA,UACV,SAAS;AAAA,QACV;AAAA,QACD,IAAI;AAAA,UACF,UAAU;AAAA,UACV,UAAU;AAAA,UACV,KAAK;AAAA,UACL,UAAU;AAAA,UACV,SAAS;AAAA,QACf;AAAA,MACA;AAAA,IACA;AAEA,UAAM,EAAE,EAAC,IAAKA,QAAO,QAAC,IAAI;AAE1B,UAAM,cAAc,CAAC,UAAU,MAAM,QAAQ,CAAC;AAE9C,UAAM,YAAYC,IAAQ,SAAC,MAAM;AAC/B,UAAI,CAAC,MAAM,QAAS,QAAO;AAC3B,aAAO,YAAY,MAAM,aAAa,MAAM,OAAO;AAAA,IACrD,CAAC;AAED,UAAM,WAAWA,IAAQ,SAAC,MAAM;AAC9B,UAAI,CAAC,MAAM,SAAU,QAAO;AAC5B,aAAO,YAAY,MAAM,aAAa,MAAM,QAAQ;AAAA,IACtD,CAAC;AAED,UAAM,iBAAiBA,IAAQ,SAAC,MAAM;AACpC,UAAI,CAAC,MAAM,gBAAiB,QAAO;AACnC,aAAO,YAAY,MAAM,YAAY;AAAA,IACvC,CAAC;AAED,UAAM,aAAaA,IAAQ,SAAC,MAAM;AAChC,aAAO;AAAA,QACL,WAAW,MAAM,UAAU,IAC3B,WAAW,SAAS,KAAK,IACzB,WAAW,UAAU,KAAK,IAC1B,WAAW,eAAe,KAAK;AAAA,MAChC;AAAA,IACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -12,13 +12,19 @@ const _hoisted_6 = { class: "w-100 t-transp" };
12
12
  const _hoisted_7 = { class: "w-100 t-right" };
13
13
  const _hoisted_8 = {
14
14
  key: 1,
15
- class: "flex flex-nowrap br-black-transp-10 br-solid br-b pd-b-small pd-t-small"
15
+ class: "flex flex-nowrap pd-t-small"
16
16
  };
17
17
  const _hoisted_9 = { class: "w-100 t-transp" };
18
18
  const _hoisted_10 = { class: "w-100 t-right" };
19
- const _hoisted_11 = { class: "p-big flex flex-nowrap pd-b-small pd-t-small" };
20
- const _hoisted_12 = { class: "w-100 t-medium" };
21
- const _hoisted_13 = { class: "w-100 t-main t-medium t-right" };
19
+ const _hoisted_11 = {
20
+ key: 2,
21
+ class: "flex flex-nowrap br-black-transp-10 br-solid br-b pd-b-small pd-t-small"
22
+ };
23
+ const _hoisted_12 = { class: "w-100 t-transp" };
24
+ const _hoisted_13 = { class: "w-100 t-right" };
25
+ const _hoisted_14 = { class: "p-big flex flex-nowrap pd-b-small pd-t-small" };
26
+ const _hoisted_15 = { class: "w-100 t-medium" };
27
+ const _hoisted_16 = { class: "w-100 t-main t-medium t-right" };
22
28
  const _sfc_main = {
23
29
  __name: "PriceTotal",
24
30
  props: {
@@ -45,6 +51,14 @@ const _sfc_main = {
45
51
  vatRate: {
46
52
  type: Number,
47
53
  default: 0
54
+ },
55
+ showDeliveryFee: {
56
+ type: Boolean,
57
+ default: false
58
+ },
59
+ deliveryRate: {
60
+ type: Number,
61
+ default: 0
48
62
  }
49
63
  },
50
64
  setup(__props) {
@@ -55,12 +69,14 @@ const _sfc_main = {
55
69
  subtotal: "Subtotal",
56
70
  feesRate: "Platform Fee",
57
71
  vat: "VAT ({rate}%)",
72
+ delivery: "Delivery",
58
73
  intotal: "In Total"
59
74
  },
60
75
  ru: {
61
76
  subtotal: "Подытог",
62
77
  feesRate: "Плата за платформу",
63
78
  vat: "НДС ({rate}%)",
79
+ delivery: "Доставка",
64
80
  intotal: "Итого"
65
81
  }
66
82
  }
@@ -75,8 +91,14 @@ const _sfc_main = {
75
91
  if (!props.showFees) return 0;
76
92
  return formatPrice(props.totalPrice * props.feesRate);
77
93
  });
94
+ const deliveryAmount = computed(() => {
95
+ if (!props.showDeliveryFee) return 0;
96
+ return formatPrice(props.deliveryRate);
97
+ });
78
98
  const grandTotal = computed(() => {
79
- return formatPrice(parseFloat(props.totalPrice) + parseFloat(feesRate.value) + parseFloat(vatAmount.value));
99
+ return formatPrice(
100
+ parseFloat(props.totalPrice) + parseFloat(feesRate.value) + parseFloat(vatAmount.value) + parseFloat(deliveryAmount.value)
101
+ );
80
102
  });
81
103
  return (_ctx, _cache) => {
82
104
  return openBlock(), createElementBlock("div", _hoisted_1, [
@@ -92,9 +114,13 @@ const _sfc_main = {
92
114
  createElementVNode("span", _hoisted_9, toDisplayString(unref(t)("vat", { rate: __props.vatRate * 100 })), 1),
93
115
  createElementVNode("span", _hoisted_10, toDisplayString(__props.currency) + toDisplayString(vatAmount.value), 1)
94
116
  ])) : createCommentVNode("", true),
95
- createElementVNode("p", _hoisted_11, [
96
- createElementVNode("span", _hoisted_12, toDisplayString(unref(t)("intotal")), 1),
97
- createElementVNode("span", _hoisted_13, toDisplayString(__props.currency) + toDisplayString(grandTotal.value), 1)
117
+ __props.showDeliveryFee ? (openBlock(), createElementBlock("p", _hoisted_11, [
118
+ createElementVNode("span", _hoisted_12, toDisplayString(unref(t)("delivery")), 1),
119
+ createElementVNode("span", _hoisted_13, toDisplayString(__props.currency) + toDisplayString(deliveryAmount.value), 1)
120
+ ])) : createCommentVNode("", true),
121
+ createElementVNode("p", _hoisted_14, [
122
+ createElementVNode("span", _hoisted_15, toDisplayString(unref(t)("intotal")), 1),
123
+ createElementVNode("span", _hoisted_16, toDisplayString(__props.currency) + toDisplayString(grandTotal.value), 1)
98
124
  ])
99
125
  ]);
100
126
  };
@@ -1 +1 @@
1
- {"version":3,"file":"PriceTotal.vue.js","sources":["../../../../../../../src/modules/orders/components/elements/PriceTotal.vue"],"sourcesContent":["<template>\n <div class=\"total-calculations\">\n <!-- Base price calculation -->\n <p class=\"flex flex-nowrap pd-t-small\">\n <span class=\"w-100 t-transp\">{{ t('subtotal') }}</span>\n <span class=\"w-100 t-right\">{{currency}}{{totalPrice}}</span>\n </p>\n \n <!-- Platform fee (conditional) -->\n <p v-if=\"showFees\" class=\"flex flex-nowrap pd-t-small\">\n <span class=\"w-100 t-transp\">{{ t('feesRate') }}</span>\n <span class=\"w-100 t-right\">{{currency}}{{feesRate}}</span>\n </p>\n \n <!-- VAT calculation (conditional) -->\n <p v-if=\"showVat\" class=\"flex flex-nowrap br-black-transp-10 br-solid br-b pd-b-small pd-t-small\">\n <span class=\"w-100 t-transp\">{{ t('vat', { rate: vatRate * 100 }) }}</span>\n <span class=\"w-100 t-right\">{{currency}}{{vatAmount}}</span>\n </p>\n \n <!-- Grand total -->\n <p class=\"p-big flex flex-nowrap pd-b-small pd-t-small\">\n <span class=\"w-100 t-medium\">{{ t('intotal') }}</span>\n <span class=\"w-100 t-main t-medium t-right\">{{currency}}{{grandTotal}}</span>\n </p>\n </div>\n</template>\n\n\n<script setup>\nimport { computed } from 'vue';\nimport { useI18n } from 'vue-i18n';\n\nconst props = defineProps({\n totalPrice: {\n type: Number,\n required: true\n },\n currency: {\n type: String,\n required: true\n },\n showFees: {\n type: Boolean,\n default: false\n },\n feesRate: {\n type: Number,\n default: 0\n },\n showVat: {\n type: Boolean,\n default: false\n },\n vatRate: {\n type: Number,\n default: 0\n }\n});\n\nconst text = {\n messages: {\n en: {\n subtotal: 'Subtotal',\n feesRate: 'Platform Fee',\n vat: 'VAT ({rate}%)',\n intotal: 'In Total'\n },\n ru: {\n subtotal: 'Подытог',\n feesRate: 'Плата за платформу',\n vat: 'НДС ({rate}%)',\n intotal: 'Итого'\n }\n }\n};\n\nconst { t } = useI18n(text);\n\nconst formatPrice = (value) => value.toFixed(0);\n\nconst vatAmount = computed(() => {\n if (!props.showVat) return 0;\n return formatPrice(props.totalPrice * props.vatRate);\n});\n\nconst feesRate = computed(() => {\n if (!props.showFees) return 0;\n return formatPrice(props.totalPrice * props.feesRate);\n});\n\nconst grandTotal = computed(() => {\n return formatPrice(parseFloat(props.totalPrice) + parseFloat(feesRate.value) + parseFloat(vatAmount.value));\n});\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCA,UAAM,QAAQ;AA2Bd,UAAM,OAAO;AAAA,MACX,UAAU;AAAA,QACR,IAAI;AAAA,UACF,UAAU;AAAA,UACV,UAAU;AAAA,UACV,KAAK;AAAA,UACL,SAAS;AAAA,QACV;AAAA,QACD,IAAI;AAAA,UACF,UAAU;AAAA,UACV,UAAU;AAAA,UACV,KAAK;AAAA,UACL,SAAS;AAAA,QACf;AAAA,MACA;AAAA,IACA;AAEA,UAAM,EAAE,EAAC,IAAK,QAAQ,IAAI;AAE1B,UAAM,cAAc,CAAC,UAAU,MAAM,QAAQ,CAAC;AAE9C,UAAM,YAAY,SAAS,MAAM;AAC/B,UAAI,CAAC,MAAM,QAAS,QAAO;AAC3B,aAAO,YAAY,MAAM,aAAa,MAAM,OAAO;AAAA,IACrD,CAAC;AAED,UAAM,WAAW,SAAS,MAAM;AAC9B,UAAI,CAAC,MAAM,SAAU,QAAO;AAC5B,aAAO,YAAY,MAAM,aAAa,MAAM,QAAQ;AAAA,IACtD,CAAC;AAED,UAAM,aAAa,SAAS,MAAM;AAChC,aAAO,YAAY,WAAW,MAAM,UAAU,IAAI,WAAW,SAAS,KAAK,IAAI,WAAW,UAAU,KAAK,CAAC;AAAA,IAC5G,CAAC;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"PriceTotal.vue.js","sources":["../../../../../../../src/modules/orders/components/elements/PriceTotal.vue"],"sourcesContent":["<template>\n <div class=\"total-calculations\">\n <!-- Base price calculation -->\n <p class=\"flex flex-nowrap pd-t-small\">\n <span class=\"w-100 t-transp\">{{ t('subtotal') }}</span>\n <span class=\"w-100 t-right\">{{currency}}{{totalPrice}}</span>\n </p>\n \n <!-- Platform fee (conditional) -->\n <p v-if=\"showFees\" class=\"flex flex-nowrap pd-t-small\">\n <span class=\"w-100 t-transp\">{{ t('feesRate') }}</span>\n <span class=\"w-100 t-right\">{{currency}}{{feesRate}}</span>\n </p>\n \n <!-- VAT calculation (conditional) -->\n <p v-if=\"showVat\" class=\"flex flex-nowrap pd-t-small\">\n <span class=\"w-100 t-transp\">{{ t('vat', { rate: vatRate * 100 }) }}</span>\n <span class=\"w-100 t-right\">{{currency}}{{vatAmount}}</span>\n </p>\n\n <!-- Delivery fee (conditional) -->\n <p v-if=\"showDeliveryFee\" class=\"flex flex-nowrap br-black-transp-10 br-solid br-b pd-b-small pd-t-small\">\n <span class=\"w-100 t-transp\">{{ t('delivery') }}</span>\n <span class=\"w-100 t-right\">{{currency}}{{deliveryAmount}}</span>\n </p>\n \n <!-- Grand total -->\n <p class=\"p-big flex flex-nowrap pd-b-small pd-t-small\">\n <span class=\"w-100 t-medium\">{{ t('intotal') }}</span>\n <span class=\"w-100 t-main t-medium t-right\">{{currency}}{{grandTotal}}</span>\n </p>\n </div>\n</template>\n\n\n<script setup>\nimport { computed } from 'vue';\nimport { useI18n } from 'vue-i18n';\n\nconst props = defineProps({\n totalPrice: {\n type: Number,\n required: true\n },\n currency: {\n type: String,\n required: true\n },\n showFees: {\n type: Boolean,\n default: false\n },\n feesRate: {\n type: Number,\n default: 0\n },\n showVat: {\n type: Boolean,\n default: false\n },\n vatRate: {\n type: Number,\n default: 0\n },\n showDeliveryFee: {\n type: Boolean,\n default: false\n },\n deliveryRate: {\n type: Number,\n default: 0\n }\n});\n\nconst text = {\n messages: {\n en: {\n subtotal: 'Subtotal',\n feesRate: 'Platform Fee',\n vat: 'VAT ({rate}%)',\n delivery: 'Delivery',\n intotal: 'In Total'\n },\n ru: {\n subtotal: 'Подытог',\n feesRate: 'Плата за платформу',\n vat: 'НДС ({rate}%)',\n delivery: 'Доставка',\n intotal: 'Итого'\n }\n }\n};\n\nconst { t } = useI18n(text);\n\nconst formatPrice = (value) => value.toFixed(0);\n\nconst vatAmount = computed(() => {\n if (!props.showVat) return 0;\n return formatPrice(props.totalPrice * props.vatRate);\n});\n\nconst feesRate = computed(() => {\n if (!props.showFees) return 0;\n return formatPrice(props.totalPrice * props.feesRate);\n});\n\nconst deliveryAmount = computed(() => {\n if (!props.showDeliveryFee) return 0;\n return formatPrice(props.deliveryRate);\n});\n\nconst grandTotal = computed(() => {\n return formatPrice(\n parseFloat(props.totalPrice) +\n parseFloat(feesRate.value) +\n parseFloat(vatAmount.value) +\n parseFloat(deliveryAmount.value)\n );\n});\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,UAAM,QAAQ;AAmCd,UAAM,OAAO;AAAA,MACX,UAAU;AAAA,QACR,IAAI;AAAA,UACF,UAAU;AAAA,UACV,UAAU;AAAA,UACV,KAAK;AAAA,UACL,UAAU;AAAA,UACV,SAAS;AAAA,QACV;AAAA,QACD,IAAI;AAAA,UACF,UAAU;AAAA,UACV,UAAU;AAAA,UACV,KAAK;AAAA,UACL,UAAU;AAAA,UACV,SAAS;AAAA,QACf;AAAA,MACA;AAAA,IACA;AAEA,UAAM,EAAE,EAAC,IAAK,QAAQ,IAAI;AAE1B,UAAM,cAAc,CAAC,UAAU,MAAM,QAAQ,CAAC;AAE9C,UAAM,YAAY,SAAS,MAAM;AAC/B,UAAI,CAAC,MAAM,QAAS,QAAO;AAC3B,aAAO,YAAY,MAAM,aAAa,MAAM,OAAO;AAAA,IACrD,CAAC;AAED,UAAM,WAAW,SAAS,MAAM;AAC9B,UAAI,CAAC,MAAM,SAAU,QAAO;AAC5B,aAAO,YAAY,MAAM,aAAa,MAAM,QAAQ;AAAA,IACtD,CAAC;AAED,UAAM,iBAAiB,SAAS,MAAM;AACpC,UAAI,CAAC,MAAM,gBAAiB,QAAO;AACnC,aAAO,YAAY,MAAM,YAAY;AAAA,IACvC,CAAC;AAED,UAAM,aAAa,SAAS,MAAM;AAChC,aAAO;AAAA,QACL,WAAW,MAAM,UAAU,IAC3B,WAAW,SAAS,KAAK,IACzB,WAAW,UAAU,KAAK,IAC1B,WAAW,eAAe,KAAK;AAAA,MAChC;AAAA,IACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -4,7 +4,7 @@ const vue = require("vue");
4
4
  const vueRouter = require("vue-router");
5
5
  const Button = require("../../../../components/Button/Button.vue.cjs");
6
6
  const Select = require("../../../../components/Select/Select.vue.cjs");
7
- const Popup = require("../../../../components/Popup/Popup.vue.cjs");
7
+ const Popup = require("../../../../components/Popup/Popup.vue2.cjs");
8
8
  const IconTime = require("../../../icons/entities/IconTime.vue.cjs");
9
9
  const CardOrderItem = require("../blocks/CardOrderItem.vue.cjs");
10
10
  const CardOrganization = require("../../../organizations/components/blocks/CardOrganization.vue.cjs");
@@ -112,6 +112,13 @@ const _sfc_main = {
112
112
  lookup: ["spots"]
113
113
  });
114
114
  });
115
+ const deliveryCost = vue.computed(() => {
116
+ var _a2, _b2, _c2;
117
+ const type = orders.state.current.delivery.type;
118
+ const distance = ((_a2 = orderOrganization.value[0]) == null ? void 0 : _a2.distance) || 0;
119
+ const config = ((_c2 = (_b2 = globals.state.options) == null ? void 0 : _b2.orders) == null ? void 0 : _c2.delivery_formula) || {};
120
+ return orders.getters.getDeliveryPrice(type, distance, config);
121
+ });
115
122
  let cartTotalPrice = vue.computed(() => {
116
123
  var _a2;
117
124
  return Number((_a2 = order.value) == null ? void 0 : _a2.positions.reduce((total, product) => {
@@ -161,12 +168,12 @@ const _sfc_main = {
161
168
  closeStatusPopup();
162
169
  }
163
170
  return (_ctx, _cache) => {
164
- var _a2, _b2, _c2, _d2, _e2, _f, _g, _h, _i, _j, _k;
171
+ var _a2, _b2, _c2, _d2, _e2, _f, _g, _h, _i, _j, _k, _l;
165
172
  return order.value && orderOrganization.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
166
173
  order.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2, [
167
174
  vue.createElementVNode("div", _hoisted_3, [
168
175
  vue.createElementVNode("p", _hoisted_4, [
169
- _cache[2] || (_cache[2] = vue.createTextVNode(" Order No: ")),
176
+ _cache[3] || (_cache[3] = vue.createTextVNode(" Order No: ")),
170
177
  vue.createElementVNode("span", _hoisted_5, "#" + vue.toDisplayString(order.value._id), 1)
171
178
  ])
172
179
  ]),
@@ -230,7 +237,7 @@ const _sfc_main = {
230
237
  submit: changePaymentStatus,
231
238
  class: "t-white w-100 bg-second"
232
239
  }, {
233
- default: vue.withCtx(() => _cache[3] || (_cache[3] = [
240
+ default: vue.withCtx(() => _cache[4] || (_cache[4] = [
234
241
  vue.createElementVNode("span", null, "Change Status", -1)
235
242
  ])),
236
243
  _: 1
@@ -295,41 +302,41 @@ const _sfc_main = {
295
302
  vue.createElementVNode("div", _hoisted_10, [
296
303
  vue.createElementVNode("div", _hoisted_11, [
297
304
  vue.createElementVNode("div", _hoisted_12, [
298
- _cache[4] || (_cache[4] = vue.createElementVNode("span", { class: "d-block t-medium p-medium" }, "Order is", -1)),
305
+ _cache[5] || (_cache[5] = vue.createElementVNode("span", { class: "d-block t-medium p-medium" }, "Order is", -1)),
299
306
  vue.createElementVNode("span", _hoisted_13, vue.toDisplayString(order.value.status), 1),
300
307
  vue.createElementVNode("p", _hoisted_14, vue.toDisplayString(_ctx.formatDate(order.value.updatedAt, { language: vue.unref(locale) })), 1)
301
308
  ])
302
309
  ]),
303
310
  ((_a2 = order.value.customer.target) == null ? void 0 : _a2.number) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_15, [
304
- _cache[5] || (_cache[5] = vue.createElementVNode("p", { class: "w-100 t-medium p-medium" }, " Phone ", -1)),
311
+ _cache[6] || (_cache[6] = vue.createElementVNode("p", { class: "w-100 t-medium p-medium" }, " Phone ", -1)),
305
312
  vue.createElementVNode("p", _hoisted_16, vue.toDisplayString(((_b2 = order.value.customer.target) == null ? void 0 : _b2.number) || "Not specified"), 1)
306
313
  ])) : vue.createCommentVNode("", true),
307
314
  vue.createElementVNode("div", _hoisted_17, [
308
- _cache[6] || (_cache[6] = vue.createElementVNode("p", { class: "t-medium p-medium" }, " Address ", -1)),
315
+ _cache[7] || (_cache[7] = vue.createElementVNode("p", { class: "t-medium p-medium" }, " Address ", -1)),
309
316
  vue.createElementVNode("p", _hoisted_18, vue.toDisplayString(order.value.delivery.address || order.value.delivery.spot[0].profile.name + ", " + order.value.delivery.spot[0].address || "Not specified"), 1)
310
317
  ]),
311
318
  vue.createElementVNode("div", _hoisted_19, [
312
- _cache[7] || (_cache[7] = vue.createElementVNode("p", { class: "t-medium p-medium" }, " Delivery ", -1)),
319
+ _cache[8] || (_cache[8] = vue.createElementVNode("p", { class: "t-medium p-medium" }, " Delivery ", -1)),
313
320
  vue.createElementVNode("p", _hoisted_20, vue.toDisplayString(order.value.delivery.type ? order.value.delivery.type : "Not specified"), 1)
314
321
  ]),
315
322
  vue.createElementVNode("div", _hoisted_21, [
316
- _cache[8] || (_cache[8] = vue.createElementVNode("p", { class: "mn-r-auto t-medium p-medium" }, " Payment ", -1)),
323
+ _cache[9] || (_cache[9] = vue.createElementVNode("p", { class: "mn-r-auto t-medium p-medium" }, " Payment ", -1)),
317
324
  vue.createElementVNode("p", _hoisted_22, vue.toDisplayString(order.value.payment.type ? order.value.payment.type : "Not specified"), 1),
318
325
  vue.createElementVNode("p", {
319
- onClick: openPaymentPopup,
326
+ onClick: _cache[2] || (_cache[2] = ($event) => vue.unref(route).meta.context !== "user" && vue.unref(route).meta.context !== "root" ? openPaymentPopup : console.log("hello")),
320
327
  class: "w-max pd-thin radius-small bg-second t-white mn-l-thin cursor-pointer hover-bg-black t-right"
321
328
  }, vue.toDisplayString(order.value.payment.status ? order.value.payment.status : "Unpaid"), 1)
322
329
  ])
323
330
  ]),
324
- vue.unref(route).meta.context !== "user" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_23, [
331
+ vue.unref(route).meta.context !== "user" && vue.unref(route).meta.context !== "root" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_23, [
325
332
  vue.createElementVNode("div", _hoisted_24, [
326
333
  vue.createVNode(IconTime.default, {
327
334
  class: "i-semi t-transp",
328
335
  fill: "rgb(var(--black)"
329
336
  }),
330
337
  vue.createElementVNode("p", _hoisted_25, [
331
- _cache[9] || (_cache[9] = vue.createElementVNode("span", { class: "p-small t-transp" }, "Estimated Reaction", -1)),
332
- _cache[10] || (_cache[10] = vue.createElementVNode("br", null, null, -1)),
338
+ _cache[10] || (_cache[10] = vue.createElementVNode("span", { class: "p-small t-transp" }, "Estimated Reaction", -1)),
339
+ _cache[11] || (_cache[11] = vue.createElementVNode("br", null, null, -1)),
333
340
  vue.createTextVNode(vue.toDisplayString(_ctx.formatDate(order.value.deadline, { language: vue.unref(locale) })), 1)
334
341
  ])
335
342
  ]),
@@ -340,7 +347,7 @@ const _sfc_main = {
340
347
  }, " Mark as " + vue.toDisplayString(getNextStatus(order.value.status).label), 1)) : vue.createCommentVNode("", true)
341
348
  ])) : vue.createCommentVNode("", true),
342
349
  vue.createElementVNode("div", _hoisted_26, [
343
- _cache[11] || (_cache[11] = vue.createElementVNode("h3", { class: "mn-b-small" }, "Chat With Us", -1)),
350
+ _cache[12] || (_cache[12] = vue.createElementVNode("h3", { class: "mn-b-small" }, "Chat With Us", -1)),
344
351
  vue.createVNode(ChatPage.default, {
345
352
  username: ["Order", "UserOrder"].includes(vue.unref(route).name) ? ((_c2 = order.value.user) == null ? void 0 : _c2.name) || "User" : "Support",
346
353
  user: auth.state.user._id,
@@ -351,7 +358,7 @@ const _sfc_main = {
351
358
  _ctx.payment && _ctx.payment.Status === "CONFIRMED" ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_27, "Paid")) : vue.createCommentVNode("", true)
352
359
  ]),
353
360
  vue.createElementVNode("div", _hoisted_28, [
354
- _cache[12] || (_cache[12] = vue.createElementVNode("h3", { class: "mn-b-small" }, "Order Summary", -1)),
361
+ _cache[13] || (_cache[13] = vue.createElementVNode("h3", { class: "mn-b-small" }, "Order Summary", -1)),
355
362
  vue.createElementVNode("ul", _hoisted_29, [
356
363
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(order.value.positions, (product, index) => {
357
364
  return vue.openBlock(), vue.createBlock(CardOrderItem.default, {
@@ -364,18 +371,20 @@ const _sfc_main = {
364
371
  ]),
365
372
  vue.createVNode(PriceTotal.default, {
366
373
  totalPrice: vue.unref(cartTotalPrice),
374
+ deliveryRate: deliveryCost.value,
367
375
  currency: _ctx.returnCurrency(),
368
376
  showFees: (_e2 = (_d2 = globals.state.options) == null ? void 0 : _d2.orders) == null ? void 0 : _e2.showFees,
369
377
  feesRate: ((_g = (_f = globals.state.options) == null ? void 0 : _f.orders) == null ? void 0 : _g.feesRate) || 0,
370
378
  showVat: (_i = (_h = globals.state.options) == null ? void 0 : _h.orders) == null ? void 0 : _i.showVat,
371
- vatRate: ((_k = (_j = globals.state.options) == null ? void 0 : _j.orders) == null ? void 0 : _k.vatRate) || 0
372
- }, null, 8, ["totalPrice", "currency", "showFees", "feesRate", "showVat", "vatRate"])
379
+ vatRate: ((_k = (_j = globals.state.options) == null ? void 0 : _j.orders) == null ? void 0 : _k.vatRate) || 0,
380
+ showDeliveryFee: (_l = globals.state.options) == null ? void 0 : _l.orders.showDeliveryFee
381
+ }, null, 8, ["totalPrice", "deliveryRate", "currency", "showFees", "feesRate", "showVat", "vatRate", "showDeliveryFee"])
373
382
  ])
374
383
  ])) : vue.createCommentVNode("", true)
375
384
  ])) : vue.createCommentVNode("", true);
376
385
  };
377
386
  }
378
387
  };
379
- const OrderBackoffice = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-c30b339c"]]);
388
+ const OrderBackoffice = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-529cceb6"]]);
380
389
  exports.default = OrderBackoffice;
381
390
  //# sourceMappingURL=OrderBackoffice.vue.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"OrderBackoffice.vue.cjs","sources":["../../../../../../../src/modules/orders/components/pages/OrderBackoffice.vue"],"sourcesContent":["<template>\n\t<div v-if=\"order && orderOrganization\" class=\"pd-thin bg-white\"> \n\n\t <div v-if=\"order\" class=\"mn-b-thin pos-relative w-100 bg-main radius-medium pd-medium\">\n\t \t<div class=\"mn-b-small flex-nowrap flex\">\n\t\t \t<p class=\"t-medium p-medium\">\n\t\t \tOrder No: <span class=\"p-small t-transp\">#{{order._id}}</span>\n\t\t </p>\n\t\t\t</div>\n\n \t<div class=\"flex-nowrap flex gap-thin pos-relative \">\n\t <div v-for=\"(status, index) in globals.state.options.orders.statuses\" :key=\"index\" class=\"w-20\">\n\t <div\n\t \tclass=\"bg-white br-anim br-glow radius-extra h-1r w-100\"\n\t :class=\"\n\t\t\t\t { 'br-glow-anim': isActiveStatus(index) },\n\t\t\t\t { 't-transp': !isActiveStatus(index) },\n\t\t\t\t { 'blink': order.status === status.value && getNextStatus(order.status) }\n\t\t\t\t \"\n\t />\n\t <div \n\t \t:class=\"{ 't-transp': !isActiveStatus(index) }\"\n\t\t\t\t class=\"mn-t-thin p-small t-medium uppercase\">{{ status.value }}</div>\n\t \t</div>\n\t\t </div>\n\t </div>\n\n \t <Popup \n title=\"Change payment\" \n @close-popup=\"closePaymentPopup\" \n :isPopupOpen=\"isOpenPaymentPopup\"\n class=\"bg-light w-min-25r w-max-25r radius-medium pd-big\"\n >\n \t<Select \n v-model:select=\"selectedPayments.type\"\n :property=\"'value'\"\n label=\"Type\"\n :options=\"[\n {name: 'Cash', value: 'cash'}, \n {name: 'Card', value: 'card'}, \n {name: 'Bank Transfer', value: 'bank'},\n ]\"\n placeholder=\"Select type of payment\" \n size=\"small\"\n class=\"bg-white mn-b-thin pd-regular radius-small w-100\"\n />\n\n <Select \n v-model:select=\"selectedPayments.status\"\n :property=\"'value'\"\n label=\"Status\"\n :options=\"[\n {name: 'Unpaid', value: 'unpaid'}, \n {name: 'Paid', value: 'paid'}, \n {name: 'Refunded', value: 'refunded'},\n ]\"\n placeholder=\"Select status of payment\" \n size=\"small\"\n class=\"bg-white mn-b-small pd-regular radius-small w-100\"\n />\n\n\n <Button :submit=\"changePaymentStatus\" class=\"t-white w-100 bg-second\">\n\t\t\t\t<span>Change Status</span>\n\t\t\t</Button>\n\t \t</Popup>\n\n\t <Popup \n title=\"Change order status\" \n @close-popup=\"closeStatusPopup\" \n :isPopupOpen=\"isOpeStatusPopup\"\n class=\"bg-light w-min-30r w-max-30r radius-medium pd-big\"\n >\n\n\t\t\t<!-- Добавить выбор примерного времени -->\n\n \t<ul class=\"flex gap-thin flex-column mn-b-thin\">\n \t\t\t<CardOrderItem\n \t\t\t\tv-for=\"(product, index) in order.positions\" :key=\"product._id\"\n \t\t\t\t:editable=\"true\" \n \t\t\t\t:product=\"product\" \n \t\t\t\t:increase=\"product => orders.mutations.incrementItemQuantity(order, product._id)\"\n\t :decrease=\"product => orders.mutations.decrementItemQuantity(order, product._id)\"\n\t :remove=\"product => orders.mutations.removeProduct(order, product._id)\"\n\t @updateRentDates=\"(product, dates) => shopcart.actions.updateRentDates({ positions: order.positions, productId: product._id, dates })\"\n \t\t\t\tclass=\"bg-white radius-small pd-small\"\n \t\t\t/>\n </ul>\n \n <PriceTotal \n :totalPrice=\"cartTotalPrice\"\n :currency=\"returnCurrency()\"\n :showFees=\"globals.state.options?.orders?.showFees\"\n :feesRate=\"globals.state.options?.orders?.feesRate || 0\"\n :showVat=\"globals.state.options?.orders?.showVat\"\n :vatRate=\"globals.state.options?.orders?.vatRate || 0\"\n />\n\n \t<Button :submit=\"setNextStatus\" class=\"t-white w-100 bg-second\">\n\t\t\t\t<span>{{'Confirm Changing to ' + (getNextStatus(order.status)).label}}</span>\n\t\t\t</Button>\n\t \t</Popup>\n\n\n\t \n\t <div v-if=\"order\" class=\"gap-thin cols-2\">\n\n\t <div class=\"w-100\">\n\n\n\t\t <CardOrganization \n\t\t \tv-if=\"orderOrganization[0]\"\n\t\t :organization=\"orderOrganization[0]\"\n\t\t :showRating=\"true\"\n\t\t :showFollowers=\"false\"\n\t\t :showProducts=\"false\"\n\t\t class=\"bg-light mn-b-thin w-100 o-hidden radius-medium pd-small \"\n\t\t />\n\n\n\t\t <div \n\t\t \tclass=\"mn-b-thin bg-light w-100 o-hidden radius-medium \"\n\t\t >\n\t\t \t<div class=\"pd-small flex-nowrap flex\">\n\t\t\t \t<div class=\"mn-r-auto\">\n\t\t\t\t \t<span class=\"d-block t-medium p-medium\">Order is</span>\n\t\t\t\t\t <span class=\" t-lh-075 h2 d-block mn-b-small\">{{order.status}}</span>\n\t\t\t\t\t <p class=\"pd-t-nano pd-b-nano pd-r-thin pd-l-thin radius-extra bg-black t-white w-max\">{{formatDate(order.updatedAt, {language: locale })}}</p>\n\t\t\t\t\t </div>\n\t\t\t\t\t <!-- <div class=\"t-right\">\n\t\t\t\t\t \tCancel order<br>\n\t\t\t\t\t \tExchange item\n\t\t\t\t\t \t<hr class=\"mn-b-thin mn-t-thin\">\n\t\t\t\t\t \tFor Delivery Queries Contact Us\n\t\t\t\t\t \t\n\t\t\t\t\t </div> -->\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div v-if=\"order.customer.target?.number\" class=\"pd-small flex flex-nowrap flex-v-center br-t br-black-transp-10 br-solid\">\n\t\t\t \t<p class=\"w-100 t-medium p-medium\">\n\t\t\t \tPhone\n\t\t\t </p>\n\n\t\t\t <p class=\"w-100 t-right \">\n\t\t\t \t{{order.customer.target?.number || 'Not specified'}}\n\t\t\t </p>\n\t\t\t </div>\n\n\t\t\t <div class=\"pd-small flex flex-nowrap flex-v-center br-t br-black-transp-10 br-solid\">\n\t\t\t \t<p class=\"t-medium p-medium\">\n\t\t\t \tAddress\n\t\t\t </p>\n\n\t\t\t <p class=\"w-100 t-right\">\n\t\t\t {{order.delivery.address || (order.delivery.spot[0].profile.name + ', ' + order.delivery.spot[0].address) || 'Not specified'}} \n\t\t\t </p>\n\t\t\t </div>\n\n\t\t\t <div class=\"pd-small flex flex-nowrap flex-v-center br-t br-black-transp-10 br-solid\">\n\t\t\t \t<p class=\"t-medium p-medium\">\n\t\t\t \tDelivery\n\t\t\t </p>\n\n\t\t\t <p class=\"w-100 t-right \">\n\t\t\t {{order.delivery.type ? order.delivery.type : 'Not specified'}} \n\t\t\t </p>\n\t\t\t </div>\n\n\t\t\t <div class=\"pd-small flex flex-nowrap flex-v-center br-t br-black-transp-10 br-solid\">\n\t\t\t \t<p class=\"mn-r-auto t-medium p-medium\">\n\t\t\t \tPayment\n\t\t\t </p>\n\n\n\t\t\t <p class=\"w-max t-right\">\n\t\t\t {{order.payment.type ? order.payment.type : 'Not specified'}} \n\t\t\t </p>\n\n\t\t\t <p @click=\"openPaymentPopup\" class=\"w-max pd-thin radius-small bg-second t-white mn-l-thin cursor-pointer hover-bg-black t-right\">\n\t\t\t {{order.payment.status ? order.payment.status : 'Unpaid'}} \n\t\t\t </p>\n\t\t\t </div>\n\n\n\t\t\t\t</div>\n\n\t\t\t\t<div v-if=\"route.meta.context !== 'user'\" class=\"o-y-scroll bg-light pd-thin mn-b-thin pd-thin radius-medium flex-nowrap flex\">\n\t\t \t\t<div class=\"flex-child-default mn-r-small w-max flex-v-center gap-thin flex-nowrap flex pd-thin radius-small bg-light-transp-20\">\n\t\t \t\t\t<IconTime class=\"i-semi t-transp\" fill=\"rgb(var(--black)\" />\n\t\t <p class=\"t-medium mn-r-auto\"><span class=\"p-small t-transp\">Estimated Reaction</span><br>{{formatDate(order.deadline, { language: locale })}}</p>\n\t\t\t \t</div>\n\t\t\t \t<button v-if=\"getNextStatus(order.status)\" @click=\"openStatusPopup\" class=\"flex-child-default mn-l-auto bg-black t-white button\"> \n\t\t\t\t Mark as {{ (getNextStatus(order.status)).label }} \n\t\t\t\t </button>\n\t\t \t</div>\n\n\t\t\t<div class=\"bg-light radius-medium pd-medium mn-r-bold w-100\">\n\t\t <h3 class=\"mn-b-small\">Chat With Us</h3>\n\n\t\t <ChatPage\n\t\t \t:username=\"['Order', 'UserOrder'].includes(route.name) ? (order.user?.name || 'User') : 'Support'\"\n\t\t \t:user=\"auth.state.user._id\"\n\t\t \t:chatID=\"route.params.order\"\n\t\t \tclass=\"radius-semi bs-black bg-light o-hidden\"\n\t\t />\n\n\t </div>\n\t \t<!-- <StatusHistory \n\t \t\tv-if=\"orders.state.current.status_history\"\n\t \t\t:statuses=\"statuses\"\n\t \t\t:statusHistory=\"orders.state.current.status_history\"\n\t \t\t:statusCurrent=\"orders.state.current.status\"\n\t \t\t:edit=\"route.name === 'Order Edit'\"\n\t \t/> -->\n\n\t <!-- \t<button \n\t \t@click=\"requestPayment(order)\"\n\t \tv-if=\"\n\t \t\torder.status === 'Подтвержден' \n\t \t\t&& order.payment.type === 'Online'\n\t \t\t&& payment.Status !== 'CONFIRMED'\n\t \t\t&& payment.Status !== 'REFUNDED'\n\t \t\" \n\t \tclass='w-100 button'>Оплатить заказ</button> -->\n\t \t<span class=\"t-transp\" v-if=\"payment && payment.Status === 'CONFIRMED'\">Paid</span> \n\t </div> \n\n\t <div class=\"bg-light radius-medium pd-medium w-100\">\n\t \t\t<h3 class=\"mn-b-small\">Order Summary</h3>\n\n\t \t\t<ul class=\"flex gap-thin flex-column mn-b-thin\">\n\t \t\t\t<CardOrderItem\n\t \t\t\t\tv-for=\"(product, index) in order.positions\" :key=\"product._id\"\n\t \t\t\t\t:editable=\"false\" \n\t \t\t\t\t:product=\"product\" \n\t \t\t\t\tclass=\"bg-white radius-small pd-small\"\n\t \t\t\t/>\n\t </ul>\n\t \n\t <PriceTotal \n :totalPrice=\"cartTotalPrice\"\n :currency=\"returnCurrency()\"\n :showFees=\"globals.state.options?.orders?.showFees\"\n :feesRate=\"globals.state.options?.orders?.feesRate || 0\"\n :showVat=\"globals.state.options?.orders?.showVat\"\n :vatRate=\"globals.state.options?.orders?.vatRate || 0\"\n />\n \t</div>\n\n\t \n\t </div>\n\t</div>\t\t\n\n</template>\n\n\n<script setup=\"props\">\n\timport { computed, ref, onMounted } from 'vue'\n\timport { useRouter, useRoute } from 'vue-router'\n\n\timport Button from '@martyrs/src/components/Button/Button.vue'\n\timport Select from '@martyrs/src/components/Select/Select.vue'\n\timport Popup from \"@martyrs/src/components/Popup/Popup.vue\";\n\n\timport IconTime from '@martyrs/src/modules/icons/entities/IconTime.vue'\n\n\t// Block\n\timport CardOrderItem from '@martyrs/src/modules/orders/components/blocks/CardOrderItem.vue'\n\timport CardOrganization from '@martyrs/src/modules/organizations/components/blocks/CardOrganization.vue'\n\n\timport ChatPage from '@martyrs/src/modules/chats/components/pages/ChatPage.vue';\n\n\timport StatusHistory from '@martyrs/src/modules/orders/components/blocks/StatusHistory.vue'\n\timport PriceTotal from '@martyrs/src/modules/orders/components/elements/PriceTotal.vue';\n\timport FormPayment from '@martyrs/src/modules/orders/components/sections/FormPayment.vue'\n\n\timport * as globals \tfrom '@martyrs/src/modules/globals/views/store/globals'\n\timport * as auth from '@martyrs/src/modules/auth/views/store/auth'\n\timport * as orders \tfrom '@martyrs/src/modules/orders/store/orders'\n\timport * as products \tfrom '@martyrs/src/modules/products/store/products'\n\timport * as organizations \tfrom '@martyrs/src/modules/organizations/store/organizations'\n\n\timport { useI18n } from 'vue-i18n';\n\t\n\tconst { locale } = useI18n();\n\n\tconst router = useRouter()\n\tconst route = useRoute()\n\n\tconst order = ref(null)\n\tconst productsOrganization = ref(null)\n\tconst orderOrganization = ref(null)\n\n\tconst statuses = globals.state.options.orders.statuses\n\tconst statusLabels = ['Created', 'Confirmed', 'Preparing', 'In use', 'Finished'];\n\n if (route.meta.context === 'user' && \n auth.state.user && \n route.params._id !== auth.state.user?._id && \n !auth.state.access?.roles?.includes('ROLE_MODERATOR') && \n !auth.state.access?.roles?.includes('ROLE_ADMIN')) {\n router.push('/401');\n }\n\n\tconst isOpeStatusPopup = ref(false);\n\tconst selectedMember = ref(null);\n\n\tfunction openStatusPopup(member) {\n\t isOpeStatusPopup.value = true;\n\t if (typeof member === \"number\") selectedMember.value = member;\n\t}\n\n\tfunction closeStatusPopup() {\n\t isOpeStatusPopup.value = false;\n\t selectedMember.value = null;\n\t}\n\n\tconst isOpenPaymentPopup = ref(false);\n\n\tconst selectedPayments = ref({\n\t\ttype: null,\n\t\tstatus: null\n\t});\n\n\tfunction openPaymentPopup() {\n\t selectedPayments.value.type = order.value.payment.type\n\t selectedPayments.value.status = order.value.payment.status\n\n\t isOpenPaymentPopup.value = true;\n\t}\n\n\tfunction closePaymentPopup() {\n\t isOpenPaymentPopup.value = false;\n\t}\n\n\tonMounted(async()=>{\n\t\torder.value = await orders.actions.read({_id: route.params.order})\n\t\torder.value = order.value[0]\n\n\t orderOrganization.value = await organizations.actions.read({\n\t _id: order.value?.owner.target._id,\n\t location: globals.state.position?.location,\n\t lookup: ['spots']\n\t });\n\n\t})\n\n\tlet cartTotalPrice = computed(() => {\n return Number(order.value?.positions.reduce((total, product) => {\n // Проверяем тип листинга\n if (product.listing === 'rent') {\n const start = new Date(product.date.start)\n const end = new Date(product.date.end)\n const diffTime = Math.abs(end - start)\n return total + product.price * (Math.ceil(diffTime / (1000 * 60 * 60 * 24)) + 1);\n } else {\n // Для обычных товаров умножаем на количество\n return total + product.price * (product.quantity || 1);\n }\n }, 0));\n })\n\n\n let cartTotalAmount = computed(() => {\n return Number(order.value?.positions.reduce((total, product) => {\n return total + product.quantity;\n }, 0));\n })\n\n // Функция установки нового статуса\n\tasync function setStatus (newStatus) {\n\t orders.state.current.status = newStatus\n\n\t await orders.actions.update(orders.state.current)\n\t} \n\n\n\tfunction getNextStatus(currentStatus) {\n\t const currentIndex = globals.state.options.orders.statuses.findIndex(status => status.value === currentStatus);\n\n\t if (currentIndex !== -1 && currentIndex + 1 < statuses.length) {\n\t return globals.state.options.orders.statuses[currentIndex + 1];\n\t }\n\t return null; // If next status doesn't exist\n\t}\n\n\tconst isActiveStatus = (index) => {\n\t return globals.state.options.orders.statuses.slice(index).some(status => status.value === order.value.status);\n\t};\n\n async function changePaymentStatus() {\n if (selectedPayments.value.status && selectedPayments.value.type) {\n orders.state.current.payment = selectedPayments.value;\n\n await orders.actions.update(orders.state.current)\n } else {\n console.error('Payment status is void. Must handle somehow.');\n }\n\n\t\tclosePaymentPopup()\n }\n\n async function setNextStatus() {\n const nextStatus = getNextStatus(orders.state.current.status);\n\n if (nextStatus) {\n orders.state.current.status = nextStatus.value;\n\n await orders.actions.update(orders.state.current)\n } else {\n console.error('Next status is void. Must handle somehow.');\n }\n\n\t\tcloseStatusPopup()\n }\n\n async function cancelOrder() {\n \talert()\n\n orders.state.current.status = 'canceled';\n\n await orders.actions.update(orders.state.current)\n}\n\n\n async function confirmOrder() {\n \talert()\n\n orders.state.current.status = 'confirmed';\n\n await orders.actions.update(orders.state.current)\n\t}\n\n\tfunction calculateDeliveryTime(distance, date) {\n\t if (!distance) {\n\t return null;\n\t }\n\n\t const basePreparationTime = 10 * 60 * 1000; // Convert to milliseconds\n\t const travelTime = Math.ceil((15 + 5 + 3 * distance) / 5) * 5 * 60 * 1000;\n\n\t // Преобразование даты начала в миллисекунды и добавление времени подготовки и доставки\n\t const startTime = new Date(date).getTime();\n\t const estimatedDeliveryTime = new Date(startTime + basePreparationTime + travelTime);\n\n\t return estimatedDeliveryTime;\n\t}\n\n\n</script>\n\n<style lang=\"scss\" scoped>\n\t.blink {\n\t animation: blink-animation 1s ease infinite;\n\t}\n\n\t@keyframes blink-animation {\n\t 0%, 100% {\n\t opacity: 1;\n\t }\n\t 50% {\n\t opacity: 0.8;\n\t }\n\t}\n</style>"],"names":["useI18n","useRouter","useRoute","ref","globals.state","auth.state","onMounted","orders.actions","organizations.actions","_a","computed","orders.state"],"mappings":"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"}
1
+ {"version":3,"file":"OrderBackoffice.vue.cjs","sources":["../../../../../../../src/modules/orders/components/pages/OrderBackoffice.vue"],"sourcesContent":["<template>\n\t<div v-if=\"order && orderOrganization\" class=\"pd-thin bg-white\"> \n\n\t <div v-if=\"order\" class=\"mn-b-thin pos-relative w-100 bg-main radius-medium pd-medium\">\n\t \t<div class=\"mn-b-small flex-nowrap flex\">\n\t\t \t<p class=\"t-medium p-medium\">\n\t\t \tOrder No: <span class=\"p-small t-transp\">#{{order._id}}</span>\n\t\t </p>\n\t\t\t</div>\n\n \t<div class=\"flex-nowrap flex gap-thin pos-relative \">\n\t <div v-for=\"(status, index) in globals.state.options.orders.statuses\" :key=\"index\" class=\"w-20\">\n\t <div\n\t \tclass=\"bg-white br-anim br-glow radius-extra h-1r w-100\"\n\t :class=\"\n\t\t\t\t { 'br-glow-anim': isActiveStatus(index) },\n\t\t\t\t { 't-transp': !isActiveStatus(index) },\n\t\t\t\t { 'blink': order.status === status.value && getNextStatus(order.status) }\n\t\t\t\t \"\n\t />\n\t <div \n\t \t:class=\"{ 't-transp': !isActiveStatus(index) }\"\n\t\t\t\t class=\"mn-t-thin p-small t-medium uppercase\">{{ status.value }}</div>\n\t \t</div>\n\t\t </div>\n\t </div>\n\n \t <Popup \n title=\"Change payment\" \n @close-popup=\"closePaymentPopup\" \n :isPopupOpen=\"isOpenPaymentPopup\"\n class=\"bg-light w-min-25r w-max-25r radius-medium pd-big\"\n >\n \t<Select \n v-model:select=\"selectedPayments.type\"\n :property=\"'value'\"\n label=\"Type\"\n :options=\"[\n {name: 'Cash', value: 'cash'}, \n {name: 'Card', value: 'card'}, \n {name: 'Bank Transfer', value: 'bank'},\n ]\"\n placeholder=\"Select type of payment\" \n size=\"small\"\n class=\"bg-white mn-b-thin pd-regular radius-small w-100\"\n />\n\n <Select \n v-model:select=\"selectedPayments.status\"\n :property=\"'value'\"\n label=\"Status\"\n :options=\"[\n {name: 'Unpaid', value: 'unpaid'}, \n {name: 'Paid', value: 'paid'}, \n {name: 'Refunded', value: 'refunded'},\n ]\"\n placeholder=\"Select status of payment\" \n size=\"small\"\n class=\"bg-white mn-b-small pd-regular radius-small w-100\"\n />\n\n\n <Button :submit=\"changePaymentStatus\" class=\"t-white w-100 bg-second\">\n\t\t\t\t<span>Change Status</span>\n\t\t\t</Button>\n\t \t</Popup>\n\n\t <Popup \n title=\"Change order status\" \n @close-popup=\"closeStatusPopup\" \n :isPopupOpen=\"isOpeStatusPopup\"\n class=\"bg-light w-min-30r w-max-30r radius-medium pd-big\"\n >\n\n\t\t\t<!-- Добавить выбор примерного времени -->\n\n \t<ul class=\"flex gap-thin flex-column mn-b-thin\">\n \t\t\t<CardOrderItem\n \t\t\t\tv-for=\"(product, index) in order.positions\" :key=\"product._id\"\n \t\t\t\t:editable=\"true\" \n \t\t\t\t:product=\"product\" \n \t\t\t\t:increase=\"product => orders.mutations.incrementItemQuantity(order, product._id)\"\n\t :decrease=\"product => orders.mutations.decrementItemQuantity(order, product._id)\"\n\t :remove=\"product => orders.mutations.removeProduct(order, product._id)\"\n\t @updateRentDates=\"(product, dates) => shopcart.actions.updateRentDates({ positions: order.positions, productId: product._id, dates })\"\n \t\t\t\tclass=\"bg-white radius-small pd-small\"\n \t\t\t/>\n </ul>\n \n <PriceTotal \n :totalPrice=\"cartTotalPrice\"\n :currency=\"returnCurrency()\"\n :showFees=\"globals.state.options?.orders?.showFees\"\n :feesRate=\"globals.state.options?.orders?.feesRate || 0\"\n :showVat=\"globals.state.options?.orders?.showVat\"\n :vatRate=\"globals.state.options?.orders?.vatRate || 0\"\n />\n\n \t<Button :submit=\"setNextStatus\" class=\"t-white w-100 bg-second\">\n\t\t\t\t<span>{{'Confirm Changing to ' + (getNextStatus(order.status)).label}}</span>\n\t\t\t</Button>\n\t \t</Popup>\n\n\n\t \n\t <div v-if=\"order\" class=\"gap-thin cols-2\">\n\n\t <div class=\"w-100\">\n\n\n\t\t <CardOrganization \n\t\t \tv-if=\"orderOrganization[0]\"\n\t\t :organization=\"orderOrganization[0]\"\n\t\t :showRating=\"true\"\n\t\t :showFollowers=\"false\"\n\t\t :showProducts=\"false\"\n\t\t class=\"bg-light mn-b-thin w-100 o-hidden radius-medium pd-small \"\n\t\t />\n\n\n\t\t <div \n\t\t \tclass=\"mn-b-thin bg-light w-100 o-hidden radius-medium \"\n\t\t >\n\t\t \t<div class=\"pd-small flex-nowrap flex\">\n\t\t\t \t<div class=\"mn-r-auto\">\n\t\t\t\t \t<span class=\"d-block t-medium p-medium\">Order is</span>\n\t\t\t\t\t <span class=\" t-lh-075 h2 d-block mn-b-small\">{{order.status}}</span>\n\t\t\t\t\t <p class=\"pd-t-nano pd-b-nano pd-r-thin pd-l-thin radius-extra bg-black t-white w-max\">{{formatDate(order.updatedAt, {language: locale })}}</p>\n\t\t\t\t\t </div>\n\t\t\t\t\t <!-- <div class=\"t-right\">\n\t\t\t\t\t \tCancel order<br>\n\t\t\t\t\t \tExchange item\n\t\t\t\t\t \t<hr class=\"mn-b-thin mn-t-thin\">\n\t\t\t\t\t \tFor Delivery Queries Contact Us\n\t\t\t\t\t \t\n\t\t\t\t\t </div> -->\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div v-if=\"order.customer.target?.number\" class=\"pd-small flex flex-nowrap flex-v-center br-t br-black-transp-10 br-solid\">\n\t\t\t \t<p class=\"w-100 t-medium p-medium\">\n\t\t\t \tPhone\n\t\t\t </p>\n\n\t\t\t <p class=\"w-100 t-right \">\n\t\t\t \t{{order.customer.target?.number || 'Not specified'}}\n\t\t\t </p>\n\t\t\t </div>\n\n\t\t\t <div class=\"pd-small flex flex-nowrap flex-v-center br-t br-black-transp-10 br-solid\">\n\t\t\t \t<p class=\"t-medium p-medium\">\n\t\t\t \tAddress\n\t\t\t </p>\n\n\t\t\t <p class=\"w-100 t-right\">\n\t\t\t {{order.delivery.address || (order.delivery.spot[0].profile.name + ', ' + order.delivery.spot[0].address) || 'Not specified'}} \n\t\t\t </p>\n\t\t\t </div>\n\n\t\t\t <div class=\"pd-small flex flex-nowrap flex-v-center br-t br-black-transp-10 br-solid\">\n\t\t\t \t<p class=\"t-medium p-medium\">\n\t\t\t \tDelivery\n\t\t\t </p>\n\n\t\t\t <p class=\"w-100 t-right \">\n\t\t\t {{order.delivery.type ? order.delivery.type : 'Not specified'}} \n\t\t\t </p>\n\t\t\t </div>\n\n\t\t\t <div class=\"pd-small flex flex-nowrap flex-v-center br-t br-black-transp-10 br-solid\">\n\t\t\t \t<p class=\"mn-r-auto t-medium p-medium\">\n\t\t\t \tPayment\n\t\t\t </p>\n\n\n\t\t\t <p class=\"w-max t-right\">\n\t\t\t {{order.payment.type ? order.payment.type : 'Not specified'}} \n\t\t\t </p>\n\n\t\t\t <p @click=\"route.meta.context !== 'user' && route.meta.context !== 'root' ? openPaymentPopup : console.log('hello')\" class=\"w-max pd-thin radius-small bg-second t-white mn-l-thin cursor-pointer hover-bg-black t-right\">\n\t\t\t {{order.payment.status ? order.payment.status : 'Unpaid'}} \n\t\t\t </p>\n\t\t\t </div>\n\n\n\t\t\t\t</div>\n\n\t\t\t\t<div v-if=\"route.meta.context !== 'user' && route.meta.context !== 'root'\" class=\"o-y-scroll bg-light pd-thin mn-b-thin pd-thin radius-medium flex-nowrap flex\">\n\t\t \t\t<div class=\"flex-child-default mn-r-small w-max flex-v-center gap-thin flex-nowrap flex pd-thin radius-small bg-light-transp-20\">\n\t\t \t\t\t<IconTime class=\"i-semi t-transp\" fill=\"rgb(var(--black)\" />\n\t\t <p class=\"t-medium mn-r-auto\"><span class=\"p-small t-transp\">Estimated Reaction</span><br>{{formatDate(order.deadline, { language: locale })}}</p>\n\t\t\t \t</div>\n\t\t\t \t<button v-if=\"getNextStatus(order.status)\" @click=\"openStatusPopup\" class=\"flex-child-default mn-l-auto bg-black t-white button\"> \n\t\t\t\t Mark as {{ (getNextStatus(order.status)).label }} \n\t\t\t\t </button>\n\t\t \t</div>\n\n\t\t\t<div class=\"bg-light radius-medium pd-medium mn-r-bold w-100\">\n\t\t <h3 class=\"mn-b-small\">Chat With Us</h3>\n\n\t\t <ChatPage\n\t\t \t:username=\"['Order', 'UserOrder'].includes(route.name) ? (order.user?.name || 'User') : 'Support'\"\n\t\t \t:user=\"auth.state.user._id\"\n\t\t \t:chatID=\"route.params.order\"\n\t\t \tclass=\"radius-semi bs-black bg-light o-hidden\"\n\t\t />\n\n\t </div>\n\t \t<!-- <StatusHistory \n\t \t\tv-if=\"orders.state.current.status_history\"\n\t \t\t:statuses=\"statuses\"\n\t \t\t:statusHistory=\"orders.state.current.status_history\"\n\t \t\t:statusCurrent=\"orders.state.current.status\"\n\t \t\t:edit=\"route.name === 'Order Edit'\"\n\t \t/> -->\n\n\t <!-- \t<button \n\t \t@click=\"requestPayment(order)\"\n\t \tv-if=\"\n\t \t\torder.status === 'Подтвержден' \n\t \t\t&& order.payment.type === 'Online'\n\t \t\t&& payment.Status !== 'CONFIRMED'\n\t \t\t&& payment.Status !== 'REFUNDED'\n\t \t\" \n\t \tclass='w-100 button'>Оплатить заказ</button> -->\n\t \t<span class=\"t-transp\" v-if=\"payment && payment.Status === 'CONFIRMED'\">Paid</span> \n\t </div> \n\n\t <div class=\"bg-light radius-medium pd-medium w-100\">\n\t \t\t<h3 class=\"mn-b-small\">Order Summary</h3>\n\n\t \t\t<ul class=\"flex gap-thin flex-column mn-b-thin\">\n\t \t\t\t<CardOrderItem\n\t \t\t\t\tv-for=\"(product, index) in order.positions\" :key=\"product._id\"\n\t \t\t\t\t:editable=\"false\" \n\t \t\t\t\t:product=\"product\" \n\t \t\t\t\tclass=\"bg-white radius-small pd-small\"\n\t \t\t\t/>\n\t </ul>\n\t \n\t <PriceTotal \n :totalPrice=\"cartTotalPrice\"\n :deliveryRate=\"deliveryCost\"\n :currency=\"returnCurrency()\"\n :showFees=\"globals.state.options?.orders?.showFees\"\n :feesRate=\"globals.state.options?.orders?.feesRate || 0\"\n :showVat=\"globals.state.options?.orders?.showVat\"\n :vatRate=\"globals.state.options?.orders?.vatRate || 0\"\n\t\t\t\t :showDeliveryFee=\"globals.state.options?.orders.showDeliveryFee\"\n\n />\n \t</div>\n\n\t \n\t </div>\n\t</div>\t\t\n\n</template>\n\n\n<script setup=\"props\">\n\timport { computed, ref, onMounted } from 'vue'\n\timport { useRouter, useRoute } from 'vue-router'\n\n\timport Button from '@martyrs/src/components/Button/Button.vue'\n\timport Select from '@martyrs/src/components/Select/Select.vue'\n\timport Popup from \"@martyrs/src/components/Popup/Popup.vue\";\n\n\timport IconTime from '@martyrs/src/modules/icons/entities/IconTime.vue'\n\n\t// Block\n\timport CardOrderItem from '@martyrs/src/modules/orders/components/blocks/CardOrderItem.vue'\n\timport CardOrganization from '@martyrs/src/modules/organizations/components/blocks/CardOrganization.vue'\n\n\timport ChatPage from '@martyrs/src/modules/chats/components/pages/ChatPage.vue';\n\n\timport StatusHistory from '@martyrs/src/modules/orders/components/blocks/StatusHistory.vue'\n\timport PriceTotal from '@martyrs/src/modules/orders/components/elements/PriceTotal.vue';\n\timport FormPayment from '@martyrs/src/modules/orders/components/sections/FormPayment.vue'\n\n\timport * as globals \tfrom '@martyrs/src/modules/globals/views/store/globals'\n\timport * as auth from '@martyrs/src/modules/auth/views/store/auth'\n\timport * as orders \tfrom '@martyrs/src/modules/orders/store/orders'\n\timport * as products \tfrom '@martyrs/src/modules/products/store/products'\n\timport * as organizations \tfrom '@martyrs/src/modules/organizations/store/organizations'\n\n\timport { useI18n } from 'vue-i18n';\n\t\n\tconst { locale } = useI18n();\n\n\tconst router = useRouter()\n\tconst route = useRoute()\n\n\tconst order = ref(null)\n\tconst productsOrganization = ref(null)\n\tconst orderOrganization = ref(null)\n\n\tconst statuses = globals.state.options.orders.statuses\n\tconst statusLabels = ['Created', 'Confirmed', 'Preparing', 'In use', 'Finished'];\n\n if (route.meta.context === 'user' && \n auth.state.user && \n route.params._id !== auth.state.user?._id && \n !auth.state.access?.roles?.includes('ROLE_MODERATOR') && \n !auth.state.access?.roles?.includes('ROLE_ADMIN')) {\n router.push('/401');\n }\n\n\tconst isOpeStatusPopup = ref(false);\n\tconst selectedMember = ref(null);\n\n\tfunction openStatusPopup(member) {\n\t isOpeStatusPopup.value = true;\n\t if (typeof member === \"number\") selectedMember.value = member;\n\t}\n\n\tfunction closeStatusPopup() {\n\t isOpeStatusPopup.value = false;\n\t selectedMember.value = null;\n\t}\n\n\tconst isOpenPaymentPopup = ref(false);\n\n\tconst selectedPayments = ref({\n\t\ttype: null,\n\t\tstatus: null\n\t});\n\n\tfunction openPaymentPopup() {\n\t selectedPayments.value.type = order.value.payment.type\n\t selectedPayments.value.status = order.value.payment.status\n\n\t isOpenPaymentPopup.value = true;\n\t}\n\n\tfunction closePaymentPopup() {\n\t isOpenPaymentPopup.value = false;\n\t}\n\n\tonMounted(async()=>{\n\t\torder.value = await orders.actions.read({_id: route.params.order})\n\t\torder.value = order.value[0]\n\n\t orderOrganization.value = await organizations.actions.read({\n\t _id: order.value?.owner.target._id,\n\t location: globals.state.position?.location,\n\t lookup: ['spots']\n\t });\n\n\t})\n\n\nconst deliveryCost = computed(() => {\n const type = orders.state.current.delivery.type\n const distance = orderOrganization.value[0]?.distance || 0\n const config = globals.state.options?.orders?.delivery_formula || {}\n\n return orders.getters.getDeliveryPrice(type, distance, config)\n})\n\n\tlet cartTotalPrice = computed(() => {\n return Number(order.value?.positions.reduce((total, product) => {\n // Проверяем тип листинга\n if (product.listing === 'rent') {\n const start = new Date(product.date.start)\n const end = new Date(product.date.end)\n const diffTime = Math.abs(end - start)\n return total + product.price * (Math.ceil(diffTime / (1000 * 60 * 60 * 24)) + 1);\n } else {\n // Для обычных товаров умножаем на количество\n return total + product.price * (product.quantity || 1);\n }\n }, 0));\n })\n\n\n let cartTotalAmount = computed(() => {\n return Number(order.value?.positions.reduce((total, product) => {\n return total + product.quantity;\n }, 0));\n })\n\n // Функция установки нового статуса\n\tasync function setStatus (newStatus) {\n\t orders.state.current.status = newStatus\n\n\t await orders.actions.update(orders.state.current)\n\t} \n\n\n\tfunction getNextStatus(currentStatus) {\n\t const currentIndex = globals.state.options.orders.statuses.findIndex(status => status.value === currentStatus);\n\n\t if (currentIndex !== -1 && currentIndex + 1 < statuses.length) {\n\t return globals.state.options.orders.statuses[currentIndex + 1];\n\t }\n\t return null; // If next status doesn't exist\n\t}\n\n\tconst isActiveStatus = (index) => {\n\t return globals.state.options.orders.statuses.slice(index).some(status => status.value === order.value.status);\n\t};\n\n async function changePaymentStatus() {\n if (selectedPayments.value.status && selectedPayments.value.type) {\n orders.state.current.payment = selectedPayments.value;\n\n await orders.actions.update(orders.state.current)\n } else {\n console.error('Payment status is void. Must handle somehow.');\n }\n\n\t\tclosePaymentPopup()\n }\n\n async function setNextStatus() {\n const nextStatus = getNextStatus(orders.state.current.status);\n\n if (nextStatus) {\n orders.state.current.status = nextStatus.value;\n\n await orders.actions.update(orders.state.current)\n } else {\n console.error('Next status is void. Must handle somehow.');\n }\n\n\t\tcloseStatusPopup()\n }\n\n async function cancelOrder() {\n \talert()\n\n orders.state.current.status = 'canceled';\n\n await orders.actions.update(orders.state.current)\n}\n\n\n async function confirmOrder() {\n \talert()\n\n orders.state.current.status = 'confirmed';\n\n await orders.actions.update(orders.state.current)\n\t}\n\n\tfunction calculateDeliveryTime(distance, date) {\n\t if (!distance) {\n\t return null;\n\t }\n\n\t const basePreparationTime = 10 * 60 * 1000; // Convert to milliseconds\n\t const travelTime = Math.ceil((15 + 5 + 3 * distance) / 5) * 5 * 60 * 1000;\n\n\t // Преобразование даты начала в миллисекунды и добавление времени подготовки и доставки\n\t const startTime = new Date(date).getTime();\n\t const estimatedDeliveryTime = new Date(startTime + basePreparationTime + travelTime);\n\n\t return estimatedDeliveryTime;\n\t}\n\n\n</script>\n\n<style lang=\"scss\" scoped>\n\t.blink {\n\t animation: blink-animation 1s ease infinite;\n\t}\n\n\t@keyframes blink-animation {\n\t 0%, 100% {\n\t opacity: 1;\n\t }\n\t 50% {\n\t opacity: 0.8;\n\t }\n\t}\n</style>"],"names":["useI18n","useRouter","useRoute","ref","globals.state","auth.state","onMounted","orders.actions","organizations.actions","_a","computed","orders.state","orders.getters"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+RC,UAAM,EAAE,OAAQ,IAAGA,gBAAS;AAE5B,UAAM,SAASC,UAAS,UAAA;AACxB,UAAM,QAAQC,UAAQ,SAAA;AAEtB,UAAM,QAAQC,IAAAA,IAAI,IAAI;AACOA,QAAAA,IAAI,IAAI;AACrC,UAAM,oBAAoBA,IAAAA,IAAI,IAAI;AAElC,UAAM,WAAWC,QAAAA,MAAc,QAAQ,OAAO;AAG7C,QAAI,MAAM,KAAK,YAAY,UACvBC,KAAAA,MAAW,QACX,MAAM,OAAO,UAAQA,UAAU,MAAC,SAAXA,mBAAiB,QACtC,GAACA,gBAAU,MAAC,WAAXA,mBAAmB,UAAnBA,mBAA0B,SAAS,sBACpC,GAACA,gBAAU,MAAC,WAAXA,mBAAmB,UAAnBA,mBAA0B,SAAS,gBAAe;AACrD,aAAO,KAAK,MAAM;AAAA,IACtB;AAEC,UAAM,mBAAmBF,IAAG,IAAC,KAAK;AAClC,UAAM,iBAAiBA,IAAG,IAAC,IAAI;AAE/B,aAAS,gBAAgB,QAAQ;AAC/B,uBAAiB,QAAQ;AACzB,UAAI,OAAO,WAAW,SAAU,gBAAe,QAAQ;AAAA,IAC1D;AAEC,aAAS,mBAAmB;AAC1B,uBAAiB,QAAQ;AACzB,qBAAe,QAAQ;AAAA,IAC1B;AAEC,UAAM,qBAAqBA,IAAG,IAAC,KAAK;AAEpC,UAAM,mBAAmBA,IAAAA,IAAI;AAAA,MAC5B,MAAM;AAAA,MACN,QAAQ;AAAA,IACV,CAAE;AAED,aAAS,mBAAmB;AAC1B,uBAAiB,MAAM,OAAO,MAAM,MAAM,QAAQ;AAClD,uBAAiB,MAAM,SAAS,MAAM,MAAM,QAAQ;AAEpD,yBAAmB,QAAQ;AAAA,IAC9B;AAEC,aAAS,oBAAoB;AAC3B,yBAAmB,QAAQ;AAAA,IAC9B;AAECG,QAAAA,UAAU,YAAS;;AAClB,YAAM,QAAQ,MAAMC,eAAe,KAAK,EAAC,KAAK,MAAM,OAAO,MAAK,CAAC;AACjE,YAAM,QAAQ,MAAM,MAAM,CAAC;AAE1B,wBAAkB,QAAQ,MAAMC,cAAqB,QAAC,KAAK;AAAA,QACzD,MAAKC,MAAA,MAAM,UAAN,gBAAAA,IAAa,MAAM,OAAO;AAAA,QAC/B,WAAUL,MAAAA,QAAAA,MAAc,aAAdA,gBAAAA,IAAwB;AAAA,QAClC,QAAQ,CAAC,OAAO;AAAA,MACrB,CAAI;AAAA,IAEF,CAAA;AAGF,UAAM,eAAeM,IAAQ,SAAC,MAAM;;AAClC,YAAM,OAAOC,OAAAA,MAAa,QAAQ,SAAS;AAC3C,YAAM,aAAWF,MAAA,kBAAkB,MAAM,CAAC,MAAzB,gBAAAA,IAA4B,aAAY;AACzD,YAAM,WAASL,OAAAA,MAAAA,QAAa,MAAC,YAAdA,gBAAAA,IAAuB,WAAvBA,gBAAAA,IAA+B,qBAAoB,CAAA;AAElE,aAAOQ,eAAe,iBAAiB,MAAM,UAAU,MAAM;AAAA,IAC/D,CAAC;AAEA,QAAI,iBAAiBF,IAAAA,SAAS,MAAM;;AAChC,aAAO,QAAOD,MAAA,MAAM,UAAN,gBAAAA,IAAa,UAAU,OAAO,CAAC,OAAO,YAAY;AAE/D,YAAI,QAAQ,YAAY,QAAQ;AAC9B,gBAAM,QAAQ,IAAI,KAAK,QAAQ,KAAK,KAAK;AACzC,gBAAM,MAAM,IAAI,KAAK,QAAQ,KAAK,GAAG;AACrC,gBAAM,WAAW,KAAK,IAAI,MAAM,KAAK;AACrC,iBAAO,QAAQ,QAAQ,SAAS,KAAK,KAAK,YAAY,MAAO,KAAK,KAAK,GAAG,IAAI;AAAA,QACtF,OAAa;AAEL,iBAAO,QAAQ,QAAQ,SAAS,QAAQ,YAAY;AAAA,QAC5D;AAAA,MACK,GAAE,EAAE;AAAA,IACN,CAAA;AAGqBC,QAAAA,SAAS,MAAM;;AACnC,aAAO,QAAOD,MAAA,MAAM,UAAN,gBAAAA,IAAa,UAAU,OAAO,CAAC,OAAO,YAAY;AAC9D,eAAO,QAAQ,QAAQ;AAAA,MACxB,GAAE,EAAE;AAAA,IACN,CAAA;AAUF,aAAS,cAAc,eAAe;AACpC,YAAM,eAAeL,QAAAA,MAAc,QAAQ,OAAO,SAAS,UAAU,YAAU,OAAO,UAAU,aAAa;AAE7G,UAAI,iBAAiB,MAAM,eAAe,IAAI,SAAS,QAAQ;AAC7D,eAAOA,QAAAA,MAAc,QAAQ,OAAO,SAAS,eAAe,CAAC;AAAA,MAClE;AACG,aAAO;AAAA,IACV;AAEC,UAAM,iBAAiB,CAAC,UAAU;AAChC,aAAOA,QAAa,MAAC,QAAQ,OAAO,SAAS,MAAM,KAAK,EAAE,KAAK,YAAU,OAAO,UAAU,MAAM,MAAM,MAAM;AAAA,IAC7G;AAEA,mBAAe,sBAAsB;AACnC,UAAI,iBAAiB,MAAM,UAAU,iBAAiB,MAAM,MAAM;AAChEO,eAAAA,MAAa,QAAQ,UAAU,iBAAiB;AAEhD,cAAMJ,OAAc,QAAC,OAAOI,OAAAA,MAAa,OAAO;AAAA,MACtD,OAAW;AACL,gBAAQ,MAAM,8CAA8C;AAAA,MAClE;AAEE,wBAAiB;AAAA,IACnB;AAEE,mBAAe,gBAAgB;AAC7B,YAAM,aAAa,cAAcA,aAAa,QAAQ,MAAM;AAE5D,UAAI,YAAY;AACdA,eAAAA,MAAa,QAAQ,SAAS,WAAW;AAEzC,cAAMJ,OAAc,QAAC,OAAOI,OAAAA,MAAa,OAAO;AAAA,MACtD,OAAW;AACL,gBAAQ,MAAM,2CAA2C;AAAA,MAC/D;AAEE,uBAAgB;AAAA,IAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}