def get_initial(self): initial = super(ProductosCreateViewModal, self).get_initial() initial['tipo_form'] = 'ALTA' initial['codigo'] = '{0:0{width}}'.format( (ultimoNroId(prod_productos) + 1), width=4) initial['request'] = self.request return initial
def get_initial(self): initial = super(ClientesCreateView, self).get_initial() initial['codigo'] = '{0:0{width}}'.format((ultimoNroId(egr_entidad)+1),width=4) initial['tipo_entidad'] = 1 initial['empresa'] = empresa_actual(self.request) initial['request'] = self.request return initial
def __init__(self, *args, **kwargs): request = kwargs.pop('request', None) super(PtoVtaForm, self).__init__(*args, **kwargs) id = ultimoNroId(cpb_pto_vta) + 1 self.fields['numero'].initial = id self.fields['nombre'].initial = 'PV' + str(id)
def importar_productos(request): context = {} context = getVariablesMixin(request) if request.method == 'POST': form = ImportarProductosForm(request.POST, request.FILES, request=request) if form.is_valid(): csv_file = form.cleaned_data['archivo'] sobreescribir = form.cleaned_data['sobreescribir'] == 'S' empresa = form.cleaned_data['empresa'] if not csv_file.name.endswith('.csv'): messages.error(request, '¡El archivo debe tener extensión .CSV!') return HttpResponseRedirect(reverse("importar_empleados")) if csv_file.multiple_chunks(): messages.error( request, "El archivo es demasiado grande (%.2f MB)." % (csv_file.size / (1000 * 1000), )) return HttpResponseRedirect(reverse("importar_empleados")) decoded_file = csv_file.read().decode("latin1").replace( ",", "").replace("'", "") io_string = io.StringIO(decoded_file) reader = unicode_csv_reader(io_string) #Id;Nombre;Tipo de Producto;Proveedor;C¢digo;Stock;PC;IVA;MARGEN;;Precio de Venta;EFECTIVO cant = 0 next(reader) #Omito el Encabezado for index, line in enumerate(reader): campos = line[0].split(";") nombre = campos[1].strip().upper() if nombre == '': continue #Salta al siguiente codbar = campos[4].strip() if codbar == '': cod = str(ultimoNroId(prod_productos) + 1).zfill(12) cod += str(digVerificador(cod)) codbar = cod cod = codbar try: categoria = prod_categoria.objects.get( nombre=campos[2].strip().upper()) except: categoria = None #import pdb; pdb.set_trace() try: stock = int(campos[5].strip()) except: stock = 0 try: pcosto = Decimal(campos[6].strip()) except: pcosto = Decimal(0) try: piva = Decimal(campos[7].strip()) except: piva = Decimal(0) try: pventa1 = Decimal(campos[10].strip()) except: pventa1 = Decimal(0) try: pventa2 = Decimal(campos[11].strip()) except: pventa2 = Decimal(0) pimp = pcosto + piva try: tasa_iva = gral_tipo_iva.objects.get(id=5) except: tasa_iva = None prod = prod_productos.objects.create(codigo=cod, categoria=categoria, empresa=empresa, nombre=nombre, codigo_barras=codbar, tipo_producto=1, mostrar_en=3, unidad=0, llevar_stock=False, stock_negativo=True, tasa_iva=tasa_iva) if prod: lp1 = prod_lista_precios.objects.filter(pk=1).first() lp2 = prod_lista_precios.objects.filter(pk=2).first() prod_producto_lprecios.objects.create(producto=prod, lista_precios=lp1, precio_costo=pcosto, precio_cimp=pimp, precio_venta=pventa1) prod_producto_lprecios.objects.create(producto=prod, lista_precios=lp2, precio_costo=pcosto, precio_cimp=pimp, precio_venta=pventa2) ubi = prod_ubicacion.objects.filter(default=True).first() prod_producto_ubicac.objects.create(producto=prod, ubicacion=ubi, punto_pedido=0.00) actualizar_stock(request, prod, ubi, 21, stock) cant += 1 messages.success( request, u'Se importó el archivo con éxito!<br>(%s Productos creados/actualizados)' % cant) else: form = ImportarProductosForm(None, None, request=request) context['form'] = form return render(request, 'productos/importar_productos.html', context)