FUNCTION disponibles(pcodn,pcodgrupo,pcodtipo,pcodsec,pfecha) DEFINE pcodn,pcodgrupo,pcodtipo,pcodsec,dias,vence SMALLINT, pfecha DATE, reservado,existencia,transito,cantidad_orden,pcantidadconduce,cantidad_ordenada,cantidad_recibida DEC(12,5) DEFINE selec CHAR(100) SELECT a.dias_vence_reservas INTO dias FROM companias a LET vence =0 LET reservado = 0 {LET selec= " SELECT datediff(day,a.fecha_vence_reserva,b.fech_crea) ", " FROM vetb00051 a,vetb00050 b ", " WHERE", " a.cotizacion_no = b.cotizacion_no AND ", " a.cod_n = ",pcodn," AND ", " a.cod_grupo=",pcodgrupo," AND ", " a.cod_tipo=",pcodtipo," AND ", " a.cod_sec=",pcodsec," AND a.cantidad_reservada IS NOT NULL and a.status_t IS NULL" PREPARE query1 FROM selec EXECUTE query1 INTO vence IF vence IS NULL THEN LET vence =0 END IF IF vence <= dias THEN SELECT SUM(a.cantidad_reservada) INTO reservado FROM vetb00051 a,vetb00050 b WHERE a.status_t IS NULL AND (a.cotizacion_no = b.cotizacion_no) AND (a.cod_n = pcodn AND a.cod_grupo=pcodgrupo AND a.cod_tipo=pcodtipo AND a.cod_sec=pcodsec) AND a.cantidad_reservada IS NOT NULL IF reservado IS NULL THEN LET reservado =0 END IF END IF} LET existencia = 0 SELECT SUM(a.cantidad_2) INTO existencia FROM iptb00006 a WHERE a.status_t IS NULL AND (a.cod_n = pcodn AND a.cod_grupo=pcodgrupo AND a.cod_tipo=pcodtipo AND a.cod_sec=pcodsec) LET cantidad_orden = 0 SELECT SUM(a.cantidad) INTO cantidad_orden FROM prtb00013 a,prtb00012 b WHERE (a.num_oc = b.num_oc) AND b.cerrada = 'N' AND b.status_t IS NULL AND (a.cod_n = pcodn AND a.cod_grupo=pcodgrupo AND a.cod_tipo=pcodtipo AND a.cod_sec=pcodsec ) LET pcantidadConduce = 0 SELECT SUM(c.cantidad_2) INTO pcantidadConduce FROM prtb00013 a,prtb00012 b,iptb00006 c,iptb00005 d WHERE (a.num_oc = b.num_oc) AND b.cerrada = 'N' AND b.status_t IS NULL AND (a.cod_n = pcodn AND a.cod_grupo=pcodgrupo AND a.cod_tipo=pcodtipo AND a.cod_sec=pcodsec) AND (a.cod_n = c.cod_n AND a.cod_grupo=c.cod_grupo AND a.cod_tipo=c.cod_tipo AND a.cod_sec=c.cod_Sec) AND (c.cod_mov = d.cod_mov) AND (d.control_despacho = 'SI' OR d.control_devolucion = 'SI') AND (a.num_oc = c.num_oc) AND c.status_t IS NULL # TRANSITO { COMENTE ESTE QUERY PORQUE NO VOY A USAR ESTA INFORMACION AL 06/07/2016 LET cantidad_ordenada = 0 SELECT SUM(a.cantidad) INTO cantidad_ordenada FROM cotb00015 a,cotb00014 b WHERE (a.cod_n = pcodn AND a.cod_grupo=pcodgrupo AND a.cod_tipo=pcodtipo AND a.cod_sec=pcodsec) AND (a.num_oc = b.num_oc) AND b.cierre ='N' AND a.status_t IS NULL LET cantidad_recibida =0 SELECT SUM(a.cantidad_2) INTO cantidad_recibida FROM iptb00006 a,cotb00015 b,cotb00014 c WHERE (a.cod_n = pcodn AND a.cod_grupo=pcodgrupo AND a.cod_tipo=pcodtipo AND a.cod_sec=pcodsec AND a.cod_n = b.cod_n AND a.cod_grupo = b.cod_grupo AND a.cod_tipo = b.cod_tipo) AND (a.orden_compra = b.num_oc) AND (b.num_oc = c.num_oc) AND c.cierre = 'N' AND a.status_t IS NULL } LET transito = cantidad_ordenada - cantidad_recibida IF cantidad_orden IS NULL THEN LET cantidad_orden=0 END IF IF transito IS NULL THEN LET transito=0 END IF IF pcantidadconduce IS NULL THEN LET pcantidadconduce =0 END IF RETURN cantidad_orden,pcantidadConduce,transito,existencia,reservado END FUNCTION