Taxare

Scrum es una metodología de trabajo que se usa para resolver proyectos, especialmente proyectos de desarrollo de software, en este foro se resolveran dudas sobre SCRUM
Post Reply
User avatar
josemecheverri
Posts: 41
Joined: Sat Feb 13, 2016 5:33 pm

Taxare

Post by josemecheverri » Mon Jan 28, 2019 3:41 pm

Aplicacion de Escritorio para la Administracion de Taxis

Documento de Word donde Detallo la idea
https://upbeduco-my.sharepoint.com/:w:/ ... w?e=uTrJT3

Planeacion semanal
https://upbeduco-my.sharepoint.com/:x:/ ... Q?e=Tsd61W

Repositorio:
https://github.com/josemanuelep/TaxareWF.git

Presentación
https://www.slideshare.net/secret/4qbzjPmutM5ENG
Last edited by josemecheverri on Mon Mar 04, 2019 3:38 pm, edited 1 time in total.
José Manuel Echeverri Palacio
ING. de Sistemas e Informática
Materia: Proyecto Aplicado en TIC

User avatar
josemecheverri
Posts: 41
Joined: Sat Feb 13, 2016 5:33 pm

Sprint # 1

Post by josemecheverri » Wed Jan 30, 2019 3:57 pm

Fecha inicio: 28-01-2019
Fecha finalización: 04-02-2019


Backlog list del Sprint
  • Planteamiento de la idea de negocio del proyecto
  • Modelo Canvas
  • La lista de actividades (Propensa a cambios)
  • Primeros acercamientos con un posible cliente y captura de requisitos
  • Decidir que lenguaje y plataforma usar para desarrollar la aplicacion
Velocity inicial12

¿Que hice hasta hoy?
  • Modelo Canvas (2)
Image
  • La lista de actividades (Propensa a cambios) (3)
Image
  • Primeros acercamientos con el cliente y captura de requisitos (4)
Image


Velocity final12

¿Que voy hacer?
  • Tomar la decision de cual plataforma usar para el desarrollo de la aplicación, ya sea de escritorio o web.
  • Empezar a documentarme acerca de la plataforma y lenguaje elegido.
  • Planear Sprint #2
¿Que problemas se ha tenido?
  • Indecisión sobre la plataforma a elegir para desarrollar la aplicación
Last edited by josemecheverri on Mon Feb 18, 2019 4:14 pm, edited 3 times in total.
José Manuel Echeverri Palacio
ING. de Sistemas e Informática
Materia: Proyecto Aplicado en TIC

User avatar
josemecheverri
Posts: 41
Joined: Sat Feb 13, 2016 5:33 pm

Sprint #2

Post by josemecheverri » Mon Feb 04, 2019 2:05 pm

Fecha inicio: 4-02-2019
Fecha finalización: 11-02-2019

Backlog list del Sprint
  • Tomar la decisión de la plataforma a usar para desarrollar la aplicación
  • Diseñar la base de datos
  • Capturar algunos requisitos del cliente, que como mencione es un negocio familiar y los recogí directamente de mi tio, para hacer esto debí entender la lógica del negocio y todas aquellas cosas que se manejan y se documentan
  • Crear de un tablero en trello para manejar los sprints ordenadamente
  • Crear el repositorio
Velocity inicial:17

¿Que hice hasta hoy?
  • Decidí desarrollar la aplicación en C# con Windows forms, es decir sera una aplicación de escritorio con una base de datos en SQL server (3)
  • Cree la base de datos (5)
Image
  • Capture algunos requisitos del cliente, que como mencione es un negocio familiar y los recogí directamente de mi tío, para hacer esto debí entender la lógica del negocio y todas aquellas cosas que se manejan y se documentan(5)
Image
  • Tengo un primer acercamiento a lo que el cliente necesita, es decir el Prodcut Backlog(3)

Velocity final:17

¿Que voy hacer?
  • Investigar sobre un Framework que me sera de ayuda para el desarrollo de mi aplicación que se llama Entity Framework para el manejo de la persistencia
  • Crear un Backlog con las historias de usuario mas importantes
  • Iinvestigar como implementar Google Maps en Windows Forms
  • Planear el Sprint #3
¿Que problemas se ha tenido?
  • Algunos con el desarrollo de la base de datos, pero el resto de cosas marchan bien.
  • Debo ir pensando en como generar unos informes completos en PDF indispensables para el cliente
  • Tuve que hacer algunos cambios en la base de datos
A mitad de semana subo las evidencias :arrow: :arrow:
Last edited by josemecheverri on Mon Feb 18, 2019 4:13 pm, edited 2 times in total.
José Manuel Echeverri Palacio
ING. de Sistemas e Informática
Materia: Proyecto Aplicado en TIC

User avatar
josemecheverri
Posts: 41
Joined: Sat Feb 13, 2016 5:33 pm

Sprint #3

Post by josemecheverri » Mon Feb 11, 2019 3:58 pm

Fecha inicio: 11-02-2019
Fecha finalización: 18-02-2019

Backlog list del Sprint
  • Conectar la base de datos con la aplicación (5)
  • Crear Modulo de gestión de vehículos (5)
  • Organizar lista de actividades en el trello para este Sprint(1)

Sumatoria de los esfuerzos estimados: 11

¿Que hice hasta hoy?
  • Conectar la base de datos con la aplicación (2)
Image
  • Crear Modulo de gestión de vehículos (5)
Image
  • Organizar lista de actividades en el trello para este Sprint(1)
https://trello.com/b/b7kEhOgI/taxare
Image

Sumatoria de los esfuerzos despues del sprint: 11

¿Que voy hacer?
  • Desarrollar el Sprint #4
¿Que problemas se ha tenido?
  • No tengo claridad para aplicar los Story points
Last edited by josemecheverri on Mon Feb 18, 2019 4:16 pm, edited 1 time in total.
José Manuel Echeverri Palacio
ING. de Sistemas e Informática
Materia: Proyecto Aplicado en TIC

User avatar
josemecheverri
Posts: 41
Joined: Sat Feb 13, 2016 5:33 pm

1

Post by josemecheverri » Mon Feb 18, 2019 4:00 pm

Last edited by josemecheverri on Mon Feb 18, 2019 4:12 pm, edited 2 times in total.
José Manuel Echeverri Palacio
ING. de Sistemas e Informática
Materia: Proyecto Aplicado en TIC

User avatar
josemecheverri
Posts: 41
Joined: Sat Feb 13, 2016 5:33 pm

Sprint #4

Post by josemecheverri » Mon Feb 18, 2019 4:09 pm

Fecha inicio: 18-02-2019
Fecha finalización: 25-02-2019

Backlog list del Sprint
  • Añadir Licencias(1)
  • Eliminar Licencias (1)
  • Actualizar Licencias (1)
  • Listar y buscar licencias(1)
  • Enlazar licencias con los conductores(1)
  • Conectar la base de datos con la aplicación (1)
  • Eliminar conductor(1)
  • Añadir conductor (1)
  • Actualizar conductor(1)
  • buscar y listar conductor(1)
  • Ordenar licencias por fecha1
  • Ordenar conductores por varias opcione1s
Velocity inicial : 12



Sumatoria de los esfuerzos estimados: 10

¿Que hice hasta hoy?
  • Añadir Licencias(1)
  • Eliminar Licencias (1)
  • Actualizar Licencias (1)
  • Listar y buscar licencias(1)
  • Enlazar licencias con los conductores(1)
  • Conectar la base de datos con la aplicación (1)
  • Eliminar conductor(1)
  • Añadir conductor (1)
  • Actualizar conductor(1)
Velocity final : 9

Evidencias

Controlador conductores

Code: Select all

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using BR = Broker;
using EN = Entities;

namespace Controllers
{
    public class Conductores
    {
        //Entidades para el manejo de la persistencia
        BR.db_taxareEntities db = new BR.db_taxareEntities();
        EN.Conductor conductor = new EN.Conductor();

        public bool CrearConductor(EN.Conductor conductor)
        {

            bool resultado = false;
            try
            {
                //Mapeo
                BR.Conductor other = new BR.Conductor();
                other.apellido = conductor.apellido;
                other.cedula = conductor.cedula;
                other.nombre = conductor.nombre;
                other.telefono = conductor.telefono;

                //Persitencia
                db.Conductor.Add(other);
                db.SaveChanges();
                resultado = true;

            }
            catch (Exception ex)
            {

                throw ex;
            }
            return resultado;
        }

        public bool EliminaConducor(long id)
        {

            bool resultado = false;
            try
            {
                BR.Conductor conductor = db.Conductor.Where(x => x.id == id).FirstOrDefault();
                db.Conductor.Remove(conductor);
                db.SaveChanges();
                resultado = true;
            }
            catch (Exception ex)
            {

                throw ex;
            }
            return resultado;

        }

        public bool ActualizarConductor(EN.Conductor conductorUpdate)
        {

            bool resultado = false;
            try
            {
                var driver = db.Conductor.Where(x => x.id == conductorUpdate.id).FirstOrDefault();
                driver.apellido = conductorUpdate.apellido;
                driver.cedula = conductorUpdate.cedula;
                driver.nombre = conductorUpdate.nombre;
                driver.telefono = conductorUpdate.telefono;
                db.SaveChanges();
                resultado = true;
            }
            catch (Exception ex)
            {

                throw ex;
            }
            return resultado;

        }
        public List<BR.Conductor> MostrarConductores()
        {

            try
            {
                return db.Conductor.ToList<BR.Conductor>();
            }
            catch (Exception ex)
            {

                throw ex;
            }


        }
        public BR.Conductor MostarConductor(long id)
        {
            try
            {
                return  db.Conductor.Where(x => x.id == id).FirstOrDefault();

            }
            catch (Exception ex)
            {

                throw ex;
            }

        }
        public BR.Conductor MostarConductor(string cedula)
        {
            try
            {
                return  db.Conductor.Where(x => x.cedula == cedula).FirstOrDefault();
            
            }
            catch (Exception ex)
            {

                throw ex;
            }

        }

        public BR.Conductor MostarConductorxNombre(string nombre)
        {
            try
            {
                return db.Conductor.Where(x => x.nombre == nombre).FirstOrDefault();

            }
            catch (Exception ex)
            {

                throw ex;
            }

        }
        public long MostarIdConductor(string cedula)
        {
            try
            {
                return db.Conductor.Where(x => x.cedula == cedula).FirstOrDefault().id;

            }
            catch (Exception ex)
            {

                throw ex;
            }

        }
    }
}
Controlador licencias

Code: Select all

using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using BR = Broker;
using EN = Entities;

namespace Controllers
{
   public  class Licencias
    {
        BR.db_taxareEntities db = new BR.db_taxareEntities();
        Conductores conductorController = new Conductores();
        Transito transitoController = new Transito();

        public bool CrearLicencia(EN.Licencias other)
        {
            bool resultado = false;


            try
            {
                //Mapeo
                BR.Licencias lic = new BR.Licencias();

                lic.categoria = other.categoria;
                lic.id_conductor = conductorController.MostarIdConductor(other.conductor);
                lic.expedicon = other.expedicon;
                lic.id_secretaria = transitoController.MostrarSecretaria(other.secretaria);
                lic.Numero_pase = other.Numero_pase;
                lic.vencimiento = other.vencimiento;

                db.Licencias.Add(lic);
                db.SaveChanges();
                resultado = true;

            }
            catch (Exception ex)
            {

                throw ex;
            }
            return resultado;

        }

        public bool EliminarLicencia(int Numero)
        {
            bool resultado = false;
            try
            {

                var lic = db.Licencias.Where(x => x.Numero_pase == Numero).FirstOrDefault();
                db.Licencias.Remove(lic);
                db.SaveChanges();
                resultado = true;

            }
            catch (Exception ex)
            {

                throw ex;
            }
            return resultado;
        }
        public bool ActualizarLicencia(EN.Licencias other)
        {

            bool resultado = false;
            try
            {
                var lic = db.Licencias.Where(x => x.Numero_pase == other.Numero_pase).FirstOrDefault();

                lic.categoria = other.categoria;
                lic.id_conductor = conductorController.MostarIdConductor(other.conductor);
                lic.expedicon = other.expedicon;
                lic.id_secretaria = transitoController.MostrarSecretaria(other.secretaria);
                lic.Numero_pase = other.Numero_pase;
                lic.vencimiento = other.vencimiento;

                db.SaveChanges();
                resultado = true;
            }
            catch (Exception ex)
            {

                throw ex;
            }

            return resultado;

        }

        public EN.Licencias MostarLicencia(int Numero)
        {

            try
            {
                BR.Licencias other = db.Licencias.Where(x => x.Numero_pase == Numero).FirstOrDefault();
                EN.Licencias lic = new EN.Licencias();
                TextInfo myTI = CultureInfo.CurrentCulture.TextInfo;

                lic.categoria = other.categoria;
                lic.conductor = other.Conductor.nombre.ToUpper()+" "+other.Conductor.apellido.ToUpper();
                lic.expedicon = other.expedicon;
                lic.Numero_pase = other.Numero_pase;
                lic.secretaria = myTI.ToTitleCase(other.Secretarias_transito.localidad);
                lic.vencimiento = other.vencimiento;


                return lic;

            }
            catch (Exception ex)
            {

                throw ex;
            }


        }
    }
}
Image

Image

¿Que voy hacer?
  • buscar y listar conductor(1)
  • Ordenar licencias por fecha(1)
  • Ordenar conductores por varias opciones(1)
  • Desarrollar el Sprint #4
¿Que problemas se ha tenido?

Para este Sprint no logre terminar 3 actividades
José Manuel Echeverri Palacio
ING. de Sistemas e Informática
Materia: Proyecto Aplicado en TIC

User avatar
josemecheverri
Posts: 41
Joined: Sat Feb 13, 2016 5:33 pm

Sprint #5

Post by josemecheverri » Mon Mar 04, 2019 3:01 pm

Fecha inicio: 25-02-2019
Fecha finalización: 4-03-2019

Backlog list del Sprint
  • Crear SOAT(2)
  • Buscar SOAT(2)
  • Actualizar SOAT(2)
  • Eliminar SOAT(2)

Sumatoria de los esfuerzos estimados: 8

¿Que hice hasta hoy?
  • Crear SOAT(2)
Yo como Administrador
Quiero que : Quiero añadir un SOAT al sistema
Así que : Podre ver inmediatamente el SOAT registrado en un DATA-Table
Condición de satisfacción: El administrador puede crear el SOAT y ver reflejado el cambio al instante

  • Buscar SOAT(2)
Yo como Administrador
Quiero que : Quiero buscar un SOAT en el sistema por placa o por numero de SOAT
Así que : Aparecerá le registro con la conciencia en el formulario y podre editarlo al instante
Condición de satisfacción: El administrador encontrara el SOAT que busca y de no ser asi se le avisara que el registro no existe.

  • Actualizar SOAT(2)
Yo como Administrador
Quiero que : Quiero actualizar un SOAT en el sistema
Así que : Podre editar los datos e inmediatamente ver el cambio en el DATA-table

  • Eliminar SOAT(2)
Yo como Administrador
Quiero que : Quiero eliminar un SOAT del sistema
Así que : Podre buscar un registro y eliminarlo, sin antes mostrar un mensaje de confirmación para evitar errores

  • Velocity final : 8
Evidencias

Controlador SOAT

Code: Select all

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using BR = Broker;
using EN = Entities;

namespace Controllers
{
    public class Soat
    {
        BR.db_taxareEntities db = new BR.db_taxareEntities();
        public bool Crear(EN.Soat other)
        {

            bool resultado = false;

            try
            {
                //Mapeo de EN a BR
                BR.Soat st = new BR.Soat();
                st.expedicion = other.expedicion;
                st.expiracion = other.expiracion;
                st.numero = other.numero;
                st.placa_taxi = other.placa_taxi;
                st.valor = other.valor;
                //Insert en la bd
                db.Soat.Add(st);
                db.SaveChanges();
                resultado = true;
            }
            catch (Exception)
            {

                throw;
            }
            return resultado;
        }

        public bool Eliminar(int id)
        {

            bool resultado = false;

            try
            {
                var delete = db.Soat.Where(x => x.id == id).FirstOrDefault();
                db.Soat.Remove(delete);
                db.SaveChanges();
                resultado = true;
            }
            catch (Exception)
            {

                throw;
            }
            return resultado;
        }

        public bool Actualizar(EN.Soat other)
        {

            bool resultado = false;

            try
            {
                var u = db.Soat.Where(x => x.id == other.id).FirstOrDefault();
                //u.numero = other.numero;
                //Update en la bd
                u.placa_taxi = other.placa_taxi;
                u.expedicion = other.expedicion;
                u.expiracion = other.expiracion;
                u.valor = other.valor;
                db.SaveChanges();
                resultado = true;
            }
            catch (Exception)
            {

                throw;
            }
            return resultado;
        }

        public List<BR.Soat> GetSoats()
        {

            return db.Soat.ToList<BR.Soat>();
        }

        public BR.Soat GetSoat(int id)
        {

            return db.Soat.Where(x => x.id == id).FirstOrDefault();
        }

        public List<BR.Soat> ProximosVencer()
        {

            List<BR.Soat> ls = db.Soat.ToList<BR.Soat>();
            ls.Sort((x, y) => x.expiracion.CompareTo(y.expiracion));
            return ls;
        }
    }
}
Image


¿Que voy hacer?
  • Desarrollar el Sprint #6
  • Investigar como hacer excepciones personalizadas
  • Investigar sobre como crear pruebas automatizadas en Visual Studio - C# como medio de testeo para mi aplicación para contribuir enormenete en la calidad del software
¿Que problemas se ha tenido?
  • Ninguno
José Manuel Echeverri Palacio
ING. de Sistemas e Informática
Materia: Proyecto Aplicado en TIC

User avatar
josemecheverri
Posts: 41
Joined: Sat Feb 13, 2016 5:33 pm

Sprint # 6

Post by josemecheverri » Mon Mar 11, 2019 2:21 pm

Fecha inicio: 4-03-2019
Fecha finalización: 11-03-2019

Backlog list del Sprint
  • Interfaz de producción(3)
  • Controladora producción(8)
Sumatoria de los esfuerzos estimados: 12


¿Que hice hasta hoy?
  • Interfaz de producción(3)
Yo como Administrador
Quiero que : Ver todas la producciones por taxi
Así que : Aparecerá un dataTable con toda la información de las produciones
Condición de satisfacción: El administrador podra ver claramente las producciones

  • Controladora producción(8)
Yo como Administrador
Quiero que : Maneja run CRUD de las producciones
Así que : Podre eliminar, buscar, annnadir y editar producciones
Condición de satisfacción: El administrador podrá hacer el CRUD por medio de inputs y botones bien diferenciados, antes de eliminar o editar se debe validar la acción

  • Velocity final : 12
Evidencias

BackEnd

Codigo - Controladora

Code: Select all

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using BR = Broker;
using EN = Entities;

namespace Controllers
{
    public class Produccion
    {
        BR.db_taxareEntities db;


        public Produccion() {

            db = new BR.db_taxareEntities();
        }
        public bool CrearProduccion(EN.Produccion other)
        {


            bool resultado = false;
            try
            {
                //Mapeo
                BR.Produccion produccion = new BR.Produccion();
                produccion.idTurno = other.idTurno;
                produccion.producido = other.producido;
                //Insert en la BD
                db.Produccion.Add(produccion);
                db.SaveChanges();
                resultado = true;

            }
            catch (Exception ex)
            {

                throw ex;
            }
            return resultado;


        }

        public bool EliminarPrduccion(long id)
        {

            bool resultado = false;
            try
            {

                var pro = db.Produccion.Where(x => x.id == id).FirstOrDefault();
                db.Produccion.Remove(pro);
                db.SaveChanges();
                resultado = true;

            }
            catch (Exception ex)
            {

                throw ex;
            }
            return resultado;


        }

        public bool ActualizarProduccion(EN.Produccion other)
        {

            bool resultado = false;
            try
            {

                var pro = db.Produccion.Where(x => x.id == other.id).FirstOrDefault();
                pro.idTurno = other.idTurno;
                pro.producido = other.producido;     
                db.SaveChanges();
                resultado = true;

            }
            catch (Exception ex)
            {

                throw ex;
            }
            return resultado;
        }

        public List<EN.Produccion> Producciones()
        {
            List<EN.Produccion> ListaPT = new List<EN.Produccion>();

            var query = db.Produccion.ToList();


            foreach (BR.Produccion other in query)
            {

                EN.Produccion p = new EN.Produccion();
                //Mapeo y calculos
                TimeSpan dias = other.Turnos.fin - other.Turnos.inicio;
                p.conductor = other.Turnos.Conductor.nombre.ToUpper() + " " + other.Turnos.Conductor.apellido.ToUpper();
                p.dias = dias.Days;
                p.idTurno = other.idTurno;
                p.placa = other.Turnos.placaTaxi;
                p.producido = other.producido;
                ListaPT.Add(p);

            }

            return ListaPT;

        }

        public EN.Produccion produccion(long id)
        {
            var other = db.Produccion.Where(x => x.id == id).FirstOrDefault();
            EN.Produccion p = new EN.Produccion();

            TimeSpan dias = other.Turnos.fin - other.Turnos.inicio;
            p.conductor = other.Turnos.Conductor.nombre.ToUpper() + " " + other.Turnos.Conductor.apellido.ToUpper();
            p.dias = dias.Days;
            p.idTurno = other.idTurno;
            p.placa = other.Turnos.placaTaxi;
            p.producido = other.producido;

            return p;

        }

        //public List<EN.Produccion> BuscarProduccionPorPlaca(string placa)
        //{
        //    List<EN.Produccion> ListaPT = new List< EN.Produccion > ();

        //    var query =

        //            from p in db.Produccions
        //            join c in db.Conductors on p.id_taxista equals c.id
        //            where p.placa.Equals(placa)
        //            select new
        //            {

        //                id = p.id,
        //                placa = p.placa.ToUpper(),
        //                conductor = c.nombre.ToUpper() + " " + c.apellido.ToUpper(),
        //                inicio = p.inicio,
        //                final = p.final,
        //                valor = p.valor

        //            };

        //    foreach (var other in query.ToList())
        //    {

        //        Querys.ProduccionxTaxis pxt = new Querys.ProduccionxTaxis();

        //        pxt.id = other.id;
        //        TimeSpan resto = other.final - other.inicio;
        //        double total = resto.TotalDays + 1;
        //        pxt.dias = total;
        //        pxt.placa = other.placa;
        //        pxt.conductor = other.conductor;
        //        pxt.inicio = other.inicio;
        //        pxt.final = other.final;
        //        pxt.valor = other.valor;
        //        ListaPT.Add(pxt);

        //    }

        //    return ListaPT;

        //}

        //public List<Querys.ProduccionxTaxis> BuscarProduccionPorConductor(long idConductor)
        //{

        //    List<Querys.ProduccionxTaxis> ListaPT = new List<Querys.ProduccionxTaxis>();

        //    var query =

        //            from p in db.Produccions
        //            join c in db.Conductors on p.id_taxista equals c.id
        //            where p.id_taxista == idConductor
        //            select new
        //            {

        //                id = p.id,
        //                placa = p.placa.ToUpper(),
        //                conductor = c.nombre.ToUpper() + " " + c.apellido.ToUpper(),
        //                inicio = p.inicio,
        //                final = p.final,
        //                valor = p.valor

        //            };

        //    foreach (var other in query.ToList())
        //    {

        //        Querys.ProduccionxTaxis pxt = new Querys.ProduccionxTaxis();

        //        pxt.id = other.id;
        //        TimeSpan resto = other.final - other.inicio;
        //        double total = resto.TotalDays + 1;
        //        pxt.dias = total;
        //        pxt.placa = other.placa;
        //        pxt.conductor = other.conductor;
        //        pxt.inicio = other.inicio;
        //        pxt.final = other.final;
        //        pxt.valor = other.valor;
        //        ListaPT.Add(pxt);

        //    }

        //    return ListaPT;

        //}

        public long id(int idc)
        {

            return db.Produccion.Where(x => x.Turnos.idConductor == idc).FirstOrDefault().id;

        }

    }
}
Clase Produccion

Code: Select all

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Entities
{
    public class Produccion
    {

        public long id { get; set; }
        public Nullable<long> idTurno { get; set; }
        public double producido { get; set; }
        public string placa  { get; set; }
        public string conductor { get; set; }
        public int dias { get; set; }


     public Produccion(){ }
    
    //Metodo Constructor
    public Produccion(long id, long? idTurno, double producido, string placa, string conductor, int dias)
        {
            this.id = id;
            this.idTurno = idTurno;
            this.producido = producido;
            this.placa = placa;
            this.conductor = conductor;
            this.dias = dias;
        }
    }
}

Interfaz
Image


¿Que voy hacer?

Debo ir pensando en como generar unos informes completos en PDF indispensables para el cliente

¿Que problemas se ha tenido?
  • Ninguno
José Manuel Echeverri Palacio
ING. de Sistemas e Informática
Materia: Proyecto Aplicado en TIC

User avatar
josemecheverri
Posts: 41
Joined: Sat Feb 13, 2016 5:33 pm

Sprint # 7

Post by josemecheverri » Mon Mar 18, 2019 3:34 pm

echa inicio: 11-03-2019
Fecha finalización: 18-03-2019

Backlog list del Sprint
  • Interfaz Gestion de conductores por taxis(2)
Yo como Administrador
Quiero que : Ver los conductores y los vehiculos de conducen en una interfaz ordenada
Así que : Se genera una interfaz en forma de ventana que le permitiraa administrar al usuario el modulo de conductores por taxis
Condición de satisfacción: Sera sencillo e intuitivo el manejo de esta interfaz
  • Asociar Conductor a taxis(2)
Yo como Administrador
Quiero que : Asignar uno o varios vehiculos a un conductor
Así que : Un formulario capturara la informacion y lo mostrara automaticamente en un DataTable
Condición de satisfacción: Se podra añadir un coductor para el manejo de la persistencia
  • Eliminar asociacion de taxis y conductores (2)
Yo como Administrador
Quiero : Seleccionar un registro y eliminarlo
Así que : Podre buscarlo por un dato irrepetible o seleccionarlo al hacer doble click en el dataTable
Condición de satisfacción: Al seleccionar el registro debe preguntarme si estoy seguro de eliminar un registro en cuestion
  • Editar Asociaciones de taxis y conductores(2)
Yo como Administrador
Quiero : Buscar una relación entre vehículo y taxi y poder editarla
Así que : Podre buscar un registro y seleccionarlo
Condición de satisfacción: Podre editar una asociación y ver el cambio reflejado inmediatamente en el DataTable
  • Listar los taxis por conductor(2)
Yo como Administrador
Quiero : Poder listar todos los registros en la base de datos
Así que : El dataTable ira listando por orden temporal las relaciones
Condición de satisfacción: Se pueden ver todos los registros en la base de datos
  • Velocity final : 10
¿Que hice hasta hoy?
  • Interfaz Gestión de conductores por taxis(3)
Image
  • Controladora producción(8)
BackEnd

Codigo - Controladora

Code: Select all

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using BR = Broker;
using EN = Entities;

namespace Controllers
{
    public class ConductoresXtaxis
    {
        BR.db_taxareEntities db;
        Conductores conductorController;
        Taxis taxisController;

        public ConductoresXtaxis()
        {
            db = new BR.db_taxareEntities();
            conductorController = new Conductores();
            taxisController = new Taxis();
        }

        public bool CrearCT(EN.ConductoresXtaxis other)
        {
            bool resultado = false;

            try
            {
                string nombre = other.conductor;
                string[] n = nombre.Split(' ');
                BR.ConductoresXtaxis CT = new BR.ConductoresXtaxis(conductorController.MostarConductorxNombre(n[0]).id, other.placaTaxi);
                db.ConductoresXtaxis.Add(CT);
                db.SaveChanges();
                resultado = true;
            }
            catch (Exception)
            {

                throw;
            }
            return resultado;

        }

        public bool EliminarCT(long id)
        {

            bool resultado = false;

            try
            {
                var conductoresTaxis = db.ConductoresXtaxis.Where(x => x.id == id).FirstOrDefault();
                db.ConductoresXtaxis.Remove(conductoresTaxis);
                db.SaveChanges();
                resultado = true;
            }
            catch (Exception)
            {

                throw;
            }
            return resultado;
        }

        public bool ActualizarCT(EN.ConductoresXtaxis other)
        {

            bool resultado = false;

            try
            {
                var update = db.ConductoresXtaxis.Where(x => x.id == other.id).FirstOrDefault();
                string nombre = other.conductor;
                string[] n = nombre.Split(' ');
                update.idConductor = conductorController.MostarConductorxNombre(n[0]).id;
                update.placaTaxi = other.placaTaxi;
                db.SaveChanges();
                resultado = true;
            }
            catch (Exception)
            {

                throw;
            }
            return resultado;
        }

        public EN.ConductoresXtaxis MostarCT(long id)
        {

            try
            {
                var  other = db.ConductoresXtaxis.Where(x => x.id == id).FirstOrDefault();
                EN.ConductoresXtaxis CT = new EN.ConductoresXtaxis(other.id, other.Conductor.nombre.ToUpper() + " " + other.Conductor.apellido.ToUpper(), other.placaTaxi);
                return CT;

            }
            catch (Exception)
            {

                throw;
            }
          
        }

        public List<EN.ConductoresXtaxis> ListaCT()
        {
            List<EN.ConductoresXtaxis> ListaCT = new List<EN.ConductoresXtaxis>();

            var query = db.ConductoresXtaxis.ToList();

            foreach (BR.ConductoresXtaxis other in query.ToList())
            {

                EN.ConductoresXtaxis cts = new EN.ConductoresXtaxis(other.id, other.Conductor.nombre.ToUpper() + " " + other.Conductor.apellido.ToUpper(), other.placaTaxi);
                ListaCT.Add(cts);
            }

            return ListaCT;

        }
    }
}
Burn down chart
Image

¿Que voy hacer?

Implementar informes completos en PDF con ItextSharp indispensables para el cliente https://www.youtube.com/watch?v=h5zGP6q7_d0.
Planear el sprint 7

¿Que problemas se ha tenido?
  • Tuve un error por lo cual debo crear una rama
José Manuel Echeverri Palacio
ING. de Sistemas e Informática
Materia: Proyecto Aplicado en TIC

Post Reply