def EditarCliente(request, dni): try: cliente_form = None cliente = Cliente.objects.get(dni=dni) if request.method == 'GET': cliente_form = ClienteForm(instance=cliente) else: cliente_form = ClienteForm(request.POST, instance=cliente) if cliente_form.is_valid(): cliente_form.save() return redirect('cliente:cliente_home') except ObjectDoesNotExist as e: error = e #Notificaciones pedidos = Pedido.objects.all().exclude(confirmado=False) envios_noti = [] for pedido in pedidos: envio_temp = Detalle_envio.objects.filter(pedido=pedido).exclude( visto=True).first() if envio_temp: envios_noti.append(envio_temp) envios_not = envios_noti[:3] envio_count = len(envios_noti) return render( request, 'cliente/crear_cliente.html', { 'envios_not': envios_not, 'envio_count': envio_count, 'cliente_form': cliente_form })
def CrearCliente(request): if request.method == 'POST': cliente_form = ClienteForm(request.POST) print("ALTO ERROR WACHO") print(cliente_form.errors) if cliente_form.is_valid(): cliente_form.save() messages.success(request, 'Sea agregó correctamente el cliente') return ClienteHome(request) else: messages.error(request, 'Ocurrió un error al tratar de agregar el cliente') else: cliente_form = ClienteForm() #Notificaciones pedidos = Pedido.objects.all().exclude(confirmado=False) envios_noti = [] for pedido in pedidos: envio_temp = Detalle_envio.objects.filter(pedido=pedido).exclude( visto=True).first() if envio_temp: envios_noti.append(envio_temp) envios_not = envios_noti[:3] envio_count = len(envios_noti) return render( request, 'cliente/crear_cliente.html', { 'envios_not': envios_not, 'envio_count': envio_count, 'cliente_form': cliente_form })
def EditarPedido(request, id_pedido): #Notificaciones pedidos = Pedido.objects.all().exclude(confirmado=False) envios_noti = [] for pedido in pedidos: envio_temp = Detalle_envio.objects.filter(pedido=pedido).exclude( visto=True).first() if envio_temp: envios_noti.append(envio_temp) envios_not = envios_noti[:3] envio_count = len(envios_noti) pedido_form = None pedido = get_object_or_404(Pedido, id_pedido=id_pedido) pedidos = Pedido.objects.all() detalles = Detalle.objects.filter( pedido_id=id_pedido).select_related('prenda') if request.method == 'GET': pedido_form = PedidoForm(instance=pedido) else: if 'boton_agregar' in request.POST: pedido_form = PedidoForm(request.POST, instance=pedido) if pedido_form.is_valid(): pedido_form.save() return redirect('/prenda/crear_prenda/' + str(id_pedido)) if 'boton_finalizar' in request.POST: pedido_form = PedidoForm(request.POST, instance=pedido) pedido = pedido_form.save(commit=False) if pedido.precio_total != None: pedido.save() return redirect('/pedido/listar_pedido/') else: cliente_form = ClienteForm(request.POST) messages.error(request, 'Debe agregar prendas') return render( request, 'pedido/editar_pedido.html', { 'envios_not': envios_not, 'envio_count': envio_count, 'pedido_form': pedido_form, 'detalles': detalles })
def NuevoPedido(request): #Notificaciones pedidos = Pedido.objects.all().exclude(confirmado=False) envios_noti = [] for pedido in pedidos: envio_temp = Detalle_envio.objects.filter(pedido=pedido).exclude( visto=True).first() if envio_temp: envios_noti.append(envio_temp) envios_not = envios_noti[:3] envio_count = len(envios_noti) if request.method == 'POST': if 'boton_crear_cliente' in request.POST: cliente_form = ClienteForm(request.POST) if cliente_form.is_valid(): cliente_form.save() messages.success(request, 'Se agregó correctamente el cliente') else: messages.error(request, 'Error al crear el cliente') if 'boton_agregar' in request.POST: pedido_form = PedidoForm(request.POST) prenda_form = PrendaForm( request.POST ) # lupy estubo aki peligro borre este mensaje para su comodidad if pedido_form.is_valid(): pedido = pedido_form.save() id_pedido = pedido.id_pedido return redirect('/prenda/crear_prenda/' + str(id_pedido)) else: messages.error(request, 'No se puede introducir valores negativos') else: pedido_form = PedidoForm() cliente_form = ClienteForm() pedido_form = PedidoForm() return render( request, 'pedido/nuevo_pedido.html', { 'envios_not': envios_not, 'envio_count': envio_count, 'pedido_form': pedido_form, 'cliente_form': cliente_form })
def VolverPedido(request, id_pedido): #Notificaciones pedidos = Pedido.objects.all().exclude(confirmado=False) envios_noti = [] for pedido in pedidos: envio_temp = Detalle_envio.objects.filter(pedido=pedido).exclude( visto=True).first() if envio_temp: envios_noti.append(envio_temp) envios_not = envios_noti[:3] envio_count = len(envios_noti) detalles = None pedido_form = None pedido = Pedido.objects.get(id_pedido=id_pedido) pedido_id = pedido.id_pedido detalles = Detalle.objects.filter( pedido_id=id_pedido).select_related('prenda') mensaje = ConfiguracionMensaje.objects.all().last() reporte = Configuracion.objects.all().last() if request.method == 'GET': if not detalles: pedido.delete() return redirect('/pedido/nuevo_pedido') pedido_form = PedidoForm(instance=pedido) else: if 'boton_agregar' in request.POST: pedido_form = PedidoForm(request.POST, instance=pedido) if pedido_form.is_valid(): pedido_form.save() return redirect('/prenda/crear_prenda/' + str(id_pedido)) if 'boton_cancelar' in request.POST: detalles = Detalle.objects.filter(pedido=pedido) for detalle in detalles: detalle.delete() detalle.prenda.delete() pedido.delete() return redirect('/pedido/nuevo_pedido') if 'boton_finalizar' in request.POST: pedido_form = PedidoForm(request.POST, instance=pedido) pedido = pedido_form.save(commit=False) estado_enespera = Estado.objects.get(id_estado=6) estado_pedido = Estado_pedido.objects.create( fecha=date.today(), estado=estado_enespera, pedido=pedido) pedido.confirmado = True from django.template.loader import render_to_string from django.core.mail import EmailMultiAlternatives # text_content = 'Detalle de pedido' msg_html = render_to_string('recibo.html', { 'pedido': pedido, 'reporte': reporte, 'detalles': detalles }) html_content = msg_html msg = EmailMultiAlternatives('PROYECTO SOFTWARE', text_content, to=[pedido.cliente.correo]) msg.attach_alternative(html_content, "text/html") try: msg.send() except Exception as e: print(e) id_pedido = pedido.id_pedido if pedido.seña != None: pedido.save() estado_pedido.save() messages.success(request, 'Todo ocurrió correctamente') return redirect('/pedido/listar_pedido/' + str(id_pedido)) else: cliente_form = ClienteForm(request.POST) messages.error(request, 'Debe agregar prendas') cliente_form = ClienteForm(request.POST) return render( request, 'pedido/crear_pedido.html', { 'envios_not': envios_not, 'envio_count': envio_count, 'pedido': pedido, 'pedido_form': pedido_form, 'detalles': detalles, 'cliente_form': cliente_form })
def CrearPedido(request): #Notificaciones pedidos = Pedido.objects.all().exclude(confirmado=False) envios_noti = [] for pedido in pedidos: envio_temp = Detalle_envio.objects.filter(pedido=pedido).exclude( visto=True).first() if envio_temp: envios_noti.append(envio_temp) envios_not = envios_noti[:3] envio_count = len(envios_noti) if request.method == 'POST': if 'boton_crear_cliente' in request.POST: cliente_form = ClienteForm(request.POST) if cliente_form.is_valid(): cliente_form.save() messages.success(request, 'Se agregó correctamente el cliente') else: messages.error(request, 'Error al crear el cliente') if 'boton_agregar' in request.POST: pedido_form = PedidoForm(request.POST) prenda_form = PrendaForm( request.POST ) # lupy estubo aki peligro borre este mensaje para su comodidad if pedido_form.is_valid(): pedido = pedido_form.save(commit=False) if pedido.fecha_entrega != None: fecha = datetime.datetime.strptime( str(pedido.fecha_entrega), '%Y-%m-%d') if fecha.date() > datetime.date.today(): pedido = pedido_form.save() id_pedido = pedido.id_pedido return redirect('/prenda/crear_prenda/' + str(id_pedido)) else: messages.error( request, 'La fecha debe ser posterior a la actual') else: pedido = pedido_form.save() id_pedido = pedido.id_pedido return redirect('/prenda/crear_prenda/' + str(id_pedido)) else: messages.error(request, 'No se puede introducir valores negativos') if 'boton_finalizar' in request.POST: pedido_form = PedidoForm(request.POST) pedido = pedido_form.save(commit=False) id_pedido = pedido.id_pedido print(id_pedido) if pedido.seña != None: pedido.save() return redirect('pedido/listar_pedido/' + str(id_pedido)) else: cliente_form = ClienteForm(request.POST) messages.error(request, 'Debe agregar prendas') else: pedido_form = PedidoForm() cliente_form = ClienteForm() pedido_form = PedidoForm() return render( request, 'pedido/crear_pedido.html', { 'envios_not': envios_not, 'envio_count': envio_count, 'pedido_form': pedido_form, 'cliente_form': cliente_form })
def ClienteHome(request): #Notificaciones pedidos = Pedido.objects.all().exclude(confirmado=False) envios_noti = [] for pedido in pedidos: envio_temp = Detalle_envio.objects.filter(pedido=pedido).exclude( visto=True).first() if envio_temp: envios_noti.append(envio_temp) envios_not = envios_noti[:3] envio_count = len(envios_noti) clientes = Cliente.objects.all().exclude(activo=False) cliente_form = ClienteForm() reporte = Configuracion.objects.all().last() if request.method == 'POST': cliente_form = ClienteForm(request.POST) if cliente_form.is_valid(): cliente_form.save() messages.success(request, 'Sea agregó correctamente el cliente') cliente_form = ClienteForm() return render( request, 'cliente/index_cliente.html', { 'envios_not': envios_not, 'envio_count': envio_count, 'clientes': clientes, 'cliente_form': cliente_form }) else: errores = cliente_form.errors.values( ) #Obtengo los valores devueltos en el diccionario errores = list(errores) #Los casteo a lista porque no es iterable for error in errores: error = str( error ) #Casteo el error a str (solo para eliminar el PUNTITO del <li>) error = error.replace('<ul class="errorlist"><li>', '') #Borro la parte esta jaja error = error.replace('</li></ul>', '') # y la parte esta jiji messages.error( request, error) # PAAAaaaaa un mensajito de error to lindo cliente_form = ClienteForm(request.POST) else: cliente_form = ClienteForm() return render( request, 'cliente/index_cliente.html', { 'envios_not': envios_not, 'envio_count': envio_count, 'reporte': reporte, 'clientes': clientes, 'cliente_form': cliente_form })