using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Linq;
using MercatorApi;
using MercatorExtensions;
using MercatorUi;
using MercatorDatabase;
namespace SigFou
{
public class Customizer : MercatorUi.ICustomizers.ISigCreated
{
public void SigCreated(MercatorUi.Sig.Sig Sig)
{
Sig.PenguinServerBeforeValidateData += Sig_PenguinServerBeforeValidateData;
}
void Sig_PenguinServerBeforeValidateData(object sender, MercatorUi.Sig.Sig.PenguinServerBeforeValidateDataEventArgs e)
{
MercatorUi.Globals.ApiLogDelegate.Invoke(e.Data["F_NOM"].ToString() + " -> " + e.Data["F_NUM_TVA"].ToString());
MercatorUi.Sig.Sig Sig = (MercatorUi.Sig.Sig)sender;
if (string.IsNullOrWhiteSpace(e.Data["F_NOM"].ToString()) && !string.IsNullOrWhiteSpace(e.Data["F_NUM_TVA"].ToString()))
{
string vatno = e.Data["F_NUM_TVA"].ToString().Trim().ToUpper();
if ((vatno.Length > 5) && (
vatno.StartsWith("AT") || vatno.StartsWith("BE") || vatno.StartsWith("BG") || vatno.StartsWith("CY") ||
vatno.StartsWith("CZ") || vatno.StartsWith("DE") || vatno.StartsWith("DK") || vatno.StartsWith("EE") ||
vatno.StartsWith("EL") || vatno.StartsWith("ES") || vatno.StartsWith("FI") || vatno.StartsWith("FR") ||
vatno.StartsWith("GB") || vatno.StartsWith("HU") || vatno.StartsWith("IE") || vatno.StartsWith("IT") ||
vatno.StartsWith("LT") || vatno.StartsWith("LU") || vatno.StartsWith("LV") || vatno.StartsWith("MT") ||
vatno.StartsWith("NL") || vatno.StartsWith("PL") || vatno.StartsWith("PT") || vatno.StartsWith("RO") ||
vatno.StartsWith("SE") || vatno.StartsWith("SI") || vatno.StartsWith("SK")))
{
string countryCode = vatno.Substring(0, 2);
string vatNumber = vatno.Substring(2);
bool valid = false;
string name;
string address;
MercatorTunnel.eu.europa.ec.checkVatService checkVatService = new MercatorTunnel.eu.europa.ec.checkVatService();
try
{
checkVatService.checkVat(ref countryCode, ref vatNumber, out valid, out name, out address);
}
catch (Exception ex)
{
e.BlockingMessage = "CheckVatService : " + ex.Message;
return;
}
if (!valid)
{
e.BlockingMessage = "Het BTW NR bestaat NIET!";
return;
}
e.Data["F_NOM"] = Api.Left(name, Sig.FieldList["F_NOM"].Length);
address = address.Replace("ÿ", "\n");
e.Data["F_ADRESSE"] = Api.Left(Api.StrExtract(address + "\n", "", "\n"), Sig.FieldList["F_ADRESSE"].Length);
string adr2 = Api.StrExtract(address + "\n", "\n", "\n");
string adr3 = Api.StrExtract(address + "\n", "\n", "\n", 2);
string cp_ville = adr2;
if (!string.IsNullOrEmpty(adr3))
{
cp_ville = adr3;
e.Data["F_ADRESSE2"] = Api.Left(adr2, Sig.FieldList["F_ADRESSE2"].Length);
}
e.Data["F_CODEP"] = Api.StrExtract("|" + cp_ville, "|", " ").Trim();
e.Data["F_VILLE"] = Api.StrExtract(cp_ville + "|", " ", "|").Trim();
}
}
}
}
}