using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorUi;
namespace MyNameSpace
{
public class Class1 : MercatorUi.Interfaces.IExec
{
public void Main()
{
using (MercatorUi.Engine.Cpta.BookingEngine bookingEngine = MercatorUi.Engine.Cpta.BookingEngine.InitNew(1, "VENc")) // 1 = verkoop, tweede parameter = journaal
{
if (!string.IsNullOrEmpty(bookingEngine.LastError))
{
Dialogs.Stop("Init BookingEngine : " + bookingEngine.LastError);
return;
}
if (!bookingEngine.ApplyCustomerSupplier("MERCATOR"))
{
Dialogs.Stop("ApplyCustomerSupplier : " + bookingEngine.LastError);
return;
}
// Gegevens van PIEDS_C
bookingEngine.PiedsCRecord.REGIME = MercatorDatabase.RegimesEnum.Normal; // Facultatieve lijn, want het stelsel wordt geïnitialiseerd door ApplyCustomerSupplier
bookingEngine.PiedsCRecord.DATE = new DateTime(2012, 1, 15);
bookingEngine.PeriodFromDate(bookingEngine.PiedsCRecord.DATE); // Aanpassing van de periode in functie van de datum
bookingEngine.PiedsCRecord.ECHEANCE = Api.AddDate(bookingEngine.PiedsCRecord.DATE, bookingEngine.CliRecord.C_PAIEM); // Berekening van de vervaldatum in functie van de betalingstermijn vermeld in de klantenfiche
bookingEngine.PiedsCRecord.REFERENCE = "Ecriture générée par code";
bookingEngine.PiedsCRecord.HEADERTOTAL = 1210;
// Toevoeging van de lijnen
MercatorUi.Sig.Sig sig_gen = MercatorUi.Sig._SigsStatic.SigByModule(MercatorUi.Sig._SigEnum.GEN); // Zal nodig zijn om aan te geven dat men een algemene rekening gaat invoegen.
string id_tva = MercatorController.xFunctions.xLookUpString("TVACODES", "CODE_N", "21", "ID"); // Men moet enkel btw-code-ID's bewerken.
int n = bookingEngine.AppendLine(); // Initialiseert een nieuwe lijn en vermeldt het nummer van de gecreëerde lijn.
if (!bookingEngine.InsertAccount(sig_gen, "700000", bookingEngine.LIGNES_C.Rows[n]))
{
Dialogs.Stop("InsertAccount 1 : " + bookingEngine.LastError);
return;
}
bookingEngine.LignesCRecords[n].TOT_DV = 1100;
bookingEngine.LignesCRecords[n].SIGNE = "C"; // Facultatieve lijn, want het teken wordt geïnitialiseerd door AppendLine
bookingEngine.LignesCRecords[n].ID_TVA = id_tva;
bookingEngine.LignesCRecords[n].TVA_DV = 231;
n = bookingEngine.AppendLine(); // Initialiseert een nieuwe lijn en vermeldt het nummer van de gecreëerde lijn.
if (!bookingEngine.InsertAccount(sig_gen, "700010", bookingEngine.LIGNES_C.Rows[n]))
{
Dialogs.Stop("InsertAccount 2 : " + bookingEngine.LastError);
return;
}
bookingEngine.LignesCRecords[n].TOT_DV = 100;
bookingEngine.LignesCRecords[n].SIGNE = "D";
bookingEngine.LignesCRecords[n].ID_TVA = id_tva;
bookingEngine.LignesCRecords[n].TVA_DV = 21;
// sauvegarde
if (!bookingEngine.Save())
{
Dialogs.Stop("Save : " + bookingEngine.LastError);
return;
}
Dialogs.Stop(string.Format("Het document wordt opgeslagen met als nummer {0}.", bookingEngine.SavedNumber));
}
}
}
}