code cleanup
This commit is contained in:
		| @@ -3,71 +3,36 @@ import { useOrdersStore } from '@/stores/orders.store' | |||||||
| import { storeToRefs } from 'pinia' | import { storeToRefs } from 'pinia' | ||||||
| import VueDatePicker from '@vuepic/vue-datepicker' | import VueDatePicker from '@vuepic/vue-datepicker' | ||||||
| import { useSiteControlStore } from '@/stores/siteControl.store' | import { useSiteControlStore } from '@/stores/siteControl.store' | ||||||
| import { computed, onBeforeUnmount, onMounted, ref } from 'vue' | import { onBeforeUnmount, onMounted, ref } from 'vue' | ||||||
| import { useCategoriesStore } from '@/stores/categories.store' | import { useCategoriesStore } from '@/stores/categories.store' | ||||||
| import type { Order, OrderProduct, Product } from '@/main' | import type { Order, OrderProduct, Product } from '@/main' | ||||||
| import { useRoutesStore } from '@/stores/routes.store' | import { useRoutesStore } from '@/stores/routes.store' | ||||||
|  |  | ||||||
| const ordersStore = useOrdersStore() | const ordersStore = useOrdersStore() | ||||||
|   const categoriesStore = useCategoriesStore(); | const categoriesStore = useCategoriesStore() | ||||||
|   const routeStore = useRoutesStore(); | const routeStore = useRoutesStore() | ||||||
|  |  | ||||||
|   const { orders, dates } = storeToRefs(ordersStore); | const { orders, dates } = storeToRefs(ordersStore) | ||||||
|   const { routes } = storeToRefs(routeStore); | const { routes } = storeToRefs(routeStore) | ||||||
|   const searchDate = ref<Date>(new Date(Date.now())); | const searchDate = ref<Date>(new Date(Date.now())) | ||||||
|   const confirmedOrders = ref<boolean>(); | const confirmedOrders = ref<boolean>() | ||||||
|   const isSummed = ref<boolean>(true); | const isSummed = ref<boolean>(true) | ||||||
| const nipGrouped = ref(false) | const nipGrouped = ref(false) | ||||||
|   const isLoading = ref<boolean>(true); | const isLoading = ref<boolean>(true) | ||||||
|   const summedProducts = ref<Array<Product>>([]); | const summedProducts = ref<Array<Product>>([]) | ||||||
|   const products = ref<Array<Object>>(); | const products = ref<Array<Object>>() | ||||||
| const ordersByRoute = ref<Map<string, Array<Order>>>(new Map<string, Array<Order>>()) | const ordersByRoute = ref<Map<string, Array<Order>>>(new Map<string, Array<Order>>()) | ||||||
| const orderByRouteAndNipRef = ref<Map<string, Map<number, { | const orderByRouteAndNipRef = ref<Map<string, Map<number, { | ||||||
|   orders: Order[]; |   orders: Order[]; | ||||||
|   products: OrderProduct[] |   products: OrderProduct[] | ||||||
| }>>>(new Map<string, Map<number, { orders: Order[]; products: OrderProduct[] }>>) | }>>>(new Map<string, Map<number, { orders: Order[]; products: OrderProduct[] }>>) | ||||||
|  |  | ||||||
| const orderNumbers = computed(() => { |  | ||||||
|   const orders = orderByRouteAndNipRef.get(route.MZT_Nazwa1)?.get(order.MZN_PodNipE) |  | ||||||
|     ?.orders ?? [] |  | ||||||
|   return orders.map(o => o.MZN_MZNID).join(', ') |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| // const watchSearchDate = watch(searchDate, async (oldSearchDate, newSeatchDate) => { |  | ||||||
| //   if(oldSearchDate != newSeatchDate) { |  | ||||||
| //     await fetchOrders(); |  | ||||||
| //   } |  | ||||||
| // }); |  | ||||||
| // |  | ||||||
| // const watchConfirmedOrders = watch(confirmedOrders, async (oldConfirmedOrders, newConfirmedOrders) => { |  | ||||||
| //   if (oldConfirmedOrders != newConfirmedOrders) { |  | ||||||
| //     await fetchOrders(); |  | ||||||
| //   } |  | ||||||
| // }) |  | ||||||
| // |  | ||||||
| // async function fetchOrders() { |  | ||||||
| //   isLoading.value=true; |  | ||||||
| //   orders.value = await ordersStore.fetchOrdersByDateStartAndEnd(searchDate.value != undefined ? searchDate.value : new Date(Date.now()), |  | ||||||
| //     searchDate.value != undefined ? searchDate.value : new Date(Date.now()), |  | ||||||
| //     (confirmedOrders.value) ? false : null); |  | ||||||
| //   const productsMap = await categoriesStore.sumProductsFromOrders(orders.value); |  | ||||||
| //   summedProducts.value = []; |  | ||||||
| //   for(const product of productsMap.values()) { |  | ||||||
| //     if(product.SummedQuantity > 0) { |  | ||||||
| //       summedProducts.value.push(product); |  | ||||||
| //     } |  | ||||||
| //   } |  | ||||||
| //   await prepareProductsFromOrders(); |  | ||||||
| //   isLoading.value=false; |  | ||||||
| // } |  | ||||||
|  |  | ||||||
| function addRoutes() { | function addRoutes() { | ||||||
|   for (const route of routes.value) { |   for (const route of routes.value) { | ||||||
|     ordersByRoute.value.set(route.MZT_Nazwa1, []) |     ordersByRoute.value.set(route.MZT_Nazwa1, []) | ||||||
|     } |     } | ||||||
|   ordersByRoute.value.set('brak', []) |   ordersByRoute.value.set('brak', []) | ||||||
| } | } | ||||||
|  |  | ||||||
| function updateProducts(order: UnwrapRefSimple<Order> | UnwrapRefSimple<UnwrapRefSimple<Order>>) { | function updateProducts(order: UnwrapRefSimple<Order> | UnwrapRefSimple<UnwrapRefSimple<Order>>) { | ||||||
|   for (const product of order.MZamElem) { |   for (const product of order.MZamElem) { | ||||||
|     const newProduct = { |     const newProduct = { | ||||||
| @@ -81,7 +46,6 @@ function updateProducts(order: UnwrapRefSimple<Order> | UnwrapRefSimple<UnwrapRe | |||||||
|     order.products.push(newProduct) |     order.products.push(newProduct) | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
| function prepareProductsFromOrders() { | function prepareProductsFromOrders() { | ||||||
|   products.value = [] |   products.value = [] | ||||||
|   if (orders.value == undefined || routes.value == undefined) { |   if (orders.value == undefined || routes.value == undefined) { | ||||||
| @@ -96,13 +60,74 @@ function prepareProductsFromOrders() { | |||||||
|       })?.MZT_Nazwa1; |       })?.MZT_Nazwa1; | ||||||
|  |  | ||||||
|       ordersByRoute.value.get(routeName != undefined ? routeName : "brak")?.push(order); |       ordersByRoute.value.get(routeName != undefined ? routeName : "brak")?.push(order); | ||||||
|     ordersByRoute.value.get(routeName != undefined ? routeName : 'brak')?.push(order) |  | ||||||
|  |  | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   console.log(orders.value) |   console.log(orders.value) | ||||||
|     console.log(ordersByRoute.value); |   console.log(ordersByRoute.value) | ||||||
|  |   const newOrder: Order = { | ||||||
|  |     loading: false, | ||||||
|  |     MZN_Bufor: 0, | ||||||
|  |     MZN_Anulowane: 0, | ||||||
|  |     MZN_DataDos: "2025-02-27", | ||||||
|  |     MZN_DataZam: "2025-02-27", | ||||||
|  |     MZN_MZNID: 12345, | ||||||
|  |     MZN_OpeID: 6789, | ||||||
|  |     MZN_PodID: 1001, | ||||||
|  |     MZN_PodKodPocztowy: "00-001", | ||||||
|  |     MZN_PodMiasto: "Warszawa", | ||||||
|  |     MZN_PodNazwa1: "Firma XYZ", | ||||||
|  |     MZN_PodNazwa2: "Oddział Główny", | ||||||
|  |     MZN_PodNazwa3: "", | ||||||
|  |     MZN_PodNipE: "8991446786", | ||||||
|  |     MZN_PodNrDomu: "10A", | ||||||
|  |     MZN_PodUlica: "Marszałkowska", | ||||||
|  |     MZN_PodWojewodztwo: "Mazowieckie", | ||||||
|  |     MZN_TypDokumentu: 1, | ||||||
|  |     MZN_UUID: "550e8400-e29b-41d4-a716-446655440000", | ||||||
|  |     MZN_Uwagi: "Brak uwag", | ||||||
|  |     MZN_MZTID: 2002, | ||||||
|  |     MZamElem: [ | ||||||
|  |       { | ||||||
|  |         MZE_MZEID: 1, | ||||||
|  |         MZE_MZNID: 12345, | ||||||
|  |         MZE_TwrCena: "12.00", | ||||||
|  |         MZE_TwrId: 2323, | ||||||
|  |         MZE_TwrIlosc: "150.00", | ||||||
|  |         MZE_TwrJm: "kg", | ||||||
|  |         MZE_TwrNazwa: 'Twaróg półtłusty "suchy" - luz', | ||||||
|  |         MZE_TwrKod: "TWS-LUZ", | ||||||
|  |         MZE_TwrStawka: "8%", | ||||||
|  |         suma: 1800.00 | ||||||
|  |       }, | ||||||
|  |       { | ||||||
|  |         MZE_MZEID: 2, | ||||||
|  |         MZE_MZNID: 12345, | ||||||
|  |         MZE_TwrCena: "25.50", | ||||||
|  |         MZE_TwrId: 102, | ||||||
|  |         MZE_TwrIlosc: "10.00", | ||||||
|  |         MZE_TwrJm: "szt", | ||||||
|  |         MZE_TwrNazwa: "Ekologiczne jajka klasy premium", | ||||||
|  |         MZE_TwrKod: "EKO-JAJ", | ||||||
|  |         MZE_TwrStawka: "5%", | ||||||
|  |         suma: 255.00 | ||||||
|  |       } | ||||||
|  |     ], | ||||||
|  |     products: [] | ||||||
|  |   }; | ||||||
|  |   const produkciki = newOrder.MZamElem.map(product => ({ | ||||||
|  |     kod: product.MZE_TwrKod, | ||||||
|  |     nazwa: product.MZE_TwrNazwa, | ||||||
|  |     ilosc: Number(product.MZE_TwrIlosc).toFixed(2), | ||||||
|  |     jm: product.MZE_TwrJm, | ||||||
|  |     cena: Number(product.MZE_TwrCena).toFixed(2), | ||||||
|  |     suma: Number(Number(product.MZE_TwrCena) * Number(product.MZE_TwrIlosc)).toFixed(2) | ||||||
|  |   })); | ||||||
|  |  | ||||||
|  | // Aktualizacja newOrder z dodanymi produktami | ||||||
|  |   newOrder.products = produkciki; | ||||||
|  |   ordersByRoute.value.get("Wrocław")?.push(newOrder); | ||||||
|  |  | ||||||
|  |  | ||||||
|  |   console.log(newOrder); | ||||||
| } | } | ||||||
|  |  | ||||||
| function groupByNip() { | function groupByNip() { | ||||||
| @@ -131,61 +156,16 @@ function groupByNip() { | |||||||
|           element.suma = Number(Number(element.MZE_TwrIlosc )*Number(element.MZE_TwrCena)).toFixed(2) |           element.suma = Number(Number(element.MZE_TwrIlosc )*Number(element.MZE_TwrCena)).toFixed(2) | ||||||
|           entry.products.push(element) |           entry.products.push(element) | ||||||
|         } |         } | ||||||
|  |  | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|     orderByRouteAndNip.set(route, ordersByNip) |     orderByRouteAndNip.set(route, ordersByNip) | ||||||
|   } |   } | ||||||
|   orderByRouteAndNipRef.value = orderByRouteAndNip |   orderByRouteAndNipRef.value = orderByRouteAndNip | ||||||
|  |  | ||||||
| }/* |  | ||||||
| function groupByNip() { |  | ||||||
|   const orderByRouteAndNip = new Map<string /!*route*!/, Map<number /!*nip*!/, Map<Array<Order>, Array<OrderProduct>>>>()//TODO moze tu dodać liste numerów orderów |  | ||||||
|   Array.from(ordersByRoute.value).forEach(([route, orders]) => { |  | ||||||
|     const ordersByNip = new Map<number, Array<Order>>() |  | ||||||
|     const productsByNip = new Map<number, Array<OrderProduct>>() |  | ||||||
|     const productsAndOrdersByNip = new Map<number, Map<Array<Order>, Array<OrderProduct>>> |  | ||||||
|     orders.forEach((order) => { |  | ||||||
|       if (!ordersByNip.has(order.MZN_PodNipE)) { |  | ||||||
|         ordersByNip.set(order.MZN_PodNipE, []) |  | ||||||
|       } |  | ||||||
|       ordersByNip.get(order.MZN_PodNipE).push(order) |  | ||||||
|  |  | ||||||
|       order.MZamElem.forEach(element => { |  | ||||||
|         if (!productsByNip.has(order.MZN_PodNipE)) { |  | ||||||
|           productsByNip.set(order.MZN_PodNipE, []) |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         const productList = productsByNip.get(order.MZN_PodNipE) |  | ||||||
|         const currentElement = productList.find(iterator => iterator.MZE_TwrId === element.MZE_TwrId) |  | ||||||
|  |  | ||||||
|         if (currentElement) { |  | ||||||
|           currentElement.MZE_TwrIlosc = String( |  | ||||||
|             Number.parseFloat(element.MZE_TwrIlosc) + Number.parseFloat(currentElement.MZE_TwrIlosc) |  | ||||||
|           ) |  | ||||||
|         } else { |  | ||||||
|           productList.push(element) |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         if (!productsAndOrdersByNip.has(order.MZN_PodNipE)) { |  | ||||||
|           const tempMap = new Map<Array<Order>, Array<OrderProduct>> |  | ||||||
|           tempMap.set(ordersByNip.get(order.MZN_PodNipE),productList) |  | ||||||
|           productsAndOrdersByNip.set(order.MZN_PodNipE, tempMap) |  | ||||||
|         } |  | ||||||
|       }) |  | ||||||
|     }) |  | ||||||
|  |  | ||||||
|  |  | ||||||
|     if (!orderByRouteAndNip.has(route)) { |  | ||||||
|       orderByRouteAndNip.set(route, productsAndOrdersByNip) |  | ||||||
|     } |  | ||||||
|   }) |  | ||||||
|   console.log(orderByRouteAndNip) |   console.log(orderByRouteAndNip) | ||||||
|  |  | ||||||
| } | } | ||||||
| */ |  | ||||||
|  |  | ||||||
|   onMounted(async () => { | onMounted(async () => { | ||||||
|     orders.value = await ordersStore.fetchOrdersByDay(searchDate.value, null); |     orders.value = await ordersStore.fetchOrdersByDay(searchDate.value, null); | ||||||
|     const productsMap = await categoriesStore.sumProductsFromOrders(orders.value); |     const productsMap = await categoriesStore.sumProductsFromOrders(orders.value); | ||||||
|     summedProducts.value = []; |     summedProducts.value = []; | ||||||
| @@ -199,12 +179,14 @@ function groupByNip() { | |||||||
|     console.log(products.value); |     console.log(products.value); | ||||||
|     isLoading.value=false; |     isLoading.value=false; | ||||||
|     groupByNip() |     groupByNip() | ||||||
|   }); |   console.log(ordersByRoute.value) | ||||||
|  | }); | ||||||
|  |  | ||||||
|   onBeforeUnmount( async function (){ | onBeforeUnmount(async function() { | ||||||
|     const siteControlStore = useSiteControlStore(); |     const siteControlStore = useSiteControlStore(); | ||||||
|     await siteControlStore.newOrder(false); |     await siteControlStore.newOrder(false); | ||||||
|   }) | }) | ||||||
|  |  | ||||||
| </script> | </script> | ||||||
|  |  | ||||||
| <template> | <template> | ||||||
| @@ -278,9 +260,11 @@ function groupByNip() { | |||||||
|                        v-for="[nip, item] in Array.from(orderByRouteAndNipRef.get(route.MZT_Nazwa1) || new Map())" |                        v-for="[nip, item] in Array.from(orderByRouteAndNipRef.get(route.MZT_Nazwa1) || new Map())" | ||||||
|                        :key="nip" class="pb-4" style="display: block; page-break-inside: avoid;"> |                        :key="nip" class="pb-4" style="display: block; page-break-inside: avoid;"> | ||||||
|  |  | ||||||
|                     <p>NIP: {{ nip }}</p> |                     <p class="is-size-5 px-2">NIP: {{ nip }}</p> | ||||||
|  |  | ||||||
|                     <p class="is-size-6 px-2">{{ item.orders[1].MZN_PodNazwa1 + item.orders[1].MZN_PodNazwa2 +item.orders[1].MZN_PodNazwa3 }}</p> |                     <p class="is-size-6 px-2"> | ||||||
|  |                       {{ item.orders[0].MZN_PodNazwa1 + item.orders[0].MZN_PodNazwa2 + item.orders[0].MZN_PodNazwa3 | ||||||
|  |                       }}</p> | ||||||
|                     <p class="is-size-5 px-2" |                     <p class="is-size-5 px-2" | ||||||
|                        v-if="orderByRouteAndNipRef.get(route.MZT_Nazwa1)?.get(nip)?.orders?.length"> |                        v-if="orderByRouteAndNipRef.get(route.MZT_Nazwa1)?.get(nip)?.orders?.length"> | ||||||
|                       ZAMÓWIENIA NR |                       ZAMÓWIENIA NR | ||||||
| @@ -300,49 +284,14 @@ function groupByNip() { | |||||||
|                       <Column field="MZE_TwrCena" header="Cena" /> |                       <Column field="MZE_TwrCena" header="Cena" /> | ||||||
|                       <Column field="suma" header="Suma" /> |                       <Column field="suma" header="Suma" /> | ||||||
|                     </DataTable> |                     </DataTable> | ||||||
|                     <div v-if="item.orders[1].MZN_Uwagi != undefined"> |                     <div v-if="item.orders[0].MZN_Uwagi != undefined"> | ||||||
|                       <p class="is-size-6 px-2">Uwagi</p> |                       <p class="is-size-6 px-2">Uwagi</p> | ||||||
|                       <p class="is-size-6 px-2">{{ item.orders[1].MZN_Uwagi }}</p> |                       <p class="is-size-6 px-2">{{ item.orders[0].MZN_Uwagi }}</p> | ||||||
|                     </div> |                     </div> | ||||||
|  |  | ||||||
|                   </div> |                   </div> | ||||||
|  |  | ||||||
| <!--                  <div v-else-if="nipGrouped" v-for="( item, nip) of orderByRouteAndNipRef.get(route.MZT_Nazwa1)" |  | ||||||
|                        :key="nip" class="pb-4" style="display: block; page-break-inside: avoid;"> |  | ||||||
|                     <p > {{ item}}</p> |  | ||||||
| <!–                      <p class="is-size-6 px-2">NIP {{ item..MZN_PodNipE }}</p> |  | ||||||
|                       <p class="is-size-6 px-2">{{ order.MZN_PodNazwa1 + order.MZN_PodNazwa2 + order.MZN_PodNazwa3 }}</p> |  | ||||||
|                       <p class="is-size-5 px-2" |  | ||||||
|                          v-if="orderByRouteAndNipRef.get(route.MZT_Nazwa1)?.get(order.MZN_PodNipE)?.orders?.length"> |  | ||||||
|                         ZAMÓWIENIA NR |  | ||||||
|                         <span |  | ||||||
|                           v-for="(orderByNip, index) in orderByRouteAndNipRef.get(route.MZT_Nazwa1).get(order.MZN_PodNipE).orders">{{ orderByNip.MZN_MZNID |  | ||||||
|                           }} |  | ||||||
|                         <span |  | ||||||
|                           v-if="index !== orderByRouteAndNipRef.get(route.MZT_Nazwa1).get(order.MZN_PodNipE).orders.length - 1">, </span> |  | ||||||
|                       </span> |  | ||||||
|                       </p> |  | ||||||
|                       <DataTable :value="orderByRouteAndNipRef.get(route.MZT_Nazwa1).get(order.MZN_PodNipE).products" |  | ||||||
|                                  class="mb-3" style="padding:0" scrollable> |  | ||||||
|                         <Column field="MZE_TwrKod" header="Indeks" frozen></Column> |  | ||||||
|                         <Column field="MZE_TwrNazwa" header="Nazwa" /> |  | ||||||
|                         <Column field="MZE_TwrIlosc" header="Ilość" /> |  | ||||||
|                         <Column field="MZE_TwrJm" header="JM" /> |  | ||||||
|                         <Column field="MZE_TwrCena" header="Cena" /> |  | ||||||
|                         <Column field="suma" header="Suma" /> |  | ||||||
|                       </DataTable> |  | ||||||
|                       <div v-if="order.MZN_Uwagi != undefined"> |  | ||||||
|                         <p class="is-size-6 px-2">Uwagi</p> |  | ||||||
|                         <p class="is-size-6 px-2">{{ order.MZN_Uwagi }}</p> |  | ||||||
|                       </div>–> |  | ||||||
|                     </div>--> |  | ||||||
|  |  | ||||||
|  |  | ||||||
|                   </div> |                   </div> | ||||||
|  |  | ||||||
|                 </div> |                 </div> | ||||||
|               </div> |               </div> | ||||||
|  |  | ||||||
|           </div> |           </div> | ||||||
|           <DataTable :value="summedProducts" class="mb-3" style="padding:0" scrollable id="printMe" v-else-if="orders != undefined && orders.length != 0 && isSummed"> |           <DataTable :value="summedProducts" class="mb-3" style="padding:0" scrollable id="printMe" v-else-if="orders != undefined && orders.length != 0 && isSummed"> | ||||||
|             <Column field="Twr_Kod" header="Indeks" frozen></Column> |             <Column field="Twr_Kod" header="Indeks" frozen></Column> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user