<<<<<<< HEAD
propel:

  setup:
    id: ~
    nombre: { type: CHAR, size: 20 }
    id_item: { type: CHAR, size: 50 }
    descripcion: { type: CHAR, size: 50 }
    valor: { type: CHAR, size: 200 }
    tipo_valor_id: { type: integer, foreignTable: tipo_valor, foreignReference: id, required: true }
    valor_inicial: { type: CHAR, size: 200 }
    maximo: { type: CHAR, size: 200 }
    minimo: { type: CHAR, size: 200 }
    created_at: ~
    updated_at: ~

  equipo:
    id: ~
    modelo_id: { type: INTEGER, foreignTable: modelo, foreignReference: id, onDelete: setnull }
    nombre: { type: VARCHAR, size: '20' }
    numero_telefonico: { type: VARCHAR, size: '30' }
    numero_serie: { type: VARCHAR, size: '20' }
    created_at: ~
    updated_at: ~
    
  tipo_valor:
    id: ~
    nombre: { type: CHAR, size: 50 }
    descripcion: { type: CHAR, size: 200 }
    created_at: ~
    updated_at: ~

  periodo_contable:
    id: ~
    fecha_inicial: { type: DATE }
    fecha_final: { type: DATE }
    descripcion: { type: CHAR, size: 200 }
    cerrado: { type: TINYINT, size: 1, default: 0} #1 - Cerrado
    activo: { type: TINYINT, size: 1, default: 0} #1 - Activo. Solo puede existir uno y solo un periodo activo
    empresa_id: { type: integer, foreignTable: empresa, foreignReference: id, required: true }
    created_at: ~
    updated_at: ~

  extraccion_caja:
    id: ~
    #periodo_contable_id: ~
    fecha: { type: DATE }
    monto: { type: DOUBLE }
    created_at: ~
    updated_at: ~

  cuadre_caja:
    id: ~
    periodo_contable_id: ~
    especialista_id: ~
    empresa_id: ~
    dia: { type: TINYINT, size: 1 }
    monto_sistema: { type: DOUBLE }
    monto_caja: { type: DOUBLE }
    created_at: ~
    updated_at: ~

  tipo_gasto:
    id: ~
    nombre: { type: CHAR, size: 50 }
    descripcion: { type: CHAR, size: 200 }
    empresa_id: { type: integer, foreignTable: empresa, foreignReference: id, required: true }
    fijo: { type: TINYINT, size: 1, default: 0 } #0 - Verdadero, 1 - Falso
    created_at: ~
    updated_at: ~

  gasto_departamento:
    id: ~
    tipo_gasto_id: { type: integer, foreignTable: tipo_gasto, foreignReference: id, required: true }
    especialista_id: { type: integer, foreignTable: especialista, foreignReference: id, required: true }
    descripcion: { type: CHAR, size: 255 }
    cantidad: { type: DOUBLE }
    valor: { type: DOUBLE }
    fecha: { type: DATE }
    periodo_contable_id: { type: integer, foreignTable: periodo_contable, foreignReference: id, required: true }
    created_at: ~
    updated_at: ~

  moneda:
    id: ~
    nombre: { type: CHAR, size: 20 }
    alias: { type: CHAR, size: 5 }
    descripcion: { type: CHAR, size: 20 }
    created_at: ~
    updated_at: ~

  empresa:
    id: ~
    alias: { type: CHAR, size: 50 }
    nombre: { type: CHAR, size: 50 }
    descripcion: { type: CHAR, size: 200 }
    url: { type: CHAR, size: 200, default: 'cliente_servicio' }
    servicio_manual: { type: TINYINT, size: 1, default: 0 }
    venta_dinamica: { type: TINYINT, size: 1, default: 0 }
    created_at: ~
    updated_at: ~

  descuento_especialista:
    id: ~
    especialista_id: ~
    periodo_contable_id: { type: integer, foreignTable: periodo_contable, foreignReference: id, required: true }
    cantidad: { type: DOUBLE }
    descripcion: { type: CHAR, size: 200 }
    created_at: ~
    updated_at: ~

#  :
#    id: ~
#    empresa_id: { type: integer, foreignTable: empresa, foreignReference: id, required: true, onDelete: cascade }
#    : { type:  }
#    descripcion: { type: CHAR, size: 200 }
#    created_at: ~
#    updated_at: ~

  servicio:
    id: ~
    empresa_id: { type: integer, foreignTable: empresa, foreignReference: id, required: true, onDelete: cascade }
    cliente_id: { type: integer, foreignTable: cliente, foreignReference: id, required: true, onDelete: cascade }
    especialista_id: { type: integer, foreignTable: especialista, foreignReference: id, required: true, onDelete: cascade }
    diagnostico_id: { type: integer, foreignTable: diagnostico, foreignReference: id, required: true }
    modelo_equipo_id: { type: integer, foreignTable: modelo, foreignReference: id, required: true }
    periodo_contable_id: { type: integer, foreignTable: periodo_contable, foreignReference: id, required: true }
    fecha: { type: DATE }
    descripcion: { type: VARCHAR, size: 200 }
    mano_obra: { type: TINYINT, size: 1 }
    garantia: { type: TINYINT, size: 2 }
    precio_manual: { type: TINYINT, size: 3 }
    porciento_pago: {type: TINYINT, default: 10}
    pagado: { type: TINYINT, size: 1 }
    created_at: ~
    updated_at: ~

  opciones_servicio_manual:
    id: ~
    servicio_id: { type: integer, foreignTable: servicio, foreignReference: id, required: true }
    value: { type: VARCHAR, size: 50 }
    venta: { type: DOUBLE }
    garantia: { type: TINYINT, size: 1, default: 0 } ####Tabla setup variable: garantia -|- valor: 0|1|3|7|15|21|30|60|90
    moneda: { type: TINYINT, size: 1, default: 0 } ###0 - CUC || 1 - MN
    
  devolucion_servicio_periodo:
    id: ~
    periodo_contable_id: { type: integer, foreignTable: periodo_contable, foreignReference: id, required: true }
    servicio_id: { type: integer, foreignTable: servicio, foreignReference: id, required: true }
    especialista_id: { type: integer, foreignTable: especialista, foreignReference: id, required: true, onDelete: cascade }
    gasto_id: { type: integer, foreignTable: gasto_departamento, foreignReference: id, required: true, onDelete: cascade }
    parcial: { type: TINYINT, size: 1 } ###1 - NO || -1 - SI
    descripcion: { type: CHAR, size: 200 }
    fecha: { type: DATE }
    created_at: ~
    updated_at: ~

  modelo_servicio:
    id: ~
    servicio_id: { type: integer, foreignTable: servicio, foreignReference: id, required: true, onDelete: cascade }
    modelo_id: { type: integer, foreignTable: modelo, foreignReference: id, required: true, onDelete: cascade }
    otros_datos: { type: CHAR, size: 200 }
    costo: { type: DOUBLE }
    venta: { type: DOUBLE }
    moneda: { type: TINYINT, size: 1, default: 0 } ###0 - CUC || 1 - MN
    descuento: { type: DOUBLE }
    plus: { type: DOUBLE }
    cantidad: { type: DOUBLE, default: 0 }
    mp_id: { type: CHAR, size: 50 }
    devolucion: { type: TINYINT, size: 1 } ###1 - NO || -1 - SI
    costo_producto: {type: TINYINT, size: 1, default: 0} ###El valor de este campo es 1 si es, 0 NO es
    created_at: ~
    updated_at: ~

  concepto:
    id: ~
    empresa_id: { type: integer, foreignTable: empresa, foreignReference: id, required: true, onDelete: cascade }
    nombre: { type: CHAR, size: 50 }
    descripcion: { type: CHAR, size: 200 }
    created_at: ~
    updated_at: ~

  diagnostico:
    id: ~
    empresa_id: { type: integer, foreignTable: empresa, foreignReference: id, required: true, onDelete: cascade }
    nombre: { type: CHAR, size: 50 }
    descripcion: { type: CHAR, size: 200 }
    created_at: ~
    updated_at: ~

  concepto_gasto:
    id: ~
    empresa_id: { type: integer, foreignTable: empresa, foreignReference: id, required: true, onDelete: cascade }
    nombre: { type: CHAR, size: 50 }
    descripcion: { type: CHAR, size: 200 }
    created_at: ~
    updated_at: ~

  gasto:
    cuenta_id: { type: integer, foreignTable: cuenta, foreignReference: id, required: true }
    especialista_id: { type: integer, foreignTable: especialista, foreignReference: id, required: true }
    concepto_gasto_id: { type: integer, foreignTable: concepto_gasto, foreignReference: id, required: true }
    fecha: {type: DATE}
    valor: {type: DOUBLE}

  ingreso:
    cuenta_id: { type: integer, foreignTable: cuenta, foreignReference: id, required: true }
    servicio_id: { type: integer, foreignTable: servicio, foreignReference: id, required: true }
    fecha: {type: DATE}
    valor: {type: DOUBLE}

  cuenta:
    id: ~
    empresa_id: { type: integer, foreignTable: empresa, foreignReference: id, required: true }
    concepto_id: { type: integer, foreignTable: concepto, foreignReference: id, required: true }
    moneda_id: { type: integer, foreignTable: moneda, foreignReference: id, required: true }
    nombre: { type: CHAR, size: 50 }
    descripcion: { type: CHAR, size: 200 }
    created_at: ~
    updated_at: ~

  estado_cuenta:
    id: ~
    cuenta_id: { type: integer, foreignTable: cuenta, foreignReference: id, required: true, onDelete: cascade }
    valor_inicial: { type: DOUBLE }
    valor_final: { type: DOUBLE }
    descripcion: { type: CHAR, size: 200 }
    fecha: { type: DATE }
    created_at: ~
    updated_at: ~

  tipo_especialista:
    id: ~
    nombre: { type: CHAR, size: 50 }
    descripcion: { type: CHAR, size: 200 }
    created_at: ~
    updated_at: ~

  especialista:
    id: ~
    user_id: { type: integer, foreignTable: sf_guard_user, foreignReference: id, required: true, onDelete: cascade }
    tipo_especialista_id: { type: integer, foreignTable: tipo_especialista, foreignReference: id, required: true }
    nombre: {type: VARCHAR, size: '255', required: true, default: ''}
    apellidos: {type: VARCHAR, size: '255', required: true, default: ''}
    porciento_pago: {type: TINYINT, default: 0} ###El valor de este campo estara entre 0 y 100
    escala_pago: {type: TINYINT, default: 0} ### Si el valor es distinto de 0 se aplica la escala de pago correspondiente
    porciento_pago_accesorio: {type: TINYINT, default: 0} ###El valor de este campo estara entre 0 y 100
    created_at: ~
    updated_at: ~

  especialista_empresa:
    id: ~
    especialista_id: { type: integer, foreignTable: especialista, foreignReference: id, required: true, onDelete: cascade }
    empresa_id: { type: integer, foreignTable: empresa, foreignReference: id, required: true, onDelete: cascade }
    porciento_pago: {type: TINYINT, default: 0} ###El valor de este campo estara entre 0 y 100
    created_at: ~
    updated_at: ~
    
  escala_pago:
    id: ~
    minimo: { type: DOUBLE }
    maximo: { type: DOUBLE }
    porciento_pago: {type: TINYINT, default: 0} ###El valor de este campo estara entre 0 y 100

  equipo:
    id: ~
    modelo_id: { type: INTEGER, foreignTable: modelo, foreignReference: id, onDelete: setnull }
    nombre: { type: VARCHAR, size: '20' }
    numero_telefonico: { type: VARCHAR, size: '30' }
    numero_serie: { type: VARCHAR, size: '20' }
    created_at: ~
    updated_at: ~

  cliente:
    id: ~
    empresa_id: { type: integer, foreignTable: empresa, foreignReference: id, required: true, onDelete: cascade }
    numero: { type: INTEGER }
    nombre: { type: VARCHAR, size: '60' }
    c_i: { type: VARCHAR, size: '11' }
    email: { type: VARCHAR, size: '50' }
    telefono_contacto1: { type: VARCHAR, size: '20' }
    telefono_contacto2: { type: VARCHAR, size: '20' }
    telefono_contacto3: { type: VARCHAR, size: '20' }
    equipo: { type: VARCHAR, size: 50 }
    modelo: { type: VARCHAR, size: 50 }
    imei: { type: VARCHAR, size: 20 }
    imei_etiqueta: { type: VARCHAR, size: 20 }
    valor: { type: DOUBLE }
    garantia_desde: { type: DATE }
    garantia_hasta: { type: DATE }
    created_at: ~
    updated_at: ~

  tipo_modelo:
    id: ~
    nombre: { type: VARCHAR, size: '20', required: true, index: unique }
    created_at: ~
    updated_at: ~

  marca:
    id: ~
    empresa_id: { type: integer, foreignTable: empresa, foreignReference: id, required: true }
    nombre: { type: VARCHAR, size: '20' }
    orden_visual: { type: INTEGER }
    deleted_at: { type: TINYINT, size: 1, default: 0 } #1: Eliminado
    tipo: { type: TINYINT, size: 1, default: 0 } #0: Inventario, 1: fuera de inventario(Servicio)
    porciento_pago: {type: TINYINT, size: 1, default: 0} ###El valor de este campo estara entre 0 y 100
    created_at: ~
    updated_at: ~

  producto:
    id: ~
    empresa_id: { type: integer, foreignTable: empresa, foreignReference: id, required: true }
    nombre: { type: VARCHAR, size: '20' }
    estilo: { type: VARCHAR, size: '10' }
    orden_visual: { type: INTEGER }
    deleted_at: { type: TINYINT, size: 1, default: 0 } #1: Eliminado
    porciento_pago: {type: TINYINT, size: 1, default: 0} ###El valor de este campo estara entre 0 y 100
    es_accesorio: {type: TINYINT, size: 1, default: 0} ###El valor de este campo es 1 si es, 0 NO es
    tipo: { type: TINYINT, size: 1, default: 0 } #0: Inventario, 1: fuera de inventario(Servicio)
    created_at: ~
    updated_at: ~

  modelo:
    id: ~
    marca_id: { type: INTEGER, foreignTable: marca, foreignReference: id, onDelete: cascade }
    producto_id: { type: INTEGER, foreignTable: producto, foreignReference: id, onDelete: cascade }
    tipo_modelo_id: { type: INTEGER, foreignTable: tipo_modelo, foreignReference: id, onDelete: setnull }
    nombre: { type: VARCHAR, size: '200' }
    code_bar: { type: VARCHAR, size: '12', index: 'index' }
    punto_pedido: { type: INTEGER }
    precio: { type: DOUBLE }
    precio_publico: { type: DOUBLE, default: 0 }
    compatible_con: { type: LONGVARCHAR }
    en_falta: { type: TINYINT, size: 1, default: 0 } #0: En existencia, 1: Falta
    lista_top: { type: TINYINT, size: 1, default: 0 } #Distinto de cero da el orden de la lista TOP 
    deleted_at: { type: TINYINT, size: 1, default: 0 } #1: Eliminado
    porciento_pago: {type: TINYINT, size: 1, default: 0} ###El valor de este campo estara entre 0 y 100
    mano_obra: {type: TINYINT, size: 1, default: 0} ###El valor de este campo estara entre 0 y 100
    pantalla: { type: VARCHAR, size: '40' }
    flash: { type: VARCHAR, size: '40' }
    camaraf: { type: VARCHAR, size: '40' }
    camarat: { type: VARCHAR, size: '40' }
    huella: { type: VARCHAR, size: '40' }
    facial: { type: VARCHAR, size: '40' }
    dialsim: { type: VARCHAR, size: '40' }
    micro: { type: VARCHAR, size: '40' }
    memoria: { type: VARCHAR, size: '40' }
    capacidad: { type: VARCHAR, size: '40' }
    tarjeta: { type: VARCHAR, size: '40' }
    tipo: { type: TINYINT, size: 1, default: 0 } #0: Inventario, 1: fuera de inventario(Servicio)
    created_at: ~
    updated_at: ~

  foto_modelo:
    id: ~
    nombre: { type: VARCHAR, size: '200' }
    equipo: { type: VARCHAR, size: '200' }
    modelo_id: { type: INTEGER, foreignTable: modelo, foreignReference: id, onDelete: cascade }
    created_at: ~
    updated_at: ~

  compatibilidad:
    id: ~
    nodo_id: { type: INTEGER }
    modelo_id: { type: INTEGER }
    created_at: ~
    updated_at: ~
    
  modelo_temp:
    id: ~
    marca_id: { type: INTEGER, foreignTable: marca, foreignReference: id, onDelete: cascade }
    producto_id: { type: INTEGER, foreignTable: producto, foreignReference: id, onDelete: cascade }
    nombre: { type: VARCHAR, size: '20' }
    precio: { type: DOUBLE }
    created_at: ~
    updated_at: ~

  inventario:
    id: ~
    concepto: { type: TINYINT, size: 1, default: 1 } #1: entrada, 2: reparacion, 3: venta
    tipo: { type: TINYINT, size: 1, default: 1 } #1: entrada, -1: salida
    fecha: { type: DATE }
    descripcion: { type: VARCHAR, size: '255' }
    created_at: ~
    updated_at: ~

  movimiento_inventario:
    id: ~
    inventario_id: { type: INTEGER, foreignTable: inventario, foreignReference: id, onDelete: cascade}
    modelo_id: { type: INTEGER, foreignTable: modelo, foreignReference: id, onDelete: cascade}
    precio: { type: DOUBLE }
    costo: { type: DOUBLE }
    cantidad: { type: INTEGER }
    origen: { type: INTEGER }
    destino: { type: INTEGER }
    created_at: ~
    updated_at: ~

  entrada:
    id: ~
    cliente_id: { type: INTEGER, foreignTable: cliente, foreignReference: id, onDelete: setnull }
    equipo_id: { type: INTEGER, foreignTable: equipo, foreignReference: id, onDelete: setnull }
    empresa_id: { type: integer, foreignTable: empresa, foreignReference: id, required: true, onDelete: cascade }
    fecha: { type: DATE }
    defectacion: { type: LONGVARCHAR }
    despachado: { type: TINYINT, default: 0 }
    devolucion: { type: TINYINT, default: 0 }
    created_at: ~
    updated_at: ~

  salida:
    id: ~
    empresa_id: { type: integer, foreignTable: empresa, foreignReference: id, required: true, onDelete: cascade }
    entrada_id: { type: INTEGER, foreignTable: entrada, foreignReference: id, onDelete: setnull }
    fecha: { type: DATE }
    fecha_solucion: { type: DATE }
    motivo_no_solucion: { type: LONGVARCHAR }
    precio: { type: DOUBLE }
    garantia: { type: INTEGER }
    created_at: ~
    updated_at: ~

  devolucion:
    id: ~
    empresa_id: { type: integer, foreignTable: empresa, foreignReference: id, required: true, onDelete: cascade }
    entrada_id: { type: INTEGER, foreignTable: entrada, foreignReference: id, onDelete: setnull }
    fecha: { type: DATE }
    defectacion: { type: LONGVARCHAR }

  salida_devolucion:
    id: ~
    empresa_id: { type: integer, foreignTable: empresa, foreignReference: id, required: true, onDelete: cascade }
    devolucion_id: { type: INTEGER, foreignTable: devolucion, foreignReference: id, onDelete: setnull }
    fecha: { type: DATE }
    fecha_solucion: { type: DATE }
    motivo_no_solucion: { type: LONGVARCHAR }
    precio: { type: DOUBLE }
    garantia: { type: INTEGER }
    created_at: ~
    updated_at: ~


=======
propel:

  setup:
    id: ~
    nombre: { type: CHAR, size: 20 }
    id_item: { type: CHAR, size: 50 }
    descripcion: { type: CHAR, size: 50 }
    valor: { type: CHAR, size: 200 }
    tipo_valor_id: { type: integer, foreignTable: tipo_valor, foreignReference: id, required: true }
    valor_inicial: { type: CHAR, size: 200 }
    maximo: { type: CHAR, size: 200 }
    minimo: { type: CHAR, size: 200 }
    created_at: ~
    updated_at: ~

  equipo:
    id: ~
    modelo_id: { type: INTEGER, foreignTable: modelo, foreignReference: id, onDelete: setnull }
    nombre: { type: VARCHAR, size: '20' }
    numero_telefonico: { type: VARCHAR, size: '30' }
    numero_serie: { type: VARCHAR, size: '20' }
    created_at: ~
    updated_at: ~
    
  tipo_valor:
    id: ~
    nombre: { type: CHAR, size: 50 }
    descripcion: { type: CHAR, size: 200 }
    created_at: ~
    updated_at: ~

  periodo_contable:
    id: ~
    fecha_inicial: { type: DATE }
    fecha_final: { type: DATE }
    descripcion: { type: CHAR, size: 200 }
    cerrado: { type: TINYINT, size: 1, default: 0} #1 - Cerrado
    activo: { type: TINYINT, size: 1, default: 0} #1 - Activo. Solo puede existir uno y solo un periodo activo
    empresa_id: { type: integer, foreignTable: empresa, foreignReference: id, required: true }
    created_at: ~
    updated_at: ~

  extraccion_caja:
    id: ~
    #periodo_contable_id: ~
    fecha: { type: DATE }
    monto: { type: DOUBLE }
    created_at: ~
    updated_at: ~

  cuadre_caja:
    id: ~
    periodo_contable_id: ~
    especialista_id: ~
    empresa_id: ~
    dia: { type: TINYINT, size: 1 }
    monto_sistema: { type: DOUBLE }
    monto_caja: { type: DOUBLE }
    created_at: ~
    updated_at: ~

  tipo_gasto:
    id: ~
    nombre: { type: CHAR, size: 50 }
    descripcion: { type: CHAR, size: 200 }
    empresa_id: { type: integer, foreignTable: empresa, foreignReference: id, required: true }
    fijo: { type: TINYINT, size: 1, default: 0 } #0 - Verdadero, 1 - Falso
    created_at: ~
    updated_at: ~

  gasto_departamento:
    id: ~
    tipo_gasto_id: { type: integer, foreignTable: tipo_gasto, foreignReference: id, required: true }
    especialista_id: { type: integer, foreignTable: especialista, foreignReference: id, required: true }
    descripcion: { type: CHAR, size: 255 }
    cantidad: { type: DOUBLE }
    valor: { type: DOUBLE }
    fecha: { type: DATE }
    periodo_contable_id: { type: integer, foreignTable: periodo_contable, foreignReference: id, required: true }
    created_at: ~
    updated_at: ~

  moneda:
    id: ~
    nombre: { type: CHAR, size: 20 }
    alias: { type: CHAR, size: 5 }
    descripcion: { type: CHAR, size: 20 }
    created_at: ~
    updated_at: ~

  empresa:
    id: ~
    alias: { type: CHAR, size: 50 }
    nombre: { type: CHAR, size: 50 }
    descripcion: { type: CHAR, size: 200 }
    url: { type: CHAR, size: 200, default: 'cliente_servicio' }
    servicio_manual: { type: TINYINT, size: 1, default: 0 }
    venta_dinamica: { type: TINYINT, size: 1, default: 0 }
    created_at: ~
    updated_at: ~

  descuento_especialista:
    id: ~
    especialista_id: ~
    periodo_contable_id: { type: integer, foreignTable: periodo_contable, foreignReference: id, required: true }
    cantidad: { type: DOUBLE }
    descripcion: { type: CHAR, size: 200 }
    created_at: ~
    updated_at: ~

#  :
#    id: ~
#    empresa_id: { type: integer, foreignTable: empresa, foreignReference: id, required: true, onDelete: cascade }
#    : { type:  }
#    descripcion: { type: CHAR, size: 200 }
#    created_at: ~
#    updated_at: ~

  servicio:
    id: ~
    empresa_id: { type: integer, foreignTable: empresa, foreignReference: id, required: true, onDelete: cascade }
    cliente_id: { type: integer, foreignTable: cliente, foreignReference: id, required: true, onDelete: cascade }
    especialista_id: { type: integer, foreignTable: especialista, foreignReference: id, required: true, onDelete: cascade }
    diagnostico_id: { type: integer, foreignTable: diagnostico, foreignReference: id, required: true }
    modelo_equipo_id: { type: integer, foreignTable: modelo, foreignReference: id, required: true }
    periodo_contable_id: { type: integer, foreignTable: periodo_contable, foreignReference: id, required: true }
    fecha: { type: DATE }
    descripcion: { type: VARCHAR, size: 200 }
    mano_obra: { type: TINYINT, size: 1 }
    garantia: { type: TINYINT, size: 2 }
    precio_manual: { type: TINYINT, size: 3 }
    porciento_pago: {type: TINYINT, default: 10}
    pagado: { type: TINYINT, size: 1 }
    created_at: ~
    updated_at: ~

  opciones_servicio_manual:
    id: ~
    servicio_id: { type: integer, foreignTable: servicio, foreignReference: id, required: true }
    value: { type: VARCHAR, size: 50 }
    venta: { type: DOUBLE }
    garantia: { type: TINYINT, size: 1, default: 0 } ####Tabla setup variable: garantia -|- valor: 0|1|3|7|15|21|30|60|90
    moneda: { type: TINYINT, size: 1, default: 0 } ###0 - CUC || 1 - MN
    
  devolucion_servicio_periodo:
    id: ~
    periodo_contable_id: { type: integer, foreignTable: periodo_contable, foreignReference: id, required: true }
    servicio_id: { type: integer, foreignTable: servicio, foreignReference: id, required: true }
    especialista_id: { type: integer, foreignTable: especialista, foreignReference: id, required: true, onDelete: cascade }
    gasto_id: { type: integer, foreignTable: gasto_departamento, foreignReference: id, required: true, onDelete: cascade }
    parcial: { type: TINYINT, size: 1 } ###1 - NO || -1 - SI
    descripcion: { type: CHAR, size: 200 }
    fecha: { type: DATE }
    created_at: ~
    updated_at: ~

  modelo_servicio:
    id: ~
    servicio_id: { type: integer, foreignTable: servicio, foreignReference: id, required: true, onDelete: cascade }
    modelo_id: { type: integer, foreignTable: modelo, foreignReference: id, required: true, onDelete: cascade }
    otros_datos: { type: CHAR, size: 200 }
    costo: { type: DOUBLE }
    venta: { type: DOUBLE }
    moneda: { type: TINYINT, size: 1, default: 0 } ###0 - CUC || 1 - MN
    descuento: { type: DOUBLE }
    plus: { type: DOUBLE }
    cantidad: { type: DOUBLE, default: 0 }
    mp_id: { type: CHAR, size: 50 }
    devolucion: { type: TINYINT, size: 1 } ###1 - NO || -1 - SI
    costo_producto: {type: TINYINT, size: 1, default: 0} ###El valor de este campo es 1 si es, 0 NO es
    created_at: ~
    updated_at: ~

  concepto:
    id: ~
    empresa_id: { type: integer, foreignTable: empresa, foreignReference: id, required: true, onDelete: cascade }
    nombre: { type: CHAR, size: 50 }
    descripcion: { type: CHAR, size: 200 }
    created_at: ~
    updated_at: ~

  diagnostico:
    id: ~
    empresa_id: { type: integer, foreignTable: empresa, foreignReference: id, required: true, onDelete: cascade }
    nombre: { type: CHAR, size: 50 }
    descripcion: { type: CHAR, size: 200 }
    created_at: ~
    updated_at: ~

  concepto_gasto:
    id: ~
    empresa_id: { type: integer, foreignTable: empresa, foreignReference: id, required: true, onDelete: cascade }
    nombre: { type: CHAR, size: 50 }
    descripcion: { type: CHAR, size: 200 }
    created_at: ~
    updated_at: ~

  gasto:
    cuenta_id: { type: integer, foreignTable: cuenta, foreignReference: id, required: true }
    especialista_id: { type: integer, foreignTable: especialista, foreignReference: id, required: true }
    concepto_gasto_id: { type: integer, foreignTable: concepto_gasto, foreignReference: id, required: true }
    fecha: {type: DATE}
    valor: {type: DOUBLE}

  ingreso:
    cuenta_id: { type: integer, foreignTable: cuenta, foreignReference: id, required: true }
    servicio_id: { type: integer, foreignTable: servicio, foreignReference: id, required: true }
    fecha: {type: DATE}
    valor: {type: DOUBLE}

  cuenta:
    id: ~
    empresa_id: { type: integer, foreignTable: empresa, foreignReference: id, required: true }
    concepto_id: { type: integer, foreignTable: concepto, foreignReference: id, required: true }
    moneda_id: { type: integer, foreignTable: moneda, foreignReference: id, required: true }
    nombre: { type: CHAR, size: 50 }
    descripcion: { type: CHAR, size: 200 }
    created_at: ~
    updated_at: ~

  estado_cuenta:
    id: ~
    cuenta_id: { type: integer, foreignTable: cuenta, foreignReference: id, required: true, onDelete: cascade }
    valor_inicial: { type: DOUBLE }
    valor_final: { type: DOUBLE }
    descripcion: { type: CHAR, size: 200 }
    fecha: { type: DATE }
    created_at: ~
    updated_at: ~

  tipo_especialista:
    id: ~
    nombre: { type: CHAR, size: 50 }
    descripcion: { type: CHAR, size: 200 }
    created_at: ~
    updated_at: ~

  especialista:
    id: ~
    user_id: { type: integer, foreignTable: sf_guard_user, foreignReference: id, required: true, onDelete: cascade }
    tipo_especialista_id: { type: integer, foreignTable: tipo_especialista, foreignReference: id, required: true }
    nombre: {type: VARCHAR, size: '255', required: true, default: ''}
    apellidos: {type: VARCHAR, size: '255', required: true, default: ''}
    porciento_pago: {type: TINYINT, default: 0} ###El valor de este campo estara entre 0 y 100
    escala_pago: {type: TINYINT, default: 0} ### Si el valor es distinto de 0 se aplica la escala de pago correspondiente
    porciento_pago_accesorio: {type: TINYINT, default: 0} ###El valor de este campo estara entre 0 y 100
    created_at: ~
    updated_at: ~

  especialista_empresa:
    id: ~
    especialista_id: { type: integer, foreignTable: especialista, foreignReference: id, required: true, onDelete: cascade }
    empresa_id: { type: integer, foreignTable: empresa, foreignReference: id, required: true, onDelete: cascade }
    porciento_pago: {type: TINYINT, default: 0} ###El valor de este campo estara entre 0 y 100
    created_at: ~
    updated_at: ~
    
  escala_pago:
    id: ~
    minimo: { type: DOUBLE }
    maximo: { type: DOUBLE }
    porciento_pago: {type: TINYINT, default: 0} ###El valor de este campo estara entre 0 y 100

  equipo:
    id: ~
    modelo_id: { type: INTEGER, foreignTable: modelo, foreignReference: id, onDelete: setnull }
    nombre: { type: VARCHAR, size: '20' }
    numero_telefonico: { type: VARCHAR, size: '30' }
    numero_serie: { type: VARCHAR, size: '20' }
    created_at: ~
    updated_at: ~

  cliente:
    id: ~
    empresa_id: { type: integer, foreignTable: empresa, foreignReference: id, required: true, onDelete: cascade }
    numero: { type: INTEGER }
    nombre: { type: VARCHAR, size: '60' }
    c_i: { type: VARCHAR, size: '11' }
    email: { type: VARCHAR, size: '50' }
    telefono_contacto1: { type: VARCHAR, size: '20' }
    telefono_contacto2: { type: VARCHAR, size: '20' }
    telefono_contacto3: { type: VARCHAR, size: '20' }
    equipo: { type: VARCHAR, size: 50 }
    modelo: { type: VARCHAR, size: 50 }
    imei: { type: VARCHAR, size: 20 }
    imei_etiqueta: { type: VARCHAR, size: 20 }
    valor: { type: DOUBLE }
    garantia_desde: { type: DATE }
    garantia_hasta: { type: DATE }
    created_at: ~
    updated_at: ~

  tipo_modelo:
    id: ~
    nombre: { type: VARCHAR, size: '20', required: true, index: unique }
    created_at: ~
    updated_at: ~

  marca:
    id: ~
    empresa_id: { type: integer, foreignTable: empresa, foreignReference: id, required: true }
    nombre: { type: VARCHAR, size: '20' }
    orden_visual: { type: INTEGER }
    deleted_at: { type: TINYINT, size: 1, default: 0 } #1: Eliminado
    tipo: { type: TINYINT, size: 1, default: 0 } #0: Inventario, 1: fuera de inventario(Servicio)
    porciento_pago: {type: TINYINT, size: 1, default: 0} ###El valor de este campo estara entre 0 y 100
    created_at: ~
    updated_at: ~

  producto:
    id: ~
    empresa_id: { type: integer, foreignTable: empresa, foreignReference: id, required: true }
    nombre: { type: VARCHAR, size: '20' }
    estilo: { type: VARCHAR, size: '10' }
    orden_visual: { type: INTEGER }
    deleted_at: { type: TINYINT, size: 1, default: 0 } #1: Eliminado
    porciento_pago: {type: TINYINT, size: 1, default: 0} ###El valor de este campo estara entre 0 y 100
    es_accesorio: {type: TINYINT, size: 1, default: 0} ###El valor de este campo es 1 si es, 0 NO es
    tipo: { type: TINYINT, size: 1, default: 0 } #0: Inventario, 1: fuera de inventario(Servicio)
    created_at: ~
    updated_at: ~

  modelo:
    id: ~
    marca_id: { type: INTEGER, foreignTable: marca, foreignReference: id, onDelete: cascade }
    producto_id: { type: INTEGER, foreignTable: producto, foreignReference: id, onDelete: cascade }
    tipo_modelo_id: { type: INTEGER, foreignTable: tipo_modelo, foreignReference: id, onDelete: setnull }
    nombre: { type: VARCHAR, size: '200' }
    code_bar: { type: VARCHAR, size: '12', index: 'index' }
    punto_pedido: { type: INTEGER }
    precio: { type: DOUBLE }
    precio_publico: { type: DOUBLE, default: 0 }
    compatible_con: { type: LONGVARCHAR }
    en_falta: { type: TINYINT, size: 1, default: 0 } #0: En existencia, 1: Falta
    lista_top: { type: TINYINT, size: 1, default: 0 } #Distinto de cero da el orden de la lista TOP 
    deleted_at: { type: TINYINT, size: 1, default: 0 } #1: Eliminado
    porciento_pago: {type: TINYINT, size: 1, default: 0} ###El valor de este campo estara entre 0 y 100
    mano_obra: {type: TINYINT, size: 1, default: 0} ###El valor de este campo estara entre 0 y 100
    pantalla: { type: VARCHAR, size: '40' }
    flash: { type: VARCHAR, size: '40' }
    camaraf: { type: VARCHAR, size: '40' }
    camarat: { type: VARCHAR, size: '40' }
    huella: { type: VARCHAR, size: '40' }
    facial: { type: VARCHAR, size: '40' }
    dialsim: { type: VARCHAR, size: '40' }
    micro: { type: VARCHAR, size: '40' }
    memoria: { type: VARCHAR, size: '40' }
    capacidad: { type: VARCHAR, size: '40' }
    tarjeta: { type: VARCHAR, size: '40' }
    tipo: { type: TINYINT, size: 1, default: 0 } #0: Inventario, 1: fuera de inventario(Servicio)
    created_at: ~
    updated_at: ~

  foto_modelo:
    id: ~
    nombre: { type: VARCHAR, size: '200' }
    equipo: { type: VARCHAR, size: '200' }
    modelo_id: { type: INTEGER, foreignTable: modelo, foreignReference: id, onDelete: cascade }
    created_at: ~
    updated_at: ~

  compatibilidad:
    id: ~
    nodo_id: { type: INTEGER }
    modelo_id: { type: INTEGER }
    created_at: ~
    updated_at: ~
    
  modelo_temp:
    id: ~
    marca_id: { type: INTEGER, foreignTable: marca, foreignReference: id, onDelete: cascade }
    producto_id: { type: INTEGER, foreignTable: producto, foreignReference: id, onDelete: cascade }
    nombre: { type: VARCHAR, size: '20' }
    precio: { type: DOUBLE }
    created_at: ~
    updated_at: ~

  inventario:
    id: ~
    concepto: { type: TINYINT, size: 1, default: 1 } #1: entrada, 2: reparacion, 3: venta
    tipo: { type: TINYINT, size: 1, default: 1 } #1: entrada, -1: salida
    fecha: { type: DATE }
    descripcion: { type: VARCHAR, size: '255' }
    created_at: ~
    updated_at: ~

  movimiento_inventario:
    id: ~
    inventario_id: { type: INTEGER, foreignTable: inventario, foreignReference: id, onDelete: cascade}
    modelo_id: { type: INTEGER, foreignTable: modelo, foreignReference: id, onDelete: cascade}
    precio: { type: DOUBLE }
    costo: { type: DOUBLE }
    cantidad: { type: INTEGER }
    origen: { type: INTEGER }
    destino: { type: INTEGER }
    created_at: ~
    updated_at: ~

  entrada:
    id: ~
    cliente_id: { type: INTEGER, foreignTable: cliente, foreignReference: id, onDelete: setnull }
    equipo_id: { type: INTEGER, foreignTable: equipo, foreignReference: id, onDelete: setnull }
    empresa_id: { type: integer, foreignTable: empresa, foreignReference: id, required: true, onDelete: cascade }
    fecha: { type: DATE }
    defectacion: { type: LONGVARCHAR }
    despachado: { type: TINYINT, default: 0 }
    devolucion: { type: TINYINT, default: 0 }
    created_at: ~
    updated_at: ~

  salida:
    id: ~
    empresa_id: { type: integer, foreignTable: empresa, foreignReference: id, required: true, onDelete: cascade }
    entrada_id: { type: INTEGER, foreignTable: entrada, foreignReference: id, onDelete: setnull }
    fecha: { type: DATE }
    fecha_solucion: { type: DATE }
    motivo_no_solucion: { type: LONGVARCHAR }
    precio: { type: DOUBLE }
    garantia: { type: INTEGER }
    created_at: ~
    updated_at: ~

  devolucion:
    id: ~
    empresa_id: { type: integer, foreignTable: empresa, foreignReference: id, required: true, onDelete: cascade }
    entrada_id: { type: INTEGER, foreignTable: entrada, foreignReference: id, onDelete: setnull }
    fecha: { type: DATE }
    defectacion: { type: LONGVARCHAR }

  salida_devolucion:
    id: ~
    empresa_id: { type: integer, foreignTable: empresa, foreignReference: id, required: true, onDelete: cascade }
    devolucion_id: { type: INTEGER, foreignTable: devolucion, foreignReference: id, onDelete: setnull }
    fecha: { type: DATE }
    fecha_solucion: { type: DATE }
    motivo_no_solucion: { type: LONGVARCHAR }
    precio: { type: DOUBLE }
    garantia: { type: INTEGER }
    created_at: ~
    updated_at: ~


>>>>>>> b2082f0e0fe3166246487d0e0b46c5a3f059b54b
