[#267] Lister les réceptions en attente #9
2
.idea/dataSources.xml
generated
2
.idea/dataSources.xml
generated
@@ -5,7 +5,7 @@
|
|||||||
<driver-ref>postgresql</driver-ref>
|
<driver-ref>postgresql</driver-ref>
|
||||||
<synchronize>true</synchronize>
|
<synchronize>true</synchronize>
|
||||||
<jdbc-driver>org.postgresql.Driver</jdbc-driver>
|
<jdbc-driver>org.postgresql.Driver</jdbc-driver>
|
||||||
<jdbc-url>jdbc:postgresql://localhost:5433/ferme</jdbc-url>
|
<jdbc-url>jdbc:postgresql://localhost:5432/ferme</jdbc-url>
|
||||||
<working-dir>$ProjectFileDir$</working-dir>
|
<working-dir>$ProjectFileDir$</working-dir>
|
||||||
</data-source>
|
</data-source>
|
||||||
<data-source source="LOCAL" name="Ferme recette" uuid="ae622167-c834-4e7b-87a5-c1721036f5dc">
|
<data-source source="LOCAL" name="Ferme recette" uuid="ae622167-c834-4e7b-87a5-c1721036f5dc">
|
||||||
|
|||||||
38
.idea/workspace.xml
generated
38
.idea/workspace.xml
generated
@@ -4,11 +4,15 @@
|
|||||||
<option name="autoReloadType" value="SELECTIVE" />
|
<option name="autoReloadType" value="SELECTIVE" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="7c107abe-5995-4428-8429-b146aaca8386" name="Changes" comment="feat : ajout de la lib nuxt/icon et modification de la page d'accueil (WIP)">
|
<list default="true" id="7c107abe-5995-4428-8429-b146aaca8386" name="Changes" comment="feat : finalisation de la partie front de la page d'accueil">
|
||||||
<change afterPath="$PROJECT_DIR$/frontend/components/card-link.vue" afterDir="false" />
|
<change afterPath="$PROJECT_DIR$/frontend/pages/reception/finish-reception.vue" afterDir="false" />
|
||||||
|
<change afterPath="$PROJECT_DIR$/frontend/pages/reception/waiting-reception.vue" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/.idea/dataSources.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/dataSources.xml" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/config/reference.php" beforeDir="false" afterPath="$PROJECT_DIR$/config/reference.php" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/config/reference.php" beforeDir="false" afterPath="$PROJECT_DIR$/config/reference.php" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/frontend/pages/index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/frontend/pages/index.vue" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/frontend/pages/index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/frontend/pages/index.vue" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/frontend/services/reception.ts" beforeDir="false" afterPath="$PROJECT_DIR$/frontend/services/reception.ts" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/Entity/Reception.php" beforeDir="false" afterPath="$PROJECT_DIR$/src/Entity/Reception.php" afterDir="false" />
|
||||||
</list>
|
</list>
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
@@ -27,6 +31,7 @@
|
|||||||
<option name="RECENT_TEMPLATES">
|
<option name="RECENT_TEMPLATES">
|
||||||
<list>
|
<list>
|
||||||
<option value="TypeScript File" />
|
<option value="TypeScript File" />
|
||||||
|
<option value="PHP File" />
|
||||||
<option value="Vue Composition API Component" />
|
<option value="Vue Composition API Component" />
|
||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
@@ -229,7 +234,7 @@
|
|||||||
"node.js.selected.package.eslint": "(autodetect)",
|
"node.js.selected.package.eslint": "(autodetect)",
|
||||||
"node.js.selected.package.tslint": "(autodetect)",
|
"node.js.selected.package.tslint": "(autodetect)",
|
||||||
"nodejs_package_manager_path": "npm",
|
"nodejs_package_manager_path": "npm",
|
||||||
"settings.editor.selected.configurable": "proofread",
|
"settings.editor.selected.configurable": "preferences.pluginManager",
|
||||||
"ts.external.directory.path": "/opt/phpstorm/plugins/javascript-plugin/jsLanguageServicesImpl/external",
|
"ts.external.directory.path": "/opt/phpstorm/plugins/javascript-plugin/jsLanguageServicesImpl/external",
|
||||||
"vue.rearranger.settings.migration": "true"
|
"vue.rearranger.settings.migration": "true"
|
||||||
},
|
},
|
||||||
@@ -247,11 +252,11 @@
|
|||||||
}</component>
|
}</component>
|
||||||
<component name="RecentsManager">
|
<component name="RecentsManager">
|
||||||
<key name="MoveFile.RECENT_KEYS">
|
<key name="MoveFile.RECENT_KEYS">
|
||||||
|
<recent name="$PROJECT_DIR$/frontend/pages/reception" />
|
||||||
|
<recent name="$PROJECT_DIR$/frontend/pages" />
|
||||||
<recent name="\\wsl.localhost\Ubuntu-24.04\home\m-tristan\workspace\Ferme" />
|
<recent name="\\wsl.localhost\Ubuntu-24.04\home\m-tristan\workspace\Ferme" />
|
||||||
<recent name="\\wsl.localhost\Ubuntu-24.04\home\tristan\workspace\ferme\templates" />
|
<recent name="\\wsl.localhost\Ubuntu-24.04\home\tristan\workspace\ferme\templates" />
|
||||||
<recent name="C:\Users\autin\AppData\Roaming\JetBrains\PhpStorm2025.3\scratches" />
|
<recent name="C:\Users\autin\AppData\Roaming\JetBrains\PhpStorm2025.3\scratches" />
|
||||||
<recent name="C:\Users\autin\AppData\Roaming\JetBrains\PhpStorm2025.3\scratches\Ferme_MCD\MCD_DOC" />
|
|
||||||
<recent name="\\wsl.localhost\Ubuntu-24.04\home\tristan\workspace\ferme\frontend\pages\reception" />
|
|
||||||
</key>
|
</key>
|
||||||
</component>
|
</component>
|
||||||
<component name="SharedIndexes">
|
<component name="SharedIndexes">
|
||||||
@@ -288,6 +293,7 @@
|
|||||||
<workItem from="1770055690365" duration="370000" />
|
<workItem from="1770055690365" duration="370000" />
|
||||||
<workItem from="1770056515646" duration="21000" />
|
<workItem from="1770056515646" duration="21000" />
|
||||||
<workItem from="1770102495553" duration="2280000" />
|
<workItem from="1770102495553" duration="2280000" />
|
||||||
|
<workItem from="1770189714886" duration="20723000" />
|
||||||
</task>
|
</task>
|
||||||
<task id="LOCAL-00001" summary="feat : Ajout de pinia, création de la table weight et reception mise en place du système de step pour les receptions (WIP)">
|
<task id="LOCAL-00001" summary="feat : Ajout de pinia, création de la table weight et reception mise en place du système de step pour les receptions (WIP)">
|
||||||
<option name="closed" value="true" />
|
<option name="closed" value="true" />
|
||||||
@@ -665,7 +671,15 @@
|
|||||||
<option name="project" value="LOCAL" />
|
<option name="project" value="LOCAL" />
|
||||||
<updated>1770126554504</updated>
|
<updated>1770126554504</updated>
|
||||||
</task>
|
</task>
|
||||||
<option name="localTasksCounter" value="48" />
|
<task id="LOCAL-00048" summary="feat : finalisation de la parti front de la page d'accueil">
|
||||||
|
<option name="closed" value="true" />
|
||||||
|
<created>1770130578390</created>
|
||||||
|
<option name="number" value="00048" />
|
||||||
|
<option name="presentableId" value="LOCAL-00048" />
|
||||||
|
<option name="project" value="LOCAL" />
|
||||||
|
<updated>1770130578390</updated>
|
||||||
|
</task>
|
||||||
|
<option name="localTasksCounter" value="49" />
|
||||||
<servers />
|
<servers />
|
||||||
</component>
|
</component>
|
||||||
<component name="TypeScriptGeneratedFilesManager">
|
<component name="TypeScriptGeneratedFilesManager">
|
||||||
@@ -715,7 +729,6 @@
|
|||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
<component name="VcsManagerConfiguration">
|
<component name="VcsManagerConfiguration">
|
||||||
<MESSAGE value="fix : correction du path URI pour la création d'un poids dans une réception" />
|
|
||||||
<MESSAGE value="feat : Ajout du bundle Monolog pour la gestion des logs" />
|
<MESSAGE value="feat : Ajout du bundle Monolog pour la gestion des logs" />
|
||||||
<MESSAGE value="fix : affiche plus détail dans les logs en recette/prod" />
|
<MESSAGE value="fix : affiche plus détail dans les logs en recette/prod" />
|
||||||
<MESSAGE value="fix : modification du script de déploiement pour corriger le problème d'écriture des logs de prod" />
|
<MESSAGE value="fix : modification du script de déploiement pour corriger le problème d'écriture des logs de prod" />
|
||||||
@@ -740,10 +753,19 @@
|
|||||||
<MESSAGE value="feat : ajout de colonne pour les Supplier, Address. Modification du numéro de réception et ajout de fixtures" />
|
<MESSAGE value="feat : ajout de colonne pour les Supplier, Address. Modification du numéro de réception et ajout de fixtures" />
|
||||||
<MESSAGE value="feat : mise à jour du bon de réception" />
|
<MESSAGE value="feat : mise à jour du bon de réception" />
|
||||||
<MESSAGE value="feat : ajout de la lib nuxt/icon et modification de la page d'accueil (WIP)" />
|
<MESSAGE value="feat : ajout de la lib nuxt/icon et modification de la page d'accueil (WIP)" />
|
||||||
<option name="LAST_COMMIT_MESSAGE" value="feat : ajout de la lib nuxt/icon et modification de la page d'accueil (WIP)" />
|
<MESSAGE value="feat : finalisation de la parti front de la page d'accueil" />
|
||||||
|
<option name="LAST_COMMIT_MESSAGE" value="feat : finalisation de la parti front de la page d'accueil" />
|
||||||
</component>
|
</component>
|
||||||
<component name="XSLT-Support.FileAssociations.UIState">
|
<component name="XSLT-Support.FileAssociations.UIState">
|
||||||
<expand />
|
<expand />
|
||||||
<select />
|
<select />
|
||||||
</component>
|
</component>
|
||||||
|
<component name="github-copilot-workspace">
|
||||||
|
<instructionFileLocations>
|
||||||
|
<option value=".github/instructions" />
|
||||||
|
</instructionFileLocations>
|
||||||
|
<promptFileLocations>
|
||||||
|
<option value=".github/prompts" />
|
||||||
|
</promptFileLocations>
|
||||||
|
</component>
|
||||||
</project>
|
</project>
|
||||||
@@ -5,10 +5,10 @@
|
|||||||
<card-link label="NOUVELLE RÉCEPTION" link="/reception" nomIcone="mdi:truck-outline" />
|
<card-link label="NOUVELLE RÉCEPTION" link="/reception" nomIcone="mdi:truck-outline" />
|
||||||
<card-link label="NOUVELLE EXPÉDITION" link="/" nomIcone="mdi:truck-fast-outline" />
|
<card-link label="NOUVELLE EXPÉDITION" link="/" nomIcone="mdi:truck-fast-outline" />
|
||||||
<card-link label="PLAN DE SITE" link="/" nomIcone="mdi:warehouse" />
|
<card-link label="PLAN DE SITE" link="/" nomIcone="mdi:warehouse" />
|
||||||
<card-link label="RÉCEPTIONS EN ATTENTE" link="/" nomIcone="mdi:truck-remove-outline" />
|
<card-link label="RÉCEPTIONS EN ATTENTE" link="/reception/waiting-reception" nomIcone="mdi:truck-remove-outline" />
|
||||||
<card-link label="EXPÉDITIONS EN ATTENTE" link="/" nomIcone="mdi:truck-cargo-container" />
|
<card-link label="EXPÉDITIONS EN ATTENTE" link="/" nomIcone="mdi:truck-cargo-container" />
|
||||||
<card-link label="CASES" link="/" nomIcone="mdi:cube-outline" />
|
<card-link label="CASES" link="/" nomIcone="mdi:cube-outline" />
|
||||||
<card-link label="RÉCEPTIONS FINIES" link="/" nomIcone="mdi:truck-check-outline" />
|
<card-link label="RÉCEPTIONS FINIES" link="/reception/finish-reception" nomIcone="mdi:truck-check-outline" />
|
||||||
<card-link label="EXPÉDITIONS FINIES" link="/" nomIcone="mdi:truck-delivery-outline" />
|
<card-link label="EXPÉDITIONS FINIES" link="/" nomIcone="mdi:truck-delivery-outline" />
|
||||||
<card-link label="PASSEPORT DU BOVIN" link="/" nomIcone="mdi:cow" />
|
<card-link label="PASSEPORT DU BOVIN" link="/" nomIcone="mdi:cow" />
|
||||||
|
|
||||||
|
|||||||
51
frontend/pages/reception/waiting-reception.vue
Normal file
51
frontend/pages/reception/waiting-reception.vue
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
<template>
|
||||||
|
<div class="flex items-center justify-between ">
|
||||||
|
<div class="flex items-center gap-10">
|
||||||
|
<Icon @click="router.push('/')" name="gg:arrow-left-o" style="color: black" size="44" />
|
||||||
|
<h1 class="text-3xl font-bold uppercase">listes des réceptions en attente</h1>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="ps-20 " >
|
||||||
|
<div class="mt-6 border border-slate-200 mb-16 ">
|
||||||
|
<div class="grid grid-cols-5 gap-4 bg-slate-100 px-4 py-3 text-sm font-semibold uppercase tracking-wide">
|
||||||
|
<div>Fournisseur</div>
|
||||||
|
<div>Adresse</div>
|
||||||
|
<div>Type réception</div>
|
||||||
|
<div>Transporteur</div>
|
||||||
|
<div>Immatriculation</div>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
v-for="reception in receptionList"
|
||||||
|
:key="reception.id"
|
||||||
|
class="grid grid-cols-5 gap-4 px-4 py-3 text-sm hover:bg-slate-50 cursor-pointer border-t border-slate-200"
|
||||||
|
role="button"
|
||||||
|
tabindex="0"
|
||||||
|
@click="goToReception(reception.id)"
|
||||||
|
@keydown.enter="goToReception(reception.id)"
|
||||||
|
>
|
||||||
|
<div>{{ reception.supplier?.name }}</div>
|
||||||
|
<div>{{ reception.address?.fullAddress }}</div>
|
||||||
|
<div>{{ reception.receptionType?.label }}</div>
|
||||||
|
<div>{{ reception.carrier?.name }}</div>
|
||||||
|
<div>{{ reception.licensePlate }}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import type {ReceptionData} from "~/services/dto/reception-data";
|
||||||
|
import {getReceptionList} from "~/services/reception";
|
||||||
|
|
||||||
|
const receptionList = ref<ReceptionData[]>()
|
||||||
|
const router = useRouter()
|
||||||
|
|
||||||
|
const goToReception = (id: number) => {
|
||||||
|
router.push(`/reception/${id}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
onMounted(async () => {
|
||||||
|
receptionList.value = await getReceptionList(false)
|
||||||
|
})
|
||||||
|
</script>
|
||||||
@@ -2,13 +2,15 @@ import {useApi} from '~/composables/useApi'
|
|||||||
import type {ReceptionData, ReceptionPayload} from '~/services/dto/reception-data'
|
import type {ReceptionData, ReceptionPayload} from '~/services/dto/reception-data'
|
||||||
import type {WeightData} from '~/services/dto/weight-data'
|
import type {WeightData} from '~/services/dto/weight-data'
|
||||||
|
|
||||||
export async function getReceptionList() {
|
export async function getReceptionList(isValid: boolean|null = null) {
|
||||||
const api = useApi()
|
const api = useApi()
|
||||||
return api.get<ReceptionData>(`receptions`, {}, {
|
const query = isValid !== null ? { isValid: isValid} : {}
|
||||||
|
return api.get<ReceptionData[]>('receptions', query, {
|
||||||
toastErrorKey: 'errors.reception.list'
|
toastErrorKey: 'errors.reception.list'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
export async function getReception(id: number) {
|
export async function getReception(id: number) {
|
||||||
const api = useApi()
|
const api = useApi()
|
||||||
return api.get<ReceptionData>(`receptions/${id}`, {}, {
|
return api.get<ReceptionData>(`receptions/${id}`, {}, {
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace App\Entity;
|
namespace App\Entity;
|
||||||
|
|
||||||
|
use ApiPlatform\Doctrine\Orm\Filter\BooleanFilter;
|
||||||
|
use ApiPlatform\Metadata\ApiFilter;
|
||||||
use ApiPlatform\Metadata\ApiProperty;
|
use ApiPlatform\Metadata\ApiProperty;
|
||||||
use ApiPlatform\Metadata\ApiResource;
|
use ApiPlatform\Metadata\ApiResource;
|
||||||
use ApiPlatform\Metadata\Get;
|
use ApiPlatform\Metadata\Get;
|
||||||
@@ -26,6 +28,7 @@ use Symfony\Component\Serializer\Normalizer\DateTimeNormalizer;
|
|||||||
#[ORM\Entity]
|
#[ORM\Entity]
|
||||||
#[ORM\HasLifecycleCallbacks]
|
#[ORM\HasLifecycleCallbacks]
|
||||||
#[ORM\Table(name: 'reception')]
|
#[ORM\Table(name: 'reception')]
|
||||||
|
#[ApiFilter(BooleanFilter::class, properties: ['isValid'])]
|
||||||
#[ApiResource(
|
#[ApiResource(
|
||||||
operations: [
|
operations: [
|
||||||
new Get(
|
new Get(
|
||||||
|
|||||||
Reference in New Issue
Block a user