def cancel_pedido(request, pk): if not request.user.is_authenticated: messages.error(request, "Usuario precisa estar logado para esta operacao") raise PermissionDenied( "Usuario precisa estar logado para esta operacao") else: pedido = Pedido.objects.get(id=pk) try: user_motorista = pedido.motorista motorista = Motorista.objects.get(user=user_motorista) except: user_motorista = None if user_motorista: if user_motorista.pedido_set.last() == pedido: motorista.ocupado = False motorista.save() loja = Estabelecimento.objects.get(user=request.user) if motorista.is_online: message = "O Pedido que voce ia entregar foi cancelado pela loja " + request.user.first_name + ". Desculpe pelo transtorno! Qualquer coisa, ligue para a loja: " + loja.phone n = Notification(type_message='DELETE_LOJA', to=motorista.user, message=message) n.save() pedido.status = True pedido.motorista = None pedido.save() try: logger(request.user, "Cancelou a Rota #" + str(pedido.pk)) except (Exception, ): pass messages.success(request, "Pedido deletado com sucesso") return HttpResponseRedirect('/app/pedidos/loja/')
def form_valid(self, form): try: logger(self.request.user, "Aceitou o pedido " + str(self.object)) except (Exception, ): pass context = self.get_context_data() itempedido_set = context['itempedido_set'] with transaction.atomic(): self.object = form.save() if itempedido_set.is_valid(): itempedido_set.instance = self.object itempedido_set.save() return super(RequestUpdateView, self).form_valid(form)
def form_valid(self, form): context = self.get_context_data() pontoset = context['pontoset'] with transaction.atomic(): if pontoset.is_valid(): pontoset.instance = self.object pontoset.save() self.object = form.save() pedido = self.object try: logger(self.request.user, "Editou a Rota #" + str(pedido.pk)) except (Exception, ): pass return super(PedidoUpdateView, self).form_valid(form)
def form_valid(self, form): try: logger(self.request.user, "Alterou o grupo " + str(self.object)) except (Exception, ): pass context = self.get_context_data() print(context) opcionalset = context['opcionalset'] with transaction.atomic(): self.object = form.save() if opcionalset.is_valid(): opcionalset.instance = self.object opcionalset.save() return super(GrupoUpdateView, self).form_valid(form)
def get(self, request, *args, **kwargs): user = self.request.user try: loja = user.estabelecimento if loja: loja.is_online = False loja.save() except (Exception, ): cliente = user.cliente if cliente: cliente.is_online = False cliente.save() logger(self.request.user, "Fez logout no sistema") logout(self.request) return super(LojaLogoutView, self).get(request, *args, **kwargs)
def form_valid(self, form): data = form.cleaned_data user = authenticate(**data) print(user) if user is not None: if user.estabelecimento.is_approved: logger(self.request.user, "Realizou login no sistema") login(self.request, user) else: messages.error(self.request, 'Sua conta ainda está para ser aprovada') return self.form_invalid(form) else: messages.error(self.request, 'Nenhum usuário encontrado') return self.form_invalid(form) return super(LojaLoginView, self).form_valid(form)
def form_valid(self, form): try: logger(self.request.user, "Alterou o produto " + str(self.object)) except (Exception, ): pass context = self.get_context_data() gruposet = context['gruposet'] fotoset = context['fotoset'] with transaction.atomic(): self.object = form.save() if gruposet.is_valid(): gruposet.instance = self.object gruposet.save() if fotoset.is_valid(): fotoset.instance = self.object fotoset.save() return super(ProdutoUpdateView, self).form_valid(form)
def accept_corrida(request, pk_pedido): try: pedido = Pedido.objects.get(id=pk_pedido) if pedido.motorista: try: messages.error( request, 'O motorista ' + pedido.motorista.first_name + ' pegou esta entrega antes de você') except (Exception, ): messages.error( request, 'Outro Motorista pegou esta entrega antes de você') return HttpResponseRedirect('/app/pedidos/motorista/') else: pedido.status = False pedido.motorista = request.user pedido.save() motorista = Motorista.objects.get(user=request.user) motorista.ocupado = True motorista.save() if pedido.estabelecimento.is_online: message = "O motorista " + str( motorista.user.first_name ) + " aceitou fazer a entrega do Pedido ID #" + str( pedido.pk ) + ". Qualquer problema, ligue para o motorista: " + motorista.phone n = Notification(type_message='ACCEPT_ORDER', to=pedido.estabelecimento.user, message=message) n.save() message = 'A Loja ' + pedido.estabelecimento.user.first_name + ', localizado na ' + pedido.estabelecimento.full_address + ', esta aguardando a coleta.' no = Notification( type_message='DELETE_LOJA', to=pedido.motorista, message=message) # está delete loja por enquanto. no.save() try: logger(request.user, "Aceitou fazer a Rota #" + str(pedido.pk)) except (Exception, ): pass return HttpResponseRedirect('/app/pedido/route/' + str(pedido.pk)) except (Exception, ): messages.error(request, 'Este pedido foi deletado pela Loja') return HttpResponseRedirect('/app/pedidos/motorista/')
def cancelar_request(request, pk): data = request.POST entrega = Request.objects.get(id=pk) text = "Cancelamento do Pedido #" + str(entrega.pk) try: text = text + " " + str(data['motivo']) except (Exception, ): text = text + " " + unicode(data['motivo']) chamado = Chamado(estabelecimento=entrega.estabelecimento, titulo='Cancelamento de Pedido', texto=text) chamado.save() entrega.status_pedido = 'REJEITADO' entrega.save() try: logger(request.user, "Rejeitou o pedido #" + str(entrega.pk)) except (Exception, ): pass return redirect('/dashboard')
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 try: logger(self.request.user, "Criou a Rota #" + str(pedido.pk)) except (Exception, ): pass if not pedido.is_draft: no = Notification(type_message='NOTIFICACAO_COZINHA', to=self.request.user, message='NOVO PEDIDO REALIZADO') no.save() return super(PedidoCreateView, self).form_valid(form)
def aceitar_pedido(request, pk): mark_read(request) req = Request.objects.get(id=pk) req.status_pedido = 'ACEITO' req.save() try: logger(request.user, "Aceitou o pedido " + str(req)) except (Exception, ): pass folha_pag = get_or_create_folha(datetime.now(), req.estabelecimento) item_pag = ItemPagamento(request=req, folha=folha_pag) item_pag.save() folha_pag.save() pedido = get_or_create_rota(req) pedido.save() if request.user.estabelecimento.configuration.chamar_motoboy: req.pedido = pedido itens = make_itens(req) obs = make_obs(req) ponto = Ponto(pedido=pedido, bairro=req.endereco_entrega.bairro, endereco=req.endereco_entrega.endereco, numero=req.endereco_entrega.numero, complemento=req.endereco_entrega.complemento, cliente=str(req.cliente.usuario.first_name) + " " + str(req.cliente.usuario.last_name), telefone=req.cliente.telefone, observacoes=obs, itens=itens) req.save() ponto.save() pedido.save() # a = func() if request.user.estabelecimento.configuration.has_cozinha: no = Notification(type_message='NOTIFICACAO_COZINHA', to=request.user, message='NOVO PEDIDO REALIZADO') no.save() return redirect('/dashboard')
def liberar_corrida(request, pk_pedido): pedido = Pedido.objects.get(id=pk_pedido) pedido.coletado = True pedido.save() try: if pedido.request_set.first(): reqs = pedido.request_set.all() for req in reqs: req.status_pedido = 'ENTREGANDO' req.save() except (Exception, ): pass if Motorista.objects.get(user=pedido.motorista).is_online: message = "Voce foi liberado pela loja para realizar a(s) entrega(s). Sua Rota atual esta no menu ENTREGAS. Quando terminar uma entrega, marque finalizar. Qualquer problema, ligue para a loja: " + pedido.estabelecimento.phone n = Notification(type_message='ENABLE_ROTA', to=pedido.motorista, message=message) n.save() try: logger(request.user, "Foi liberada a Rota #" + str(pedido.pk)) except (Exception, ): pass return redirect('/app/acompanhar')
def post(self, request, *args, **kwargs): try: logger(self.request.user, "Deletou a Bairro Gratis #" + str(self.object.pk)) except (Exception,): pass return super(BairroGratisDeleteView, self).post(request, *args, **kwargs)
def form_valid(self, form): try: logger(self.request.user, "Editou a Bairro Gratis #" + str(self.object.pk)) except (Exception,): pass return super(BairroGratisUpdateView, self).form_valid(form)
def post(self, request, *args, **kwargs): try: logger(self.request.user, "Deletou o opcional " + str(self.object)) except (Exception, ): pass return super(OpcionalDeleteView, self).post(request, *args, **kwargs)
def form_valid(self, form): try: logger(self.request.user, "Editou o opcional " + str(self.object)) except (Exception, ): pass return super(OpcionalUpdateView, self).form_valid(form)