U bevindt zich nu op een technische pagina over de software Mercator. Deze pagina bevat specifieke informatie die bestemd is voor professionals van de software Mercator. Wenst u naar algemenere informatie over Mercator door te gaan?


   Deze vraag niet meer stellen

MercatorPenguin 2.0: documenten uit het commercieel beheer - voorbeeld DNV

0000002835     -      08-06-2018

Deze pagina toont de uitgevoerde instellingen in het commercieel beheer en MercatorPenguin. Het geeft de mogelijkheid om een document uit het commercieel beheer te wijzigen vanaf een mobiele applicatie. De functionaliteiten die hier getoond worden zijn:

  • een onderhoudstechnicus kan nakijken welke DNV-opdrachten er aan hem toegewezen zijn.
  • hij kan een verslag invoeren over de opdracht
  • de gebruikte onderdelen ingeven (maximaal 3 verschillende artikelen)
  • via de touch-pad modus de handtekening van de klant bewaren.

Deze instelling wordt bijvoorbeeld overgenomen in het bestel-journaal SAV. Het is noodzakelijk om volgende velden toe te voegen aan PIEDS_V:

  • ID_ART1, ID_ART2, ID_ART3 : char(10) not null default ''
  • Q_ART1, Q_ART2, Q_ART3 : float not null default 0
  • NOTE1 et NOTE2 : varchar(MAX) not null default '' : NOTE1 zal de interventieaanvraag bevatten - niet wijzigbaar via MercatorPenguin, NOTE2 zal het interventierapport bevatten - wijzigbaar via MercatorPenguin
  • SIGN_CLI : varbinary(MAX) null : afbeelding met de handtekening van de klant.

Het is noodzakelijk om het invoerscherm van de sequentie te wijzigen. We raden u aan om dit te doen door de inhoud van het MPGE-bestand in een nieuw tabblad met de naam SAV te laden.

Een bundel die toegang biedt tot documenten uit het commercieel beheer moet geïnstalleerd worden via "Tools - Setup - Penguinbundels - Lijsten". Het bijbehorende bestand, Prestations SAV.pngb, kan je terugvinden in bijgevoegd zip-bestand.

In de verkoopsequentie moet met het scherm voor de mobiele applicatie instellen via "Penguin Instellen". Het bestand sav.xaml zit ook in het ZIP-bestand

Vervolgens is het nodig om deze customizer in de sequentie te installeren.

Zoom
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Linq;
using System.Windows.Forms;
using MercatorApi;
using MercatorUi;
using MercatorExtensions;
using MercatorDatabase;

namespace Billing
{
    public class Customizer : MercatorUi.ICustomizers.IBillingEngineCreated, MercatorUi.ICustomizers.IBillingEngineClosed
    {
        private const int nArt = 3;

        public void BillingEngineCreated(MercatorUi.Engine.Gescom.BillingEngine billingEngine)
        {
            if (Globals.IsMercatorPenguinServer)
            {
                billingEngine.BeforeSave += new MercatorUi.Engine.Gescom.BillingEngine.BeforeSaveEventHandler(BillingEngine_BeforeSave);
                for (int i = 1; i <= nArt; i++)
                {
                    // retirer des lignes les articles précédemment saisis dans MercatorPenguin
                    foreach (DataRow dr in billingEngine.LIGNES.Select(string.Format("(dl_id='{0}')", Api.Replicate(i.ToString(), 10))))
                        billingEngine.LIGNES.Rows.Remove(dr);
                    // mettre 1 comme valeur par défaut pour les quantités
                    if (Convert.ToDouble(billingEngine.PIEDS["Q_ART" + i]).CompareTo(0, 2) == 0)
                        billingEngine.PIEDS["Q_ART" + i] = 1;
                }
            }
        }

        public void BillingEngineClosed(MercatorUi.Engine.Gescom.BillingEngine billingEngine)
        {
            if (Globals.IsMercatorPenguinServer)
                billingEngine.BeforeSave -= new MercatorUi.Engine.Gescom.BillingEngine.BeforeSaveEventHandler(BillingEngine_BeforeSave);
        }

        void BillingEngine_BeforeSave(object sender, MercatorUi.Engine.Gescom.BillingEngine.BeforeSaveEventArgs e)
        {
            // ajouter dans les lignes les articles saisis en pied dans MercatorPenguin
            MercatorUi.Engine.Gescom.BillingEngine billingEngine = (MercatorUi.Engine.Gescom.BillingEngine)sender;
            for (int i = 1; i <= nArt; i++)
            {
                double q = Convert.ToDouble(billingEngine.PIEDS["Q_ART" + i]);
                if ((billingEngine.PIEDS["ID_ART" + i].ToString() != "") && (q.CompareTo(0, 2) != 0))
                {
                    int n = billingEngine.AppendLine();
                    if (!billingEngine.InsertItem(billingEngine.PIEDS["ID_ART" + i].ToString(), n, q))
                    {
                        e.CancelSave = true;
                        Globals.ApiLogDelegate.Invoke("Impossible d'ajouter l'article " + billingEngine.PIEDS["ID_ART" + i]); // écrire dans le log de MercatorPenguinServer
                        return;
                    }
                    billingEngine.LIGNES.Rows[n]["dl_id"] = Api.Replicate(i.ToString(), 10);
                }
            }
        }
    }
}

 

De schermen binnen MercatorPenguin worden als volgt weergegeven:

    

De schermen in Mercator zien er zo uit:

 

 



Te laden : 0000002835.zip (3 Kb - 22-05-2018)