Tambien como hago para ejecutarla desde PHP gracias! :D
El día 11 de julio de 2008 15:49, Fabio Arias <[EMAIL PROTECTED]> escribió: > Muy buenas tardes muchachos ya logre compilar la FUNCTIOn y crearla pero no > se como la puede ejecutar, alguno de uds me puede ayudar??? > > 2008/7/11 Fabio Arias <[EMAIL PROTECTED]>: > > Muy buenos dias muchachos, estoy empezando con la creacion de funciones y >> tengo este error y no se por que es? >> >> Si me pueden dar una mano para mejorarlo les agradecere mucho.... >> >> === psql 1 === >> psql:129: ERROR: syntax error at end of input >> LINEA 1: SELECT >> >> ######################################################################## >> CREATE FUNCTION ANULAR_APUESTA(IDTRANSACCION INTEGER, COLILLA VARCHAR, >> ACEPTACION_AEL VARCHAR, IDUSUARIO_REG VARCHAR) RETURNS INTEGER AS $$ >> DECLARE >> USUARIO "TSO"."USUARIO"%ROWTYPE; >> CUENTAUSUARIO "TSO"."CUENTA"%ROWTYPE; >> DISTRIBUIDOR "TSO"."CLIENTE"%ROWTYPE; >> CUENTADISTRIBUIDOR "TSO"."CUENTA"%ROWTYPE; >> PUNTODEVENTA "TSO"."CLIENTE"%ROWTYPE; >> TRANSACCION "TSO"."TRANSACCION"%ROWTYPE; >> SALDOFINAL NUMERIC(10,2); >> SALDOCOMISION NUMERIC(10,2); >> COMISIONPRODUCTODIS "TSO"."COMISION"%ROWTYPE; >> COMISIONPRODUCTOPDV "TSO"."COMISION"%ROWTYPE; >> COMISION NUMERIC(10,2); >> VALORCOMISION NUMERIC(10,2); >> IDTRANSACCION_ANULACION INTEGER; >> IDNOVEDAD INTEGER; >> BEGIN >> -- CONSULTAR TRANSACCION >> SELECT * INTO TRANSACCION FROM "TSO"."TRANSACCION" WHERE >> "TRAN_ID"=IDTRANSACCION; >> IF NOT FOUND THEN >> RAISE EXCEPTION 'NO EXISTE TRANSACCION %',IDTRANSACCION; >> RETURN; >> END IF; >> -- BUSCAR USUARIO DE TRANSACCION >> SELECT * INTO USUARIO FROM "TSO"."USUARIO" WHERE >> "USUA_ID"=TRANSACCION."USUA_ID"; >> IF NOT FOUND THEN >> RAISE EXCEPTION 'NO EXISTE USUARIO DE TRANSACCION >> %',IDTRANSACCION; >> RETURN; >> END IF; >> SELECT * INTO CUENTAUSUARIO FROM "TSO"."CUENTA" WHERE >> USUARIO."CUEN_ID"; >> IF NOT FOUND THEN >> RAISE EXCEPTION 'NO EXISTE CUENTA PARA USUARIO >> %',USUARIO."USUA_ID"; >> RETURN; >> END IF; >> SELECT * INTO PUNTODEVENTA FROM "TSO"."CLIENTE" WHERE >> "CLIE_ID"=USUARIO."CLIE_ID"; >> IF NOT FOUND THEN >> RAISE EXCEPTION 'NO EXISTE PUNTO DE VENTA PARA USUARIO >> %',USUARIO."USUA_ID"; >> RETURN; >> END IF; >> SELECT * INTO DISTRIBUIDOR FROM "TSO"."CLIENTE" WHERE >> "CLIE_ID"=PUNTODEVENTA."CLIE_PADRE"; >> IF NOT FOUND THEN >> RAISE EXCEPTION 'NO EXISTE DISTRIBUIDOR PARA PUNTO DE VENTA >> %',PUNTODEVENTA."CLIE_ID"; >> RETURN; >> END IF; >> SELECT * INTO CUENTADISTRIBUIDOR FROM "TSO"."CUENTA" WHERE >> "CUEN_ID"=DISTRIBUIDOR."CUEN_ID"; >> IF NOT FOUND THEN >> RAISE EXCEPTION 'NO EXISTE CUENTA PARA DISTRIBUIDOR >> %',DISTRIBUIDOR."CLIE_ID"; >> RETURN; >> END IF; >> >> -- INSERTAR MOVIMIENTO DE REVERSO DE VENTA >> SALDOFINAL := CUENTAUSUARIO."CUEN_SALDO"+TRANSACCION."TRAN_VALOR"; >> >> INSERT INTO "TSO"."MOVIMIENTOSCUENTA" ( >> "CUEN_ID","TRAN_ID","TIMC_ID","MOCU_FECHAMOVIMIENTO", >> "MOCU_SOBREGIROACTUAL", "MOCU_SALDOACTUAL", >> "MOCU_SOBREGIRO","MOCU_SALDO", "MOCU_REGISTRADOPOR", "MOCU_VALOR") >> VALUES( >> CUENTAUSUARIO."CUEN_ID",IDTRANSACCION,13,now(), >> 0,SALDOFINAL, >> >> CUENTAUSUARIO."CUEN_SOBREGIRO",CUENTAUSUARIO."CUEN_SALDO",IDUSUARIO_REG,TRANSACCION."TRAN_VALOR"); >> >> -- ACTUALIZAR EL SALDO DEL USUARIO >> UPDATE "TSO"."CUENTA" SET >> "CUEN_SALDO"="CUEN_SALDO"+TRANSACCION."TRAN_VALOR" >> WHERE "CUEN_ID"=CUENTAUSUARIO."CUEN_ID"; >> >> -- BUSCAR COMISION LINEAL PDV >> SELECT * INTO COMISIONPRODUCTOPDV FROM "TSO"."COMISION" WHERE >> "USUA_ID"=USUARIO."USUA_ID" AND "PROD_ID"=TRANSACCION."PROD_ID" >> AND "TICO_ID"=2; >> IF NOT FOUND THEN >> COMISION := 0; >> ELSE >> COMISION := COMISIONPRODUCTOPDV."COMI_VALOR"; >> END IF; >> VALORCOMISION := TRANSACCION."TRAN_VALOR"*(COMISION/100); >> SALDOCOMISION := SALDOFINAL; >> SALDOFINAL := SALDOFINAL-VALORCOMISION; >> -- INSERTAR MOVIMIENTO DE REVERSO DE COMISION >> INSERT INTO "TSO"."MOVIMIENTOSCUENTA" ( >> "CUEN_ID","TRAN_ID","TIMC_ID","MOCU_FECHAMOVIMIENTO", >> "MOCU_SOBREGIROACTUAL", "MOCU_SALDOACTUAL", >> "MOCU_SOBREGIRO","MOCU_SALDO", "MOCU_REGISTRADOPOR", "MOCU_VALOR") >> VALUES( >> CUENTAUSUARIO."CUEN_ID",IDTRANSACCION,14,now(), >> 0,SALDOFINAL, >> >> CUENTAUSUARIO."CUEN_SOBREGIRO",SALDOCOMISION,IDUSUARIO_REG,VALORCOMISION); >> -- ACTUALIZAR EL SALDO DEL USUARIO >> UPDATE "TSO"."CUENTA" SET "CUEN_SALDO"="CUEN_SALDO"-VALORCOMISION >> WHERE "CUEN_ID"=CUENTAUSUARIO."CUEN_ID"; >> >> -- BUSCAR COMISION LINEAL DIS >> SELECT * INTO COMISIONPRODUCTODIS FROM "TSO"."COMISION" WHERE >> "CLIE_ID"=DISTRIBUIDOR."CLIE_ID" AND "PROD_ID"=TRANSACCION."PROD_ID" >> AND "TICO_ID"=3; >> IF NOT FOUND THEN >> COMISION := 0; >> ELSE >> COMISION := COMISIONPRODUCTODIS."COMI_VALOR"; >> END IF; >> VALORCOMISION := TRANSACCION."TRAN_VALOR"*(COMISION/100); >> SALDOFINAL := CUENTADISTRIBUIDOR."CUEN_SALDO"-VALORCOMISION; >> -- INSERTAR REVERSO COMISION DE DISTRIBUIDOR >> INSERT INTO "TSO"."MOVIMIENTOSCUENTA" ( >> "CUEN_ID","TRAN_ID","TIMC_ID","MOCU_FECHAMOVIMIENTO", >> "MOCU_SOBREGIROACTUAL", "MOCU_SALDOACTUAL", >> "MOCU_SOBREGIRO","MOCU_SALDO", "MOCU_REGISTRADOPOR", "MOCU_VALOR") >> VALUES( >> CUENTADISTRIBUIDOR."CUEN_ID",IDTRANSACCION,15,now(), >> 0,SALDOFINAL, >> >> CUENTADISTRIBUIDOR."CUEN_SOBREGIRO",CUENTADISTRIBUIDOR."CUEN_SALDO",IDUSUARIO_REG,VALORCOMISION); >> -- ACTUALIZAR SALDO DE DISTRIBUIDOR >> UPDATE "TSO"."CUENTA" SET "CUEN_SALDO"="CUEN_SALDO"-VALORCOMISION >> WHERE "CUEN_ID"=CUENTADISTRIBUIDOR."CUEN_ID"; >> --- TERMINADO EL ANULADO >> --- CREAR TRANSACCION DE ANULACION >> INSERT INTO "TSO"."TRANSACCION" ( >> "TITR_ID", "PROD_ID", "USUA_ID", "TRAN_FECHA", "TRAN_VALOR", >> "TRAN_ESTADO", "TRAN_REGISTRADOPOR") >> VALUES (32, 2, IDUSUARIO_REG, now(), TRANSACCION."TRAN_VALOR", '1', >> IDUSUARIO_REG); >> SELECT currval('"TSO"."TRANSACCION_TRAN_ID_seq"') INTO >> IDTRANSACCION_ANULACION; >> >> -- INSERTAR NOVEDAD DE TRANSACCION >> INSERT INTO "TSO"."NOVEDADTRANSACCION"( >> "NOVE_ID", "TRAN_ID", "NOTR_IDTRANSACCION", "NOTR_OBSERVACION", >> "NOTR_REGISTRADOPOR") >> VALUES (5, IDTRANSACCIONANULACION, IDTRANSACCION, ACEPTACION_AEL, >> IDUSUARIO_REG); >> SELECT currval('"TSO"."NOVEDADTRANSACCION_NOTR_ID_seq"') INTO >> IDNOVEDAD; >> RETURN IDNOVEDAD; >> END; >> $$ LANGUAGE plpgsql; >> ######################################################################## >> >> -- >> Fabio Hernando Arias Vera >> Cel. 314 411 7776 > > > > > -- > Fabio Hernando Arias Vera > Cel. 314 411 7776 > -- Fabio Hernando Arias Vera Cel. 314 411 7776