(473,'core_formulario[8].javascript','2024-11-07 22:35:00','rafael',241,8717,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, iva_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_placa\').hide();\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            $(\'#id_cliente\').val(idClienteDB.value);\n            PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction cargarDatosFE(resp) {\n\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    if(!id.value && resp.id)\n        id.value = resp.id;\n    actualizarInforme();\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction editProduct(){\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:5:0&id=\' + id.value));\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    \n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(474,'core_formulario[8].javascript','2024-11-07 22:37:00','rafael',242,8744,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, iva_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_placa\').hide();\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            $(\'#id_cliente\').val(idClienteDB.value);\n            PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction cargarDatosFE(resp) {\n\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    if(!id.value && resp.id)\n        id.value = resp.id;\n    actualizarInforme();\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction editProduct(){\n    console.log(id.value);\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:0&id=\' + id.value));\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    \n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(475,'core_formulario[8].javascript','2024-11-07 22:41:00','rafael',242,8776,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, iva_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_placa\').hide();\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            $(\'#id_cliente\').val(idClienteDB.value);\n            PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction cargarDatosFE(resp) {\n\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    if(!id.value && resp.id)\n        id.value = resp.id;\n    actualizarInforme();\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction editProduct(){\n    console.log(id.value);\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:0&id=\' +  document.FRMBASEINFORME.PCO_Valor.value));\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    \n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(476,'core_formulario[7].javascript','2024-11-07 22:46:00','rafael',18,525,'\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Recepción O.C\";\n        getOCRecepcion();\n    }\n\n$(document).ready(function() {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});','B'),(477,'core_formulario[7].javascript','2024-11-07 22:46:00','rafael',17,501,'\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Editar producto\";\n    }\n\n$(document).ready(function() {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});','B'),(478,'core_formulario[7].javascript','2024-11-07 22:46:00','rafael',15,499,'function FrmAutoRun()\n    {\n        document.title = \"Editar producto\";\n    }\n\n$(document).ready(function() {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});','B'),(479,'core_formulario[8].javascript','2024-11-07 22:51:00','rafael',244,8799,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, iva_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_placa\').hide();\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            $(\'#id_cliente\').val(idClienteDB.value);\n            PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction cargarDatosFE(resp) {\n\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    if(!id.value && resp.id)\n        id.value = resp.id;\n    actualizarInforme();\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction editProduct(){\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:0\'+\n    \'&id=\' +  document.FRMBASEINFORME.PCO_Valor.value+\n    \'&tipo_venta=\'+tipo_venta.value\n    ));\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    \n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(480,'core_formulario[7].javascript','2024-11-07 22:54:00','rafael',17,540,'const { tipo_venta } = document.datos2;\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Editar producto\";\n    }\n\n$(document).ready(function() {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});','B'),(481,'core_formulario[7].javascript','2024-11-07 22:55:00','rafael',17,540,'const { tipo_venta } = document.datos2;\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Editar producto\";\n    }\n\n$(document).ready(function() {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});','B'),(482,'core_formulario[7].javascript','2024-11-07 22:55:00','rafael',56,1779,'const { tipo_venta } = document.datos2;\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Editar producto\";\n    }\n\n\n$(document).ready(function() {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});','B'),(483,'core_formulario[7].javascript','2024-11-07 22:59:00','rafael',56,1781,'const { tipo_venta } = document.datos2;\n\nconst origenListaOpciones2 = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Editar producto\";\n    }\n\n\n$(document).ready(function() {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones2({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});','B'),(484,'core_formulario[7].javascript','2024-11-07 23:00:00','rafael',56,1781,'const { tipo_venta } = document.datos2;\n\nconst origenListaOpciones2 = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Editar producto\";\n    }\n\n\n$(document).ready(function() {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones2({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});','B'),(485,'core_formulario[7].javascript','2024-11-07 23:03:00','rafael',56,1784,'const { tipo_venta2 } = document.datos2;\n\nconst origenListaOpciones2 = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Editar producto\";\n    }\n\n\n$(document).ready(function() {\n    $(\"#id_producto2\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones2({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto2\").trigger(\"change\");\n});','B'),(486,'core_formulario[7].javascript','2024-11-07 23:04:00','rafael',56,1784,'const { tipo_venta2 } = document.datos2;\n\nconst origenListaOpciones2 = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Editar producto\";\n    }\n\n\n$(document).ready(function() {\n    $(\"#id_producto2\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones2({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta2.value,\n        }));\n    $(\"#id_producto2\").trigger(\"change\");\n});','B'),(487,'core_formulario[7].javascript','2024-11-07 23:04:00','rafael',56,1785,'const { tipo_venta2 } = document.datos2;\n\nconst origenListaOpciones2 = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Editar producto\";\n    }\n\n\n$(document).ready(function() {\n    $(\"#id_producto2\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones2({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta2.value,\n        }));\n    $(\"#id_producto2\").trigger(\"change\");\n});','B'),(488,'core_formulario[8].javascript','2024-11-07 23:07:00','rafael',244,8800,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, iva_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_placa\').hide();\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            $(\'#id_cliente\').val(idClienteDB.value);\n            PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction cargarDatosFE(resp) {\n\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    if(!id.value && resp.id)\n        id.value = resp.id;\n    actualizarInforme();\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction editProduct(){\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:0\'+\n    \'&id2=\' +  document.FRMBASEINFORME.PCO_Valor.value+\n    \'&tipo_venta=\'+tipo_venta.value\n    ));\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    \n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(489,'core_formulario[8].javascript','2024-11-07 23:07:00','rafael',244,8801,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, iva_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_placa\').hide();\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            $(\'#id_cliente\').val(idClienteDB.value);\n            PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction cargarDatosFE(resp) {\n\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    if(!id.value && resp.id)\n        id.value = resp.id;\n    actualizarInforme();\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction editProduct(){\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:0\'+\n    \'&id2=\' +  document.FRMBASEINFORME.PCO_Valor.value+\n    \'&tipo_venta2=\'+tipo_venta.value\n    ));\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    \n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(490,'core_formulario[8].javascript','2024-11-07 23:15:00','rafael',248,8843,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, iva_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_placa\').hide();\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            $(\'#id_cliente\').val(idClienteDB.value);\n            PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction cargarDatosFE(resp) {\n\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    if(!id.value && resp.id)\n        id.value = resp.id;\n    actualizarInforme();\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction hola(){\n    console.log(\'hola\');\n}\n\nfunction editProduct(){\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:0\'+\n    \'&id2=\' +  document.FRMBASEINFORME.PCO_Valor.value+\n    \'&tipo_venta2=\'+tipo_venta.value\n    ));\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    \n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(491,'core_formulario[7].javascript','2024-11-07 23:17:00','rafael',57,1815,'const { tipo_venta2 } = document.datos2;\n\nconst origenListaOpciones2 = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Editar producto\";\n        window.parent.hola();\n    }\n\n\n$(document).ready(function() {\n    $(\"#id_producto2\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones2({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta2.value,\n        }));\n    $(\"#id_producto2\").trigger(\"change\");\n});','B'),(492,'core_formulario[7].javascript','2024-11-07 23:18:00','rafael',57,1811,'const { tipo_venta2 } = document.datos2;\n\nconst origenListaOpciones2 = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Editar producto\";\n    }\n\n\n$(document).ready(function() {\n    $(\"#id_producto2\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones2({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta2.value,\n        }));\n    $(\"#id_producto2\").trigger(\"change\");\n    window.parent.hola();\n});','B'),(493,'core_formulario[7].javascript','2024-11-07 23:19:00','rafael',60,1849,'const { tipo_venta2 } = document.datos2;\n\nconst origenListaOpciones2 = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Editar producto\";\n    }\n\nfunction callMe()\n    {\n        window.parent.hola();\n    }\n    \n$(document).ready(function() {\n    $(\"#id_producto2\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones2({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta2.value,\n        }));\n    $(\"#id_producto2\").trigger(\"change\");\n});','B'),(494,'core_formulario[8].javascript','2024-11-07 23:21:00','rafael',248,8846,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, iva_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_placa\').hide();\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            $(\'#id_cliente\').val(idClienteDB.value);\n            PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction cargarDatosFE(resp) {\n\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    if(!id.value && resp.id)\n        id.value = resp.id;\n    actualizarInforme();\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction hola(){\n    console.log(\'hola\');\n}\n\nfunction editProduct(){\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=1&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:0\'+\n    \'&id2=\' +  document.FRMBASEINFORME.PCO_Valor.value+\n    \'&tipo_venta2=\'+tipo_venta.value\n    ));\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    \n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(495,'core_formulario[8].javascript','2024-11-07 23:23:00','rafael',248,8846,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, iva_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_placa\').hide();\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            $(\'#id_cliente\').val(idClienteDB.value);\n            PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction cargarDatosFE(resp) {\n\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    if(!id.value && resp.id)\n        id.value = resp.id;\n    actualizarInforme();\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction hola(){\n    console.log(\'hola\');\n}\n\nfunction editProduct(){\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n    \'&id2=\' +  document.FRMBASEINFORME.PCO_Valor.value+\n    \'&tipo_venta2=\'+tipo_venta.value\n    ));\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    \n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(496,'core_formulario[8].javascript','2024-11-14 23:38:00','rafael',251,8956,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, iva_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_placa\').hide();\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            $(\'#id_cliente\').val(idClienteDB.value);\n            PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n            if($(\'#id_cliente\').val() == 1) {\n                $(\'#PCOContenedor_placa\').show();\n            }\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction cargarDatosFE(resp) {\n\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    if(!id.value && resp.id)\n        id.value = resp.id;\n    actualizarInforme();\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction hola(){\n    console.log(\'hola\');\n}\n\nfunction editProduct(){\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n    \'&id2=\' +  document.FRMBASEINFORME.PCO_Valor.value+\n    \'&tipo_venta2=\'+tipo_venta.value\n    ));\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    \n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(497,'mod/app_ventas/index.php','2024-11-14 23:41:00','rafael',161,6711,'<?php\n\nfunction calcularTotalVenta($id, $returnArr = \"\") {\n    $venta = PCO_EjecutarSQL(\"\n        SELECT SUM(precio * cantidad) as total, SUM(precio * iva/100) iva\n        FROM app_ventas_detalle\n        WHERE id_venta = \'$id\' GROUP BY id_venta\n    \")->fetch();\n    $total = $venta[\"total\"] ? $venta[\"total\"] : 0;\n    $iva = $venta[\"iva\"] ? $venta[\"iva\"] : 0;\n    PCO_EjecutarSQLUnaria(\"UPDATE app_ventas SET total = $total, iva = $iva WHERE id = $id \");\n    if($returnArr)\n        return $venta;\n    return \'\"total\": \' . $total . \', \"iva\": \' . $iva;\n}\n\nif($PCO_Accion == \"VENTA_ingresarRealizarVenta\") {\n    $ventaAbierta = PCO_EjecutarSQL(\"\n        SELECT id, id_cliente, total, iva, placa\n        FROM app_ventas\n        WHERE id=\'$PCO_Valor\'\n    \")->fetch();\n    /*if (!$ventaAbierta[\"id\"]) {\n        \n        $ventaAbierta = PCO_EjecutarSQL(\"\n            SELECT *\n            FROM app_ventas\n            WHERE estado = 0 ORDER BY id limit 1\n        \")->fetch();   \n    }*/\n\n    $id_venta = $ventaAbierta[\"id\"] || \"\";\n    if($id_venta) {\n        $total = number_format($ventaAbierta[\"total\"], 2);\n        $iva = number_format($ventaAbierta[\"iva\"], 2);\n        $id_cliente = $ventaAbierta[\"id_cliente\"];\n    }\n\n    PCO_CargarFormulario(8, 1, \"id\", $id_venta);\n}\n\nif($PCO_Accion == \"VENTA_agregarProductoCrearOC\") {\n\n    if(!$id) {\n        //crear cliente en caso de que no llegue id_cliente\n        if(!$id_cliente) {\n            PCO_EjecutarSQLUnaria(\"INSERT INTO app_clientes (nombre_completo, numero_documento, telefono) VALUES (?,?,?) \",\n                \"$nombre_completo$_SeparadorCampos_$numero_documento$_SeparadorCampos_$telefono\"\n            );\n            $id_cliente = PCO_ObtenerUltimoIDInsertado();\n        }\n        $todayMysql = date(\"Y-m-d H:i:s\");\n        PCO_EjecutarSQLUnaria(\"INSERT INTO app_ventas (id_cliente, usuario, fecha, placa, id_mecanico) VALUES (?,?,?,?,?) \", \"$id_cliente$_SeparadorCampos_$PCOSESS_LoginUsuario$_SeparadorCampos_$todayMysql$_SeparadorCampos_$placa$_SeparadorCampos_$id_mecanico\");\n        $id = PCO_ObtenerUltimoIDInsertado();\n    }\n    $producto = PCO_EjecutarSQL(\"\n        SELECT id, precio_venta, iva, inventario\n        FROM app_productos\n        WHERE id = \'$id_producto\'\n    \")->fetch();\n    if($producto[\"id\"]) {\n        $existe = PCO_EjecutarSQL(\"\n            SELECT count(id)\n            FROM app_ventas_detalle\n            WHERE id_venta = $id AND id_producto = \'$id_producto\'\n        \")->fetchColumn();\n        if($existe > 0) {\n            print_r(\'{\"success\": false, \"msg\": \"El producto ya se ha ingresado\"}\');\n            die();\n        }\n        if($producto[\"inventario\"] < $cantidad) {\n            print_r(\'{\"success\": false, \"msg\": \"La cantidad digitada supera la del invetario\"}\');\n            die();\n        }\n        $inventarioNew = $producto[\"inventario\"] - $cantidad;\n        PCO_EjecutarSQLUnaria(\"UPDATE app_productos SET inventario = $inventarioNew WHERE id = \" . $producto[\"id\"]);\n        PCO_EjecutarSQLUnaria(\"INSERT INTO app_ventas_detalle (id_venta, id_producto, cantidad, precio, iva) VALUES (?,?,?,?,?) \", \n            \"$id$_SeparadorCampos_$id_producto$_SeparadorCampos_$cantidad$_SeparadorCampos_\" . $producto[\"precio_venta\"] . \"$_SeparadorCampos_\" . $producto[\"iva\"]);\n        $result = calcularTotalVenta($id, 1);\n        \n        $total = number_format($result[\"total\"], 2);\n        $iva = number_format($result[\"iva\"], 2);\n        $id_venta = $id;\n        PCO_CargarFormulario(8, 1, \"id\", $id_venta);\n    }\n}\n\nif($PCO_Accion == \"VENTA_agregarProducto\") {\n\n    /* if(!$id) {\n        //crear cliente en caso de que no llegue id_cliente\n        if(!$id_cliente) {\n            PCO_EjecutarSQLUnaria(\"INSERT INTO app_clientes (nombre_completo, numero_documento, telefono) VALUES (?,?,?) \",\n                \"$nombre_completo$_SeparadorCampos_$numero_documento$_SeparadorCampos_$telefono\"\n            );\n            $id_cliente = PCO_ObtenerUltimoIDInsertado();\n        }\n        PCO_EjecutarSQLUnaria(\"INSERT INTO app_ventas (id_cliente, usuario) VALUES (?,?) \", \"$id_cliente$_SeparadorCampos_$PCOSESS_LoginUsuario\");\n        $id = PCO_ObtenerUltimoIDInsertado();\n    } */\n    $producto = PCO_EjecutarSQL(\"\n        SELECT id, precio_venta, iva, inventario\n        FROM app_productos\n        WHERE id = \'$id_producto\'\n    \")->fetch();\n    if($producto[\"id\"]) {\n        $existe = PCO_EjecutarSQL(\"\n            SELECT count(id)\n            FROM app_ventas_detalle\n            WHERE id_venta = $id AND id_producto = \'$id_producto\'\n        \")->fetchColumn();\n        if($existe > 0) {\n            print_r(\'{\"success\": false, \"msg\": \"El producto ya se ha ingresado\"}\');\n            die();\n        }\n        if($producto[\"inventario\"] < $cantidad) {\n            print_r(\'{\"success\": false, \"msg\": \"La cantidad digitada supera la del invetario\"}\');\n            die();\n        }\n        $inventarioNew = $producto[\"inventario\"] - $cantidad;\n        PCO_EjecutarSQLUnaria(\"UPDATE app_productos SET inventario = $inventarioNew WHERE id = \" . $producto[\"id\"]);\n        PCO_EjecutarSQLUnaria(\"INSERT INTO app_ventas_detalle (id_venta, id_producto, cantidad, precio, iva) VALUES (?,?,?,?,?) \", \n            \"$id$_SeparadorCampos_$id_producto$_SeparadorCampos_$cantidad$_SeparadorCampos_\" . $producto[\"precio_venta\"] . \"$_SeparadorCampos_\" . $producto[\"iva\"]);\n        $result = calcularTotalVenta($id);\n        print_r(\'{\"success\": true, \"id\": \' . $id . \', \' . $result . \'}\');\n        die();\n    }\n    print_r(\'{\"success\": false, \"msg\": \"No se ha encontrado el producto seleccionado\"}\');\n    die();\n}\n\nif($PCO_Accion == \"VENTA_eliminarProducto\") {\n\n    if($id_venta_detalle && $id_venta) {\n        $producto = PCO_EjecutarSQL(\"\n            SELECT p.inventario, vd.cantidad, p.id\n            FROM app_ventas_detalle vd, app_productos p\n            WHERE vd.id_producto = p.id AND vd.id = \'$id_venta_detalle\'\n        \")->fetch();\n        //Restablecemos el inventario\n        $inventarioNew = $producto[\"inventario\"] + $producto[\"cantidad\"];\n        PCO_EjecutarSQLUnaria(\"UPDATE app_productos SET inventario = $inventarioNew WHERE id = \" . $producto[\"id\"]);\n        PCO_EjecutarSQLUnaria(\"DELETE FROM app_ventas_detalle WHERE id_venta = $id_venta AND id = $id_venta_detalle\");\n        $result = calcularTotalVenta($id_venta);\n        print_r(\'{\"success\": true, \"msg\": \"Se ha eliminado el producto exitosamente\", \' . $result . \'}\');\n        die();\n    }\n    print_r(\'{\"success\": false, \"msg\": \"No se pudo eliminar el producto\"}\');\n    die();\n}\n\nif($PCO_Accion == \"VENTA_imprimirFactura\") {\n\n    //sleep(2);\n    // echo \"$PCO_Valor\";\n    if($PCO_Valor)\n        $id = $PCO_Valor;\n    if($id) {\n        include_once \"imprimirFactura.php\";\n    }\n}','A'),(498,'core_formulario[8].javascript','2024-11-14 23:41:00','rafael',253,9031,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, iva_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            $(\'#id_cliente\').val(idClienteDB.value);\n            PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n            if($(\'#id_cliente\').val() == 1) {\n                $(\'#PCOContenedor_placa\').show();\n            } else {\n                $(\'#PCOContenedor_placa\').hide();\n            }\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n            $(\'#PCOContenedor_placa\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction cargarDatosFE(resp) {\n\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    if(!id.value && resp.id)\n        id.value = resp.id;\n    actualizarInforme();\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction hola(){\n    console.log(\'hola\');\n}\n\nfunction editProduct(){\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n    \'&id2=\' +  document.FRMBASEINFORME.PCO_Valor.value+\n    \'&tipo_venta2=\'+tipo_venta.value\n    ));\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    \n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(499,'core_formulario[8].javascript','2024-11-14 23:46:00','rafael',254,9067,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, iva_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            $(\'#id_cliente\').val(idClienteDB.value);\n            PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n            if($(\'#id_cliente\').val() == 1) {\n                $(\'#PCOContenedor_placa\').show();\n            } else {\n                $(\'#PCOContenedor_placa\').hide();\n            }\n            onChangeTipoProducto();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n            $(\'#PCOContenedor_placa\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction cargarDatosFE(resp) {\n\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    if(!id.value && resp.id)\n        id.value = resp.id;\n    actualizarInforme();\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction hola(){\n    console.log(\'hola\');\n}\n\nfunction editProduct(){\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n    \'&id2=\' +  document.FRMBASEINFORME.PCO_Valor.value+\n    \'&tipo_venta2=\'+tipo_venta.value\n    ));\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    \n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(500,'core_formulario[8].javascript','2024-11-14 23:47:00','rafael',254,9069,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, iva_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            // $(\'#id_cliente\').val(idClienteDB.value);\n            PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n            if($(\'#id_cliente\').val() == 1) {\n                $(\'#PCOContenedor_placa\').show();\n            } else {\n                $(\'#PCOContenedor_placa\').hide();\n            }\n            onChangeTipoProducto();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n            $(\'#PCOContenedor_placa\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction cargarDatosFE(resp) {\n\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    if(!id.value && resp.id)\n        id.value = resp.id;\n    actualizarInforme();\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction hola(){\n    console.log(\'hola\');\n}\n\nfunction editProduct(){\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n    \'&id2=\' +  document.FRMBASEINFORME.PCO_Valor.value+\n    \'&tipo_venta2=\'+tipo_venta.value\n    ));\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    \n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(501,'mod/app_ventas/index.php','2024-11-14 23:54:00','rafael',161,6705,'<?php\n\nfunction calcularTotalVenta($id, $returnArr = \"\") {\n    $venta = PCO_EjecutarSQL(\"\n        SELECT SUM(precio * cantidad) as total, SUM(precio * iva/100) iva\n        FROM app_ventas_detalle\n        WHERE id_venta = \'$id\' GROUP BY id_venta\n    \")->fetch();\n    $total = $venta[\"total\"] ? $venta[\"total\"] : 0;\n    $iva = $venta[\"iva\"] ? $venta[\"iva\"] : 0;\n    PCO_EjecutarSQLUnaria(\"UPDATE app_ventas SET total = $total, iva = $iva WHERE id = $id \");\n    if($returnArr)\n        return $venta;\n    return \'\"total\": \' . $total . \', \"iva\": \' . $iva;\n}\n\nif($PCO_Accion == \"VENTA_ingresarRealizarVenta\") {\n    $ventaAbierta = PCO_EjecutarSQL(\"\n        SELECT id, id_cliente, total, iva, placa\n        FROM app_ventas\n        WHERE id=\'$PCO_Valor\'\n    \")->fetch();\n    /*if (!$ventaAbierta[\"id\"]) {\n        \n        $ventaAbierta = PCO_EjecutarSQL(\"\n            SELECT *\n            FROM app_ventas\n            WHERE estado = 0 ORDER BY id limit 1\n        \")->fetch();   \n    }*/\n\n    $id_venta = $ventaAbierta[\"id\"] || \"\";\n    if($id_venta) {\n        $total = number_format($ventaAbierta[\"total\"], 2);\n        $iva = number_format($ventaAbierta[\"iva\"], 2);\n        $id_cliente = $ventaAbierta[\"id_cliente\"];\n    }\n\n    PCO_CargarFormulario(8, 1, \"id\", $id_venta);\n}\n\nif($PCO_Accion == \"VENTA_agregarProductoCrearOC\") {\n\n    if(!$id) {\n        //crear cliente en caso de que no llegue id_cliente\n        if(!$id_cliente) {\n            PCO_EjecutarSQLUnaria(\"INSERT INTO app_clientes (nombre_completo, numero_documento, telefono) VALUES (?,?,?) \",\n                \"$nombre_completo$_SeparadorCampos_$numero_documento$_SeparadorCampos_$telefono\"\n            );\n            $id_cliente = PCO_ObtenerUltimoIDInsertado();\n        }\n        $todayMysql = date(\"Y-m-d H:i:s\");\n        PCO_EjecutarSQLUnaria(\"INSERT INTO app_ventas (id_cliente, usuario, fecha, placa, id_mecanico) VALUES (?,?,?,?,?) \", \"$id_cliente$_SeparadorCampos_$PCOSESS_LoginUsuario$_SeparadorCampos_$todayMysql$_SeparadorCampos_$placa$_SeparadorCampos_$id_mecanico\");\n        $id = PCO_ObtenerUltimoIDInsertado();\n    }\n    $producto = PCO_EjecutarSQL(\"\n        SELECT id, precio_venta, iva, inventario\n        FROM app_productos\n        WHERE id = \'$id_producto\'\n    \")->fetch();\n    if($producto[\"id\"]) {\n        $existe = PCO_EjecutarSQL(\"\n            SELECT count(id)\n            FROM app_ventas_detalle\n            WHERE id_venta = $id AND id_producto = \'$id_producto\'\n        \")->fetchColumn();\n        if($existe > 0) {\n            print_r(\'{\"success\": false, \"msg\": \"El producto ya se ha ingresado\"}\');\n            die();\n        }\n        if($producto[\"inventario\"] < $cantidad) {\n            print_r(\'{\"success\": false, \"msg\": \"La cantidad digitada supera la del invetario\"}\');\n            die();\n        }\n        $inventarioNew = $producto[\"inventario\"] - $cantidad;\n        PCO_EjecutarSQLUnaria(\"UPDATE app_productos SET inventario = $inventarioNew WHERE id = \" . $producto[\"id\"]);\n        PCO_EjecutarSQLUnaria(\"INSERT INTO app_ventas_detalle (id_venta, id_producto, cantidad, precio, iva) VALUES (?,?,?,?,?) \", \n            \"$id$_SeparadorCampos_$id_producto$_SeparadorCampos_$cantidad$_SeparadorCampos_\" . $producto[\"precio_venta\"] . \"$_SeparadorCampos_\" . $producto[\"iva\"]);\n        $result = calcularTotalVenta($id, 1);\n        \n        $total = number_format($result[\"total\"], 2);\n        $iva = number_format($result[\"iva\"], 2);\n        $id_venta = $id;\n        PCO_CargarFormulario(8, 1, \"id\", $id_venta);\n    }\n}\n\nif($PCO_Accion == \"VENTA_agregarProducto\") {\n\n    /* if(!$id) {\n        //crear cliente en caso de que no llegue id_cliente\n        if(!$id_cliente) {\n            PCO_EjecutarSQLUnaria(\"INSERT INTO app_clientes (nombre_completo, numero_documento, telefono) VALUES (?,?,?) \",\n                \"$nombre_completo$_SeparadorCampos_$numero_documento$_SeparadorCampos_$telefono\"\n            );\n            $id_cliente = PCO_ObtenerUltimoIDInsertado();\n        }\n        PCO_EjecutarSQLUnaria(\"INSERT INTO app_ventas (id_cliente, usuario) VALUES (?,?) \", \"$id_cliente$_SeparadorCampos_$PCOSESS_LoginUsuario\");\n        $id = PCO_ObtenerUltimoIDInsertado();\n    } */\n    $producto = PCO_EjecutarSQL(\"\n        SELECT id, precio_venta, iva\n        FROM app_productos\n        WHERE id = \'$id_producto\'\n    \")->fetch();\n    if($producto[\"id\"]) {\n        $existe = PCO_EjecutarSQL(\"\n            SELECT count(id)\n            FROM app_ventas_detalle\n            WHERE id_venta = $id AND id_producto = \'$id_producto\'\n        \")->fetchColumn();\n        if($existe > 0) {\n            print_r(\'{\"success\": false, \"msg\": \"El producto ya se ha ingresado\"}\');\n            die();\n        }\n        /* if($producto[\"inventario\"] < $cantidad) {\n            print_r(\'{\"success\": false, \"msg\": \"La cantidad digitada supera la del invetario\"}\');\n            die();\n        } */\n        $inventarioNew = $producto[\"inventario\"] - $cantidad;\n        PCO_EjecutarSQLUnaria(\"UPDATE app_productos SET inventario = $inventarioNew WHERE id = \" . $producto[\"id\"]);\n        PCO_EjecutarSQLUnaria(\"INSERT INTO app_ventas_detalle (id_venta, id_producto, cantidad, precio, iva) VALUES (?,?,?,?,?) \", \n            \"$id$_SeparadorCampos_$id_producto$_SeparadorCampos_$cantidad$_SeparadorCampos_\" . $producto[\"precio_venta\"] . \"$_SeparadorCampos_\" . $producto[\"iva\"]);\n        $result = calcularTotalVenta($id);\n        print_r(\'{\"success\": true, \"id\": \' . $id . \', \' . $result . \'}\');\n        die();\n    }\n    print_r(\'{\"success\": false, \"msg\": \"No se ha encontrado el producto seleccionado\"}\');\n    die();\n}\n\nif($PCO_Accion == \"VENTA_eliminarProducto\") {\n\n    if($id_venta_detalle && $id_venta) {\n        $producto = PCO_EjecutarSQL(\"\n            SELECT p.inventario, vd.cantidad, p.id\n            FROM app_ventas_detalle vd, app_productos p\n            WHERE vd.id_producto = p.id AND vd.id = \'$id_venta_detalle\'\n        \")->fetch();\n        //Restablecemos el inventario\n        $inventarioNew = $producto[\"inventario\"] + $producto[\"cantidad\"];\n        PCO_EjecutarSQLUnaria(\"UPDATE app_productos SET inventario = $inventarioNew WHERE id = \" . $producto[\"id\"]);\n        PCO_EjecutarSQLUnaria(\"DELETE FROM app_ventas_detalle WHERE id_venta = $id_venta AND id = $id_venta_detalle\");\n        $result = calcularTotalVenta($id_venta);\n        print_r(\'{\"success\": true, \"msg\": \"Se ha eliminado el producto exitosamente\", \' . $result . \'}\');\n        die();\n    }\n    print_r(\'{\"success\": false, \"msg\": \"No se pudo eliminar el producto\"}\');\n    die();\n}\n\nif($PCO_Accion == \"VENTA_imprimirFactura\") {\n\n    //sleep(2);\n    // echo \"$PCO_Valor\";\n    if($PCO_Valor)\n        $id = $PCO_Valor;\n    if($id) {\n        include_once \"imprimirFactura.php\";\n    }\n}','A'),(502,'mod/app_ventas/index.php','2024-11-14 23:56:00','rafael',161,6691,'<?php\n\nfunction calcularTotalVenta($id, $returnArr = \"\") {\n    $venta = PCO_EjecutarSQL(\"\n        SELECT SUM(precio * cantidad) as total, SUM(precio * iva/100) iva\n        FROM app_ventas_detalle\n        WHERE id_venta = \'$id\' GROUP BY id_venta\n    \")->fetch();\n    $total = $venta[\"total\"] ? $venta[\"total\"] : 0;\n    $iva = $venta[\"iva\"] ? $venta[\"iva\"] : 0;\n    PCO_EjecutarSQLUnaria(\"UPDATE app_ventas SET total = $total, iva = $iva WHERE id = $id \");\n    if($returnArr)\n        return $venta;\n    return \'\"total\": \' . $total . \', \"iva\": \' . $iva;\n}\n\nif($PCO_Accion == \"VENTA_ingresarRealizarVenta\") {\n    $ventaAbierta = PCO_EjecutarSQL(\"\n        SELECT id, id_cliente, total, iva, placa\n        FROM app_ventas\n        WHERE id=\'$PCO_Valor\'\n    \")->fetch();\n    /*if (!$ventaAbierta[\"id\"]) {\n        \n        $ventaAbierta = PCO_EjecutarSQL(\"\n            SELECT *\n            FROM app_ventas\n            WHERE estado = 0 ORDER BY id limit 1\n        \")->fetch();   \n    }*/\n\n    $id_venta = $ventaAbierta[\"id\"] || \"\";\n    if($id_venta) {\n        $total = number_format($ventaAbierta[\"total\"], 2);\n        $iva = number_format($ventaAbierta[\"iva\"], 2);\n        $id_cliente = $ventaAbierta[\"id_cliente\"];\n    }\n\n    PCO_CargarFormulario(8, 1, \"id\", $id_venta);\n}\n\nif($PCO_Accion == \"VENTA_agregarProductoCrearOC\") {\n\n    if(!$id) {\n        //crear cliente en caso de que no llegue id_cliente\n        if(!$id_cliente) {\n            PCO_EjecutarSQLUnaria(\"INSERT INTO app_clientes (nombre_completo, numero_documento, telefono) VALUES (?,?,?) \",\n                \"$nombre_completo$_SeparadorCampos_$numero_documento$_SeparadorCampos_$telefono\"\n            );\n            $id_cliente = PCO_ObtenerUltimoIDInsertado();\n        }\n        $todayMysql = date(\"Y-m-d H:i:s\");\n        PCO_EjecutarSQLUnaria(\"INSERT INTO app_ventas (id_cliente, usuario, fecha, placa, id_mecanico) VALUES (?,?,?,?,?) \", \"$id_cliente$_SeparadorCampos_$PCOSESS_LoginUsuario$_SeparadorCampos_$todayMysql$_SeparadorCampos_$placa$_SeparadorCampos_$id_mecanico\");\n        $id = PCO_ObtenerUltimoIDInsertado();\n    }\n    $producto = PCO_EjecutarSQL(\"\n        SELECT id, precio_venta, iva, inventario\n        FROM app_productos\n        WHERE id = \'$id_producto\'\n    \")->fetch();\n    if($producto[\"id\"]) {\n        $existe = PCO_EjecutarSQL(\"\n            SELECT count(id)\n            FROM app_ventas_detalle\n            WHERE id_venta = $id AND id_producto = \'$id_producto\'\n        \")->fetchColumn();\n        if($existe > 0) {\n            print_r(\'{\"success\": false, \"msg\": \"El producto ya se ha ingresado\"}\');\n            die();\n        }\n        if($producto[\"inventario\"] < $cantidad) {\n            print_r(\'{\"success\": false, \"msg\": \"La cantidad digitada supera la del invetario\"}\');\n            die();\n        }\n        $inventarioNew = $producto[\"inventario\"] - $cantidad;\n        PCO_EjecutarSQLUnaria(\"UPDATE app_productos SET inventario = $inventarioNew WHERE id = \" . $producto[\"id\"]);\n        PCO_EjecutarSQLUnaria(\"INSERT INTO app_ventas_detalle (id_venta, id_producto, cantidad, precio, iva) VALUES (?,?,?,?,?) \", \n            \"$id$_SeparadorCampos_$id_producto$_SeparadorCampos_$cantidad$_SeparadorCampos_\" . $producto[\"precio_venta\"] . \"$_SeparadorCampos_\" . $producto[\"iva\"]);\n        $result = calcularTotalVenta($id, 1);\n        \n        $total = number_format($result[\"total\"], 2);\n        $iva = number_format($result[\"iva\"], 2);\n        $id_venta = $id;\n        PCO_CargarFormulario(8, 1, \"id\", $id_venta);\n    }\n}\n\nif($PCO_Accion == \"VENTA_agregarProducto\") {\n\n    /* if(!$id) {\n        //crear cliente en caso de que no llegue id_cliente\n        if(!$id_cliente) {\n            PCO_EjecutarSQLUnaria(\"INSERT INTO app_clientes (nombre_completo, numero_documento, telefono) VALUES (?,?,?) \",\n                \"$nombre_completo$_SeparadorCampos_$numero_documento$_SeparadorCampos_$telefono\"\n            );\n            $id_cliente = PCO_ObtenerUltimoIDInsertado();\n        }\n        PCO_EjecutarSQLUnaria(\"INSERT INTO app_ventas (id_cliente, usuario) VALUES (?,?) \", \"$id_cliente$_SeparadorCampos_$PCOSESS_LoginUsuario\");\n        $id = PCO_ObtenerUltimoIDInsertado();\n    } */\n    $producto = PCO_EjecutarSQL(\"\n        SELECT id, precio_venta, iva\n        FROM app_productos\n        WHERE id = \'$id_producto\'\n    \")->fetch();\n    if($producto[\"id\"]) {\n        $existe = PCO_EjecutarSQL(\"\n            SELECT count(id)\n            FROM app_ventas_detalle\n            WHERE id_venta = $id AND id_producto = \'$id_producto\'\n        \")->fetchColumn();\n        if($existe > 0) {\n            print_r(\'{\"success\": false, \"msg\": \"El producto ya se ha ingresado\"}\');\n            die();\n        }\n        /* if($producto[\"inventario\"] < $cantidad) {\n            print_r(\'{\"success\": false, \"msg\": \"La cantidad digitada supera la del invetario\"}\');\n            die();\n        } */\n        // $inventarioNew = $producto[\"inventario\"] - $cantidad;\n        // PCO_EjecutarSQLUnaria(\"UPDATE app_productos SET inventario = $inventarioNew WHERE id = \" . $producto[\"id\"]);\n        PCO_EjecutarSQLUnaria(\"INSERT INTO app_ventas_detalle (id_venta, id_producto, cantidad, precio, iva) VALUES (?,?,?,?,?) \", \n            \"$id$_SeparadorCampos_$id_producto$_SeparadorCampos_$cantidad$_SeparadorCampos_$precio_venta$_SeparadorCampos_\" . $producto[\"iva\"]);\n        $result = calcularTotalVenta($id);\n        print_r(\'{\"success\": true, \"id\": \' . $id . \', \' . $result . \'}\');\n        die();\n    }\n    print_r(\'{\"success\": false, \"msg\": \"No se ha encontrado el producto seleccionado\"}\');\n    die();\n}\n\nif($PCO_Accion == \"VENTA_eliminarProducto\") {\n\n    if($id_venta_detalle && $id_venta) {\n        $producto = PCO_EjecutarSQL(\"\n            SELECT p.inventario, vd.cantidad, p.id\n            FROM app_ventas_detalle vd, app_productos p\n            WHERE vd.id_producto = p.id AND vd.id = \'$id_venta_detalle\'\n        \")->fetch();\n        //Restablecemos el inventario\n        $inventarioNew = $producto[\"inventario\"] + $producto[\"cantidad\"];\n        PCO_EjecutarSQLUnaria(\"UPDATE app_productos SET inventario = $inventarioNew WHERE id = \" . $producto[\"id\"]);\n        PCO_EjecutarSQLUnaria(\"DELETE FROM app_ventas_detalle WHERE id_venta = $id_venta AND id = $id_venta_detalle\");\n        $result = calcularTotalVenta($id_venta);\n        print_r(\'{\"success\": true, \"msg\": \"Se ha eliminado el producto exitosamente\", \' . $result . \'}\');\n        die();\n    }\n    print_r(\'{\"success\": false, \"msg\": \"No se pudo eliminar el producto\"}\');\n    die();\n}\n\nif($PCO_Accion == \"VENTA_imprimirFactura\") {\n\n    //sleep(2);\n    // echo \"$PCO_Valor\";\n    if($PCO_Valor)\n        $id = $PCO_Valor;\n    if($id) {\n        include_once \"imprimirFactura.php\";\n    }\n}','A'),(503,'mod/app_ventas/index.php','2024-11-14 23:58:00','rafael',161,6690,'<?php\n\nfunction calcularTotalVenta($id, $returnArr = \"\") {\n    $venta = PCO_EjecutarSQL(\"\n        SELECT SUM(precio * cantidad) as total, SUM(precio * iva/100) iva\n        FROM app_ventas_detalle\n        WHERE id_venta = \'$id\' GROUP BY id_venta\n    \")->fetch();\n    $total = $venta[\"total\"] ? $venta[\"total\"] : 0;\n    $iva = $venta[\"iva\"] ? $venta[\"iva\"] : 0;\n    PCO_EjecutarSQLUnaria(\"UPDATE app_ventas SET total = $total, iva = $iva WHERE id = $id \");\n    if($returnArr)\n        return $venta;\n    return \'\"total\": \' . $total . \', \"iva\": \' . $iva;\n}\n\nif($PCO_Accion == \"VENTA_ingresarRealizarVenta\") {\n    $ventaAbierta = PCO_EjecutarSQL(\"\n        SELECT id, id_cliente, total, iva, placa\n        FROM app_ventas\n        WHERE id=\'$PCO_Valor\'\n    \")->fetch();\n    /*if (!$ventaAbierta[\"id\"]) {\n        \n        $ventaAbierta = PCO_EjecutarSQL(\"\n            SELECT *\n            FROM app_ventas\n            WHERE estado = 0 ORDER BY id limit 1\n        \")->fetch();   \n    }*/\n\n    $id_venta = $ventaAbierta[\"id\"] || \"\";\n    if($id_venta) {\n        $total = number_format($ventaAbierta[\"total\"], 2);\n        $iva = number_format($ventaAbierta[\"iva\"], 2);\n        $id_cliente = $ventaAbierta[\"id_cliente\"];\n    }\n\n    PCO_CargarFormulario(8, 1, \"id\", $id_venta);\n}\n\nif($PCO_Accion == \"VENTA_agregarProductoCrearOC\") {\n\n    if(!$id) {\n        //crear cliente en caso de que no llegue id_cliente\n        if(!$id_cliente) {\n            PCO_EjecutarSQLUnaria(\"INSERT INTO app_clientes (nombre_completo, numero_documento, telefono) VALUES (?,?,?) \",\n                \"$nombre_completo$_SeparadorCampos_$numero_documento$_SeparadorCampos_$telefono\"\n            );\n            $id_cliente = PCO_ObtenerUltimoIDInsertado();\n        }\n        $todayMysql = date(\"Y-m-d H:i:s\");\n        PCO_EjecutarSQLUnaria(\"INSERT INTO app_ventas (id_cliente, usuario, fecha, placa, id_mecanico) VALUES (?,?,?,?,?) \", \"$id_cliente$_SeparadorCampos_$PCOSESS_LoginUsuario$_SeparadorCampos_$todayMysql$_SeparadorCampos_$placa$_SeparadorCampos_$id_mecanico\");\n        $id = PCO_ObtenerUltimoIDInsertado();\n    }\n    $producto = PCO_EjecutarSQL(\"\n        SELECT id, precio_venta, iva, inventario\n        FROM app_productos\n        WHERE id = \'$id_producto\'\n    \")->fetch();\n    if($producto[\"id\"]) {\n        $existe = PCO_EjecutarSQL(\"\n            SELECT count(id)\n            FROM app_ventas_detalle\n            WHERE id_venta = $id AND id_producto = \'$id_producto\'\n        \")->fetchColumn();\n        if($existe > 0) {\n            print_r(\'{\"success\": false, \"msg\": \"El producto ya se ha ingresado\"}\');\n            die();\n        }\n        if($producto[\"inventario\"] < $cantidad) {\n            print_r(\'{\"success\": false, \"msg\": \"La cantidad digitada supera la del invetario\"}\');\n            die();\n        }\n        $inventarioNew = $producto[\"inventario\"] - $cantidad;\n        PCO_EjecutarSQLUnaria(\"UPDATE app_productos SET inventario = $inventarioNew WHERE id = \" . $producto[\"id\"]);\n        PCO_EjecutarSQLUnaria(\"INSERT INTO app_ventas_detalle (id_venta, id_producto, cantidad, precio, iva) VALUES (?,?,?,?,?) \", \n            \"$id$_SeparadorCampos_$id_producto$_SeparadorCampos_$cantidad$_SeparadorCampos_\" . $producto[\"precio_venta\"] . \"$_SeparadorCampos_\" . $producto[\"iva\"]);\n        $result = calcularTotalVenta($id, 1);\n        \n        $total = number_format($result[\"total\"], 2);\n        $iva = number_format($result[\"iva\"], 2);\n        $id_venta = $id;\n        PCO_CargarFormulario(8, 1, \"id\", $id_venta);\n    }\n}\n\nif($PCO_Accion == \"VENTA_agregarProducto\") {\n\n    /* if(!$id) {\n        //crear cliente en caso de que no llegue id_cliente\n        if(!$id_cliente) {\n            PCO_EjecutarSQLUnaria(\"INSERT INTO app_clientes (nombre_completo, numero_documento, telefono) VALUES (?,?,?) \",\n                \"$nombre_completo$_SeparadorCampos_$numero_documento$_SeparadorCampos_$telefono\"\n            );\n            $id_cliente = PCO_ObtenerUltimoIDInsertado();\n        }\n        PCO_EjecutarSQLUnaria(\"INSERT INTO app_ventas (id_cliente, usuario) VALUES (?,?) \", \"$id_cliente$_SeparadorCampos_$PCOSESS_LoginUsuario\");\n        $id = PCO_ObtenerUltimoIDInsertado();\n    } */\n    $producto = PCO_EjecutarSQL(\"\n        SELECT id, precio_venta, iva\n        FROM app_productos\n        WHERE id = \'$id_producto\'\n    \")->fetch();\n    if($producto[\"id\"]) {\n        $existe = PCO_EjecutarSQL(\"\n            SELECT count(id)\n            FROM app_ventas_detalle\n            WHERE id_venta = $id AND id_producto = \'$id_producto\'\n        \")->fetchColumn();\n        if($existe > 0) {\n            print_r(\'{\"success\": false, \"msg\": \"El producto ya se ha ingresado\"}\');\n            die();\n        }\n        /* if($producto[\"inventario\"] < $cantidad) {\n            print_r(\'{\"success\": false, \"msg\": \"La cantidad digitada supera la del invetario\"}\');\n            die();\n        } */\n        // $inventarioNew = $producto[\"inventario\"] - $cantidad;\n        // PCO_EjecutarSQLUnaria(\"UPDATE app_productos SET inventario = $inventarioNew WHERE id = \" . $producto[\"id\"]);\n        PCO_EjecutarSQLUnaria(\"INSERT INTO app_ventas_detalle (id_venta, id_producto, cantidad, precio, iva) VALUES (?,?,?,?,?) \", \n            \"$id$_SeparadorCampos_$id_producto$_SeparadorCampos_$cantidad$_SeparadorCampos_$precioVenta$_SeparadorCampos_\" . $producto[\"iva\"]);\n        $result = calcularTotalVenta($id);\n        print_r(\'{\"success\": true, \"id\": \' . $id . \', \' . $result . \'}\');\n        die();\n    }\n    print_r(\'{\"success\": false, \"msg\": \"No se ha encontrado el producto seleccionado\"}\');\n    die();\n}\n\nif($PCO_Accion == \"VENTA_eliminarProducto\") {\n\n    if($id_venta_detalle && $id_venta) {\n        $producto = PCO_EjecutarSQL(\"\n            SELECT p.inventario, vd.cantidad, p.id\n            FROM app_ventas_detalle vd, app_productos p\n            WHERE vd.id_producto = p.id AND vd.id = \'$id_venta_detalle\'\n        \")->fetch();\n        //Restablecemos el inventario\n        $inventarioNew = $producto[\"inventario\"] + $producto[\"cantidad\"];\n        PCO_EjecutarSQLUnaria(\"UPDATE app_productos SET inventario = $inventarioNew WHERE id = \" . $producto[\"id\"]);\n        PCO_EjecutarSQLUnaria(\"DELETE FROM app_ventas_detalle WHERE id_venta = $id_venta AND id = $id_venta_detalle\");\n        $result = calcularTotalVenta($id_venta);\n        print_r(\'{\"success\": true, \"msg\": \"Se ha eliminado el producto exitosamente\", \' . $result . \'}\');\n        die();\n    }\n    print_r(\'{\"success\": false, \"msg\": \"No se pudo eliminar el producto\"}\');\n    die();\n}\n\nif($PCO_Accion == \"VENTA_imprimirFactura\") {\n\n    //sleep(2);\n    // echo \"$PCO_Valor\";\n    if($PCO_Valor)\n        $id = $PCO_Valor;\n    if($id) {\n        include_once \"imprimirFactura.php\";\n    }\n}','A'),(504,'core_formulario[8].javascript','2024-11-14 23:58:00','rafael',255,9126,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, iva_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            // $(\'#id_cliente\').val(idClienteDB.value);\n            // PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n            if($(\'#id_cliente\').val() == 1) {\n                $(\'#PCOContenedor_placa\').show();\n            } else {\n                $(\'#PCOContenedor_placa\').hide();\n            }\n            onChangeTipoProducto();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n            $(\'#PCOContenedor_placa\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction cargarDatosFE(resp) {\n\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    if(!id.value && resp.id)\n        id.value = resp.id;\n    actualizarInforme();\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&precioVenta=\' + precio.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction hola(){\n    console.log(\'hola\');\n}\n\nfunction editProduct(){\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n    \'&id2=\' +  document.FRMBASEINFORME.PCO_Valor.value+\n    \'&tipo_venta2=\'+tipo_venta.value\n    ));\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    \n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(505,'core_formulario[8].javascript','2024-11-15 00:00:00','rafael',259,9276,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, iva_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago, precio\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            // $(\'#id_cliente\').val(idClienteDB.value);\n            // PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n            if($(\'#id_cliente\').val() == 1) {\n                $(\'#PCOContenedor_placa\').show();\n            } else {\n                $(\'#PCOContenedor_placa\').hide();\n            }\n            onChangeTipoProducto();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n            $(\'#PCOContenedor_placa\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction cargarDatosFE(resp) {\n\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    if(!id.value && resp.id)\n        id.value = resp.id;\n    actualizarInforme();\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&precioVenta=\' + precio.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction hola(){\n    console.log(\'hola\');\n}\n\nfunction editProduct(){\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n    \'&id2=\' +  document.FRMBASEINFORME.PCO_Valor.value+\n    \'&tipo_venta2=\'+tipo_venta.value\n    ));\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    if(!precio.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes agregar un precio al producto\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    \n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(506,'core_formulario[8].javascript','2024-11-15 00:03:00','rafael',259,9282,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, iva_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago, precio\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            // $(\'#id_cliente\').val(idClienteDB.value);\n            // PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n            if($(\'#id_cliente\').val() == 1) {\n                $(\'#PCOContenedor_placa\').show();\n            } else {\n                $(\'#PCOContenedor_placa\').hide();\n            }\n            onChangeTipoProducto();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n            $(\'#PCOContenedor_placa\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction cargarDatosFE(resp) {\n\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    /* if(!id.value && resp.id)\n        id.value = resp.id; */\n    actualizarInforme();\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&precioVenta=\' + precio.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction hola(){\n    console.log(\'hola\');\n}\n\nfunction editProduct(){\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n    \'&id2=\' +  document.FRMBASEINFORME.PCO_Valor.value+\n    \'&tipo_venta2=\'+tipo_venta.value\n    ));\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    if(!precio.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes agregar un precio al producto\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    \n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B');
INSERT INTO `core_pcoder_historial` VALUES (507,'core_formulario[8].javascript','2024-11-15 00:03:00','rafael',259,9305,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, iva_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago, precio\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            // $(\'#id_cliente\').val(idClienteDB.value);\n            // PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n            if($(\'#id_cliente\').val() == 1) {\n                $(\'#PCOContenedor_placa\').show();\n            } else {\n                $(\'#PCOContenedor_placa\').hide();\n            }\n            onChangeTipoProducto();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n            $(\'#PCOContenedor_placa\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction cargarDatosFE(resp) {\nconsole.log(\"resp\", resp);\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    /* if(!id.value && resp.id)\n        id.value = resp.id; */\n    actualizarInforme();\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&precioVenta=\' + precio.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction hola(){\n    console.log(\'hola\');\n}\n\nfunction editProduct(){\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n    \'&id2=\' +  document.FRMBASEINFORME.PCO_Valor.value+\n    \'&tipo_venta2=\'+tipo_venta.value\n    ));\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    if(!precio.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes agregar un precio al producto\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    \n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(508,'core_formulario[8].javascript','2024-11-15 00:05:00','rafael',259,9308,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, iva_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago, precio\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            // $(\'#id_cliente\').val(idClienteDB.value);\n            // PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n            if($(\'#id_cliente\').val() == 1) {\n                $(\'#PCOContenedor_placa\').show();\n            } else {\n                $(\'#PCOContenedor_placa\').hide();\n            }\n            onChangeTipoProducto();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n            $(\'#PCOContenedor_placa\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction cargarDatosFE(resp) {\nconsole.log(\"resp\", resp);\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    /* if(!id.value && resp.id)\n        id.value = resp.id; */\n    actualizarInforme();\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&precioVenta=\' + precio.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction hola(){\n    console.log(\'hola\');\n}\n\nfunction editProduct(){\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n    \'&id2=\' +  document.FRMBASEINFORME.PCO_Valor.value+\n    \'&tipo_venta2=\'+tipo_venta.value\n    ));\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    if(!precio.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes agregar un precio al producto\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    \n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(509,'core_formulario[8].javascript','2024-11-15 00:06:00','rafael',259,9299,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago, precio\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            // $(\'#id_cliente\').val(idClienteDB.value);\n            // PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n            if($(\'#id_cliente\').val() == 1) {\n                $(\'#PCOContenedor_placa\').show();\n            } else {\n                $(\'#PCOContenedor_placa\').hide();\n            }\n            onChangeTipoProducto();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n            $(\'#PCOContenedor_placa\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction cargarDatosFE(resp) {\nconsole.log(\"resp\", resp);\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    // iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    /* if(!id.value && resp.id)\n        id.value = resp.id; */\n    actualizarInforme();\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&precioVenta=\' + precio.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction hola(){\n    console.log(\'hola\');\n}\n\nfunction editProduct(){\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n    \'&id2=\' +  document.FRMBASEINFORME.PCO_Valor.value+\n    \'&tipo_venta2=\'+tipo_venta.value\n    ));\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    if(!precio.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes agregar un precio al producto\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    \n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(510,'core_formulario[8].javascript','2024-11-15 00:07:00','rafael',259,9301,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago, precio\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            // $(\'#id_cliente\').val(idClienteDB.value);\n            // PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n            if($(\'#id_cliente\').val() == 1) {\n                $(\'#PCOContenedor_placa\').show();\n            } else {\n                $(\'#PCOContenedor_placa\').hide();\n            }\n            onChangeTipoProducto();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n            $(\'#PCOContenedor_placa\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction cargarDatosFE(resp) {\nconsole.log(\"resp\", resp);\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    // iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    /* if(!id.value && resp.id)\n        id.value = resp.id; */\n    actualizarInforme();\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&precioVenta=\' + precio.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction hola(){\n    console.log(\'hola\');\n}\n\nfunction editProduct(){\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n    \'&id2=\' +  document.FRMBASEINFORME.PCO_Valor.value+\n    \'&tipo_venta2=\'+tipo_venta.value\n    ));\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    if(!precio.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes agregar un precio al producto\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    \n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(511,'core_formulario[8].javascript','2024-11-15 14:41:00','rafael',261,9403,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago, precio\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            // $(\'#id_cliente\').val(idClienteDB.value);\n            // PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n            if($(\'#id_cliente\').val() == 1) {\n                $(\'#PCOContenedor_placa\').show();\n            } else {\n                $(\'#PCOContenedor_placa\').hide();\n            }\n            onChangeTipoProducto();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n            $(\'#PCOContenedor_placa\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction cargarDatosFE(resp) {\nconsole.log(\"resp\", resp);\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    // iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    /* if(!id.value && resp.id)\n        id.value = resp.id; */\n    actualizarInforme();\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&precioVenta=\' + precio.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n                $(\'#id_cliente\').val(\'\');\n                PCOJS_ActualizarComboBox(\'id_cliente\');\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction hola(){\n    console.log(\'hola\');\n}\n\nfunction editProduct(){\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n    \'&id2=\' +  document.FRMBASEINFORME.PCO_Valor.value+\n    \'&tipo_venta2=\'+tipo_venta.value\n    ));\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    if(!precio.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes agregar un precio al producto\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    \n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(512,'core_formulario[8].javascript','2024-11-15 14:42:00','rafael',262,9439,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago, precio\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            // $(\'#id_cliente\').val(idClienteDB.value);\n            // PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n            if($(\'#id_cliente\').val() == 1) {\n                $(\'#PCOContenedor_placa\').show();\n            } else {\n                $(\'#PCOContenedor_placa\').hide();\n            }\n            onChangeTipoProducto();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n            $(\'#PCOContenedor_placa\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction cargarDatosFE(resp) {\nconsole.log(\"resp\", resp);\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    // iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    /* if(!id.value && resp.id)\n        id.value = resp.id; */\n    actualizarInforme();\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&precioVenta=\' + precio.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n                $(\'#id_producto\').val(\'\');\n                $(\'#precio\').val(\'\');\n                PCOJS_ActualizarComboBox(\'id_producto\');\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction hola(){\n    console.log(\'hola\');\n}\n\nfunction editProduct(){\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n    \'&id2=\' +  document.FRMBASEINFORME.PCO_Valor.value+\n    \'&tipo_venta2=\'+tipo_venta.value\n    ));\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    if(!precio.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes agregar un precio al producto\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    \n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(513,'core_formulario[8].javascript','2024-11-15 14:42:00','rafael',262,9439,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago, precio\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            // $(\'#id_cliente\').val(idClienteDB.value);\n            // PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n            if($(\'#id_cliente\').val() == 1) {\n                $(\'#PCOContenedor_placa\').show();\n            } else {\n                $(\'#PCOContenedor_placa\').hide();\n            }\n            onChangeTipoProducto();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n            $(\'#PCOContenedor_placa\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction cargarDatosFE(resp) {\nconsole.log(\"resp\", resp);\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    // iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    /* if(!id.value && resp.id)\n        id.value = resp.id; */\n    actualizarInforme();\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&precioVenta=\' + precio.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n                $(\'#id_producto\').val(\'\');\n                PCOJS_ActualizarComboBox(\'id_producto\');\n                $(\'#precio\').val(\'\');\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction hola(){\n    console.log(\'hola\');\n}\n\nfunction editProduct(){\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n    \'&id2=\' +  document.FRMBASEINFORME.PCO_Valor.value+\n    \'&tipo_venta2=\'+tipo_venta.value\n    ));\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    if(!precio.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes agregar un precio al producto\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    \n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(514,'core_formulario[8].javascript','2024-11-15 14:43:00','rafael',263,9480,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago, precio\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            // $(\'#id_cliente\').val(idClienteDB.value);\n            // PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n            if($(\'#id_cliente\').val() == 1) {\n                $(\'#PCOContenedor_placa\').show();\n            } else {\n                $(\'#PCOContenedor_placa\').hide();\n            }\n            onChangeTipoProducto();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n            $(\'#PCOContenedor_placa\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction cargarDatosFE(resp) {\nconsole.log(\"resp\", resp);\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    // iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    /* if(!id.value && resp.id)\n        id.value = resp.id; */\n    actualizarInforme();\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&precioVenta=\' + precio.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n                $(\'#id_producto\').val(\'\');\n                PCOJS_ActualizarComboBox(\'id_producto\');\n                $(\'#precio\').val(\'\');\n                $(\'#cantidad\').val(\'1\');\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction hola(){\n    console.log(\'hola\');\n}\n\nfunction editProduct(){\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n    \'&id2=\' +  document.FRMBASEINFORME.PCO_Valor.value+\n    \'&tipo_venta2=\'+tipo_venta.value\n    ));\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    if(!precio.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes agregar un precio al producto\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    \n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(515,'core_formulario[8].javascript','2024-11-15 14:44:00','rafael',263,9476,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago, precio\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            // $(\'#id_cliente\').val(idClienteDB.value);\n            // PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n            if($(\'#id_cliente\').val() == 1) {\n                $(\'#PCOContenedor_placa\').show();\n            } else {\n                $(\'#PCOContenedor_placa\').hide();\n            }\n            onChangeTipoProducto();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n            $(\'#PCOContenedor_placa\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction cargarDatosFE(resp) {\nconsole.log(\"resp\", resp);\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    // iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    /* if(!id.value && resp.id)\n        id.value = resp.id; */\n    actualizarInforme();\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&precioVenta=\' + precio.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n                $(\'#id_producto\').val(\'\');\n                PCOJS_ActualizarComboBox(\'id_producto\');\n                $(\'#precio\').val(\'\');\n                $(\'#cantidad\').val(\'1\');\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction hola(){\n    console.log(\'hola\');\n}\n\nfunction editProduct(){\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n    \'&id2=\' +  document.FRMBASEINFORME.PCO_Valor.value+\n    \'&tipo_venta2=\'+tipo_venta.value\n    ));\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    if(!precio.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes agregar un precio al producto\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(516,'core_formulario[8].javascript','2024-11-15 14:44:00','rafael',258,9430,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago, precio\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            // $(\'#id_cliente\').val(idClienteDB.value);\n            // PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n            if($(\'#id_cliente\').val() == 1) {\n                $(\'#PCOContenedor_placa\').show();\n            } else {\n                $(\'#PCOContenedor_placa\').hide();\n            }\n            onChangeTipoProducto();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n            $(\'#PCOContenedor_placa\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction cargarDatosFE(resp) {\nconsole.log(\"resp\", resp);\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    // iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    /* if(!id.value && resp.id)\n        id.value = resp.id; */\n    actualizarInforme();\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&precioVenta=\' + precio.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n                $(\'#id_producto\').val(\'\');\n                PCOJS_ActualizarComboBox(\'id_producto\');\n                $(\'#precio\').val(\'\');\n                $(\'#cantidad\').val(\'1\');\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction editProduct(){\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n    \'&id2=\' +  document.FRMBASEINFORME.PCO_Valor.value+\n    \'&tipo_venta2=\'+tipo_venta.value\n    ));\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    if(!precio.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes agregar un precio al producto\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(517,'mod/app_ventas/index.php','2024-11-15 14:49:00','rafael',171,6969,'<?php\n\nfunction calcularTotalVenta($id, $returnArr = \"\") {\n    $venta = PCO_EjecutarSQL(\"\n        SELECT SUM(precio * cantidad) as total, SUM(precio * iva/100) iva\n        FROM app_ventas_detalle\n        WHERE id_venta = \'$id\' GROUP BY id_venta\n    \")->fetch();\n    $total = $venta[\"total\"] ? $venta[\"total\"] : 0;\n    $iva = $venta[\"iva\"] ? $venta[\"iva\"] : 0;\n    PCO_EjecutarSQLUnaria(\"UPDATE app_ventas SET total = $total, iva = $iva WHERE id = $id \");\n    if($returnArr)\n        return $venta;\n    return \'\"total\": \' . $total . \', \"iva\": \' . $iva;\n}\n\nif($PCO_Accion == \"VENTA_ingresarRealizarVenta\") {\n    $ventaAbierta = PCO_EjecutarSQL(\"\n        SELECT id, id_cliente, total, iva, placa\n        FROM app_ventas\n        WHERE id=\'$PCO_Valor\'\n    \")->fetch();\n    /*if (!$ventaAbierta[\"id\"]) {\n        \n        $ventaAbierta = PCO_EjecutarSQL(\"\n            SELECT *\n            FROM app_ventas\n            WHERE estado = 0 ORDER BY id limit 1\n        \")->fetch();   \n    }*/\n\n    $id_venta = $ventaAbierta[\"id\"] || \"\";\n    if($id_venta) {\n        $total = number_format($ventaAbierta[\"total\"], 2);\n        $iva = number_format($ventaAbierta[\"iva\"], 2);\n        $id_cliente = $ventaAbierta[\"id_cliente\"];\n    }\n\n    PCO_CargarFormulario(8, 1, \"id\", $id_venta);\n}\n\nif($PCO_Accion == \"VENTA_agregarProductoCrearOC\") {\n\n    if(!$id) {\n        //crear cliente en caso de que no llegue id_cliente\n        if(!$id_cliente) {\n            PCO_EjecutarSQLUnaria(\"INSERT INTO app_clientes (nombre_completo, numero_documento, telefono) VALUES (?,?,?) \",\n                \"$nombre_completo$_SeparadorCampos_$numero_documento$_SeparadorCampos_$telefono\"\n            );\n            $id_cliente = PCO_ObtenerUltimoIDInsertado();\n        }\n        $todayMysql = date(\"Y-m-d H:i:s\");\n        PCO_EjecutarSQLUnaria(\"INSERT INTO app_ventas (id_cliente, usuario, fecha, placa, id_mecanico) VALUES (?,?,?,?,?) \", \"$id_cliente$_SeparadorCampos_$PCOSESS_LoginUsuario$_SeparadorCampos_$todayMysql$_SeparadorCampos_$placa$_SeparadorCampos_$id_mecanico\");\n        $id = PCO_ObtenerUltimoIDInsertado();\n    }\n    $producto = PCO_EjecutarSQL(\"\n        SELECT id, precio_venta, iva, inventario\n        FROM app_productos\n        WHERE id = \'$id_producto\'\n    \")->fetch();\n    if($producto[\"id\"]) {\n        $existe = PCO_EjecutarSQL(\"\n            SELECT count(id)\n            FROM app_ventas_detalle\n            WHERE id_venta = $id AND id_producto = \'$id_producto\'\n        \")->fetchColumn();\n        if($existe > 0) {\n            print_r(\'{\"success\": false, \"msg\": \"El producto ya se ha ingresado\"}\');\n            die();\n        }\n        if($producto[\"inventario\"] < $cantidad) {\n            print_r(\'{\"success\": false, \"msg\": \"La cantidad digitada supera la del invetario\"}\');\n            die();\n        }\n        $inventarioNew = $producto[\"inventario\"] - $cantidad;\n        PCO_EjecutarSQLUnaria(\"UPDATE app_productos SET inventario = $inventarioNew WHERE id = \" . $producto[\"id\"]);\n        PCO_EjecutarSQLUnaria(\"INSERT INTO app_ventas_detalle (id_venta, id_producto, cantidad, precio, iva) VALUES (?,?,?,?,?) \", \n            \"$id$_SeparadorCampos_$id_producto$_SeparadorCampos_$cantidad$_SeparadorCampos_\" . $producto[\"precio_venta\"] . \"$_SeparadorCampos_\" . $producto[\"iva\"]);\n        $result = calcularTotalVenta($id, 1);\n        \n        $total = number_format($result[\"total\"], 2);\n        $iva = number_format($result[\"iva\"], 2);\n        $id_venta = $id;\n        PCO_CargarFormulario(8, 1, \"id\", $id_venta);\n    }\n}\n\nif($PCO_Accion == \"VENTA_agregarProducto\") {\n\n    /* if(!$id) {\n        //crear cliente en caso de que no llegue id_cliente\n        if(!$id_cliente) {\n            PCO_EjecutarSQLUnaria(\"INSERT INTO app_clientes (nombre_completo, numero_documento, telefono) VALUES (?,?,?) \",\n                \"$nombre_completo$_SeparadorCampos_$numero_documento$_SeparadorCampos_$telefono\"\n            );\n            $id_cliente = PCO_ObtenerUltimoIDInsertado();\n        }\n        PCO_EjecutarSQLUnaria(\"INSERT INTO app_ventas (id_cliente, usuario) VALUES (?,?) \", \"$id_cliente$_SeparadorCampos_$PCOSESS_LoginUsuario\");\n        $id = PCO_ObtenerUltimoIDInsertado();\n    } */\n    $producto = PCO_EjecutarSQL(\"\n        SELECT id, precio_venta, iva\n        FROM app_productos\n        WHERE id = \'$id_producto\'\n    \")->fetch();\n    if($producto[\"id\"]) {\n        $existe = PCO_EjecutarSQL(\"\n            SELECT count(id)\n            FROM app_ventas_detalle\n            WHERE id_venta = $id AND id_producto = \'$id_producto\'\n        \")->fetchColumn();\n        if($existe > 0) {\n            print_r(\'{\"success\": false, \"msg\": \"El producto ya se ha ingresado\"}\');\n            die();\n        }\n        /* if($producto[\"inventario\"] < $cantidad) {\n            print_r(\'{\"success\": false, \"msg\": \"La cantidad digitada supera la del invetario\"}\');\n            die();\n        } */\n        // $inventarioNew = $producto[\"inventario\"] - $cantidad;\n        // PCO_EjecutarSQLUnaria(\"UPDATE app_productos SET inventario = $inventarioNew WHERE id = \" . $producto[\"id\"]);\n        PCO_EjecutarSQLUnaria(\"INSERT INTO app_ventas_detalle (id_venta, id_producto, cantidad, precio, iva) VALUES (?,?,?,?,?) \", \n            \"$id$_SeparadorCampos_$id_producto$_SeparadorCampos_$cantidad$_SeparadorCampos_$precioVenta$_SeparadorCampos_\" . $producto[\"iva\"]);\n        $result = calcularTotalVenta($id);\n        print_r(\'{\"success\": true, \"id\": \' . $id . \', \' . $result . \'}\');\n        die();\n    }\n    print_r(\'{\"success\": false, \"msg\": \"No se ha encontrado el producto seleccionado\"}\');\n    die();\n}\n\nif($PCO_Accion == \"VENTA_consultarVenta\") {\n    if($id) {\n        $result = calcularTotalVenta($id);\n        print_r(\'{\"success\": true, \"id\": \' . $id . \', \' . $result . \'}\');\n        die();\n    }\n    print_r(\'{\"success\": false, \"msg\": \"No se encontro la venta\"}\');\n    die();\n}\n\nif($PCO_Accion == \"VENTA_eliminarProducto\") {\n\n    if($id_venta_detalle && $id_venta) {\n        $producto = PCO_EjecutarSQL(\"\n            SELECT p.inventario, vd.cantidad, p.id\n            FROM app_ventas_detalle vd, app_productos p\n            WHERE vd.id_producto = p.id AND vd.id = \'$id_venta_detalle\'\n        \")->fetch();\n        //Restablecemos el inventario\n        $inventarioNew = $producto[\"inventario\"] + $producto[\"cantidad\"];\n        PCO_EjecutarSQLUnaria(\"UPDATE app_productos SET inventario = $inventarioNew WHERE id = \" . $producto[\"id\"]);\n        PCO_EjecutarSQLUnaria(\"DELETE FROM app_ventas_detalle WHERE id_venta = $id_venta AND id = $id_venta_detalle\");\n        $result = calcularTotalVenta($id_venta);\n        print_r(\'{\"success\": true, \"msg\": \"Se ha eliminado el producto exitosamente\", \' . $result . \'}\');\n        die();\n    }\n    print_r(\'{\"success\": false, \"msg\": \"No se pudo eliminar el producto\"}\');\n    die();\n}\n\nif($PCO_Accion == \"VENTA_imprimirFactura\") {\n\n    //sleep(2);\n    // echo \"$PCO_Valor\";\n    if($PCO_Valor)\n        $id = $PCO_Valor;\n    if($id) {\n        include_once \"imprimirFactura.php\";\n    }\n}','A'),(518,'mod/app_ventas/index.php','2024-11-15 14:49:00','rafael',171,6974,'<?php\n\nfunction calcularTotalVenta($id, $returnArr = \"\") {\n    $venta = PCO_EjecutarSQL(\"\n        SELECT SUM(precio * cantidad) as total, SUM(precio * iva/100) iva\n        FROM app_ventas_detalle\n        WHERE id_venta = \'$id\' GROUP BY id_venta\n    \")->fetch();\n    $total = $venta[\"total\"] ? $venta[\"total\"] : 0;\n    $iva = $venta[\"iva\"] ? $venta[\"iva\"] : 0;\n    PCO_EjecutarSQLUnaria(\"UPDATE app_ventas SET total = $total, iva = $iva WHERE id = $id \");\n    if($returnArr)\n        return $venta;\n    return \'\"total\": \' . $total . \', \"iva\": \' . $iva;\n}\n\nif($PCO_Accion == \"VENTA_ingresarRealizarVenta\") {\n    $ventaAbierta = PCO_EjecutarSQL(\"\n        SELECT id, id_cliente, total, iva, placa\n        FROM app_ventas\n        WHERE id=\'$PCO_Valor\'\n    \")->fetch();\n    /*if (!$ventaAbierta[\"id\"]) {\n        \n        $ventaAbierta = PCO_EjecutarSQL(\"\n            SELECT *\n            FROM app_ventas\n            WHERE estado = 0 ORDER BY id limit 1\n        \")->fetch();   \n    }*/\n\n    $id_venta = $ventaAbierta[\"id\"] || \"\";\n    if($id_venta) {\n        $total = number_format($ventaAbierta[\"total\"], 2);\n        $iva = number_format($ventaAbierta[\"iva\"], 2);\n        $id_cliente = $ventaAbierta[\"id_cliente\"];\n    }\n\n    PCO_CargarFormulario(8, 1, \"id\", $id_venta);\n}\n\nif($PCO_Accion == \"VENTA_agregarProductoCrearOC\") {\n\n    if(!$id) {\n        //crear cliente en caso de que no llegue id_cliente\n        if(!$id_cliente) {\n            PCO_EjecutarSQLUnaria(\"INSERT INTO app_clientes (nombre_completo, numero_documento, telefono) VALUES (?,?,?) \",\n                \"$nombre_completo$_SeparadorCampos_$numero_documento$_SeparadorCampos_$telefono\"\n            );\n            $id_cliente = PCO_ObtenerUltimoIDInsertado();\n        }\n        $todayMysql = date(\"Y-m-d H:i:s\");\n        PCO_EjecutarSQLUnaria(\"INSERT INTO app_ventas (id_cliente, usuario, fecha, placa, id_mecanico) VALUES (?,?,?,?,?) \", \"$id_cliente$_SeparadorCampos_$PCOSESS_LoginUsuario$_SeparadorCampos_$todayMysql$_SeparadorCampos_$placa$_SeparadorCampos_$id_mecanico\");\n        $id = PCO_ObtenerUltimoIDInsertado();\n    }\n    $producto = PCO_EjecutarSQL(\"\n        SELECT id, precio_venta, iva, inventario\n        FROM app_productos\n        WHERE id = \'$id_producto\'\n    \")->fetch();\n    if($producto[\"id\"]) {\n        $existe = PCO_EjecutarSQL(\"\n            SELECT count(id)\n            FROM app_ventas_detalle\n            WHERE id_venta = $id AND id_producto = \'$id_producto\'\n        \")->fetchColumn();\n        if($existe > 0) {\n            print_r(\'{\"success\": false, \"msg\": \"El producto ya se ha ingresado\"}\');\n            die();\n        }\n        if($producto[\"inventario\"] < $cantidad) {\n            print_r(\'{\"success\": false, \"msg\": \"La cantidad digitada supera la del invetario\"}\');\n            die();\n        }\n        $inventarioNew = $producto[\"inventario\"] - $cantidad;\n        PCO_EjecutarSQLUnaria(\"UPDATE app_productos SET inventario = $inventarioNew WHERE id = \" . $producto[\"id\"]);\n        PCO_EjecutarSQLUnaria(\"INSERT INTO app_ventas_detalle (id_venta, id_producto, cantidad, precio, iva) VALUES (?,?,?,?,?) \", \n            \"$id$_SeparadorCampos_$id_producto$_SeparadorCampos_$cantidad$_SeparadorCampos_\" . $producto[\"precio_venta\"] . \"$_SeparadorCampos_\" . $producto[\"iva\"]);\n        $result = calcularTotalVenta($id, 1);\n        \n        $total = number_format($result[\"total\"], 2);\n        $iva = number_format($result[\"iva\"], 2);\n        $id_venta = $id;\n        PCO_CargarFormulario(8, 1, \"id\", $id_venta);\n    }\n}\n\nif($PCO_Accion == \"VENTA_agregarProducto\") {\n\n    /* if(!$id) {\n        //crear cliente en caso de que no llegue id_cliente\n        if(!$id_cliente) {\n            PCO_EjecutarSQLUnaria(\"INSERT INTO app_clientes (nombre_completo, numero_documento, telefono) VALUES (?,?,?) \",\n                \"$nombre_completo$_SeparadorCampos_$numero_documento$_SeparadorCampos_$telefono\"\n            );\n            $id_cliente = PCO_ObtenerUltimoIDInsertado();\n        }\n        PCO_EjecutarSQLUnaria(\"INSERT INTO app_ventas (id_cliente, usuario) VALUES (?,?) \", \"$id_cliente$_SeparadorCampos_$PCOSESS_LoginUsuario\");\n        $id = PCO_ObtenerUltimoIDInsertado();\n    } */\n    $producto = PCO_EjecutarSQL(\"\n        SELECT id, precio_venta, iva\n        FROM app_productos\n        WHERE id = \'$id_producto\'\n    \")->fetch();\n    if($producto[\"id\"]) {\n        $existe = PCO_EjecutarSQL(\"\n            SELECT count(id)\n            FROM app_ventas_detalle\n            WHERE id_venta = $id AND id_producto = \'$id_producto\'\n        \")->fetchColumn();\n        if($existe > 0) {\n            print_r(\'{\"success\": false, \"msg\": \"El producto ya se ha ingresado\"}\');\n            die();\n        }\n        /* if($producto[\"inventario\"] < $cantidad) {\n            print_r(\'{\"success\": false, \"msg\": \"La cantidad digitada supera la del invetario\"}\');\n            die();\n        } */\n        // $inventarioNew = $producto[\"inventario\"] - $cantidad;\n        // PCO_EjecutarSQLUnaria(\"UPDATE app_productos SET inventario = $inventarioNew WHERE id = \" . $producto[\"id\"]);\n        PCO_EjecutarSQLUnaria(\"INSERT INTO app_ventas_detalle (id_venta, id_producto, cantidad, precio, iva) VALUES (?,?,?,?,?) \", \n            \"$id$_SeparadorCampos_$id_producto$_SeparadorCampos_$cantidad$_SeparadorCampos_$precioVenta$_SeparadorCampos_\" . $producto[\"iva\"]);\n        $result = calcularTotalVenta($id);\n        print_r(\'{\"success\": true, \"id\": \' . $id . \', \' . $result . \'}\');\n        die();\n    }\n    print_r(\'{\"success\": false, \"msg\": \"No se ha encontrado el producto seleccionado\"}\');\n    die();\n}\n\nif($PCO_Accion == \"VENTA_consultarTotalVenta\") {\n    if($id) {\n        $result = calcularTotalVenta($id);\n        print_r(\'{\"success\": true, \"id\": \' . $id . \', \' . $result . \'}\');\n        die();\n    }\n    print_r(\'{\"success\": false, \"msg\": \"No se encontro la venta\"}\');\n    die();\n}\n\nif($PCO_Accion == \"VENTA_eliminarProducto\") {\n\n    if($id_venta_detalle && $id_venta) {\n        $producto = PCO_EjecutarSQL(\"\n            SELECT p.inventario, vd.cantidad, p.id\n            FROM app_ventas_detalle vd, app_productos p\n            WHERE vd.id_producto = p.id AND vd.id = \'$id_venta_detalle\'\n        \")->fetch();\n        //Restablecemos el inventario\n        $inventarioNew = $producto[\"inventario\"] + $producto[\"cantidad\"];\n        PCO_EjecutarSQLUnaria(\"UPDATE app_productos SET inventario = $inventarioNew WHERE id = \" . $producto[\"id\"]);\n        PCO_EjecutarSQLUnaria(\"DELETE FROM app_ventas_detalle WHERE id_venta = $id_venta AND id = $id_venta_detalle\");\n        $result = calcularTotalVenta($id_venta);\n        print_r(\'{\"success\": true, \"msg\": \"Se ha eliminado el producto exitosamente\", \' . $result . \'}\');\n        die();\n    }\n    print_r(\'{\"success\": false, \"msg\": \"No se pudo eliminar el producto\"}\');\n    die();\n}\n\nif($PCO_Accion == \"VENTA_imprimirFactura\") {\n\n    //sleep(2);\n    // echo \"$PCO_Valor\";\n    if($PCO_Valor)\n        $id = $PCO_Valor;\n    if($id) {\n        include_once \"imprimirFactura.php\";\n    }\n}','A'),(519,'core_formulario[8].javascript','2024-11-15 14:51:00','rafael',272,9822,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago, precio\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction cargarDatosFE(resp) {\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    // iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    /* if(!id.value && resp.id)\n        id.value = resp.id; */\n    actualizarInforme();\n}\n\nfunction consultarTotalVenta() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_consultarTotalVenta\' +\n            \'&id=\' + id.value\n        )\n    );\n    if(resp.success) {\n        cargarDatosFE(resp);\n    }\n    else {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n    }    \n}\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            // $(\'#id_cliente\').val(idClienteDB.value);\n            // PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n            if($(\'#id_cliente\').val() == 1) {\n                $(\'#PCOContenedor_placa\').show();\n            } else {\n                $(\'#PCOContenedor_placa\').hide();\n            }\n            onChangeTipoProducto();\n            consultarTotalVenta();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n            $(\'#PCOContenedor_placa\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&precioVenta=\' + precio.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n                $(\'#id_producto\').val(\'\');\n                PCOJS_ActualizarComboBox(\'id_producto\');\n                $(\'#precio\').val(\'\');\n                $(\'#cantidad\').val(\'1\');\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction editProduct(){\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n    \'&id2=\' +  document.FRMBASEINFORME.PCO_Valor.value+\n    \'&tipo_venta2=\'+tipo_venta.value\n    ));\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    if(!precio.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes agregar un precio al producto\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(520,'core_formulario[8].javascript','2024-11-15 14:56:00','rafael',273,9856,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago, precio\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction cargarDatosFE(resp) {\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    // iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    /* if(!id.value && resp.id)\n        id.value = resp.id; */\n    actualizarInforme();\n}\n\nfunction consultarTotalVenta() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_consultarTotalVenta\' +\n            \'&id=\' + id.value\n        )\n    );\n    if(resp.success) {\n        cargarDatosFE(resp);\n    }\n    else {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n    }    \n}\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            // $(\'#id_cliente\').val(idClienteDB.value);\n            // PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n            if($(\'#id_cliente\').val() == 1) {\n                $(\'#PCOContenedor_placa\').show();\n            } else {\n                $(\'#PCOContenedor_placa\').hide();\n            }\n            onChangeTipoProducto();\n            consultarTotalVenta();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n            $(\'#PCOContenedor_placa\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&precioVenta=\' + precio.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n                $(\'#id_producto\').val(\'\');\n                PCOJS_ActualizarComboBox(\'id_producto\');\n                $(\'#precio\').val(\'\');\n                $(\'#cantidad\').val(\'1\');\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction editProduct(){\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n    \'&id2=\' +  document.FRMBASEINFORME.PCO_Valor.value+\n    \'&cantidad2=\'+tipo_venta.value +\n    \'&precio2=\'+tipo_venta.value\n    ));\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    if(!precio.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes agregar un precio al producto\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(521,'core_formulario[8].javascript','2024-11-15 14:57:00','rafael',273,9850,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago, precio\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction cargarDatosFE(resp) {\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    // iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    /* if(!id.value && resp.id)\n        id.value = resp.id; */\n    actualizarInforme();\n}\n\nfunction consultarTotalVenta() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_consultarTotalVenta\' +\n            \'&id=\' + id.value\n        )\n    );\n    if(resp.success) {\n        cargarDatosFE(resp);\n    }\n    else {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n    }    \n}\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            // $(\'#id_cliente\').val(idClienteDB.value);\n            // PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n            if($(\'#id_cliente\').val() == 1) {\n                $(\'#PCOContenedor_placa\').show();\n            } else {\n                $(\'#PCOContenedor_placa\').hide();\n            }\n            onChangeTipoProducto();\n            consultarTotalVenta();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n            $(\'#PCOContenedor_placa\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&precioVenta=\' + precio.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n                $(\'#id_producto\').val(\'\');\n                PCOJS_ActualizarComboBox(\'id_producto\');\n                $(\'#precio\').val(\'\');\n                $(\'#cantidad\').val(\'1\');\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction editProduct(){\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n    \'&id2=\' +  document.FRMBASEINFORME.PCO_Valor.value+\n    \'&cantidad2=\'+cantidad.value +\n    \'&precio2=\'+precio.value\n    ));\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    if(!precio.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes agregar un precio al producto\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(522,'core_formulario[7].javascript','2024-11-15 14:58:00','rafael',60,1862,'const { tipo_venta2 } = document.datos2;\n\nconst origenListaOpciones2 = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Editar producto\";\n    }\n\nfunction callMe()\n    {\n        window.parent.actualizarInforme();\n    }\n    \n$(document).ready(function() {\n    $(\"#id_producto2\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones2({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta2.value,\n        }));\n    $(\"#id_producto2\").trigger(\"change\");\n});','B'),(523,'core_formulario[8].javascript','2024-11-15 14:59:00','rafael',273,9850,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago, precio\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction cargarDatosFE(resp) {\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    // iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    /* if(!id.value && resp.id)\n        id.value = resp.id; */\n    actualizarInforme();\n}\n\nfunction consultarTotalVenta() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_consultarTotalVenta\' +\n            \'&id=\' + id.value\n        )\n    );\n    if(resp.success) {\n        cargarDatosFE(resp);\n    }\n    else {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n    }    \n}\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            // $(\'#id_cliente\').val(idClienteDB.value);\n            // PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n            if($(\'#id_cliente\').val() == 1) {\n                $(\'#PCOContenedor_placa\').show();\n            } else {\n                $(\'#PCOContenedor_placa\').hide();\n            }\n            onChangeTipoProducto();\n            consultarTotalVenta();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n            $(\'#PCOContenedor_placa\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&precioVenta=\' + precio.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n                $(\'#id_producto\').val(\'\');\n                PCOJS_ActualizarComboBox(\'id_producto\');\n                $(\'#precio\').val(\'\');\n                $(\'#cantidad\').val(\'1\');\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction editProduct(){\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n    \'&id2=\' +  document.FRMBASEINFORME.PCO_Valor.value+\n    \'&cantidad2=\'+cantidad.value +\n    \'&precio2=\'+precio.value\n    ));\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    if(!precio.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes agregar un precio al producto\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(524,'core_formulario[7].javascript','2024-11-15 15:00:00','rafael',60,1868,'// const { tipo_venta2 } = document.datos2;\n\nconst origenListaOpciones2 = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Editar producto\";\n    }\n\nfunction callMe()\n    {\n        window.parent.actualizarInforme();\n    }\n    \n/* $(document).ready(function() {\n    $(\"#id_producto2\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones2({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta2.value,\n        }));\n    $(\"#id_producto2\").trigger(\"change\");\n}); */','B'),(525,'core_formulario[7].javascript','2024-11-15 15:00:00','rafael',60,1877,'// const { tipo_venta2 } = document.datos2;\n\n/* const origenListaOpciones2 = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n}); */\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Editar producto\";\n    }\n\nfunction callMe()\n    {\n        window.parent.actualizarInforme();\n    }\n    \n/* $(document).ready(function() {\n    $(\"#id_producto2\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones2({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta2.value,\n        }));\n    $(\"#id_producto2\").trigger(\"change\");\n}); */','B'),(526,'core_formulario[8].javascript','2024-11-15 15:02:00','rafael',273,9850,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago, precio\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction cargarDatosFE(resp) {\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    // iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    /* if(!id.value && resp.id)\n        id.value = resp.id; */\n    actualizarInforme();\n}\n\nfunction consultarTotalVenta() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_consultarTotalVenta\' +\n            \'&id=\' + id.value\n        )\n    );\n    if(resp.success) {\n        cargarDatosFE(resp);\n    }\n    else {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n    }    \n}\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            // $(\'#id_cliente\').val(idClienteDB.value);\n            // PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n            if($(\'#id_cliente\').val() == 1) {\n                $(\'#PCOContenedor_placa\').show();\n            } else {\n                $(\'#PCOContenedor_placa\').hide();\n            }\n            onChangeTipoProducto();\n            consultarTotalVenta();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n            $(\'#PCOContenedor_placa\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&precioVenta=\' + precio.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n                $(\'#id_producto\').val(\'\');\n                PCOJS_ActualizarComboBox(\'id_producto\');\n                $(\'#precio\').val(\'\');\n                $(\'#cantidad\').val(\'1\');\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction editProduct(){\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n    \'&id2=\' +  document.FRMBASEINFORME.PCO_Valor.value+\n    \'&cantidad2=\'+cantidad.value +\n    \'&precio2=\'+precio.value\n    ));\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    if(!precio.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes agregar un precio al producto\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(527,'core_formulario[8].javascript','2024-11-15 15:02:00','rafael',273,9850,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago, precio\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction cargarDatosFE(resp) {\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    // iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    /* if(!id.value && resp.id)\n        id.value = resp.id; */\n    actualizarInforme();\n}\n\nfunction consultarTotalVenta() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_consultarTotalVenta\' +\n            \'&id=\' + id.value\n        )\n    );\n    if(resp.success) {\n        cargarDatosFE(resp);\n    }\n    else {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n    }    \n}\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            // $(\'#id_cliente\').val(idClienteDB.value);\n            // PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n            if($(\'#id_cliente\').val() == 1) {\n                $(\'#PCOContenedor_placa\').show();\n            } else {\n                $(\'#PCOContenedor_placa\').hide();\n            }\n            onChangeTipoProducto();\n            consultarTotalVenta();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n            $(\'#PCOContenedor_placa\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&precioVenta=\' + precio.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n                $(\'#id_producto\').val(\'\');\n                PCOJS_ActualizarComboBox(\'id_producto\');\n                $(\'#precio\').val(\'\');\n                $(\'#cantidad\').val(\'1\');\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction editProduct(){\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n    \'&id2=\' +  document.FRMBASEINFORME.PCO_Valor.value+\n    \'&cantidad2=\'+cantidad.value +\n    \'&precio2=\'+precio.value\n    ));\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    if(!precio.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes agregar un precio al producto\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(528,'core_formulario[8].javascript','2024-11-15 15:02:00','rafael',274,9885,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago, precio\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction cargarDatosFE(resp) {\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    // iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    /* if(!id.value && resp.id)\n        id.value = resp.id; */\n    actualizarInforme();\n}\n\nfunction consultarTotalVenta() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_consultarTotalVenta\' +\n            \'&id=\' + id.value\n        )\n    );\n    if(resp.success) {\n        cargarDatosFE(resp);\n    }\n    else {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n    }    \n}\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            // $(\'#id_cliente\').val(idClienteDB.value);\n            // PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n            if($(\'#id_cliente\').val() == 1) {\n                $(\'#PCOContenedor_placa\').show();\n            } else {\n                $(\'#PCOContenedor_placa\').hide();\n            }\n            onChangeTipoProducto();\n            consultarTotalVenta();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n            $(\'#PCOContenedor_placa\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&precioVenta=\' + precio.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n                $(\'#id_producto\').val(\'\');\n                PCOJS_ActualizarComboBox(\'id_producto\');\n                $(\'#precio\').val(\'\');\n                $(\'#cantidad\').val(\'1\');\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction editProduct(){\n    console.log(cantidad.value, precio.value);\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n    \'&id2=\' +  document.FRMBASEINFORME.PCO_Valor.value+\n    \'&cantidad2=\'+cantidad.value +\n    \'&precio2=\'+precio.value\n    ));\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    if(!precio.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes agregar un precio al producto\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(529,'core_formulario[8].javascript','2024-11-15 15:02:00','rafael',274,9897,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago, precio\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction cargarDatosFE(resp) {\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    // iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    /* if(!id.value && resp.id)\n        id.value = resp.id; */\n    actualizarInforme();\n}\n\nfunction consultarTotalVenta() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_consultarTotalVenta\' +\n            \'&id=\' + id.value\n        )\n    );\n    if(resp.success) {\n        cargarDatosFE(resp);\n    }\n    else {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n    }    \n}\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            // $(\'#id_cliente\').val(idClienteDB.value);\n            // PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n            if($(\'#id_cliente\').val() == 1) {\n                $(\'#PCOContenedor_placa\').show();\n            } else {\n                $(\'#PCOContenedor_placa\').hide();\n            }\n            onChangeTipoProducto();\n            consultarTotalVenta();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n            $(\'#PCOContenedor_placa\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&precioVenta=\' + precio.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n                $(\'#id_producto\').val(\'\');\n                PCOJS_ActualizarComboBox(\'id_producto\');\n                $(\'#precio\').val(\'\');\n                $(\'#cantidad\').val(\'1\');\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction editProduct(){\n    console.log(cantidad.value, precio.value);\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n    \'&id2=\' +  document.FRMBASEINFORME.PCO_Valor.value+\n    \'&cantidad2=\'+cantidad.value +\n    \'&precio2=\'+precio.value\n    ));\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    if(!precio.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes agregar un precio al producto\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(530,'core_formulario[8].javascript','2024-11-15 15:04:00','rafael',273,9850,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago, precio\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction cargarDatosFE(resp) {\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    // iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    /* if(!id.value && resp.id)\n        id.value = resp.id; */\n    actualizarInforme();\n}\n\nfunction consultarTotalVenta() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_consultarTotalVenta\' +\n            \'&id=\' + id.value\n        )\n    );\n    if(resp.success) {\n        cargarDatosFE(resp);\n    }\n    else {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n    }    \n}\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            // $(\'#id_cliente\').val(idClienteDB.value);\n            // PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n            if($(\'#id_cliente\').val() == 1) {\n                $(\'#PCOContenedor_placa\').show();\n            } else {\n                $(\'#PCOContenedor_placa\').hide();\n            }\n            onChangeTipoProducto();\n            consultarTotalVenta();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n            $(\'#PCOContenedor_placa\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&precioVenta=\' + precio.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n                $(\'#id_producto\').val(\'\');\n                PCOJS_ActualizarComboBox(\'id_producto\');\n                $(\'#precio\').val(\'\');\n                $(\'#cantidad\').val(\'1\');\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction editProduct(){\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n    \'&id2=\' +  document.FRMBASEINFORME.PCO_Valor.value+\n    \'&cantidad2=\'+cantidad.value +\n    \'&precio2=\'+precio.value\n    ));\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    if(!precio.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes agregar un precio al producto\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(531,'core_formulario[8].javascript','2024-11-15 15:08:00','rafael',276,9935,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago, precio\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction cargarDatosFE(resp) {\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    // iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    /* if(!id.value && resp.id)\n        id.value = resp.id; */\n    actualizarInforme();\n}\n\nfunction consultarTotalVenta() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_consultarTotalVenta\' +\n            \'&id=\' + id.value\n        )\n    );\n    if(resp.success) {\n        cargarDatosFE(resp);\n    }\n    else {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n    }    \n}\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            // $(\'#id_cliente\').val(idClienteDB.value);\n            // PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n            if($(\'#id_cliente\').val() == 1) {\n                $(\'#PCOContenedor_placa\').show();\n            } else {\n                $(\'#PCOContenedor_placa\').hide();\n            }\n            onChangeTipoProducto();\n            consultarTotalVenta();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n            $(\'#PCOContenedor_placa\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&precioVenta=\' + precio.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n                $(\'#id_producto\').val(\'\');\n                PCOJS_ActualizarComboBox(\'id_producto\');\n                $(\'#precio\').val(\'\');\n                $(\'#cantidad\').val(\'1\');\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction editProduct(){\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    console.log(product);\n    const [id2,cant,prec] = product.split(\'|\');\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n    \'&id2=\' + id2 +\n    \'&cantidad2=\' + cant +\n    \'&precio2=\' + prec\n    ));\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    if(!precio.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes agregar un precio al producto\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(532,'core_formulario[8].javascript','2024-11-15 15:08:00','rafael',277,9967,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago, precio\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction cargarDatosFE(resp) {\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    // iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    /* if(!id.value && resp.id)\n        id.value = resp.id; */\n    actualizarInforme();\n}\n\nfunction consultarTotalVenta() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_consultarTotalVenta\' +\n            \'&id=\' + id.value\n        )\n    );\n    if(resp.success) {\n        cargarDatosFE(resp);\n    }\n    else {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n    }    \n}\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            // $(\'#id_cliente\').val(idClienteDB.value);\n            // PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n            if($(\'#id_cliente\').val() == 1) {\n                $(\'#PCOContenedor_placa\').show();\n            } else {\n                $(\'#PCOContenedor_placa\').hide();\n            }\n            onChangeTipoProducto();\n            consultarTotalVenta();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n            $(\'#PCOContenedor_placa\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&precioVenta=\' + precio.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n                $(\'#id_producto\').val(\'\');\n                PCOJS_ActualizarComboBox(\'id_producto\');\n                $(\'#precio\').val(\'\');\n                $(\'#cantidad\').val(\'1\');\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction editProduct(){\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    console.log(product);\n    const [id2,cant,prec] = product.split(\'|\');\n    console.log(id2,cant,prec);\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n    \'&id2=\' + id2 +\n    \'&cantidad2=\' + cant +\n    \'&precio2=\' + prec\n    ));\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    if(!precio.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes agregar un precio al producto\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(533,'core_formulario[8].javascript','2024-11-15 15:18:00','rafael',282,10075,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago, precio\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction cargarDatosFE(resp) {\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    // iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    /* if(!id.value && resp.id)\n        id.value = resp.id; */\n    actualizarInforme();\n}\n\nfunction consultarTotalVenta() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_consultarTotalVenta\' +\n            \'&id=\' + id.value\n        )\n    );\n    if(resp.success) {\n        cargarDatosFE(resp);\n    }\n    else {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n    }    \n}\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            // $(\'#id_cliente\').val(idClienteDB.value);\n            // PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n            if($(\'#id_cliente\').val() == 1) {\n                $(\'#PCOContenedor_placa\').show();\n            } else {\n                $(\'#PCOContenedor_placa\').hide();\n            }\n            onChangeTipoProducto();\n            consultarTotalVenta();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n            $(\'#PCOContenedor_placa\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&precioVenta=\' + precio.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n                $(\'#id_producto\').val(\'\');\n                PCOJS_ActualizarComboBox(\'id_producto\');\n                $(\'#precio\').val(\'\');\n                $(\'#cantidad\').val(\'1\');\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction editProduct(){\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    console.log(product);\n    const [id2,cant,prec] = product.split(\'|\');\n    console.log(id2,cant,prec);\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n    \'&id2=\' + id2 +\n    \'&cantidad2=\' + cant +\n    \'&precio2=\' + prec\n    ));\n}\n\nfunction finalizarEdicionProducto(){\n    $(\'#PCO_Modal_Mensaje\').modal(\'hide\');\n    actualizarInforme();\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    if(!precio.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes agregar un precio al producto\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(534,'core_formulario[8].javascript','2024-11-15 15:18:00','rafael',282,10076,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago, precio\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction cargarDatosFE(resp) {\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    // iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    /* if(!id.value && resp.id)\n        id.value = resp.id; */\n    actualizarInforme();\n}\n\nfunction consultarTotalVenta() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_consultarTotalVenta\' +\n            \'&id=\' + id.value\n        )\n    );\n    if(resp.success) {\n        cargarDatosFE(resp);\n    }\n    else {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n    }    \n}\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            // $(\'#id_cliente\').val(idClienteDB.value);\n            // PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n            if($(\'#id_cliente\').val() == 1) {\n                $(\'#PCOContenedor_placa\').show();\n            } else {\n                $(\'#PCOContenedor_placa\').hide();\n            }\n            onChangeTipoProducto();\n            consultarTotalVenta();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n            $(\'#PCOContenedor_placa\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&precioVenta=\' + precio.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n                $(\'#id_producto\').val(\'\');\n                PCOJS_ActualizarComboBox(\'id_producto\');\n                $(\'#precio\').val(\'\');\n                $(\'#cantidad\').val(\'1\');\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction editProduct(){\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    console.log(product);\n    const [id2,cant,prec] = product.split(\'|\');\n    console.log(id2,cant,prec);\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n    \'&id2=\' + id2 +\n    \'&cantidad2=\' + cant +\n    \'&precio2=\' + prec\n    ));\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#PCO_Modal_Mensaje\').modal(\'hide\');\n    actualizarInforme();\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    if(!precio.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes agregar un precio al producto\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(535,'core_formulario[7].javascript','2024-11-15 15:18:00','rafael',60,1877,'// const { tipo_venta2 } = document.datos2;\n\n/* const origenListaOpciones2 = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n}); */\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Editar producto\";\n    }\n\nfunction callMe()\n    {\n        window.parent.finalizarEdicionProducto();\n    }\n    \n/* $(document).ready(function() {\n    $(\"#id_producto2\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones2({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta2.value,\n        }));\n    $(\"#id_producto2\").trigger(\"change\");\n}); */','B'),(536,'core_formulario[8].javascript','2024-11-15 15:19:00','rafael',282,10088,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago, precio\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction cargarDatosFE(resp) {\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    // iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    /* if(!id.value && resp.id)\n        id.value = resp.id; */\n    actualizarInforme();\n}\n\nfunction consultarTotalVenta() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_consultarTotalVenta\' +\n            \'&id=\' + id.value\n        )\n    );\n    if(resp.success) {\n        cargarDatosFE(resp);\n    }\n    else {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n    }    \n}\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            // $(\'#id_cliente\').val(idClienteDB.value);\n            // PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n            if($(\'#id_cliente\').val() == 1) {\n                $(\'#PCOContenedor_placa\').show();\n            } else {\n                $(\'#PCOContenedor_placa\').hide();\n            }\n            onChangeTipoProducto();\n            consultarTotalVenta();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n            $(\'#PCOContenedor_placa\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&precioVenta=\' + precio.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n                $(\'#id_producto\').val(\'\');\n                PCOJS_ActualizarComboBox(\'id_producto\');\n                $(\'#precio\').val(\'\');\n                $(\'#cantidad\').val(\'1\');\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction editProduct(){\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    console.log(product);\n    const [id2,cant,prec] = product.split(\'|\');\n    console.log(id2,cant,prec);\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + id2 +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#PCO_Modal_Mensaje\').modal(\'hide\');\n    actualizarInforme();\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    if(!precio.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes agregar un precio al producto\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(537,'core_formulario[7].javascript','2024-11-15 15:20:00','rafael',69,2322,'// const { tipo_venta2 } = document.datos2;\n\n/* const origenListaOpciones2 = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n}); */\nconst { tipo_venta2 } = document.datos2;\nfunction FrmAutoRun()\n    {\n        const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n            \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_actualizarProductoVenta\' +\n                \'&id=\' + id2.value + \n                \'&id_producto=\' + id_producto2.value +\n                \'&cantidad=\' + cantidad2.value +\n                \'&precioVenta=\' + precio2.value\n            )\n        );\n        document.title = \"Editar producto\";\n    }\n\nfunction callMe()\n    {\n        \n        window.parent.finalizarEdicionProducto();\n    }\n    \n/* $(document).ready(function() {\n    $(\"#id_producto2\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones2({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta2.value,\n        }));\n    $(\"#id_producto2\").trigger(\"change\");\n}); */','B'),(538,'core_formulario[7].javascript','2024-11-15 15:20:00','rafael',69,2322,'// const { tipo_venta2 } = document.datos2;\n\n/* const origenListaOpciones2 = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n}); */\nconst { tipo_venta2 } = document.datos2;\nfunction FrmAutoRun()\n    {\n        const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n            \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_actualizarProductoVenta\' +\n                \'&id=\' + id2.value + \n                \'&id_producto=\' + id_producto2.value +\n                \'&cantidad=\' + cantidad2.value +\n                \'&precioVenta=\' + precio2.value\n            )\n        );\n        document.title = \"Editar producto\";\n    }\n\nfunction callMe()\n    {\n        \n        window.parent.finalizarEdicionProducto();\n    }\n    \n/* $(document).ready(function() {\n    $(\"#id_producto2\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones2({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta2.value,\n        }));\n    $(\"#id_producto2\").trigger(\"change\");\n}); */','B'),(539,'core_formulario[7].javascript','2024-11-15 15:21:00','rafael',69,2357,'// const { tipo_venta2 } = document.datos2;\n\n/* const origenListaOpciones2 = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n}); */\nconst { tipo_venta2,id_producto2,cantidad2,precio2,id2 } = document.datos2;\nfunction FrmAutoRun()\n    {\n        const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n            \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_actualizarProductoVenta\' +\n                \'&id=\' + id2.value + \n                \'&id_producto=\' + id_producto2.value +\n                \'&cantidad=\' + cantidad2.value +\n                \'&precioVenta=\' + precio2.value\n            )\n        );\n        document.title = \"Editar producto\";\n    }\n\nfunction callMe()\n    {\n        \n        window.parent.finalizarEdicionProducto();\n    }\n    \n/* $(document).ready(function() {\n    $(\"#id_producto2\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones2({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta2.value,\n        }));\n    $(\"#id_producto2\").trigger(\"change\");\n}); */','B'),(540,'core_formulario[8].javascript','2024-11-15 15:21:00','rafael',282,10088,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago, precio\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction cargarDatosFE(resp) {\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    // iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    /* if(!id.value && resp.id)\n        id.value = resp.id; */\n    actualizarInforme();\n}\n\nfunction consultarTotalVenta() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_consultarTotalVenta\' +\n            \'&id=\' + id.value\n        )\n    );\n    if(resp.success) {\n        cargarDatosFE(resp);\n    }\n    else {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n    }    \n}\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            // $(\'#id_cliente\').val(idClienteDB.value);\n            // PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n            if($(\'#id_cliente\').val() == 1) {\n                $(\'#PCOContenedor_placa\').show();\n            } else {\n                $(\'#PCOContenedor_placa\').hide();\n            }\n            onChangeTipoProducto();\n            consultarTotalVenta();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n            $(\'#PCOContenedor_placa\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&precioVenta=\' + precio.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n                $(\'#id_producto\').val(\'\');\n                PCOJS_ActualizarComboBox(\'id_producto\');\n                $(\'#precio\').val(\'\');\n                $(\'#cantidad\').val(\'1\');\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction editProduct(){\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    console.log(product);\n    const [id2,cant,prec] = product.split(\'|\');\n    console.log(id2,cant,prec);\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + id2 +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#PCO_Modal_Mensaje\').modal(\'hide\');\n    actualizarInforme();\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    if(!precio.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes agregar un precio al producto\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(541,'core_formulario[8].javascript','2024-11-15 15:24:00','rafael',283,10115,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, \n    id, idClienteDB, total_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago, precio\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction cargarDatosFE(resp) {\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    // iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    /* if(!id.value && resp.id)\n        id.value = resp.id; */\n    actualizarInforme();\n}\n\nfunction consultarTotalVenta() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_consultarTotalVenta\' +\n            \'&id=\' + id.value\n        )\n    );\n    if(resp.success) {\n        cargarDatosFE(resp);\n    }\n    else {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n    }    \n}\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            // $(\'#id_cliente\').val(idClienteDB.value);\n            // PCOJS_ActualizarComboBox(\'id_cliente\');\n            actualizarInforme();\n            if($(\'#id_cliente\').val() == 1) {\n                $(\'#PCOContenedor_placa\').show();\n            } else {\n                $(\'#PCOContenedor_placa\').hide();\n            }\n            onChangeTipoProducto();\n            consultarTotalVenta();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n            $(\'#PCOContenedor_placa\').hide();\n        }\n    }\n\nfunction onchangeCliente(){\n    $(\'#PCOContenedor_placa\').hide();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    }\n}\n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&precioVenta=\' + precio.value +\n                    \'&nombre_completo=\' + nombre_completo.value +\n                    \'&telefono=\' + telefono.value +\n                    \'&numero_documento=\' + numero_documento.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n                $(\'#id_producto\').val(\'\');\n                PCOJS_ActualizarComboBox(\'id_producto\');\n                $(\'#precio\').val(\'\');\n                $(\'#cantidad\').val(\'1\');\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction editProduct(){\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    console.log(product);\n    const [id2,cant,prec] = product.split(\'|\');\n    console.log(id2,cant,prec);\n    PCOJS_MostrarMensaje(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + id2 +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#PCO_Modal_Mensaje\').modal(\'hide\');\n    actualizarInforme();\n    consultarTotalVenta();\n}\n\nfunction finalizarCompra() {\n    if(dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction eliminar_producto() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + document.FRMBASEINFORME.PCO_Valor.value\n        )\n    );\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    if(!precio.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes agregar un precio al producto\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_id_mecanico\').show();\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/','B'),(542,'core_formulario[7].javascript','2024-11-15 15:24:00','rafael',68,2348,'// const { tipo_venta2 } = document.datos2;\n\n/* const origenListaOpciones2 = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n}); */\nconst { tipo_venta2,id_producto2,cantidad2,precio2,id2 } = document.datos2;\nfunction FrmAutoRun()\n    {\n        document.title = \"Editar producto\";\n    }\n\nfunction callMe()\n    {\n        const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n            \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_actualizarProductoVenta\' +\n                \'&id=\' + id2.value + \n                \'&id_producto=\' + id_producto2.value +\n                \'&cantidad=\' + cantidad2.value +\n                \'&precioVenta=\' + precio2.value\n            )\n        );\n        window.parent.finalizarEdicionProducto();\n    }\n    \n/* $(document).ready(function() {\n    $(\"#id_producto2\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones2({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta2.value,\n        }));\n    $(\"#id_producto2\").trigger(\"change\");\n}); */','B'),(543,'mod/app_ventas/index.php','2024-11-15 15:26:00','rafael',181,7224,'<?php\n\nfunction calcularTotalVenta($id, $returnArr = \"\") {\n    $venta = PCO_EjecutarSQL(\"\n        SELECT SUM(precio * cantidad) as total, SUM(precio * iva/100) iva\n        FROM app_ventas_detalle\n        WHERE id_venta = \'$id\' GROUP BY id_venta\n    \")->fetch();\n    $total = $venta[\"total\"] ? $venta[\"total\"] : 0;\n    $iva = $venta[\"iva\"] ? $venta[\"iva\"] : 0;\n    PCO_EjecutarSQLUnaria(\"UPDATE app_ventas SET total = $total, iva = $iva WHERE id = $id \");\n    if($returnArr)\n        return $venta;\n    return \'\"total\": \' . $total . \', \"iva\": \' . $iva;\n}\n\nif($PCO_Accion == \"VENTA_ingresarRealizarVenta\") {\n    $ventaAbierta = PCO_EjecutarSQL(\"\n        SELECT id, id_cliente, total, iva, placa\n        FROM app_ventas\n        WHERE id=\'$PCO_Valor\'\n    \")->fetch();\n    /*if (!$ventaAbierta[\"id\"]) {\n        \n        $ventaAbierta = PCO_EjecutarSQL(\"\n            SELECT *\n            FROM app_ventas\n            WHERE estado = 0 ORDER BY id limit 1\n        \")->fetch();   \n    }*/\n\n    $id_venta = $ventaAbierta[\"id\"] || \"\";\n    if($id_venta) {\n        $total = number_format($ventaAbierta[\"total\"], 2);\n        $iva = number_format($ventaAbierta[\"iva\"], 2);\n        $id_cliente = $ventaAbierta[\"id_cliente\"];\n    }\n\n    PCO_CargarFormulario(8, 1, \"id\", $id_venta);\n}\n\nif($PCO_Accion == \"VENTA_agregarProductoCrearOC\") {\n\n    if(!$id) {\n        //crear cliente en caso de que no llegue id_cliente\n        if(!$id_cliente) {\n            PCO_EjecutarSQLUnaria(\"INSERT INTO app_clientes (nombre_completo, numero_documento, telefono) VALUES (?,?,?) \",\n                \"$nombre_completo$_SeparadorCampos_$numero_documento$_SeparadorCampos_$telefono\"\n            );\n            $id_cliente = PCO_ObtenerUltimoIDInsertado();\n        }\n        $todayMysql = date(\"Y-m-d H:i:s\");\n        PCO_EjecutarSQLUnaria(\"INSERT INTO app_ventas (id_cliente, usuario, fecha, placa, id_mecanico) VALUES (?,?,?,?,?) \", \"$id_cliente$_SeparadorCampos_$PCOSESS_LoginUsuario$_SeparadorCampos_$todayMysql$_SeparadorCampos_$placa$_SeparadorCampos_$id_mecanico\");\n        $id = PCO_ObtenerUltimoIDInsertado();\n    }\n    $producto = PCO_EjecutarSQL(\"\n        SELECT id, precio_venta, iva, inventario\n        FROM app_productos\n        WHERE id = \'$id_producto\'\n    \")->fetch();\n    if($producto[\"id\"]) {\n        $existe = PCO_EjecutarSQL(\"\n            SELECT count(id)\n            FROM app_ventas_detalle\n            WHERE id_venta = $id AND id_producto = \'$id_producto\'\n        \")->fetchColumn();\n        if($existe > 0) {\n            print_r(\'{\"success\": false, \"msg\": \"El producto ya se ha ingresado\"}\');\n            die();\n        }\n        if($producto[\"inventario\"] < $cantidad) {\n            print_r(\'{\"success\": false, \"msg\": \"La cantidad digitada supera la del invetario\"}\');\n            die();\n        }\n        $inventarioNew = $producto[\"inventario\"] - $cantidad;\n        PCO_EjecutarSQLUnaria(\"UPDATE app_productos SET inventario = $inventarioNew WHERE id = \" . $producto[\"id\"]);\n        PCO_EjecutarSQLUnaria(\"INSERT INTO app_ventas_detalle (id_venta, id_producto, cantidad, precio, iva) VALUES (?,?,?,?,?) \", \n            \"$id$_SeparadorCampos_$id_producto$_SeparadorCampos_$cantidad$_SeparadorCampos_\" . $producto[\"precio_venta\"] . \"$_SeparadorCampos_\" . $producto[\"iva\"]);\n        $result = calcularTotalVenta($id, 1);\n        \n        $total = number_format($result[\"total\"], 2);\n        $iva = number_format($result[\"iva\"], 2);\n        $id_venta = $id;\n        PCO_CargarFormulario(8, 1, \"id\", $id_venta);\n    }\n}\n\nif($PCO_Accion == \"VENTA_agregarProducto\") {\n\n    /* if(!$id) {\n        //crear cliente en caso de que no llegue id_cliente\n        if(!$id_cliente) {\n            PCO_EjecutarSQLUnaria(\"INSERT INTO app_clientes (nombre_completo, numero_documento, telefono) VALUES (?,?,?) \",\n                \"$nombre_completo$_SeparadorCampos_$numero_documento$_SeparadorCampos_$telefono\"\n            );\n            $id_cliente = PCO_ObtenerUltimoIDInsertado();\n        }\n        PCO_EjecutarSQLUnaria(\"INSERT INTO app_ventas (id_cliente, usuario) VALUES (?,?) \", \"$id_cliente$_SeparadorCampos_$PCOSESS_LoginUsuario\");\n        $id = PCO_ObtenerUltimoIDInsertado();\n    } */\n    $producto = PCO_EjecutarSQL(\"\n        SELECT id, precio_venta, iva\n        FROM app_productos\n        WHERE id = \'$id_producto\'\n    \")->fetch();\n    if($producto[\"id\"]) {\n        $existe = PCO_EjecutarSQL(\"\n            SELECT count(id)\n            FROM app_ventas_detalle\n            WHERE id_venta = $id AND id_producto = \'$id_producto\'\n        \")->fetchColumn();\n        if($existe > 0) {\n            print_r(\'{\"success\": false, \"msg\": \"El producto ya se ha ingresado\"}\');\n            die();\n        }\n        /* if($producto[\"inventario\"] < $cantidad) {\n            print_r(\'{\"success\": false, \"msg\": \"La cantidad digitada supera la del invetario\"}\');\n            die();\n        } */\n        // $inventarioNew = $producto[\"inventario\"] - $cantidad;\n        // PCO_EjecutarSQLUnaria(\"UPDATE app_productos SET inventario = $inventarioNew WHERE id = \" . $producto[\"id\"]);\n        PCO_EjecutarSQLUnaria(\"INSERT INTO app_ventas_detalle (id_venta, id_producto, cantidad, precio, iva) VALUES (?,?,?,?,?) \", \n            \"$id$_SeparadorCampos_$id_producto$_SeparadorCampos_$cantidad$_SeparadorCampos_$precioVenta$_SeparadorCampos_\" . $producto[\"iva\"]);\n        $result = calcularTotalVenta($id);\n        print_r(\'{\"success\": true, \"id\": \' . $id . \', \' . $result . \'}\');\n        die();\n    }\n    print_r(\'{\"success\": false, \"msg\": \"No se ha encontrado el producto seleccionado\"}\');\n    die();\n}\n\nif($PCO_Accion == \"VENTA_consultarTotalVenta\") {\n    if($id) {\n        $result = calcularTotalVenta($id);\n        print_r(\'{\"success\": true, \"id\": \' . $id . \', \' . $result . \'}\');\n        die();\n    }\n    print_r(\'{\"success\": false, \"msg\": \"No se encontro la venta\"}\');\n    die();\n}\n\nif($PCO_Accion == \"VENTA_eliminarProducto\") {\n\n    if($id_venta_detalle && $id_venta) {\n        $producto = PCO_EjecutarSQL(\"\n            SELECT p.inventario, vd.cantidad, p.id\n            FROM app_ventas_detalle vd, app_productos p\n            WHERE vd.id_producto = p.id AND vd.id = \'$id_venta_detalle\'\n        \")->fetch();\n        //Restablecemos el inventario\n        $inventarioNew = $producto[\"inventario\"] + $producto[\"cantidad\"];\n        PCO_EjecutarSQLUnaria(\"UPDATE app_productos SET inventario = $inventarioNew WHERE id = \" . $producto[\"id\"]);\n        PCO_EjecutarSQLUnaria(\"DELETE FROM app_ventas_detalle WHERE id_venta = $id_venta AND id = $id_venta_detalle\");\n        $result = calcularTotalVenta($id_venta);\n        print_r(\'{\"success\": true, \"msg\": \"Se ha eliminado el producto exitosamente\", \' . $result . \'}\');\n        die();\n    }\n    print_r(\'{\"success\": false, \"msg\": \"No se pudo eliminar el producto\"}\');\n    die();\n}\n\nif($PCO_Accion == \"VENTA_actualizarProductoVenta\") {\n    if($id) {\n        PCO_EjecutarSQLUnaria(\"UPDATE app_ventas_detalle SET cantidad=\'$cantidad\', precio=\'$precio\' WHERE id = \'$id\'\");\n        echo 1;\n        die();\n    }\n    echo 0;\n    die();\n}\n\nif($PCO_Accion == \"VENTA_imprimirFactura\") {\n\n    //sleep(2);\n    // echo \"$PCO_Valor\";\n    if($PCO_Valor)\n        $id = $PCO_Valor;\n    if($id) {\n        include_once \"imprimirFactura.php\";\n    }\n}','A'),(544,'core_formulario[7].javascript','2024-11-15 15:27:00','rafael',68,2360,'// const { tipo_venta2 } = document.datos2;\n\n/* const origenListaOpciones2 = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n}); */\nconst { tipo_venta2,id_producto2,cantidad2,precio2,id2 } = document.datos2;\nfunction FrmAutoRun()\n    {\n        document.title = \"Editar producto\";\n    }\n\nfunction ActaulizarProducto()\n    {\n        const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n            \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_actualizarProductoVenta\' +\n                \'&id=\' + id2.value + \n                \'&id_producto=\' + id_producto2.value +\n                \'&cantidad=\' + cantidad2.value +\n                \'&precioVenta=\' + precio2.value\n            )\n        );\n        window.parent.finalizarEdicionProducto();\n    }\n    \n/* $(document).ready(function() {\n    $(\"#id_producto2\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones2({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta2.value,\n        }));\n    $(\"#id_producto2\").trigger(\"change\");\n}); */','B'),(545,'core_formulario[7].javascript','2024-11-15 15:28:00','rafael',68,2360,'// const { tipo_venta2 } = document.datos2;\n\n/* const origenListaOpciones2 = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n}); */\nconst { tipo_venta2,id_producto2,cantidad2,precio2,id2 } = document.datos2;\nfunction FrmAutoRun()\n    {\n        document.title = \"Editar producto\";\n    }\n\nfunction ActualizarProducto()\n    {\n        const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n            \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_actualizarProductoVenta\' +\n                \'&id=\' + id2.value + \n                \'&id_producto=\' + id_producto2.value +\n                \'&cantidad=\' + cantidad2.value +\n                \'&precioVenta=\' + precio2.value\n            )\n        );\n        window.parent.finalizarEdicionProducto();\n    }\n    \n/* $(document).ready(function() {\n    $(\"#id_producto2\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones2({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta2.value,\n        }));\n    $(\"#id_producto2\").trigger(\"change\");\n}); */','B'),(546,'core_formulario[7].javascript','2024-11-15 15:28:00','rafael',68,2360,'// const { tipo_venta2 } = document.datos2;\n\n/* const origenListaOpciones2 = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n}); */\nconst { tipo_venta2,id_producto2,cantidad2,precio2,id2 } = document.datos2;\nfunction FrmAutoRun()\n    {\n        document.title = \"Editar producto\";\n    }\n\nfunction ActualizarProducto()\n    {\n        const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n            \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_actualizarProductoVenta\' +\n                \'&id=\' + id2.value + \n                \'&id_producto=\' + id_producto2.value +\n                \'&cantidad=\' + cantidad2.value +\n                \'&precioVenta=\' + precio2.value\n            )\n        );\n        window.parent.finalizarEdicionProducto();\n    }\n    \n/* $(document).ready(function() {\n    $(\"#id_producto2\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones2({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta2.value,\n        }));\n    $(\"#id_producto2\").trigger(\"change\");\n}); */','B'),(547,'core_formulario[7].javascript','2024-11-15 15:30:00','rafael',76,2641,'// const { tipo_venta2 } = document.datos2;\n\n/* const origenListaOpciones2 = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n}); */\nconst { tipo_venta2,id_producto2,cantidad2,precio2,id2 } = document.datos2;\nfunction FrmAutoRun()\n    {\n        document.title = \"Editar producto\";\n    }\n\nfunction ActualizarProducto()\n    {\n        if(!cantidad2.value) {\n            PCOJS_MostrarMensaje(\"Alerta Cantidad\", \"La cantidad es obligatoria\");\n            return;\n        }\n        if(!precio2.value) {\n            PCOJS_MostrarMensaje(\"Alerta Precio\", \"El precio es obligatorio\");\n            return;\n        }\n        const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n            \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_actualizarProductoVenta\' +\n                \'&id=\' + id2.value + \n                \'&id_producto=\' + id_producto2.value +\n                \'&cantidad=\' + cantidad2.value +\n                \'&precioVenta=\' + precio2.value\n            )\n        );\n        window.parent.finalizarEdicionProducto();\n    }\n    \n/* $(document).ready(function() {\n    $(\"#id_producto2\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones2({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta2.value,\n        }));\n    $(\"#id_producto2\").trigger(\"change\");\n}); */','B'),