inventory new from org
This commit is contained in:
parent
516e06b3df
commit
cb45928ebd
|
@ -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):
|
||||
"""
|
||||
|
|
|
@ -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',])">
|
||||
|
|
|
@ -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>
|
Loading…
Reference in New Issue