ANS-0966 · DéVELOPPEMENT SUITESCRIPT

Comment générer par script la prochaine facture à partir d’une commande client NetSuite avec un échéancier de facturation

Automatisez la génération de la prochaine facture ou de la prochaine vente au comptant à partir d’une commande client NetSuite à l’aide de SuiteScript 2.x, en tirant parti de son calendrier de facturation.

Solution courte

Pour générer la prochaine facture ou vente au comptant à partir d’une commande client comportant un échéancier de facturation, utilisez SuiteScript 2.x pour charger la commande client, récupérer la date « nextbill », transformer la commande client en type de transaction souhaité, définir le champ « billdate » sur l’enregistrement transformé, puis l’enregistrer.

Scénario

Les utilisateurs de NetSuite ont souvent besoin de générer par programmation la prochaine facture ou la prochaine vente au comptant pour les commandes client associées à un calendrier de facturation. Ce processus garantit que les événements de facturation suivants sont déclenchés et enregistrés avec précision, préservant ainsi l’intégrité des flux de revenus récurrents.

Solution

Pour générer par programmation la prochaine facture ou vente au comptant à partir d’une commande client dotée d’un calendrier de facturation actif, vous pouvez utiliser SuiteScript 2.x afin de transformer l’enregistrement de la commande client. La clé consiste à récupérer la date nextbill de la commande client d’origine et à l’appliquer en tant que billdate au cours du processus de transformation. Le code SuiteScript 2.x suivant illustre ce processus :

javascript
// Assume salesOrderId is the internal ID of the sales order
var salesOrderRecord = record.load({
    type: record.Type.SALES_ORDER,
    id: salesOrderId,
    isDynamic: false
});

var nextBillDateValue = salesOrderRecord.getValue({ fieldId: 'nextbill' });

var transformedRecord = record.transform({
    fromType: record.Type.SALES_ORDER,
    fromId: salesOrderId,
    toType: record.Type.CASH_SALE, // Use record.Type.INVOICE for an Invoice
    isDynamic: false
});

if (nextBillDateValue) {
    transformedRecord.setValue({
        fieldId: 'billdate',
        value: nextBillDateValue
    });
}

transformedRecord.save();

Points à prendre en compte pour la mise en œuvre :

  • Ce script part du principe qu’un calendrier de facturation est défini sur la commande client. Mettez en place une validation pour vous assurer qu’un calendrier de facturation existe avant de tenter la transformation.
  • Le paramètre toType dans record.transform peut être défini sur record.Type.INVOICE pour une facture ou sur record.Type.CASH_SALE pour une vente au comptant, en fonction du type de transaction requis.

Support expert NetSuite

Besoin d’aide pour cet enjeu NetSuite ?

Accompagnement-conseil et configuration pour Développement SuiteScript

Parler à un consultant