// 
// Copyright 2016 Agencia Estatal de Administración Tibutaria
//
// Licencia con arreglo a la EUPL, Versión 1.1 o -en cuanto
// sean aprobadas por la Comisión Europea- versiones
// posteriores de la EUPL (la «Licencia»);
// Solo podrá usarse esta obra si se respeta la Licencia.
// Puede obtenerse una copia de la Licencia en:
//  
// https://joinup.ec.europa.eu/software/page/eupl
//  
// Salvo cuando lo exija la legislación aplicable o se acuerde
// por escrito, el programa distribuido con arreglo a la
// Licencia se distribuye «TAL CUAL», SIN GARANTÍAS NI CONDICIONES
// DE NINGÚN TIPO, ni expresasni implícitas.
//
// Véase la Licencia en el idioma concreto que rige los permisos y 
// limitaciones que establece la Licencia.
// 

using System;
using System.Collections.Generic;
using System.Text;
using ateneo.utiles;
using minigestor;

namespace gestor.utiles
{
    public class Global
    {
        public static MiniGestor gestor;
        private static ValidaNif valNif = new ValidaNif();
        public static System.Drawing.Color colorApp = System.Drawing.Color.FromArgb(230, 230, 230);

        public static int nz(string s) {
            if (s == null) {
                return 0;
            }
            try {
                return Int32.Parse(s);
            } catch {
                return 0;
            }
        }
        public static DateTime nzt(String s) {
            if (s == null) {
                return Fecha.fechaVacia;
            }
            try {
                return DateTime.Parse(s);
            } catch {
                return Fecha.fechaVacia;
            }
        }

        public static bool nifValido(string nif) {
            return valNif.checkNif(nif);
        }

        internal static int compruebaHoraCalculada(long ahora, long cita) {
            if (cita > ahora) {
                return 0;
            }
            if ((cita + 300000) > ahora) {
                return 1;
            }
            cita += gestor.margenRetraso;
            if (cita > ahora) {
                return 2;
            }
            return 3;
        }

        internal static DateTime calcularHora(int r, DateTime horaCita, long ahoraMismo) {
            switch (r) {
                case 0:
                    return horaCita;
                case 1:
                    return new DateTime(ahoraMismo);
                case 2:
                    return new DateTime(ahoraMismo + gestor.margenPenalizacion);
            }
            return Fecha.fechaVacia;
        }
    }

}
