# Generated by Django 2.2 on 2020-08-24 16:24

from decimal import Decimal
from django.conf import settings
import django.core.validators
from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

    initial = True

    dependencies = [
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
        ('data', '0001_initial'),
    ]

    operations = [
        migrations.CreateModel(
            name='Grupo',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('nombre', models.CharField(max_length=50, unique=True)),
                ('imagen', models.ImageField(blank=True, help_text='Para usarla en el producto si no tiene imagen.', null=True, upload_to='imgs_grupo/', verbose_name='Imagen')),
            ],
            options={
                'verbose_name': 'Grupo',
                'verbose_name_plural': 'Grupos',
            },
        ),
        migrations.CreateModel(
            name='Producto',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('codigo', models.CharField(max_length=50, unique=True)),
                ('costo', models.DecimalField(decimal_places=2, default=0, max_digits=10, validators=[django.core.validators.MinValueValidator(Decimal('0.00'))], verbose_name='Precio')),
                ('activo', models.BooleanField(default=True)),
                ('imagen', models.ImageField(blank=True, help_text='Si no se carga, usa la imagen del grupo.', null=True, upload_to='imgs_producto/', verbose_name='Imagen')),
                ('descripcion', models.TextField()),
                ('categoria', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='data.Categoria')),
                ('grupo', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='cotizaciones.Grupo')),
                ('software_compatible', models.ManyToManyField(blank=True, to='data.Software')),
            ],
            options={
                'verbose_name': 'Producto',
                'verbose_name_plural': 'Productos',
            },
        ),
        migrations.CreateModel(
            name='Oferta',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('asunto', models.CharField(blank=True, max_length=100, null=True)),
                ('fecha', models.DateField(auto_now_add=True, null=True)),
                ('tasa_cambio', models.DecimalField(decimal_places=2, default=1.0, max_digits=10, verbose_name='Tasa de cambio')),
                ('oc_autorizacion', models.FileField(blank=True, help_text='Se agrega al obtener la OC o aprobación del cliente.', null=True, upload_to='oc_autoriz/ofertas/', verbose_name='OC - Aprobacion')),
                ('facturado', models.BooleanField(default=False)),
                ('cliente', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='data.Cliente')),
                ('moneda', models.ForeignKey(blank=True, default=1, null=True, on_delete=django.db.models.deletion.CASCADE, to='data.Moneda')),
                ('usuario', models.ForeignKey(default=1, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'verbose_name': 'Oferta',
                'verbose_name_plural': 'Ofertas',
            },
        ),
        migrations.CreateModel(
            name='LineaOferta',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('cantidad', models.PositiveIntegerField(default=1)),
                ('costo_custom', models.DecimalField(decimal_places=2, default=0, max_digits=10, validators=[django.core.validators.MinValueValidator(Decimal('0.00'))], verbose_name='Precio Personalizado')),
                ('oferta', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='cotizaciones.Oferta')),
                ('producto', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='cotizaciones.Producto')),
            ],
            options={
                'verbose_name': 'Producto ofertado',
                'verbose_name_plural': 'Productos ofertados',
            },
        ),
        migrations.CreateModel(
            name='Descuento',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('descuento', models.DecimalField(decimal_places=2, default=0, help_text='Valor del porcentaje.', max_digits=10, validators=[django.core.validators.MinValueValidator(Decimal('0.01'))])),
                ('todas', models.BooleanField(default=False, help_text='Seleccionar si el descuento es sobre todas las categorías.')),
                ('categoria', models.ManyToManyField(blank=True, help_text='Categorías a la que se aplicaran el descuento.', to='data.Categoria')),
                ('oferta', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='cotizaciones.Oferta')),
            ],
            options={
                'verbose_name': 'Descuento',
                'verbose_name_plural': 'Descuentos',
            },
        ),
        migrations.CreateModel(
            name='Condiciones_Custom',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('validez_de_la_oferta', models.TextField(default='15 días corridos.')),
                ('forma_de_pago', models.TextField(default='50% al pedido. \n50% a la entrega de equipos y software (a excepción de los servicios). \nSaldo de servicios contra finalización de la implementación (Go-Live).')),
                ('garantia', models.TextField(default='6 meses con opción a renovación anual de forma indefinida a través de la contratación del servicio de mantenimiento.\n*Molinetes y barreras: 6 meses.')),
                ('precios', models.TextField(default='Impuestos no incluidos. \nNo se incluye el envío de los productos. \nEn el caso de reparación de equipos, los mismos serán analizados y reparados según lo definido en la garantía/SLA.')),
                ('instalacion', models.TextField(default='Se incluye la instalación física de los productos cotizados.\nEn las horas de consultoría, se incluyen la instalación remota, configuración y parametrización de la aplicación.\nNo se incluye cableado. En cada punto donde irá instalado cada uno de los terminales, se requiere contar con tomacorriente de 220VAC y cable/boca de red.\nTodos los servicios incluidos en la presente oferta serán realizados en el horario de 9 a 18 horas, días hábiles de lunes a viernes. Trabajos fuera de dichos horarios, serán cotizados en caso de ser necesarios.')),
                ('facturacion', models.TextField(default='Todos los precios están expresados en Dólares USA. Deberán ser abonados en Dólares ó su equivalente en pesos de curso legal vigente según la cotización tipo vendedor en el mercado oficial, correspondiente al cierre del día de la acreditación de los fondos en el caso de entrega de cheques de pago diferido, o al cierre del día anterior a la fecha de pago de tratarse de cheques al día. A los efectos legales los precios serán indicados por unidad y expresados en pesos según la cotización del dólar libre tipo vendedor del día de emisión de la correspondiente factura. La diferencia de cambio surgida entre el día de la factura y el día de acreditación de los fondos generará una nota de débito/crédito por el importe respectivo.')),
                ('oferta', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='cotizaciones.Oferta')),
            ],
            options={
                'verbose_name': 'Condición Personalizada',
                'verbose_name_plural': 'Condiciones Personalizadas',
            },
        ),
    ]
