Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #3  
Antiguo 20-03-2016
subzero subzero is offline
No confirmado
 
Registrado: ene 2004
Ubicación: Móntería - Córdoba - Colombia
Posts: 289
Poder: 0
subzero Va por buen camino
Gracias, casimiro y si tienes razón olvide algunos detalles.. el trigger se encuentra en el before insert, pués realmente no he podido colocarlo en el after insert, pués me muestra error de que NEW no es permitido... el código es el siguiente.

Código SQL [-]
BEGIN
  IF NEW.UNIDAD = 'UND' THEN  SET NEW.TOTAL_UM = NEW.CONVERSION * NEW.CANTIDAD; END IF;
    IF NEW.UNIDAD = 'UM' THEN  SET NEW.TOTAL_UM = NEW.CANTIDAD; END IF;
  
  SET NEW.COSTO_SUBTOTAL = CAST(ROUND(NEW.COSTO * NEW.CANTIDAD) AS DECIMAL(18,4));
    SET NEW.COSTO_IVA = CAST((ROUND((NEW.COSTO * (NEW.PCJ_IVA/100))) * NEW.CANTIDAD) AS DECIMAL(18,4));
    SET NEW.COSTO_DTO1 = CAST(ROUND(CAST(CAST((NEW.COSTO * (NEW.PCJ_DTO1/100)) AS DECIMAL(18,4)) * NEW.CANTIDAD AS DECIMAL(18,4))  )AS DECIMAL(18,4));  
    SET NEW.COSTO_DTO2 = CAST(ROUND(CAST( CAST(((NEW.COSTO - CAST((NEW.COSTO * (NEW.PCJ_DTO1/100)) AS DECIMAL(18,4)))* CAST((NEW.PCJ_DTO2/100) AS DECIMAL(18,4))) AS DECIMAL(18,4)) * NEW.CANTIDAD AS DECIMAL(18,4))) AS DECIMAL(18,4));
    SET NEW.COSTO_DTO3 = CAST(ROUND(CAST( CAST(((NEW.COSTO - CAST((NEW.COSTO * (NEW.PCJ_DTO1/100)) AS DECIMAL(18,4))-((NEW.COSTO - CAST((NEW.COSTO * (NEW.PCJ_DTO1/100)) AS DECIMAL(18,4)))* CAST((NEW.PCJ_DTO2/100) AS DECIMAL(18,4)))) * CAST((NEW.PCJ_DTO3/100) AS DECIMAL(18,4))) AS DECIMAL(18,4)) * NEW.CANTIDAD AS DECIMAL(18,4))) AS DECIMAL(18,4));
    SET NEW.COSTO_TOTAL = CAST((NEW.COSTO_SUBTOTAL + NEW.COSTO_IVA - NEW.COSTO_DTO1 - NEW.COSTO_DTO2 - NEW.COSTO_DTO3) AS DECIMAL(18,4));
  
  SET NEW.PRECIO_SUBTOTAL = CAST(ROUND(NEW.PRECIO * NEW.CANTIDAD) AS DECIMAL(18,4));
    SET NEW.PRECIO_IVA = CAST((ROUND((NEW.PRECIO * (NEW.PCJ_IVA/100))) * NEW.CANTIDAD) AS DECIMAL(18,4));
    SET NEW.PRECIO_DTO1 = CAST(ROUND(CAST(CAST((NEW.PRECIO * (NEW.PCJ_DTO1/100)) AS DECIMAL(18,4)) * NEW.CANTIDAD AS DECIMAL(18,4))  )AS DECIMAL(18,4));
    SET NEW.PRECIO_DTO2 = CAST(ROUND(CAST( CAST(((NEW.PRECIO - CAST((NEW.PRECIO * (NEW.PCJ_DTO1/100)) AS DECIMAL(18,4)))* CAST((NEW.PCJ_DTO2/100) AS DECIMAL(18,4))) AS DECIMAL(18,4)) * NEW.CANTIDAD AS DECIMAL(18,4))) AS DECIMAL(18,4));
    SET NEW.PRECIO_DTO3 = CAST(ROUND(CAST( CAST(((NEW.PRECIO - CAST((NEW.PRECIO * (NEW.PCJ_DTO1/100)) AS DECIMAL(18,4))-((NEW.PRECIO - CAST((NEW.PRECIO * (NEW.PCJ_DTO1/100)) AS DECIMAL(18,4)))* CAST((NEW.PCJ_DTO2/100) AS DECIMAL(18,4)))) * CAST((NEW.PCJ_DTO3/100) AS DECIMAL(18,4))) AS DECIMAL(18,4)) * NEW.CANTIDAD AS DECIMAL(18,4))) AS DECIMAL(18,4));
    SET NEW.PRECIO_TOTAL = CAST((NEW.PRECIO_SUBTOTAL + NEW.PRECIO_IVA - NEW.PRECIO_DTO1 - NEW.PRECIO_DTO2 - NEW.PRECIO_DTO3) AS DECIMAL(18,4));
END

Como pueden observar se encarga de realizar algunos cálculos e incrustarlo en el campo correspondiente... quizás sea algo que no tengo en cuenta puesto que soy nuevo en MYSQL... Gracias.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Trigger Update or insert amerika111 MS SQL Server 0 03-08-2011 21:18:52
problema con trigger after insert auribe Conexión con bases de datos 2 18-05-2011 16:51:16
Se ejecuta el insert al cerrar la aplicacion Dens SQL 5 31-08-2010 02:23:30
No ejecuta Trigger en Firebird Coco Firebird e Interbase 5 09-01-2007 17:43:48
Select no se ejecuta sobre el mimos registro... Alfredo Conexión con bases de datos 2 08-03-2005 14:49:42


La franja horaria es GMT +2. Ahora son las 12:19:48.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi