Example #1
0
def obtener_contrato_por_contrato_id(contrato_id: str) -> Contrato:
    contrato = Contrato.objects(id=contrato_id).first()
    return contrato
Example #2
0
def obtener_contrato_por_contrato_id_y_correo_vendedor(
        contrato_id: str, correo_vendedor: str) -> Contrato:
    contrato = Contrato.objects(
        Q(id=contrato_id) & Q(correoVendedor=correo_vendedor)).first()
    return contrato
Example #3
0
def obtener_contratos_por_correo_vendedor(
        correo_vendedor: str) -> List[Contrato]:
    contratos = Contrato.objects(correoVendedor=correo_vendedor)
    return contratos
Example #4
0
def obtener_contratos_por_cliente_id(cliente_id: str) -> List[Contrato]:
    contratos = Contrato.objects(Q(activo=True)
                                 & Q(clienteId=cliente_id)).all()
    return contratos
Example #5
0
def find_all_for_cliente_id(cliente_id: str) -> List[Contrato]:
    contratos = Contrato.objects(Q(activo=True) & Q(clienteId=cliente_id))
    return contratos
Example #6
0
def obtener_contratos() -> List[Contrato]:
    contratos = Contrato.objects()
    return contratos
Example #7
0
def find_all_contratos_for_producto_id(producto_id: str) -> List[Contrato]:
    contratos = Contrato.objects(productoId=producto_id)
    return contratos
Example #8
0
def get_contrato_by_id(contrato_id: str) -> Contrato:
    contrato = Contrato.objects(Q(activo=True) & Q(id=contrato_id))[0]
    return contrato
Example #9
0
def get_last_contrato_for_producto_id(producto_id: str) -> Contrato:
    contrato = Contrato.objects(Q(activo=True) & Q(producto_id=producto_id))[0]
    return contrato
Example #10
0
def find_all_contratos() -> List[Contrato]:
    contratos = Contrato.objects()
    return contratos
Example #11
0
def crear_contrato(tipo: str, cliente_id: str, producto_id: str,
                   correo_vendedor: str, dias_validez: int,
                   pagos_programados: List[PagoProgramado]) -> Contrato:
    contrato = Contrato()
    contrato.tipo = tipo
    contrato.clienteId = cliente_id
    contrato.productoId = producto_id
    contrato.correoVendedor = correo_vendedor
    contrato.diasValidez = -1 if not dias_validez else dias_validez

    pagos_programados_objs = []

    if pagos_programados:
        for pago_programado_dict in pagos_programados:
            pago_programado_obj = PagoProgramado()
            pago_programado_obj.fechaCompromisoPago = pago_programado_dict[
                'fechaCompromisoPago']
            pago_programado_obj.monto = pago_programado_dict['monto']
            pagos_programados_objs.append(pago_programado_obj)

    if len(pagos_programados_objs) > 0:
        formatear_pagos_programados(pagos_programados=pagos_programados_objs)
        contrato.pagosProgramados = pagos_programados_objs

    contrato.save()

    producto = obtener_producto_por_id(producto_id=producto_id)

    if not producto:
        contrato.delete()
        raise Exception('No se encontrĂ³ el producto - se destruye el contrato')

    if not contrato.tipo == 'CORRIDA':
        producto.estatus = map_estatus_tipo_de_contrato(contrato.tipo)
        producto.save()

    return contrato
Example #12
0
def obtener_contratos_por_producto_id_y_correo_vendedor(
        producto_id: str, correo_vendedor: str) -> List[Contrato]:
    contratos = Contrato.objects(
        Q(productoId=producto_id) & Q(correoVendedor=correo_vendedor)).all()
    return contratos
Example #13
0
def obtener_contratos_por_producto_id(producto_id: str) -> List[Contrato]:
    contratos = Contrato.objects(productoId=producto_id).all()
    return contratos