Bonsoir,
Lorsque les devis crées dans Sage CRM, s'ils comportent des remises en ligne, celles-ci sont déversées en montant (630 F)
J'ai crée un trigger pour recalculer une info libre (Rem_CRM) et transformer le montant de la remise en valeur (30 pour 30%).
Lorsque j'essaye d'importer un devis, j'ai le message suivant : "Erreur de dépassement arithmétique pour le type de données smallint, valeur = 151163"
Je suis en SQL 2000 sp2
Voici mon trigger :
CREATE TRIGGER SELF_UPDATE_REM_CRM ON F_DOCLIGNE
AFTER INSERT
AS
BEGIN
DECLARE @DL_NO SMALLINT,
@DO_TYPE SMALLINT,
@DO_DOMAINE SMALLINT,
@DO_PIECE VARCHAR(9),
@DL_PU NUMERIC(24,6),
@DL_QTE NUMERIC(24,6),
@DL_REM_VAL NUMERIC(24,6),
@DL_REM_TYPE SMALLINT,
@REM_CRM NUMERIC(24,6)
SELECT @DL_NO=DL_NO, @DO_DOMAINE=DO_DOMAINE, @DO_TYPE=DO_TYPE FROM INSERTED
IF (@DO_DOMAINE <>0) AND (@DO_TYPE <>0)
RETURN
SELECT @DO_TYPE=DO_TYPE, @DO_PIECE=DO_PIECE FROM F_DOCLIGNE WHERE DL_NO=@DL_NO
SELECT @DL_PU=DL_PRIXUNITAIRE, @DL_QTE=DL_QTE, @DL_REM_VAL=DL_Remise01REM_Valeur,@DL_REM_TYPE=DL_Remise01REM_Type, @REM_CRM=Rem_CRM FROM F_DOCLIGNE
WHERE DO_PIECE=@DO_PIECE AND DO_TYPE=@DO_TYPE
IF (@DL_REM_VAL <>0) AND (@DL_REM_TYPE=0)
UPDATE F_DOCLIGNE SET @REM_CRM =((@DL_PU*@DL_QTE)/@DL_REM_VAL)*100 WHERE DO_PIECE=@DO_PIECE AND DO_TYPE=@DO_TYPE
END
Auriez vous une idée ???
D'avance merci


