58 lines
3.7 KiB
Python
58 lines
3.7 KiB
Python
# Generated by Django 5.2.4 on 2025-07-24 19:21
|
||
|
||
import django.db.models.deletion
|
||
from django.db import migrations, models
|
||
|
||
|
||
class Migration(migrations.Migration):
|
||
|
||
dependencies = [
|
||
('ssh_manager', '0012_sshcredential_connection_status_and_more'),
|
||
]
|
||
|
||
operations = [
|
||
migrations.CreateModel(
|
||
name='Invoice',
|
||
fields=[
|
||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||
('invoice_number', models.CharField(max_length=50, unique=True, verbose_name='Fatura No')),
|
||
('issue_date', models.DateField(verbose_name='Düzenleme Tarihi')),
|
||
('due_date', models.DateField(verbose_name='Son Ödeme Tarihi')),
|
||
('status', models.CharField(choices=[('draft', 'Taslak'), ('sent', 'Gönderildi'), ('paid', 'Ödendi'), ('overdue', 'Gecikti'), ('cancelled', 'İptal Edildi')], default='draft', max_length=20, verbose_name='Durum')),
|
||
('payment_method', models.CharField(choices=[('bank_transfer', 'Banka Havalesi'), ('credit_card', 'Kredi Kartı'), ('cash', 'Nakit'), ('other', 'Diğer')], default='bank_transfer', max_length=20, verbose_name='Ödeme Yöntemi')),
|
||
('subtotal', models.DecimalField(decimal_places=2, default=0, max_digits=10, verbose_name='Ara Toplam')),
|
||
('tax_amount', models.DecimalField(decimal_places=2, default=0, max_digits=10, verbose_name='KDV Tutarı')),
|
||
('total_amount', models.DecimalField(decimal_places=2, default=0, max_digits=10, verbose_name='Toplam Tutar')),
|
||
('discount', models.DecimalField(decimal_places=2, default=0, max_digits=10, verbose_name='İndirim')),
|
||
('notes', models.TextField(blank=True, null=True, verbose_name='Notlar')),
|
||
('payment_notes', models.TextField(blank=True, null=True, verbose_name='Ödeme Notları')),
|
||
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Oluşturma Tarihi')),
|
||
('updated_at', models.DateTimeField(auto_now=True, verbose_name='Güncelleme Tarihi')),
|
||
('customer', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='invoices', to='ssh_manager.customer', verbose_name='Müşteri')),
|
||
],
|
||
options={
|
||
'verbose_name': 'Fatura',
|
||
'verbose_name_plural': 'Faturalar',
|
||
'ordering': ['-issue_date', '-id'],
|
||
},
|
||
),
|
||
migrations.CreateModel(
|
||
name='InvoiceItem',
|
||
fields=[
|
||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||
('description', models.CharField(max_length=255, verbose_name='Açıklama')),
|
||
('quantity', models.DecimalField(decimal_places=2, default=1, max_digits=10, verbose_name='Miktar')),
|
||
('unit_price', models.DecimalField(decimal_places=2, max_digits=10, verbose_name='Birim Fiyat')),
|
||
('tax_rate', models.DecimalField(decimal_places=2, default=18, max_digits=5, verbose_name='KDV Oranı (%)')),
|
||
('amount', models.DecimalField(decimal_places=2, max_digits=10, verbose_name='Tutar')),
|
||
('invoice', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='items', to='ssh_manager.invoice', verbose_name='Fatura')),
|
||
('project', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='ssh_manager.project', verbose_name='İlişkili Proje')),
|
||
],
|
||
options={
|
||
'verbose_name': 'Fatura Kalemi',
|
||
'verbose_name_plural': 'Fatura Kalemleri',
|
||
'ordering': ['id'],
|
||
},
|
||
),
|
||
]
|