package factura40;

import javax.xml.bind.annotation.XmlEnum;
import javax.xml.bind.annotation.XmlEnumValue;
import javax.xml.bind.annotation.XmlType;

@XmlType(name = "MetodosPagos")
@XmlEnum
public enum MetodosPagos {

    @XmlEnumValue("01")
    MetodoPago_01("01"),
    @XmlEnumValue("02")
    MetodoPago_02("02"),
    @XmlEnumValue("03")
    MetodoPago_03("03"),
    @XmlEnumValue("04")
    MetodoPago_04("04"),
    @XmlEnumValue("05")
    MetodoPago_05("05"),
    @XmlEnumValue("06")
    MetodoPago_06("06"),
    @XmlEnumValue("07")
    MetodoPago_07("07"),
    @XmlEnumValue("08")
    MetodoPago_08("08"),
    @XmlEnumValue("09")
    MetodoPago_09("09"),
    @XmlEnumValue("10")
    MetodoPago_10("10"),
    @XmlEnumValue("11")
    MetodoPago_11("11"),
    @XmlEnumValue("12")
    MetodoPago_12("12"),
    @XmlEnumValue("13")
    MetodoPago_13("13"),
    @XmlEnumValue("14")
    MetodoPago_14("14"),
    @XmlEnumValue("15")
    MetodoPago_15("15"),
    @XmlEnumValue("16")
    MetodoPago_16("16"),
    @XmlEnumValue("17")
    MetodoPago_17("17"),
    @XmlEnumValue("23")
    MetodoPago_23("23"),
    @XmlEnumValue("24")
    MetodoPago_24("24"),
    @XmlEnumValue("25")
    MetodoPago_25("25"),
    @XmlEnumValue("26")
    MetodoPago_26("26"),
    @XmlEnumValue("27")
    MetodoPago_27("27"),
    @XmlEnumValue("28")
    MetodoPago_28("28"),
    @XmlEnumValue("29")
    MetodoPago_29("29"),
    @XmlEnumValue("30")
    MetodoPago_30("30"),
    @XmlEnumValue("98")
    MetodoPago_98("98"),
    @XmlEnumValue("99")
    MetodoPago_99("99");
    private final String value;

    MetodosPagos(String v) {
        value = v;
    }

    public String value() {
        return value;
    }

    public static MetodosPagos fromValue(String v) {
        for (MetodosPagos c : MetodosPagos.values()) {
            if (c.value.equals(v)) {
                return c;
            }
        }
        throw new IllegalArgumentException(v);
    }

    public static String consultaMetodoPago(String aFormaPago) {
        String lFormaPago = "";

        switch (aFormaPago) {
            case "01":
                lFormaPago = "Efectivo";
                break;
            case "02":
                lFormaPago = "Cheque nominativo";
                break;
            case "03":
                lFormaPago = "Transferencia electrónica";
                break;
            case "04":
                lFormaPago = "Tarjeta de crédito";
                break;
            case "05":
                lFormaPago = "Monedero electrónico";
                break;
            case "06":
                lFormaPago = "Dinero electrónico";
                break;
            case "07":
                lFormaPago = "Tarjetas digitales";
                break;
            case "08":
                lFormaPago = "Vales de despensa";
                break;
            case "09":
                lFormaPago = "Bienes";
                break;
            case "10":
                lFormaPago = "Servicio";
                break;
            case "11":
                lFormaPago = "Por cuenta de tercero";
                break;
            case "12":
                lFormaPago = "Dación en pago";
                break;
            case "13":
                lFormaPago = "Pago por subrogación";
                break;
            case "14":
                lFormaPago = "Pago por consignación";
                break;
            case "15":
                lFormaPago = "Condonación";
                break;
            case "16":
                lFormaPago = "Cancelación";
                break;
            case "17":
                lFormaPago = "Compensación";
                break;
            case "23":
                lFormaPago = "Novación";
                break;
            case "24":
                lFormaPago = "Confusión";
                break;
            case "25":
                lFormaPago = "Remisión de deuda";
                break;
            case "26":
                lFormaPago = "Prescripción o caudidad";
                break;
            case "27":
                lFormaPago = "A satisfacción del acreedor";
                break;
            case "28":
                lFormaPago = "Tarjeta de débito";
                break;
            case "29":
                lFormaPago = "Tarjeta de servicios";
                break;
            case "30":
                lFormaPago = "Aplicación de anticipos";
                break;
            case "98":
                lFormaPago = "NA";
                break;
            case "99":
                lFormaPago = "Por definir";
                break;

        }

        return lFormaPago;
    }
}
