domingo, 23 de julio de 2023

Instalar Sass

Instalar Sass
======================
Descargar e instalar Sass https://sass-lang.com/
$> npm init -y
$> npm install -g sass

En el archivo package.json agregar en el script:
{
      .
      .
     "script": {
     "test": "echo \"Error: no test specified\" && exit 1",
     "sass": "sass --watch --style=compressed sass/index.scss public/bundle.css",
     "build": "rollup --watch --config"
     },
}

Ejecutar:
$> npm run sass

Validar la creación del archivo bundle.css en la carpeta public.
Vincular el archivo final 
bundle.css en el index.html
<link rel="stylesheet" href="./public/bundle.css" />



Instalacion Rollup


Instalación Rollup
====================

$> npm init -y
$> npm install rollup --save-dev

Crear archivo en la raíz del proyecto
rollup.config.js agregar el siguiente código:

export default {
    input: 'src/index.js',
    output: {
       file: 'public/bundle.js',
       format: 'cjs'
    }
};


En la raíz Crear carpeta src y crear el archivo index.js
En la raíz Crear carpeta public

En el archivo package.json agregar al inicio y en el script:

{
  "type" : "module",
   .
   .
  "script": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "rollup --watch --config"
  },
}


Ejecutar:
$> npx rollup
$> npm run build

Validar la creación del archivo bundle.js en la carpeta public.
Vincular el archivo final bundle.js en el index.html
<script defer src="./public/bundle.js"></script> 



lunes, 15 de mayo de 2023

Procedimientos Almacenados MYSQL

Procedimientos Almacenados MYSQL
===============================
-- Procedimiento Listar
DELIMITER $$
CREATE PROCEDURE sp_getAllCategories()
BEGIN
    SELECT id,descripcion,estado 
    FROM category
    ORDER BY id DESC;
END $$
DELIMITER ;

call sp_getAllCategories();

-- Procedimiento Buscar
delimiter $$
create procedure sp_findCategory(in text varchar(50))
begin
    select name,description
    from category
    where upper(trim(name))  or upper(trim(description)) like concat('%',upper(trim(
text)),'%') and active=1
    order by name asc;
end $$
delimiter ;

delimiter $$
create procedure sp_findAllCategories()
begin
select id,name,description,active 
from category
order by name asc;
end $$
delimiter ;

delimiter $$
create procedure sp_insertCategory(in opt int, 
   in id int,
   in name varchar(50),
                                   in description varchar(255),
                                   in active int)
begin
if(opt=1) then
insert into category(name,descripcion)
values(name, description);
else
update category set name=name, description=description
where id=id;
end if;
end$$
delimiter ;

CALL sp_insertCategory(1,1,'bebidas','bebida inkcola', 1);

-- Procedimiento Eliminar
DELIMITER $$
CREATE PROCEDURE sp_deleteCategory(IN categoryId INT)
BEGIN
    DELETE 
    FROM category
    WHERE id = categoryId;
END $$
DELIMITER ;

CALL sp_deleteCategory(2);

domingo, 9 de abril de 2023

Herencia y polimorfismo en C#


Herencia y polimorfismo
=====================
1.

Solucion:

public class Person
    {
        private string name { get; set; }
        private string lastname { get; set; }
        private int age { get; set; }

        public Person(string name, string lastname, int age)
        {
            this.name = name;
            this.lastname = lastname;
            this.age = age;
        }

        public virtual string ShowData()
        {
            return name + "\n" + lastname + "\n" + age;
        }
    }

public class Student : Person
    {
        public int code { get; set; }
        public double finalNote { get; set; }

        public Student(string name, string lastname, int age, int code, double finalNote) : base(name, lastname, age)
        {
            this.code = code;
            this.finalNote = finalNote;
        }

        public override string ShowData()
        {
            return base.showData() + "\n" + code + "\n" + finalNote;
        }
    }

public class Program
    {
        static void Main(string[] args)
        {
            Student obj = new Student("David", "Perez", 23, 666, 18);
            Console.WriteLine(obj.showData());
            Console.ReadLine();
        }
    }

2. La empresa ABC, desea implementar una aplicación orientada a objetos, para registrar los trabajadores, los cuales están conformados por: Empleados, Vendedores, Directores y Practicantes.

La clase Trabajador (Padre) cuenta con los siguientes atributos:
DNI, NOMBRE, APELLIDO, FECHA INGRESO y CARGO.
Esta clase se definen los siguientes métodos:
Básico:
      cargo es Administrativo, sueldo básico es 4500.
      cargo es Auxiliar, sueldo básico es 1800.
      cargo es Seguridad, sueldo básico es 2500.
Deducción: el cual representa el 5% de su Sueldo Básico.
Neto que es la diferencia entre básico y Deducción.

____
A partir de la clase Trabajador, creamos la clase heredada Empleado, la cual hereda todos los atributos y métodos del padre.

Para esta clase el método bonificación se calcula:
si el cargo es Administrativo o Seguridad, representa el 5% del básico, si es Auxiliar es el 10% del básico.

La Deducción representara el 10% de la suma de básico y bonificación
El neto es Básico más bonificación menos la Deducción 

Defina las clases
Dibuja la GUI para el hijo Director
Programa el botón, instancia la clase, ingresa los datos y visualiza los resultados.

Solucion:

public class Worker
    {
        public string dni { get; set; }
        public string name { get; set; }
        public string lastname { get; set; }
        public DateTime admissionDate { get; set; }
        public string position { get; set; }


        public double Basic()
        {
            double basicSalary = 0.0;
            switch (position)
            {
                case "Administrativo":
                    basicSalary = 4500;
                    break;
                case "Auxiliar":
                    basicSalary = 1800;
                    break;
                case "Seguridad":
                    basicSalary = 2500;
                    break;
                default:
                    break;
            }
            return basicSalary;
        }

        public virtual double Deduction()
        {
            return 0.05 * Basic();
        }

        public virtual double Net()
        {
            return Basic() - Deduction();
        }
    }

public class Employee : Worker
    {

        public double Bonus()
        {
            double bonus = 0;
            if (position == "Administrativo" || position == "Seguridad")
            {
                bonus = 0.05 * Basic();
            }
            else if (position == "Auxiliar")
            {
                bonus = 0.1 * Basic();
            }
            return bonus;
        }

        public override double Deduction()
        {
            return 0.1 * (Basic() + Bonus());
        }

        public override double Net()
        {
            return (Basic() + Bonus()) - Deduction();
        }
    }

Button:
Employee obj = new Employee();
            obj.dni = txtDni.Text;
            obj.name = txtName.Text;
            obj.lastname = txtLastname.Text;
            obj.admissionDate = dtAdmissionDate.Value;
            obj.position = cboPosition.Text;

            dgEmployee.Rows.Add(obj.dni, obj.name, obj.lastname, obj.admissionDate, obj.position, obj.Basic(), obj.Deduction(), obj.Net());

jueves, 6 de abril de 2023

Atajos de Teclado Eclipse

Atajos de Teclado Eclipse
==========================

Auto Import:  Ctrl + Shift + O
Formatear Codigo:  Ctrl + Alt + L

sábado, 1 de abril de 2023

Conexion a la base de datos con MYSQL en JAVA

Conexión a la base de datos con MYSQL en JAVA
========================================


public class ConexionDB {
   private static final String DRIVER = "com.mysql.cj.jdbc.Driver";
   private static final String DB = "dbtest";
   private static final String URL = "jdbc:mysql://localhost:3306/";
   private static final String USER = "root";
   private static final String PASSWORD = "";

   public static Connection getConnection() {
        Connection conn = null;
        try {
            Class.forName(DRIVER);
            conn = DriverManager.getConnection(URL + DB, USER, PASSWORD);
            System.out.println("Successful Connection! ");
        } catch (ClassNotFoundException e) {
          System.out.println("Driver not found for database");
        } catch (SQLException e) {
          System.out.println("Failed 
Connection!" + e.getMessage());
        }
        return conn;
    }
}

viernes, 24 de marzo de 2023

Celdas de JTable no editables

Celdas de JTable no editables
==============================
Click derecho en el JTable -> Customize Code...
Agregar despues de la primera linea de codigo lo siguiente:


tblProducts.setFocusable(false);
tblProducts = new javax.swing.JTable() {
public boolean isCellEditable(int rowIndex,int colIndex){
return false;
}
};

Actualizar TailwindCSS a la version 4 en Laravel

Actualizar TailwindCSS a la version 4 en Laravel npx @tailwindcss/upgrade En el archivo vite.config.ts Agregar el plugin de tailwindcss impo...