Advertisement
Guest User

Asignador de lotes - Acuacar

a guest
Sep 25th, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ----- Consulta de trabajos asignados
  2.  
  3. SELECT to_char(c.fecha, 'yyyy/MM/dd hh24:mi') as fecha,  c.trabajo, c.tipotrabajo, tt.nombre as nomtipotrab, c.periodo, c.zona, c.lote, c.recorrido, c.cliente as codcli,
  4.   c.solicitante as nomcli,c.direccion,coalesce(c.barrio,'Ninguno') as barrio,c.municipio, m.nombre as nommunip, c.latitud, c.longitud,tr.recurso,tr.contratista,c.proceso,c.inicioruta,
  5.   COALESCE (r.nombre ||' ['||r.recurso||']', 'NINGUNO') as rec,  COALESCE (con.nombre ||' ['||con.contratista||']', 'NINGUNO') as cont
  6. FROM "Trabajos" c
  7.   JOIN "TiposTrabajos" tt using (tipotrabajo)
  8.   LEFT JOIN "Municipios" m ON (m.municipio =c.municipio)
  9.   LEFT OUTER JOIN "TRecursos" tr ON (c.trabajo = tr.trabajo and c.tipotrabajo = tr.tipotrabajo)
  10.   LEFT OUTER JOIN "Recursos" r ON (r.recurso = tr.recurso and r.contratista = tr.contratista)
  11.   LEFT OUTER JOIN "Contratistas" con ON ( r.contratista = con.contratista)
  12. WHERE c.proceso = '100'  AND (c.fechaentrega BETWEEN (localtimestamp - '30 days'::interval)::date AND localtimestamp::date OR c.fechaentrega IS NULL)
  13.       and tr.recurso is not null
  14. order by coalesce(c.recorrido,'0')::numeric asc;
  15.  
  16. ----- Consulta de trabajos no asignados
  17.  
  18. SELECT to_char(c.fecha, 'yyyy/MM/dd hh24:mi') as fecha,  c.trabajo, c.tipotrabajo, tt.nombre as nomtipotrab, c.periodo, c.zona, c.lote, c.recorrido,
  19.   c.cliente as codcli, c.solicitante as nomcli,c.direccion,coalesce(c.barrio,'Ninguno') as barrio,c.municipio, m.nombre as nommunip, c.latitud,
  20.   c.longitud,tr.recurso,tr.contratista,c.proceso,c.inicioruta, COALESCE (r.nombre ||' ['||r.recurso||']', 'NINGUNO') as rec,  COALESCE (con.nombre ||' ['||con.contratista||']', 'NINGUNO')
  21.   as cont
  22. FROM "Trabajos" c
  23.   JOIN "TiposTrabajos" tt using (tipotrabajo)
  24.   LEFT JOIN "Municipios" m ON (m.municipio =c.municipio)
  25.   LEFT OUTER JOIN "TRecursos" tr ON (c.trabajo = tr.trabajo and c.tipotrabajo = tr.tipotrabajo)
  26.   LEFT OUTER JOIN "Recursos" r ON (r.recurso = tr.recurso and r.contratista = tr.contratista)
  27.   LEFT OUTER JOIN "Contratistas" con ON ( r.contratista = con.contratista)
  28. WHERE c.proceso = '100'   AND (c.fechaentrega BETWEEN (localtimestamp - '30 days'::interval)::date AND localtimestamp::date OR c.fechaentrega IS NULL)
  29.       and tr.recurso is null AND estadotrabajo NOT IN ('20','30')
  30. order by coalesce(c.recorrido,'0')::numeric asc;
  31.  
  32. ----- Consulta de recursos para el programador
  33.  
  34. SELECT r.recurso, r.contratista, UPPER(r.nombre) AS nombre, l.lote
  35. FROM "Recursos" r
  36.   LEFT JOIN lotes l ON (r.recurso = l.recurso AND l.contratista=r.contratista )
  37. WHERE r.estado = 'A' and r.contratista in ('30')
  38. ORDER BY r.nombre;
  39.  
  40. ----- Consulta de trabajos asignados para un recurso
  41.  
  42. SELECT to_char(c.fecha, 'yyyy/MM/dd hh24:mi') as fecha,  c.trabajo, c.tipotrabajo, tt.nombre as nomtipotrab, c.periodo, c.zona, c.lote, c.recorrido, c.cliente as codcli,
  43.   c.solicitante as nomcli,c.direccion,coalesce(c.barrio,'Ninguno') as barrio,c.municipio, m.nombre as nommunip, c.latitud, c.longitud,tr.recurso,tr.contratista,c.proceso,inicioruta,
  44.   COALESCE (r.nombre ||' ['||r.contratista||']', 'NINGUNO') as rec, COALESCE (con.nombre ||' ['||con.contratista||']', 'NINGUNO') as cont
  45. FROM "Trabajos" c
  46.   JOIN "TiposTrabajos" tt using (tipotrabajo)
  47.   LEFT JOIN "Municipios" m ON (m.municipio =c.municipio)
  48.   JOIN "TRecursos" tr on (c.trabajo = tr.trabajo and c.tipotrabajo = tr.tipotrabajo)
  49.   JOIN "Recursos" r on (r.recurso = tr.recurso and r.contratista = tr.contratista)
  50.   LEFT OUTER JOIN "Contratistas" con ON ( r.contratista = con.contratista)
  51. WHERE  c.proceso  = '300'   and (c.fechaentrega BETWEEN (localtimestamp - '30 days'::interval)::date AND localtimestamp::date OR c.fechaentrega IS NULL)
  52.        AND tr.recurso = '00002' AND tr.contratista = '30' AND c.estadotrabajo NOT IN ('30','20') and (c.visible = true or (select esVisible(c.trabajo)))
  53. ORDER BY coalesce(c.ordenamiento,'0')::numeric asc;
  54.  
  55.  
  56. ----- Consulta de trabajos preasignados para el recurso
  57.  
  58. SELECT trabajo, tipotrabajo, recurso, contratista, fechaasigna
  59. FROM "TRecursos"
  60. WHERE trabajo IN ('201708-18','201708-26','201708-27','201708-28','201708-29') AND tipotrabajo = '30' AND recurso != '00002';
  61.  
  62. ----- Desasigna trabajos no iniciados del recurso
  63.  
  64. delete from "TRecursos" where (recurso = '00002' and contratista = '30' and (trabajo, tipotrabajo) in (select trabajo, tipotrabajo from "Trabajos" where estadotrabajo = '00')) ;
  65.  
  66. ----> Se iteran los trabajos (RowModel) que estan en el grid de recurso en el asignador de lotes (Parallel) {
  67.  
  68. ----- Elimina trabajos de otro recurso si han sido asignados previamente
  69. delete from "TRecursos" WHERE trabajo = ? and tipotrabajo = ?;
  70.  
  71. ----- Actualiza los datos del trabajo
  72.  
  73. UPDATE "Trabajos" SET inicioruta=?, ordenamiento = ?, duracion = ?,
  74. indexjornada = ?, fechamodif=localtimestamp,  fecha=?::timestamp without time zone,
  75. fechaentrega=?::timestamp without time zone, horaentrega=?::time without time zone,
  76. estadotrabajo = '00', fechaprecierre = null, fechainicio = null,
  77. fechadescarga = null WHERE trabajo = ? AND tipotrabajo = ? AND estadotrabajo != ?;
  78.  
  79. ---- Se asigna en TRecursos el trabajo
  80.  
  81. SELECT count(*) as index FROM \"TRecursos\"  WHERE contratista = ? and trabajo=? and tipotrabajo=?; ----> Si existe se descarta el insert si el trabajo ya esta asignado con los mismos datos
  82.  
  83. UPDATE "TRecursos" set recurso = ?, contratista = ?, fechaasigna = localtimestamp WHERE trabajo = ? AND tipotrabajo = ?; ----> Se actualiza el registro si no es el mismo contratista
  84.  
  85. INSERT INTO "TRecursos" (trabajo,tipotrabajo,recurso,contratista,fechaasigna)
  86. VALUES (?, ?, ?, ?, localtimestamp); ---->  Se inserta si el update no aplica a ninguna fila
  87.  
  88.  
  89. --- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement