[[Category:TABLAS]]
== Descripción ==
Container del Detalle de Productos de Presupuestos. Se relaciona al resto de las tablas de registraciones de Presupuestos de la siguiente manera:
[[File:Esquema.Tablas.Presupuesto.jpg|200px]]

siendo los atributos de relación con el nivel superior con VidQuoteID, mientras que hacia el nivel inferior con VidQuoteID+VidQuoteItem+VidQuoteProdID

== Composición ==
[[#Triggers]]

== SQL ==
<pre>
delimiter $$

CREATE TABLE `vidquoten2` (
  `VidQuoteID` int(11) NOT NULL,
  `VidQuoteLPre` int(1) DEFAULT NULL,
  `VidQuoteItem` int(11) NOT NULL AUTO_INCREMENT,
  `VidQuotePredID` char(8) DEFAULT NULL,
  `VidQuoteProdID` char(8) DEFAULT NULL,
  `VidQuoteProdCantidad` int(5) DEFAULT NULL,
  `VidQuoteAncho` int(5) DEFAULT NULL,
  `VidQuoteAlto` int(5) DEFAULT NULL,
  `VidQuotePrecio` decimal(10,2) DEFAULT NULL,
  `VidQuoteDetalle` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`VidQuoteID`,`VidQuoteItem`)
) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=latin1$$

CREATE
DEFINER=`sas_admin`@`%`
TRIGGER `fzggestion`.`Actualiza_Item_Presupuesto`
BEFORE UPDATE ON `fzggestion`.`vidquoten2`
FOR EACH ROW
BEGIN
    -- --------------------------------------------------------
    -- Changes on Price, change previous other attributes
    -- --------------------------------------------------------
    IF OLD.VidQuotePrecio = NEW.VidQuotePrecio THEN
        SELECT VidQuoteCliente,VidQuoteACom INTO @Cliente,@AComercial FROM vidquoten1 WHERE vidquoten1.VidQuoteID = OLD.VidQuoteID;
        SELECT CoeficienteAC INTO @CoeficienteAC from acomerciales WHERE acomerciales.Abreviatura = @AComercial;
        SELECT CoeficienteAC,ListaPrecio INTO @CoeficienteCL,@Lista from clientes WHERE clientes.ClienteID = @Cliente;
        CASE
        WHEN NEW.VidQuoteProdID <> OLD.VidQuoteProdID THEN
            -- --------------------------------------------------------
            -- Changes on ProdID, change previous other attributes
            -- --------------------------------------------------------
            DELETE
                FROM vidquoten3
                WHERE
                    vidquoten3.VidQuoteID = OLD.VidQuoteID AND
                    vidquoten3.VidQuoteItem = OLD.VidQuoteItem;
            CALL AltaItemPresupuesto(
                OLD.VidQuoteID,
                @Lista,
                OLD.VidQuoteItem,
                NEW.VidQuoteProdID,
                NEW.VidQuoteProdCantidad,
                NEW.VidQuoteAncho,
                NEW.VidQuoteAlto,
                @CoeficienteCL*@CoeficienteAC);
        WHEN NEW.VidQuoteProdCantidad <> OLD.VidQuoteProdCantidad OR
             NEW.VidQuoteAncho <> OLD.VidQuoteAncho OR
             NEW.VidQuoteAlto <> OLD.VidQuoteAlto THEN
            -- --------------------------------------------------------
            -- Suppose Changes other attributes
            -- --------------------------------------------------------
            CALL ActualizaItemPresupuesto(
                OLD.VidQuoteID,
                OLD.VidQuoteItem,
                NEW.VidQuoteProdCantidad,
                NEW.VidQuoteAncho,
                NEW.VidQuoteAlto,
                @Lista,
                @CoeficienteCL*@CoeficienteAC);
        ELSE
                SET @fly = NULL;
        END CASE;
        SET NEW.VidQuotePrecio = 
            (SELECT SUM(VidQuotePrecioP) AS VidQuotePrecioP
            FROM
                vidquoten3
            WHERE
                vidquoten3.VidQuoteID = OLD.VidQuoteID AND
                vidquoten3.VidQuoteItem = OLD.VidQuoteItem
            GROUP BY
                VidQuoteID,VidQuoteItem);
    END IF;
END
$$
</pre>
== Triggers ==
<pre>
CREATE
DEFINER=`sas_admin`@`%`
TRIGGER `fzggestion`.`Baja_Item_Presupuesto`
AFTER DELETE ON `fzggestion`.`vidquoten2`
FOR EACH ROW
BEGIN
    DELETE FROM vidquoten3
    WHERE vidquoten3.VidQuoteID=OLD.VidQuoteID AND
	  vidquoten3.VidQuoteItem=OLD.VidQuoteItem;
  END
$$
</pre>
== Bitácora ==
== Uso ==
[[FORM:Presupuesto]]
== URL ==