Cette page montre un exemple de customizer pour l'écran de modification d'un inventaire. Le code source est fourni dans le zip disponible ci-dessous.
Le code repris ci-dessous montre comment :
- Demander une confirmation avant la sauvegarde de l'inventaire.
- Demander une confirmation avant la suppression d'une ligne.
- Exécuter du code après la suppression d'une ligne.
- Exécuter du code avant la modification d'une ligne.
Les codes d'exemple montrés pour l'écran Billing peuvent être aussi implémentés pour les inventaires.
using MercatorPenguin;
using MercatorPenguin.EditCustomizers;
namespace TestPenguinCustomizerInventory
{
public class CustomizerInventory : BaseEditInventoryCustomizer
{
public CustomizerInventory(ConstructorParams constructorParams) :
base(constructorParams)
{ }
public override async Task OnBeforeSaveAsync(BeforeSaveEventArgs e)
{
string lignes = string.Format("{0} ligne{1}", Lignes.Rows.Count, Lignes.Rows.Count > 1 ? "s" : "");
if (!await Dialogs.AnswerYesNo(Page, $"Voulez-vous vraiment enregistrer les modifications sur cet inventaire contenant {lignes} ?"))
{
e.CancelSave = true;
}
}
public override async Task OnBeforeDeleteLineAsync(BeforeDeleteLineEventArgs e)
{
if (!await Dialogs.AnswerYesNo(Page, $"Voulez-vous vraiment supprimer cette ligne {e.Ligne["id_art"]} sur ce picking ?"))
{
e.CancelDeleteLine = true;
}
}
public override async void OnAfterDeleteLine(AfterDeleteLineEventArgs e)
{
await Dialogs.Stop(Page, $"La ligne a été sumprimée avec succès !");
}
public override async Task OnBeforeChangeLineAsync(BeforeChangeLineEventArgs e)
{
if (!await Dialogs.AnswerYesNo(Page, $"Voulez-vous vraiment modifier la colonne {e.ColumnToChange} de cette ligne {e.Line["id_art"]} avec cette nouvelle valeur {e.NewValue} ?"))
{
e.CancelChangeLine = true;
}
}
}
}
A télécharger :
0000003452.zip (1 Kb - 13/05/2026)