def setUp(self): from ..factories import OperacionCajaFactory, ConceptoOperacionCajaFactory from terceros.factories import ColaboradorFactory from puntos_venta.factories import PuntoVentaFactory from terceros.services import tercero_registra_entrada, tercero_set_new_pin from puntos_venta.services import punto_venta_abrir super().setUp() self.Factory = OperacionCajaFactory self.url = '/api/operaciones_caja/' self.permiso = 'operacioncaja' self.modelo = OperacionCaja self.data_for_create_test = self.Factory.stub().__dict__ self.colaborador = ColaboradorFactory(usuario=self.user) tercero_set_new_pin(self.colaborador.id, '0000') tercero_registra_entrada(self.colaborador.id, '0000') self.punto_venta = PuntoVentaFactory(abierto=False, usuario_actual=None) punto_venta_abrir(base_inicial_efectivo=0, usuario_pv_id=self.colaborador.usuario.id, punto_venta_id=self.punto_venta.id) self.concepto = ConceptoOperacionCajaFactory(tipo='I', grupo='C', tipo_cuenta='CXC') self.data_for_create_test['tercero'] = self.colaborador.id self.data_for_create_test['concepto'] = self.concepto.id self.data_for_create_test.pop('cuenta') self.data_for_update_test = {'observacion': 'probando'}
def registrar_ingreso(self, request, pk=None): from terceros.services import tercero_registra_entrada tercero = self.get_object() pin = request.POST.get('pin') tercero_registra_entrada(tercero.id, pin) mensaje = 'El registro de Entrada para %s ha sido éxitoso' % ( tercero.full_name_proxy) return Response({'result': mensaje})
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_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)
def test_operacion_caja_colaborador_acompanante_presentes(self): from ..factories import ConceptoOperacionCajaFactory from ..services import operacion_caja_crear from terceros.services import tercero_registra_salida, tercero_registra_entrada tercero_registra_salida(self.colaborador_pdv.id, '0000') with self.assertRaisesMessage( ValidationError, "{'_error': 'Quien crea de la operación debe estar presente'}" ): concepto_operacion = ConceptoOperacionCajaFactory(tipo='I', grupo='A') operacion_caja_crear( concepto_id=concepto_operacion.id, usuario_pdv_id=self.colaborador_pdv.usuario.id, tercero_id=self.acompanante.id, valor=1000, observacion='hola') with self.assertRaisesMessage( ValidationError, "{'_error': 'A quien se le crea la operación debe estar presente.'}" ): tercero_registra_entrada(self.colaborador_pdv.id, '0000') tercero_registra_salida(self.acompanante.id, '0000') concepto_operacion = ConceptoOperacionCajaFactory(tipo='I', grupo='A') operacion_caja_crear( concepto_id=concepto_operacion.id, usuario_pdv_id=self.colaborador_pdv.usuario.id, tercero_id=self.acompanante.id, valor=1000, observacion='hola') usuario = self.colaborador_pdv.usuario self.colaborador_pdv.usuario = None self.colaborador_pdv.save() with self.assertRaisesMessage( ValidationError, "{'_error': 'Quien crea la operación debe tener un tercero'}"): concepto_operacion = ConceptoOperacionCajaFactory(tipo='I', grupo='A') operacion_caja_crear(concepto_id=concepto_operacion.id, usuario_pdv_id=usuario.id, tercero_id=self.colaborador_pdv.id, valor=1000, observacion='hola')
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 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 }, ]
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()
def setUp(self): from terceros.factories import ColaboradorFactory from puntos_venta.factories import PuntoVentaFactory from terceros.services import tercero_registra_entrada, tercero_set_new_pin from puntos_venta.services import punto_venta_abrir, punto_venta_cerrar super().setUp() self.url = '/api/arqueos_cajas/' self.permiso = 'arqueocaja' self.modelo = ArqueoCaja self.colaborador = ColaboradorFactory(usuario=self.superuser) tercero_set_new_pin(self.colaborador.id, '0000') tercero_registra_entrada(self.colaborador.id, '0000') self.punto_venta = PuntoVentaFactory(abierto=False, usuario_actual=None) punto_venta_abrir(base_inicial_efectivo=0, usuario_pv_id=self.colaborador.usuario.id, punto_venta_id=self.punto_venta.id) punto_venta_cerrar(usuario_pv_id=self.colaborador.usuario.id, entrega_efectivo_dict={}, operaciones_caja_dict={}, entrega_base_dict={}, valor_tarjeta=0, nro_vauchers=0, valor_dolares=0, tasa_dolar=0) punto_venta_abrir(base_inicial_efectivo=0, usuario_pv_id=self.colaborador.usuario.id, punto_venta_id=self.punto_venta.id) self.punto_venta, self.arqueo = punto_venta_cerrar( usuario_pv_id=self.colaborador.usuario.id, entrega_efectivo_dict={}, operaciones_caja_dict={}, entrega_base_dict={}, valor_tarjeta=200000, nro_vauchers=1, valor_dolares=0, tasa_dolar=0)
def setUp(self): from productos.factories import ProductoFactory from usuarios.factories import UserFactory from ..services import (movimiento_inventario_detalle_entrada_add_item, movimiento_inventario_saldo_inicial_crear, movimiento_inventario_aplicar_movimiento) from ..factories import TrasladoFactory, BodegaFactory from terceros.factories import ColaboradorFactory from terceros.services import (tercero_set_new_pin, tercero_registra_entrada) from puntos_venta.services import punto_venta_abrir from puntos_venta.factories import PuntoVentaFactory # Primer colaborador presente self.punto_venta_abierto = PuntoVentaFactory(usuario_actual=None, abierto=False) self.colaborador_presente = ColaboradorFactory() tercero_set_new_pin(tercero_id=self.colaborador_presente.id, raw_pin='0000') tercero_registra_entrada(self.colaborador_presente.id, raw_pin='0000') self.colaborador_presente.usuario.set_password('otro') self.colaborador_presente.usuario.save() punto_venta_abrir(usuario_pv_id=self.colaborador_presente.usuario.id, punto_venta_id=self.punto_venta_abierto.id, base_inicial_efectivo=0) self.punto_venta_abierto.refresh_from_db() self.bodega_punto_venta_abierto = self.punto_venta_abierto.bodega self.bodega_punto_venta_abierto.es_principal = False self.bodega_punto_venta_abierto.save() self.colaborador_presente.refresh_from_db() # Segundo colaborador presente self.punto_venta_abierto_dos = PuntoVentaFactory(usuario_actual=None, abierto=False) self.colaborador_presente_dos = ColaboradorFactory() tercero_set_new_pin(tercero_id=self.colaborador_presente_dos.id, raw_pin='0000') tercero_registra_entrada(self.colaborador_presente_dos.id, raw_pin='0000') self.colaborador_presente_dos.usuario.set_password('otro') self.colaborador_presente_dos.usuario.save() punto_venta_abrir( usuario_pv_id=self.colaborador_presente_dos.usuario.id, punto_venta_id=self.punto_venta_abierto_dos.id, base_inicial_efectivo=0) self.punto_venta_abierto_dos.refresh_from_db() self.bodega_punto_venta_abierto_dos = self.punto_venta_abierto_dos.bodega self.bodega_punto_venta_abierto_dos.es_principal = False self.bodega_punto_venta_abierto_dos.save() self.colaborador_presente_dos.refresh_from_db() # Colaborador no presente self.colaborador_no_presente = ColaboradorFactory() self.usuario = UserFactory() self.traslado = TrasladoFactory() self.producto_uno = ProductoFactory() self.producto_dos = ProductoFactory() self.producto_tres = ProductoFactory() self.producto_cuatro = ProductoFactory() self.bodega_inventario = BodegaFactory(es_principal=True) self.bodega_destino = BodegaFactory(es_principal=False) self.movimiento_saldo_inicial = movimiento_inventario_saldo_inicial_crear( bodega_destino_id=self.bodega_inventario.id, usuario_id=self.usuario.id, fecha=timezone.now()) self.mv_uno_detalle_uno = movimiento_inventario_detalle_entrada_add_item( movimiento_id=self.movimiento_saldo_inicial.id, producto_id=self.producto_uno.id, cantidad=20, costo_total=10000) self.mv_uno_detalle_dos = movimiento_inventario_detalle_entrada_add_item( movimiento_id=self.movimiento_saldo_inicial.id, producto_id=self.producto_dos.id, cantidad=30, costo_total=40000) self.mv_uno_detalle_tres = movimiento_inventario_detalle_entrada_add_item( movimiento_id=self.movimiento_saldo_inicial.id, producto_id=self.producto_tres.id, cantidad=40, costo_total=90000) movimiento_inventario_aplicar_movimiento( self.movimiento_saldo_inicial.id)
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')
def colaboradoresSetUp(self): # region Puntos de Venta from puntos_venta.factories import PuntoVentaFactory from puntos_venta.services import punto_venta_abrir self.punto_venta = PuntoVentaFactory(abierto=False, usuario_actual=None) self.bodega = self.punto_venta.bodega self.bodega.es_principal = False self.bodega.save() self.punto_venta_dos = PuntoVentaFactory(abierto=False, usuario_actual=None) self.bodega_dos = self.punto_venta.bodega self.bodega_dos.es_principal = False self.bodega_dos.save() # endregion # region Colaboradores from terceros.factories import ColaboradorFactory from terceros.services import tercero_registra_entrada, tercero_set_new_pin, colaborador_crear # region Colaborador Uno self.colaborador_base = ColaboradorFactory.build(usuario=None) self.colaborador_base.pop('es_colaborador') self.colaborador_base.pop('usuario') self.colaborador_cajero = colaborador_crear(self.colaborador_base) tercero_set_new_pin(tercero_id=self.colaborador_cajero.id, raw_pin='0000') tercero_registra_entrada(tercero_id=self.colaborador_cajero.id, raw_pin='0000') self.punto_venta, self.punto_venta_turno = punto_venta_abrir( usuario_pv_id=self.colaborador_cajero.usuario.id, punto_venta_id=self.punto_venta.id, base_inicial_efectivo=500000) # endregion # region Colaborador Dos self.colaborador_dos_base = ColaboradorFactory.build(usuario=None) self.colaborador_dos_base.pop('es_colaborador') self.colaborador_dos_base.pop('usuario') self.colaborador_dos = colaborador_crear(self.colaborador_dos_base) tercero_set_new_pin(tercero_id=self.colaborador_dos.id, raw_pin='0000') tercero_registra_entrada(tercero_id=self.colaborador_dos.id, raw_pin='0000') # endregion # region Colaborador Mesero self.colaborador_tres_base = ColaboradorFactory.build(usuario=None) self.colaborador_tres_base.pop('es_colaborador') self.colaborador_tres_base.pop('usuario') self.colaborador_mesero = colaborador_crear(self.colaborador_tres_base) tercero_set_new_pin(tercero_id=self.colaborador_mesero.id, raw_pin='0000') tercero_registra_entrada(tercero_id=self.colaborador_mesero.id, raw_pin='0000') # endregion # region Colaborador Mesero Dos self.colaborador_cuatro_base = ColaboradorFactory.build(usuario=None) self.colaborador_cuatro_base.pop('es_colaborador') self.colaborador_cuatro_base.pop('usuario') self.colaborador_mesero_dos = colaborador_crear( self.colaborador_cuatro_base) tercero_set_new_pin(tercero_id=self.colaborador_mesero_dos.id, raw_pin='0000') tercero_registra_entrada(tercero_id=self.colaborador_mesero_dos.id, raw_pin='0000')
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() ]