// 
// 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.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace operador
{
    public partial class FormAvisoCitaLarga : Form
    {
        Principal principal;
        DateTime final;
        int segundosMaximo = 120;  // 2 minutos

        public FormAvisoCitaLarga(Principal _principal) {
            principal = _principal;
            InitializeComponent();
        }

        private void FormAvisoCitaLarga_Shown(object sender, EventArgs e) {
            TimeSpan transcurrido = DateTime.Now - principal.clienteActual.horaInicio;
            label1.Text = string.Format("Han trascurrido {0} minutos desde que comenzó la cita actual.\n" +
                "Si esto es normal pulse aceptar", (int)transcurrido.TotalMinutes);
            final = DateTime.Now.AddSeconds(segundosMaximo);
            ponerReloj();
            timer1.Start();
        }

        void ponerReloj() {
            DateTime ahora = DateTime.Now;
            TimeSpan transcurrido = final - ahora;
            lbReloj.Text = string.Format("{0:00}:{1:00}", transcurrido.Minutes, transcurrido.Seconds);
        }

        private void timer1_Tick(object sender, EventArgs e) {
            ponerReloj();
            if (DateTime.Now > final) {
                cerrar(true);
            }
        }

        private void button1_Click(object sender, EventArgs e) {
            cerrar(false);
        }

        protected void cerrar(bool conMensaje) {
            timer1.Stop();
            principal.fichaAvisoCitaLargaCerrada(conMensaje);
            this.Close();
        }

        private void FormAvisoCitaLarga_FormClosing(object sender, FormClosingEventArgs e) {
            if (e.CloseReason == CloseReason.UserClosing && timer1.Enabled) {
                principal.fichaAvisoCitaLargaCerrada(false);
            }
        }
    }
}
