# -*- coding: utf-8 -*-
from django.db import models
from Main.models import * 

# Create your models here.
# transferencia
class TCajaDebe(models.Model):#ingreso transferecnias
    """docsrting for Caja Debe"""
    id = models.AutoField("ID:", primary_key=True)#identificador
    id_personal=models.ForeignKey(Personal,verbose_name="ID Personal", on_delete=models.CASCADE)#idnetificador del personal que realiza la transferencia
    tablaRelacional=models.CharField("Tabla:",max_length=40)#nombre de la tabla que genera la operacion
    fecha = models.DateTimeField("Fecha:",auto_now=True)#fecha de la operacion
    conceptoDetalle=models.CharField("Detalle:",max_length=250)#descripcion dela operacion
    tipoDocumento=models.CharField("Tipo Documento:",max_length=20)#otros, ingreso
    cantidadDinero=models.DecimalField(max_digits=15,decimal_places=2)#customFloatField(null=True,blank=True)#models.CharField("Cantidad dinero:") monto
    moneda = models.CharField("Moneda:",max_length=20)#soles dolares
    tipo_cambio= models.DecimalField(max_digits=15,decimal_places=3,default=0)
    observaciones=models.CharField("Observaciones:",max_length=250)#observacion
    estadoTransaccion=models.CharField("Estado Transaccion",max_length=20)#estado
    nroRecibo=models.CharField("Nro. recibo:",max_length=30)
    id_oficina = models.ForeignKey(Oficina,verbose_name='Id:', on_delete=models.CASCADE)#oficina origen, oficina el cual aplica el ingreso
    id_caja = models.ForeignKey(Cajas,verbose_name='Id:', on_delete=models.CASCADE)#caja ala cual se aplica el ingreso
    aux1=models.CharField("aux1:",max_length=60)#comision leido
    aux2=models.CharField("aux2:",max_length=15)#balance
    observaciones2=models.CharField("observaciones2:",max_length=250)#('leido')

    class Meta:
        ordering = ["id"]
        verbose_name_plural = "Ingresos"
        verbose_name = "Ingreso"

    def __str__(self):
        return str(self.id)

class TCajaHaber(models.Model):#egreso transferencias
    """docsrting for Caja Haber"""
    id = models.AutoField("ID:", primary_key=True)
    id_personal=models.ForeignKey(Personal,verbose_name="ID Personal", on_delete=models.CASCADE)#personal q realiza el egreso
    tablaRelacional=models.CharField("Tabla:",max_length=40)
    fecha = models.DateTimeField("Fecha:",auto_now=True)
    conceptoDetalle=models.CharField("Detalle:",max_length=250)
    tipoDocumento=models.CharField("Tipo Documento:",max_length=20)
    cantidadDinero=models.DecimalField(max_digits=15,decimal_places=2)
    moneda = models.CharField("Moneda:",max_length=20)
    tipo_cambio= models.DecimalField(max_digits=15,decimal_places=3,default=0)
    observaciones=models.CharField("Observaciones:",max_length=250)
    estadoTransaccion=models.CharField("Estado Transaccion",max_length=20)
    nroRecibo=models.CharField("Nro. recibo:",max_length=30)
    id_oficina = models.ForeignKey(Oficina,verbose_name='Id:', on_delete=models.CASCADE)#id oficina q realiza el egreso
    id_caja = models.ForeignKey(Cajas,verbose_name='Id:', on_delete=models.CASCADE)#id caja q realiza el egreso
    aux1=models.CharField("aux1:",max_length=60)
    aux2=models.CharField("aux2:",max_length=15)#balance
    observaciones2=models.CharField("observaciones2:",max_length=250)

    class Meta:
        ordering = ["id"]
        verbose_name_plural = "Egresos"
        verbose_name = "Egreso"

    def __str__(self):
        return str(self.id)

#***************************  cambio de moneda  ***************************
#**************************************************************************
class TCajaDebeCambio(models.Model):#cambio de moneda
    """caja debe cambio moneda"""
    id = models.AutoField("ID:", primary_key=True)#identificador
    id_personal=models.ForeignKey(Personal,verbose_name="ID Personal", on_delete=models.CASCADE)#idnetificador del personal que realiza el mocimiento
    tablaRelacional=models.CharField("Tabla:",max_length=40)#nombre de la tabla que genera la operacion
    fecha = models.DateTimeField("Fecha:",auto_now=True)#fecha de la operacion
    conceptoDetalle=models.CharField("Detalle:",max_length=250)#descripcion dela operacion
    tipoDocumento=models.CharField("Tipo Documento:",max_length=20)#otros, ingreso
    cantidadDinero=models.DecimalField(max_digits=15,decimal_places=3)
    moneda = models.CharField("Moneda:",max_length=20)#soles dolares
    tipo_cambio= models.DecimalField(max_digits=15,decimal_places=4,default=0)
    observaciones=models.CharField("Observaciones:",max_length=250)#observacion
    estadoTransaccion=models.CharField("Estado Transaccion",max_length=20)#estado
    nroRecibo=models.CharField("Nro. recibo:",max_length=30)
    id_oficina = models.ForeignKey(Oficina,verbose_name='Id:', on_delete=models.CASCADE)#oficina origen, oficina el cual aplica el ingreso
    id_caja = models.ForeignKey(Cajas,verbose_name='Id:', on_delete=models.CASCADE)#caja ala cual se aplica el ingreso
    aux1=models.CharField("aux1:",max_length=60)
    aux2=models.CharField("aux2:",max_length=15)
    observaciones2=models.CharField("observaciones2:",max_length=250)

    class Meta:
        ordering = ["id"]
        verbose_name_plural = "Ingresos Cambio"
        verbose_name = "Ingreso Cambio"

    def __str__(self):
        return str(self.id)

class TCajaHaberCambio(models.Model):#egreso cambio moneda
    """caja haber cambio moneda"""
    id = models.AutoField("ID:", primary_key=True)
    id_personal=models.ForeignKey(Personal,verbose_name="ID Personal", on_delete=models.CASCADE)#personal q realiza el egreso
    tablaRelacional=models.CharField("Tabla:",max_length=40)
    fecha = models.DateTimeField("Fecha:",auto_now=True)
    conceptoDetalle=models.CharField("Detalle:",max_length=250)
    tipoDocumento=models.CharField("Tipo Documento:",max_length=20)
    cantidadDinero=models.DecimalField(max_digits=15,decimal_places=3)
    moneda = models.CharField("Moneda:",max_length=20)
    tipo_cambio= models.DecimalField(max_digits=15,decimal_places=4,default=0)
    observaciones=models.CharField("Observaciones:",max_length=250)
    estadoTransaccion=models.CharField("Estado Transaccion",max_length=20)
    nroRecibo=models.CharField("Nro. recibo:",max_length=30)
    id_oficina = models.ForeignKey(Oficina,verbose_name='Id:', on_delete=models.CASCADE)#id oficina q realiza el egreso
    id_caja = models.ForeignKey(Cajas,verbose_name='Id:', on_delete=models.CASCADE)#id caja q realiza el egreso
    aux1=models.CharField("aux1:",max_length=60)
    aux2=models.CharField("aux2:",max_length=15)#balance
    observaciones2=models.CharField("observaciones2:",max_length=250)

    class Meta:
        ordering = ["id"]
        verbose_name_plural = "Egresos Cambio"
        verbose_name = "Egreso Cambio"

    def __str__(self):
        return str(self.id)

#****************************** material ******************************
#***********************************************************************
class TCajaMaterialDebe(models.Model):#ingreso
    id = models.AutoField("ID:", primary_key=True)#identificador
    id_personal=models.ForeignKey(Personal,verbose_name="ID Personal", on_delete=models.CASCADE)#idnetificador del personal que realiza el ingreso
    tablaRelacional=models.CharField("Tabla:",max_length=40)#nombre de la tabla que genera la operacion
    fecha = models.DateTimeField("Fecha:",auto_now=True)#fecha y hora de la operacion
    conceptoDetalle=models.CharField("Detalle:",max_length=250)#descripcion dela operacion
    tipoDocumento=models.CharField("Tipo Documento:",max_length=20, null=True,blank=True)#compra de oro, cta material
    observaciones=models.CharField("Observaciones:",max_length=250)#observacion
    estadoTransaccion=models.CharField("Estado Transaccion",max_length=20)#estado
    pesoGramos=models.DecimalField(max_digits=15,decimal_places=4)
    precioxGramo=models.DecimalField(max_digits=15,decimal_places=4,default=0)
    nroRecibo=models.CharField("Nro. recibo:",max_length=30)
    id_oficina = models.ForeignKey(Oficina,verbose_name='Id:', on_delete=models.CASCADE)#oficina origen, oficina el cual aplica el ingreso
    id_caja = models.ForeignKey(Cajas,verbose_name='Id:', on_delete=models.CASCADE)#caja ala cual se aplica el ingreso
    aux1=models.CharField("aux1:",max_length=60)
    aux2=models.CharField("aux2:",max_length=15)
    observaciones2=models.CharField("observaciones2:",max_length=250)

    class Meta:
        ordering = ["id"]
        verbose_name_plural = "Ingresos Material"
        verbose_name = "Ingreso Material"

    def __str__(self):
        return str(self.id)


class TCajaMaterialHaber(models.Model):#egreso
    id = models.AutoField("ID:", primary_key=True)#identificador
    id_personal=models.ForeignKey(Personal,verbose_name="ID Personal", on_delete=models.CASCADE)#idnetificador del personal que realiza el egreso
    tablaRelacional=models.CharField("Tabla:",max_length=40)#nombre de la tabla que genera la operacion
    fecha = models.DateTimeField("Fecha:",auto_now=True)#fecha y hora de la operacion
    conceptoDetalle=models.CharField("Detalle:",max_length=250)#descripcion dela operacion
    tipoDocumento=models.CharField("Tipo Documento:",max_length=20, null=True,blank=True)#compra de oro, cta material
    observaciones=models.CharField("Observaciones:",max_length=250)#observacion
    estadoTransaccion=models.CharField("Estado Transaccion",max_length=20)#estado
    pesoGramos=models.DecimalField(max_digits=15,decimal_places=4)
    precioxGramo=models.DecimalField(max_digits=15,decimal_places=4,default=0)
    nroRecibo=models.CharField("Nro. recibo:",max_length=30)
    id_oficina = models.ForeignKey(Oficina,verbose_name='Id:', on_delete=models.CASCADE)#oficina el cual aplica el egresogreso
    id_caja = models.ForeignKey(Cajas,verbose_name='Id:', on_delete=models.CASCADE)#caja ala cual se aplica el egreso
    aux1=models.CharField("aux1:",max_length=60)
    aux2=models.CharField("aux2:",max_length=15)
    observaciones2=models.CharField("observaciones2:",max_length=250)

    class Meta:
        ordering = ["id"]
        verbose_name_plural = "Egresos Material"
        verbose_name = "Egreso Material"

    def __str__(self):
        return str(self.id)

class TCajaDebeM(models.Model):#ingreso de dinero por operacion con material
    """caja debe de dinero de material"""
    id = models.AutoField("ID:", primary_key=True)#identificador
    id_personal=models.ForeignKey(Personal,verbose_name="ID Personal", on_delete=models.CASCADE)#idnetificador del personal que realiza el mocimiento
    tablaRelacional=models.CharField("Tabla:",max_length=40)#nombre de la tabla que genera la operacion
    fecha = models.DateTimeField("Fecha:",auto_now=True)#fecha de la operacion
    conceptoDetalle=models.CharField("Detalle:",max_length=250)#descripcion dela operacion
    tipoDocumento=models.CharField("Tipo Documento:",max_length=20)#otros, ingreso
    cantidadDinero=models.DecimalField(max_digits=15,decimal_places=3)
    moneda = models.CharField("Moneda:",max_length=20)#soles dolares
    tipo_cambio= models.DecimalField(max_digits=15,decimal_places=4,default=0)
    observaciones=models.CharField("Observaciones:",max_length=250)#observacion
    estadoTransaccion=models.CharField("Estado Transaccion",max_length=20)#estado
    nroRecibo=models.CharField("Nro. recibo:",max_length=30)
    id_oficina = models.ForeignKey(Oficina,verbose_name='Id:', on_delete=models.CASCADE)#oficina origen, oficina el cual aplica el ingreso
    id_caja = models.ForeignKey(Cajas,verbose_name='Id:', on_delete=models.CASCADE)#caja ala cual se aplica el ingreso
    aux1=models.CharField("aux1:",max_length=60)
    aux2=models.CharField("aux2:",max_length=15)
    observaciones2=models.CharField("observaciones2:",max_length=250)

    class Meta:
        ordering = ["id"]
        verbose_name_plural = "Ingresos Cambio"
        verbose_name = "Ingreso Cambio"

    def __str__(self):
        return str(self.id)

class TCajaHaberM(models.Model):#egreso dinero por operacion con material
    """caja haber dinero de material"""
    id = models.AutoField("ID:", primary_key=True)
    id_personal=models.ForeignKey(Personal,verbose_name="ID Personal", on_delete=models.CASCADE)#personal q realiza el egreso
    tablaRelacional=models.CharField("Tabla:",max_length=40)
    fecha = models.DateTimeField("Fecha:",auto_now=True)
    conceptoDetalle=models.CharField("Detalle:",max_length=250)
    tipoDocumento=models.CharField("Tipo Documento:",max_length=20)
    cantidadDinero=models.DecimalField(max_digits=15,decimal_places=3)
    moneda = models.CharField("Moneda:",max_length=20)
    tipo_cambio= models.DecimalField(max_digits=15,decimal_places=4,default=0)
    observaciones=models.CharField("Observaciones:",max_length=250)
    estadoTransaccion=models.CharField("Estado Transaccion",max_length=20)
    nroRecibo=models.CharField("Nro. recibo:",max_length=30)
    id_oficina = models.ForeignKey(Oficina,verbose_name='Id:', on_delete=models.CASCADE)#id oficina q realiza el egreso
    id_caja = models.ForeignKey(Cajas,verbose_name='Id:', on_delete=models.CASCADE)#id caja q realiza el egreso
    aux1=models.CharField("aux1:",max_length=60)
    aux2=models.CharField("aux2:",max_length=15)#balance
    observaciones2=models.CharField("observaciones2:",max_length=250)

    class Meta:
        ordering = ["id"]
        verbose_name_plural = "Egresos Cambio"
        verbose_name = "Egreso Cambio"

    def __str__(self):
        return str(self.id)