SE REQUIERE DE PODER SEPARA POR CLASE DE MUESTRA  DE MP (EX.PA) PT, IM, ME, Y QUE SE CREEN VARIAS LISTAS DE DISTRIBUCIÓN PARA PQUE SEA MAS DINAMICO.


TANTO PARA CNFIRMACION DE MUESTRAS

CIERRE DE ORDENES


SE MODIFICARON LAS LISTAS DE DISTRIBUCION



QUEDANO EL CODIGO DE LOS TRIGGERS DE LA SIGIENTE MANERA

- CONFIRMACION DE MUESTRA:


create or replace TRIGGER XIPCONFIRMACION_MUESTRA

AFTER  UPDATE

 OF STATUS

ON IPFUENTESTOCK

REFERENCING OLD AS OLD NEW AS NEW

FOR EACH ROW


DECLARE


VSITUACION VARCHAR2(10);

ARTICULO VARCHAR2(100);

V_TIPO NUMBER;

MSG VARCHAR2(4000);

DESCRIPCION VARCHAR2(100);

CADUCIDAD VARCHAR2(20);

FABRICACION VARCHAR2(20);

PRESENTACION VARCHAR2(5);

CLIENTE VARCHAR2(100);

L_MAILS VARCHAR(2000);

CC_MAILS VARCHAR(2000);


BEGIN

    VSITUACION :=NULL;

    ARTICULO := :NEW.CODART;



    SELECT COUNT(*) INTO V_TIPO FROM IPCLASEARTIC 

    WHERE CODART = ARTICULO AND CODCLASIF = 'TIPO' AND CODCLASE IN ('EX', 'PA','PT');


    IF :OLD.STATUS = 100 AND :NEW.STATUS=11000 AND V_TIPO > 0  AND SUBSTR(:NEW.BULTO,0,2) IN ('EX', 'PA') THEN

           VSITUACION := '1';

      

      END IF;

    

    IF :OLD.STATUS = 100 AND :NEW.STATUS=11000 AND SUBSTR(:NEW.BULTO,0,2)='IM' THEN

           VSITUACION := '2';

      

      END IF;

    

    IF :OLD.STATUS = 100 AND :NEW.STATUS=11000 AND SUBSTR(:NEW.BULTO,0,2)='TZ' THEN

           VSITUACION := '3';

      

      END IF;

    

    IF :OLD.STATUS = 100 AND :NEW.STATUS=11000 AND V_TIPO > 0  AND SUBSTR(:NEW.BULTO,0,2) IN ('PT') THEN

           VSITUACION := '4';

      

      END IF;

    


    IF VSITUACION IS NULL THEN RETURN; END IF;


    IF VSITUACION = '1'   THEN

    SELECT DESART INTO DESCRIPCION FROM IPARTIC WHERE CODART = :NEW.CODART;

    SELECT DESCLI INTO CLIENTE FROM IPDIRECCIONES WHERE CODCLI = :NEW.INFOCLIEXTRA;

    SELECT DECODE(CADUCI, NULL, '-',TO_CHAR(TO_DATE(CADUCI, 'YYYYMMDD'), 'DD-MM-YYYY'))

     INTO CADUCIDAD FROM IPLOTES WHERE CODART = :NEW.CODART AND CODLOT = :NEW.CODLOT;

  SELECT 

     CLAS.DESCLASE INTO FABRICACION FROM IPCLASEARTIC ART, IPCLASES CLAS WHERE ART.OBJCLASIF=CLAS.OBJCLASIF 

AND ART.CODCLASIF=CLAS.CODCLASIF AND CLAS.OBJCLASIF='ARTICULOS' AND CLAS.CODCLASIF='TIPO' AND ART.CODCLASE=CLAS.CODCLASE AND ART.CODART= :NEW.CODART;

    

    SELECT CORREOS INTO L_MAILS FROM XIPLISTADISTRIBUCION WHERE LISTADISTRIBU='CONFIRMACION MUESTRAS MP' AND CODCLIENTE=:NEW.INFOCLIEXTRA;

    SELECT CC INTO CC_MAILS FROM XIPLISTADISTRIBUCION WHERE LISTADISTRIBU='CONFIRMACION MUESTRAS MP' AND CODCLIENTE=:NEW.INFOCLIEXTRA;    

    

  MSG := '<html>Buen dia, <br><br> Informo que al laboratorio de control llegó la siguiente muestra <br><br><b>MATERIAS PRIMAS </b>

   <br><table border="1"> <tr><td>Tipo de Recurso: </td><td>'||FABRICACION|| '</td></tr><tr><td>Articulo:</td><td> '|| :NEW.CODART || '-' || DESCRIPCION || '</td></tr><tr><td>Lote:</td><td>' || :NEW.CODLOT || '</td></tr><td>Fecha vencimiento: </td><td>'||CADUCIDAD|| '</td></tr><tr><td>Cantidad: </td><td>'||:NEW.CANTIDADHOST|| ' '||:NEW.UNIDADESHOST|| '</td></tr><td>Cliente: </td><td>'||CLIENTE || '</td></tr></table><br> Cordial saludo.<p>

        Feliz día.

    </p>

    <a href="https://colompack.co/"><img src="https://i.ibb.co/j4C9b9R/logo-colompack-removebg-preview.png" alt="logo-colompack-removebg-preview" border="0"></a>

    </html>';

 INSERT INTO IPMSGSMTP (MSGID, SERVIDOR, DE, PARA,CC, ASUNTO, MSG, CODOPEMODIF, FECMODIF, HORAMODIF, STATUS) VALUES

    (IPSECMSGSMTP.NEXTVAL,'smtp.office365.com:587:SSL', 'lims@colompack.com',L_MAILS,CC_MAILS, 'CONFIRMACION DE MUESTRA - QC:'|| :NEW.BULTO || ' LOTE: '|| :NEW.CODLOT, MSG, 'NOTIFICACIONES', FECHASYS, HORASYS,100);

    

  END IF;

  

    IF VSITUACION = '2'   THEN

    SELECT DESART INTO DESCRIPCION FROM IPARTIC WHERE CODART = :NEW.CODART;

    SELECT DESCLI INTO CLIENTE FROM IPDIRECCIONES WHERE CODCLI = :NEW.INFOCLIEXTRA;

    SELECT DECODE(CADUCI, NULL, '-',TO_CHAR(TO_DATE(CADUCI, 'YYYYMMDD'), 'DD-MM-YYYY'))

     INTO CADUCIDAD FROM IPLOTES WHERE CODART = :NEW.CODART AND CODLOT = :NEW.CODLOT;

  SELECT 

     CLAS.DESCLASE INTO FABRICACION FROM IPCLASEARTIC ART, IPCLASES CLAS WHERE ART.OBJCLASIF=CLAS.OBJCLASIF 

AND ART.CODCLASIF=CLAS.CODCLASIF AND CLAS.OBJCLASIF='ARTICULOS' AND CLAS.CODCLASIF='TIPO' AND ART.CODCLASE=CLAS.CODCLASE AND ART.CODART= :NEW.CODART;

    

    SELECT CORREOS INTO L_MAILS FROM XIPLISTADISTRIBUCION WHERE LISTADISTRIBU='CONFIRMACION MUESTRAS' AND CODCLIENTE=:NEW.INFOCLIEXTRA;

    SELECT CC INTO CC_MAILS FROM XIPLISTADISTRIBUCION WHERE LISTADISTRIBU='CONFIRMACION MUESTRAS' AND CODCLIENTE=:NEW.INFOCLIEXTRA;    

        

  MSG := '<html>Buen dia, <br><br> Informo que al laboratorio de control llegó la siguiente muestra <br><br><b>INDICE DE MEZCLA </b>

   <br><table border="1"> <tr><td>Tipo de Recurso: </td><td>INDICE DE MEZCLA</td></tr><tr><td>Articulo:</td><td> '|| :NEW.CODART || '-' || DESCRIPCION || '</td></tr><tr><td>Lote:</td><td>' || :NEW.CODLOT || '</td></tr><td>Fecha vencimiento: </td><td>'||CADUCIDAD|| '</td></tr><tr><td>Cantidad: </td><td>'||:NEW.CANTIDADHOST|| ' g</td></tr><td>Cliente: </td><td>'||CLIENTE || '</td></tr></table><br> Cordial saludo.<p>

        Feliz día.

    </p>

    <a href="https://colompack.co/"><img src="https://i.ibb.co/j4C9b9R/logo-colompack-removebg-preview.png" alt="logo-colompack-removebg-preview" border="0"></a>

    </html>';

 INSERT INTO IPMSGSMTP (MSGID, SERVIDOR, DE, PARA,CC, ASUNTO, MSG, CODOPEMODIF, FECMODIF, HORAMODIF, STATUS) VALUES

    (IPSECMSGSMTP.NEXTVAL,'smtp.office365.com:587:SSL', 'lims@colompack.com',L_MAILS,CC_MAILS, 'CONFIRMACION DE MUESTRA - QC:'|| :NEW.BULTO || ' LOTE: '|| :NEW.CODLOT, MSG, 'NOTIFICACIONES', FECHASYS, HORASYS,100);

    

  END IF;  

  

    IF VSITUACION = '3'   THEN

    SELECT VALOR INTO DESCRIPCION FROM IPLLOTESDATOSCOMP WHERE DESCRIPCION='DATOS TRAZAS' AND PROPIEDAD='Muestra' AND CODART = :NEW.CODART AND CODLOT = :NEW.CODLOT AND ORIGEN= :NEW.INFOCLIEXTRA;

    SELECT DESCLI INTO CLIENTE FROM IPDIRECCIONES WHERE CODCLI = :NEW.INFOCLIEXTRA;

    SELECT DECODE(CADUCI, NULL, '-',TO_CHAR(TO_DATE(CADUCI, 'YYYYMMDD'), 'DD-MM-YYYY'))

     INTO CADUCIDAD FROM IPLOTES WHERE CODART = :NEW.CODART AND CODLOT = :NEW.CODLOT;

  SELECT 

     CLAS.DESCLASE INTO FABRICACION FROM IPCLASEARTIC ART, IPCLASES CLAS WHERE ART.OBJCLASIF=CLAS.OBJCLASIF 

AND ART.CODCLASIF=CLAS.CODCLASIF AND CLAS.OBJCLASIF='ARTICULOS' AND CLAS.CODCLASIF='TIPO' AND ART.CODCLASE=CLAS.CODCLASE AND ART.CODART= :NEW.CODART;

    

  MSG := '<html>Buen dia, <br><br> Informo que al laboratorio de control llegó la siguiente muestra <br><br><b>TRAZAS </b>

   <br><table border="1"> <tr><td>Tipo de Recurso: </td><td>TRAZAS</td></tr><tr><td>Articulo:</td><td> '|| :NEW.CODART || '-' || DESCRIPCION || '</td></tr><tr><td>Lote:</td><td>' || :NEW.CODLOT || '</td></tr><td>Fecha vencimiento: </td><td>'||CADUCIDAD|| '</td></tr><tr><td>Cantidad: </td><td>'||:NEW.CANTIDADHOST|| ' '||:NEW.UNIDADESHOST|| '</td></tr><td>Cliente: </td><td>'||CLIENTE || '</td></tr></table><br> Cordial saludo.<p>

        Feliz día.

    </p>

    <a href="https://colompack.co/"><img src="https://i.ibb.co/j4C9b9R/logo-colompack-removebg-preview.png" alt="logo-colompack-removebg-preview" border="0"></a>

    </html>';

 INSERT INTO IPMSGSMTP (MSGID, SERVIDOR, DE, PARA,CC, ASUNTO, MSG, CODOPEMODIF, FECMODIF, HORAMODIF, STATUS) VALUES

    (IPSECMSGSMTP.NEXTVAL,'smtp.office365.com:587:SSL', 'lims@colompack.com',L_MAILS,CC_MAILS, 'CONFIRMACION DE MUESTRA - QC:'|| :NEW.BULTO || ' LOTE: '|| :NEW.CODLOT, MSG, 'NOTIFICACIONES', FECHASYS, HORASYS,100);

    

  END IF;  

  

    IF VSITUACION = '4'   THEN

    SELECT DESART INTO DESCRIPCION FROM IPARTIC WHERE CODART = :NEW.CODART;

    SELECT DESCLI INTO CLIENTE FROM IPDIRECCIONES WHERE CODCLI = :NEW.INFOCLIEXTRA;

    SELECT DECODE(CADUCI, NULL, '-',TO_CHAR(TO_DATE(CADUCI, 'YYYYMMDD'), 'DD-MM-YYYY'))

     INTO CADUCIDAD FROM IPLOTES WHERE CODART = :NEW.CODART AND CODLOT = :NEW.CODLOT;

  SELECT 

     CLAS.DESCLASE INTO FABRICACION FROM IPCLASEARTIC ART, IPCLASES CLAS WHERE ART.OBJCLASIF=CLAS.OBJCLASIF 

AND ART.CODCLASIF=CLAS.CODCLASIF AND CLAS.OBJCLASIF='ARTICULOS' AND CLAS.CODCLASIF='TIPO' AND ART.CODCLASE=CLAS.CODCLASE AND ART.CODART= :NEW.CODART;

    

    SELECT CORREOS INTO L_MAILS FROM XIPLISTADISTRIBUCION WHERE LISTADISTRIBU='CONFIRMACION MUESTRAS PT' AND CODCLIENTE=:NEW.INFOCLIEXTRA;

    SELECT CC INTO CC_MAILS FROM XIPLISTADISTRIBUCION WHERE LISTADISTRIBU='CONFIRMACION MUESTRAS PT' AND CODCLIENTE=:NEW.INFOCLIEXTRA;    

    

  MSG := '<html>Buen dia, <br><br> Informo que al laboratorio de control llegó la siguiente muestra <br><br><b>PRODUCTO TERMINADO </b>

   <br><table border="1"> <tr><td>Tipo de Recurso: </td><td>'||FABRICACION|| '</td></tr><tr><td>Articulo:</td><td> '|| :NEW.CODART || '-' || DESCRIPCION || '</td></tr><tr><td>Lote:</td><td>' || :NEW.CODLOT || '</td></tr><td>Fecha vencimiento: </td><td>'||CADUCIDAD|| '</td></tr><tr><td>Cantidad: </td><td>'||:NEW.CANTIDADHOST|| ' '||:NEW.UNIDADESHOST|| '</td></tr><td>Cliente: </td><td>'||CLIENTE || '</td></tr></table><br> Cordial saludo.<p>

        Feliz día.

    </p>

    <a href="https://colompack.co/"><img src="https://i.ibb.co/j4C9b9R/logo-colompack-removebg-preview.png" alt="logo-colompack-removebg-preview" border="0"></a>

    </html>';

 INSERT INTO IPMSGSMTP (MSGID, SERVIDOR, DE, PARA,CC, ASUNTO, MSG, CODOPEMODIF, FECMODIF, HORAMODIF, STATUS) VALUES

    (IPSECMSGSMTP.NEXTVAL,'smtp.office365.com:587:SSL', 'lims@colompack.com',L_MAILS,CC_MAILS, 'CONFIRMACION DE MUESTRA - QC:'|| :NEW.BULTO || ' LOTE: '|| :NEW.CODLOT, MSG, 'NOTIFICACIONES', FECHASYS, HORASYS,100);

    

  END IF;

 

  


END;



================= PARA EL CIERRE DE OIRDENES

create or replace TRIGGER XIPCIERRE_ORDEN

AFTER  UPDATE

 OF STATUS

ON IPLPETICION

REFERENCING OLD AS OLD NEW AS NEW

FOR EACH ROW


DECLARE


VSITUACION VARCHAR2(1);

ORDEN VARCHAR2(10);

V_TIPO NUMBER;

MSG VARCHAR2(2000);

DESCRIPCION VARCHAR2(500);

CLIENTE VARCHAR2(100);

QC VARCHAR2(20);

ART VARCHAR2(200);

ADJ VARCHAR2(200);

L_MAILS VARCHAR(2000);

CC_MAILS VARCHAR(2000);


BEGIN

    VSITUACION :=NULL;

    ORDEN := :NEW.CODPETICION;

    ART := :NEW.CODESPECIFICACION;

   SELECT BULTO INTO QC FROM IPLPETBULTOSMUE WHERE CODPETICION = ORDEN;


    

    IF :OLD.STATUS = 200 AND :NEW.STATUS=400 AND :NEW.CODCLASEFAMILIA IN ('PA', 'EX') THEN

           VSITUACION := '1';

      

      END IF;

    

    IF :OLD.STATUS = 200 AND :NEW.STATUS=400 AND :NEW.CODCLASEFAMILIA IN ('PT') AND SUBSTR(QC,0,2)<>'IM' THEN

           VSITUACION := '2';

      

      END IF;

    

    IF :OLD.STATUS = 200 AND :NEW.STATUS=400 AND :NEW.CODCLASEFAMILIA IN ('PT') AND SUBSTR(QC,0,2)='IM' THEN

         VSITUACION := '3';


    END IF;


    IF VSITUACION IS NULL THEN RETURN; END IF;


    IF VSITUACION = '1' THEN

    

   

   SELECT BULTO INTO QC FROM IPLPETBULTOSMUE WHERE CODPETICION = ORDEN;

    SELECT DESART INTO DESCRIPCION FROM IPARTIC WHERE CODART = ART;

    SELECT DESCLI INTO CLIENTE FROM IPDIRECCIONES WHERE CODCLI = :NEW.CODORIGEN;

    SELECT CORREOS INTO L_MAILS FROM XIPLISTADISTRIBUCION WHERE LISTADISTRIBU='ORDENES MP' AND CODCLIENTE=:NEW.CODORIGEN;


    SELECT CC INTO CC_MAILS FROM XIPLISTADISTRIBUCION WHERE LISTADISTRIBU='ORDENES MP' AND CODCLIENTE=:NEW.CODORIGEN;    

    MSG := 

'<html>


<body>

    <!--Plantilla Finalización de Ordenes-->

    <p>

        Buen día.

    </p>

    <p>

        Adjunto Certificado de Materia Prima:

    </p>

    <table border="1">

        <tr>

            <td>Articulo:</td>

            <td>'||DESCRIPCION||'</td>

        </tr>

        <tr>

            <td>Lote:</td>

            <td>'||:NEW.CODLOTFAB||'</td>

        </tr>

        <tr>

            <td>QC:</td>

            <td>'||QC||'</td>

        </tr>

        <tr>

            <td>Cliente</td>

            <td>'||CLIENTE||'</td>

        </tr>


    </table>

    <br>

    <a href="http://129.146.220.19:8080/consolidado/agrupado.php?qc='||QC||'&orden='||ORDEN||'">VER CERTIFICADO</a>

    <br>

    <p>

        Quedamos atentos a cualquier inquietud.

    </p>

    <p>

        Feliz día. 

    </p>

    

    <a href="https://colompack.co/"><img src="https://i.ibb.co/j4C9b9R/logo-colompack-removebg-preview.png" alt="logo-colompack-removebg-preview" border="0"></a>

    

    


</body>

</html>';

 INSERT INTO IPMSGSMTP (MSGID, SERVIDOR, DE, PARA,CC, ASUNTO, MSG, CODOPEMODIF, FECMODIF, HORAMODIF, STATUS) VALUES

    (IPSECMSGSMTP.NEXTVAL,'smtp.office365.com:587:SSL', 'lims@colompack.com',L_MAILS,CC_MAILS, 'CIERRE DE ORDEN DE MATERIA PRIMA QC: '|| QC || ' LOTE: '|| :NEW.CODLOTFAB, MSG, 'NOTIFICACIONES', FECHASYS, HORASYS,100);

    

  END IF;

  

  IF VSITUACION = '2' THEN

    

   

   SELECT BULTO INTO QC FROM IPLPETBULTOSMUE WHERE CODPETICION = ORDEN;

    SELECT DESART INTO DESCRIPCION FROM IPARTIC WHERE CODART = ART;

    SELECT DESCLI INTO CLIENTE FROM IPDIRECCIONES WHERE CODCLI = :NEW.CODORIGEN;

    SELECT CORREOS INTO L_MAILS FROM XIPLISTADISTRIBUCION WHERE LISTADISTRIBU='ORDENES PT' AND CODCLIENTE=:NEW.CODORIGEN;


    SELECT CC INTO CC_MAILS FROM XIPLISTADISTRIBUCION WHERE LISTADISTRIBU='ORDENES PT' AND CODCLIENTE=:NEW.CODORIGEN;    

    MSG := 

'<html>


<body>

    <!--Plantilla Finalización de Ordenes-->

    <p>

        Buen día.

    </p>

    <p>

        Adjunto Certificado de Producto Terminado :

    </p>

    <table border="1">

        <tr>

            <td>Articulo:</td>

            <td>'||DESCRIPCION||'</td>

        </tr>

        <tr>

            <td>Lote:</td>

            <td>'||:NEW.CODLOTFAB||'</td>

        </tr>

        <tr>

            <td>QC:</td>

            <td>'||QC||'</td>

        </tr>

        <tr>

            <td>Cliente</td>

            <td>'||CLIENTE||'</td>

        </tr>


    </table>

    <p>

        Quedamos atentos a cualquier inquietud.

    </p>

    <p>

        Feliz día. 

    </p>

    <a href="http://129.146.220.19:8080/consolidado/consolidado.php?qc='||QC||'">VER CERTIFICADO</a>

    <a href="https://colompack.co/"><img src="https://i.ibb.co/j4C9b9R/logo-colompack-removebg-preview.png" alt="logo-colompack-removebg-preview" border="0"></a>

    

    


</body>

</html>';

 INSERT INTO IPMSGSMTP (MSGID, SERVIDOR, DE, PARA,CC, ASUNTO, MSG, CODOPEMODIF, FECMODIF, HORAMODIF, STATUS) VALUES

    (IPSECMSGSMTP.NEXTVAL,'smtp.office365.com:587:SSL', 'lims@colompack.com',L_MAILS,CC_MAILS, 'CIERRE DE ORDEN DE PRODUCTO TERMINADO QC: '|| QC || ' LOTE: '|| :NEW.CODLOTFAB, MSG, 'NOTIFICACIONES', FECHASYS, HORASYS,100);

    

  END IF;


IF VSITUACION = '3' THEN

    

   

   SELECT BULTO INTO QC FROM IPLPETBULTOSMUE WHERE CODPETICION = ORDEN;

    SELECT DESART INTO DESCRIPCION FROM IPARTIC WHERE CODART = ART;

    SELECT DESCLI INTO CLIENTE FROM IPDIRECCIONES WHERE CODCLI = :NEW.CODORIGEN;

    SELECT CORREOS INTO L_MAILS FROM XIPLISTADISTRIBUCION WHERE LISTADISTRIBU='ORDENES IM' AND CODCLIENTE=:NEW.CODORIGEN;


    SELECT CC INTO CC_MAILS FROM XIPLISTADISTRIBUCION WHERE LISTADISTRIBU='ORDENES IM' AND CODCLIENTE=:NEW.CODORIGEN;

    MSG := 

'<html>


<body>

    <!--Plantilla Finalización de Ordenes-->

    <p>

        Buen día.

    </p>

    <p>

        Adjunto Certificado de Indice de Mezcla:

    </p>

    <table border="1">

        <tr>

            <td>Articulo:</td>

            <td>'||DESCRIPCION||'</td>

        </tr>

        <tr>

            <td>Lote:</td>

            <td>'||:NEW.CODLOTFAB||'</td>

        </tr>

        <tr>

            <td>QC:</td>

            <td>'||QC||'</td>

        </tr>

        <tr>

            <td>Cliente</td>

            <td>'||CLIENTE||'</td>

        </tr>


    </table>

    <p>

        Quedamos atentos a cualquier inquietud.

    </p>

    <p>

        Feliz día. 

    </p>

    <a href="http://129.146.220.19:8080/consolidado/consolidado.php?qc='||QC||'">VER CERTIFICADO</a>

    <a href="https://colompack.co/"><img src="https://i.ibb.co/j4C9b9R/logo-colompack-removebg-preview.png" alt="logo-colompack-removebg-preview" border="0"></a>

    

    


</body>

</html>';

 INSERT INTO IPMSGSMTP (MSGID, SERVIDOR, DE, PARA,CC, ASUNTO, MSG, CODOPEMODIF, FECMODIF, HORAMODIF, STATUS) VALUES

    (IPSECMSGSMTP.NEXTVAL,'smtp.office365.com:587:SSL', 'lims@colompack.com',L_MAILS,CC_MAILS, 'CIERRE DE ORDEN DE INDICE DE MEZCLA QC: '|| QC || ' LOTE: '|| :NEW.CODLOTFAB, MSG, 'NOTIFICACIONES', FECHASYS, HORASYS,100);

    

  END IF;  

 


END;