Posteriormente vamos a necesitar el catalogo de tipo de vehículos y vehículos en esta publicación dejaremos la forma para crear el CRUD de tipos de vehículos con los siguientes datos.

- Empresa
- Codigo
- Descripción
Posteriormente vamos a necesitar el catalogo de tipo de vehículos y vehículos en esta publicación dejaremos la forma para crear el CRUD de tipos de vehículos con los siguientes datos.
El kardex de inventario es un documento o sistema de registro que permite llevar un control de las entradas y salidas de mercancías o productos en un almacén. En él se registran los datos básicos de cada producto, como el código, la descripción, la unidad de medida, el precio unitario y el stock.
El kardex de inventario es una herramienta fundamental para la gestión del inventario. Permite conocer la cantidad de cada producto en existencia, así como su valor total. También ayuda a identificar las tendencias de consumo y a detectar posibles problemas de desabastecimiento.
El kardex de inventario se puede llevar de forma manual o automatizada. En el caso de la gestión manual, el registro se realiza en una hoja de cálculo o en un libro. En el caso de la gestión automatizada, el registro se realiza en un sistema informático.
Los datos que se registran en el kardex de inventario son los siguientes:
El kardex de inventario se actualiza con cada movimiento de inventario. Cuando se recibe un producto, se registra la entrada con la cantidad recibida y el precio unitario. Cuando se vende un producto, se registra la salida con la cantidad vendida y el precio unitario.
El kardex de inventario es una herramienta esencial para la gestión del inventario. Permite conocer la cantidad de cada producto en existencia, así como su valor total. También ayuda a identificar las tendencias de consumo y a detectar posibles problemas de desabastecimiento.
Es necesario para llevar el control correcto del inventario tener almacenes,
A continuación mostramos como crear el CRUD de almacenes
El CRUD tendrá los siguientes datos
En esta serie de publicaciones vamos a hacer un sistema de punto de venta con el Framework de PHP CodeIgniter 4
El sistema será igual al JCPOS que ya veníamos haciendo pero con todas las ventajas que ofrece CodeIgniter
Primero crearemos el proyecto con Composer
composer create-project codeigniter4/appstarter ci4jcpos
Creamos nuestra base de datos en phpmyadmin con el nombre ci4jcpos
CREATE SCHEMA ci4jcpos DEFAULT CHARACTER SET utf8 COLLATE utf8_spanish2_ci
Ahora instalamos la plantilla boilerplate el cual nos instalara la plantilla adminlte3 con el administrador de usuario auth, lo instalamos corriendo el siguiente comando dentro del proyecto
En mi caso yo deje en así app/config/database.php
public array $default = [
'DSN' => '',
'hostname' => '127.0.0.1',
'username' => 'root',
'password' => '',
'database' => 'ci4jcpos',
'DBDriver' => 'MySQLi',
'DBPrefix' => '',
'pConnect' => false,
'DBDebug' => true,
'charset' => 'utf8',
'DBCollat' => 'utf8_general_ci',
'swapPre' => '',
'encrypt' => false,
'compress' => false,
'strictOn' => false,
'failover' => [],
'port' => 3306,
];
composer require julio101290/boilerplate
Ahora siguiente las instrucciones del paquete https://packagist.org/packages/julio101290/boilerplate corremos el comando migrate para auth
php spark auth:publish
Publish Migration? [y, n]: y
created: Database/Migrations/2017-11-20-223112_create_auth_tables.php
Remember to run `spark migrate -all` to migrate the database.
Publish Models? [y, n]: n
Publish Entities? [y, n]: n
Publish Controller? [y, n]: n
Publish Views? [y, n]: n
Publish Filters? [y, n]: n
Publish Config file? [y, n]: y
created: Config/Auth.php
Publish Language file? [y, n]: n
En app/config/auth.php modifcamos la matriz/arreglo de $views y la dejamos asi
public $views = [
'login' => 'julio101290\boilerplate\Views\Authentication\login',
'register' => 'julio101290\boilerplate\Views\Authentication\register',
'forgot' => 'julio101290\boilerplate\Views\Authentication\forgot',
'reset' => 'julio101290\boilerplate\Views\Authentication\reset',
'emailForgot' => 'julio101290\boilerplate\Views\Authentication\emails\forgot',
'emailActivation' => 'julio101290\boilerplate\Views\Authentication\emails\activation',
];
En app/config/filters.php en la matriz aliases agregamos los siguientes valores, ojo, no quitar los que estaban, solo agregar los que hacen falta
public $aliases = [
'login' => \Myth\Auth\Filters\LoginFilter::class,
'role' => \julio101290\boilerplate\Filters\RoleFilter::class,
'permission' => \julio101290\boilerplate\Filters\PermissionFilter::class,
];
Instalamos boilerplate con el siguiente comando
php spark boilerplate:install
En App/config/validation.php agregamos lo siguiente en la matriz de $$rulesSet
public $$ruleSets = [
\Myth\Auth\Authentication\Passwords\ValidationRules::class,
];
En App/entities/users.php en la matriz $cast lo dejamos así
protected $casts = [
'username' => 'string',
'email' => 'string',
'firstname' => 'string',
'lastname' => 'string',
'active' => 'boolean',
'force_pass_reset' => 'boolean',
];
En app/controller/home.php lo dejamos así para que entre directamente al administrador
<?php
namespace App\Controllers;
class Home extends BaseController
{
public function index()
{
return redirect()->to("/admin");
}
}
En app/config/constants.php al final del archivo le agregamos la siguiente constante para que nos permita debugear, una vez que este en producción se tiene que quitar
define("ENVIRONMENT","development");
En app/config/app.php le quita a la variable $indexPage el valor dejandolo en blanco, la variable defaultLocale y supportedLocales la dejamos con el valor “es”
public string $indexPage = '';
public string $defaultLocale = 'es';
public array $supportedLocales = ['en'];
En el archivo app/config/boilerplate.php asignamos el nombre de la app y en $i18n que es para el lenguaje de los datatables lo dejamos como Spanish
1: <?php
2: //FUNCION QUE ENVIA UN CORREO ELECTRONICO
3: function enviar_correo($correo_e,$nombre,$asunto,$edificio,$dia,$mes,$anio,$hora,$minuto)
4: {
5: $headers = "MIME-Version: 1.0n";
6: $headers .= "Content-type: text/html; charset=utf-8n";
7: $headers .= "From: no-reply n";
8: $headers .= "X-Mailer: PHP/" . phpversion();
9:
10: $mensaje="Estimado $nombre se ha registrado su prestamo para el $dia de $mes del $anio a las $hora : $minuto";
11: mail($correo_e,$asunto,$mensaje,$headers);
12: }
13: ?>
Creado con WordPress & Tema de Anders Norén