WebHook Contract

Résumé

Manipulation de l'entité Contract (Contrats) en lecture/écriture/suppression via un objet métier depuis une application externe.

Tables

Les tables utilisées sont :

  • sw_data_contract : Table des contrats

Les tables liées sont :

  • sw_data_contractbilling : Table de la facturation des contrats

Critères d'activation

WHK_Contract est défini dans la gestion des webhooks du studio.

Fonctionnement

verb: GET
resultType: simple

"contract":{ "codecontract": "C0000001-77", "label": "Test contrat", "contractNumber": "CONTRACT_000077", "customer_ID": "C0000001", "generictype_ID_status": "NEW", "contracttype_ID": "Abonnement licence" }

verb: GET
resultType: extended

"contract":{ "codecontract": "C0000001-77", "label": "Test contrat", "contractNumber": "CONTRACT_000077", "customer_ID": "C0000001", "generictype_ID_status": "NEW", "contracttype_ID": "Abonnement licence", "description": "description", "startDate": "2020-01-06 00:00:00", "endDate": "", "limitDate": "", "amount": "200", "interventiontype_ID": "", "frequency_ID": "", "dunningDateValue": "", "generictype_ID_dunningDateUnit": "", "contract_ID_parent": "", "closingDate": "", "customerReference": "", "version": "2", "amendmentNumber": "", "deal_ID": "", "dealelement_ID": "", "contractmodel_ID": "" }

verb: GET
resultType: extendedRelated
en complément du résultat pour resultType: extended on aura le détail pour les tables contracttype, customer, generictype_status, deal et dealelement

"related":[ { "contracttype":{ "codecontracttype": "LICENCE", "label": "Abonnement licence", "prefix": "", "numberLength": "", "counter": "", "generictype_ID_badgeColor": "" }, "customer":{ "codecustomer": "C0000001", "name": "ENTREPRISE DIJON GUICHARD", "baseuser_ID": "", "address1": "33 Avenue du Drapeau", "address2": "", "address3": "", "postalCode": "21000", "city": "DIJON", "phoneNumber": "03 90 11 22 33", "faxNumber": "03 90 11 22 44", "mobilePhoneNumber": "06 90 11 22 33", "email": "contact@guichard.com", "deliveryDays": "1A;1B;2A;2B;3A;3B;4A;4B;5A;5B", "openingDays": "1A;1B;2A;2B;3A;3B;4A;4B;5A;5B", "siretNumber": "", "vatIntra": "", "apeCode": "516K", "comment": "", "blocked": "0", "blockedComment": "", "message": "", "vacationStart": "", "vacationEnd": "", "gpsLongitude": "5.04372", "gpsLatitude": "47.33222", "gpsPrecision": "8", "gpsUpdateDate": "2020-09-03 23:02:12", "gpsManual": "", "accountNumber": "C0000001", "contactName": "", "currency_ID": "", "authorizedCredit": "0", "risk": "1", "language": "", "underSurveillance": "", "workforce": "25", "customer_ID_paying": "", "pricecategory_ID": "", "discountRate": "0", "website": "<https://www.guichard.com",> "legalStatus": "Société Anonyme avec Directoire", "generictype_ID_brand": "", "generictype_ID_deliveryMode": "", "generictype_ID_paymentMean": "", "generictype_ID_country": "FR", "generictype_ID_province": "", "generictype_ID_customerType": "CTC", "generictype_ID_customerFamily": "", "confirmationEmail": "contact@guichard.com", "confirmationFax": "03 90 11 22 44", "generictype_ID_taxCode": "", "productdepot_ID": "", "generictype_ID_accountingCategory": "", "generictype_ID_customerPotential": "B", "generictype_ID_civility": "", "skype": "contact@guichard.com", "generictype_ID_role": "", "unused": "0", "customergroup_ID": "", "generictype_ID_referencing": "2", "generictype_ID_distribution": "SELF", "generictype_ID_market": "BIG", "area": "", "baseculture_ID": "FR-FR", "baseuser_ID_favoriteTechnician": "TECH-01", "branchoffice_ID": "SXB", "emailFormat": "", "isIndividual": "0", "facebook": "<https://www.facebook.com/guichard/",> "twitter": "<https://twitter.com/guichard",> "youtube": "<https://www.youtube.com/watch?v=6jGbnEwQJ54",> "linkedin": "<https://www.linkedin.com/company/guichard",> "activity": "" } }]

verb: PUT
Selon webhookVersion renseigné dans le header :

  • webhookVersion = 1 -> les blocs json contracttype, customer et site sont obligatoires.

  • webhookVersion = 2 -> les blocs json contracttype, customer et site ne doivent plus être renseignés, sinon il y aura une erreur en retour. Ils doivent être appelés explicitement par leur webhooks correspondants (contracttype, customer et customeraddress) en amont. Valeur par défaut si non renseigné.

La description pour webhookVersion = 1 peut être consultée dans les pages de la version Divalto weavy 5.5 et antérieures.

{ "contract": { "codecontract": "C0000001-77", /* Code globalement unique du contrat (Varchar (255))*/ "label": "Test contrat", /* Libellé du contrat (Varchar (255)*/ "description": "description", /* Description du contrat (Text (65535)*/ "contractNumber": "CONTRACT_000077", /* N° de contrat (Varchar (64))*/ "startDate": "2020-06-01", /* Date de début (DateTime ())*/ "endDate": null, /* Date de fin (DateTime ())*/ "limitDate": null, /* Date d'échéance (DateTime ())*/ "customer_ID": "C0000001", /* Code client ForeignKey () - sw_data_customer.codecustomer)*/ "amount": "200", /* Montant (Double ())*/ "dunningDateValue": null, /* Valeur date de relance (Int ())*/ "generictype_ID_dunningDateUnit": null, /* Code unité pour la date de relance (ForeignKey () - sw_data_generictype.codegenerictype avec datatype = TIME_INTERVAL_UNIT)*/ "generictype_ID_status": "CONTRACT_STATUS-NEW", /* Statut du contrat. On le positionne à l'intégration dans weavy lors d'une création (CONTRACT_STATUS-NEW par défaut) (ForeignKey () - sw_data_generictype.codegenerictype avec datatype = CONTRACT_STATUS)*/ "contract_ID_parent": null, /* Code contrat parent (nécessite que le parente a été créée avant celui-ci) (ForeignKey () - sw_data_contract.codecontract)*/ "contracttype_ID": "LICENCE", /* Code type de contrat (ForeignKey () - sw_data_contracttype.codecontracttype)*/ "customerReference": null, /* Référence du contrat chez le client (Varchar (255))*/ "deal_ID": "", /* Code affaire (ForeignKey () - sw_data_deal.codedeal)*/ "dealelement_ID": "", /* Code élément d'affaire (ForeignKey () - sw_data_dealelement.codedealelement)*/ "contractmodel_ID": "", /* Code contrat modèle (ForeignKey () - sw_data_contractmodel.codecontractmodel)*/ "internalcodecontract": null /* codecontract original de weavy pour transcodage (Varchar (255))*/ }, "contractbilling": [ { "codecontractbilling": "C0000001-77", /* Code facturation du contrat. On peut utiliser codecontract si une seule facturation pour un contrat (Varchar (255))*/ "contract_ID": "C0000001-77", /* Code du contrat. Reprendre le code contrat du bloc json "contract" (ForeignKey () - sw_data_contract.codecontract)*/ "startDate": "2020-06-01", /* Date de début de facturation (DateTime ())*/ "endDate": "", /* Date de fin de facturation (DateTime ())*/ "frequency_ID": "", /* Code fréquence (ForeignKey () - sw_data_frequency.codefrequency)*/ "workforceIncluded": "1", /* Main d'œuvre incluse (Valeurs possibles : 0,1) (Bool ()) */ "partsIncluded": "1", /* Pièces incluses (Valeurs possibles : 0,1) (Bool ()) */ "travelsIncluded": "1", /* Déplacements inclus (Valeurs possibles : 0,1) (Bool ()) */ "amount": "200" /* Montant (Double ())/ }] }

verb: LIST
resultType: simple, extended reprendre les définitions du GET

"filters:" { "codeContract": "value", filter is equal "contractNumber": "value", filter is equal "label": "value", filter is contains "codeCustomer": "value", filter is equal "contractType": "value", filter is equal "codeDeal": "value", filter is equal "codeStatus": "value", filter is equal "codeEquipment": "value" filter is equal }, "orderBy": "value"

Valeurs possibles pour le tri "orderBy" :

  • contractNumberAsc : par n° de contrat ascendant

  • startDateDesc : par date de début descendant

  • startDateAsc : par date de début ascendant

verb: DELETE
Une suppression d'un contrat (sw_data_contract) va supprimer en cascade les éléments dans la table liée sw_data_contractbilling.