Esempio n. 1
0
async def read_products():
    """
    Obtiene listado de productos desde la BD.
    @return: listado de FProduct
    """
    session = next(get_db())
    products = session.query(t_ARTICULO).all()
    return to_array_of_json(products, t_ARTICULO)
Esempio n. 2
0
async def read_fast_products():
    """
    Obtiene listado de productos.

    @return:  List[FProduct] El listado de productos, sin calcular el stock.
    """
    session = next(get_db())
    products = session.query(t_ARTICULO).all()
    return to_array_of_json(products, t_ARTICULO)
Esempio n. 3
0
async def read_sellers():
    """
    Obtiene listado de vendedores existentes en el sistema.
    """
    session = next(get_db())
    sellers = session.query(t_MSOVENDEDOR).all()
    # sellers = session.query(t_MSOVENDEDOR).filter(t_MSOVENDEDOR.c.tipo == 1).all()
    return to_array_of_json(sellers,
                            t_MSOVENDEDOR,
                            columns=("codigo", "nombre", "rut"))
Esempio n. 4
0
async def read_detail_of_sales_of_client(id: str):
    """
    Obtiene el detalle de ventas del id.
    :param id: Id del encabezado de ventas
    :return Lista de cantidad de ventas
    """
    session = next(get_db())
    details = session.query(t_DETALLEDOCUMENTO).filter(
        t_DETALLEDOCUMENTO.c.id == id).order_by("linea")
    return to_array_of_json(details,
                            t_DETALLEDOCUMENTO,
                            columns=("articulo", "cantidad", "totallinea",
                                     "descripcion", "precioventa", "linea"))
Esempio n. 5
0
async def read_clients_of_seller_and_route(seller: str, route: str):
    """
    Obtiene listado de clientes asociados al par (vendedor, ruta).
    :param seller Vendedor del que se quieren los clientes.
    :param route  Ruta de donde se obtienen los clientes.
    @return JSON listado de clientes.
    """
    session = next(get_db())
    t = t_MSOCLIENTES
    clients = session.query(t).filter(t.c.Vendedor == seller,
                                      t.c.Ruta == route).all()
    return to_array_of_json(clients,
                            t,
                            columns=('rut', 'codigo', 'razon', 'telefono',
                                     'direccion', 'ciudad'))
Esempio n. 6
0
async def read_routes():
    """
    Obitiene listado de rutas que existentes en el sistema.
    """
    try:
        session = next(get_db())
        rutas = session.query(t_MSOSTTABLAS).filter(
            t_MSOSTTABLAS.columns.tabla == "017").all()
        result = to_array_of_json(rutas,
                                  t_MSOSTTABLAS,
                                  columns=("codigo", "descripcion"))
        return result
    except:
        logger.error("Error al tratar de obtener listado de rutas")
        raise HTTPException(status_code=400, detail="No existen rutas")
Esempio n. 7
0
async def list_sale_by_sale_by_rut_by_date(sale: str, rut: str, date: int):
    """Listado de todos los registros de ventas por vendedor y cliente en una fecha determinada.
    :param sale (str): Código del vendedor
    :param rut (str): Rut del cliente.
    :param date (int): Fecha, el sistema considera solo la fecha. No considera hora, minutos y segundos.
    @return:  JSON: Listado de registros de ventas
    """

    session = next(get_db())
    t = t_EOS_REGISTROS

    fechai = datetime.datetime.fromtimestamp(date)
    details = session.query(t).filter(
        t.c.rut == rut, t.c.vendedor == sale,
        t.c.fecha.cast(Date) == fechai).order_by("fila").all()
    return to_array_of_json(details, t_EOS_REGISTROS)
Esempio n. 8
0
async def read_client_by_rut(rut: str):
    """
    Obtiene listado de clientes que cumplen un rut.
    Un cliente puede tener varias sucursales, cada una tiene el mismo rut y diferente código.
    :param rut Rut del usuario que se busca
    @return:  Datos del cliente
    """
    session = next(get_db())
    r = rut.strip().replace(".", "").replace("-", "")
    r = r.rjust(10, '0')
    client = session.query(t_MSOCLIENTES).filter(
        t_MSOCLIENTES.columns.rut == r).all()
    return to_array_of_json(client,
                            t_MSOCLIENTES,
                            columns=('rut', 'codigo', 'razon', 'telefono',
                                     'direccion', 'ciudad'))
Esempio n. 9
0
async def read_header_of_sales_of_client(code: str, rut: str, quantity: int):
    """
    Obtiene el encabezado de las últimas (quantity) ventas realizadas al cliente.
    La lista es ordenada de la más nueva a la más antigua.
    :param code Código del cliente
    :param rut Rut del cliente
    :param quantity Cantidad de ventas que quiere revisar.
    :return: Lista de cantidad de ventas
    """
    session = next(get_db())
    sales = session.query(t_ENCABEZADOCUMENTO). \
        filter(t_ENCABEZADOCUMENTO.c.rut == rut, t_ENCABEZADOCUMENTO.c.codigo == code,
               t_ENCABEZADOCUMENTO.c.tipo == '06', t_ENCABEZADOCUMENTO.c.vigente == 1). \
        order_by(t_ENCABEZADOCUMENTO.c.fecha.desc()). \
        limit(quantity)
    return to_array_of_json(sales,
                            t_ENCABEZADOCUMENTO,
                            columns=("rut", "codigo", "fecha", "id", "numero"))
Esempio n. 10
0
async def get_configuration():
    session = next(get_db())
    t = t_EOS_CONFIGURACION
    details = session.query(t).all()
    return to_array_of_json(details, t)