def post(self, request): response_data = {} serializer = ServicioPkSerializer(data=request.data) serializer.is_valid(raise_exception=True) s = Servicio.objects.get(pk=serializer.validated_data.get('servicio')) if s.estatus.pk == 5: e = EstatusServicio(pk=6) bs = BitacoraEstatusServicio(servicio=s, estatus=e) bs.save() s.estatus = e bi = BitacoraEstatusServicio.objects.filter(servicio=s, estatus__pk=5).first() s.duracion = (bs.fecha - bi.fecha).seconds s.costo = precio_tarifa(s.tarifa, distancia_ruta(s.pk), (bs.fecha - bi.fecha).seconds) s.save() c = s.chofer c.activo = True c.save() cobrar(s) u = Usuario.objects.get(pk=s.cliente.pk) dispositivos = FCMDevice.objects.filter(user=u) if dispositivos.count() != 0: data_push = {} d = dispositivos.first() serializerServicio = ServicioSerializer(s, many=False) data_push['servicio'] = serializerServicio.data try: d.send_message(title='Has finalizado el servicio', body='El servicio fue finalizado', data=data_push) except Exception as e: pass else: response_data['error'] = 'No se puede finalizar el servicio' response_data['result'] = 0 return Response(response_data, status=status.HTTP_400_BAD_REQUEST) return Response({'result': 1, 'servicio': serializerServicio.data}, status=status.HTTP_200_OK)
def post(self, request): serializer = ServicioPkSerializer(data=request.data) serializer.is_valid(raise_exception=True) s = Servicio.objects.get(pk=serializer.validated_data.get('servicio')) if s.estatus.pk == 2: # Servicio aceptado cserializer = ServicioSerializer(s, many=False) return Response({"servicio": cserializer.data, "estatus": 1}, status=status.HTTP_200_OK) c = buscar_choferes(s) if c is None: return Response({"error", "No se encontro ningun chofer"}, status=status.HTTP_200_OK) else: cserializer = ChoferSerializer(c, many=False) if ServicioChofer.objects.filter(servicio=s, chofer=c).count() > 0: sc = ServicioChofer.objects.filter(servicio=s, chofer=c) sc.update(estatus=1) else: sc = ServicioChofer(servicio=s, chofer=c, estatus=1) sc.save() u = Usuario.objects.get(pk=c.pk) dispositivos = FCMDevice.objects.filter(user=u) if dispositivos.count() != 0: d = dispositivos.first() sserializer = ServicioSerializer(s, many=False) data_push = {'servicio': sserializer.data, 'result': '1'} try: d.send_message(data=data_push) except Exception as e: pass return Response({"chofer": cserializer.data, "estatus": 0}, status=status.HTTP_200_OK)
def post(self, request): response_data = {} serializer = ServicioPkSerializer(data=request.data) serializer.is_valid(raise_exception=True) s = Servicio.objects.get(pk=serializer.validated_data.get('servicio')) c = Chofer.objects.get(pk=request.user.pk) if s.chofer is None or s.chofer == c: if s.estatus.pk == (1): e = EstatusServicio(pk=2) bs = BitacoraEstatusServicio(servicio=s, estatus=e) bs.save() s.estatus = e s.chofer = c cv = ChoferHasVehiculo.objects.filter(chofer=c, estatus=True) cv = cv.first() s.vehiculo = cv.vehiculo s.save() if s.tipo_servicio.pk == 1: c.activo = 0 c.save() u = Usuario.objects.get(pk=s.cliente.pk) dispositivos = FCMDevice.objects.filter(user=u) if dispositivos.count() != 0: data_push = {} d = dispositivos.first() serializerServicio = ServicioSerializer(s, many=False) data_push['servicio'] = serializerServicio.data try: d.send_message(title='El conductor acepto tu servicio', body='Se acepto el servicio' + str(s.pk), data=data_push) except Exception as e: pass # c = s.cliente # subject = "Servicio aceptado" # to = [c.email] # ctx = { # 'request': request, # 'servicio': s # } # message = get_template('correos/mail-confirma-asociado.html').render(ctx) # sendMail.delay(to, subject, message) else: response_data['error'] = 'El Servicio no esta en estatus para ser aceptado' response_data['result'] = 0 return Response(response_data, status=status.HTTP_400_BAD_REQUEST) else: response_data['error'] = 'Este conductor no puede aceptar el servicio' response_data['result'] = 0 return Response(response_data, status=status.HTTP_400_BAD_REQUEST) return Response({'result': 1}, status=status.HTTP_200_OK)
def post(self, request): serializer = ServicioPkSerializer(data=request.data) serializer.is_valid(raise_exception=True) s = Servicio.objects.get(pk=serializer.validated_data.get('servicio')) c = Chofer.objects.get(pk=request.user.pk) try: aso = ServicioChofer.objects.get(chofer=c, servicio=s) aso.estatus = 2 aso.save() except ServicioChofer.DoesNotExist: aso = ServicioChofer(chofer=c, servicio=s, estatus=2) aso.save() c.activo = True s.save() return Response({'result': 1}, status=status.HTTP_200_OK)
def get_serializer(self): return ServicioPkSerializer()