Ejemplo n.º 1
0
def remision_manageview( request, id = None, template_name='ventas/documentos/remisiones/remision.html' ):
    message = ''
    connection_name = get_conecctionname(request.session)
    documento_nuevo = False
    
    if id:
        documento = get_object_or_404( VentasDocumento, pk = id )
    else:
        documento = VentasDocumento()

    #Cargar formularios
    if id:
        documento_form = VentasDocumentoForm( request.POST or None, instance = documento,)
        documento_items = VentasDocumentoDetalleFormSet(VentasDocumentoDetalleForm, extra=0, can_delete=False)
    else:
        initial_data = { 'fecha': datetime.now(),}
        documento_form = VentasDocumentoForm( request.POST or None, instance = documento, initial= initial_data)
        documento_items = VentasDocumentoDetalleFormSet(VentasDocumentoDetalleForm, extra=1, can_delete=False)
        
    documento_detalle_formset = documento_items(request.POST or None, instance=documento)

    c = {
        'documento_form': documento_form, 
        'documento_detalle_formset':documento_detalle_formset, 
        'message':message, 
    }

    return render_to_response(template_name, c, context_instance=RequestContext(request))
Ejemplo n.º 2
0
def sucursal_manageview(request,
                        id=None,
                        template_name='config/sucursales/sucursal.html'):
    """ Sucursal manejador """
    message = ''
    initial_form = None
    if id:
        sucursal = get_object_or_404(DatabaseSucursal, pk=id)
    else:
        sucursal = DatabaseSucursal()

    form = DatabaseSucursalForm(request.POST or None, instance=sucursal)

    if form.is_valid():
        sucursal_form = form.save(commit=False)
        sucursal_form.empresa_conexion = get_conecctionname(request.session)
        conexion_id, empresa = sucursal_form.sucursal_conexion.split('-')
        conexion = ConexionDB.objects.get(pk=int(conexion_id))
        database_conexion_name = "%s-%s" % (conexion.nombre, empresa)
        sucursal_form.sucursal_conexion_name = database_conexion_name
        sucursal_form.save()

        return HttpResponseRedirect('/sucursales/')

    c = {
        'form': form,
    }
    return render_to_response(template_name,
                              c,
                              context_instance=RequestContext(request))
Ejemplo n.º 3
0
def articulo_consolidado_view( request, clave, template_name='common/articulos/articulo_consoliado.html'):
    connection_name = get_conecctionname(request.session)
    resultado_existencias  = get_existencia_sucursales_by_articulo_id(clave, connection_name)


    c= { 'existencias':resultado_existencias['existencias'], 'articulo_nombre':resultado_existencias['articulo_nombre'], }
    
    return render_to_response( template_name, c, context_instance = RequestContext( request ) )
Ejemplo n.º 4
0
def sucursales_view(request,
                    template_name='config/sucursales/sucursales.html'):
    """ Lista de sucursales de empresa. """
    connection_name = get_conecctionname(request.session)
    c = {
        'sucursales':
        DatabaseSucursal.objects.filter(empresa_conexion=connection_name)
    }
    return render_to_response(template_name,
                              c,
                              context_instance=RequestContext(request))
Ejemplo n.º 5
0
def facturas_View(request, template_name='ventas/herramientas/generar_polizas/generar_polizas.html'):
    connection_name = get_conecctionname(request.session)
    if connection_name == '':
        return HttpResponseRedirect('/select_db/')

    documentosData = []
    polizas_de_devoluciones = []
    msg             = msg_informacion =''
    error = 0

    if request.method == 'POST':
        form = GenerarPolizasManageForm(request.POST)
        if form.is_valid():

            fecha_ini               = form.cleaned_data['fecha_ini']
            fecha_fin               = form.cleaned_data['fecha_fin']
            ignorar_documentos_cont = form.cleaned_data['ignorar_documentos_cont']
            crear_polizas_por       = form.cleaned_data['crear_polizas_por']
            crear_polizas_de        = form.cleaned_data['crear_polizas_de']
            plantilla_facturas      = form.cleaned_data['plantilla']
            plantilla_devoluciones  = form.cleaned_data['plantilla_2']
            descripcion             = form.cleaned_data['descripcion']
            if (crear_polizas_de == 'F' and not plantilla_facturas== None) or (crear_polizas_de == 'D' and not plantilla_devoluciones== None) or (crear_polizas_de == 'FD' and not plantilla_facturas== None and not plantilla_devoluciones== None):
                documentosData, polizas_de_devoluciones, msg = generar_polizas(fecha_ini, fecha_fin, ignorar_documentos_cont, crear_polizas_por, crear_polizas_de, plantilla_facturas, plantilla_devoluciones, descripcion, connection_name, request.user.username)
            else:
                error =1
                msg = 'Seleciona una plantilla'

            if (crear_polizas_de == 'F' or crear_polizas_de=='FD') and documentosData == [] and msg=='':
                msg = 'Lo siento, no se encontraron facturas para este filtro'
            elif (crear_polizas_de == 'D' or crear_polizas_de=='FD') and polizas_de_devoluciones == [] and msg=='':
                msg = 'Lo siento, no se encontraron devoluciones para este filtro'
            
            if crear_polizas_de == 'FD' and documentosData == [] and polizas_de_devoluciones == []:
                msg = 'Lo siento, no se encontraron facturas ni devoluciones para este filtro'
            
            if (not documentosData == [] or not polizas_de_devoluciones == []) and error == 0:
                form = GenerarPolizasManageForm()       
                msg_informacion = 'Polizas generadas satisfactoriamente, *Ahora revisa las polizas pendientes generadas en el modulo de contabilidad'
    else:
        form = GenerarPolizasManageForm()
    
    c = {'documentos':documentosData, 'polizas_de_devoluciones':polizas_de_devoluciones,'msg':msg,'form':form,'msg_informacion':msg_informacion,}
    return render_to_response(template_name, c, context_instance=RequestContext(request))
Ejemplo n.º 6
0
def facturas_view(request, template_name='ventas/documentos/facturas/facturas.html'):
    connection_name = get_conecctionname(request.session)
    if connection_name == '':
        return HttpResponseRedirect('/select_db/')

    documentos_list = VentasDocumento.objects.filter(tipo='F').order_by('-fecha','cliente')

    paginator = Paginator(documentos_list, 20) # Muestra 10 ventas por pagina
    page = request.GET.get('page')

    #####PARA PAGINACION##############
    try:
        documentos = paginator.page(page)
    except PageNotAnInteger:
        # If page is not an integer, deliver first page.
        documentos = paginator.page(1)
    except EmptyPage:
        # If page is out of range (e.g. 9999), deliver last page of results.
        documentos = paginator.page(paginator.num_pages)
    c = {'documentos':documentos,}
    return render_to_response(template_name, c, context_instance=RequestContext(request))
Ejemplo n.º 7
0
def sucursal_manageview( request, id = None, template_name = 'config/sucursales/sucursal.html' ):
    """ Sucursal manejador """
    message = ''
    initial_form = None
    if id:
        sucursal = get_object_or_404( DatabaseSucursal, pk = id)
    else:
        sucursal =  DatabaseSucursal()

    form = DatabaseSucursalForm(request.POST or None, instance = sucursal)

    if form.is_valid():
        sucursal_form =form.save(commit=False)
        sucursal_form.empresa_conexion = get_conecctionname(request.session)
        conexion_id, empresa = sucursal_form.sucursal_conexion.split('-')
        conexion = ConexionDB.objects.get(pk=int(conexion_id))
        database_conexion_name = "%s-%s"%(conexion.nombre, empresa)
        sucursal_form.sucursal_conexion_name = database_conexion_name
        sucursal_form.save()

        return HttpResponseRedirect( '/sucursales/' )

    c = { 'form' : form, }
    return render_to_response( template_name, c, context_instance = RequestContext( request ) )
Ejemplo n.º 8
0
def factura_manageView( request, id = None, type='F', template_name='ventas/documentos/facturas/factura.html' ):
    message = ''
    connection_name = get_conecctionname(request.session)
    documento_nuevo = False
    
    if id:
        documento = get_object_or_404( VentasDocumento, pk = id )
    else:
        documento = VentasDocumento()

    #Cargar formularios

    if id:
        documento_form = VentasDocumentoForm( request.POST or None, instance = documento,)
        documento_items = VentasDocumentoDetalleFormSet(VentasDocumentoDetalleForm, extra=0, can_delete=False)
    else:
        initial_data = { 'fecha': datetime.now(),}
        documento_form = VentasDocumentoForm( request.POST or None, instance = documento, initial= initial_data)
        documento_items = VentasDocumentoDetalleFormSet(VentasDocumentoDetalleForm, extra=1, can_delete=False)
        
    documento_detalle_formset = documento_items(request.POST or None, instance=documento)

    if documento_detalle_formset.is_valid() and documento_form.is_valid():

        documento = documento_form.save(commit=False)

        cliente = documento.cliente
        cliente_clave = first_or_none( ClavesClientes.objects.filter( cliente= cliente ) )
        cliente_direccion =  first_or_none( ClienteDireccion.objects.filter( cliente= cliente ) )
        #Si es una documento nueva
        if not documento.id:
            documento_nuevo= True
            documento.caja= first_or_none( Caja.objects.all() )
            documento.tipo= 'F'
            documento.aplicado = 'N'
            documento.folio= ''#Se deja vacio para que se calcule el folio al guardar
            documento.fecha= datetime.now()
            documento.hora= datetime.now().strftime('%H:%M:%S')
            documento.cliente_clave= cliente_clave
            documento.cliente = cliente
            documento.cliente_direccion= cliente_direccion

            documento.moneda= Moneda.objects.get(pk= 1)
            documento.impuesto_incluido= 'N'
            documento.tipo_cambio= 1
            documento.descuento_tipo= 'I'

            #datos de documento global
            # documento.tipo_gen_fac='R'
            # documento.es_fac_global='S'
            # documento.fecha_ini_fac_global = fecha_ini_fac_global
            # documento.fecha_fin_fac_global = fecha_fin_fac_global

            documento.porcentaje_descuento=0
            
            documento.sistema_origen='VE'
            documento.usuario_creador= request.user.username
            documento.save()
            

        # # ventas_en_factura = documento_form.cleaned_data['ventas_en_factura']
        # # impuestos_venta_neta = documento_form.cleaned_data['impuestos_venta_neta'].split(',')
        # # impuestos_otros_impuestos = documento_form.cleaned_data['impuestos_otros_impuestos'].split(',')
        # # impuestos_importe_impuesto = documento_form.cleaned_data['impuestos_importe_impuesto'].split(',')
        # # impuestos_porcentaje_impuestos = documento_form.cleaned_data['impuestos_porcentaje_impuestos'].split(',')
        # # impuestos_ids = documento_form.cleaned_data['impuestos_ids'].split(',')

        # #Guardar impuestos
        # for impuesto_id, venta_neta, otros_impuestos, importe_impuesto, porcentaje_impuesto in zip(impuestos_ids, impuestos_venta_neta, impuestos_otros_impuestos, impuestos_importe_impuesto, impuestos_porcentaje_impuestos ):
        #     if impuesto_id != "":
        #         c = connections[connection_name].cursor()
        #         query =  '''INSERT INTO "IMPUESTOS_DOCTOS_PV" ("DOCTO_PV_ID", "IMPUESTO_ID", "VENTA_NETA", "OTROS_IMPUESTOS", "PCTJE_IMPUESTO", "IMPORTE_IMPUESTO") \
        #             VALUES (%s, %s, %s, %s, %s, %s)'''%(documento.id,  impuesto_id, venta_neta,  otros_impuestos, porcentaje_impuesto, importe_impuesto)
        #         c.execute(query)
        #         c.close()

        #Se guardan detalles de documento
        for detalle_form in documento_detalle_formset:
            detalle = detalle_form.save(commit = False)

            if not detalle.id:
                detalle.id = -1
                detalle.documento = documento
                detalle.unidades_surtidas_devueltas = 0
                detalle.fpgc_unitario = 0 
                detalle.comisiones_porcentaje = 0 
                detalle.rol = 'N' 
                detalle.posicion = -1
                detalle.save()

        message= 'documento guardada'

    c = {
        'documento_form': documento_form, 
        'documento_detalle_formset':documento_detalle_formset, 
        'message':message, 
    }

    return render_to_response(template_name, c, context_instance=RequestContext(request))
Ejemplo n.º 9
0
def sucursales_view( request, template_name = 'config/sucursales/sucursales.html' ):
    """ Lista de sucursales de empresa. """
    connection_name = get_conecctionname(request.session)
    c = { 'sucursales' : DatabaseSucursal.objects.filter(empresa_conexion=connection_name) }
    return render_to_response( template_name, c, context_instance = RequestContext( request ) )