{"id":923,"date":"2025-03-19T12:41:20","date_gmt":"2025-03-19T12:41:20","guid":{"rendered":"https:\/\/zabalimp.es\/?page_id=923"},"modified":"2025-03-24T11:33:44","modified_gmt":"2025-03-24T11:33:44","slug":"pedidos","status":"publish","type":"page","link":"https:\/\/zabalimp.es\/eu\/pedidos\/","title":{"rendered":"Pedidos"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"923\" class=\"elementor elementor-923\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6eb00f6 e-flex e-con-boxed e-con e-parent\" data-id=\"6eb00f6\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-33983a7 elementor-widget elementor-widget-shortcode\" data-id=\"33983a7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">[mostrar_pedidos]<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-88060b3 e-flex e-con-boxed e-con e-parent\" data-id=\"88060b3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-608f7e6 elementor-widget elementor-widget-html\" data-id=\"608f7e6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script>\r\njQuery(document).ready(function($) {\r\n    \/\/ \u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435\r\n    $(document).on('click', '.eliminar-pedido', function(e) {\r\n        e.preventDefault();\r\n\r\n        const id = $(this).data('id');\r\n        if (!confirm(`\u00bfSeguro que quieres eliminar el pedido #${id}?`)) return;\r\n\r\n        $.ajax({\r\n            url: mi_ajax_obj.ajaxurl,\r\n            type: 'POST',\r\n            dataType: 'json',\r\n            data: {\r\n                action: 'eliminar_pedido',\r\n                id: id\r\n            },\r\n            success: function(response) {\r\n                if (response.success) {\r\n                    console.log('\u2705 Pedido eliminado:', response);\r\n                    alert(`Pedido #${id} eliminado con \u00e9xito.`);\r\n                    location.reload(); \/\/ \u0438\u043b\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0438\u0437 DOM \u0432\u0440\u0443\u0447\u043d\u0443\u044e\r\n                } else {\r\n                    console.warn('\u26a0\ufe0f Error al eliminar pedido:', response.data);\r\n                }\r\n            },\r\n            error: function(err) {\r\n                console.error('\u274c AJAX error al eliminar:', err);\r\n            }\r\n        });\r\n    });\r\n    \r\n    \r\njQuery(document).ready(function($) {\r\n    let servicios = [];\r\n\r\n    function cargarServicios(callback) {\r\n        $.post(mi_ajax_obj.ajaxurl, { action: 'obtener_servicios' }, function(response) {\r\n            if (response.success) {\r\n                servicios = response.data;\r\n                $('#selectServicio').empty();\r\n                servicios.forEach(s => {\r\n                    $('#selectServicio').append(`<option value=\"${s.id}\">${s.nombre}<\/option>`);\r\n                });\r\n                callback && callback();\r\n            } else {\r\n                alert(\"Error al cargar servicios.\");\r\n            }\r\n        }, 'json');\r\n    }\r\n\r\n    function cargarProveedores(id_servicio) {\r\n        $.post(mi_ajax_obj.ajaxurl, {\r\n            action: 'obtener_proveedores_por_servicio',\r\n            id_servicio: id_servicio\r\n        }, function(response) {\r\n            if (response.success) {\r\n                $('#selectProveedor').empty();\r\n                response.data.forEach(p => {\r\n                    $('#selectProveedor').append(`<option value=\"${p.id}\">${p.nombre}<\/option>`);\r\n                });\r\n            } else {\r\n                $('#selectProveedor').empty();\r\n                alert(\"No hay proveedores.\");\r\n            }\r\n        }, 'json');\r\n    }\r\n\r\n    \/\/ \u041e\u0442\u043a\u0440\u044b\u0442\u0438\u0435 \u043c\u043e\u0434\u0430\u043b\u043a\u0438\r\n    $(document).on('click', '.editar-pedido', function(e) {\r\n        e.preventDefault();\r\n        const pedidoID = $(this).data('id');\r\n        $('#pedidoID').val(pedidoID);\r\n\r\n        cargarServicios(() => {\r\n            const servicioInicial = $('#selectServicio').val();\r\n            cargarProveedores(servicioInicial);\r\n        });\r\n\r\n        $('#modalEditarPedido').fadeIn();\r\n    });\r\n\r\n    \/\/ \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u2192 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u043e\u0432\r\n    $('#selectServicio').on('change', function() {\r\n        cargarProveedores($(this).val());\r\n    });\r\n\r\n    \/\/ \u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0444\u043e\u0440\u043c\u044b\r\n    $('#formEditarPedido').on('submit', function(e) {\r\n        e.preventDefault();\r\n        const id = $('#pedidoID').val();\r\n        const id_servicio = $('#selectServicio').val();\r\n        const id_proveedor = $('#selectProveedor').val();\r\n\r\n        $.post(mi_ajax_obj.ajaxurl, {\r\n            action: 'editar_pedido',\r\n            id: id,\r\n            id_servicio: id_servicio,\r\n            id_proveedor: id_proveedor\r\n        }, function(response) {\r\n            if (response.success) {\r\n                alert(\"Pedido actualizado.\");\r\n                $('#modalEditarPedido').fadeOut();\r\n                location.reload();\r\n            } else {\r\n                alert(\"Error: \" + response.data);\r\n            }\r\n        }, 'json');\r\n    });\r\n\r\n    $('#btnCancelarModal').on('click', function() {\r\n        $('#modalEditarPedido').fadeOut();\r\n    });\r\n});\r\n\r\n\r\n});\r\n\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-edda499 elementor-widget elementor-widget-html\" data-id=\"edda499\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div id=\"modalEditarPedido\" style=\"display:none; position:fixed; top:0; left:0; width:100%; height:100%;     background:rgba(0,0,0,0.6); z-index:9999; justify-content:center; align-items:center;\">\r\n  <div style=\"background:#fff; padding:20px; border-radius:10px; min-width:300px; max-width:90%;\">\r\n    <h3>Editar Pedido<\/h3>\r\n    <form id=\"formEditarPedido\" action=\"\">\r\n      <input type=\"hidden\" id=\"pedidoID\">\r\n      <div style=\"margin-bottom:10px;\">\r\n        <label for=\"selectServicio\">Servicio:<\/label>\r\n        <select id=\"selectServicio\" style=\"width:100%; padding:5px;\"><\/select>\r\n      <\/div>\r\n      <div style=\"margin-bottom:10px;\">\r\n        <label for=\"selectProveedor\">Proveedor:<\/label>\r\n        <select id=\"selectProveedor\" style=\"width:100%; padding:5px;\"><\/select>\r\n      <\/div>\r\n      <div style=\"text-align:right;\">\r\n        <button type=\"button\" id=\"btnCancelarModal\">Cancelar<\/button>\r\n        <button type=\"submit\">Mantendu<\/button>\r\n      <\/div>\r\n    <input type=\"hidden\" name=\"trp-form-language\" value=\"eu\"\/><\/form>\r\n  <\/div>\r\n<\/div>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8065f41 elementor-widget elementor-widget-html\" data-id=\"8065f41\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n    let ordenActual = 'ASC';\r\n    let columnaActual = '';\r\n\r\n    function activarOrdenamiento() {\r\n        const headers = document.querySelectorAll(\".sort-col\");\r\n        headers.forEach(header => {\r\n            header.addEventListener(\"click\", function (e) {\r\n                e.preventDefault();\r\n\r\n                const col = this.dataset.col;\r\n\r\n                if (col === columnaActual) {\r\n                    ordenActual = (ordenActual === 'ASC') ? 'DESC' : 'ASC';\r\n                } else {\r\n                    columnaActual = col;\r\n                    ordenActual = 'ASC';\r\n                }\r\n\r\n                const proveedorId = document.getElementById(\"proveedor\")?.value || '';\r\n                const servicioId = document.getElementById(\"servicio\")?.value || '';\r\n\r\n                const datos = new URLSearchParams();\r\n                datos.append('action', 'sorti');\r\n                datos.append('proveedor', proveedorId);\r\n                datos.append('servicio', servicioId);\r\n                datos.append('ordenar_por', col);\r\n                datos.append('orden', ordenActual);\r\n\r\n\r\n                fetch('\/wp-admin\/admin-ajax.php', {\r\n                    method: 'POST',\r\n                    headers: {\r\n                        'Content-Type': 'application\/x-www-form-urlencoded'\r\n                    },\r\n                    body: datos.toString()\r\n                })\r\n                .then(response => response.text())\r\n                .then(data => {\r\n                    document.getElementById('tabla-pedidos').innerHTML = data;\r\n                    activarOrdenamiento(); \/\/ \u043f\u0435\u0440\u0435\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0441\u043b\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f\r\n                    aplicarIndicadoresOrden();\r\n                })\r\n                .catch(err => {\r\n                    console.error('Error al ordenar:', err);\r\n                });\r\n            });\r\n        });\r\n    }\r\n\r\n    function aplicarIndicadoresOrden() {\r\n        const links = document.querySelectorAll('.sort-col');\r\n        links.forEach(link => {\r\n            link.classList.remove('activo');\r\n            link.innerHTML = link.textContent;\r\n            if (link.dataset.col === columnaActual) {\r\n                link.classList.add('activo');\r\n                link.innerHTML += ordenActual === 'ASC' ? ' \ud83d\udd3c' : ' \ud83d\udd3d';\r\n            }\r\n        });\r\n    }\r\n\r\n    \/\/ \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435\r\n    activarOrdenamiento();\r\n});\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>[mostrar_pedidos] Editar Pedido Servicio: Proveedor: Cancelar Guardar<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_joinchat":[],"footnotes":""},"class_list":["post-923","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/zabalimp.es\/eu\/wp-json\/wp\/v2\/pages\/923","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zabalimp.es\/eu\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/zabalimp.es\/eu\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/zabalimp.es\/eu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zabalimp.es\/eu\/wp-json\/wp\/v2\/comments?post=923"}],"version-history":[{"count":0,"href":"https:\/\/zabalimp.es\/eu\/wp-json\/wp\/v2\/pages\/923\/revisions"}],"wp:attachment":[{"href":"https:\/\/zabalimp.es\/eu\/wp-json\/wp\/v2\/media?parent=923"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}