Bonjour à tous,
Nous souhaitons étendre la période de validité d’un devis expiré mais ce n’est pas comme la v3 et nous ne savons plus comment faire. Pouvez-vous nous indiquer la méthode ?
Merci d’avance.
Bonjour @oryxr,
Dans la v4 il est désormais possible de créer une commande depuis un devis expiré sans modifier la date de validité du devis:
Ca évite d’avoir à modifier un document validé.
Bonne journée
Oui, mais si on renvoi le devis au client, on aurait souhaité modifier cette date sans annuler le devis. Mais la commande n est pas encore acquise.
C’était l"approche qu’on avait mis en place dans la v3, mais objectivement je pense que ce n’est pas rigoureux: si la date de validité n’est pas la même, ce ne peut pas être le même devis, c’est un devis rectificatif.
C’est probablement acceptable en pratique ceci dit.
Dans la v4 on est reparti sur le fonctionnement d’ERPNext puisqu’ils ont ajouté la possibilité de créer une commande même si le devis expiré. Le fonctionnement jusqu’à présent étant un peu trop rigide.
Dans cette approche, toute modification d’une donnée présentée au client après la validation nécessite la création d’un nouveau devis (duplicata ou annuler/modifier) pour garder une trace des évolutions.
Si tu souhaites réintroduire le fonctionnement de la v3, tu peux ajouter les 2 scripts suivants sur ton site:
Script client
frappe.ui.form.on('Quotation', {
refresh(frm) {
if (frm.doc.docstatus == 1 && !["Lost", "Ordered"].includes(frm.doc.status)) {
frm.add_custom_button(__('Extend validity period'), () => {
frm.trigger('extend_quotation_validity_dialog');
});
}
},
extend_quotation_validity_dialog(frm) {
const dialog = new frappe.ui.Dialog({
title: __("Extend the quotation validity"),
fields: [{
"fieldtype": "Date",
"label": __("New end date"),
"fieldname": "end_date",
"reqd": 1,
"default": frm.doc.valid_till
}],
primary_action: function() {
const values = dialog.get_values();
frappe.call({
method: "extend_quotation_validity",
args: {
date: values.end_date,
quotation: frm.doc.name
}
}).then(() => {
frm.refresh();
})
dialog.hide();
},
primary_action_label: __('Extend validity')
});
dialog.show();
}
})
Script serveur
quotation = frappe.get_doc("Quotation", frappe.form_dict.get("quotation"))
quotation.flags.ignore_validate_update_after_submit = True
quotation.valid_till = frappe.form_dict.get("date")
quotation.set_status()
quotation.save()
quotation.flags.ignore_validate_update_after_submit = False
Bonne fin de journée !
Question, dans la v4.21.1 que j’utilise, je n’ai pas le bouton Créer sur un devis expiré.
Dois-je configurer quelque chose de particulier ?
Merci.
Bonjour @ozy,
Dans la v4, il faut cocher l’option Autoriser la création de commandes client pour les devis expirés dans les paramètres des ventes pour avoir cette option.
Bonne journée
Avec (vraiment) beaucoup de retard: Merci !