Bievenido

Bienvenido al Blog de Herman Aguilar!!!

Dedicado a compartir material para los alumnos de UJAT-DAIS

viernes, 28 de noviembre de 2014

Ordinario

Para el examen ordinario que será el día uno de diciembre revisaré como evaluaré lo asignado para el tercer parcial; la revisión será en mi cubículo.

domingo, 23 de noviembre de 2014

Función descuento


create or replace
FUNCTION DESCUENTO
(P_PRODUCTO_ID IN NUMBER, p_linea_id in number, p_marca_id in number) RETURN number AS

Begin
for r in (select porcentaje from promociones_productos
where producto_id=P_PRODUCTO_ID and trunc (sysdate) between desde and hasta) loop
return r.porcentaje;
end loop;

for r in (select porcentaje from promociones_lineas
where linea_id=p_linea_id and trunc (sysdate) between desde and hasta) loop
return r.porcentaje;
end loop;

for r in (select porcentaje from promociones_marcas
where marca_id=p_marca_id and trunc (sysdate) between desde and hasta) loop
return r.porcentaje;
end loop;
return 0;
END DESCUENTO;

martes, 11 de noviembre de 2014

Script para generar las tablas de promociones


create table  promociones_productos
  (
    producto_id number(10,0) not null,
    desde date not null,
    hasta date not null,
    porcentaje number(5,2) not null
   );
 
alter table promociones_productos
  add constraint promociones_pr_fk foreign key (producto_id)
  references productos(producto_id);

alter table promociones_productos
  add constraint promociones_pr_desc_chk
  check (porcentaje >0 and porcentaje <=100);
 
create table  promociones_marcas
  (
    marca_id number(10,0) not null,
    desde date not null,
    hasta date not null,
    porcentaje number(5,2) not null
   );
 
alter table promociones_marcas
  add constraint promociones_mr_fk foreign key (marca_id)
  references marcas (marca_id);

alter table promociones_marcas
  add constraint promociones_mr_desc_chk
  check (porcentaje >0 and porcentaje <=100);
 
create table  promociones_lineas
  (
    linea_id number(10,0) not null,
    desde date not null,
    hasta date not null,
    porcentaje number(5,2) not null
   );
 
alter table promociones_lineas
  add constraint promociones_ln_fk foreign key (linea_id)
  references lineas (linea_id);

alter table promociones_lineas
  add constraint promociones_ln_desc_chk
  check (porcentaje >0 and porcentaje <=100);

Función sin acentos

CREATE OR REPLACE FUNCTION sin_acentos (p_nombre in varchar2) RETURN varchar as
--declarando las variables
v_resultado varchar2(4000):='';
v_i number;
v_letra Varchar2(1);
BEGIN
  for v_i in 1..length(p_nombre) loop --recorriendo la el texto
       v_letra := upper(substr(p_nombre,v_i,1)); --sacando letra por letra y conviertiendo a mayúscula, por si las dudas
   
       if v_letra in ('À','Á','Ä') then v_letra :='A'; end if; --formateando
       if v_letra in ('È','É','Ë') then v_letra :='E'; end if;
       if v_letra in ('Ì','Í','Ï') then v_letra :='I'; end if;
       if v_letra in ('Ò','Ó','Ö') then v_letra :='O'; end if;
       if v_letra in ('Ù','Ú','Ü') then v_letra :='U'; end if;
       v_resultado := v_resultado||v_letra; --agregando al resultado
   end loop;
   return v_resultado;
END;

miércoles, 5 de noviembre de 2014

Funciones vocal interna y consononante interna

CREATE OR REPLACE FUNCTION VOCAL_INTERNA(APELLIDO IN VARCHAR2)

RETURN VARCHAR2 AS

I number;

x varchar(1);



BEGIN

for I in 2 .. length(APELLIDO) loop

x := substr(APELLIDO, I, 1);

if x in ('A', 'E', 'I', 'O', 'U') then

RETURN x;

end if;

end loop;

RETURN 'X';

END VOCAL_INTERNA;


***************************************************************

CREATE OR REPLACE FUNCTION CONSONANTE_INTERNA(APELLIDO IN VARCHAR2)

RETURN VARCHAR2 AS

I number;

x varchar(1);



BEGIN
 
for I in 2 .. length(APELLIDO) loop

x := substr(APELLIDO, I, 1);

if x NOT in ('A', 'E', 'I', 'O', 'U') then

RETURN x;

end if;

end loop;

RETURN 'X';

END CONSONANTE_INTERNA;

viernes, 24 de octubre de 2014

Entrega trabajo segundo parcial

Primero que nada una disculpa, por la lluvia y el tráfico no alcancé a llegar.

La revisión será el lunes 27 de octubre.

Saludos.

lunes, 20 de octubre de 2014

Código muestra 20 de octubre

//********************nuevoActionPerformed
        clienteId.setText("");
        clienteNombre.setText("");
        cajeroId.setText("");
        cajeroNombre.setText("");
        vendedorId.setText("");
        vendedorNombre.setText("");
        productoId.setText("");
        cantidad.setText("1.00");
        productoNombre.setText("");
        modelo.setRowCount(0);
       
        subTotal.setText("0.00");
        iva.setText("16.00");
        total.setText("0.00");
       
        try {
            //Obteniendo venta_id que sigue
            ResultSet folio =  Sistema.getResultSet("select nvl(max(venta_id),0)+1 as venta_id from ventas");
            if (folio.next())
                ventaId.setText(folio.getString("venta_id"));

            //Obteniendo la fecha del sistema (base de datos)
            ResultSet fechaSistema = Sistema.getResultSet("select to_char(sysdate,'dd/mm/yyyy hh24:mi:ss') as fecha from dual");
            if (fechaSistema.next())
                fecha.setText(fechaSistema.getString("fecha"));

        } catch (SQLException ex) {
        }
        //Otorgando el enfoque al clienteId
        clienteId.grabFocus();

//******************** Constructor - agregando las columnas
        modelo.addColumn("Producto");
        modelo.addColumn("Cantidad");
        modelo.addColumn("Precio");
        modelo.addColumn("Descuento");
        modelo.addColumn("Importe");
        //distribuyendo el ancho de las columnas, note que la suma de los productos es 1.00
        tabla.getColumn("Producto").setPreferredWidth((int)(tabla.getWidth()*0.60));
        tabla.getColumn("Cantidad").setPreferredWidth((int)(tabla.getWidth()*0.10));
        tabla.getColumn("Precio").setPreferredWidth((int)(tabla.getWidth()*0.10));
        tabla.getColumn("Descuento").setPreferredWidth((int)(tabla.getWidth()*0.1));        
        tabla.getColumn("Importe").setPreferredWidth((int)(tabla.getWidth()*0.1));   

//****************clienteIdActionPerformed
        clienteNombre.setText("");
        if (!clienteId.getText().isEmpty()){
            try {
              int i = Integer.parseInt(clienteId.getText());
              String texto = "select nombre||' '||apepat||' '|| apemat as nombre"+
                      " from personas "+
                      " where persona_id="+i;
              ResultSet nombre = Sistema.getResultSet(texto);
              if (nombre.next())
              {
                  clienteNombre.setText(nombre.getString("nombre"));
                  vendedorId.grabFocus();
              }
              else
                  clienteId.setText("");
            }
            catch (Exception ex){
            }
        }