235 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			235 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| {% extends "base.html" %}
 | |
| {% comment %}
 | |
| The Mia Accounting Application
 | |
| ledger.html: The template for the ledger reports
 | |
| 
 | |
|  Copyright (c) 2020 imacat.
 | |
| 
 | |
|  Licensed under the Apache License, Version 2.0 (the "License");
 | |
|  you may not use this file except in compliance with the License.
 | |
|  You may obtain a copy of the License at
 | |
| 
 | |
|      http://www.apache.org/licenses/LICENSE-2.0
 | |
| 
 | |
|  Unless required by applicable law or agreed to in writing, software
 | |
|  distributed under the License is distributed on an "AS IS" BASIS,
 | |
|  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | |
|  See the License for the specific language governing permissions and
 | |
|  limitations under the License.
 | |
| 
 | |
| Author: imacat@mail.imacat.idv.tw (imacat)
 | |
| First written: 2020/7/16
 | |
| {% endcomment %}
 | |
| {% load static %}
 | |
| {% load i18n %}
 | |
| {% load humanize %}
 | |
| {% load mia_core %}
 | |
| {% load accounting %}
 | |
| 
 | |
| {% block settings %}
 | |
|   {% blocktrans asvar title with subject=current_subject.title|title period=period.description context "Accounting|" %}Ledger for {{ subject }} in {{ period }}{% endblocktrans %}
 | |
|   {% setvar "title" title %}
 | |
|   {% setvar "use_period_chooser" True %}
 | |
|   {% static "accounting/css/report.css" as css %}
 | |
|   {% setvar "css" css %}
 | |
| {% endblock %}
 | |
| 
 | |
| {% block content %}
 | |
| 
 | |
| <div class="btn-group btn-actions">
 | |
|   <div class="btn-group">
 | |
|     <button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown">
 | |
|       <i class="fas fa-edit"></i>
 | |
|       {% trans "New" context "Accounting|" as text %}
 | |
|       {{ text|force_escape }}
 | |
|     </button>
 | |
|     <div class="dropdown-menu">
 | |
|       {% url "accounting:transaction.create" "expense" as url %}
 | |
|       <a class="dropdown-item" href="{% url_query url r=request.get_full_path %}">
 | |
|         {% trans "Cash Expense" context "Accounting|" as text %}
 | |
|         {{ text|force_escape }}
 | |
|       </a>
 | |
|       {% url "accounting:transaction.create" "income" as url %}
 | |
|       <a class="dropdown-item" href="{% url_query url r=request.get_full_path %}">
 | |
|         {% trans "Cash Income" context "Accounting|" as text %}
 | |
|         {{ text|force_escape }}
 | |
|       </a>
 | |
|       {% url "accounting:transaction.create" "transfer" as url %}
 | |
|       <a class="dropdown-item" href="{% url_query url r=request.get_full_path %}">
 | |
|         {% trans "Transfer" context "Accounting|" as text %}
 | |
|         {{ text|force_escape }}
 | |
|       </a>
 | |
|     </div>
 | |
|   </div>
 | |
|   {% with current_report_icon="fas fa-file-invoice-dollar" %}
 | |
|     {% trans "Ledger" context "Accounting|" as current_report_title %}
 | |
|     {% include "accounting/include/report-chooser.html" %}
 | |
|   {% endwith %}
 | |
|   <div class="btn-group">
 | |
|     <button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown">
 | |
|       <span class="d-none d-md-inline">{{ current_subject.title|title }}</span>
 | |
|       <span class="d-md-none">{% trans "Subject" context "Accounting|" as text %}{{ text|force_escape }}</span>
 | |
|     </button>
 | |
|     <div class="dropdown-menu subject-picker">
 | |
|       {% for subject in subjects %}
 | |
|         <a class="dropdown-item {% if subject.code == current_subject.code %} active {% endif %}" href="{% url "accounting:ledger" subject.code period.spec %}">
 | |
|           {{ subject.code }} {{ subject.title|title }}
 | |
|         </a>
 | |
|       {% endfor %}
 | |
|     </div>
 | |
|   </div>
 | |
|   <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#period-modal">
 | |
|     <i class="far fa-calendar-alt"></i>
 | |
|     <span class="d-none d-md-inline">{{ period.description }}</span>
 | |
|     <span class="d-md-none">{% trans "Period" context "Period|" as text %}{{ text|force_escape }}</span>
 | |
|   </button>
 | |
| </div>
 | |
| 
 | |
| {% include "mia_core/include/period-chooser.html" %}
 | |
| 
 | |
| {% if item_list %}
 | |
|   {% include "mia_core/include/pagination.html" %}
 | |
| 
 | |
|   {# The table for large screens #}
 | |
|   <table class="table table-striped table-hover d-none d-md-table general-journal-table">
 | |
|     <thead>
 | |
|       <tr>
 | |
|         <th scope="col">{% trans "Date" context "Accounting|" as text %}{{ text|force_escape }}</th>
 | |
|         <th scope="col">{% trans "Subject" context "Accounting|" as text %}{{ text|force_escape }}</th>
 | |
|         <th scope="col">{% trans "Summary" context "Accounting|" as text %}{{ text|force_escape }}</th>
 | |
|         <th class="amount" scope="col">{% trans "Debit" context "Accounting|" as text %}{{ text|force_escape }}</th>
 | |
|         <th class="amount" scope="col">{% trans "Credit" context "Accounting|" as text %}{{ text|force_escape }}</th>
 | |
|         <th class="amount" scope="col">{% trans "Balance" context "Accounting|" as text %}{{ text|force_escape }}</th>
 | |
|         <th class="actions" scope="col">{% trans "View" context "Accounting|" as text %}{{ text|force_escape }}</th>
 | |
|       </tr>
 | |
|     </thead>
 | |
|     <tbody>
 | |
|       {% for item in item_list %}
 | |
|         <tr class="{% if not item.is_balanced or item.has_order_hole or not item.is_credit_card_paid %} table-danger {% endif %}{% if item.is_existing_equipment %} table-info {% endif %}">
 | |
|           <td>{{ item.transaction.date|smart_date }}</td>
 | |
|           <td>{{ item.subject.title|title }}</td>
 | |
|           <td>{{ item.summary|default:"" }}{% if not item.is_balanced %}
 | |
|             <span class="badge badge-danger badge-pill">
 | |
|               {% trans "Unbalanced" context "Accounting|" as text %}
 | |
|               {{ text|force_escape }}
 | |
|             </span>
 | |
|           {% endif %}{% if item.has_order_hole %}
 | |
|             <span class="badge badge-danger badge-pill">
 | |
|               {% trans "Need Reorder" context "Accounting|" as text %}
 | |
|               {{ text|force_escape }}
 | |
|             </span>
 | |
|           {% endif %}{% if not item.is_credit_card_paid %}
 | |
|             <span class="badge badge-danger badge-pill">
 | |
|               {% trans "Unpaid" context "Accounting|" as text %}
 | |
|               {{ text|force_escape }}
 | |
|             </span>
 | |
|           {% endif %}{% if item.is_existing_equipment %}
 | |
|             <span class="badge badge-info badge-pill">
 | |
|               {% trans "Existing" context "Accounting|" as text %}
 | |
|               {{ text|force_escape }}
 | |
|             </span>
 | |
|           {% endif %}</td>
 | |
|           <td class="amount">{{ item.debit_amount|accounting_amount }}</td>
 | |
|           <td class="amount">{{ item.credit_amount|accounting_amount }}</td>
 | |
|           <td class="amount {% if item.balance < 0 %} text-danger {% endif %}">{{ item.balance|accounting_amount }}</td>
 | |
|           <td class="actions">
 | |
|             {% if item.sn is not None %}
 | |
|               <a href="{{ item.transaction.get_absolute_url }}" class="btn btn-info" role="button">
 | |
|                 <i class="fas fa-eye"></i>
 | |
|                 <span class="d-none d-lg-inline">{% trans "View" context "Accounting|" as text %}{{ text|force_escape }}</span>
 | |
|               </a>
 | |
|             {% endif %}
 | |
|           </td>
 | |
|         </tr>
 | |
|       {% endfor %}
 | |
|     </tbody>
 | |
|   </table>
 | |
| 
 | |
|   {# The list for small screens #}
 | |
|   <ul class="list-group d-md-none">
 | |
|     {% for item in item_list %}
 | |
|       <li class="list-group-item {% if not item.is_balanced or item.has_order_hole or not item.is_credit_card_paid %} list-group-item-danger {% endif %}{% if item.is_existing_equipment %} list-group-item-info {% endif %}">
 | |
|         {% if item.sn is not None %}
 | |
|           <a class="list-group-item-action" href="{{ item.transaction.get_absolute_url }}">
 | |
|             <div class="date-subject-line">
 | |
|               {{ item.transaction.date|smart_date }} {{ item.subject.title|title }}
 | |
|             </div>
 | |
|             <div class="d-flex justify-content-between align-items-center">
 | |
|               <div>
 | |
|                 {{ item.summary|default:"" }}
 | |
|                 {% if not item.is_balanced %}
 | |
|                   <span class="badge badge-danger badge-pill">
 | |
|                     {% trans "Unbalanced" context "Accounting|" as text %}
 | |
|                     {{ text|force_escape }}
 | |
|                   </span>
 | |
|                 {% endif %}
 | |
|                 {% if item.has_order_hole %}
 | |
|                   <span class="badge badge-danger badge-pill">
 | |
|                     {% trans "Need Reorder" context "Accounting|" as text %}
 | |
|                     {{ text|force_escape }}
 | |
|                   </span>
 | |
|                 {% endif %}
 | |
|                 {% if not item.is_credit_card_paid %}
 | |
|                   <span class="badge badge-danger badge-pill">
 | |
|                     {% trans "Unpaid" context "Accounting|" as text %}
 | |
|                     {{ text|force_escape }}
 | |
|                   </span>
 | |
|                 {% endif %}
 | |
|                 {% if item.is_existing_equipment %}
 | |
|                   <span class="badge badge-info badge-pill">
 | |
|                     {% trans "Existing" context "Accounting|" as text %}
 | |
|                     {{ text|force_escape }}
 | |
|                   </span>
 | |
|                 {% endif %}
 | |
|               </div>
 | |
|               <div>
 | |
|                 {% if item.debit_amount is not None %}
 | |
|                   <span class="badge badge-success badge-pill">
 | |
|                     {{ item.debit_amount|intcomma:False }}
 | |
|                   </span>
 | |
|                 {% endif %}
 | |
|                 {% if item.credit_amount is not None %}
 | |
|                   <span class="badge badge-warning badge-pill">
 | |
|                     {{ item.credit_amount|intcomma:False }}
 | |
|                   </span>
 | |
|                 {% endif %}
 | |
|                 <span class="badge {% if item.balance < 0 %} badge-danger {% else %} badge-primary {% endif %} badge-pill">
 | |
|                   {{ item.balance|intcomma:False }}
 | |
|                 </span>
 | |
|               </div>
 | |
|             </div>
 | |
|           </a>
 | |
|         {% else %}
 | |
|           <div class="date-subject-line">
 | |
|             {{ item.transaction.date|smart_date }} {{ item.subject.title|title }}
 | |
|           </div>
 | |
|           <div class="d-flex justify-content-between align-items-center">
 | |
|             <div>
 | |
|               {{ item.summary|default:"" }}
 | |
|             </div>
 | |
|             <div>
 | |
|               {% if item.debit_amount is not None %}
 | |
|                 <span class="badge badge-success badge-pill">
 | |
|                   {{ item.debit_amount|intcomma:False }}
 | |
|                 </span>
 | |
|               {% endif %}
 | |
|               {% if item.credit_amount is not None %}
 | |
|                 <span class="badge badge-warning badge-pill">
 | |
|                   {{ item.credit_amount|intcomma:False }}
 | |
|                 </span>
 | |
|               {% endif %}
 | |
|               <span class="badge {% if item.balance < 0 %} badge-danger {% else %} badge-primary {% endif %} badge-pill">
 | |
|                 {{ item.balance|intcomma:False }}
 | |
|               </span>
 | |
|             </div>
 | |
|           </div>
 | |
|         {% endif %}
 | |
|       </li>
 | |
|     {% endfor %}
 | |
|   </ul>
 | |
| {% else %}
 | |
|   <p>{{ _("There is currently no data.")|force_escape }}</p>
 | |
| {% endif %}
 | |
| 
 | |
| {% endblock %}
 |