diff --git a/back/inventory/views.py b/back/inventory/views.py index 1f70842..77166f4 100644 --- a/back/inventory/views.py +++ b/back/inventory/views.py @@ -43,6 +43,25 @@ class PartnerViewSet(viewsets.ModelViewSet): logger.error(e) return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR) + @action(detail=False, methods=["get"], url_path=r"external/(?P[^/.]+)") + def get_remote_partner_one(self, request, cat_id): + params = { + "$format": "json", + "$select": ",".join(["НаименованиеПолное", "Description", "Ref_Key"]), + } + remote_url = ( + f"https://1c.svs-tech.pro/UNF/odata/standard.odata/Catalog_Контрагенты(guid'{cat_id}')?" + + "&".join([f"{p}={params[p]}" for p in params]) + ) + logger.info(remote_url) + data = requests.get(remote_url, headers={"Authorization": settings.ODATA_AUTH}) + try: + parsed_data = data.json() + return Response(parsed_data) + except Exception as e: + logger.error(e) + return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR) + def get_depth_cat(id): params = { diff --git a/front/helpers.ts b/front/helpers.ts index 4b44a81..c653708 100644 --- a/front/helpers.ts +++ b/front/helpers.ts @@ -11,8 +11,8 @@ export type ApiTypeBase = ApiPartner | ApiInventory | ApiElement; -export type ApiPartner = { id: number, external_id: number } -export type ApiInventory = { id: number, partner: number } +export type ApiPartner = { id: number, external_id: number, name: string, total_inventory: number } +export type ApiInventory = { id: number, partner: number, name: string } export type ApiElement = { id: number, external_id: string, element_id: number, photo: string, additional_text: string, inventory: number } export type ApiTypeExternal = { 'НаименованиеПолное': string; diff --git a/front/pages/organization/p_[org_id]/i_[inv_id]/index.vue b/front/pages/organization/p_[org_id]/i_[inv_id]/index.vue index 4092512..cece1c6 100644 --- a/front/pages/organization/p_[org_id]/i_[inv_id]/index.vue +++ b/front/pages/organization/p_[org_id]/i_[inv_id]/index.vue @@ -7,15 +7,32 @@ headers.append("Content-Type", "application/json"); const route = useRoute() -const { data } = await useFetch(`${apiBase}/element?inventory_id=${route.params.inv_id}`, { headers }) +const inventory = ref() +const elements = ref() +onMounted(async () => { + const inventory_data = await $fetch(`${apiBase}/inventory/${route.params.inv_id}`, { headers }) + inventory.value = inventory_data + + const elements_data = await $fetch(`${apiBase}/element?inventory_id=${route.params.inv_id}`, { headers }) + elements.value = elements_data +}) \ No newline at end of file diff --git a/front/pages/organization/p_[org_id]/index.vue b/front/pages/organization/p_[org_id]/index.vue index 77fd27a..2940534 100644 --- a/front/pages/organization/p_[org_id]/index.vue +++ b/front/pages/organization/p_[org_id]/index.vue @@ -1,23 +1,52 @@