def form_valid(self, form):
        context = self.get_context_data()
        pontoset = context['pontoset']
        with transaction.atomic():
            self.object = form.save()
            if pontoset.is_valid():
                pontoset.instance = self.object
                pontoset.save()
        pedido = self.object
        data = self.request.POST
        try:
            cliente = Cliente.objects.get(user__username=data['login'])
        except (Exception, ):
            cliente = None
        if not cliente:
            user_data = {}
            user_data['username'] = data['login']
            user_data['password'] = data['login']
            user_data['email'] = data['email']
            user_data['last_name'] = str(data['nome'])[:30]
            usuario = User.objects.create_user(**user_data)
            usuario.save()
            cliente = Cliente(user=usuario)
            cliente.save()
        cliente.phone = data['phone']
        cliente.nome = data['nome']
        cliente.endereco = data['endereco']
        cliente.numero = data['numero']
        cliente.bairro = data['bairro']
        cliente.cidade = data['cidade']
        cliente.save()
        pedido.cliente = cliente
        try:
            vendedor = Vendedor.objects.get(user=self.request.user)
            pedido.vendedor = vendedor
        except (Exception, ):
            pass
        pedido.save()

        # message = "Um novo pedido foi feito pelo vendedor " + self.request.user.first_name
        # pedido = self.object
        # a = func()
        if not self.request.user.is_superuser:
            users = User.objects.filter(is_superuser=True)
            for user in users:
                message = "Um novo pedido foi feito pelo vendedor " + self.request.user.first_name
                n = Notification(type_message='NOVO_PEDIDO_VENDEDOR',
                                 to=user,
                                 message=message)
                print(user)
                n.save()
        return super(PedidoCreateVendedorView, self).form_valid(form)
 def form_valid(self, form):
     context = self.get_context_data()
     pontoset = context['pontoset']
     with transaction.atomic():
         self.object = form.save()
         print(pontoset.errors)
         if pontoset.is_valid():
             pontoset.instance = self.object
             pontoset.save()
     pedido = self.object
     data = self.request.POST
     usuario = None
     cliente = None
     try:
         usuario = User.objects.get(last_name=str(data['nome'])[:30])
         usuario.email = data['email']
         usuario.save()
         cliente = usuario.cliente
     except (Exception, ):
         username = '******' + str(uuid.uuid4())[:8]
         usuario = User(username=username,
                        password='******',
                        email=data['email'],
                        last_name=str(data['nome'])[:30])
         usuario.save()
         cliente = Cliente(user=usuario)
         cliente.save()
     cliente.phone = data['phone']
     cliente.endereco = data['endereco']
     cliente.numero = data['numero']
     cliente.bairro = data['bairro']
     cliente.cidade = data['cidade']
     cliente.save()
     pedido.cliente = cliente
     pedido.save()
     # pedido = self.object
     # a = func()
     # message = "Um novo pedido foi feito pela " + self.request.user.first_name
     # for m in Motorista.objects.all():
     #     if m.is_online and not m.ocupado:
     #         n = Notification(type_message='NOVO_PEDIDO', to=m.user, message=message)
     #         n.save()
     return super(PedidoUpdateVendedorView, self).form_valid(form)
Beispiel #3
0
 def form_valid(self, form):
     try:
         data = form.cleaned_data
         user_data = {}
         user_data['username'] = data['login']
         user_data['password'] = data['senha']
         user_data['first_name'] = data['nome']
         user_data['email'] = data['email']
         usuario = User.objects.create_user(**user_data)
         usuario.save()
         user = authenticate(**user_data)
         login(self.request, user)
         cliente = Cliente(user=usuario)
         cliente.phone = data['phone']
         cliente.endereco = data['endereco']
         cliente.numero = data['numero']
         cliente.bairro = data['bairro']
         cliente.cidade = data['cidade']
         cliente.save()
         pedido = Pedido(cliente=cliente)
         pedido.save()
         self.request.session['pedido'] = pedido.id
         pedido = cliente.pedido_set.last()
         pedido.is_completed = True
         pedido.save()
         print(self.request.session['pedido'])
         # self.request.session['pedido'] = None
         # del self.request.session['pedido']
         # users = User.objects.filter(is_superuser=True)
         # for us in users:
         #     message = "Um novo pedido foi feito no Catalogo Virtual"
         #     n = Notification(type_message='NOVO_PEDIDO_LOJA', to=us, message=message)
         #     n.save()
     except (Exception,):
         return self.form_invalid(form)
     messages.success(self.request, "Cadastro realizado com sucesso")
     return HttpResponseRedirect(self.get_success_url())