Aller directement à la fin des métadonnées
Aller au début des métadonnées

Vous regardez une version antérieure (v. /wiki/spaces/UDW61/pages/10847494341/WebHook+Contract+V5.3) de cette page.

afficher les différences afficher l'historique de la page

« Afficher la version précédente Vous regardez la version actuelle de cette page. (v. 4) Actuel »

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 globalement unique de la facturation du contrat. On peut utiliser codecontract si une seule facturation pour un contrat (Varchar (255))*/
    "contract_ID": "C0000001-77", /* Code du contrat. Optionnel : reprendre le code contrat du bloc json "contract", si non fourni reprend automatiquement le code contrat (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.

  • Aucune étiquette