package factura40;

import java.util.ArrayList;
import javax.xml.bind.annotation.XmlEnum;
import javax.xml.bind.annotation.XmlEnumValue;
import javax.xml.bind.annotation.XmlType;

@XmlType(name = "c_UsoCFDI", namespace = "http://www.sat.gob.mx/sitio_internet/cfd/catalogos")
@XmlEnum
public enum CUsoCFDI {

    @XmlEnumValue("G01")
    G_01("G01"),
    @XmlEnumValue("G02")
    G_02("G02"),
    @XmlEnumValue("G03")
    G_03("G03"),
    @XmlEnumValue("I01")
    I_01("I01"),
    @XmlEnumValue("I02")
    I_02("I02"),
    @XmlEnumValue("I03")
    I_03("I03"),
    @XmlEnumValue("I04")
    I_04("I04"),
    @XmlEnumValue("I05")
    I_05("I05"),
    @XmlEnumValue("I06")
    I_06("I06"),
    @XmlEnumValue("I07")
    I_07("I07"),
    @XmlEnumValue("I08")
    I_08("I08"),
    @XmlEnumValue("D01")
    D_01("D01"),
    @XmlEnumValue("D02")
    D_02("D02"),
    @XmlEnumValue("D03")
    D_03("D03"),
    @XmlEnumValue("D04")
    D_04("D04"),
    @XmlEnumValue("D05")
    D_05("D05"),
    @XmlEnumValue("D06")
    D_06("D06"),
    @XmlEnumValue("D07")
    D_07("D07"),
    @XmlEnumValue("D08")
    D_08("D08"),
    @XmlEnumValue("D09")
    D_09("D09"),
    @XmlEnumValue("D10")
    D_10("D10"),
    @XmlEnumValue("P01")
    P_01("P01"),
    @XmlEnumValue("S01")
    S_01("S01"),
    @XmlEnumValue("CP01")
    CP_01("CP01"),
    @XmlEnumValue("CN01")
    CN_01("CN01");
    private final String value;

    CUsoCFDI(String v) {
        value = v;
    }

    public String value() {
        return value;
    }

    public static CUsoCFDI fromValue(String v) {
        for (CUsoCFDI c : CUsoCFDI.values()) {
            if (c.value.equals(v)) {
                return c;
            }
        }
        throw new IllegalArgumentException(v);
    }
    
    public static ArrayList<CUsoCFDI> listaCFDI(){
        ArrayList<CUsoCFDI> lista = new ArrayList<>();
        
        for (CUsoCFDI usoCdfi : CUsoCFDI.values()){
            lista.add(usoCdfi);
        }
        return lista;
    } 
    
    public void relacionCFDI(){

    }

}
