Met Mercator 11.0 of later kunt u documenten koppelen door "verkoop - aankoop" of "aankoop - verkoop" koppelingen op te zetten. Hierdoor kunnen documenten bijvoorbeeld automatisch worden aangemaakt,
- voorbereiding van bestellingen van leveranciers op basis van een bestelling van een klant. Bijvoorbeeld bij de verkoop van 'op bestelling' gemaakte artikelen.
- klantoffertes van een bestelling van een leverancier. Bijvoorbeeld voor interne herfacturatie.
Om deze koppeling naar de verkoopafdeling te installeren, moet je deze kolommen toevoegen aan de database:
alter table LIGNES_V add LINKED_A char(38) not null default ''
alter table LIGNES_V add ID_FOU_LINKED char(10) not null default ''
alter table LIGNES_A add LINKED_V char(38) not null default ''
Om deze koppeling te installeren bij de aankoop, moeten deze kolommen worden toegevoegd aan de database. Exclusief, indien van toepassing, de kolommen LINKED_V en LINKED_A die in de vorige stap zijn gemaakt:
alter table LIGNES_A add LINKED_V char(38) not null default ''
alter table LIGNES_A add ID_CLI_LINKED char(10) not null default ''
alter table LIGNES_V add LINKED_A char(38) not null default ''
Zodra deze kolommen zijn toegevoegd, moet u Mercator opnieuw opstarten en vervolgens het menu "Tools > Geavanceerde tools > SQL database > Structuur controleren" uitvoeren. Deze procedure voegt de constraints en indexen toe die nodig zijn door de aanwezigheid van deze kolommen.
Als Mercator geen constraint toevoegt, controleer dan of de versie in de voucher gelijk is aan of groter is dan 11.0 en herhaal de structuurcontrole.
Om leveranciersdocumenten van een verkooporder te genereren, moet je deze kolommen toevoegen aan de kolominstellingen van LinesEditor in dit scherm:
- ID_FOU_LINKED : gekoppelde leverancier-ID
- ZOOM_FOU_LINKED : bijbehorende zoom-/zoekknop
- NOM_FOU_LINKED : naam van verbonden leverancier
Om klantdocumenten te genereren vanuit een leveranciersorder, moet je deze kolommen toevoegen aan de LinesEditor kolominstellingen op dit scherm:
- ID_CLI_LINKED : gekoppelde klant-ID
- ZOOM_CLI_LINKED : bijbehorende zoom-/zoekknop
- NOM_CLI_LINKED : gekoppelde klantnaam
Deze kolommen kunnen eenvoudig worden toegevoegd via :
We raden aan om een extra kolom toe te voegen aan deze read-only bron:
- Op bestelling van de klant : LIGNES_V.LINKED_A
- Leveranciersorders voorbereiden : LIGNES_A.LINKED_V
Deze kolom wordt gebruikt om links naar tegenoverliggende documenten weer te geven.
Om deze kolom inhoud te laten produceren, moet je de bijbehorende SQL-functies in het bijgevoegde zip-bestand installeren.
- dbo.LINKED_DOC_V : opgeroepen aan het begin van een verkoop om gerelateerde aankopen te zien
- dbo.LINKED_DOC_A : opgeroepen aan het begin van een aankoop om gerelateerde verkopen te zien
Deze SQL-functies kunnen worden gewijzigd. Mercator zal ze nooit vervangen.
Idealiter zou deze read-only kolom moeten worden toegevoegd aan alle verkoopsequenties, omdat je hiermee het/de gekoppelde inkoopdocument(en) kunt zien, ongeacht de status van het document.
Op dezelfde manier kan de read-only kolom LIGNES_A.LINKED_V worden toegevoegd aan alle aankoopsequenties om de verkoopdocumenten te bekijken waaruit dit aankoopdocument afkomstig is.
Er bestaan ook symmetrische read-only kolommen:
- Op bestelling van leverancier : LIGNES_A.LINKED_V
- In klantofferte : LIGNES_V.LINKED_A
In de sequentie van klantbestellingen raden we ook aan om deze kolom van het volgende type toe te voegen :
- Source : find_fou_linked
- Width : 34
Deze kolom toont een knop om de leverancier te selecteren in de ARTFOU-gegevens die gekoppeld zijn aan het huidige artikel.
Om inkoopdocumenten te kunnen genereren vanuit een verkooporder, moet je de optie JOULINKEDA: Gekoppelde documenten: inkoopvolgorde invullen.
Om verkoopdocumenten van een leveranciersorder te genereren, moet de optie JOULINKEDV: Gekoppelde documenten: verkoopvolgorde worden ingevuld.
Opmerking voor ontwikkelaars :
Als u een van deze opties via code wilt wijzigen, moet u de waarde van de eigenschap billingEngine.LinkedDocJournal wijzigen. Deze eigenschap wordt altijd geïnitialiseerd wanneer de billingEngine wordt gemaakt met de waarde van de hierboven genoemde opties.
Hoe het werkt
De rest van de uitleg op deze pagina wordt gegeven voor inkoopdocumenten die worden gegenereerd vanuit de verkoop. Symmetrische bewerking vanuit de inkoop is ook beschikbaar.
De gebruiker codeert een klantbestelling. Voor bepaalde artikelen wil hij de "op bestelling" modus toepassen en daarom specificeert hij in ID_FOU_LINKED de leverancier bij wie hij deze artikelen gaat bestellen. In dezelfde bestelling :
- Je kunt items vinden met of zonder leverancier, zelfs als sommige items identiek zijn;
- kun je links maken naar verschillende leveranciers, zelfs voor identieke items.
Bij het opslaan plaatst Mercator een unieke identificatie in de kolom LINES_V.LINKED_A. Het begint met V omdat het uitgangspunt een verkooporder is. Mercator genereert dan zoveel voorbereidingen voor leveranciersbestellingen als er leveranciers zijn in de verkooporder. Op elke lijn van deze ordervoorbereidingen voor leveranciers wordt de unieke identificatie die eerder werd gegenereerd in de kolom LINES_A.LINKED_V geplaatst.
Deze unieke identificatiecode zal nooit veranderen gedurende de hele levensduur van de verkoop- en aankoopdocumenten.
Een op deze manier gegenereerde leverancierordervoorbereiding kan nooit worden gewijzigd. Om het te wijzigen, wijzig je gewoon de bijbehorende verkooporder. Als er nog wijzigingen nodig zijn, moeten deze worden doorgevoerd nadat de ordervoorbereiding is opgewaardeerd naar een hogere status.
Een ordervoorbereiding die op deze manier is geproduceerd, kan worden opgewaardeerd in status, maar kan nooit worden onderworpen aan backorderbeheer van het type "volledig document".
Zodra de ordervoorbereiding geheel of gedeeltelijk is opgewaardeerd naar een hogere status, kunnen de hoeveelheden van de gekoppelde verkooporder, voor de regels die aan deze ordervoorbereiding zijn gekoppeld, niet meer worden gewijzigd.
In de verkoopbestelling kan de hoeveelheid van een regel als gevolg van een backorder niet meer worden gewijzigd.
Daarna kunnen de transformatieprocessen voor zowel aankopen als verkopen hun normale verloop volgen. Met de bovengenoemde read-only kolommen kun je de koppelingen op elk gewenst moment bekijken. Dubbelklik op een niet-lege cel in deze kolom om
- het gekoppelde document direct openen, als het uniek is,
- een historiek venster weergeven met alle gekoppelde documenten, als er meer dan één bestaat.
Bij het aanvullen :
- Leveranciersorders en ordervoorbereidingen met LINKED_V niet leeg worden genegeerd.
- Als aanvulling rekening houdt met klantorders, negeert het lijnen waar LINKED_A niet leeg is.
Overdracht van commentaarregels
Mercator heeft deze opties, die de waarde JA/NEE kunnen aannemen:
- Gekoppelde documenten: commentaren van verkoop (id = LINKEDVCOM)
- Gekoppelde documenten: commentaren van aankoop (id = LINKEDACOM)
Hiermee kunnen de commentaarregels, die zich direct onder het artikel bevinden, worden overgebracht naar het tegengestelde document. Deze overdracht vindt alleen plaats als het tegengestelde document is aangemaakt. Er is dus geen update van de commentaren bij het wijzigen van het originele document.
Overdracht van voet velden
In de bestellingen sequenties is het mogelijk om een lijst met kolommen van de PIEDS_V/A-tabel en/of LIGNES_V/A-tabel te bepalen:
Deze lijsten worden gescheiden door een komma.
Ze maken het mogelijk dat de overeenkomstige waarden naar het tegenovergestelde document worden overgebracht.
Als de gebruiker niet voldoende rechten heeft om een document in de bestemming sequentie te maken/wijzigen, kan deze beperking worden opgeheven door een van de volgende opties op JA in te stellen:
- LINKV_IGND : Gekoppelde documenten: rechten op verkopen negeren
- LINKA_IGND : Gekoppelde documenten: rechten op aankopen negeren
Indien we het invoegen van de hoofdleverancier als gekoppelde leverancier (ID_FOU_LINKED) willen automatiseren, kan deze code in een AfterInsertItem worden geplaatst:
if ((billingEngine.Journal == "1Comm") && (e.StockRecord.S_... == "..."))
{
DataSet ds = Api.Zselect(MercatorUi.Globals.RepData, "select fou.f_id,fou.f_nom from ARTFOU inner join FOU on (artfou.id_fou=fou.f_id) where (id_art=@s_id) and (principal=1)", new MercatorSqlParam("@s_id", e.StockRecord.S_ID, SqlDbType.Char));
if ((ds != null) && (ds.Tables[0].Rows.Count > 0))
{
e.LignesVRecord.ID_FOU_LINKED = ds.Tables[0].Rows[0]["f_id"].ToString().TrimEnd();
e.DataRowLignes["NOM_FOU_LINKED"] = ds.Tables[0].Rows[0]["f_nom"].ToString().TrimEnd();
}
}
Als u de waarde van de hoeveelheid wilt wijzigen in het tegenovergestelde document, kunt u het evenement HandlingLinkedDocLine van de BillingEngine gebruiken. Dit kan eenvoudig worden uitgevoerd met een code zoals hieronder wordt weergegeven. Dit voorbeeld laat zien hoe de waarde in een optionele kolom van de documentregels van het oorspronkelijke document, Q_RESERVE, kan worden afgetrokken.
private void BillingEngine_HandlingLinkedDocLine(object sender, BillingEngine.HandlingLinkedDocLineEventArgs e)
{
e.LignesARecordOpposite.Q = e.LignesVRecordSource.Q - e.Q_auto_transf - e.LignesVRecordSource.Q_RESERVE;
}
Zie ook: De hoeveelheid in het gekoppelde document wijzigen
Het is mogelijk om deze koppeling achteraf te verwijderen. Een koppeling die is aangemaakt vanuit een verkoop, kan altijd worden verwijderd vanuit de verkoop, terwijl een koppeling die is aangemaakt vanuit een aankoop, kan worden verwijderd vanuit de aankoop. Dit verwijderen is beschikbaar via het contextmenu in het documentraster onder "Link naar aankoop/verkoop verwijderen".
Om deze functionaliteit in te schakelen, moet de gebruiker over het recht beschikken om deze koppeling te verwijderen. Dit kan worden ingesteld in het tabblad "Documenten" van het gebruikersprofiel.
- Initieel : het verwijderen van de koppeling kan alleen vanuit het oorspronkelijke document en heeft enkel invloed op de link naar de ordervoorbereiding (als het een verkoop betreft) of naar de offerte (bij een aankoop). De koppeling wordt verwijderd, maar het gekoppelde document blijft bestaan. De koppeling blijft echter bestaan in documenten die zijn omgezet naar een latere sequentie (aankopen of verkopen)
- Alle : de koppeling wordt verwijderd in alle verkoop- en aankoopdocumenten, van alle types. De koppelingen worden verwijderd, maar alle documenten blijven bestaan.
De verwijdering wordt uitgevoerd bij de volgende opslag.
Compatibiliteit met de automatische transformatie bij het opslaan van een document voor bepaalde hoeveelheden: de hoeveelheid die naar een latere sequentie wordt overgezet, Q_AUTO_TRANSF, wordt afgetrokken van de hoeveelheid in het tegenovergestelde document, maar alleen als het oorspronkelijke document een nieuw document is.
Bij een nieuw document gebeurt een overzetting naar een latere sequentie altijd zonder een koppeling naar het tegenovergestelde document te behouden. Bijvoorbeeld, in het geval van een bestelling van een klant, wordt de hoeveelheid die via Q_AUTO_TRANSF wordt overgezet, beschouwd als voorraadverbruik. Daardoor is het niet nodig om deze hoeveelheid bij de leverancier te bestellen. Deze verwijdering van de koppeling wordt uitgevoerd tijdens het bewaren, na de berekening van de backorders.
Te laden :
0000003181.zip (1 Kb - 13-10-2023)