Transport multi-modal (Amélioration juillet 2023)
En cas de transport multi-modal, plusieurs transporteurs peuvent être renseignés dans un ordre donné grâce au champ `transporters`. Les transporteurs signent chacun à leur tour grâce à la mutation `signTransportForm`. La liste des transporteurs peut être modifiée par n'importe quel acteur du bordereau tant que le bordereau n'a pas été réceptionné sur l'installation de destination. À noter toutefois qu'un transporteur ne peut plus être modifié ou supprimé dès lors qu'il a signé le bordereau.
Ce workflow est plus flexible que le premier workflow faisant appel aux mutations `prepareSegment`, `markSegmentAsReadyToTakeOver` et `takeOverSegment` car il permet à chaque acteur du bordereau d'ajouter de nouveaux transporteurs à tout moment.
Ce workflow est plus flexible que le premier workflow faisant appel aux mutations `prepareSegment`, `markSegmentAsReadyToTakeOver` et `takeOverSegment` car il permet à chaque acteur du bordereau d'ajouter de nouveaux transporteurs à tout moment.
graph LR
NO_STATE_1(NO STATE) --> |createFormTransporter| NO_STATE_2(NO STATE)
NO_STATE_2 --> |createFormTransporter| NO_STATE_3(NO_STATE)
NO_STATE_3 --> |createForm| DRAFT
DRAFT --> |markAsSealed| SEALED
SEALED --> |signEmissionForm| SIGNED_BY_PRODUCER
SIGNED_BY_PRODUCER --> |signTransportForm| SENT1(SENT)
SENT2 --> |signTransportForm| SENT3(SENT)
SENT3 --> |createFormTransporter| SENT4(SENT)
SENT4 --> |signTransportForm| SENT5(SENT)
SENT5 --> |markAsReceived| ACCEPTED
ACCEPTED --> |markAsProcessed| PROCESSED
Crée un premier transporteur qui sera associé au bordereau.
mutation CreateFormTransporter($input: TransporterInput!) {
createFormTransporter(input: $input) {
id
}
}
{
"input": {
"company": {
"siret": "SIRET_TRANSPORTEUR_1",
"name": "Transport & Co",
"address": "1 rue des 6 chemins, 07100 ANNONAY",
"contact": "Claire Dupuis",
"mail": "claire.dupuis@transportco.fr",
"phone": "04 00 00 00 00"
}
}
}
Crée un second transporteur qui sera associé au bordereau.
mutation CreateFormTransporter($input: TransporterInput!) {
createFormTransporter(input: $input) {
id
}
}
{
"input": {
"company": {
"siret": "SIRET_TRANSPORTEUR_2",
"name": "Transport & Co",
"address": "1 rue des 6 chemins, 07100 ANNONAY",
"contact": "Claire Dupuis",
"mail": "claire.dupuis@transportco.fr",
"phone": "04 00 00 00 00"
}
}
}
Crée un bordereau en associant une liste de transporteurs dans un ordre donné
mutation CreateForm($createFormInput: CreateFormInput!) {
createForm(createFormInput: $createFormInput) {
id
status
}
}
{
"createFormInput": {
"emitter": {
"type": "PRODUCER",
"workSite": {
"address": "5 rue du chantier",
"postalCode": "75010",
"city": "Paris",
"infos": "Site de stockage de boues"
},
"company": {
"siret": "SIRET_PRODUCTEUR",
"name": "Déchets & Co",
"address": "1 rue de paradis, 75010 PARIS",
"contact": "Jean Dupont",
"phone": "01 00 00 00 00",
"mail": "jean.dupont@dechets.org"
}
},
"recipient": {
"processingOperation": "D 10",
"cap": "CAP",
"company": {
"siret": "SIRET_TRAITEUR",
"name": "Traiteur & Co",
"address": "1 avenue de l'incinérateur 67100 Strasbourg",
"contact": "Thomas Largeron",
"phone": "03 00 00 00 00",
"mail": "thomas.largeron@incinerateur.fr"
}
},
"wasteDetails": {
"code": "06 05 02*",
"onuCode": "Non Soumis",
"name": "Boues",
"packagingInfos": [
{
"type": "CITERNE",
"quantity": 1
}
],
"quantity": 1,
"quantityType": "ESTIMATED",
"consistence": "LIQUID"
},
"transporters": [
"ID_FORM_TRANSPORTER_1",
"ID_FORM_TRANSPORTER_2"
]
}
}
Valide les données présentes sur le BSDD avant envoi. Cette action peut-être effectuée par n'importe quel établissement apparaissant sur le BSDD. À ce stade il est encore possible de de modifier le BSDD grâce à la mutation updateForm
mutation MarkAsSealed($id: ID!) {
markAsSealed(id: $id) {
id
status
}
}
{
"id": "ID_BSD"
}
Le producteur signe l'enlèvement.
mutation SignEmissionForm($id: ID!, $input: SignEmissionFormInput!) {
signEmissionForm(id: $id, input: $input) {
id
status
}
}
{
"id": "ID_BSD",
"input": {
"quantity": 1,
"onuCode": "non soumis",
"transporterNumberPlate": "AA-123456-BB",
"emittedAt": "2020-04-03T14:48:00",
"emittedBy": "Isabelle Guichard",
"emittedByEcoOrganisme": false
}
}
Le premier transporteur signe le bordereau
mutation SignTransportForm($id: ID!, $input: SignTransportFormInput!) {
signTransportForm(id: $id, input: $input) {
id
status
}
}
{
"id": "ID_BSD",
"input": {
"takenOverAt": "2020-04-03T14:48:00",
"takenOverBy": "Isabelle Guichard",
"transporterNumberPlate": "AA-123456-BB",
"transporterTransportMode": "ROAD"
}
}
Le second transporteur met à jour sa plaque d'immatriculation
mutation UpdateFormTransporter($id: ID!, $input: TransporterInput!) {
updateFormTransporter(id: $id, input: $input) {
id
}
}
{
"id": "ID_FORM_TRANSPORTER_2",
"input": {
"numberPlate": "AG-567-BS"
}
}
Le second transporteur signe le bordereau
mutation SignTransportForm($id: ID!, $input: SignTransportFormInput!) {
signTransportForm(id: $id, input: $input) {
id
status
}
}
{
"id": "ID_BSD",
"input": {
"takenOverAt": "2020-04-03T14:48:00",
"takenOverBy": "Isabelle Guichard",
"transporterNumberPlate": "AA-123456-BB",
"transporterTransportMode": "ROAD"
}
}
L'installation de destination affrète un troisième transporteur
mutation CreateFormTransporter($input: TransporterInput!) {
createFormTransporter(input: $input) {
id
}
}
{
"input": {
"company": {
"siret": "SIRET_TRANSPORTEUR_3",
"name": "Transport & Co",
"address": "1 rue des 6 chemins, 07100 ANNONAY",
"contact": "Claire Dupuis",
"mail": "claire.dupuis@transportco.fr",
"phone": "04 00 00 00 00"
}
}
}
Le troisième transporteur est ajouté sur le bordereau
mutation UpdateForm($updateFormInput: UpdateFormInput!) {
updateForm(updateFormInput: $updateFormInput) {
id
status
}
}
{
"updateFormInput": {
"id": "ID_BSD",
"transporters": [
"ID_FORM_TRANSPORTER_1",
"ID_FORM_TRANSPORTER_2",
"ID_FORM_TRANSPORTER_3"
]
}
}
Le troisième transporteur signe le bordereau
mutation SignTransportForm($id: ID!, $input: SignTransportFormInput!) {
signTransportForm(id: $id, input: $input) {
id
status
}
}
{
"id": "ID_BSD",
"input": {
"takenOverAt": "2020-04-03T14:48:00",
"takenOverBy": "Isabelle Guichard",
"transporterNumberPlate": "AA-123456-BB",
"transporterTransportMode": "ROAD"
}
}
Le déchet est receptionné et accepté
sur l'installation de destination prévue
sur l'installation de destination prévue
mutation MarkAsReceived($id: ID!, $receivedInfo: ReceivedFormInput!) {
markAsReceived(id: $id, receivedInfo: $receivedInfo) {
id
status
}
}
{
"id": "ID_BSD",
"receivedInfo": {
"wasteAcceptationStatus": "ACCEPTED",
"receivedBy": "Antoine Derieux",
"receivedAt": "2020-04-05T11:18:00",
"signedAt": "2020-04-05T12:00:00",
"quantityReceived": 1
}
}
L'opération d'élimination / valorisation est effectuée
par l'installation de destination prévue
par l'installation de destination prévue
mutation MarkAsProcessed($id: ID!, $processedInfo: ProcessedFormInput!) {
markAsProcessed(id: $id, processedInfo: $processedInfo) {
id
status
quantityReceived
}
}
{
"id": "ID_BSD",
"processedInfo": {
"processingOperationDone": "D 10",
"processingOperationDescription": "Incinération",
"destinationOperationMode": "ELIMINATION",
"processedBy": "Alfred Dujardin",
"processedAt": "2020-04-15T10:22:00"
}
}