Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ----- Consulta de trabajos asignados
- 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,
- 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,
- COALESCE (r.nombre ||' ['||r.recurso||']', 'NINGUNO') as rec, COALESCE (con.nombre ||' ['||con.contratista||']', 'NINGUNO') as cont
- FROM "Trabajos" c
- JOIN "TiposTrabajos" tt using (tipotrabajo)
- LEFT JOIN "Municipios" m ON (m.municipio =c.municipio)
- LEFT OUTER JOIN "TRecursos" tr ON (c.trabajo = tr.trabajo and c.tipotrabajo = tr.tipotrabajo)
- LEFT OUTER JOIN "Recursos" r ON (r.recurso = tr.recurso and r.contratista = tr.contratista)
- LEFT OUTER JOIN "Contratistas" con ON ( r.contratista = con.contratista)
- WHERE c.proceso = '100' AND (c.fechaentrega BETWEEN (localtimestamp - '30 days'::interval)::date AND localtimestamp::date OR c.fechaentrega IS NULL)
- and tr.recurso is not null
- order by coalesce(c.recorrido,'0')::numeric asc;
- ----- Consulta de trabajos no asignados
- 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, 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, COALESCE (r.nombre ||' ['||r.recurso||']', 'NINGUNO') as rec, COALESCE (con.nombre ||' ['||con.contratista||']', 'NINGUNO')
- as cont
- FROM "Trabajos" c
- JOIN "TiposTrabajos" tt using (tipotrabajo)
- LEFT JOIN "Municipios" m ON (m.municipio =c.municipio)
- LEFT OUTER JOIN "TRecursos" tr ON (c.trabajo = tr.trabajo and c.tipotrabajo = tr.tipotrabajo)
- LEFT OUTER JOIN "Recursos" r ON (r.recurso = tr.recurso and r.contratista = tr.contratista)
- LEFT OUTER JOIN "Contratistas" con ON ( r.contratista = con.contratista)
- WHERE c.proceso = '100' AND (c.fechaentrega BETWEEN (localtimestamp - '30 days'::interval)::date AND localtimestamp::date OR c.fechaentrega IS NULL)
- and tr.recurso is null AND estadotrabajo NOT IN ('20','30')
- order by coalesce(c.recorrido,'0')::numeric asc;
- ----- Consulta de recursos para el programador
- SELECT r.recurso, r.contratista, UPPER(r.nombre) AS nombre, l.lote
- FROM "Recursos" r
- LEFT JOIN lotes l ON (r.recurso = l.recurso AND l.contratista=r.contratista )
- WHERE r.estado = 'A' and r.contratista in ('30')
- ORDER BY r.nombre;
- ----- Consulta de trabajos asignados para un recurso
- 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,
- 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,
- COALESCE (r.nombre ||' ['||r.contratista||']', 'NINGUNO') as rec, COALESCE (con.nombre ||' ['||con.contratista||']', 'NINGUNO') as cont
- FROM "Trabajos" c
- JOIN "TiposTrabajos" tt using (tipotrabajo)
- LEFT JOIN "Municipios" m ON (m.municipio =c.municipio)
- JOIN "TRecursos" tr on (c.trabajo = tr.trabajo and c.tipotrabajo = tr.tipotrabajo)
- JOIN "Recursos" r on (r.recurso = tr.recurso and r.contratista = tr.contratista)
- LEFT OUTER JOIN "Contratistas" con ON ( r.contratista = con.contratista)
- WHERE c.proceso = '300' and (c.fechaentrega BETWEEN (localtimestamp - '30 days'::interval)::date AND localtimestamp::date OR c.fechaentrega IS NULL)
- AND tr.recurso = '00002' AND tr.contratista = '30' AND c.estadotrabajo NOT IN ('30','20') and (c.visible = true or (select esVisible(c.trabajo)))
- ORDER BY coalesce(c.ordenamiento,'0')::numeric asc;
- ----- Consulta de trabajos preasignados para el recurso
- SELECT trabajo, tipotrabajo, recurso, contratista, fechaasigna
- FROM "TRecursos"
- WHERE trabajo IN ('201708-18','201708-26','201708-27','201708-28','201708-29') AND tipotrabajo = '30' AND recurso != '00002';
- ----- Desasigna trabajos no iniciados del recurso
- delete from "TRecursos" where (recurso = '00002' and contratista = '30' and (trabajo, tipotrabajo) in (select trabajo, tipotrabajo from "Trabajos" where estadotrabajo = '00')) ;
- ----> Se iteran los trabajos (RowModel) que estan en el grid de recurso en el asignador de lotes (Parallel) {
- ----- Elimina trabajos de otro recurso si han sido asignados previamente
- delete from "TRecursos" WHERE trabajo = ? and tipotrabajo = ?;
- ----- Actualiza los datos del trabajo
- UPDATE "Trabajos" SET inicioruta=?, ordenamiento = ?, duracion = ?,
- indexjornada = ?, fechamodif=localtimestamp, fecha=?::timestamp without time zone,
- fechaentrega=?::timestamp without time zone, horaentrega=?::time without time zone,
- estadotrabajo = '00', fechaprecierre = null, fechainicio = null,
- fechadescarga = null WHERE trabajo = ? AND tipotrabajo = ? AND estadotrabajo != ?;
- ---- Se asigna en TRecursos el trabajo
- 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
- UPDATE "TRecursos" set recurso = ?, contratista = ?, fechaasigna = localtimestamp WHERE trabajo = ? AND tipotrabajo = ?; ----> Se actualiza el registro si no es el mismo contratista
- INSERT INTO "TRecursos" (trabajo,tipotrabajo,recurso,contratista,fechaasigna)
- VALUES (?, ?, ?, ?, localtimestamp); ----> Se inserta si el update no aplica a ninguna fila
- --- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement