package factura40;

import java.util.ArrayList;

public enum CFormaPago {
    c_FormaPago_01("Efectivo"),
    c_FormaPago_02("Cheque nominativo"),
    c_FormaPago_03("Transferencia electrónica"),
    c_FormaPago_04("Tarjeta de crédito"),
    c_FormaPago_05("Monedero electrónico"),
    c_FormaPago_06("Dinero electrónico"),
    c_FormaPago_07("Tarjetas digitales"),
    c_FormaPago_08("Vales de despensa"),
    c_FormaPago_09("Bienes"),
    c_FormaPago_10("Servicio"),
    c_FormaPago_11("Por cuenta de tercero"),
    c_FormaPago_12("Dación en pago"),
    c_FormaPago_13("Pago por subrogación"),
    c_FormaPago_14("Pago por consignación"),
    c_FormaPago_15("Condonación"),
    c_FormaPago_16("Cancelación"),
    c_FormaPago_17("Compensación"),
    c_FormaPago_23("Novación"),
    c_FormaPago_24("Confusión"),
    c_FormaPago_25("Remisión de deuda"),
    c_FormaPago_26("Prescripción o caudidad"),
    c_FormaPago_27("A satisfacción del acreedor"),
    c_FormaPago_28("Tarjeta de débito"),
    c_FormaPago_29("Tarjeta de servicios"),
    c_FormaPago_30("Aplicación de anticipos"),
    c_FormaPago_98("NA"),
    c_FormaPago_99("Por definir");

    String valor;

    private CFormaPago(String aValor) {
        valor = aValor;
    }

    public String value() {
        return name();
    }

    public String getValor() {
        return valor;
    }
    public static ArrayList<String> listaFormaPago(){
        ArrayList<String> lista = new ArrayList<>();
        
        for (CFormaPago FormaPago : CFormaPago.values()){
            lista.add(FormaPago.getValor());
        }
        return lista;
    } 

    public String codValue() {
        return name().substring(12, name().length());

    }

    public static CFormaPago fromValue(String v) {
        for (CFormaPago valor : CFormaPago.values()) {
            if (valor.getValor().equals(v)) {
                return valor;
            }
        }

        return valueOf(v);
    }

    public static CFormaPago fromCodValor(String v) {
        for (CFormaPago valor : CFormaPago.values()) {
            if (valor.codValue().equals(v)) {
                return valor;
            }
        }

        return valueOf(v);
    }

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

        if (aFormaPago.equals("01")) {
            lFormaPago = CFormaPago.c_FormaPago_01.getValor();
        } else if (aFormaPago.equals("02")) {
            lFormaPago = CFormaPago.c_FormaPago_02.getValor();
        } else if (aFormaPago.equals("03")) {
            lFormaPago = CFormaPago.c_FormaPago_03.getValor();
        } else if (aFormaPago.equals("04")) {
            lFormaPago = CFormaPago.c_FormaPago_04.getValor();
        } else if (aFormaPago.equals("05")) {
            lFormaPago = CFormaPago.c_FormaPago_05.getValor();
        } else if (aFormaPago.equals("06")) {
            lFormaPago = CFormaPago.c_FormaPago_06.getValor();
        } else if (aFormaPago.equals("08")) {
            lFormaPago = CFormaPago.c_FormaPago_08.getValor();
        } else if (aFormaPago.equals("12")) {
            lFormaPago = CFormaPago.c_FormaPago_12.getValor();
        } else if (aFormaPago.equals("13")) {
            lFormaPago = CFormaPago.c_FormaPago_13.getValor();
        } else if (aFormaPago.equals("14")) {
            lFormaPago = CFormaPago.c_FormaPago_14.getValor();
        } else if (aFormaPago.equals("15")) {
            lFormaPago = CFormaPago.c_FormaPago_15.getValor();
        } else if (aFormaPago.equals("17")) {
            lFormaPago = CFormaPago.c_FormaPago_17.getValor();
        } else if (aFormaPago.equals("23")) {
            lFormaPago = CFormaPago.c_FormaPago_23.getValor();
        } else if (aFormaPago.equals("24")) {
            lFormaPago = CFormaPago.c_FormaPago_24.getValor();
        } else if (aFormaPago.equals("25")) {
            lFormaPago = CFormaPago.c_FormaPago_25.getValor();
        } else if (aFormaPago.equals("26")) {
            lFormaPago = CFormaPago.c_FormaPago_26.getValor();
        } else if (aFormaPago.equals("27")) {
            lFormaPago = CFormaPago.c_FormaPago_27.getValor();
        } else if (aFormaPago.equals("28")) {
            lFormaPago = CFormaPago.c_FormaPago_28.getValor();
        } else if (aFormaPago.equals("29")) {
            lFormaPago = CFormaPago.c_FormaPago_29.getValor();
        } else if (aFormaPago.equals("30")) {
            lFormaPago = CFormaPago.c_FormaPago_30.getValor();
        } else if (aFormaPago.equals("99")) {
            lFormaPago = CFormaPago.c_FormaPago_99.getValor();
        }

        return lFormaPago;
    }
}
