/*
 * Copyright (C) 2025 ctecinf.com.br
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 *
 * @author Cássio Conceição
 * @since 04/05/2025
 * @version 2505
 * @see http://ctecinf.com.br/
 *
 */

package br.inf.portalfiscal.nfe;

/**
 * Grupo de informações de totais da CBS/IBS com monofasia
 */
public class TIBSCBSMonoTot extends SimpleXML {

    @SimpleXML.Name("vBCIBSCBS")
    protected String vBCIBSCBS;

    @SimpleXML.Name("gIBS")
    protected GIBS gIBS;

    @SimpleXML.Name("gCBS")
    protected GCBS gCBS;

    @SimpleXML.Name("gMono")
    protected GMono gMono;

    public TIBSCBSMonoTot() {
        super("iBSCBSMonoTot", "xmlns=http://www.portalfiscal.inf.br/nfe");
    }

    /**
     * Total Base de Calculo
     *
     * @return String
     */
    public final String getVBCIBSCBS() {
        return this.vBCIBSCBS;
    }

    /**
     * Total Base de Calculo
     *
     * @param vBCIBSCBS
     */
    public final void setVBCIBSCBS(String vBCIBSCBS) {
        this.vBCIBSCBS = vBCIBSCBS;
    }

    /**
     * Totalização do IBS
     *
     * @return GIBS
     */
    public final GIBS getGIBS() {
        return this.gIBS;
    }

    /**
     * Totalização do IBS
     *
     * @param gIBS
     */
    public final void setGIBS(GIBS gIBS) {
        this.gIBS = gIBS;
    }

    /**
     * Totalização da CBS
     *
     * @return GCBS
     */
    public final GCBS getGCBS() {
        return this.gCBS;
    }

    /**
     * Totalização da CBS
     *
     * @param gCBS
     */
    public final void setGCBS(GCBS gCBS) {
        this.gCBS = gCBS;
    }

    /**
     * Totais da Monofasia<br>
     * 					Só deverá ser utilizado para DFe modelos 55 e 65
     *
     * @return GMono
     */
    public final GMono getGMono() {
        return this.gMono;
    }

    /**
     * Totais da Monofasia<br>
     * 					Só deverá ser utilizado para DFe modelos 55 e 65
     *
     * @param gMono
     */
    public final void setGMono(GMono gMono) {
        this.gMono = gMono;
    }

    /**
     * Totalização do IBS
     */
    public static class GIBS extends SimpleXML {

        @SimpleXML.Name("gIBSUF")
        protected GIBSUF gIBSUF;

        @SimpleXML.Name("gIBSMun")
        protected GIBSMun gIBSMun;

        @SimpleXML.Name("vIBS")
        protected String vIBS;

        @SimpleXML.Name("vCredPres")
        protected String vCredPres;

        @SimpleXML.Name("vCredPresCondSus")
        protected String vCredPresCondSus;

        public GIBS() {
            super("gIBS");
        }

        /**
         * Totalização do IBS de competência da UF
         *
         * @return GIBSUF
         */
        public final GIBSUF getGIBSUF() {
            return this.gIBSUF;
        }

        /**
         * Totalização do IBS de competência da UF
         *
         * @param gIBSUF
         */
        public final void setGIBSUF(GIBSUF gIBSUF) {
            this.gIBSUF = gIBSUF;
        }

        /**
         * Totalização do IBS de competência Municipal
         *
         * @return GIBSMun
         */
        public final GIBSMun getGIBSMun() {
            return this.gIBSMun;
        }

        /**
         * Totalização do IBS de competência Municipal
         *
         * @param gIBSMun
         */
        public final void setGIBSMun(GIBSMun gIBSMun) {
            this.gIBSMun = gIBSMun;
        }

        /**
         * Valor total do IBS
         *
         * @return String
         */
        public final String getVIBS() {
            return this.vIBS;
        }

        /**
         * Valor total do IBS
         *
         * @param vIBS
         */
        public final void setVIBS(String vIBS) {
            this.vIBS = vIBS;
        }

        /**
         * Total do Crédito Presumido
         *
         * @return String
         */
        public final String getVCredPres() {
            return this.vCredPres;
        }

        /**
         * Total do Crédito Presumido
         *
         * @param vCredPres
         */
        public final void setVCredPres(String vCredPres) {
            this.vCredPres = vCredPres;
        }

        /**
         * Total do Crédito Presumido em condição suspensiva
         *
         * @return String
         */
        public final String getVCredPresCondSus() {
            return this.vCredPresCondSus;
        }

        /**
         * Total do Crédito Presumido em condição suspensiva
         *
         * @param vCredPresCondSus
         */
        public final void setVCredPresCondSus(String vCredPresCondSus) {
            this.vCredPresCondSus = vCredPresCondSus;
        }

    }

    /**
     * Totalização do IBS de competência da UF
     */
    public static class GIBSUF extends SimpleXML {

        @SimpleXML.Name("vDif")
        protected String vDif;

        @SimpleXML.Name("vDevTrib")
        protected String vDevTrib;

        @SimpleXML.Name("vIBSUF")
        protected String vIBSUF;

        public GIBSUF() {
            super("gIBSUF");
        }

        /**
         * Total do Diferimento
         *
         * @return String
         */
        public final String getVDif() {
            return this.vDif;
        }

        /**
         * Total do Diferimento
         *
         * @param vDif
         */
        public final void setVDif(String vDif) {
            this.vDif = vDif;
        }

        /**
         * Total de devoluções de tributos
         *
         * @return String
         */
        public final String getVDevTrib() {
            return this.vDevTrib;
        }

        /**
         * Total de devoluções de tributos
         *
         * @param vDevTrib
         */
        public final void setVDevTrib(String vDevTrib) {
            this.vDevTrib = vDevTrib;
        }

        /**
         * Valor total do IBS Estadual
         *
         * @return String
         */
        public final String getVIBSUF() {
            return this.vIBSUF;
        }

        /**
         * Valor total do IBS Estadual
         *
         * @param vIBSUF
         */
        public final void setVIBSUF(String vIBSUF) {
            this.vIBSUF = vIBSUF;
        }

    }

    /**
     * Totalização do IBS de competência Municipal
     */
    public static class GIBSMun extends SimpleXML {

        @SimpleXML.Name("vDif")
        protected String vDif;

        @SimpleXML.Name("vDevTrib")
        protected String vDevTrib;

        @SimpleXML.Name("vIBSMun")
        protected String vIBSMun;

        public GIBSMun() {
            super("gIBSMun");
        }

        /**
         * Total do Diferimento
         *
         * @return String
         */
        public final String getVDif() {
            return this.vDif;
        }

        /**
         * Total do Diferimento
         *
         * @param vDif
         */
        public final void setVDif(String vDif) {
            this.vDif = vDif;
        }

        /**
         * Total de devoluções de tributos
         *
         * @return String
         */
        public final String getVDevTrib() {
            return this.vDevTrib;
        }

        /**
         * Total de devoluções de tributos
         *
         * @param vDevTrib
         */
        public final void setVDevTrib(String vDevTrib) {
            this.vDevTrib = vDevTrib;
        }

        /**
         * Valor total do IBS Municipal
         *
         * @return String
         */
        public final String getVIBSMun() {
            return this.vIBSMun;
        }

        /**
         * Valor total do IBS Municipal
         *
         * @param vIBSMun
         */
        public final void setVIBSMun(String vIBSMun) {
            this.vIBSMun = vIBSMun;
        }

    }

    /**
     * Totalização da CBS
     */
    public static class GCBS extends SimpleXML {

        @SimpleXML.Name("vDif")
        protected String vDif;

        @SimpleXML.Name("vDevTrib")
        protected String vDevTrib;

        @SimpleXML.Name("vCBS")
        protected String vCBS;

        @SimpleXML.Name("vCredPres")
        protected String vCredPres;

        @SimpleXML.Name("vCredPresCondSus")
        protected String vCredPresCondSus;

        public GCBS() {
            super("gCBS");
        }

        /**
         * Total do Diferimento
         *
         * @return String
         */
        public final String getVDif() {
            return this.vDif;
        }

        /**
         * Total do Diferimento
         *
         * @param vDif
         */
        public final void setVDif(String vDif) {
            this.vDif = vDif;
        }

        /**
         * Total de devoluções de tributos
         *
         * @return String
         */
        public final String getVDevTrib() {
            return this.vDevTrib;
        }

        /**
         * Total de devoluções de tributos
         *
         * @param vDevTrib
         */
        public final void setVDevTrib(String vDevTrib) {
            this.vDevTrib = vDevTrib;
        }

        /**
         * Valor total da CBS
         *
         * @return String
         */
        public final String getVCBS() {
            return this.vCBS;
        }

        /**
         * Valor total da CBS
         *
         * @param vCBS
         */
        public final void setVCBS(String vCBS) {
            this.vCBS = vCBS;
        }

        /**
         * Total do Crédito Presumido
         *
         * @return String
         */
        public final String getVCredPres() {
            return this.vCredPres;
        }

        /**
         * Total do Crédito Presumido
         *
         * @param vCredPres
         */
        public final void setVCredPres(String vCredPres) {
            this.vCredPres = vCredPres;
        }

        /**
         * Total do Crédito Presumido em condição suspensiva
         *
         * @return String
         */
        public final String getVCredPresCondSus() {
            return this.vCredPresCondSus;
        }

        /**
         * Total do Crédito Presumido em condição suspensiva
         *
         * @param vCredPresCondSus
         */
        public final void setVCredPresCondSus(String vCredPresCondSus) {
            this.vCredPresCondSus = vCredPresCondSus;
        }

    }

    /**
     * Totais da Monofasia<br>
     * 					Só deverá ser utilizado para DFe modelos 55 e 65
     */
    public static class GMono extends SimpleXML {

        @SimpleXML.Name("vIBSMono")
        protected String vIBSMono;

        @SimpleXML.Name("vCBSMono")
        protected String vCBSMono;

        @SimpleXML.Name("vIBSMonoReten")
        protected String vIBSMonoReten;

        @SimpleXML.Name("vCBSMonoReten")
        protected String vCBSMonoReten;

        @SimpleXML.Name("vIBSMonoRet")
        protected String vIBSMonoRet;

        @SimpleXML.Name("vCBSMonoRet")
        protected String vCBSMonoRet;

        public GMono() {
            super("gMono");
        }

        /**
         * Valor total do IBS monofásico
         *
         * @return String
         */
        public final String getVIBSMono() {
            return this.vIBSMono;
        }

        /**
         * Valor total do IBS monofásico
         *
         * @param vIBSMono
         */
        public final void setVIBSMono(String vIBSMono) {
            this.vIBSMono = vIBSMono;
        }

        /**
         * Valor total da CBS monofásica
         *
         * @return String
         */
        public final String getVCBSMono() {
            return this.vCBSMono;
        }

        /**
         * Valor total da CBS monofásica
         *
         * @param vCBSMono
         */
        public final void setVCBSMono(String vCBSMono) {
            this.vCBSMono = vCBSMono;
        }

        /**
         * Valor total do IBS monofásico sujeito a retenção
         *
         * @return String
         */
        public final String getVIBSMonoReten() {
            return this.vIBSMonoReten;
        }

        /**
         * Valor total do IBS monofásico sujeito a retenção
         *
         * @param vIBSMonoReten
         */
        public final void setVIBSMonoReten(String vIBSMonoReten) {
            this.vIBSMonoReten = vIBSMonoReten;
        }

        /**
         * Valor total da CBS monofásica sujeita a retenção
         *
         * @return String
         */
        public final String getVCBSMonoReten() {
            return this.vCBSMonoReten;
        }

        /**
         * Valor total da CBS monofásica sujeita a retenção
         *
         * @param vCBSMonoReten
         */
        public final void setVCBSMonoReten(String vCBSMonoReten) {
            this.vCBSMonoReten = vCBSMonoReten;
        }

        /**
         * Valor do IBS monofásico retido anteriormente
         *
         * @return String
         */
        public final String getVIBSMonoRet() {
            return this.vIBSMonoRet;
        }

        /**
         * Valor do IBS monofásico retido anteriormente
         *
         * @param vIBSMonoRet
         */
        public final void setVIBSMonoRet(String vIBSMonoRet) {
            this.vIBSMonoRet = vIBSMonoRet;
        }

        /**
         * Valor da CBS monofásica retida anteriormente
         *
         * @return String
         */
        public final String getVCBSMonoRet() {
            return this.vCBSMonoRet;
        }

        /**
         * Valor da CBS monofásica retida anteriormente
         *
         * @param vCBSMonoRet
         */
        public final void setVCBSMonoRet(String vCBSMonoRet) {
            this.vCBSMonoRet = vCBSMonoRet;
        }

    }

}