Advertisement
Guest User

Untitled

a guest
May 11th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.20 KB | None | 0 0
  1. /*
  2. CREATE TABLE rptpriceoverride
  3. (
  4. date character varying(8) NOT NULL,
  5. pos_nbr smallint NOT NULL,
  6. trans_nbr smallint NOT NULL,
  7. seq_nbr smallint NOT NULL,
  8. operator_nbr integer NOT NULL,
  9. supervisor_nbr integer NOT NULL,
  10. upc character varying(20) NOT NULL,
  11. dept_number smallint NOT NULL,
  12. unit_price integer NOT NULL,
  13. altered_unit_price integer NOT NULL,
  14. qty integer NOT NULL,
  15. reason_code smallint NOT NULL,
  16. action_code smallint NOT NULL,
  17. code2 smallint NOT NULL
  18. )
  19. WITH (
  20. OIDS=FALSE
  21. );
  22. ALTER TABLE rptpriceoverride
  23. OWNER TO postgres;
  24. */
  25.  
  26. -- Function: search_cambio_precio(text, text, text, text, text, text, text)
  27.  
  28. -- DROP FUNCTION search_cambio_precio(text, text, text, text, text, text, text);
  29.  
  30. CREATE OR REPLACE FUNCTION search_cambio_precio(
  31. IN param_fechadesde text,
  32. IN param_fechahasta text,
  33. IN param_departamento text,
  34. IN param_host text,
  35. IN param_user text,
  36. IN param_password text,
  37. IN param_db text)
  38. RETURNS TABLE(txid smallint, fecha_completa text, departamento text, departamento_numero text, teminal_numero numeric, operador_numero integer, upc_numero bigint, descripcion text, razon_codigo smallint, razon text, precio_tienda numeric, precio_autdo numeric, cantidad numeric, precio_venta numeric, monto_venta numeric, monto_devolucion numeric, dif_monto numeric, dif_porcentaje numeric) AS
  39. $BODY$
  40.  
  41. BEGIN
  42.  
  43. RETURN QUERY(
  44. select
  45. p.trans_nbr as TXID,
  46. cast(p.date as text) as FECHA_COMPLETA,
  47. dep.designation as DEPARTAMENTO,
  48. cast(p.dept_number as text) as DEPARTAMENTO_NUMERO,
  49. cast(p.pos_nbr as numeric) as TEMINAL_NUMERO,
  50. p.operator_nbr as OPERADOR_NUMERO,
  51. cast(p.upc as bigint) as UPC_NUMERO,
  52. ar.designation as DESCRIPCION,
  53. p.reason_code as RAZON_CODIGO,
  54. cast(pa.valuetext as text) as RAZON,
  55. abs(p.unit_price * 0.01)::numeric as PRECIO_TIENDA,
  56. abs(p.altered_unit_price * 0.01)::numeric as PRECIO_AUTDO,
  57. (p.qty::numeric/1000) as CANTIDAD,
  58. ((p.altered_unit_price * (p.qty::numeric/1000)) * 0.01)::numeric as PRECIO_VENTA,
  59. (case when (p.altered_unit_price * (p.qty::numeric/1000) ) > 0 and action_code in (4,0) and code2 = 0 then (p.altered_unit_price * (p.qty::numeric/1000) ) else 0 end)::numeric as MONTO_VENTA,
  60. (case when (p.altered_unit_price * (p.qty::numeric/1000) ) < 0 and action_code = 4 and code2 = 4 then (p.altered_unit_price * (p.qty::numeric/1000) * -1) else 0 end)::numeric as MONTO_DEVOLUCION,
  61. (abs(p.altered_unit_price) - abs(p.unit_price) )* 0.01::numeric as DIF_MONTO,
  62. round(((abs(p.altered_unit_price) - (abs(p.unit_price)) / (p.qty::numeric/1000))/ abs(p.unit_price)) * 100) as DIF_PORCENTAJE
  63. from rptpriceoverride p
  64. left outer join (select * from dblink('host='||Param_host||' user='||Param_user||' password='||Param_password||' dbname='||Param_db, 'SELECT article_number, designation FROM mtxadmin.article ORDER BY article_number')as t1(article_number text, designation text)) as ar on cast(p.upc as bigint) = cast(ar.article_number as bigint)
  65. left outer join (select * from dblink('host='||Param_host||' user='||Param_user||' password='||Param_password||' dbname='||Param_db, 'SELECT department_number, designation FROM mtxadmin.department ORDER BY department_number')as t2(department_number text, designation text)) as dep on cast(p.dept_number as integer) = cast(dep.department_number as integer)
  66. left outer join (select * from dblink('host='||Param_host||' user='||Param_user||' password='||Param_password||' dbname='||Param_db, 'SELECT (SUBSTRING(reasonno,4,3))::smallint as reasonno, valuetext FROM par_reasoncode where (SUBSTRING(reasonno,2,1))::smallint = 1 order by reasonno')as t3(reasonno text, valuetext text)) as pa on cast(p.reason_code as integer) = cast(pa.reasonno as integer)
  67. where (Param_FechaDesde is null or p.date >= Param_FechaDesde)
  68. and (Param_FechaHasta is null or p.date <= Param_FechaHasta)
  69. and (Param_Departamento is null or Param_Departamento = '0000' or (p.dept_number = cast(Param_Departamento as integer)))
  70. order by DEPARTAMENTO_NUMERO, TEMINAL_NUMERO,OPERADOR_NUMERO, TXID
  71. );
  72. END;
  73. $BODY$
  74. LANGUAGE plpgsql VOLATILE
  75. COST 100
  76. ROWS 1000;
  77. ALTER FUNCTION search_cambio_precio(text, text, text, text, text, text, text)
  78. OWNER TO mtxadmin;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement