38086-vm/core/templates/core/lpo_detail.html
2026-02-11 09:47:21 +00:00

241 lines
12 KiB
HTML

{% extends 'base.html' %}
{% load i18n %}
{% block title %}{% trans "LPO Detail" %} #{{ order.id }} | {{ site_settings.business_name }}{% endblock %}
{% block content %}
<div class="container py-4">
<!-- Action Bar -->
<div class="d-flex justify-content-between align-items-center mb-4 d-print-none">
<a href="{% url 'lpo_list' %}" class="btn btn-light rounded-3">
<i class="bi bi-arrow-left me-2"></i>{% trans "Back to List" %} / العودة للقائمة
</a>
<div class="d-flex gap-2">
{% if order.status != 'converted' %}
<form action="{% url 'convert_lpo_to_purchase' order.id %}" method="POST" onsubmit="return confirm('{% trans 'Convert this LPO to a Purchase Invoice? This will update stock.' %}');">
{% csrf_token %}
<button type="submit" class="btn btn-success rounded-3 px-4 shadow-sm">
<i class="bi bi-check2-circle me-2"></i>{% trans "Convert to Purchase" %}
</button>
</form>
{% endif %}
<button onclick="location.href='{% url 'download_lpo_pdf' order.id %}'" class="btn btn-outline-primary rounded-3 px-4">
<i class="bi bi-file-earmark-pdf me-2"></i>{% trans "Download PDF" %} / تحميل PDF
</button>
<button onclick="window.print()" class="btn btn-primary rounded-3 px-4 shadow-sm">
<i class="bi bi-printer me-2"></i>{% trans "Print Order" %} / طباعة الأمر
</button>
</div>
</div>
<!-- Invoice Content -->
<div id="order-card" class="card border-0 shadow-sm rounded-4 overflow-hidden mx-auto print-container" style="max-width: 800px;">
<div class="card-body p-0">
<!-- Header Section -->
<div class="p-5 bg-white print-section">
<div class="row mb-5 print-mb-2">
<div class="col-sm-6">
{% if settings.logo %}
<img src="{{ settings.logo.url }}" alt="Logo" style="max-height: 80px;" class="mb-4 print-mb-2 print-logo">
{% else %}
<h3 class="fw-bold text-primary mb-4 print-mb-2 print-h3">{{ settings.business_name }}</h3>
{% endif %}
<div class="text-muted small print-small">
<p class="mb-1"><i class="bi bi-geo-alt me-2"></i>{{ settings.address }}</p>
<p class="mb-1"><i class="bi bi-telephone me-2"></i>{{ settings.phone }}</p>
<p class="mb-1"><i class="bi bi-envelope me-2"></i>{{ settings.email }}</p>
</div>
</div>
<div class="col-sm-6 text-sm-end">
<h1 class="fw-bold text-uppercase text-muted opacity-50 mb-4 print-mb-2 print-h1">{% trans "Purchase Order" %} / أمر شراء</h1>
<div class="mb-4 print-mb-2">
<div class="fw-bold text-dark text-uppercase small">{% trans "LPO Number" %} / رقم الأمر</div>
<div class="h5 print-h5">{{ order.lpo_number|default:order.id }}</div>
</div>
<div class="row g-3">
<div class="col-4">
<div class="small text-muted fw-bold text-uppercase">{% trans "Issue Date" %} / تاريخ الإصدار</div>
<div>{{ order.issue_date|date:"Y-m-d" }}</div>
</div>
<div class="col-4">
<div class="small text-muted fw-bold text-uppercase">{% trans "Issued By" %} / صادرة عن</div>
<div>{{ order.created_by.username|default:"System" }}</div>
</div>
<div class="col-4">
<div class="small text-muted fw-bold text-uppercase">{% trans "Expected Date" %} / التاريخ المتوقع</div>
<div>{{ order.expected_date|date:"Y-m-d"|default:"-" }}</div>
</div>
</div>
</div>
</div>
<div class="row mb-5 print-mb-2">
<div class="col-sm-6">
<div class="small text-muted fw-bold mb-3 text-uppercase tracking-wider print-mb-1">{% trans "Supplier Information" %} / معلومات المورد</div>
<div class="h5 fw-bold mb-1 print-h5">{{ order.supplier.name }}</div>
{% if order.supplier.phone %}
<div class="text-muted small"><i class="bi bi-telephone me-2"></i>{{ order.supplier.phone }}</div>
{% endif %}
{% if order.supplier.contact_person %}
<div class="text-muted small"><i class="bi bi-person me-2"></i>{{ order.supplier.contact_person }}</div>
{% endif %}
</div>
<div class="col-sm-6 text-sm-end">
<div class="small text-muted fw-bold mb-3 text-uppercase tracking-wider print-mb-1">{% trans "Order Status" %} / حالة الطلب</div>
<div>
{% if order.status == 'converted' %}
<span class="h5 badge bg-success text-white rounded-pill px-4 print-badge">{% trans "Converted" %} / تم التحويل</span>
{% elif order.status == 'sent' %}
<span class="h5 badge bg-info text-white rounded-pill px-4 print-badge">{% trans "Sent" %} / مرسل</span>
{% else %}
<span class="h5 badge bg-secondary text-white rounded-pill px-4 print-badge">{% trans "Draft" %} / مسودة</span>
{% endif %}
</div>
</div>
</div>
<!-- Table Section -->
<div class="table-responsive mb-5 print-mb-2">
<table class="table table-hover align-middle table-sm-print">
<thead class="bg-light print-bg-none">
<tr>
<th class="py-3 ps-4 border-0 print-py-1">
<div class="small text-muted">{% trans "Item Description" %}</div>
<div class="small">وصف العنصر</div>
</th>
<th class="py-3 text-center border-0 print-py-1">
<div class="small text-muted">{% trans "Cost Price" %}</div>
<div class="small">سعر التكلفة</div>
</th>
<th class="py-3 text-center border-0 print-py-1">
<div class="small text-muted">{% trans "Quantity" %}</div>
<div class="small">الكمية</div>
</th>
<th class="py-3 text-end pe-4 border-0 print-py-1">
<div class="small text-muted">{% trans "Total" %}</div>
<div class="small">المجموع</div>
</th>
</tr>
</thead>
<tbody>
{% for item in order.items.all %}
<tr>
<td class="py-3 ps-4 print-py-1">
<div class="fw-bold" dir="rtl">{{ item.product.name_ar }}</div>
<div class="text-muted small">{{ item.product.name_en }}</div>
</td>
<td class="py-3 text-center print-py-1">{{ settings.currency_symbol }}{{ item.cost_price|floatformat:3 }}</td>
<td class="py-3 text-center print-py-1">{{ item.quantity|floatformat:2 }}</td>
<td class="py-3 text-end pe-4 fw-bold text-primary print-py-1">{{ settings.currency_symbol }}{{ item.line_total|floatformat:3 }}</td>
</tr>
{% endfor %}
</tbody>
<tfoot>
<tr>
<td colspan="2" class="border-0"></td>
<td class="text-center py-3 fw-bold border-top print-py-1">
<div>{% trans "Grand Total" %}</div>
<div class="small fw-normal">المجموع الكلي</div>
</td>
<td class="text-end pe-4 py-3 h5 fw-bold text-primary border-top print-py-1 print-h5">{{ settings.currency_symbol }}{{ order.total_amount|floatformat:3 }}</td>
</tr>
</tfoot>
</table>
</div>
<!-- Amount in Words -->
<div class="mb-5 px-5 print-mb-2 print-px-0">
<div class="p-3 bg-light rounded-3 print-bg-none print-p-0">
<div class="small text-muted fw-bold text-uppercase mb-1">{% trans "Amount in Words" %} / المبلغ بالحروف</div>
<div class="fw-bold text-dark">{{ amount_in_words }}</div>
</div>
</div>
<!-- Notes -->
{% if order.notes %}
<div class="bg-light p-4 rounded-3 mb-5 mx-5 print-bg-none print-mb-2 print-mx-0 print-p-0">
<h6 class="fw-bold small text-uppercase mb-2 text-muted">{% trans "Notes" %} / ملاحظات</h6>
<p class="mb-0 small">{{ order.notes }}</p>
</div>
{% endif %}
<div class="text-center text-muted small mt-5 border-top pt-4 pb-5 print-mt-2 print-pt-2 print-pb-0">
<p class="mb-0">{% trans "Thank you for your business!" %} / شكراً لتعاملكم معنا!</p>
</div>
</div>
</div>
</div>
</div>
<style>
@media print {
@page {
size: A4 portrait;
margin: 10mm;
}
body {
background-color: white !important;
margin: 0 !important;
padding: 0 !important;
font-size: 12px;
}
.container {
width: 100% !important;
max-width: 100% !important;
margin: 0 !important;
padding: 0 !important;
}
.d-print-none { display: none !important; }
/* Layout Overrides */
#order-card {
width: 100% !important;
max-width: none !important;
margin: 0 !important;
border: none !important;
box-shadow: none !important;
border-radius: 0 !important;
}
.print-section {
padding: 0 !important;
}
/* Spacing Reductions */
.print-mb-2 { margin-bottom: 0.5rem !important; }
.print-mb-1 { margin-bottom: 0.25rem !important; }
.print-mt-2 { margin-top: 1rem !important; }
.print-pt-2 { padding-top: 0.5rem !important; }
.print-pb-0 { padding-bottom: 0 !important; }
.print-px-0 { padding-left: 0 !important; padding-right: 0 !important; }
.print-mx-0 { margin-left: 0 !important; margin-right: 0 !important; }
.print-p-0 { padding: 0 !important; }
/* Font Size Reductions */
.print-h1 { font-size: 18px !important; margin-bottom: 0.5rem !important; }
.print-h3 { font-size: 16px !important; }
.print-h5 { font-size: 14px !important; }
.print-small { font-size: 10px !important; }
/* Table Compactness */
.table th, .table td {
padding: 4px 8px !important;
font-size: 11px !important;
}
.print-py-1 { padding-top: 4px !important; padding-bottom: 4px !important; }
/* Hide Backgrounds */
.print-bg-none { background-color: transparent !important; }
.badge {
border: 1px solid #000;
color: #000 !important;
background: transparent !important;
padding: 2px 8px !important;
}
/* Logo sizing */
.print-logo { max-height: 50px !important; }
}
</style>
{% endblock %}