Purchase Order Failure

Author: Accord Project

purchase-order-failure@0.11.0 Contract ^0.22.0 7363757c6b09bfc93714ab9cc5751176e1ff5db04c88a6a2451b6665e0b88aba

Issues credits for late purchase orders. Purchase orders sent via DocuSign must have the text recipient tabs with the following tab labels and validations: deliveryDate with Date validation, actualPrice with Numbers validation and currencyCode with no validation.

Download Archive Download Compiled Archive Open in Template Studio Open in VSCode Web

Purchase Order Failure

This clause emits a payment obligation for purchase orders that are received late. Purchase orders sent via DocuSign must have the "text" recipient tabs with the following tab labels and validations: deliveryDate with "Date" validation, actualPrice with "Numbers" validation and currencyCode with no validation.

Template Text

In the event that a Purchase Order Failure causes any Product to be delivered more than 1 days after the delivery date for such Product specified in the applicable Purchase Order therefore, "Buyer Corp" shall be entitled to receive a 5.0% discount on the Actual Price for such late delivered Product which would otherwise have been payable pursuant to "Article 5". In the event that a Purchase Order Failure causes any Product to be delivered more than 2 days after the delivery date for such Product specified in the applicable Purchase Order therefore, "Buyer Corp" shall be entitled to receive a 10% discount on the Actual Price for such late delivered Product which would otherwise have been payable pursuant to "Article 5". In the event that a Purchase Order Failure causes any Product to be delivered more than 10 days, after the delivery date for such Product specified in the applicable Purchase Order therefore, "Buyer Corp" shall be entitled to receive a 50% discount on the Actual Price for such late delivered Product which would otherwise have been payable pursuant to "Article 5". Any discount amount owing to "Buyer Corp" pursuant to this "Section 3.5(c)" shall be paid by paying "Buyer Corp" such amount via electronic money transfer. In case of 5 or more Purchase Order Failures in the past 60 days, then "Buyer Corp" shall be entitled to an additional 599.99 USD compensation.

In the event that a Purchase Order Failure causes any Product to be delivered more than 1 days after the delivery date for such Product specified in the applicable Purchase Order therefore, "Buyer Corp" shall be entitled to receive a 5.0% discount on the Actual Price for such late delivered Product which would otherwise have been payable pursuant to "Article 5". In the event that a Purchase Order Failure causes any Product to be delivered more than 2 days after the delivery date for such Product specified in the applicable Purchase Order therefore, "Buyer Corp" shall be entitled to receive a 10% discount on the Actual Price for such late delivered Product which would otherwise have been payable pursuant to "Article 5". In the event that a Purchase Order Failure causes any Product to be delivered more than 10 days, after the delivery date for such Product specified in the applicable Purchase Order therefore, "Buyer Corp" shall be entitled to receive a 50% discount on the Actual Price for such late delivered Product which would otherwise have been payable pursuant to "Article 5". Any discount amount owing to "Buyer Corp" pursuant to this "Section 3.5(c)" shall be paid by paying "Buyer Corp" such amount via electronic money transfer. In case of 5 or more Purchase Order Failures in the past 60 days, then "Buyer Corp" shall be entitled to an additional 599.99 USD compensation.
In the event that a Purchase Order Failure causes any Product to be delivered more than {{lateOne}} after the delivery date for such Product specified in the applicable Purchase Order therefore, {{buyer}} shall be entitled to receive a {{lateOnePercent}}% discount on the Actual Price for such late delivered Product which would otherwise have been payable pursuant to {{article}}. In the event that a Purchase Order Failure causes any Product to be delivered more than {{lateTwo}} after the delivery date for such Product specified in the applicable Purchase Order therefore, {{buyer}} shall be entitled to receive a {{lateTwoPercent}}% discount on the Actual Price for such late delivered Product which would otherwise have been payable pursuant to {{article}}. In the event that a Purchase Order Failure causes any Product to be delivered more than {{lateThree}}, after the delivery date for such Product specified in the applicable Purchase Order therefore, {{buyer}} shall be entitled to receive a {{lateThreePercent}}% discount on the Actual Price for such late delivered Product which would otherwise have been payable pursuant to {{article}}. Any discount amount owing to {{buyer}} pursuant to this {{thisSection}} shall be paid by paying {{buyer}} such amount via electronic money transfer. In case of {{maxFailures}} or more Purchase Order Failures in the past {{failureRange}}, then {{buyer}} shall be entitled to an additional {{repeatedFailureCompensation}} compensation.
{
    "$class": "com.docusign.clauses.PurchaseOrderFailure",
    "buyer": "resource:org.accordproject.party.Party#Buyer%20Corp",
    "lateOne": {
        "$class": "org.accordproject.time.Duration",
        "amount": 1,
        "unit": "days"
    },
    "lateTwo": {
        "$class": "org.accordproject.time.Duration",
        "amount": 2,
        "unit": "days"
    },
    "lateThree": {
        "$class": "org.accordproject.time.Duration",
        "amount": 10,
        "unit": "days"
    },
    "lateOnePercent": 5,
    "lateTwoPercent": 10,
    "lateThreePercent": 50,
    "article": "Article 5",
    "thisSection": "Section 3.5(c)",
    "maxFailures": 5,
    "failureRange": {
        "$class": "org.accordproject.time.Duration",
        "amount": 60,
        "unit": "days"
    },
    "repeatedFailureCompensation": {
        "$class": "org.accordproject.money.MonetaryAmount",
        "doubleValue": 599.99,
        "currencyCode": "USD"
    },
    "contractId": "ba3e6c7a-653e-4e19-a442-8c047fc91da9",
    "$identifier": "ba3e6c7a-653e-4e19-a442-8c047fc91da9"
}

Template Model

namespace com.docusign.clauses

import org.accordproject.contract.* from https://models.accordproject.org/accordproject/contract.cto
import org.accordproject.party.* from https://models.accordproject.org/accordproject/party.cto
import org.accordproject.runtime.* from https://models.accordproject.org/accordproject/runtime.cto
import org.accordproject.obligation.* from https://models.accordproject.org/accordproject/obligation.cto
import org.accordproject.time.* from https://models.accordproject.org/time@0.2.0.cto
import com.docusign.connect.DocuSignEnvelopeInformation from https://models.accordproject.org/docusign/connect@0.3.0.cto
import org.accordproject.money.MonetaryAmount from https://models.accordproject.org/money@0.2.0.cto

transaction PurchaseOrderFailureResponse extends Response {
  o MonetaryAmount penalty
}

asset PurchaseOrderFailureState extends State {
  o DateTime[] pastFailures
  o Integer nbPastFailures
}

asset PurchaseOrderFailure extends Contract {
  --> Party buyer

  o Duration lateOne
  o Duration lateTwo
  o Duration lateThree

  o Double lateOnePercent
  o Double lateTwoPercent
  o Double lateThreePercent

  o String article
  o String thisSection

  o Integer maxFailures
  o Duration failureRange
  o MonetaryAmount repeatedFailureCompensation
}

Model Dependencies

Template Logic

Find the full logic for this template on on GitHub.

State Types

Type Sample JSON
com.docusign.clauses.PurchaseOrderFailureState
{
    "$class": "com.docusign.clauses.PurchaseOrderFailureState",
    "pastFailures": [
        "2021-04-27T13:10:30.627-04:00"
    ],
    "nbPastFailures": 8684,
    "$identifier": "78503330-a77b-11eb-9770-7ddd576a12c2"
}

Request Types

Type Sample JSON
com.docusign.connect.DocuSignEnvelopeInformation
{
    "$class": "com.docusign.connect.DocuSignEnvelopeInformation",
    "envelopeStatus": {
        "$class": "com.docusign.connect.EnvelopeStatus",
        "status": "Any",
        "envelopeId": "Velit occaecat.",
        "created": "2021-04-27T13:10:30.625-04:00",
        "sent": "2021-04-27T13:10:30.625-04:00",
        "delivered": "2021-04-27T13:10:30.625-04:00",
        "signed": "2021-04-27T13:10:30.625-04:00",
        "completed": "2021-04-27T13:10:30.625-04:00",
        "declined": "2021-04-27T13:10:30.625-04:00",
        "email": "Adipisicing in ut veniam."
    },
    "recipients": [
        {
            "$class": "com.docusign.connect.Recipient",
            "status": "Signed",
            "email": "Irure exercitation officia reprehenderit.",
            "userName": "Consectetur.",
            "sent": "2021-04-27T13:10:30.625-04:00",
            "delivered": "2021-04-27T13:10:30.625-04:00",
            "signed": "2021-04-27T13:10:30.625-04:00",
            "declined": "2021-04-27T13:10:30.625-04:00",
            "declineReason": "Dolor cillum.",
            "tabStatuses": [
                {
                    "$class": "com.docusign.connect.NumberTabStatus",
                    "tabName": "Irure.",
                    "tabValue": 133.084,
                    "tabType": "SignerAttachmentOptional",
                    "status": "Do et quis.",
                    "tabLabel": "Deserunt officia.",
                    "originalValue": "Sit eu officia ipsum adipisicing.",
                    "signed": "2021-04-27T13:10:30.625-04:00",
                    "customTabType": "ZIP5"
                }
            ]
        }
    ],
    "customFields": [
        {
            "$class": "com.docusign.connect.CustomField",
            "name": "Ullamco reprehenderit ut proident amet.",
            "value": "Velit fugiat."
        }
    ],
    "attachments": [
        {
            "$class": "com.docusign.connect.Attachment",
            "docType": "SignerAttachment",
            "identifier": "1907",
            "name": "Fugiat.",
            "mimeType": "Sunt mollit quis dolore.",
            "encoding": "base64",
            "$identifier": "1907"
        }
    ],
    "$timestamp": "2021-04-27T13:10:30.625-04:00"
}

Response Types

Type Sample JSON
com.docusign.clauses.PurchaseOrderFailureResponse
{
    "$class": "com.docusign.clauses.PurchaseOrderFailureResponse",
    "penalty": {
        "$class": "org.accordproject.money.MonetaryAmount",
        "doubleValue": 172.748,
        "currencyCode": "DJF"
    },
    "$timestamp": "2021-04-27T13:10:30.626-04:00"
}

Events Types

Type Sample JSON
org.accordproject.obligation.PaymentObligation
{
    "$class": "org.accordproject.obligation.PaymentObligation",
    "amount": {
        "$class": "org.accordproject.money.MonetaryAmount",
        "doubleValue": 219.43,
        "currencyCode": "XPD"
    },
    "description": "Ullamco.",
    "$identifier": "78503331-a77b-11eb-9770-7ddd576a12c2",
    "contract": "resource:com.docusign.clauses.PurchaseOrderFailure#2499",
    "promisor": "resource:org.accordproject.party.Party#3831",
    "promisee": "resource:org.accordproject.party.Party#5128",
    "deadline": "2021-04-27T13:10:30.627-04:00",
    "$timestamp": "2021-04-27T13:10:30.627-04:00"
}

Technical Integration

Please refer to the Accord Project documentation for how to use a template or integrate it within your application.

View the Latest code for this template on GitHub.