Giter Club home page Giter Club logo

disenio-ts-vendedores's Introduction

Vendedores y centros de distribución

portada

Antes de empezar: algunos consejos

El enunciado tiene mucha información, van a necesitar leerlo varias veces. La sugerencia es que lo lean entero una vez (para tener una idea general) y luego vuelvan a consultarlo las veces que hagan falta.

Concentrensé en los requerimientos y, excepto que se traben mucho, respeten el orden sugerido. Sería interesante que vayan creando las distintas clases y métodos a medida que resuelven cada requerimiento y no antes.

En otras palabras: trabajen completando cada requerimiento antes de pasar al siguiente, con los tests que aseguran que funciona incluidos. Si al avanzar en los requerimientos les parece necesario refactorizar, adelante, van a tener los tests que garantizan que no rompieron nada. 😏

Descripción del dominio

López y López es una empresa de distribución de productos de consumo masivo, que se distribuyen en ciudades repartidas por toda la geografía nacional.

Su organización está basada en centros de distribución. Cada centro trabaja con distintos vendedores.

Se nos pide desarrollar un modelo de los centros, los vendedores, y la relación entre ellos.

Vendedores

López y López recluta vendedores de tres tipos:

  • Vendedor fijo: se sabe en qué ciudad vive.
  • Viajante: cada viajante está habilitado para trabajar en algunas provincias, se sabe cuáles son.
  • Comercio corresponsal: son comercios que tienen sucursales en distintas ciudades. Se sabe, para cada comercio corresponsal, en qué ciudades tiene sucursales.

De cada ciudad debemos registrar en qué provincia está, y de cada provincia, su población.

De cada vendedor, se tiene detalle de las certificaciones que posee. Cada certificación otorga una cantidad de puntos. Algunas certificaciones son sobre productos, otras no.

Vendedor influyente

Para la empresa, es importante saber si un vendedor es influyente. La condición para que lo sea depende del tipo de vendedor:

  • vendedor fijo: ningún vendedor fijo es influyente.
  • viajante: la población total sumando todas las provincias donde está habilitado, debe ser de 10 millones o superior.
  • comercio corresponsal: debe tener sucursales en al menos 5 ciudades, o bien en al menos 3 provincias considerando la provincia de cada ciudad donde tiene sucursal.

P.ej. un comercio corresponsal que tenga sucursales en

  • Chivilcoy, Bragado, Lobos, Pergamino y Zárate: es influyente, se cumple la condición de 5 ciudades.
  • Rosario (Santa Fe), Rafaela (Santa Fe), San Francisco (Córdoba), y Diamante (Entre Ríos): es infuyente, se cumple la condición de 3 provincias.
  • Rosario, Rafaela, Amstrong (Santa Fe) y Diamante: no es influyente, son 4 ciudades y 2 provincias, no cumple ninguna de las condiciones.

Centros de distribución

En nuestro modelo también tenemos los centros de distribución, de cada uno se sabe en qué ciudad está, y con qué vendedores trabaja.

Debe poder agregarse un vendedor a un centro. Si el vendedor ya está registrado para el centro, debe generarse un error.

Requerimientos

Etapa 1

Desarrollar un modelo de vendedores que permita consultar:

  1. Dada una ciudad, si un vendedor puede trabajar en esa ciudad. La condición depende del tipo de vendedor, como se indica a continuación:
    • vendedor fijo: debe ser la ciudad en la que vive.
    • viajante: la ciudad debe estar en una provincia en la que está habilitado.
    • comercio corresponsal: debe ser una ciudad en la que tiene sucursal.
  2. Si un vendedor es versátil. Las condiciones son: que tenga al menos tres certificaciones, que tenga al menos una sobre productos, y al menos una que no sea sobre productos.
  3. Si un vendedor es firme. La condición es que el puntaje total que le otorgan sus certificaciones sea mayor o igual a 30.

Etapa 2

Saber si un vendedor es o no influyente.

Etapa 3

Debe poder consultarse, para un centro de distribución:

  1. El vendedor estrella, que es el que tiene mayor puntaje total por certificaciones.
  2. Si puede cubrir, o no, una ciudad dada. La condición es que al menos uno de los vendedores registrados pueda trabajar en esa ciudad.
  3. La colección de vendedores genéricos registrados. Un vendedor se considera genérico si tiene al menos una certificación que no es de productos.
  4. Si es robusto, la condición es que al menos 3 de sus vendedores registrados sea firme.

Licencia

Esta obra fue elaborada por Federico Aloi y publicada bajo una Licencia Creative Commons Atribución-CompartirIgual 4.0 Internacional.

CC BY-SA 4.0

Créditos

📝 Enunciado original creado por Carlos Lombardi.

📸 Imagen de portada por Jezael Melgoza en Unsplash.

disenio-ts-vendedores's People

Contributors

faloi avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.