def new_popup(request): colores = Color.objects.all() if request.method == 'POST': form = MateriaPForm(request.POST) if form.is_valid(): m = form.save(commit=False) if form.cleaned_data['colores'] != None: c_id = form.cleaned_data['colores'] #print(c_id) #color = Color.objects.get(id=c_id) m.color = c_id m.user = request.user if form.cleaned_data['longitud']: m.stock = m.longitud m.save() admin_log_addition(request, m, 'Materia Prima Creada') return render(request, 'close_popup.html', { 'c': m, }) else: form = MateriaPForm() return render(request, 'materiap/new_popup.html', { 'form': form, 'colores': colores, })
def add_material(request, venta_id): venta = get_object_or_404(Venta, pk=venta_id) if request.method == 'POST': form = DetalleVentaForm(request.POST) if form.is_valid(): clavo = form.cleaned_data['materiaprima'] precioclavo = PrecioClavos.objects.get(id=clavo.id) detalle = form.save(commit=False) detalle.venta = venta detalle.costo_t = detalle.cantidad * detalle.costo_u detalle.precio_id = precioclavo.id #detalle.tipo = detalle.material detalle.save() venta.costo = venta.costo + detalle.costo_t venta.save() precioclavo.stock = precioclavo.stock - detalle.cantidad precioclavo.save() admin_log_addition(request, detalle, 'Detalle Venta Creado') admin_log_change(request, venta, 'Costo Modificado') messages.success(request, 'Material Agredado Correctemente') return HttpResponseRedirect( reverse(new_detail_venta, args={ venta.id, })) else: form = DetalleVentaForm() return render(request, 'ventas/add_material.html', { 'venta': venta, 'form': form, })
def update_material(request, pedido_id, detalle_id): detalle = get_object_or_404(DetallePedido, pk = detalle_id) colors = MateriaPrima.objects.filter(estado=True, stock__gte = 1) pedido = get_object_or_404(Pedido, pk = pedido_id) if request.method == 'POST': form = DetallePedidoForm(request.POST, detalle) if form.is_valid(): stock = 0 color = form.cleaned_data['color'] materia_id = form.cleaned_data['anchocalamina'] precioc = form.cleaned_data['calamina'] umedida = form.cleaned_data['unidad'] largo = float(form.cleaned_data['largo']) cantidad = form.cleaned_data['cantidad'] totalm = float(form.cleaned_data['total_m']) costo_u = float(form.cleaned_data['costo_u']) costo_t = float(form.cleaned_data['costo_t']) tipo = materia_id.tipo #m = MateriaPrima.objects.get(id = int(materia_id)) materials = MateriaPrima.objects.filter(estado=True, color=color, stock__gte=float(totalm), ancho=materia_id.ancho) if not materials: messages.error(request, 'No Exite Materia Prima Disponible') return HttpResponseRedirect(reverse(new_detail_pedido, args={pedido.id, })) else: pedido.costo = pedido.costo - detalle.costo_t pedido.save() detalle.costo_t = 0 detalle.costo_u = 0 detalle.largo = 0 detalle.totalm = 0 detalle.cantidad = 0 detalle.save() detalle.costo_u = costo_u detalle.costo_t = costo_t detalle.cantidad = cantidad detalle.totalm = totalm detalle.largo = largo #mejorar control for materia in materials: stock += materia.stock if stock >= totalm: detalle.material.add(materia) materia.salida = materia.salida + totalm materia.stock = materia.stock - totalm materia.save() break detalle.save() pedido.costo = pedido.costo + detalle.costo_t pedido.save() admin_log_addition(request, detalle, 'Detalle Creado') admin_log_change(request, pedido, 'Costo Modificado') messages.success(request, 'Material Agredado Correctemente') return HttpResponseRedirect(reverse(new_detail_pedido, args={pedido.id, })) else: form = DetallePedidoForm(instance=detalle) return render(request, 'pedidos/update_material.html', { 'pedido':pedido, 'form':form, 'materiales':colors, })
def add_new_material_calamina(request, venta_id): venta = get_object_or_404(Venta, pk=venta_id) if request.method == 'POST': stock = 0 codigo = request.POST['preciocalamina_id'] # PrecioCalamina_id preciocalamina = get_object_or_404(PrecioCalamina, pk=codigo) cantidad = request.POST['cantidad_id'] largo = request.POST['largo_id'] totalm = float(cantidad) * float(largo) materials = MateriaPrima.objects.filter( estado=True, color=preciocalamina.color.color, ancho=preciocalamina.ancho, stock__gte=float(totalm)) # =color, stock__gte=float(totalm), ancho=materia_id.ancho) if not materials: messages.error(request, 'No Exite Materia Prima Disponible') return HttpResponseRedirect( reverse(calamina_new_detail_venta, args={ venta.id, })) else: detalle = DetalleVenta.objects.create( preciocalamina=preciocalamina, venta=venta, costo_t=int(cantidad) * float(largo) * preciocalamina.precio, precio_id=preciocalamina.precio, tipo=preciocalamina.tipo.tipo, cantidad=int(cantidad), costo_u=preciocalamina.precio, largo=largo, unidad='Calamina', descripcion=preciocalamina.tipo.tipo, totalm=totalm, ) for materia in materials: stock += materia.stock stock += materia.stock if stock >= totalm: detalle.material.add(materia) materia.salida = materia.salida + totalm materia.stock = materia.stock - totalm materia.save() break detalle.save() venta.costo = venta.costo + detalle.costo_t venta.save() admin_log_addition(request, detalle, 'Detalle Venta Creado') admin_log_change(request, venta, 'Costo Modificado') messages.success(request, 'Material Agredado Correctemente') return HttpResponseRedirect( reverse(calamina_new_detail_venta, args={ venta.id, })) else: return HttpResponseRedirect( reverse(calamina_new_detail_venta, args={ venta.id, }))
def new_pedido(request, cliente_id): cliente = get_object_or_404(Cliente, pk = cliente_id) pedido = Pedido.objects.create( cliente=cliente, ) pedido.save() admin_log_addition(request, pedido, 'Pedido Creado') messages.success(request, 'Empiece a Agregar Materiales') return HttpResponseRedirect(reverse(new_detail_pedido, args={pedido.id, }))
def calamina_add_material(request, venta_id): colors = MateriaPrima.objects.filter(estado=True, stock__gte=1) venta = get_object_or_404(Venta, pk=venta_id) if request.method == 'POST': form = DetallePedidoForm(request.POST) if form.is_valid(): stock = 0 color = form.cleaned_data['color'] materia_id = form.cleaned_data['anchocalamina'] precioc = form.cleaned_data['calamina'] umedida = form.cleaned_data['unidad'] largo = float(form.cleaned_data['largo']) cantidad = form.cleaned_data['cantidad'] totalm = float(form.cleaned_data['total_m']) costo_u = float(form.cleaned_data['costo_u']) costo_t = float(form.cleaned_data['costo_t']) print(type(materia_id.ancho)) tipo = materia_id.tipo #m = MateriaPrima.objects.get(id = int(materia_id)) materials = MateriaPrima.objects.filter(estado=True, color=color, stock__gte=float(totalm), ancho=materia_id.ancho) if not materials: messages.error(request, 'No Exite Materia Prima Disponible') else: detalle = DetalleVenta.objects.create( material='Largo: %s ml- Ancho: %s ml' % (largo, materia_id.ancho), descripcion=precioc.descripcion, cantidad=cantidad, costo_u=costo_u, costo_t=costo_t, venta=venta, unidad=umedida, largo=largo, tipo=tipo, materia_id=materia_id, ) detalle.save() venta.costo = venta.costo + detalle.costo_t venta.save() admin_log_addition(request, detalle, 'Detalle Creado') admin_log_change(request, venta, 'Costo Modificado') messages.success(request, 'Material Agredado Correctemente') return HttpResponseRedirect( reverse(calamina_new_detail_venta, args={ venta.id, })) else: form = DetallePedidoForm() return render(request, 'ventas/calamina/add_material.html', { 'venta': venta, 'form': form, 'materiales': colors, })
def new_venta(request, cliente_id): cliente = get_object_or_404(Cliente, pk=cliente_id) venta = Venta.objects.create( cliente=cliente, user=request.user, ) venta.save() admin_log_addition(request, venta, 'Venta Creada') messages.success(request, 'Empiece a Agregar Materiales') return HttpResponseRedirect(reverse(new_detail_venta, args={ venta.id, }))
def new(request): if request.method == 'POST': form = ClienteForm(request.POST) if form.is_valid(): c = form.save() admin_log_addition(request, c, 'Cliente Creado') messages.success(request, 'Cliente Registrado Correctamente') return HttpResponseRedirect(reverse(index)) else: form = ClienteForm() return render(request, 'clientes/new.html', { 'form': form, })
def new_tipocalamina_popup(request): if request.method == 'POST': form = TipoCalaminaForm(request.POST) if form.is_valid(): c = form.save() admin_log_addition(request, c, 'Tipo Calamina Registrado') return render(request, 'close_popup.html', { 'c': c, }) else: form = TipoCalaminaForm() return render(request, 'materiap/new_tipocalamina_popup.html', { 'form': form, })
def update(request, cliente_id): cliente = get_object_or_404(Cliente, pk=cliente_id) if request.method == 'POST': form = ClienteForm(request.POST, instance=cliente) if form.is_valid(): c = form.save() admin_log_addition(request, c, 'Cliente Modificado') messages.warning(request, 'Cliente Modificado Correctamente') return HttpResponseRedirect(reverse(index)) else: form = ClienteForm(instance=cliente) return render(request, 'clientes/update.html', { 'form': form, })
def update_cliente_popup(request, cliente_id): cliente = get_object_or_404(Cliente, pk=cliente_id) if request.method == 'POST': form = ClienteForm(request.POST, instance=cliente) if form.is_valid(): p = form.save() admin_log_addition(request, p, 'Cliente Modificado') messages.warning(request, 'Cliente Modificado Correctamente') return render(request, 'close_popup.html', {}) else: form = ClienteForm(instance=cliente) return render(request, 'clientes/update_cliente_popup.html', { 'form': form, })
def new_ciudad(request): ref = request.META.get('HTTP_REFERER') if request.method == 'POST': form = CiudadForm(request.POST) if form.is_valid(): c = form.save() admin_log_addition(request, c, 'Ciudad Creada') messages.success(request, 'Ciudad Registrada Correctamente') return HttpResponseRedirect(reverse(index)) else: form = CiudadForm() return render(request, 'clientes/new_ciudad.html', { 'form': form, })
def new_ciudad_popup(request): if request.method == 'POST': form = CiudadForm(request.POST) if form.is_valid(): c = form.save() admin_log_addition(request, c, 'Ciudad Creada') return render(request, 'close_popup.html', { 'c': c, }) else: form = CiudadForm() return render(request, 'clientes/new_ciudad_popup.html', { 'form': form, })
def new_cliente_popup(request): if request.method == 'POST': form = ClienteForm(request.POST) if form.is_valid(): p = form.save() admin_log_addition(request, p, 'Cliente Creado') return render(request, 'close_popup.html', { 'c': p, }) else: form = ClienteForm() return render(request, 'clientes/new_cliente_popup.html', { 'form': form, })
def new_popup_codigomateria(request): if request.method == 'POST': form = CodigoMateriaPrimaForm(request.POST) if form.is_valid(): pro = form.save() admin_log_addition(request, pro, 'Codigo Registrado') return render(request, 'close_popup.html', { 'c': pro, }) else: form = CodigoMateriaPrimaForm() return render(request, 'materiap/new_codigo_materia_popup.html', { 'form': form, })
def new_codigo_clavo_popup(request): if request.method == 'POST': form = CodigoClavoForm(request.POST) if form.is_valid(): c = form.save() admin_log_addition(request, c, 'Codigo Registrado') return render(request, 'close_popup.html', { 'c': c, }) else: form = CodigoClavoForm() return render(request, 'clavos/new_codigoclavo_popup.html', { 'form': form, })
def new_proveedor_popup(request): if request.method == 'POST': form = ProveedorForm(request.POST) if form.is_valid(): pro = form.save() admin_log_addition(request, pro, 'Proveedor Registrado') return render(request, 'close_popup.html', { 'c': pro, }) else: form = ProveedorForm() return render(request, 'proveedores/new_popup.html', { 'form': form, })
def new_precio_clavo(request): if request.method == 'POST': form = PrecioClavoForm(request.POST) if form.is_valid(): precio = form.save() admin_log_addition(request, precio, 'Precio Creado') sms = 'Precio Creado Correctamente' messages.success(request, sms) return HttpResponseRedirect(reverse(index_precios_clavos)) else: form = PrecioClavoForm() return render(request, 'clavos/new_precio.html', { 'form': form, })
def new_proveedor(request): if request.method == 'POST': form = ProveedorForm(request.POST) if form.is_valid(): pro = form.save() admin_log_addition(request, pro, 'Proveedor Registrado') sms = 'Proveedor Registrado Correctamente' messages.success(request, sms) return HttpResponseRedirect(reverse(index_proveedor)) else: form = ProveedorForm() return render(request, 'proveedores/new.html', { 'form': form, })
def new_color_popup(request): if request.method == 'POST': form = ColorForm(request.POST) if form.is_valid(): color = form.save(commit=False) color.codigo = form.cleaned_data['hex'] color.save() admin_log_addition(request, color, 'Color Creado') return render(request, 'close_popup.html', { 'c': color, }) else: form = ColorForm() return render(request, 'color/new_popup.html', { 'form': form, })
def user_creation(request): if request.method == 'POST': form = UserCreationForm(request.POST) if form.is_valid(): u = form.save() admin_log_addition(request, u, 'Usuario Registrado') perfil = Perfil.objects.create(usuarios=u, ) perfil.save() admin_log_addition(request, perfil, 'Perfil Creado') sms = 'Usuario %s Registrado Correctamente' % u.username messages.success(request, sms) return HttpResponseRedirect(reverse(user_index)) else: form = UserCreationForm() return render(request, 'users/new.html', { 'form': form, })
def update_information(request): if request.method == 'POST': form = UserForm(request.POST, instance=request.user) formperfil = PerfilForm(request.POST, instance=request.user.perfil) if form.is_valid() and formperfil.is_valid(): user = form.save() perfil = formperfil.save(commit=False) perfil.user = user perfil.save() admin_log_change(request, user, 'Datos modificados') admin_log_addition(request, perfil, 'Perfil modificado') messages.info(request, 'Perfil Modificado Correctamente') return HttpResponseRedirect(reverse(user_index)) else: form = UserForm(instance=request.user) formperfil = PerfilForm(instance=request.user.perfil) return render(request, 'users/complete_information.html', { 'form': form, 'formperfil': formperfil, })
def venta_pedido(request, pedido_id): pedido = get_object_or_404(Pedido, pk=pedido_id) detalles = DetallePedido.objects.filter(pedido=pedido) ventas = Venta.objects.exclude(nro_venta=None) nro = 1 if ventas: max = ventas.aggregate(Max('nro_venta')) if max['nro_venta__max']: nro = max['nro_venta__max'] + 1 venta = Venta.objects.create( cliente=pedido.cliente, costo=pedido.costo, estado=True, nro_venta=nro, user=request.user, ) admin_log_addition(request, venta, 'Venta Pedido') venta.save() for d in detalles: preciocalamina = d.preciocalamina detalle = DetalleVenta.objects.create( preciocalamina=d.preciocalamina, venta=venta, costo_t=int(d.cantidad) * float(d.largo) * preciocalamina.precio, precio_id=preciocalamina.precio, tipo=preciocalamina.tipo.tipo, cantidad=int(d.cantidad), costo_u=preciocalamina.precio, largo=d.largo, unidad='Calamina', descripcion=preciocalamina.tipo.tipo, totalm=d.totalm, ) detalle.save() admin_log_addition(request, detalle, 'Material Agregado') admin_log_change(request, venta, 'Material Agregado') pedido.venta = True pedido.save() return HttpResponseRedirect(reverse(detail_venta, args={ venta.id, }))
def new_color(request): if request.method == 'POST': form = ColorForm(request.POST) if form.is_valid(): color = form.save(commit=False) color.codigo = form.cleaned_data['hex'] color.save() if not ColorName.objects.filter(hexa=color.codigo): c = ColorName.objects.create( nombre_c=color.color, hexa=color.codigo, ) c.save() admin_log_addition(request, color, 'Color Creado') sms = 'Color %s Registrado correctamente' % color.color messages.success(request, sms) return HttpResponseRedirect(reverse(index_colores)) else: form = ColorForm() return render(request, 'color/new.html', { 'form': form, })
def new(request): colores = Color.objects.all() if request.method == 'POST': form = MateriaPForm(request.POST) if form.is_valid(): m = form.save(commit=False) if form.cleaned_data['colores'] != None: c_id = form.cleaned_data['colores'] print(c_id.codigo) #color = Color.objects.get(id=c_id) m.color = c_id m.user = request.user if form.cleaned_data['longitud']: m.stock = m.longitud m.save() admin_log_addition(request, m, 'Materia Prima Creada') messages.success(request, 'Materia Prima Creada Correctamente') return HttpResponseRedirect(reverse(index)) else: form = MateriaPForm() return render(request, 'materiap/new.html', { 'form': form, 'colores': colores, })