Vous êtes sur la page 1sur 65

UNIVERSIDAD MARIANO GÁLVEZ

Ingeniería en Sistemas de Información y Ciencias de la


Computación.

EXAMEN GENERAL PRIVADO


Área: Análisis y Diseño de Sistemas
Evaluadora: Inga. Karen Hernández

Jakehlin Rhaquel Soc López


3090-11-4012
Mazatenango, Suchitepéquez, 25 de Noviembre de 2018
Contenido
Problema ............................................................................................................................................ 3
Propuesta ........................................................................................................................................... 3
Objetivos ............................................................................................................................................ 4
General ........................................................................................................................................... 4
Específicos ...................................................................................................................................... 4
Propósito ............................................................................................................................................ 4
Alcance ............................................................................................................................................... 4
Análisis de Requerimientos .............................................................................................................. 6
Reconocimiento de Actores y Roles ................................................................................................. 7
Casos de Uso ...................................................................................................................................... 9
Registro de pedido ......................................................................................................................... 9
Actores participantes: ............................................................................................................... 9
Precondiciones: ........................................................................................................................ 10
Flujo de Eventos: ..................................................................................................................... 10
Entrega de productos a Chofer y ayudante .............................................................................. 11
Actores participantes: ............................................................................................................. 11
Precondiciones: ........................................................................................................................ 12
Flujo de Eventos: ..................................................................................................................... 12
Revisión de inventario y asignación de rutas a chofer. ............................................................ 12
Actores participantes: ............................................................................................................. 13
Precondiciones: ........................................................................................................................ 13
Flujo de Eventos: ..................................................................................................................... 13
Diagramas de Sistema ..................................................................................................................... 14
Ingreso de pedidos. ...................................................................................................................... 14
Asignación de camión a chofer................................................................................................... 15
Asignación de ruta a chofer. ....................................................................................................... 16
Diagrama de Estados ...................................................................................................................... 17
Ingreso de pedidos ....................................................................................................................... 17
Asignación de camión a chofer ................................................................................................... 18
Asignación de ruta a chofer ........................................................................................................ 19
Diagrama de Iteración o secuencia ................................................................................................ 20
Diagrama de Contexto .................................................................................................................... 21

1
Estudios de Factibilidades .............................................................................................................. 22
Factibilidad Técnica .................................................................................................................... 22
Factibilidad Financiera ............................................................................................................... 25
Factibilidad Legal........................................................................................................................ 27
Factibilidad Operacional ............................................................................................................ 28
Arquitectura .................................................................................................................................... 30
Diseño ............................................................................................................................................... 31
Diseño de Base de Datos.............................................................................................................. 31
Diccionario de datos .................................................................................................................... 32
Desarrollo ......................................................................................................................................... 38
Base de Datos ............................................................................................................................... 38
SQL Server 2008...................................................................................................................... 38
Laravel ......................................................................................................................................... 38
Migraciones .............................................................................................................................. 39
Schema ..................................................................................................................................... 39
Rutas ......................................................................................................................................... 41
Modelo ...................................................................................................................................... 41
Controlador ............................................................................................................................. 41
Vista .......................................................................................................................................... 43
Manual Técnico ............................................................................................................................... 48
Instalación SQL SERVER 2008 ................................................................................................. 48
Instalación de Láravel 5.............................................................................................................. 57
Manual de usuario........................................................................................................................... 63

2
Problema

Una empresa que se dedica a la distribución de aguas gaseosas, tiene una flotilla de

camiones repartidores y desea tener un mejor control tanto de los productos, como de los

clientes y camiones.

El proceso que realiza la empresa para el envío del producto es el siguiente:

- El cliente realiza el pedido y se lo da a los camiones.

- Los camiones llevan las facturas para los clientes, estos por lo regular son tiendas y

depósitos.

- Cada camión lleva un inventario de producto, y sería muy sano saber que lleva cada

uno.

- También se desea saber la ruta que cada camión tomo para ubicar en donde está el

piloto y sus ayudantes.

Propuesta

Se propone la implementación de un sistema donde los clientes puedan interactuar de una

manera fácil con la empresa, realizando pedidos, también se garantiza que dicho sistema hará

que se tenga un mejor control de la mercadería, los choferes, camiones y las rutas de los

mismos.

Esto se realizará capacitando a los empleados de la empresa para que puedan utilizar esta

nueva tecnología en las diferentes áreas laborales y así que el gerente tenga un mejor control

de cada área de trabajo.

3
Objetivos

General

Implementar un sistema para que el Administrador pueda tener un mejor control de

productos, empleados y servicios que ofrece la empresa.

Específicos

 Facilitar la forma en que realizan los pedidos los clientes.

 Mejorar la comunicación entre clientes, gerente y empleados.

 Adaptar a las necesidades de los empleados teniendo flexibilidad en la utilización de

las herramientas.

Propósito

Poseer una herramienta tecnológica que ayude en el control de pedidos que realizan los

clientes, registro y control de mercaderías, envíos de productos a clientes, camiones que

transportan la mercadería, choferes y control en las demás áreas que se manejan en la

empresa.

Alcance

El sistema web, será manejado a través de Internet por la empresa, esto será por medio de

módulos teniendo como pantalla principal un inicio de sesión el cual controlará

adecuadamente los niveles de seguridad para proteger la información el cual es el activo más

importante de la empresa.

4
5
Análisis de Requerimientos

Se decidió hacer una muestra de los datos respectivos, donde se tomó en cuenta libros de

inventario, formularios de registro de empleados y el cargo de cada uno, formularios de

registro de clientes, registros de pedidos, facturas, asignaciones de camiones a choferes,

asignación de rutas a choferes y camiones, forma de localización de los camiones durante su

recorrido, dichos informes y procesos son la fuente de información para el desarrollo de la

aplicación web.

Partiendo de los datos y procesos analizados anteriormente, se consideran los siguientes

requisitos para el sistema:

1. Se requiere un control de clientes: para esto se creará y desarrollará una tabla en la

base de datos donde se almacene la información de los clientes, que realizan pedidos

a la empresa.

2. Los choferes necesitan saber su ruta y camión cada día: para ello se creará una

tabla en la que el administrador verifique los camiones disponibles para asignarlos a

los choferes y también la ruta que le corresponde a cada uno, dependiendo de los

pedidos.

3. Se necesita manejar un control de la mercadería: es por ello que se desarrollarán

tablas para registrar la mercadería que ingresa, la que se vende con el precio de

compra y venta, también para que él chofer tenga su propio inventario de la

mercadería entregada.

4. Se desea conocer los puestos de cada empelado: se desarrollara una tabla donde se

registren los empleados y el puesto de cada uno.

6
5. Es necesario que los choferes sepan que producto entregar a cada cliente: para

esto se desarrollará una tabla donde el vendedor registre los pedidos de los clientes y

pueda generar reportes para que los choferes tengan las direcciones y verificar los

productos que correspondan a cada cliente.

6. El sistema será Web, para ello se necesita que sea seguro: se desarrollarán las

tablas debidas con la seguridad adecuada, donde se almacenen los usuarios y

contraseñas de acceso al sistema, esto para que cada usuario de cualquiera de las áreas

de las que se compone la organización, puedan accedes al sistema pero bajo ciertos

permisos de consulta, ingreso de datos, dependiendo del rol asignado.

Reconocimiento de Actores y Roles

En este proyecto participan 3 tipos de actores:

- Vendedor

- Bodeguero

- Cliente

- Chofer

- Ayudante

- Administrador

Cliente:

Es quien realiza pedidos a la empresa.

Vendedor:

Son los encargados de recibir los pedidos que realizan los clientes, generar

facturas y enviar a bodeguero y administrador.

7
Bodeguero:

Encargados de verificar, registrar y empacar la mercadería que sale y entra de

bodega.

Ayudante:

Es el encargado de recibir y subir los productos al camión.

Chofer:

Es el encargado de llevar la mercadería a su destino final, en este caso el

cliente.

Administrador:

Es el encargado de asignar todos los días cada camión al chofer, asignar rutas,

comprar mercadería y llevar el control de inventario.

8
Casos de Uso

Registro de pedido

Actores participantes:

- Cliente

- Sistema

- Vendedor

9
Precondiciones:

- Usuario Vendedor: tiene acceso al sistema mediante un usuario y contraseña

previamente asignada con los permisos necesarios.

- Usuario Cliente: inicia el caso de uso, realizando el pedido ya sea por llamada

telefónica o presentándose a la empresa.

Flujo de Eventos:

- Cliente, realiza llamada o visita distribuidora para realizar pedido de gaseosas.

- Vendedor, recibe pedido y verifica que los productos solicitados por el cliente, estén

en existencia.

- Si no hay algún producto disponible en bodega, el vendedor ofrece otro producto a

cliente.

- Cliente confirma el pedido.

- Vendedor, ingresa datos a factura en el sistema.

- Vendedor, envía el pedido a bodeguero y administrador

10
Entrega de productos a Chofer y ayudante

Actores participantes:

- Vendedor

- Bodeguero

- Ayudante

- Chofer
11
Precondiciones:

- Usuario vendedor, chofer y bodeguero: tiene acceso al sistema mediante un usuario

y contraseña previamente asignada con los permisos necesarios.

- Usuario vendedor: inicia el caso de uso, enviando pedido a bodeguero.

Flujo de Eventos:

- Vendedor, envía pedido a bodeguero y entrega factura a chofer.

- Bodeguero, recibe pedido entrega productos a ayudante para ser empacados y

actualiza kardex para llevar el control de productos faltantes o en existencia.

- Ayudante, recibe los productos y los sube al camión.

- Chofer, verifica dirección, entrega producto al cliente y cobra el pedido.

Revisión de inventario y asignación de rutas a chofer.

12
Actores participantes:

- Vendedor

- Administrador

Precondiciones:

- Usuarios vendedor y administrador: tiene acceso al sistema mediante un usuario y

contraseña previamente asignada con los permisos necesarios.

- Usuario vendedor: inicia el caso de uso, enviando reportes a Administrador

Flujo de Eventos:

- Vendedor, envía reportes a Administrador.

- Administrador, verifica inventarios y pedidos.

- Administrador, verifica los direcciones de pedidos.

- Administrador, asigna camión y rutas a conductor de acuerdo a los pedidos recibidos.

13
Diagramas de Sistema

Ingreso de pedidos.

14
Asignación de camión a chofer.

15
1
Asignación de ruta a chofer.

16
2
Diagrama de Estados

Ingreso de pedidos

17
Asignación de camión a chofer

18
1
Asignación de ruta a chofer

19
2
Diagrama de Iteración o secuencia

20
Diagrama de Contexto

21
Estudios de Factibilidades

Para que el proyecto pueda ponerse en marcha, es necesario antes realizar ciertos estudios

para considerar que lo propuesto sea factible, es por ello que se realizaron los análisis de las

factibilidades más importantes, en este caso son los aspectos financiero, legal, técnico y

operacional.

Factibilidad Técnica

Estudio realizado para comprobar que el proyecto es factible técnicamente; consistió en

una evaluación de la tecnología que se necesita para la implementación, dicho estudio tuvo

como objetivo recopilar información necesaria sobre los componentes técnicos que se

necesitan así como también la disponibilidad en el mercado y de ser necesario, los

requerimientos tecnológicos que deben ser adquiridos para el desarrollo y puesta en marcha

del sistema en cuestión.

De acuerdo a la tecnología necesaria para la implantación del Sistema, se evaluó bajo

dos aspectos importantes los cuales son: Hardware y Software.

Hardware:

En cuanto a este aspecto se requieren de dos servidores, uno que alojará la base de datos

del sistema mencionado y el otro que almacenará la aplicación web. Las características de
0
los servidores son las siguientes:

Servidor de Base de Datos

Procesador

 Intel Core i3®

22
Sistema operativo

 Microsoft® Windows Server® 2016

Memoria1

 Arquitectura: hasta 2400 MT/s DDR4 DIMM

Tipo de memoria: UDIMM

Sockets del módulo de memoria: 4

RAM máximo: hasta 64 GB

Compartimientos de unidades

 4 discos duros de 3,5" con cables

Dimensiones

 Alto: 14,17 in o 36,0 cm

Ancho: 6,89 in o 17,5 cm

Profundidad: 17,12 in o 43,5 cm

Chasis

 Minitorre

Alimentación

 PSU de 290W con cable

Controladoras RAID

 S130,H330,H730, H830

Chipset

 Intel C236

Almacenamiento

23
1
 Discos duros de 3,5" Enterprise SATA (7200)

Discos duros de 3,5" nearline SAS y 7200 RPM

Unidades de entrada SATA de 3,5” y 7200

Ranuras

 4 ranuras:

1x8 PCIe de 3.0 (de 16 conectores)

1x4 PCIe de 3.0 (de 8 conectores)

1x4 PCIe de 3.0 (de 8 conectores)

1x1 PCIe de 3.0 (de 1 conector)

Controladora de red

 Broadcom® BCM5720

Acceso al dispositivo

 8 USB en total:

USB posterior: dos USB 3.0 más cuatro USB 2.0

USB frontal: un USB 2.0 más un USB 3.0

Servidor Web

Dell R710

2x Intel Xeon E5645 Six Core 2.40 GHz

16GB RAM ECC DDR3

2x 1000 GB SAS

2 fuentes de alimentación

4x Ethernet 1Gbps

2x VGA
2
24
4x USB Externos

1x USB Interno

1x SD interno

PERC 6/i 256MB cache (sin batería)

iDRAC6 Express

Computadoras para los usuarios

Dell Optiplex 760 Desktop

-Procesador Intel Core 2 Dúo 2.4GHZ.

-Memoria Ram 2GB.

-Disco duro 160GB S-ATA.

-Teclado y Mouse.

-Monitor LCD de 17 pulgadas..

-Lector de DVD / CD.

-Ethernet.

Por lo antes mencionado el proyecto se considera factible desde el punto de vista técnico,

debido a que el equipo requerido es abundante en el mercado y utilizando la Web, se puede

tener acceso al sistema desde diferentes puntos contando con niveles de seguridad confiables.

Factibilidad Financiera

Uno de los aspectos importantes para la implementación del sistema propuesto es la

factibilidad financiera. Por lo que se determinó los recursos para el funcionamiento del

mismo, haciendo un estudio donde se puso de manifiesto el equilibrio existente entre los

325
costos del sistema y los beneficios que se derivaron de éste, lo cual llevó a analizar el sistema

propuesto.

A continuación se muestra los costos convenientes del sistema propuesto y una lista de

los costos que conlleva implantar el mismo, y los costos de operación.

Recursos Humanos
Cargo Costo Total
Análisis/Diseño Q 20,000.00 Q 25,000.00
Adaptación Q 5,000.00

Recursos Tecnológicos

Descripción Precio Unitario Cantid Total


ad

Servidor para Base de datos Q 7,546.44 1 Q 7,546.44


Servidor Web Q 15,069.78 1 Q 15, 069.78
PCs para usuarios Q 1,200.00 20
Dell Optiplex 760 Desktop Q 24,000.00

SQL Server 2008 Xpress Q 0.00 0 0.00


Licencia Windows Server Q 1,740.00 2 Q 1,740.00
2016 r2
Licencia Windows 10 Q 26,951.58 1 Q 26,951.58
Enterprise para 50 usuarios
Cable UTP metro Q 2.00 200 Q 400.00
Conector RJ45 Q 2.50 40 Q 100.00

Recursos Materiales

Recurso Costo Total


Papel Q 50.00 Q 300.00
Impresiones Q 50.00

Transporte Q 100.00

Viáticos Q 100.00

26
4
Total Costos

Recursos Humanos Q 25,000.00 Q 102,107.80

Recursos Tecnológicos Q 76,807.80

Recursos Materiales Q 300.00

La realización de este proyecto se logra con un costo de 102,108.80 quetzales, el cual se

considera una inversión, debido a que la empresa cuenta con los recursos para realizar tal

inversión, se considera el proyecto factible económicamente.

Factibilidad Legal

En el punto de vista legal se consideraron varios puntos para la aprobación de dicho

proyecto en los cuales se analizó lo siguiente:

Software

Para el requerimiento del software se necesita lo siguiente:

 Sistema Operativo Windows

 SQL Server para base de datos

Las licencias para el software para la implantación del sistema a emplearse serán

adquiridas de una manera autentica por lo que no habrá problemas legales en el futuro.

En cuanto a los términos y condiciones de uso del sistema implementado se proporcionará

al cliente los servicios que consisten en presentar material gráfico que constituye al diseño

del sistema, con los elementos e indicaciones necesarias para su fin.

527
Se entregará un cd con todos los archivos necesarios para el funcionamiento del sistema,

incluyendo el manual de usuario.

El encargado de la empresa asumirá los gastos relacionados con las licencias de software

necesarios para la realización de dicho sistema. Dichos gastos están descritos en la parte de

la factibilidad financiera.

Luego de analizar los aspectos anteriores se llegó a la conclusión de que no habrá

inconveniente alguno para la realización e implementación del sistema por lo que este

proyecto es factible legalmente.

Factibilidad Operacional

Analizando el punto de vista operativo, considero que la implementación del nuevo

sistema para la empresa en la cual será aplicado será positivo y sin complicaciones debido a

los siguientes factores estudiados.

En primer lugar, la idea surge de una necesidad detectada por los empleados que trabajan

vendiendo los productos. Por lo cual, éste sistema se enfoca a resolver un problema concreto

y que fija un punto de partida a la resolución de los problemas por ellos planteado.

La implementación de dicho proyecto no representa un cambio radical en las operaciones

principales de dicha empresa, que se llevan a cabo durante el proceso de compra y venta de

producto.

El sistema presentará una interfaz cliente servidor, que solo requerirá en concepto de

conocimientos previos como estar familiarizado con una PC. Esto no es un problema ya que

hoy en día las personas cada vez tienen más facilidades de tener un computador en sus

hogares o simplemente pueden tener acceso fácil a una.


286
Se necesitará que para un funcionamiento óptimo del sistema los usuarios que tengan

contacto con la aplicación mantengan una constante capacitación para poder utilizarlo

eficientemente para lograr el máximo uso de todas las herramientas proporcionadas.

Desde el punto de vista del administrador, estamos hablando de una persona capacitada,

quien inclusive durante sus estudios necesitaron valerse de una PC para buscar información

en la web o generar informes en algún procesador de texto. Tampoco deberían sentirse

abrumados por este nuevo proyecto, y mucho menos teniendo en cuenta como se mencionó

anteriormente que la idea de aceptar dicho proyecto surge de él. Con esto último, se

contempla la motivación que hace posible de manera más fácil la implementación de ésta

nueva propuesta.

Luego de realizar este estudio llego a la conclusión que se cuenta con el apoyo de las personas

involucradas, lo cual constituye el principal impedimento para hacer posible la concreción

de éste proyecto.

729
Arquitectura

30
Diseño

Diseño de Base de Datos

31
1
Diccionario de datos

Tabla Campos Tipo de Campo

asignacion_camiones camion int(4) Recibe la matrícula de

la tabla camión

asignacion_camiones created_at datetime(8) Controla registros

asignacion_camiones deleted_at datetime(8) Controla deletes

asignacion_camiones empleado int(4) Nombre del conductor

asignacion_camiones fecha nvarchar(8000) Fecha de la asignación

asignacion_camiones id int(4) Clave única de registro

asignacion_camiones recorrido nvarchar(8000) Ruta asignada

asignacion_camiones updated_at datetime(8) Controla edits

camiones created_at datetime(8) Controla registros

camiones deleted_at datetime(8) Controla deletes

camiones id int(4) Clave única de registro

camiones km_recorridos nvarchar(8000) Cantidad km recorridos

camiones matricula nvarchar(8000) Matrícula del camión

camiones modelo nvarchar(8000) Modelo del camión

camiones updated_at datetime(8) Controla edits

0
clientes created_at datetime(8) Controla registros

clientes deleted_at datetime(8) Controla deletes

clientes direccion nvarchar(8000) Direccion del cliente

clientes id int(4) clave única de registro

clientes nit nvarchar(8000) Nit del cliente

32
clientes nombre nvarchar(8000) Nombre del cliente

clientes telefono nvarchar(8000) Numero de telefono

clientes updated_at datetime(8) Controla edits

det_envios camion int(4) Matricula de camión

det_envios created_at datetime(8) Controla registros

det_envios deleted_at datetime(8) Controla deletes

det_envios direccion nvarchar(8000) Dirección de entrega

det_envios empleado int(4) Nombre del conductor

det_envios envio int(4) Código del envío

det_envios factura int(4) Factura del pedido

det_envios id int(4) Clave única de registro

det_envios subtotal nvarchar(8000) Subtotal

det_envios updated_at datetime(8) Controla edits

det_facturas cantidad int(4) Cantidad de productos

det_facturas cliente int(4) Nombre del cliente

det_facturas created_at datetime(8) Controla registros

det_facturas deleted_at datetime(8) Controla deletes

det_facturas empleado int(4) Nombre del vendedor

det_facturas factura int(4) Numero de factura

det_facturas fecha nvarchar(8000) Fecha de facturación

det_facturas id int(4) clave única de registro

det_facturas precio_unit int(4) Precio del producto

det_facturas producto int(4) Nombre del producto

det_facturas subtotal int(4) Subtotal


133
det_facturas updated_at datetime(8) Controla edits

distribuidoras created_at datetime(8) Controla registros

distribuidoras deleted_at datetime(8) Controla deletes

distribuidoras direccion nvarchar(8000) Dirección distribuidora

distribuidoras id int(4) clave única de registro

distribuidoras nit nvarchar(8000) Nit de distribuidora

distribuidoras nombre nvarchar(8000) Nombre distribuidora

distribuidoras telefono nvarchar(8000) Numero teléfono

distribuidoras updated_at datetime(8) Controla edits

empleados apellidos nvarchar(8000) Apellidos del empleado

empleados correo_electronico nvarchar(8000) e-mail del empleado

empleados created_at datetime(8) Controla registros

empleados deleted_at datetime(8) Controla deletes

empleados direccion nvarchar(8000) Dirección de empleado

empleados dpi nvarchar(8000) No. DPI de empleado

empleados id int(4) clave única de registro

empleados nombres nvarchar(8000) Nombres del empleado

empleados rol int(4) Puesto del empleado

empleados salario nvarchar(8000) Salario del empleado

empleados telefono nvarchar(8000) Número de teléfono

empleados updated_at datetime(8) Controla edits

envios cliente int(4) Nombre del cliente

envios created_at datetime(8) Controla registros

envios deleted_at datetime(8) Controla deletes

342
envios empleado int(4) Nombre chofer

envios factura int(4) Número de factura

envios fecha nvarchar(8000) Fecha de envío

envios id int(4) Clave única de registro

envios ruta nvarchar(8000) Dirección de envío

envios total int(4) Monto total de envíos

envios total_pedidos int(4) Cantidad de Envíos

envios updated_at datetime(8) Controla edits

facturas cliente int(4) Nombre del cliente

facturas created_at datetime(8) Controla registros

facturas deleted_at datetime(8) Controla deletes

facturas descripcion nvarchar(8000) Descripción de factura

facturas empleado int(4) Nombre del vendedor

facturas fecha nvarchar(8000) Fecha de facturación

facturas id int(4) clave única de registro

facturas numero int(4) Número de factura

facturas serie nvarchar(8000) Serie de factura

facturas total int(4) Monto total

facturas updated_at datetime(8) Controla edits

kardex anio nvarchar(8000) Año de registro

kardex cantidad int(4) Cantidad producto

kardex created_at datetime(8) Controla registros

kardex deleted_at datetime(8) Controla deletes

kardex dia_transaccion int(4) Fecha de transacción

353
kardex id int(4) clave única de registro

kardex mes_transaccion nvarchar(8000) Mes de transacción

kardex producto int(4) Nombre del producto

kardex tipo_transaccion nvarchar(8000) Entró/salió producto

kardex updated_at datetime(8) Controla edits

migrations batch int(4) Tabla para migración

migrations id int(4) clave única de registro

migrations migration nvarchar(8000) Tabla para migración

password_resets created_at datetime(8) Controla registros

password_resets email nvarchar(8000) Correo de usuario

password_resets token nvarchar(8000)

productos contenido nvarchar(8000) Medida de la gaseosa

productos created_at datetime(8) Controla registros

productos deleted_at datetime(8) Controla deletes

productos envase nvarchar(8000) Material de envase

productos existencia nvarchar(8000) Cantidad producto disp.

productos id int(4) clave única de registro

productos precio nvarchar(8000) Precio del producto

productos sabor nvarchar(8000) Sabor del producto

productos updated_at datetime(8) Controla edits

roles created_at datetime(8) Controla registros

roles deleted_at datetime(8) Controla deletes

roles id int(4) clave única de registro

roles nombre nvarchar(8000) Nombre del puesto

364
roles updated_at datetime(8) Controla edits

users created_at datetime(8) Controla registros

users email nvarchar(8000) Correo del usuario

users id int(4) clave única de registro

users name nvarchar(8000) Nombre del usuario

users password nvarchar(8000) Contraseña de usuario

users remember_token nvarchar(8000)

users updated_at datetime(8) Controla edits

37
5
Desarrollo

Base de Datos

SQL Server 2008

Para la base de datos se optó por utilizar SQL Server 2008.

Microsoft SQL Server 2008 R2 Express con Service Pack 2 es una edición gratuita y con

muchas características de SQL Server que resulta idónea para aprender, desarrollar y activar

pequeñas aplicaciones de servidor, web y de escritorio, así como para su redistribución a

través de ISV.

Características clave que ofrece SQL Server 2008 R2 SP2 Express:

 Admite los procedimientos, desencadenadores, funciones y vistas almacenados

 Almacene todo tipo de datos empresariales con soporte nativo para datos relacionales,

XML, FILESTREAM y datos espaciales

 Rendimiento mejorado, facilidad de uso y visualización además de la integración con

el sistema de Microsoft 2007 Office en SQL Server Reporting Services

 Simplifique las tareas de desarrollo mediante el aprovechamiento de las capacidades

existentes de T-SQL, ADON.NET Entity Framework y LINQ.

 Estrecha integración con Visual Studio y Visual Web Developer

Laravel

Laravel es un framework PHP de código abierto que intenta aprovechar las ventajas de

otros Frameworks y desarrollar con las últimas versiones de PHP (entre otras muchas cosas

que aporta como framework).

6 38
Su filosofía es desarrollar código PHP de forma elegante y simple basado en un modelo

MVC(Modelo-Vista-Controlador).

En su web https://laravel.com/ encontraremos una extensa y organizada documentación que

hará mucho más fácil y efectiva la labor de los desarrolladores. Este framework está en

constante mantenimiento y expansión por parte de sus desarrolladores lo que asegura la

continuidad y seguridad del framework con actualizaciones regulares.

Migraciones

Las migraciones son un tipo de control de versión para la base de datos. Permiten que un

equipo modifique el esquema de la base de datos y se mantenga actualizado sobre el estado

actual del esquema. Las migraciones generalmente se emparejan con Schema Builder para

administrar fácilmente el esquema de su aplicación.

Para crear las migraciones se utilizó el siguiente comando.

php artisan migrate:make create_distribuidora_table

Schema

Schema de algunas tablas


public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}

public function up()


{
Schema::create('password_resets', function (Blueprint $table) {

397
$table->string('email')->index();
$table->string('token');
$table->timestamp('created_at')->nullable();
});
}

public function up()


{
Schema::create('distribuidoras', function (Blueprint $table) {
$table->increments('id');
$table->text('nit');
$table->text('nombre');
$table->text('telefono');
$table->text('direccion');
$table->softDeletes();
$table->timestamps();
});
}

public function up()


{
Schema::create('roles', function (Blueprint $table) {
$table->increments('id');
$table->text('nombre');
$table->softDeletes();
$table->timestamps();

});
}
public function up()
{
Schema::create('empleados', function (Blueprint $table) {
$table->increments('id');
$table->text('dpi');
$table->text('nombres');
$table->text('apellidos');
$table->text('telefono');
$table->text('direccion');
$table->text('correo_electronico');
$table->text('salario');
$table->integer('rol')->unsigned();
$table->foreign('rol')->references('id')->on('roles');
$table->softDeletes();
$table->timestamps();

});
}
40
8
Rutas
Las rutas de nuestra aplicación aplicación se tienen que definir en el fichero routes/web.php.
Este es el punto centralizado para la definición de rutas y cualquier ruta no definida en este
fichero no será válida, generado una excepción (lo que devolverá un error 404).

Route::get('inicio', 'RolController@inicio');
Route::resource('roles','RolController');
Route::resource('distribuidoras','DistribuidoraController');
Route::resource('empleados','EmpleadoController');
Route::resource('camiones','CamionController');
Route::resource('asignacion_camion','AsignacionCamionController');
Route::resource('clientes','ClienteController');
Route::resource('factura','FacturaController');
Route::resource('detfactura','DetFacturaController');
Route::resource('envio','EnvioController');
Route::resource('detenvio','DetEnvioController');
Route::get('mostrar', 'DistribuidoraController@mostrar');

Modelo
El ORM de Eloquent incluido con Laravel proporciona una implementación de ActiveRecord
simple y hermosa para trabajar con su base de datos. Cada tabla de base de datos tiene un
"Modelo" correspondiente que se utiliza para interactuar con esa tabla.

namespace App;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\softDeletes;

class Rol extends Model


{
use softDeletes;
protected $dates = ['deleted_at'];
protected $table = 'roles';
protected $primary = 'id';

La configuración del modelo anterior es la misma para todas las tablas.

Controlador
Los Controladores puede agrupar las peticiones HTTP relacionada con la manipulación
lógica en una clase. Los Controladores normalmente se almacenan en el directorio de
aplicación app/Http/Controllers/.
Controlador de algunas tablas

41
9
Rol
public function create()
{
$roles = Rol::all();
return view('roles.create', compact('roles'));
// return "hola";

public function store(Request $request)


{
try
{
$newObject = new Rol;
$newObject->nombre = $request->get('nombre');
if($newObject->save())
{
return back()->with('msj', 'Rol Registrado correctamente');
}
else
if (!$newObject->save())
{
return back()->with('error', 'Rol no registrado');
}
}
catch(Exception $e)
{
$returnData = array(
'status' => 500,
'message' => $e->getMessage()
);
return Response($returnData, 500);
}
}

Empleado
public function create()
{
$empleados = Empleado::all();
$roles = DB::select("Select id, nombre from roles");
return view('empleados.create')
->with(compact('empleados'))
->with(compact('roles'));
}
Asinación de Camión a Chofer
public function create()
10
42
{
$asignacion_camiones = Asignacion_camion::all();
$empleados = DB::select("Select id, nombres from empleados");
$camiones = DB::select("Select id, matricula from camiones");
return view('asignacion_camion.create')
->with(compact('asignacion_camiones'))
->with(compact('empleados'))
->with(compact('camiones'));
}

public function store(Request $request)


{
try
{
$newObject = new Asignacion_camion;
$newObject->fecha = $request->get('fecha');
$newObject->empleado = $request->get('empleado');
$newObject->camion = $request->get('camion');
$newObject->recorrido = $request->get('recorrido');
if($newObject->save())
{
return back()->with('msj', 'Camion Asignado');
}
else
if (!$newObject->save())
{
return back()->with('error', 'Camion no Asignado');
}
}
catch(Exception $e)
{
$returnData = array(
'status' => 500,
'message' => $e->getMessage()
);
return Response($returnData, 500);
}

Vista
Las vistas en Laravel son la parte pública que el usuario de nuestro sistema va a poder ver,

se escriben en HTML junto con un motor de plantillas llamado Blade. Las vistas se

encuentran ubicadas en la carpeta resources/views/ y Laravel por defecto trabaja con la idea
11
43
de que tenemos que escribir la menor cantidad de código repetido, modularizar nuestro

código en donde más se pueda.

Algunas Vistas

Rol
@extends('admin.template.main')
@section('content')

<div class="container">
<div class="p-3 mb-2 bg-info text-white">
<h1>Registrar Rol</h1>
</div>

{!! Form::open(['route' => 'roles.store','method'=>'POST'])!!}

<div class="form-group">
{!!Form::label('nombre','Nombre del puesto a registrar')!!}
{!! Form::text('nombre', null, ['class' => 'form-control', 'placeholder' => 'Nombre del
puesto', 'required'])!!}
</div>

<div class="form-group">
{!! Form::submit('Registrar',['class' => 'btn btn-primary'])!!}
</div>
{!! Form::close()!!}
@endsection

Empleado
@extends('admin.template.main')
@section ('title','Crear Empleado')
@section('content')

<div class="container">
<div class="p-3 mb-2 bg-info text-white">
<h1>Registrar Empleado</h1>
{!! Form::open(array('url'=>'empleado','method'=>'POST')) !!}
<div class="form-group">
{!!Form::label('DPI') !!}
{!!Form::text('dpi', null, ['class' => 'form-control','placeholder'=>'Ingrese DPI','required'])
!!}</div>
<div class="form-group">
{!!Form::label('Nombre') !!}
12
44
{!!Form::text('nombres', null, ['class' => 'form-control','placeholder'=>'Ingrese Nombres
completos','required']) !!}</div>
<div class="form-group">
{!!Form::label('Apellidos') !!}
{!!Form::text('apellidos', null, ['class' => 'form-control','placeholder'=>'Ingrese
Apellidos','required']) !!}</div>
<div class="form-group">
{!!Form::label('Telefono') !!}
{!!Form::text('telefono', null, ['class' => 'form-control','placeholder'=>'Ingrese numero de
telefono','required']) !!}</div>
<div class="form-group">
{!!Form::label('Direccion') !!}
{!!Form::text('direccion', null, ['class' => 'form-control','placeholder'=>'Ingrese la
direccion','required']) !!}</div>
<div class="form-group">
{!!Form::label('correo_electronico') !!}
{!!Form::text('correo_electronico', null, ['class' => 'form-control','placeholder'=>'Ingrese el
correo electronico','required']) !!}</div>
<div class="form-group">
{!!Form::label('salario') !!}
{!!Form::text('salario', null, ['class' => 'form-control','placeholder'=>'Ingrese el
salario','required']) !!}</div>

<div class="form-group">
{!!Form::label('Rol')!!}
<select name="rol" class="form-control">
@foreach($roles as $rol)
<option value="{{$rol->id}}">{{$rol->nombre}}</option>
@endforeach
</select>
</div>

<div class="modal-footer">
{!!Form::submit('Registrar', ['class' => 'btn btn-primary'])!!}
{!!Form::submit('Cancelar', ['class' => 'btn btn-danger','data-dismiss' =>'modal'])!!}</div>

{!! Form::close() !!}


</div>
</div>
@endsection

Asignación de Camión a Chofer


@extends('admin.template.main')
@section ('title','Crear Asignacion')
@section('content')

13
45
<div class="container">
<div class="p-3 mb-2 bg-info text-white">
<h1>Asignar Camion a Chofer</h1>
{!!
Form::open(array('url'=>'asignacion_camion','method'=>'POST')) !!}
<div class="form-group">
{!!Form::label('Fecha')!!}
{!!Form::text('fecha', null, ['class' => 'form-control','placeholder'=>'Ingrese la
fecha','required']) !!}</div>

<div class="form-group">
{!!Form::label('Nombre del conductor')!!}
<select name="empleado" class="form-control">
@foreach($empleados as $empleado)
<option value="{{$empleado->id}}">{{$empleado->nombres}}</option>
@endforeach
</select>
</div>

<div class="form-group">
{!!Form::label('Matricula del camion')!!}
<select name="camion" class="form-control">
@foreach($camiones as $camion)
<option value="{{$camion->id}}">{{$camion->matricula}}</option>
@endforeach </select> </div>

<div class="form-group">
{!!Form::label('Ruta Asignada')!!}
{!!Form::text('recorrido', null, ['class' => 'form-control','placeholder'=>'Ingrese la Ruta a
Asignar','required']) !!}
</div>

<div class="modal-footer">
{!!Form::submit('Registrar', ['class' => 'btn btn-primary'])!!}
{!!Form::submit('Cancelar', ['class' => 'btn btn-danger','data-dismiss' =>'modal'])!!}
</div>
{!! Form::close() !!}
</div>
</div>

46
14
47
15
Manual Técnico
Instalando SQL SERVER 2008

Al empezar a instalar SQL SERVER 2008, nos aparecerá una ventana que nos indicará que el programa está
procesando la operación para abrir el asistente de instalación

Luego de unos segundos, el programa nos abrirá la ventana Centro de Instalación de SQL Server con un menú en
la parte izquierda con 7 (seis) Indices;

Planeamiento Herramientas Avanzadas


Instalación Recursos Opciones
Mantenimiento
En el indice PLANEAMIENTO; encontraremos las opciones para planear o saber como preparar nuestra máquina en
la que instalaremos el SQL Server 2008

48
16
Nuestro primer paso despues de haber aparecido la ventana Centro de Instalación de SQL Server, será elegir el
segundo indice INSTALACION, allí seleccionaremos (Hacer clic) la primera opción que aparece de las cinco (5),
“Nueva Instalación Independiente de SQL Server o agregar características a una instalación existente”.

Nos aparecerá la ventana “Reglas Auxiliares del Programa de Instalación”, donde el programa tratará de identificar
posibles problemas que puedan surgir al instalar los archivos auxiliares, al finalizar nos indicará cuantas reglas se
cumplen, cuantas no, cuantas advertencias existen y cuantas omisiones hay…

491
Es muy importante revisar el informe detallado que nos muestra para ver qué o cuales problemas se han encontrado,
después de revisar el informe debemos asegurarnos de corregir los probemas existentes para que nuestra instalación
no sufra percanses y quede correctamente instalada, para eso, después de corregir los errores; hacemos clic en el
botón “Volver a Ejecutar” ubicado en la parte derecha debajo de la barra de progreso.

Después de verificar que no tenemos errores o advertencias, continuamos con nuestra instalación haciendo clic en el
botón “Aceptar”, esto cerrará la ventana “Reglas Auxiliares” y aparecerá la ventana CLAVE DE PRODUCTO…
Será en esta ventana donde seleccionaremos la edición a instalar ya sea una versión de prueba o una con licencia.

Si no poseemos una licencia podemos elegir cualquiera de las opciones gratuitas que aparecen en el menu desplegable
“Especifique una edición Gratuita”, y hacemos clic en siguiente… Por el contrario si ya poseemos una licencia
simplemente seleccionamos “Escriba la clave del producto” , escribimos la clave de nuestra versión y cliqueamos en
siguiente.

50
2
Inmediatamente después de haber seleccionado nuestra edición a instalar, aparecerá la ventana TERMINOS DE
LICENCIA, Luego de leer los términos de licencia (bueno reconozco que el 99% de los usuarios y/o instaladores no
las leen), clicamos en “Acepto los términos de licencia”, y luego clic en siguiente.

Se abrirá la ventana ARCHIVOS AUXILIARES que se encargará (como bien dice su nombre), de instalar los
“(Valga la redundancia) Archivos Auxiliares” del programa de instalación, para ello sólo basta con clicar en el botón
“Instalación” ubicado en la parte inferior derecha de la ventana.

513
Al hacer clic en “Instalación” nos irá mostrando por medio de una barra el progreso de la instalación de dichos
archivos.

Al finalizar de instalar los archivos aparecerá de nuevo la ventana de REGLAS AUXILIARES del programa de
Instalación, pero esta vez chequeará y nos mostrará otras opciones que no son verificadas en el paso anterior antes de
solicitarnos el número de clave.

Al igual que en el paso anterior, revisamos los detalles, comprobamos que todo esté correcto y damos clic en el botón
“Siguiente”.

En la siguiente ventana que aparecerá haremos toda una SELECCION DE CARACTERÍSTICAS que deseemos
instalar… Debemos revisar que el directorio de características compartidas esté en la ruta “C:\Program
Files\Microsoft SQL Server\” que es la ruta por defecto de la instalación, y para evitar posibles fallas y errores es
recomendable siempre utilizar la ruta por defecto.

Después de seleccionar las características a instalar y confirmar la ruta del directorio, hacemos clic en siguiente.

524
En la pantalla CONFIGURACION DE INSTANCIA es recomendable dejar los valores por defecto, al menos (claro
está) que se tenga un conocimiento avanzado, pero eso es parte de otro tutorial en donde veremos opciones avanzadas
de configuración.

Luego de hacer clic en siguiente aparecerá la ventana Requisitos de espacio en disco el cuál nos indicará cuál es el
espacio necesario para la instalación y cuanto espacio disponible tenemos en el disco, después de comprobar que
disponemos de espacio suficiente para continuar con la instalación, hacemos clic en siguiente para continuar.

535
Ahora configuraremos el motor de la Base de Datos, en este punto podemos usar dos opciones, la primera dejar por
defecto la opción Modo Autenticación de Windows que usará simplemente nuestras credenciales de ingreso a nuestra
sesion de windows, y la segunda opción (Que es la que usaremso acá) Modo Mixto (Autenticación de SQL Server y
de Windows), en la cual podemos especificar una o varias cuentas de administración y asignarle sus respectivas
contraseñas.

Al aparecer la ventana Configuración de Analysis Services, podemos asignar los usuarios que tendrán permisos
administrativos para el Analysis Services, en este caso sólo asignaremos al usuario agregado anteriormente haciendo
clic en Agregar Usuario Actual y damos clic en siguiente.

Nos aparecerá entonces la siguiente ventana Configuración de Reporting Services en la cuál seleccionaremos la
primera opción (Instalar la configuración predeterminada del modo nativo) con esto podremos instalar el servidor
de informes y llegar a utilizarlo apenas finalicemos la instalación.

54
6
Al terminar esta parte nos aparecerá la ventana Informes de Errores y Uso, acá podemos seleccionar si deseamos
enviar o no informes de errores y algunos datos de como usamos nuestro SQL Server 2008, esto no es obligatorio
seleccionarlo, sin embargo al marcar las casillas de verificación, podremos enviar varios datos que ayudarán a la
compañía a mejorar y eliminar ciertos “bugs” en las versiones futuras.

Después de decidir si vamos a enviar o no los reportes, damos clic en siguiente para que nos aparezca la pantalla
de Reglas de Instalación en la cual se ejecutarán varias reglas para ver si se puede continuar con la instalación o si
se debe bloquear el proceso de instalación…

Al completar la ejecución de las reglas de instalación, se nos presentará un informe detallado para poder ver si se ha
cumplido con todas las reglas o si ha habido algún error, el cuál nos lo presentará como una Advertencia, en caso que
todo esté bien nos mostrará una pantalla parecida a esta:

55
7
Al confirmar en el informe y en la pantalla de detalles que todo está correcto, damos clic en siguiente para pasar a la
ventana LISTO PARA INSTALAR en la que encontraremos un resúmen detallado de la configuración que hemos
armado para instalar nuestro SQL Server 2008.

Acá podemos revisar nuevamente en este resúmen si no se nos ha escapado nada con respecto a lo que necesitamos
y deseamos instalar de nuestro SQL Server 2008 y damos clic en siguiente para empezar AHORA SI con toda la
instalación real de nuestro SQL Server 2008.

Al terminar el proceso de instalación, la ventana de nos mostrará un pequeño resúmen con todas las características
que habiamos seleccionado, y nos confirmará el estado de las mismas para ver si fueron instaladas correctamente o
si ocurrió algún error no previsto en la instalación…

56 8
Luego de confirmar que todos los estados de nuestras características escogidas están marcadas como correctas,
procedemos a hacer clic en el botón “siguiente” y nos aparecerá una nueva y última ventana “OPERACION
COMPLETADA” la cuál nos informará que hemos terminado ya de instalar nuestro SQL Server 2008 en nuestra
máquina y nos dará la notificación de que tenemos un archivo de registro de resumen almacenado en nuestro disco
duro el cuál podemos revisar cuando sea necesario accediendo a la dirección mostrada en el asistente.

Hacemos clic en “CERRAR” y con esto hemos terminado de instalar nuestro SQL Server 2008 y podremos empezar
a utilizarlo y trabajar con él inmediatamente.

Instalación de Láravel 5

1. Instalar Composer
Composer es una herramienta para gestionar las dependencias en PHP. Te permite declarar
las librerías de las cuales tu proyecto depende o necesita y las instala en el proyecto por ti,
si deseas saber más acerca de Composer lee el siguiente post.
Para instalar Composer en Windows debemos descargarlo de su página oficial y en la
sección Windows Installer, haz click en Composer-Setup.exe.

Una vez que la descarga finalice, ejecuta el instalador y haz click en Next.

57 9
Si quieres administrar tus proyectos mediante el Explorador de Windows puedes
seleccionar la opción “Install Shell Menus” aunque lo recomendable es la usar la línea de
comandos.

A continuación nos pide que indiquemos la ruta del ejecutable de PHP, en mi caso como
estoy trabajando con XAMPP el ejecutable de PHP se encuentra en la ruta C:\xampp\php\
(si usas WAMPP la ruta es C:\wamp\bin\php\php5.5.12) y seleccionas php.exe, luego click
en Next.

En este punto el instalador de Composer nos muestra la configuración de la instalación,


simplemente le damos click a Install.
58
10
Una vez esté todo instalado, aparecerán otras donde simplemente debes hacer click en Next,
y posteriormente en Finalizar; después de tantos Next, Next típicos de Windows el instalador
de Composer habrá puesto en nuestro PATH global la ruta de la carpeta PHP y su propia
carpeta Composer. Esto nos permite trabajar desde consola escribiendo sólo php o composer
sin necesidad de indicar la ruta del ejecutable. Para ver que todo está en orden vamos a
realizar dos pequeñas pruebas, así que es momento de abrir la consola, y teclear:

1 php -v (tecla Enter)


2 composer -version (tecla Enter)
Esto debería devolver la versión de cada uno, como se ve en la siguiente imagen:

Con esto ya tenemos Composer instalado y funcionando en Windows, ahora solo nos queda
instalar Laravel, veamos cómo hacer esto posible.
2. Creando proyecto en Laravel
Existen dos formas de crear un proyecto con Laravel, la primera es descargando el archivo
master desde su repositorio oficial de GitHub y la otra es usando Composer desde la
consola que es precisamente lo que haremos en esta ocasión.
Desde la consola, dirígirse al directorio donde se guardan los proyectos web en este caso
utilizamos XAMPP la ruta es C:\xampp\htdocs para WAMPP es C:\wamp\www), y teclear
lo siguiente:

1 cd C:\xampp\htdocs

5911
1 composer create-project laravel/analisis --prefer-dist

Composer empezará a descargar las librerías necesarias para nuestro proyecto, esto requiere
un poco de tiempo.

Si no ocurrió algún problema de conexión a Internet veremos que nuestro proyecto


“analisis” se creó correctamente.

Finalmente para verificar que la creación de nuestro proyecto “pruebita” se realizó de manera
correcta, accede a http://localhost/analisis/public en el navegador de tu preferencia, donde
debes ver lo siguiente:

6012
13
61
1462
Manual de usuario

Al cargar el sistema Aparecerá la ventana del menú, de lo que ofrece el sistema usted debe
62
registrar su empresa primero, luego puede ingresar los datos que necesite.

Si selecciona ingresar un empleado, antes debe tener registrados roles, los cuales son

asignados a los empleados que se registren.

Cuando reciba productos nuevos o desee registrar un producto nuevo, seleccione productos,

registrar producto nuevo, y llenar los campos solicitados.

15
63
En Camiones puede registrar los camiones que utilice para realizar las entregas de productos

a los clientes.

El administrador es el encargado de Asignar las rutas y camiones a choferes todos los días,

para ello debe ubicarse en la opción Asignación de Camiones, luego en asignar camión, y

llenar los campos necesarios.

En cada pantalla, tiene opción de editar un registro o bien, eliminarlo.

16
64

Vous aimerez peut-être aussi