feat : ajout de la partie reception des marchandises (étape 3) et modification du bon de réception
This commit is contained in:
23
frontend/services/building.ts
Normal file
23
frontend/services/building.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
import { useApi } from '~/composables/useApi'
|
||||
import type { BuildingData } from '~/services/dto/building-data'
|
||||
|
||||
export type BuildingListResponse =
|
||||
| BuildingData[]
|
||||
| { 'hydra:member'?: BuildingData[] }
|
||||
|
||||
export async function getBuildingList(): Promise<BuildingData[]> {
|
||||
const api = useApi()
|
||||
const response = await api.get<BuildingListResponse>('buildings', {}, {
|
||||
toastErrorKey: 'errors.building.list'
|
||||
})
|
||||
|
||||
if (Array.isArray(response)) {
|
||||
return response
|
||||
}
|
||||
|
||||
if (response && typeof response === 'object' && Array.isArray(response['hydra:member'])) {
|
||||
return response['hydra:member']
|
||||
}
|
||||
|
||||
return []
|
||||
}
|
||||
5
frontend/services/dto/building-data.ts
Normal file
5
frontend/services/dto/building-data.ts
Normal file
@@ -0,0 +1,5 @@
|
||||
export interface BuildingData {
|
||||
id: number
|
||||
label: string
|
||||
code: string
|
||||
}
|
||||
5
frontend/services/dto/merchandise-type-data.ts
Normal file
5
frontend/services/dto/merchandise-type-data.ts
Normal file
@@ -0,0 +1,5 @@
|
||||
export interface MerchandiseTypeData {
|
||||
id: number
|
||||
label: string
|
||||
code: string
|
||||
}
|
||||
5
frontend/services/dto/pellet-type-data.ts
Normal file
5
frontend/services/dto/pellet-type-data.ts
Normal file
@@ -0,0 +1,5 @@
|
||||
export interface PelletTypeData {
|
||||
id: number
|
||||
label: string
|
||||
code: string
|
||||
}
|
||||
@@ -1,4 +1,7 @@
|
||||
import type { ReceptionTypeData } from '~/services/dto/reception-type-data'
|
||||
import type { MerchandiseTypeData } from '~/services/dto/merchandise-type-data'
|
||||
import type { BuildingData } from '~/services/dto/building-data'
|
||||
import type { ReceptionPelletBuildingData } from '~/services/dto/reception-pellet-building-data'
|
||||
import type { UserData } from '~/services/dto/user-data'
|
||||
import type { SupplierData } from '~/services/dto/supplier-data'
|
||||
import type { AddressData } from '~/services/dto/address-data'
|
||||
@@ -15,6 +18,10 @@ export interface ReceptionData {
|
||||
currentStep: number
|
||||
isValid: boolean
|
||||
receptionType?: ReceptionTypeData | null
|
||||
merchandiseType?: MerchandiseTypeData | null
|
||||
merchandiseDetail?: string | null
|
||||
buildings?: BuildingData[] | null
|
||||
pelletBuildings?: ReceptionPelletBuildingData[] | null
|
||||
user?: UserData | null
|
||||
supplier?: SupplierData | null
|
||||
address?: AddressData | null
|
||||
@@ -37,6 +44,9 @@ export type ReceptionPayload = {
|
||||
currentStep?: number
|
||||
isValid?: boolean
|
||||
receptionType?: string | null
|
||||
merchandiseType?: string | null
|
||||
merchandiseDetail?: string | null
|
||||
buildings?: string[] | null
|
||||
user?: string | null
|
||||
supplier?: string | null
|
||||
address?: string | null
|
||||
|
||||
9
frontend/services/dto/reception-pellet-building-data.ts
Normal file
9
frontend/services/dto/reception-pellet-building-data.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
import type { BuildingData } from '~/services/dto/building-data'
|
||||
import type { PelletTypeData } from '~/services/dto/pellet-type-data'
|
||||
|
||||
export interface ReceptionPelletBuildingData {
|
||||
id: number
|
||||
reception?: string
|
||||
building: BuildingData
|
||||
pelletType: PelletTypeData
|
||||
}
|
||||
23
frontend/services/merchandise-type.ts
Normal file
23
frontend/services/merchandise-type.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
import { useApi } from '~/composables/useApi'
|
||||
import type { MerchandiseTypeData } from '~/services/dto/merchandise-type-data'
|
||||
|
||||
export type MerchandiseTypeListResponse =
|
||||
| MerchandiseTypeData[]
|
||||
| { 'hydra:member'?: MerchandiseTypeData[] }
|
||||
|
||||
export async function getMerchandiseTypeList(): Promise<MerchandiseTypeData[]> {
|
||||
const api = useApi()
|
||||
const response = await api.get<MerchandiseTypeListResponse>('merchandise_types', {}, {
|
||||
toastErrorKey: 'errors.merchandiseType.list'
|
||||
})
|
||||
|
||||
if (Array.isArray(response)) {
|
||||
return response
|
||||
}
|
||||
|
||||
if (response && typeof response === 'object' && Array.isArray(response['hydra:member'])) {
|
||||
return response['hydra:member']
|
||||
}
|
||||
|
||||
return []
|
||||
}
|
||||
23
frontend/services/pellet-type.ts
Normal file
23
frontend/services/pellet-type.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
import { useApi } from '~/composables/useApi'
|
||||
import type { PelletTypeData } from '~/services/dto/pellet-type-data'
|
||||
|
||||
export type PelletTypeListResponse =
|
||||
| PelletTypeData[]
|
||||
| { 'hydra:member'?: PelletTypeData[] }
|
||||
|
||||
export async function getPelletTypeList(): Promise<PelletTypeData[]> {
|
||||
const api = useApi()
|
||||
const response = await api.get<PelletTypeListResponse>('pellet_types', {}, {
|
||||
toastErrorKey: 'errors.pelletType.list'
|
||||
})
|
||||
|
||||
if (Array.isArray(response)) {
|
||||
return response
|
||||
}
|
||||
|
||||
if (response && typeof response === 'object' && Array.isArray(response['hydra:member'])) {
|
||||
return response['hydra:member']
|
||||
}
|
||||
|
||||
return []
|
||||
}
|
||||
51
frontend/services/reception-pellet-building.ts
Normal file
51
frontend/services/reception-pellet-building.ts
Normal file
@@ -0,0 +1,51 @@
|
||||
import { useApi } from '~/composables/useApi'
|
||||
import type { ReceptionPelletBuildingData } from '~/services/dto/reception-pellet-building-data'
|
||||
|
||||
export type ReceptionPelletBuildingListResponse =
|
||||
| ReceptionPelletBuildingData[]
|
||||
| { 'hydra:member'?: ReceptionPelletBuildingData[] }
|
||||
|
||||
export type ReceptionPelletBuildingPayload = {
|
||||
reception: string
|
||||
pelletType: string
|
||||
building: string
|
||||
}
|
||||
|
||||
export async function getReceptionPelletBuildingList(
|
||||
receptionIri: string
|
||||
): Promise<ReceptionPelletBuildingData[]> {
|
||||
const api = useApi()
|
||||
const response = await api.get<ReceptionPelletBuildingListResponse>(
|
||||
'reception_pellet_buildings',
|
||||
{ reception: receptionIri },
|
||||
{
|
||||
toastErrorKey: 'errors.receptionPelletBuilding.list'
|
||||
}
|
||||
)
|
||||
|
||||
if (Array.isArray(response)) {
|
||||
return response
|
||||
}
|
||||
|
||||
if (response && typeof response === 'object' && Array.isArray(response['hydra:member'])) {
|
||||
return response['hydra:member']
|
||||
}
|
||||
|
||||
return []
|
||||
}
|
||||
|
||||
export async function createReceptionPelletBuilding(
|
||||
payload: ReceptionPelletBuildingPayload
|
||||
): Promise<ReceptionPelletBuildingData> {
|
||||
const api = useApi()
|
||||
return api.post<ReceptionPelletBuildingData>('reception_pellet_buildings', payload, {
|
||||
toastErrorKey: 'errors.receptionPelletBuilding.create'
|
||||
})
|
||||
}
|
||||
|
||||
export async function deleteReceptionPelletBuilding(id: number): Promise<void> {
|
||||
const api = useApi()
|
||||
await api.delete<void>(`reception_pellet_buildings/${id}`, {}, {
|
||||
toastErrorKey: 'errors.receptionPelletBuilding.delete'
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user