inventory new from org

This commit is contained in:
aarizona 2024-05-30 12:11:10 +03:00
parent 516e06b3df
commit cb45928ebd
3 changed files with 53 additions and 0 deletions

View File

@ -89,6 +89,32 @@ class InventoryItemViewSet(viewsets.ModelViewSet):
queryset = queryset.filter(partner=partner)
return queryset
def create(self, request, **kwargs):
data = request.data
# check if partner exist
if Partner.objects.filter(external_id=data["partner"]).exists():
partner_object = Partner.objects.get(external_id=data["partner"])
else:
partner_object = Partner.objects.create(
external_id=data["partner"],
name=data["partner_name"],
)
partner_serializer = PartnerSerializer(partner_object, many=False)
inventory_object = InventoryItem.objects.create(
partner=partner_object,
name=f"{data['partner_name']} {datetime.datetime.now()}",
)
inventory_serializer = InventorySerializer(inventory_object, many=False)
return Response(
{
"partner": partner_serializer.data,
"inventory": inventory_serializer.data,
}
)
class ElementViewSet(viewsets.ModelViewSet):
"""

View File

@ -36,6 +36,11 @@ onMounted(async () => {
</ul>
</li>
</ul>
<template #footer>
<UButton icon="i-heroicons-plus"
:to="`/organization/p_${route.params.org_id}/new`">
Новая инвентаризацию</UButton>
</template>
</UCard>
<div class="mb-4">
<UTable :rows="inventory?.results" :columns="makeColumns(['id', 'name', 'created_at', 'total_elements',])">

View File

@ -0,0 +1,22 @@
<script setup lang="ts">
import { apiBase, } from '~/helpers';
import type { ApiPartner } from '~/helpers';
const headers = new Headers();
headers.append("Content-Type", "application/json");
const route = useRoute()
onMounted(async () => {
const partner_data = await $fetch<ApiPartner>(`${apiBase}/partner/${route.params.org_id}`, { headers })
const prepader_data = {
partner: partner_data.external_id,
partner_name: partner_data.name,
}
const data = await $fetch(`${apiBase}/inventory/`, { method: 'POST', body: JSON.stringify(prepader_data) })
navigateTo(`/organization/p_${data.partner.id}/i_${data.inventory.id}/edit`)
})
</script>
<template>
Создается инвентаризация..
</template>