SQL - Gescom 100 - Trigger F_DOCLIGNE - Mise à jour CMUP
Modérateurs: Super-Apogea, Super Modérateur
6 messages
|Page 1 sur 1
SQL - Gescom 100 - Trigger F_DOCLIGNE - Mise à jour CMUP
Hello
J’espère trouver un peu d'aide sur un épineux problème !!
Un client souhaiterais que dans les devis, le CMUP et la marge de la ligne sois calculé non pas à partir de mon dernier CMUP article, mais à partir du prix d'achat qui se trouve dans le tarif du fournisseur principal de l'article !!
Pour cela, j'ai créé une info libre PrixAchat et par un trigger SQL, je vais la remplir, bon ca ok.
Mais ensuite pas moyen de remplir ma zone CMUP et donc de forcer le calcul de ma marge !!
Hors je ne vois rien qui cloche dans mon trigger !!
Voila la chose :
Et malgré ca, ca ne marche pas !!
Je pensais le faire par un process qui tournerai apres que les documents soient fermé, mais mon client as besoin de l'info en direct lors de la saisie de son devis !!
J'en perds mon latin
J’espère trouver un peu d'aide sur un épineux problème !!
Un client souhaiterais que dans les devis, le CMUP et la marge de la ligne sois calculé non pas à partir de mon dernier CMUP article, mais à partir du prix d'achat qui se trouve dans le tarif du fournisseur principal de l'article !!
Pour cela, j'ai créé une info libre PrixAchat et par un trigger SQL, je vais la remplir, bon ca ok.
Mais ensuite pas moyen de remplir ma zone CMUP et donc de forcer le calcul de ma marge !!
Hors je ne vois rien qui cloche dans mon trigger !!
Voila la chose :
- Code: Tout sélectionner
USE [C_BIA_TEST]
GO
/****** Object: Trigger [dbo].[OD_TG_INS_DOCLIGNE] Script Date: 02/08/2013 17:11:32 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: David Docquoy
-- Create date: 24/05/2012
-- Description: recherche du prix d'achat de la fiche article pour le mettre dans les lignes de ventes
-- =============================================
ALTER TRIGGER [dbo].[OD_TG_INS_DOCLIGNE]
ON [dbo].[F_DOCLIGNE]
AFTER insert,update
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for trigger here
declare @ar_ref nvarchar(19);
declare @do_domaine int;
declare @do_type int;
declare @prix_achat numeric(24,6);
declare @dl_cmup numeric(24,6);
declare @dl_prixru numeric(24,6);
declare @cbmarq int;
declare @qte as numeric(24,6);
declare @old_qte as numeric(24,6);
declare @text as nvarchar(19)
declare @remise_achat numeric(24,6);
declare @gamme int;
declare @suivistock int;
declare @DL_PrixUnitaire numeric(24,6);
SELECT @do_domaine = do_domaine FROM INSERTED;
SELECT @do_type = do_type FROM INSERTED;
SELECT @ar_ref = ar_ref FROM INSERTED;
SELECT @cbmarq = cbmarq FROM INSERTED;
select @prix_achat = prix_achat from inserted;
select @dl_cmup = dl_cmup from inserted;
select @dl_prixru = dl_prixru from inserted;
select @gamme = ag_no1 from inserted
select @qte = dl_qte from inserted
select @DL_PrixUnitaire = DL_PrixUnitaire from inserted
if @ar_ref <> '' and @do_domaine = 0 and (@prix_achat = 0 or @prix_achat is null)
begin
-- on va le chercher dans le tarif du frs principal en gamme
if @gamme <> 0
begin
set @prix_achat = (SELECT F_TARIFGAM.TG_Prix FROM F_TARIFGAM INNER JOIN F_ARTFOURNISS ON F_TARIFGAM.TG_RefCF = F_ARTFOURNISS.CT_Num AND F_TARIFGAM.AR_Ref = F_ARTFOURNISS.AR_Ref WHERE (F_TARIFGAM.AR_Ref = @ar_ref) AND (F_TARIFGAM.AG_No1 = @gamme) AND (F_ARTFOURNISS.AF_Principal = 1));
end;
if @prix_achat = 0 or @prix_achat is null
begin
-- on va le chercher dans le tarif du frs principal
SET @prix_achat = (select AF_PrixAch from F_ARTFOURNISS where af_principal = 1 and AR_Ref = @AR_Ref);
if @prix_achat=0 or @prix_achat is null
begin
SET @prix_achat = (SELECT ar_prixAch from f_article where AR_Ref = @AR_Ref);
if @prix_achat = 0 or @prix_achat is null
begin
if @ar_ref <> '' set @prix_achat=0.01
end;
end;
end;
-- recherche de la remise sur achat
SET @remise_achat = (select AF_remise from F_ARTFOURNISS where af_principal = 1 and AR_Ref = @AR_Ref);
if @remise_achat <> 0
begin
set @prix_achat = @prix_achat * (1 - (@remise_achat/100))
end;
update f_docligne set prix_achat = @prix_achat,dl_cmup = NULLIF(@prix_achat,0),dl_prixru = NULLIF(@prix_achat,0) WHERE F_Docligne.cbMarq = @cbmarq;
end;
Et malgré ca, ca ne marche pas !!
Je pensais le faire par un process qui tournerai apres que les documents soient fermé, mais mon client as besoin de l'info en direct lors de la saisie de son devis !!
J'en perds mon latin
David Docquoy
Développeur Vb.Net
Développeur Vb.Net
- Contributeur
- Messages: 70
- Inscription: Ven 18 Jan 2013 23:38
Re: SQL - Gescom 100 - Trigger F_DOCLIGNE - Mise à jour CMUP
Bonjour,
Il n'y a pas de notion de CMUP dans SAGE (au niveau base ...) Le CMUP est forcé dans les documents avec F_artstock Montant du stock / F_artstock quantités en stock.
Tu peux agir sur la marge ... Mais pas sur le CMUP. Et c'est logique.
Pour ce qui est du trigger pour le calcul de la marge, tu aurais pu éviter toux ces efforts en allant dans fichier / a propos de / onglet commercial et prenant dernier prix d'achat (par exemple)
Cdlt
Il n'y a pas de notion de CMUP dans SAGE (au niveau base ...) Le CMUP est forcé dans les documents avec F_artstock Montant du stock / F_artstock quantités en stock.
Tu peux agir sur la marge ... Mais pas sur le CMUP. Et c'est logique.
Pour ce qui est du trigger pour le calcul de la marge, tu aurais pu éviter toux ces efforts en allant dans fichier / a propos de / onglet commercial et prenant dernier prix d'achat (par exemple)
Cdlt
IMPERIAL
Consultant Ligne 100 - INFOROPE
Le savoir c'est comme l'Amour. Si tu ne le partage pas, il devient inutile.
IMPERIAL
Consultant Ligne 100 - INFOROPE
Le savoir c'est comme l'Amour. Si tu ne le partage pas, il devient inutile.
IMPERIAL
Re: SQL - Gescom 100 - Trigger F_DOCLIGNE - Mise à jour CMUP
Je ne vois pas ou se trouve cette info dans le A propos ??
De plus, mon client souhaite que ce sois le prix d'achat du tarif fournisseur qui sois pris, comme cela, si il n'en as pas acheté depuis 1 an mais que le tarif FRS est à jour, le prix d'achat sera celui du tarif et non pas un prix vieux de 1 an.
De plus, mon client souhaite que ce sois le prix d'achat du tarif fournisseur qui sois pris, comme cela, si il n'en as pas acheté depuis 1 an mais que le tarif FRS est à jour, le prix d'achat sera celui du tarif et non pas un prix vieux de 1 an.
David Docquoy
Développeur Vb.Net
Développeur Vb.Net
- Contributeur
- Messages: 70
- Inscription: Ven 18 Jan 2013 23:38
Re: SQL - Gescom 100 - Trigger F_DOCLIGNE - Mise à jour CMUP
Bonjour,
Dans le Menu A Propos de / Commercial / Paramètres généraux il est possible de caluler la marge selon plusieurs possibilités : Prix de revient, CMUP, Dernier prix d'achat, prix d'achat et coût standard.
Si ces possibilités ne conviennent pas, vous pouvez en effet créer un trigger mais je ne modifierai pas le champ standard DL_CMUP qui sert entre autre à la valorisation du stock sur lequel, d'un point de vue légal, on ne peut s'amuser.
Je pencherais plutôt pour un champ libre supplémentaire Marge dans lequel vous mettriez le calcul de votre marge spécifique
Dans le Menu A Propos de / Commercial / Paramètres généraux il est possible de caluler la marge selon plusieurs possibilités : Prix de revient, CMUP, Dernier prix d'achat, prix d'achat et coût standard.
Si ces possibilités ne conviennent pas, vous pouvez en effet créer un trigger mais je ne modifierai pas le champ standard DL_CMUP qui sert entre autre à la valorisation du stock sur lequel, d'un point de vue légal, on ne peut s'amuser.
Je pencherais plutôt pour un champ libre supplémentaire Marge dans lequel vous mettriez le calcul de votre marge spécifique
- Posteur néophyte
- Messages: 3
- Inscription: Jeu 7 Fév 2013 19:06
Re: SQL - Gescom 100 - Trigger F_DOCLIGNE - Mise à jour CMUP
Bonjour,
Quelle version ???????????????
Option à partir de la V16
Cdlt
Quelle version ???????????????
Option à partir de la V16
Cdlt
IMPERIAL
Consultant Ligne 100 - INFOROPE
Le savoir c'est comme l'Amour. Si tu ne le partage pas, il devient inutile.
IMPERIAL
Consultant Ligne 100 - INFOROPE
Le savoir c'est comme l'Amour. Si tu ne le partage pas, il devient inutile.
IMPERIAL
Re: SQL - Gescom 100 - Trigger F_DOCLIGNE - Mise à jour CMUP
On est en v16.05 SQL.
Je retourne chez le client la semaine prochaine, je testerais cela.
Je retourne chez le client la semaine prochaine, je testerais cela.
David Docquoy
Développeur Vb.Net
Développeur Vb.Net
- Contributeur
- Messages: 70
- Inscription: Ven 18 Jan 2013 23:38
6 messages
|Page 1 sur 1
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité