Example #1
0
 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)
Example #2
0
 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)
Example #3
0
 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)
Example #4
0
    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)
Example #5
0
 def get_serializer(self):
     return ServicioPkSerializer()