Esempio n. 1
0
 def setUp(self):
     super().setUp()
     from terceros.factories import AcompananteFactory, ColaboradorFactory
     self.url = '/api/terceros/'
     self.permiso = 'tercero'
     self.acompanante = AcompananteFactory()
     self.acompanante.usuario.set_password('contrasena')
     self.acompanante.usuario.save()
     self.colaborador = ColaboradorFactory()
Esempio n. 2
0
 def test_listar_presentes(self):
     from terceros.factories import AcompananteFactory
     from terceros.services import tercero_set_new_pin, tercero_registra_entrada
     AcompananteFactory()
     tercero_nuevo = AcompananteFactory()
     tercero_set_new_pin(tercero_id=tercero_nuevo.id, raw_pin='0000')
     tercero_registra_entrada(tercero_id=tercero_nuevo.id, raw_pin='0000')
     tercero_set_new_pin(tercero_id=self.acompanante.id, raw_pin='0000')
     tercero_registra_entrada(tercero_id=self.acompanante.id,
                              raw_pin='0000')
     response = self.list_route_get('listar_presentes/')
     self.assertEqual(len(response.data), 2)
Esempio n. 3
0
 def test_listar_presentes(self):
     from terceros.factories import AcompananteFactory
     from terceros.services import acompanante_encriptar, tercero_registra_entrada, tercero_set_new_pin
     entrara = AcompananteFactory(
         nombre=acompanante_encriptar('uno'),
         nombre_segundo=acompanante_encriptar('dos'),
         apellido=acompanante_encriptar('uno'),
         apellido_segundo=acompanante_encriptar('uno'),
         nro_identificacion=acompanante_encriptar('uno'))
     AcompananteFactory()
     AcompananteFactory()
     tercero_set_new_pin(tercero_id=entrara.id, raw_pin='0000')
     tercero_registra_entrada(tercero_id=entrara.id, raw_pin='0000')
     response = self.list_route_get('listar_presentes/')
     self.assertEqual(len(response.data), 1)
Esempio n. 4
0
    def setUp(self):
        from terceros.factories import AcompananteFactory, ColaboradorFactory, ProveedorFactory
        from puntos_venta.factories import PuntoVentaFactory
        from puntos_venta.services import punto_venta_abrir
        from terceros.services import (tercero_set_new_pin,
                                       tercero_registra_entrada)

        self.punto_venta = PuntoVentaFactory(abierto=False,
                                             usuario_actual=None)
        self.colaborador_pdv = ColaboradorFactory()
        tercero_set_new_pin(self.colaborador_pdv.id, '0000')
        tercero_registra_entrada(self.colaborador_pdv.id, '0000')
        punto_venta_abrir(usuario_pv_id=self.colaborador_pdv.usuario.id,
                          punto_venta_id=self.punto_venta.id,
                          base_inicial_efectivo=0)

        self.colaborador = ColaboradorFactory()
        tercero_set_new_pin(self.colaborador.id, '0000')
        tercero_registra_entrada(self.colaborador.id, '0000')

        self.acompanante = AcompananteFactory()
        tercero_set_new_pin(self.acompanante.id, '0000')
        tercero_registra_entrada(self.acompanante.id, '0000')

        self.proveedor = ProveedorFactory()
Esempio n. 5
0
    def setUp(self):
        from terceros.factories import AcompananteFactory, ColaboradorFactory
        self.user_sin_tercero = UserFactory()
        self.user = UserFactory()

        self.user_acompanante = UserFactory()
        self.punto_venta = PuntoVentaFactory(abierto=False,
                                             usuario_actual=None)
        self.punto_venta_dos = PuntoVentaFactory(abierto=False,
                                                 usuario_actual=None)
        self.acompanante = AcompananteFactory(usuario=self.user_acompanante)

        self.colaborador = ColaboradorFactory(usuario=UserFactory())
        self.colaborador_dos = ColaboradorFactory(usuario=UserFactory())
Esempio n. 6
0
 def test_validar_documento_acompanante(self):
     from terceros.factories import AcompananteFactory
     from terceros.services import acompanante_encriptar, acompanante_desencriptar
     acompanante = AcompananteFactory(
         nombre=acompanante_encriptar('uno'),
         nombre_segundo=acompanante_encriptar('dos'),
         apellido=acompanante_encriptar('uno'),
         apellido_segundo=acompanante_encriptar('uno'),
         nro_identificacion=acompanante_encriptar('uno'))
     response = self.list_route_get(
         'validar_documento_acompanante/?nro_identificacion_1=%s' %
         acompanante_desencriptar(acompanante.nro_identificacion))
     self.assertEqual(response.data, {'nro_identificacion_1': 'Ya exite'})
     response = self.list_route_get(
         'validar_documento_acompanante/?alias_modelo=%s' %
         acompanante.alias_modelo)
     self.assertEqual(response.data, {'alias_modelo': 'Ya exite'})
Esempio n. 7
0
    def crear_base_venta(self):
        self.crear_productos()
        from terceros.factories import ColaboradorFactory, AcompananteFactory, CuentaColaboradorFactory
        from ..factories import PuntoVentaFactory
        from ..services import punto_venta_abrir
        from terceros.services import (tercero_set_new_pin,
                                       tercero_registra_entrada)
        tercero = ColaboradorFactory()
        tercero.usuario = self.user
        tercero.save()
        tercero_set_new_pin(tercero_id=tercero.id, raw_pin='0000')
        tercero_registra_entrada(tercero_id=tercero.id, raw_pin='0000')
        punto_venta = PuntoVentaFactory(abierto=False,
                                        usuario_actual=None,
                                        bodega=self.bodega)
        self.punto_venta, punto_venta_turno = punto_venta_abrir(
            punto_venta_id=punto_venta.id,
            usuario_pv_id=self.user.id,
            base_inicial_efectivo=0)

        acompanante = AcompananteFactory()
        tercero_set_new_pin(tercero_id=acompanante.id, raw_pin='0000')
        tercero_registra_entrada(tercero_id=acompanante.id, raw_pin='0000')
        self.cuenta = CuentaColaboradorFactory(propietario=acompanante.usuario)
        self.pedido = [
            {
                'producto_id': self.mid_uno.producto.id,
                'precio_total': 2000,
                'cantidad': 1
            },
            {
                'producto_id': self.mid_dos.producto.id,
                'precio_total': 3000,
                'cantidad': 2
            },
            {
                'producto_id': self.mid_tres.producto.id,
                'precio_total': 4000,
                'cantidad': 3
            },
        ]
Esempio n. 8
0
    def acompanantesSetUp(self):
        # region Categorias Modelos
        from terceros_acompanantes.factories import (
            CategoriaFraccionTiempoFactory, FraccionTiempoFactory,
            CategoriaAcompananteFactory)
        self.fraccion_tiempo_30 = FraccionTiempoFactory(minutos=30)
        self.fraccion_tiempo_45 = FraccionTiempoFactory(minutos=45)
        self.fraccion_tiempo_60 = FraccionTiempoFactory(minutos=60)
        self.categoria_modelo = CategoriaAcompananteFactory()
        self.categoria_fraccion_tiempo_30 = CategoriaFraccionTiempoFactory(
            categoria=self.categoria_modelo,
            fraccion_tiempo=self.fraccion_tiempo_30,
            valor=100000)
        self.categoria_fraccion_tiempo_45 = CategoriaFraccionTiempoFactory(
            categoria=self.categoria_modelo,
            fraccion_tiempo=self.fraccion_tiempo_45,
            valor=150000)
        self.categoria_fraccion_tiempo_60 = CategoriaFraccionTiempoFactory(
            categoria=self.categoria_modelo,
            fraccion_tiempo=self.fraccion_tiempo_60,
            valor=200000)
        # endregion

        # region Acompanantes
        from terceros.factories import AcompananteFactory
        from terceros.services import (acompanante_crear, tercero_set_new_pin,
                                       tercero_registra_entrada)

        # region Acompañante uno
        self.acompanante_base = AcompananteFactory.build(
            categoria_modelo=self.categoria_modelo)
        self.acompanante_base.pop('es_acompanante')
        self.acompanante_base.pop('usuario')
        self.acompanante = acompanante_crear(self.acompanante_base)
        self.acompanante, pin = tercero_set_new_pin(
            tercero_id=self.acompanante.id, raw_pin='0000')
        tercero_registra_entrada(tercero_id=self.acompanante.id,
                                 raw_pin='0000')
        # endregion

        # region Acompañante dos
        self.acompanante_base_dos = AcompananteFactory.build(
            categoria_modelo=self.categoria_modelo)
        self.acompanante_base_dos.pop('es_acompanante')
        self.acompanante_base_dos.pop('usuario')
        self.acompanante_dos = acompanante_crear(self.acompanante_base_dos)

        self.acompanante_dos, pin = tercero_set_new_pin(
            tercero_id=self.acompanante_dos.id, raw_pin='0000')
        tercero_registra_entrada(tercero_id=self.acompanante_dos.id,
                                 raw_pin='0000')
        # endregion

        # region Acompañante tres
        self.acompanante_base_tres = AcompananteFactory.build(
            categoria_modelo=self.categoria_modelo)
        self.acompanante_base_tres.pop('es_acompanante')
        self.acompanante_base_tres.pop('usuario')
        self.acompanante_tres = acompanante_crear(self.acompanante_base_tres)

        self.acompanante_tres, pin = tercero_set_new_pin(
            tercero_id=self.acompanante_tres.id, raw_pin='0000')
        tercero_registra_entrada(tercero_id=self.acompanante_tres.id,
                                 raw_pin='0000')
Esempio n. 9
0
class TercerosTestApi(BaseTestsApi):
    def setUp(self):
        super().setUp()
        from terceros.factories import AcompananteFactory, ColaboradorFactory
        self.url = '/api/terceros/'
        self.permiso = 'tercero'
        self.acompanante = AcompananteFactory()
        self.acompanante.usuario.set_password('contrasena')
        self.acompanante.usuario.save()
        self.colaborador = ColaboradorFactory()

    def test_cambiar_pin(self):
        from terceros.services import tercero_is_pin_correct
        self.detail_route_post('cambiar_pin', {
            'password': '******',
            'pin': '1234'
        }, self.acompanante.id)
        self.assertTrue(tercero_is_pin_correct(self.acompanante.id, '1234'))

    def test_generar_qr(self):
        self.assertIsNone(self.acompanante.qr_acceso)
        self.detail_route_post('generar_qr', None, self.acompanante.id)
        self.acompanante.refresh_from_db()
        self.assertIsNotNone(self.acompanante.qr_acceso)

    def test_buscar_por_qr(self):
        from terceros.services import tercero_set_new_pin, tercero_registra_entrada
        tercero_set_new_pin(tercero_id=self.acompanante.id, raw_pin='0000')
        tercero_registra_entrada(tercero_id=self.acompanante.id,
                                 raw_pin='0000')
        self.acompanante.refresh_from_db()
        self.acompanante.qr_acceso = 'prueba_qr'
        self.acompanante.save()

        response = self.list_route_post('buscar_por_qr/',
                                        {'codigo_qr': 'prueba_qr'})
        respuesta = response.data
        self.assertEqual(self.acompanante.id, respuesta.get('id'))
        response = self.list_route_post('buscar_por_qr/',
                                        {'codigo_qr': 'prueba_qrS'}, True)
        respuesta = response.data
        self.assertEqual(
            respuesta,
            {'_error': 'No se encuentra usuario con este codigo qr'})

    def test_listar_ausentes(self):
        from terceros.factories import AcompananteFactory
        AcompananteFactory()
        response = self.list_route_get('listar_ausentes/')
        self.assertEqual(len(response.data), 3)

    def test_listar_presentes(self):
        from terceros.factories import AcompananteFactory
        from terceros.services import tercero_set_new_pin, tercero_registra_entrada
        AcompananteFactory()
        tercero_nuevo = AcompananteFactory()
        tercero_set_new_pin(tercero_id=tercero_nuevo.id, raw_pin='0000')
        tercero_registra_entrada(tercero_id=tercero_nuevo.id, raw_pin='0000')
        tercero_set_new_pin(tercero_id=self.acompanante.id, raw_pin='0000')
        tercero_registra_entrada(tercero_id=self.acompanante.id,
                                 raw_pin='0000')
        response = self.list_route_get('listar_presentes/')
        self.assertEqual(len(response.data), 2)

    def test_registrar_ingreso_salida(self):
        from terceros.services import tercero_set_new_pin
        tercero_set_new_pin(tercero_id=self.acompanante.id, raw_pin='0000')
        self.detail_route_post('registrar_ingreso', {'pin': '0000'},
                               self.acompanante.id)
        self.acompanante.refresh_from_db()
        self.assertTrue(self.acompanante.presente)
        self.detail_route_post('registrar_salida', {'pin': '0000'},
                               self.acompanante.id)
        self.acompanante.refresh_from_db()
        self.assertFalse(self.acompanante.presente)

    def test_validar_documento(self):
        response = self.list_route_get(
            'validar_documento_tercero/?nro_identificacion=%s' %
            self.colaborador.nro_identificacion)
        self.assertEqual(response.data, {'nro_identificacion': 'Ya exite'})
        response = self.list_route_get(
            'validar_documento_tercero/?nro_identificacion=no_existe', True)
        self.assertEqual(response.data, {})
Esempio n. 10
0
 def test_listar_ausentes(self):
     from terceros.factories import AcompananteFactory
     AcompananteFactory()
     response = self.list_route_get('listar_ausentes/')
     self.assertEqual(len(response.data), 3)
Esempio n. 11
0
    def setUp(self):
        from terceros.factories import AcompananteFactory, ColaboradorFactory
        from puntos_venta.factories import PuntoVentaFactory
        from puntos_venta.services import punto_venta_abrir
        from habitaciones.factories import (HabitacionFactory,
                                            TipoHabitacionFactory)
        from servicios.services import servicio_crear_nuevo, servicio_iniciar
        from terceros_acompanantes.factories import (
            CategoriaFraccionTiempoFactory, FraccionTiempoFactory,
            CategoriaAcompananteFactory)
        from terceros.services import (acompanante_crear, tercero_set_new_pin,
                                       tercero_registra_entrada,
                                       colaborador_crear)

        self.tipo_habitacion_uno = TipoHabitacionFactory(valor=40000)
        self.tipo_habitacion_dos = TipoHabitacionFactory(valor=60000)
        self.tipo_habitacion_tres = TipoHabitacionFactory(valor=30000)

        self.habitacion_uno = HabitacionFactory(tipo=self.tipo_habitacion_uno)
        self.habitacion_dos = HabitacionFactory(tipo=self.tipo_habitacion_dos)
        self.habitacion_tres = HabitacionFactory(
            tipo=self.tipo_habitacion_tres)

        # Colaborador para transacciones
        colaborador_base = ColaboradorFactory.build(usuario=None)
        colaborador_base.pop('es_colaborador')
        colaborador_base.pop('usuario')

        self.colaborador = colaborador_crear(colaborador_base)
        self.colaborador, pin_nuevo = tercero_set_new_pin(
            self.colaborador.id, '0000')
        tercero_registra_entrada(tercero_id=self.colaborador.id,
                                 raw_pin='0000')
        self.punto_venta = PuntoVentaFactory(abierto=False,
                                             usuario_actual=None)
        self.punto_venta, self.punto_venta_turno = punto_venta_abrir(
            punto_venta_id=self.punto_venta.id,
            usuario_pv_id=self.colaborador.usuario.id,
            base_inicial_efectivo=0)

        # Acompanante
        self.categoria_modelo = CategoriaAcompananteFactory()
        self.fraccion_tiempo_30 = FraccionTiempoFactory(minutos=30)
        self.fraccion_tiempo_45 = FraccionTiempoFactory(minutos=45)
        self.fraccion_tiempo_60 = FraccionTiempoFactory(minutos=60)
        self.categoria_modelo = CategoriaAcompananteFactory()
        self.categoria_fraccion_tiempo_30 = CategoriaFraccionTiempoFactory(
            categoria=self.categoria_modelo,
            fraccion_tiempo=self.fraccion_tiempo_30,
            valor=100000)
        self.categoria_fraccion_tiempo_45 = CategoriaFraccionTiempoFactory(
            categoria=self.categoria_modelo,
            fraccion_tiempo=self.fraccion_tiempo_45,
            valor=150000)
        self.categoria_fraccion_tiempo_60 = CategoriaFraccionTiempoFactory(
            categoria=self.categoria_modelo,
            fraccion_tiempo=self.fraccion_tiempo_60,
            valor=200000)
        acompanante_base = AcompananteFactory.build(
            usuario=None, categoria_modelo=self.categoria_modelo)
        acompanante_base.pop('es_acompanante')
        acompanante_base.pop('usuario')

        self.acompanante = acompanante_crear(acompanante_base)

        self.acompanante_base_dos = AcompananteFactory.build(
            usuario=None, categoria_modelo=self.categoria_modelo)
        self.acompanante_base_dos.pop('es_acompanante')
        self.acompanante_base_dos.pop('usuario')
        self.acompanante_dos = acompanante_crear(self.acompanante_base_dos)

        self.acompanante, pin = tercero_set_new_pin(
            tercero_id=self.acompanante.id, raw_pin='0000')
        tercero_registra_entrada(tercero_id=self.acompanante.id,
                                 raw_pin='0000')

        self.acompanante_dos, pin = tercero_set_new_pin(
            tercero_id=self.acompanante_dos.id, raw_pin='0000')
        tercero_registra_entrada(tercero_id=self.acompanante_dos.id,
                                 raw_pin='0000')

        self.array_servicios = [
            {
                'tercero_id':
                self.acompanante.id,
                'categoria_fraccion_tiempo_id':
                self.categoria_fraccion_tiempo_30.id
            },
            {
                'tercero_id':
                self.acompanante_dos.id,
                'categoria_fraccion_tiempo_id':
                self.categoria_fraccion_tiempo_45.id
            },
            {
                'tercero_id':
                self.acompanante_dos.id,
                'categoria_fraccion_tiempo_id':
                self.categoria_fraccion_tiempo_60.id
            },
            {
                'tercero_id':
                self.acompanante.id,
                'categoria_fraccion_tiempo_id':
                self.categoria_fraccion_tiempo_60.id
            },
            {
                'tercero_id':
                self.acompanante.id,
                'categoria_fraccion_tiempo_id':
                self.categoria_fraccion_tiempo_45.id
            },
        ]

        self.array_servicios_id = []
        for servicio in self.array_servicios:
            tercero_id = servicio.pop('tercero_id')
            categoria_fraccion_tiempo_id = servicio.pop(
                'categoria_fraccion_tiempo_id')

            servicio_adicionado = servicio_crear_nuevo(
                habitacion_id=self.habitacion_uno.id,
                acompanante_id=tercero_id,
                categoria_fraccion_tiempo_id=categoria_fraccion_tiempo_id,
                usuario_pdv_id=self.colaborador.usuario.id)
            self.array_servicios_id.append(servicio_adicionado.id)

        servicios_a_iniciar = self.habitacion_uno.servicios.filter(estado=0)
        [
            servicio_iniciar(servicio_id=servicio.id,
                             usuario_pdv_id=self.colaborador.usuario.id)
            for servicio in servicios_a_iniciar.order_by('id').all()
        ]