Move duplicated order detail modal logic from dashboard.js and logs.js into a shared renderOrderDetailModal() function in shared.js. Move modal HTML from dashboard.html and logs.html into base.html. Shared functions: renderCodmatCell, orderStatusBadge, fmtCost, fmtNum, computeDiscountSplit, renderReceipt. Both pages now call the shared modal with page-specific quick map callbacks. Net -152 lines. Logs page gains invoice info, TVA column, and receipt footer that were previously dashboard-only. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
123 lines
7.2 KiB
HTML
123 lines
7.2 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="ro" style="color-scheme: light">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>{% block title %}GoMag Import Manager{% endblock %}</title>
|
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">
|
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.2/font/bootstrap-icons.css" rel="stylesheet">
|
|
{% set rp = request.scope.get('root_path', '') %}
|
|
<link href="{{ rp }}/static/css/style.css?v=17" rel="stylesheet">
|
|
</head>
|
|
<body>
|
|
<!-- Top Navbar -->
|
|
<nav class="top-navbar">
|
|
<div class="navbar-brand">GoMag Import</div>
|
|
<div class="navbar-links">
|
|
<a href="{{ rp }}/" class="nav-tab {% block nav_dashboard %}{% endblock %}"><span class="d-none d-md-inline">Dashboard</span><span class="d-md-none">Acasa</span></a>
|
|
<a href="{{ rp }}/mappings" class="nav-tab {% block nav_mappings %}{% endblock %}"><span class="d-none d-md-inline">Mapari SKU</span><span class="d-md-none">Mapari</span></a>
|
|
<a href="{{ rp }}/missing-skus" class="nav-tab {% block nav_missing %}{% endblock %}"><span class="d-none d-md-inline">SKU-uri Lipsa</span><span class="d-md-none">Lipsa</span></a>
|
|
<a href="{{ rp }}/logs" class="nav-tab {% block nav_logs %}{% endblock %}"><span class="d-none d-md-inline">Jurnale Import</span><span class="d-md-none">Jurnale</span></a>
|
|
<a href="{{ rp }}/settings" class="nav-tab {% block nav_settings %}{% endblock %}"><span class="d-none d-md-inline">Setari</span><span class="d-md-none">Setari</span></a>
|
|
</div>
|
|
</nav>
|
|
|
|
<!-- Main content -->
|
|
<main class="main-content">
|
|
{% block content %}{% endblock %}
|
|
</main>
|
|
|
|
<!-- Shared Quick Map Modal -->
|
|
<div class="modal fade" id="quickMapModal" tabindex="-1" data-bs-backdrop="static">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title">Mapeaza SKU: <code id="qmSku"></code></h5>
|
|
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<div style="margin-bottom:8px; font-size:0.85rem">
|
|
<small class="text-muted">Produs:</small> <strong id="qmProductName"></strong>
|
|
</div>
|
|
<div class="qm-row" style="font-size:0.7rem; color:#9ca3af; padding:0 0 2px">
|
|
<span style="flex:1">CODMAT</span>
|
|
<span style="width:70px">Cant.</span>
|
|
<span style="width:30px"></span>
|
|
</div>
|
|
<div id="qmCodmatLines"></div>
|
|
<button type="button" class="btn btn-sm btn-outline-secondary mt-1" onclick="addQmCodmatLine()" style="font-size:0.8rem; padding:2px 10px">
|
|
+ CODMAT
|
|
</button>
|
|
<div id="qmDirectInfo" class="alert alert-info mt-2" style="display:none; font-size:0.85rem; padding:8px 12px;"></div>
|
|
<div id="qmPctWarning" class="text-danger mt-2" style="display:none;"></div>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Anuleaza</button>
|
|
<button type="button" class="btn btn-primary" id="qmSaveBtn" onclick="saveQuickMapping()">Salveaza</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Shared Order Detail Modal -->
|
|
<div class="modal fade" id="orderDetailModal" tabindex="-1">
|
|
<div class="modal-dialog modal-lg">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title">Comanda <code id="detailOrderNumber"></code></h5>
|
|
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<div class="row mb-3">
|
|
<div class="col-md-6">
|
|
<small class="text-muted">Client:</small> <strong id="detailCustomer"></strong><br>
|
|
<small class="text-muted">Data comanda:</small> <span id="detailDate"></span><br>
|
|
<small class="text-muted">Status:</small> <span id="detailStatus"></span>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<small class="text-muted">ID Comanda ROA:</small> <span id="detailIdComanda">-</span><br>
|
|
<small class="text-muted">ID Partener:</small> <span id="detailIdPartener">-</span><br>
|
|
<small class="text-muted">ID Adr. Facturare:</small> <span id="detailIdAdresaFact">-</span><br>
|
|
<small class="text-muted">ID Adr. Livrare:</small> <span id="detailIdAdresaLivr">-</span>
|
|
<div id="detailInvoiceInfo" style="display:none; margin-top:4px;">
|
|
<small class="text-muted">Factura:</small> <span id="detailInvoiceNumber"></span>
|
|
<span class="ms-2"><small class="text-muted">din</small> <span id="detailInvoiceDate"></span></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="table-responsive d-none d-md-block">
|
|
<table class="table table-sm table-bordered mb-0">
|
|
<thead class="table-light">
|
|
<tr>
|
|
<th>SKU</th>
|
|
<th>Produs</th>
|
|
<th>CODMAT</th>
|
|
<th class="text-end">Cant.</th>
|
|
<th class="text-end">Pret</th>
|
|
<th class="text-end">TVA%</th>
|
|
<th class="text-end">Valoare</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody id="detailItemsBody">
|
|
</tbody>
|
|
</table>
|
|
<div id="detailReceipt" class="d-flex flex-wrap gap-2 mt-1 justify-content-end"></div>
|
|
</div>
|
|
<div class="d-md-none" id="detailItemsMobile"></div>
|
|
<div id="detailReceiptMobile" class="d-flex flex-wrap gap-2 mt-1 d-md-none justify-content-end"></div>
|
|
<div id="detailError" class="alert alert-danger mt-3" style="display:none;"></div>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Inchide</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<script>window.ROOT_PATH = "{{ rp }}";</script>
|
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
|
|
<script src="{{ rp }}/static/js/shared.js?v=13"></script>
|
|
{% block scripts %}{% endblock %}
|
|
</body>
|
|
</html>
|