Ver.09
This commit is contained in:
parent
a564c597f3
commit
9e85e053cc
Binary file not shown.
Binary file not shown.
23
core/migrations/0006_fleetunit_contract_number_and_more.py
Normal file
23
core/migrations/0006_fleetunit_contract_number_and_more.py
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
# Generated by Django 5.2.7 on 2026-01-27 20:41
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('core', '0005_supplier_fleetunit_insurance_policy_number_and_more'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='fleetunit',
|
||||||
|
name='contract_number',
|
||||||
|
field=models.CharField(blank=True, max_length=100, null=True, verbose_name='Номер договора'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='supplier',
|
||||||
|
name='contract_number',
|
||||||
|
field=models.CharField(blank=True, max_length=100, null=True, verbose_name='Номер договора (общий)'),
|
||||||
|
),
|
||||||
|
]
|
||||||
Binary file not shown.
@ -21,7 +21,7 @@ class Supplier(models.Model):
|
|||||||
representative_name = models.CharField(max_length=255, blank=True, null=True, verbose_name="ФИО представителя/менеджера")
|
representative_name = models.CharField(max_length=255, blank=True, null=True, verbose_name="ФИО представителя/менеджера")
|
||||||
phone = models.CharField(max_length=50, blank=True, null=True, verbose_name="Телефон")
|
phone = models.CharField(max_length=50, blank=True, null=True, verbose_name="Телефон")
|
||||||
email = models.EmailField(blank=True, null=True, verbose_name="Электронная почта")
|
email = models.EmailField(blank=True, null=True, verbose_name="Электронная почта")
|
||||||
contract_number = models.CharField(max_length=100, blank=True, null=True, verbose_name="Номер договора")
|
contract_number = models.CharField(max_length=100, blank=True, null=True, verbose_name="Номер договора (общий)")
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
verbose_name = "Поставщик / Контрагент"
|
verbose_name = "Поставщик / Контрагент"
|
||||||
@ -59,6 +59,7 @@ class FleetUnit(models.Model):
|
|||||||
|
|
||||||
# Supplier
|
# Supplier
|
||||||
supplier = models.ForeignKey(Supplier, on_delete=models.SET_NULL, null=True, blank=True, verbose_name="Поставщик / Контрагент")
|
supplier = models.ForeignKey(Supplier, on_delete=models.SET_NULL, null=True, blank=True, verbose_name="Поставщик / Контрагент")
|
||||||
|
contract_number = models.CharField(max_length=100, blank=True, null=True, verbose_name="Номер договора")
|
||||||
supplier_name = models.CharField(max_length=255, blank=True, null=True, verbose_name="Поставщик (старое)")
|
supplier_name = models.CharField(max_length=255, blank=True, null=True, verbose_name="Поставщик (старое)")
|
||||||
supplier_contacts = models.TextField(blank=True, null=True, verbose_name="Контакты поставщика (старое)")
|
supplier_contacts = models.TextField(blank=True, null=True, verbose_name="Контакты поставщика (старое)")
|
||||||
vehicle_documents = models.FileField(upload_to="fleet_docs/", blank=True, null=True, verbose_name="Документы на авто")
|
vehicle_documents = models.FileField(upload_to="fleet_docs/", blank=True, null=True, verbose_name="Документы на авто")
|
||||||
|
|||||||
@ -218,10 +218,14 @@
|
|||||||
<h6 class="fw-bold mb-3">Данные по снабжению и поставщику</h6>
|
<h6 class="fw-bold mb-3">Данные по снабжению и поставщику</h6>
|
||||||
<div class="row g-4">
|
<div class="row g-4">
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
|
<div class="mb-3">
|
||||||
|
<p class="text-muted small mb-1">Номер договора (техника)</p>
|
||||||
|
<p class="fw-bold mb-0">{{ unit.contract_number|default:"-" }}</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
{% if unit.supplier %}
|
{% if unit.supplier %}
|
||||||
<p class="text-muted small mb-1">Поставщик / Контрагент</p>
|
<p class="text-muted small mb-1">Поставщик / Контрагент</p>
|
||||||
<p class="fw-bold mb-1">{{ unit.supplier.name }}</p>
|
<p class="fw-bold mb-1">{{ unit.supplier.name }}</p>
|
||||||
<p class="small text-muted mb-3">Договор №{{ unit.supplier.contract_number|default:"-" }}</p>
|
|
||||||
|
|
||||||
<p class="text-muted small mb-1">Представитель</p>
|
<p class="text-muted small mb-1">Представитель</p>
|
||||||
<p class="small mb-1">{{ unit.supplier.representative_name|default:"-" }}</p>
|
<p class="small mb-1">{{ unit.supplier.representative_name|default:"-" }}</p>
|
||||||
|
|||||||
@ -76,9 +76,19 @@
|
|||||||
<h5 class="mb-3 text-primary border-bottom pb-2">Снабжение</h5>
|
<h5 class="mb-3 text-primary border-bottom pb-2">Снабжение</h5>
|
||||||
<div class="row g-3 mb-4">
|
<div class="row g-3 mb-4">
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<label class="form-label">Поставщик / Контрагент</label>
|
<label class="form-label d-flex justify-content-between">
|
||||||
|
Поставщик / Контрагент
|
||||||
|
<a href="{% url 'supplier_create' %}" target="_blank" class="small text-decoration-none">
|
||||||
|
<i class="bi bi-plus-circle"></i> Создать нового
|
||||||
|
</a>
|
||||||
|
</label>
|
||||||
{{ form.supplier }}
|
{{ form.supplier }}
|
||||||
<div class="form-text">Выберите поставщика из списка. Создать нового можно в разделе "Снабжение".</div>
|
<div class="form-text">Выберите поставщика из списка или создайте нового (откроется в новой вкладке).</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<label class="form-label">Номер договора</label>
|
||||||
|
{{ form.contract_number }}
|
||||||
|
<div class="form-text">Номер договора по данной единице техники.</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<label class="form-label">Документы на авто (PDF/Image)</label>
|
<label class="form-label">Документы на авто (PDF/Image)</label>
|
||||||
|
|||||||
@ -26,7 +26,7 @@ class FleetUnitForm(forms.ModelForm):
|
|||||||
'name', 'category', 'model_name', 'vin', 'plate_number', 'year', 'photo', 'status',
|
'name', 'category', 'model_name', 'vin', 'plate_number', 'year', 'photo', 'status',
|
||||||
'commissioning_date', 'notes',
|
'commissioning_date', 'notes',
|
||||||
'insurance_company', 'insurance_policy_number', 'insurance_start_date', 'insurance_end_date',
|
'insurance_company', 'insurance_policy_number', 'insurance_start_date', 'insurance_end_date',
|
||||||
'supplier', 'vehicle_documents'
|
'supplier', 'contract_number', 'vehicle_documents'
|
||||||
]
|
]
|
||||||
widgets = {
|
widgets = {
|
||||||
'name': forms.TextInput(attrs={'class': 'form-control'}),
|
'name': forms.TextInput(attrs={'class': 'form-control'}),
|
||||||
@ -44,6 +44,7 @@ class FleetUnitForm(forms.ModelForm):
|
|||||||
'insurance_start_date': forms.DateInput(attrs={'type': 'date', 'class': 'form-control'}),
|
'insurance_start_date': forms.DateInput(attrs={'type': 'date', 'class': 'form-control'}),
|
||||||
'insurance_end_date': forms.DateInput(attrs={'type': 'date', 'class': 'form-control'}),
|
'insurance_end_date': forms.DateInput(attrs={'type': 'date', 'class': 'form-control'}),
|
||||||
'supplier': forms.Select(attrs={'class': 'form-select'}),
|
'supplier': forms.Select(attrs={'class': 'form-select'}),
|
||||||
|
'contract_number': forms.TextInput(attrs={'class': 'form-control'}),
|
||||||
'vehicle_documents': forms.FileInput(attrs={'class': 'form-control'}),
|
'vehicle_documents': forms.FileInput(attrs={'class': 'form-control'}),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user