Le code fourni ci-dessous permet de générer un document de vente dans la gestion commerciale. Certaines données seront pré-remplies.
Ce module travaillant avec l'objet BillingEngine, il peut être appelé à partir de divers endroits dans Mercator.
Dans l'exemple présenté, il est appelé à partir d'un signalétique.
Ce code requiert l'option ENGG.
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorExtensions;
using System.Windows.Forms;
// <CompileWithRoslyn />
namespace MercatorUi.MovableControls.ButtonsCodes
{
public static class Script
{
public static void Exec(MovableButton clickedButton)
{
Forms.Sig.SigForm sigForm = (Forms.Sig.SigForm)clickedButton.Form;
string journal = Dialogs.AskJournal("Quel type de document ?", _Dialogs.AskPieceEnum.V, 3, true, "")?.Journal;
if (!string.IsNullOrEmpty(journal))
{
Engine.Gescom.BillingEngine billingEngine = Engine.Gescom.BillingEngine.InitNew(Engine.Gescom.Billing.TypeVAEnum.V, 3, journal);
if (billingEngine.DataSet == null)
{
Dialogs.Stop(billingEngine.LastError);
return;
}
billingEngine.ApplyCustomerSupplier(sigForm.CliRecord.C_IDCOMPTA);
billingEngine.ApplyCliLiv(sigForm.CliRecord.C_ID);
Forms.Billing.BillingForm billingForm = Globals.Main.ShowBillingNewInThread(billingEngine);
billingForm.FullInitialized += BillingForm_fullInitialized;
}
}
private static void BillingForm_fullInitialized(object sender, EventArgs e)
{
Forms.Billing.BillingForm billingForm = (Forms.Billing.BillingForm)sender;
billingForm.FullInitialized -= BillingForm_fullInitialized;
billingForm.LinesEditor?.Focus();
}
}
}