Skip to content

Instantly share code, notes, and snippets.

@gilsonbp
Last active December 18, 2018 14:47
Show Gist options
  • Save gilsonbp/ebb54dabaafe3a8583eec87489fa6d00 to your computer and use it in GitHub Desktop.
Save gilsonbp/ebb54dabaafe3a8583eec87489fa6d00 to your computer and use it in GitHub Desktop.
@admin.register(Cr)
class CrAdmin(admin.ModelAdmin):
list_display = ['id', 'get_venda', 'get_cpf_cliente', 'cliente',
'criado_em', 'get_status_admin']
list_display_links = list_display
search_fields = ['titulo']
autocomplete_fields = ['cliente', 'cond_pagamento', 'conta_padrao',
'centro_custo']
readonly_fields = ['criado_em', 'get_titulo_id', 'get_venda', 'status']
list_filter = [IsVendaListFilter, 'status']
inlines = [CrParcelaInLine]
fieldsets = (
(None, {'fields': (
'get_titulo_id', 'get_venda', 'cliente', 'cond_pagamento',
'conta_padrao', 'centro_custo', 'valor',
)}),
('INFORMAÇÕES', {'fields': (
'status', 'criado_em', 'dt_ref', 'historico'
)}),
)
def has_delete_permission(self, request, obj=None):
return False
def has_change_permission(self, request, obj=None):
return False
def get_urls(self):
urls = super().get_urls()
my_urls = [
path('<int:pk>/baixar-parcela/',
self.admin_site.admin_view(self.baixar_parcela_cr),
name='baixar_parcela_cr'),
]
return my_urls + urls
@method_decorator(permission_required('financeiro.baixar_parcela_cr',
raise_exception=True))
def baixar_parcela_cr(self, request, pk):
parcela = CrParcela.objects.get(pk=pk)
form = BaixarForm(initial={'conta_bancaria': parcela.cr.conta_padrao,
'centro_custo': parcela.cr.centro_custo})
if request.method == "POST":
form = BaixarForm(request.POST)
if form.is_valid():
try:
parcela.baixar(
conta_bancaria=form.cleaned_data['conta_bancaria'],
centro_custo=form.cleaned_data['centro_custo'],
valor=form.cleaned_data['valor']
)
messages.success(request, 'Parcela baixada com sucesso!')
return redirect('admin:financeiro_cr_change', parcela.cr.pk)
except Exception as e:
messages.error(request, e)
context = dict(
self.admin_site.each_context(request),
title='Baixar Parcela',
parcela=parcela,
form=form,
)
return TemplateResponse(request,
'admin/financeiro/baixar_parcela_cr.html',
context)
{% extends "admin/base_site.html" %}
{% load i18n admin_urls static admin_modify custom_filters %}
{% block extrahead %}{{ block.super }}
<script type="text/javascript" src="{% url 'admin:jsi18n' %}"></script>
{{ media }}
{% endblock %}
{% block extrastyle %}{{ block.super }}
<link rel="stylesheet" type="text/css" href="{% static "admin/css/forms.css" %}">{% endblock %}
{% block coltype %}colM{% endblock %}
{% block bodyclass %}{{ block.super }} app-{{ opts.app_label }} model-{{ opts.model_name }} change-form{% endblock %}
{% if not is_popup %}
{% block breadcrumbs %}
<div class="breadcrumbs">
<a href="{% url 'admin:index' %}">{% trans 'Home' %}</a>
&rsaquo; <a href="{% url 'admin:app_list' 'financeiro' %}">Financeiro</a>
&rsaquo; <a href="{% url 'admin:financeiro_cr_changelist' %}">Contas a Receber</a>
&rsaquo; <a href="{% url 'admin:financeiro_cr_change' parcela.cr.pk %}">{{ parcela.cr }}</a>
&rsaquo; {{ title }}
</div>
{% endblock %}
{% endif %}
{% block content %}
<div id="content-main">
{% block object-tools %}
<ul class="object-tools">
{% block object-tools-items %}
<li>
<a href="{% url 'admin:financeiro_cr_change' parcela.cr.pk %}">Voltar</a>
</li>
{% endblock %}
</ul>
{% endblock %}
<form method="post" id="finalize_product_entry_form">
{% csrf_token %}
<div>
<h2>Baixar parcela</h2>
<table width="100%">
<tr>
<th>Título</th>
<th>Parcela</th>
<th>Valor</th>
<th>Saldo</th>
</tr>
<tr>
<td>{{ parcela.cr }}</td>
<td>{{ parcela.parcela }}</td>
<td>R$ {{ parcela.valor }}</td>
<td>R$ {{ parcela.saldo }}</td>
</tr>
</table>
</div>
<h3>Informe os dados abaixo e um valor correspondente ao saldo que será baixado.</h3>
<small>Se um valor menor que o saldo for informado a parcela será baixada parcialmente.</small>
<fieldset class="module aligned">
{% for field in form %}
<div class="form-row">
<div>
{{ field.label_tag }}
{{ field }}
<p class="help">{{ field.help_text }}</p>
{{ field.errors }}
</div>
</div>
{% endfor %}
</fieldset>
{% block submit_buttons_bottom %}
<div class="submit-row">
<input type="submit" value="Baixar Parcela" class="default"
name="_baixar_parcela">
</div>
{% endblock %}
</form>
</div>
{% endblock %}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment