ANS-1558 · DéVELOPPEMENT SUITESCRIPT

Comment créer un script pour la fonctionnalité « Date de facturation suivante » de NetSuite lors de la transformation des commandes client

Automatisez la définition de la prochaine date de facturation lors de la conversion d'une commande client en facture ou en vente au comptant à l'aide de SuiteScript 2.x.

Solution courte

Pour utiliser la fonctionnalité « Next Bill » de NetSuite via un script, initialisez la date de facturation lors du processus de transformation de la commande client. Cela implique de rechercher la valeur « nextbilldate » dans la commande client et de la transmettre en tant que valeur par défaut lors de la création du nouvel enregistrement de transaction (facture ou vente au comptant) à l'aide de SuiteScript 2.x.

Scénario

Les utilisateurs doivent définir par programmation la date de facturation des commandes client transformées, en utilisant notamment la fonctionnalité « Facture suivante ». Cela est essentiel pour automatiser les processus de facturation lorsque la date de facturation doit correspondre à un calendrier prédéfini figurant sur la commande client d’origine, afin de garantir l’exactitude de la comptabilité.

Solution

Pour exploiter la fonctionnalité « Next Bill » via un script, la date de facturation doit être initialisée lors du processus de transformation de la commande client. Cela implique de récupérer la valeur « nextbilldate » de la commande client d’origine et de la transmettre en tant que valeur par défaut lors de la création du nouvel enregistrement de transaction (par exemple, une facture ou une vente au comptant) à l’aide de SuiteScript 2.x. L’exemple SuiteScript 2.x suivant illustre ce processus. Assurez-vous que les modules N/record et N/search sont chargés dans votre script (par exemple, via l’instruction define dans un module ou un fichier de script SuiteScript 2.x).

javascript
var salesOrderId = 'xxx'; // Replace 'xxx' with the actual sales order internal ID
var nextBillDate = search.lookupFields({
    type: search.Type.SALES_ORDER,
    id: salesOrderId,
    columns: ['nextbilldate']
}).nextbilldate;

var transformedRecord = record.transform({
    fromType: record.Type.SALES_ORDER,
    fromId: salesOrderId,
    toType: record.Type.CASH_SALE, // Can also be record.Type.INVOICE
    defaultValues: {
        billdate: nextBillDate
    }
});

transformedRecord.save();

Il est important de noter que « nextbilldate » n’est pas directement documenté en tant que champ de corps standard, mais qu’il est disponible en tant que colonne de recherche ; c’est pourquoi une opération de recherche est nécessaire pour récupérer sa valeur.

Les points clés à prendre en compte pour la mise en œuvre sont les suivants :

  1. Cette approche peut s’appliquer aux commandes client sans échéancier de facturation, mais une logique de validation supplémentaire peut s’avérer utile pour s’assurer de la présence d’un échéancier de facturation si cela est requis.

  2. Le type d’enregistrement cible pour la transformation peut être soit GA_KEEP_0005, soit record.Type.CASH_SALE.

Support expert NetSuite

Besoin d’aide pour cet enjeu NetSuite ?

Accompagnement-conseil et configuration pour Développement SuiteScript

Parler à un consultant