Skip to content

Instantly share code, notes, and snippets.

View yogonza524's full-sized avatar
:octocat:
Coding..

Gonza yogonza524

:octocat:
Coding..
View GitHub Profile
@yogonza524
yogonza524 / PostgreSQL - Encode
Created December 2, 2015 04:01
PostgreSQL - Funcion para encriptar una cadena de caracteres de forma segura
CREATE OR REPLACE FUNCTION public.encode(val character varying)
RETURNS character varying AS
$BODY$
BEGIN
RETURN encode(digest(val, 'sha1'), 'hex')::character varying;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION public.encode(character varying)
@yogonza524
yogonza524 / PostgreSQL - Funcion generadora de fecha de vencimiento
Created December 2, 2015 21:02
Función para obtener la fecha de vencimiento siguiente
CREATE OR REPLACE FUNCTION get_fecha_vencimiento()
RETURNS DATE AS $$
DECLARE
dia_ven integer;
today integer;
result date;
BEGIN
SELECT c.dia_vencimiento INTO dia_ven FROM config c LIMIT 1;
IF (dia_ven IS NULL) THEN
RAISE EXCEPTION 'Error grave: no existe dia de vencimiento en la tabla de configuración';
@yogonza524
yogonza524 / PostgreSQL - Funcion generadora de fecha de emision
Created December 2, 2015 21:04
Funcion para generar la siguiente fecha de emisión de cuota mensual
CREATE OR REPLACE FUNCTION public.get_fecha_emision()
RETURNS date AS
$BODY$
DECLARE
dia_em integer;
today integer;
result date;
BEGIN
SELECT c.dia_emision INTO dia_em FROM config c LIMIT 1;
IF (dia_em IS NULL) THEN
@yogonza524
yogonza524 / PostgreSQL - Funcion para comparar la fecha parametro con la actual
Created December 2, 2015 21:09
Esta funcion devuelve TRUE si la fecha pasada como parametro es mayor a la fecha actual y FALSE en caso contrario
CREATE OR REPLACE FUNCTION compare_fecha_hoy(fecha date)
RETURNS BOOLEAN AS $$
DECLARE
BEGIN
IF (fecha > now()::date) THEN
RETURN TRUE;
ELSE
RETURN FALSE;
END IF;
CREATE USER username WITH PASSWORD 'password';
GRANT SELECT, INSERT, UPDATE, DELETE
ON ALL TABLES IN SCHEMA public
TO user_name;
@yogonza524
yogonza524 / PostgreSQL - Validador de CUIT
Created December 4, 2015 05:26
Función para validar un numero de CUIT segun el algoritmo impuesto para tal fin
CREATE OR REPLACE FUNCTION public.validate_cuit(cuit character varying)
RETURNS boolean AS
$BODY$
DECLARE
cuit_array text[];
serie integer[];
aux integer;
result boolean;
BEGIN
result = false;
@yogonza524
yogonza524 / Java - Validar CUIT valido
Created December 4, 2015 05:43
Método que valida una cadena de caracteres segun el formato de CUIT utilizado en la Argentina
public static boolean validate(String cuit){
//Eliminamos todos los caracteres que no son números
cuit = cuit.replaceAll("[^\\d]", "");
//Controlamos si son 11 números los que quedaron, si no es el caso, ya devuelve falso
if (cuit.length() != 11){
return false;
}
//Convertimos la cadena que quedó en una matriz de caracteres
String[] cuitArray = cuit.split("");
//Inicializamos una matriz por la cual se multiplicarán cada uno de los dígitos
@yogonza524
yogonza524 / Java - Generador de CUIT
Created December 4, 2015 06:11
Método para generar CUIT a partir de un enum de genero y el dni
public enum Genero {
MASCULINO,FEMENINO,SOCIEDAD
}
public static String generate(Genero g,int dni) throws Exception{
int tipo;
if (g.equals(Genero.MASCULINO)) {
tipo = 20;
}
else{
@yogonza524
yogonza524 / PostgreSQL - Generador de password aleatorio
Created December 5, 2015 19:15
Funcion que devuelve un String aleatorio en función de la longitud pasada como parametro
create or replace function random_string(length integer) returns text as
$$
declare
chars text[] := '{0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}';
result text := '';
i integer := 0;
begin
if length < 0 then
raise exception 'Given length cannot be less than 0';
end if;
@yogonza524
yogonza524 / Jasper Reports para JSF
Created December 14, 2015 15:08
Método estático para descargar un reporte en cualquier navegador moderno
public static void PDF(Map<String,Object> params, String jasperPath, List<?> dataSource,String fileName) throws JRException, IOException{
String relativeWebPath = FacesContext.getCurrentInstance().getExternalContext().getRealPath(jasperPath);
File file = new File(relativeWebPath);
JRBeanCollectionDataSource source = new JRBeanCollectionDataSource(dataSource);
JasperPrint print = JasperFillManager.fillReport(file.getPath(), params, source);
HttpServletResponse response = (HttpServletResponse)FacesContext.getCurrentInstance().getExternalContext().getResponse();
response.addHeader("Content-disposition", "attachment;filename=" + fileName);
ServletOutputStream stream = response.getOutputStream();
JasperExportManager.exportReportToPdfStream(print,stream);