<script>
    $(document).ready(function () {
        if ("@CO" == "NO") {
            let emptyFields = [];
            emptyFields.push("No posee permisos para consultar este programa");
            showPopupNovedades(emptyFields);
            $("#GrillaPrincipal").hide();
        }
        else {
            $("#GrillaPrincipal").show();
        }
        var nomProg = "@nombrePrograma"
        guardarNombre(nomProg);
    });

    function showPopupNovedades(messages) {

        let content = messages.map(message => '<div>' + message + '</div>').join('');
        $("#popNovedades").dxPopup("instance").show();
        var DivContentMesssages = document.getElementById("ContentMesssages");
        DivContentMesssages.innerHTML = content;

    }

    function cancelarRegistro(s, e) {
        GetControllById("popMain").hide();
    }

  


    function llenarCampos(key, rowIndex) {

        var grid = $("#dgMain").dxDataGrid("instance");
        var id = $("#txtIdRegistro").dxTextBox("instance");
        var ano = $("#anoBloqueo").dxNumberBox("instance");
        var mes = $("#mesBloqueo").dxSelectBox("instance");
        var estado = $("#estado").dxSelectBox("instance");
        
        let selectedRowData = grid.getSelectedRowsData()[0];

        id.option("value", selectedRowData.LlavePrimaria);
        ano.option("value", selectedRowData.anoBloqueo);
        mes.option("value", selectedRowData.mesBloqueo.toString());
        estado.option("value", selectedRowData.estado);

                 GetControllById("mesBloqueo").option('disabled', true);
                 GetControllById("anoBloqueo").option('disabled', true);
                        GetControllById("estado").option('disabled', false);
                          GetControllById("guardarRegistro").option('disabled', false);

    }

    function limpiarRegistro()
    {
        var id = $("#txtIdRegistro").dxTextBox("instance");
        var ano = $("#anoBloqueo").dxNumberBox("instance");
        var mes = $("#mesBloqueo").dxSelectBox("instance");
        var estado = $("#estado").dxSelectBox("instance");

        id.option("value", "");
        ano.option("value", "");
        mes.option("value", "");
        estado.option("value", "");
           GetControllById("mesBloqueo").option('disabled', false);
                 GetControllById("anoBloqueo").option('disabled', false);
                   GetControllById("estado").option('disabled', false);
                          GetControllById("guardarRegistro").option('disabled', false);
    }

    function guardarRegistro(s, e) 
    {

        //BANDERA PARA LOS MENSAJES
        var validaMensajes = true;
        let emptyFields = [];
        var id = $("#txtIdRegistro").dxTextBox("instance");
        var ano = $("#anoBloqueo").dxNumberBox("instance");
        var mes = $("#mesBloqueo").dxSelectBox("instance");
        var estado = $("#estado").dxSelectBox("instance");

        if (GetControllById("anoBloqueo").option('value').toString().trim() == "") emptyFields.push("Falta el año");
        if (GetControllById("mesBloqueo").option('value').toString().trim() == "") emptyFields.push("Falta el mes" );
        if (GetControllById("estado").option('value').toString().trim() == "") emptyFields.push("Falta el estado");



        if (emptyFields.length > 10) {
            emptyFields = [];
            emptyFields.push("Varios campos están sin llenar");
            showPopupNovedades(emptyFields);
            return;
        }

        if (emptyFields.length > 0) {
            showPopupNovedades(emptyFields);
            return;
        }
        else {
            if (id.option('value') == "" || id.option('value') == null) {
                let data = {
                    // Lo que esta en la izquierda antes de los dos puntos son las variables dto y lo que esta despues de los dos puntos es lo que toma del popup
                    anoBloqueo: ano.option('value'),
                    mesBloqueo: mes.option('value').toString().trim(),
                    estado: estado.option('value').toString().trim(),
                    codigoPrograma: "@CodigoPrograma"
                };

                $.ajax({

                    type: "POST",

                    url: '@Url.Action("Post", "UTCBLOMEApi")',
                    data: data,
                    success: function (data) {
                        try{
                            data.forEach(function (item) {
                                if (item.esError === 0) {
                                    emptyFields.push(item.Mensaje);
                                    validaMensajes = true;
                                } else {
                                    emptyFields.push(item.Mensaje);
                                    showPopupNovedades(emptyFields);
                                    validaMensajes = false;
                                }
                            });
                            if (validaMensajes == true) {
                                $("#popMain").dxPopup("instance").hide();
                                showPopupNovedades(emptyFields);
                                $("#dgMain").dxDataGrid("instance").refresh();
                                limpiarRegistro();
                            }
                        }catch{
                            emptyFields = [];
                            emptyFields.push("Ha ocurrido un error inesperado. Por favor, contacte al administrador del sistema")
                            showPopupNovedades(emptyFields);
                        }
                    },
                    error: function (xhr, status, error) {
                        emptyFields = [];
                        emptyFields.push("Ha ocurrido un error inesperado. Por favor, inicie sesión nuevamente o contacte al administrador si el problema persiste")
                        showPopupNovedades(emptyFields);
                    }
                 });
            }
            else {
               let data = {
                 //Viene de DTO      
                 LlavePrimaria: id.option('value').toString().trim(),
                 anoBloqueo: ano.option('value'),
                 mesBloqueo: mes.option('value').toString().trim(),
                    estado: estado.option('value').toString().trim(),
                    codigoPrograma: "@CodigoPrograma"
               };

               $.ajax({
                    type: "POST",

                    url: '@Url.Action("Put", "UTCBLOMEApi")',
                  data: data,
                  success: function (data) {
                        try{
                            data.forEach(function (item) {
                                if (item.esError === 0) {
                                    emptyFields.push(item.Mensaje);
                        
                                    validaMensajes = true;
                                } else {
                                    emptyFields.push(item.Mensaje);
                                    showPopupNovedades(emptyFields);
                                    validaMensajes = false;
                                }
                            });
                            if (validaMensajes == true) {
                                $("#popMain").dxPopup("instance").hide();
                      
                                showPopupNovedades(emptyFields);
                                $("#dgMain").dxDataGrid("instance").refresh();
                                limpiarRegistro();
                            }
                        }catch{
                            emptyFields = [];
                            emptyFields.push("Ha ocurrido un error inesperado. Por favor, contacte al administrador del sistema")
                            showPopupNovedades(emptyFields);
                        }
                    },
                    error: function (xhr, status, error) {
                        emptyFields = [];
                        emptyFields.push("Ha ocurrido un error inesperado. Por favor, inicie sesión nuevamente o contacte al administrador si el problema persiste")
                        showPopupNovedades(emptyFields);
                    }
               });

                
            }
        }
    }

    function EliminarRegistro(key, rowIndex) {

        let emptyFields = [];
        var validaMensajes = true;
        let selectedRowData = GetControllById("dgMain").getSelectedRowsData()[0];

        let data = {

            LlavePrimaria: selectedRowData.LlavePrimaria,
            anoBloqueo: selectedRowData.anoBloqueo,
            mesBloqueo: selectedRowData.mesBloqueo,

            codigoPrograma: "@CodigoPrograma"
           


        }

        $.ajax({
            type: "POST",

            url: '@Url.Action("Delete","UTCBLOMEApi")',
            data: data,
            success: function (data) {
                try{
                    data.forEach(function (item) {
                        if (item.esError === 0) {
                            emptyFields.push(item.Mensaje);
                            validaMensajes = true;
                        } else {
                            emptyFields.push(item.Mensaje);
                            showPopupNovedades(emptyFields);
                            validaMensajes = false;
                        }
                    });
                    if (validaMensajes == true) {
                        $("#dgMain").dxDataGrid("instance").refresh();
                        showPopupNovedades(emptyFields);
                    }
                }catch{
                    emptyFields = [];
                    emptyFields.push("Ha ocurrido un error inesperado. Por favor, contacte al administrador del sistema")
                    showPopupNovedades(emptyFields);
                }
            },
            error: function (xhr, status, error) {
                emptyFields = [];
                emptyFields.push("Ha ocurrido un error inesperado. Por favor, inicie sesión nuevamente o contacte al administrador si el problema persiste")
                showPopupNovedades(emptyFields);
            }
        });


    }

    function condicionGrillaMain() {
    var filtro = $('#dgMain_qbeValue').val();
    var paginacion = $('#Paginacion_Value').val();
    return filtro + "&" + paginacion;
}


    function ConsultarCodigoPrograma(){
            return "@CodigoPrograma";
        }

             function llenarCamposConsultar(key, rowIndex) {
                let emptyFields = [];
                        var grid = $("#dgMain").dxDataGrid("instance");
                      let selectedRowData = grid.getSelectedRowsData()[0];
              if(selectedRowData == null || selectedRowData == undefined)
            {
                emptyFields.push("Selecciona un campo para consultar");
                showPopupNovedades(emptyFields);
                return;
            }


            var mainPopup = $("#popMain").dxPopup("instance");
            mainPopup.show();

          
            var id = $("#txtIdRegistro").dxTextBox("instance");
            var ano = $("#anoBloqueo").dxNumberBox("instance");
            var mes = $("#mesBloqueo").dxSelectBox("instance");
            var estado = $("#estado").dxSelectBox("instance");

            

            id.option("value", selectedRowData.LlavePrimaria);
            ano.option("value", selectedRowData.anoBloqueo);
            mes.option("value", selectedRowData.mesBloqueo.toString());
            estado.option("value", selectedRowData.estado);

                     GetControllById("mesBloqueo").option('disabled', true);
                     GetControllById("anoBloqueo").option('disabled', true);
                               GetControllById("estado").option('disabled', true);
                                   GetControllById("guardarRegistro").option('disabled', true);
                             

        }

</script>
