using fbblTipi;


namespace fbblSchemaAziendale
{
    public class Operai : Malattia,ITelefonoParticolare,IMalattiaParticolare
    {
        private sbyte NumeroTurni;
        private string TipologiaTurni;

        private string TelefonoCellulare = "";
        private sbyte GiorniPreMaternita;
        private int GiorniPostMaternita;

        public Operai(string Nome, string Cognome, string Sesso, string Via, string Numero,
                      string Citta, string Cap, string Provincia, string TelefonoFisso, string CodiceFiscale,
                      string Matricola, string Livello, string Mansione, int Retribuzione,
                      sbyte GiorniDiFerieGoduti, sbyte GiorniDiFerieDovuti, sbyte GiorniPermessiGoduti,
                      int GiorniMalattiaTotali,sbyte NumeroTurni,string TipologiaTurni,
                      sbyte GiorniPreMaternita,int GiorniPostMaternita,string TelefonoCellulare)

            : base(Nome, Cognome, Sesso, Via, Numero, Citta, Cap, Provincia, TelefonoFisso,
                   CodiceFiscale, Matricola, Livello, Mansione, Retribuzione,
                   GiorniDiFerieGoduti, GiorniDiFerieDovuti, GiorniPermessiGoduti, GiorniMalattiaTotali)                 
        {
            this.NumeroTurni = NumeroTurni;
            this.TipologiaTurni = TipologiaTurni;

            set_GiorniPostMaternita(GiorniPostMaternita);
            set_GiorniPreMaternita(GiorniPreMaternita);

            this.TelefonoCellulare = TelefonoCellulare;

        }

        public void set_GiorniPreMaternita(sbyte GiorniPreMaternita)
        {
            string Sesso;

            Sesso = this.get_Sesso();

            if (Sesso.Equals("DONNA") == true)
            {
                this.GiorniPreMaternita = GiorniPreMaternita;
            }
            else
                this.GiorniPreMaternita = -1;

        }

        public void set_GiorniPostMaternita(int GiorniPostMaternita)
        {
            string Sesso;

            Sesso = this.get_Sesso();

            if (Sesso.Equals("DONNA") == true)
            {
                this.GiorniPostMaternita = GiorniPostMaternita;
            }
            else
                this.GiorniPostMaternita = -1;
        }

        public string get_GiorniPreMaternita()
        {
            if (this.GiorniPreMaternita == -1)
            {
                return "L'UOMO NON GODE DI QUESTO BENEFICIO.";
            }
            else
                return this.GiorniPreMaternita.ToString();
        }    
    
        public string get_GiorniPostMaternita()
        {
            if (this.GiorniPostMaternita == -1)
            {
                return "L'UOMO NON GODE DI QUESTO BENEFICIO.";
            }
            else
                return this.GiorniPostMaternita.ToString();
        }

        public string get_TelefonoCellulare()
        {
            if (this.TelefonoCellulare.Equals("") == true)
            {
                this.TelefonoCellulare = "NON E' STATO FORNITO DALL'AZIENDA";
            }
            
            return this.TelefonoCellulare;
        }

        public sbyte get_NumeroTurni()
        {
            return this.NumeroTurni; 
        }

        public string get_TipologiaTurni()
        {
            return this.TipologiaTurni;
        }

        new public Liste stampa()
        {
            Liste MiaLista = base.stampa(); // eseguo la stampa della classe padre Nominativo

            MiaLista.ListaDiStringhe.Add(this.get_NumeroTurni().ToString());
            MiaLista.ListaDiStringhe.Add(this.get_TipologiaTurni());
            MiaLista.ListaDiStringhe.Add(this.get_GiorniPreMaternita());
            MiaLista.ListaDiStringhe.Add(this.get_GiorniPostMaternita());
            MiaLista.ListaDiStringhe.Add(this.get_TelefonoCellulare());

            return MiaLista;
        }
    }
}
