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;