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
toTypedansrecord.transformpeut être défini surrecord.Type.INVOICEpour une facture ou surrecord.Type.CASH_SALEpour 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
