(659,'core_formulario[8].javascript','2024-11-20 09:12:00','admin',337,12150,'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 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 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          //  \n            consultarTotalVenta();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n            $(\'#PCOContenedor_placa\').hide();\n        }*/\n        onChangeTipoProducto();\n    }\n\n function 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 mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\nfunction editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,cant,prec] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#modalMensaje\').modal(\'hide\');\n	$(\'#modalMensaje\').hide();\n    consultarTotalVenta();\n    actualizarInforme();\n}\n\nfunction actualizarProducto2()\n    {\n        if(!$(\'#id2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Venta\", \"No estas trabajando sobre una venta\");\n            return;\n        }\n        if(!$(\'#cantidad2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Cantidad\", \"La cantidad es obligatoria\");\n            return;\n        }\n        if(!$(\'#precio2\').val()) {\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\').val() + \n                \'&id_producto=\' + $(\'#id_producto2\').val()  +\n                \'&cantidad=\' + $(\'#cantidad2\').val() +\n                \'&precio=\' + $(\'#precio2\').val()\n            )\n        );\n        finalizarEdicionProducto();\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 eliminar_producto() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent] = product.split(\'|\');\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=\' + idVent\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'),(660,'core_formulario[8].javascript','2024-11-20 09:14:00','admin',337,12146,'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 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 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    }\n\n function 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 mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\nfunction editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,cant,prec] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#modalMensaje\').modal(\'hide\');\n	$(\'#modalMensaje\').hide();\n    consultarTotalVenta();\n    actualizarInforme();\n}\n\nfunction actualizarProducto2()\n    {\n        if(!$(\'#id2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Venta\", \"No estas trabajando sobre una venta\");\n            return;\n        }\n        if(!$(\'#cantidad2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Cantidad\", \"La cantidad es obligatoria\");\n            return;\n        }\n        if(!$(\'#precio2\').val()) {\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\').val() + \n                \'&id_producto=\' + $(\'#id_producto2\').val()  +\n                \'&cantidad=\' + $(\'#cantidad2\').val() +\n                \'&precio=\' + $(\'#precio2\').val()\n            )\n        );\n        finalizarEdicionProducto();\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 eliminar_producto() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent] = product.split(\'|\');\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=\' + idVent\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'),(661,'core_formulario[8].javascript','2024-11-20 09:16:00','admin',337,12150,'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 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 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    }\n\n/* function 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 mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\nfunction editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,cant,prec] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#modalMensaje\').modal(\'hide\');\n	$(\'#modalMensaje\').hide();\n    consultarTotalVenta();\n    actualizarInforme();\n}\n\nfunction actualizarProducto2()\n    {\n        if(!$(\'#id2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Venta\", \"No estas trabajando sobre una venta\");\n            return;\n        }\n        if(!$(\'#cantidad2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Cantidad\", \"La cantidad es obligatoria\");\n            return;\n        }\n        if(!$(\'#precio2\').val()) {\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\').val() + \n                \'&id_producto=\' + $(\'#id_producto2\').val()  +\n                \'&cantidad=\' + $(\'#cantidad2\').val() +\n                \'&precio=\' + $(\'#precio2\').val()\n            )\n        );\n        finalizarEdicionProducto();\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 eliminar_producto() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent] = product.split(\'|\');\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=\' + idVent\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'),(662,'core_formulario[8].javascript','2024-11-20 09:16:00','admin',337,12146,'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 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 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    }\n\n function 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 mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\nfunction editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,cant,prec] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#modalMensaje\').modal(\'hide\');\n	$(\'#modalMensaje\').hide();\n    consultarTotalVenta();\n    actualizarInforme();\n}\n\nfunction actualizarProducto2()\n    {\n        if(!$(\'#id2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Venta\", \"No estas trabajando sobre una venta\");\n            return;\n        }\n        if(!$(\'#cantidad2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Cantidad\", \"La cantidad es obligatoria\");\n            return;\n        }\n        if(!$(\'#precio2\').val()) {\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\').val() + \n                \'&id_producto=\' + $(\'#id_producto2\').val()  +\n                \'&cantidad=\' + $(\'#cantidad2\').val() +\n                \'&precio=\' + $(\'#precio2\').val()\n            )\n        );\n        finalizarEdicionProducto();\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 eliminar_producto() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent] = product.split(\'|\');\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=\' + idVent\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'),(663,'core_formulario[8].javascript','2024-11-20 09:18:00','admin',337,12141,'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 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 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\').hide();\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    }\n\n function 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 mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\nfunction editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,cant,prec] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#modalMensaje\').modal(\'hide\');\n	$(\'#modalMensaje\').hide();\n    consultarTotalVenta();\n    actualizarInforme();\n}\n\nfunction actualizarProducto2()\n    {\n        if(!$(\'#id2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Venta\", \"No estas trabajando sobre una venta\");\n            return;\n        }\n        if(!$(\'#cantidad2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Cantidad\", \"La cantidad es obligatoria\");\n            return;\n        }\n        if(!$(\'#precio2\').val()) {\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\').val() + \n                \'&id_producto=\' + $(\'#id_producto2\').val()  +\n                \'&cantidad=\' + $(\'#cantidad2\').val() +\n                \'&precio=\' + $(\'#precio2\').val()\n            )\n        );\n        finalizarEdicionProducto();\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 eliminar_producto() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent] = product.split(\'|\');\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=\' + idVent\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'),(664,'core_formulario[8].javascript','2024-11-20 09:18:00','admin',337,12141,'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 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 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\').show();\n            }\n          onChangeTipoProducto();\n            consultarTotalVenta();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n            $(\'#PCOContenedor_placa\').hide();\n        }\n        \n    }\n\n function 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 mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\nfunction editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,cant,prec] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#modalMensaje\').modal(\'hide\');\n	$(\'#modalMensaje\').hide();\n    consultarTotalVenta();\n    actualizarInforme();\n}\n\nfunction actualizarProducto2()\n    {\n        if(!$(\'#id2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Venta\", \"No estas trabajando sobre una venta\");\n            return;\n        }\n        if(!$(\'#cantidad2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Cantidad\", \"La cantidad es obligatoria\");\n            return;\n        }\n        if(!$(\'#precio2\').val()) {\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\').val() + \n                \'&id_producto=\' + $(\'#id_producto2\').val()  +\n                \'&cantidad=\' + $(\'#cantidad2\').val() +\n                \'&precio=\' + $(\'#precio2\').val()\n            )\n        );\n        finalizarEdicionProducto();\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 eliminar_producto() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent] = product.split(\'|\');\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=\' + idVent\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'),(665,'core_formulario[8].javascript','2024-11-20 09:18:00','admin',337,12141,'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 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 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\').show();\n            }\n          onChangeTipoProducto();\n            consultarTotalVenta();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n            $(\'#PCOContenedor_placa\').hide();\n        }\n        \n    }\n\n function 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 mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\nfunction editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,cant,prec] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#modalMensaje\').modal(\'hide\');\n	$(\'#modalMensaje\').hide();\n    consultarTotalVenta();\n    actualizarInforme();\n}\n\nfunction actualizarProducto2()\n    {\n        if(!$(\'#id2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Venta\", \"No estas trabajando sobre una venta\");\n            return;\n        }\n        if(!$(\'#cantidad2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Cantidad\", \"La cantidad es obligatoria\");\n            return;\n        }\n        if(!$(\'#precio2\').val()) {\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\').val() + \n                \'&id_producto=\' + $(\'#id_producto2\').val()  +\n                \'&cantidad=\' + $(\'#cantidad2\').val() +\n                \'&precio=\' + $(\'#precio2\').val()\n            )\n        );\n        finalizarEdicionProducto();\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 eliminar_producto() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent] = product.split(\'|\');\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=\' + idVent\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'),(666,'core_formulario[8].javascript','2024-11-20 09:19:00','admin',337,12141,'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 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 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    }\n\n function onchangeCliente(){\n    $(\'#PCOContenedor_placa\').show();\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 mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\nfunction editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,cant,prec] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#modalMensaje\').modal(\'hide\');\n	$(\'#modalMensaje\').hide();\n    consultarTotalVenta();\n    actualizarInforme();\n}\n\nfunction actualizarProducto2()\n    {\n        if(!$(\'#id2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Venta\", \"No estas trabajando sobre una venta\");\n            return;\n        }\n        if(!$(\'#cantidad2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Cantidad\", \"La cantidad es obligatoria\");\n            return;\n        }\n        if(!$(\'#precio2\').val()) {\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\').val() + \n                \'&id_producto=\' + $(\'#id_producto2\').val()  +\n                \'&cantidad=\' + $(\'#cantidad2\').val() +\n                \'&precio=\' + $(\'#precio2\').val()\n            )\n        );\n        finalizarEdicionProducto();\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 eliminar_producto() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent] = product.split(\'|\');\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=\' + idVent\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'),(667,'core_formulario[8].javascript','2024-11-20 09:19:00','admin',337,12145,'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 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 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    }\n\n function 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 mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\nfunction editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,cant,prec] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#modalMensaje\').modal(\'hide\');\n	$(\'#modalMensaje\').hide();\n    consultarTotalVenta();\n    actualizarInforme();\n}\n\nfunction actualizarProducto2()\n    {\n        if(!$(\'#id2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Venta\", \"No estas trabajando sobre una venta\");\n            return;\n        }\n        if(!$(\'#cantidad2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Cantidad\", \"La cantidad es obligatoria\");\n            return;\n        }\n        if(!$(\'#precio2\').val()) {\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\').val() + \n                \'&id_producto=\' + $(\'#id_producto2\').val()  +\n                \'&cantidad=\' + $(\'#cantidad2\').val() +\n                \'&precio=\' + $(\'#precio2\').val()\n            )\n        );\n        finalizarEdicionProducto();\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 eliminar_producto() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent] = product.split(\'|\');\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=\' + idVent\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'),(668,'core_formulario[8].javascript','2024-11-20 09:20:00','admin',337,12145,'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 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 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    }\n\n/* function 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 mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\nfunction editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,cant,prec] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#modalMensaje\').modal(\'hide\');\n	$(\'#modalMensaje\').hide();\n    consultarTotalVenta();\n    actualizarInforme();\n}\n\nfunction actualizarProducto2()\n    {\n        if(!$(\'#id2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Venta\", \"No estas trabajando sobre una venta\");\n            return;\n        }\n        if(!$(\'#cantidad2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Cantidad\", \"La cantidad es obligatoria\");\n            return;\n        }\n        if(!$(\'#precio2\').val()) {\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\').val() + \n                \'&id_producto=\' + $(\'#id_producto2\').val()  +\n                \'&cantidad=\' + $(\'#cantidad2\').val() +\n                \'&precio=\' + $(\'#precio2\').val()\n            )\n        );\n        finalizarEdicionProducto();\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 eliminar_producto() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent] = product.split(\'|\');\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=\' + idVent\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'),(669,'core_formulario[8].javascript','2024-11-20 09:21:00','admin',337,12141,'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 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 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    }\n\n function onchangeCliente(){\n    $(\'#PCOContenedor_placa\').show();\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 mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\nfunction editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,cant,prec] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#modalMensaje\').modal(\'hide\');\n	$(\'#modalMensaje\').hide();\n    consultarTotalVenta();\n    actualizarInforme();\n}\n\nfunction actualizarProducto2()\n    {\n        if(!$(\'#id2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Venta\", \"No estas trabajando sobre una venta\");\n            return;\n        }\n        if(!$(\'#cantidad2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Cantidad\", \"La cantidad es obligatoria\");\n            return;\n        }\n        if(!$(\'#precio2\').val()) {\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\').val() + \n                \'&id_producto=\' + $(\'#id_producto2\').val()  +\n                \'&cantidad=\' + $(\'#cantidad2\').val() +\n                \'&precio=\' + $(\'#precio2\').val()\n            )\n        );\n        finalizarEdicionProducto();\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 eliminar_producto() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent] = product.split(\'|\');\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=\' + idVent\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'),(670,'core_formulario[8].javascript','2024-11-20 09:39:00','admin',339,12198,'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 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 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_hora_inicio\').hide();\n        \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    }\n\n function onchangeCliente(){\n    $(\'#PCOContenedor_placa\').show();\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 mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\nfunction editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,cant,prec] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#modalMensaje\').modal(\'hide\');\n	$(\'#modalMensaje\').hide();\n    consultarTotalVenta();\n    actualizarInforme();\n}\n\nfunction actualizarProducto2()\n    {\n        if(!$(\'#id2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Venta\", \"No estas trabajando sobre una venta\");\n            return;\n        }\n        if(!$(\'#cantidad2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Cantidad\", \"La cantidad es obligatoria\");\n            return;\n        }\n        if(!$(\'#precio2\').val()) {\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\').val() + \n                \'&id_producto=\' + $(\'#id_producto2\').val()  +\n                \'&cantidad=\' + $(\'#cantidad2\').val() +\n                \'&precio=\' + $(\'#precio2\').val()\n            )\n        );\n        finalizarEdicionProducto();\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 eliminar_producto() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent] = product.split(\'|\');\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=\' + idVent\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'),(671,'core_formulario[8].javascript','2024-11-20 09:42:00','admin',339,12198,'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 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 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_hora_inicio\').hide();\n        \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    }\n\n function onchangeCliente(){\n    $(\'#PCOContenedor_placa\').show();\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 mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\nfunction editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,cant,prec] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#modalMensaje\').modal(\'hide\');\n	$(\'#modalMensaje\').hide();\n    consultarTotalVenta();\n    actualizarInforme();\n}\n\nfunction actualizarProducto2()\n    {\n        if(!$(\'#id2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Venta\", \"No estas trabajando sobre una venta\");\n            return;\n        }\n        if(!$(\'#cantidad2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Cantidad\", \"La cantidad es obligatoria\");\n            return;\n        }\n        if(!$(\'#precio2\').val()) {\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\').val() + \n                \'&id_producto=\' + $(\'#id_producto2\').val()  +\n                \'&cantidad=\' + $(\'#cantidad2\').val() +\n                \'&precio=\' + $(\'#precio2\').val()\n            )\n        );\n        finalizarEdicionProducto();\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 eliminar_producto() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent] = product.split(\'|\');\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=\' + idVent\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'),(672,'core_formulario[8].javascript','2024-11-20 09:45:00','admin',340,12276,'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 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 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_hora_inicio\').hide();\n        $(\'#PCOContenedor_hora_fin\').hide();\n        $(\'#PCOContenedor_guaje\').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    }\n\n function onchangeCliente(){\n    $(\'#PCOContenedor_placa\').show();\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 mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\nfunction editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,cant,prec] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#modalMensaje\').modal(\'hide\');\n	$(\'#modalMensaje\').hide();\n    consultarTotalVenta();\n    actualizarInforme();\n}\n\nfunction actualizarProducto2()\n    {\n        if(!$(\'#id2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Venta\", \"No estas trabajando sobre una venta\");\n            return;\n        }\n        if(!$(\'#cantidad2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Cantidad\", \"La cantidad es obligatoria\");\n            return;\n        }\n        if(!$(\'#precio2\').val()) {\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\').val() + \n                \'&id_producto=\' + $(\'#id_producto2\').val()  +\n                \'&cantidad=\' + $(\'#cantidad2\').val() +\n                \'&precio=\' + $(\'#precio2\').val()\n            )\n        );\n        finalizarEdicionProducto();\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 eliminar_producto() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent] = product.split(\'|\');\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=\' + idVent\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'),(673,'core_formulario[8].javascript','2024-11-20 09:45:00','admin',340,12276,'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 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 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_hora_inicio\').hide();\n        $(\'#PCOContenedor_hora_fin\').hide();\n        $(\'#PCOContenedor_guaje\').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    }\n\n function onchangeCliente(){\n    $(\'#PCOContenedor_placa\').show();\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 mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\nfunction editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,cant,prec] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#modalMensaje\').modal(\'hide\');\n	$(\'#modalMensaje\').hide();\n    consultarTotalVenta();\n    actualizarInforme();\n}\n\nfunction actualizarProducto2()\n    {\n        if(!$(\'#id2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Venta\", \"No estas trabajando sobre una venta\");\n            return;\n        }\n        if(!$(\'#cantidad2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Cantidad\", \"La cantidad es obligatoria\");\n            return;\n        }\n        if(!$(\'#precio2\').val()) {\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\').val() + \n                \'&id_producto=\' + $(\'#id_producto2\').val()  +\n                \'&cantidad=\' + $(\'#cantidad2\').val() +\n                \'&precio=\' + $(\'#precio2\').val()\n            )\n        );\n        finalizarEdicionProducto();\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 eliminar_producto() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent] = product.split(\'|\');\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=\' + idVent\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'),(674,'core_formulario[8].javascript','2024-11-20 09:48:00','admin',354,12715,'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 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 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_hora_inicio\').hide();\n        $(\'#PCOContenedor_hora_fin\').hide();\n        $(\'#PCOContenedor_guaje\').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    }\n\n function onchangeCliente(){\n    $(\'#PCOContenedor_placa\').show();\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 mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\nfunction editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,cant,prec] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#modalMensaje\').modal(\'hide\');\n	$(\'#modalMensaje\').hide();\n    consultarTotalVenta();\n    actualizarInforme();\n}\n\nfunction actualizarProducto2()\n    {\n        if(!$(\'#id2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Venta\", \"No estas trabajando sobre una venta\");\n            return;\n        }\n        if(!$(\'#cantidad2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Cantidad\", \"La cantidad es obligatoria\");\n            return;\n        }\n        if(!$(\'#precio2\').val()) {\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\').val() + \n                \'&id_producto=\' + $(\'#id_producto2\').val()  +\n                \'&cantidad=\' + $(\'#cantidad2\').val() +\n                \'&precio=\' + $(\'#precio2\').val()\n            )\n        );\n        finalizarEdicionProducto();\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 eliminar_producto() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent] = product.split(\'|\');\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=\' + idVent\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        //Mostar hora inicio\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_hora_inicio\').show();\n        \n        //Mostrar Hora Fin\n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_hora_fin\').show();\n        \n        //Mostrar Guaje\n        $(\'#PCOContenedor_guaje\').hide();\n    if(tipo_venta.value == servicio)\n        $(\'#PCOContenedor_guaje\').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'),(675,'core_formulario[8].javascript','2024-11-20 09:48:00','admin',354,12709,'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 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 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_hora_inicio\').hide();\n        $(\'#PCOContenedor_hora_fin\').hide();\n        $(\'#PCOContenedor_guaje\').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    }\n\n function onchangeCliente(){\n    $(\'#PCOContenedor_placa\').show();\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 mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\nfunction editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,cant,prec] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#modalMensaje\').modal(\'hide\');\n	$(\'#modalMensaje\').hide();\n    consultarTotalVenta();\n    actualizarInforme();\n}\n\nfunction actualizarProducto2()\n    {\n        if(!$(\'#id2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Venta\", \"No estas trabajando sobre una venta\");\n            return;\n        }\n        if(!$(\'#cantidad2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Cantidad\", \"La cantidad es obligatoria\");\n            return;\n        }\n        if(!$(\'#precio2\').val()) {\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\').val() + \n                \'&id_producto=\' + $(\'#id_producto2\').val()  +\n                \'&cantidad=\' + $(\'#cantidad2\').val() +\n                \'&precio=\' + $(\'#precio2\').val()\n            )\n        );\n        finalizarEdicionProducto();\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 eliminar_producto() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent] = product.split(\'|\');\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=\' + idVent\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        //Mostar hora inicio\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_hora_inicio\').show();\n        \n        //Mostrar Hora Fin\n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_hora_fin\').show();\n        \n        //Mostrar Guaje\n        $(\'#PCOContenedor_guaje\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_guaje\').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'),(676,'core_formulario[8].javascript','2024-11-20 09:55:00','admin',342,12292,'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 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 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_hora_inicio\').hide();\n        $(\'#PCOContenedor_hora_fin\').hide();\n        $(\'#PCOContenedor_guaje\').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    }\n\n function onchangeCliente(){\n    $(\'#PCOContenedor_placa\').show();\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 mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\nfunction editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,cant,prec] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#modalMensaje\').modal(\'hide\');\n	$(\'#modalMensaje\').hide();\n    consultarTotalVenta();\n    actualizarInforme();\n}\n\nfunction actualizarProducto2()\n    {\n        if(!$(\'#id2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Venta\", \"No estas trabajando sobre una venta\");\n            return;\n        }\n        if(!$(\'#cantidad2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Cantidad\", \"La cantidad es obligatoria\");\n            return;\n        }\n        if(!$(\'#precio2\').val()) {\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\').val() + \n                \'&id_producto=\' + $(\'#id_producto2\').val()  +\n                \'&cantidad=\' + $(\'#cantidad2\').val() +\n                \'&precio=\' + $(\'#precio2\').val()\n            )\n        );\n        finalizarEdicionProducto();\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 eliminar_producto() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent] = product.split(\'|\');\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=\' + idVent\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      \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'),(677,'core_formulario[8].javascript','2024-11-20 09:56:00','admin',354,12709,'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 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 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_hora_inicio\').hide();\n        $(\'#PCOContenedor_hora_fin\').hide();\n        $(\'#PCOContenedor_guaje\').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    }\n\n function onchangeCliente(){\n    $(\'#PCOContenedor_placa\').show();\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 mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\nfunction editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,cant,prec] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#modalMensaje\').modal(\'hide\');\n	$(\'#modalMensaje\').hide();\n    consultarTotalVenta();\n    actualizarInforme();\n}\n\nfunction actualizarProducto2()\n    {\n        if(!$(\'#id2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Venta\", \"No estas trabajando sobre una venta\");\n            return;\n        }\n        if(!$(\'#cantidad2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Cantidad\", \"La cantidad es obligatoria\");\n            return;\n        }\n        if(!$(\'#precio2\').val()) {\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\').val() + \n                \'&id_producto=\' + $(\'#id_producto2\').val()  +\n                \'&cantidad=\' + $(\'#cantidad2\').val() +\n                \'&precio=\' + $(\'#precio2\').val()\n            )\n        );\n        finalizarEdicionProducto();\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 eliminar_producto() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent] = product.split(\'|\');\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=\' + idVent\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        //Mostar hora inicio\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_hora_inicio\').show();\n        \n        //Mostrar Hora Fin\n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_hora_fin\').show();\n        \n        //Mostrar Guaje\n        $(\'#PCOContenedor_guaje\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_guaje\').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'),(678,'core_formulario[8].javascript','2024-11-20 10:07:00','admin',354,12711,'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 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 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_hora_inicio\').hide();\n        $(\'#PCOContenedor_hora_fin\').hide();\n        $(\'#PCOContenedor_guaje\').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    }\n\n function onchangeCliente(){\n    $(\'#PCOContenedor_placa\').show();\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 mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\nfunction editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,cant,prec] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#modalMensaje\').modal(\'hide\');\n	$(\'#modalMensaje\').hide();\n    consultarTotalVenta();\n    actualizarInforme();\n}\n\nfunction actualizarProducto2()\n    {\n        if(!$(\'#id2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Venta\", \"No estas trabajando sobre una venta\");\n            return;\n        }\n        if(!$(\'#cantidad2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Cantidad\", \"La cantidad es obligatoria\");\n            return;\n        }\n        if(!$(\'#precio2\').val()) {\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\').val() + \n                \'&id_producto=\' + $(\'#id_producto2\').val()  +\n                \'&cantidad=\' + $(\'#cantidad2\').val() +\n                \'&precio=\' + $(\'#precio2\').val()\n            )\n        );\n        finalizarEdicionProducto();\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 eliminar_producto() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent] = product.split(\'|\');\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=\' + idVent\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        //Mostar hora inicio\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_hora_inicio\').show();\n        \n        //Mostrar Hora Fin\n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_hora_fin\').show();\n        \n        //Mostrar Guaje\n        $(\'#PCOContenedor_guaje\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_guaje\').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'),(679,'core_formulario[8].javascript','2024-11-20 10:09:00','admin',355,12752,'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 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 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_hora_inicio\').hide();\n        $(\'#PCOContenedor_hora_fin\').hide();\n        $(\'#PCOContenedor_guaje\').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    }\n\n function onchangeCliente(){\n    $(\'#PCOContenedor_placa\').show();\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 mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\nfunction editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,cant,prec] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#modalMensaje\').modal(\'hide\');\n	$(\'#modalMensaje\').hide();\n    consultarTotalVenta();\n    actualizarInforme();\n}\n\nfunction actualizarProducto2()\n    {\n        if(!$(\'#id2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Venta\", \"No estas trabajando sobre una venta\");\n            return;\n        }\n        if(!$(\'#cantidad2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Cantidad\", \"La cantidad es obligatoria\");\n            return;\n        }\n        if(!$(\'#precio2\').val()) {\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\').val() + \n                \'&id_producto=\' + $(\'#id_producto2\').val()  +\n                \'&cantidad=\' + $(\'#cantidad2\').val() +\n                \'&precio=\' + $(\'#precio2\').val()\n            )\n        );\n        finalizarEdicionProducto();\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 eliminar_producto() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent] = product.split(\'|\');\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=\' + idVent\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        //Mostar hora inicio\n    $(\'#PCOContenedor_hora_inicio\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_hora_inicio\').show();\n        \n        //Mostrar Hora Fin\n    $(\'#PCOContenedor_hora_fin\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_hora_fin\').show();\n        \n        //Mostrar Guaje\n        $(\'#PCOContenedor_guaje\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_guaje\').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'),(680,'mod/app_ventas/imprimirFactura.php','2024-11-20 16:07:00','admin',208,5854,'<?php\n$medidaTicket = 280;\n\n\n$empresa = PCO_EjecutarSQL(\"\n            SELECT razon_social, nit, telefono, direccion\n            FROM app_empresa\n            WHERE id = 1\n        \")->fetch();\n\n$venta = PCO_EjecutarSQL(\"\n            SELECT date_format(fecha, \'%d-%m-%Y %H:%i:%s\') fecha, total, iva, forma_pago, devuelta, dinero_entregado, id_cliente, usuario\n            FROM app_ventas\n            WHERE id = \'$id\'\n        \")->fetch();\n\n$cliente = PCO_EjecutarSQL(\"\n            SELECT *\n            FROM app_clientes\n            WHERE id = \'\" . $venta[\"id_cliente\"] . \"\'\n        \")->fetch();\n\n$vendedor = PCO_EjecutarSQL(\"\n            SELECT nombre\n            FROM core_usuario\n            WHERE login = \'\" . $venta[\'usuario\'] . \"\'\n        \")->fetchColumn();\n\n$productos = PCO_EjecutarSQL(\"\n            SELECT vd.cantidad, p.nombre as descripcion, vd.precio, date_format(fecha, \'%d-%m-%Y\') \n            FROM app_ventas_detalle vd, app_productos p\n            WHERE vd.id_producto = p.id AND vd.id_venta = \'$id\'\n        \")->fetchAll();\n?>\n<!DOCTYPE html>\n<html>\n\n<head>\n\n    <style>\n        * {\n            font-size: 15px;\n            font-family: \'DejaVu Sans\', serif;\n        }\n\n        h1 {\n            font-size: 18px;\n        }\n\n        \n\n        .ticket {\n            margin: 0.5px;\n        }\n\n        td,\n        th,\n        tr,\n        table {\n            border-top: 1px solid black;\n            border-collapse: collapse;\n            margin: 0 auto;\n            font-size: 15px;\n        }\n\n        td.precio {\n            text-align: right;\n            font-size: 11px;\n        }\n\n        td.cantidad {\n            font-size: 12px;\n        }\n\n        td.producto {\n            text-align: center;\n        }\n\n        th {\n            text-align: center;\n        }\n\n\n        .centrado {\n            text-align: center;\n            align-content: center;\n        }\n\n        .ticket {\n            width: <?php echo $medidaTicket ?>px;\n            max-width: <?php echo $medidaTicket ?>px;\n        }\n\n        img {\n            max-width: inherit;\n            width: inherit;\n        }\n\n        * {\n            margin: 0;\n            padding: 0;\n        }\n\n        .ticket {\n            margin: 0;\n            padding: 0;\n        }\n\n        body {\n            text-align: center;\n        }\n    </style>\n</head>\n\n<body>\n    <div class=\"ticket centrado\">\n      <!--  <h1><?php echo $empresa[\"razon_social\"] ?></h1>\n        <h2>NIT: <?php echo $empresa[\"nit\"] ?></h2>\n        <h2>Teléfono: <?php echo $empresa[\"telefono\"] ?></h2>\n        <h2>Direccion: <?php echo $empresa[\"direccion\"] ?></h2>\n        <h2>Correo: </h2>\n        <h2>--------------------------------------------</h2> -->\n        <h1 align=\"center\">Ticket de venta #<?php echo $id ?></h1>\n        \n        <h2>Fecha: <?php echo $venta[\"fecha\"] ?></h2>\n        <h2>Cliente: <?php echo $cliente[\"nombre_completo\"] ?></h2>\n        <h2>telefono: <?php echo $cliente[\"telefono\"] ?></h2>\n        <h2>CC / NIT: <?php echo $cliente[\"numero_documento\"] ?></h2>\n        <h2>Dirección: <?php echo $cliente[\"direccion\"] ?></h2>\n        <h2>Vendedor: <?php echo $vendedor ?></h2>\n        <h2>Caja N° 1</h2>\n        <br>\n\n        <table>\n            <thead>\n                <tr class=\"centrado\">\n                    <th class=\"cantidad\">CANT</th>\n                    <th class=\"producto\">PRODUCTO</th>\n                    <th class=\"precio\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TOTAL</th>\n                </tr>\n            </thead>\n            <tbody>\n                <?php\n                $total = 0;\n                foreach ($productos as $producto) {\n                    $total += $producto[\"cantidad\"] * $producto[\"precio\"];\n                ?>\n                    <tr>\n                        <td class=\"cantidad\"><?php echo number_format($producto[\"cantidad\"], 2) ?></td>\n                        <td class=\"producto\"><?php echo $producto[\"descripcion\"] ?></td>\n                        <td class=\"precio\">$<?php echo number_format($producto[\"precio\"], 2) ?></td>\n                    </tr>\n                <?php } ?>\n            </tbody>\n</table>\n<BR>\n<table style=\"border-top: 0px !important;\">\n    <tr style=\"border-top: 0px !important;\">\n        <td style=\"border-top: 0px !important;\">\n            <strong>SUBTOTAL</strong>\n        </td>\n        <td style=\"border-top: 0px !important;\">\n            <strong>$<?php echo number_format($venta[\"total\"] - $venta[\"iva\"], 2) ?></strong>\n        </td>\n    </tr>\n    <tr style=\"border-top: 0px !important;\">\n        <td style=\"border-top: 0px !important;\">\n            <strong>TOTAL A PAGAR</strong>\n        </td>\n        <td style=\"border-top: 0px !important;\">\n            <strong>$<?php echo number_format($venta[\"total\"] - $venta[\"iva\"], 2) ?></strong>\n        </td>\n    </tr>\n    <tr style=\"border-top: 0px !important;\">\n        <td style=\"border-top: 0px !important;\">\n            <strong>VALOR PAGADO</strong>\n        </td>\n        <td style=\"border-top: 0px !important;\">\n            <strong>$<?php echo $venta[\"dinero_entregado\"] ?></strong>\n        </td>\n    </tr>\n    <tr style=\"border-top: 0px !important;\">\n        <td style=\"border-top: 0px !important;\">\n            <strong>FORMA DE PAGO</strong>\n        </td>\n        <td style=\"border-top: 0px !important;\">\n            <strong><?php echo $venta[\"forma_pago\"] ?></strong>\n        </td>\n    </tr>\n    <tr style=\"border-top: 0px !important;\">\n        <td style=\"border-top: 0px !important;\">\n            <strong>CAMBIO</strong>\n        </td>\n        <td style=\"border-top: 0px !important;\">\n            <strong>$<?php echo $venta[\"devuelta\"] ?></strong>\n        </td>\n    </tr>\n</table>\n        <br>\n        <p class=\"centrado\">¡GRACIAS POR SU COMPRA! </P>\n        <br>\n        <P>Elaborado por www.cloudecoway.com</p>\n        <P>Tel: 3137010627</p>\n\n    </div>\n</body>\n\n</html>','A'),(681,'core_formulario[12].javascript','2024-11-21 08:40:00','admin',46,1588,'function FrmAutoRun()\n    {\n        //Aqui sus instrucciones\n    }\n    \n    \n    function mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\n    \n    \n    \n    function editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,nrofac,nroremision,observaciones,] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:13:1\'+\n        \'&id2=\' + idVent +\n        \'&nro_factura=\' + cant +\n        \'&nro_remision=\' + prec\n    ));\n\n}\n','B'),(682,'core_formulario[12].javascript','2024-11-21 08:47:00','admin',46,1588,'function FrmAutoRun()\n    {\n        //Aqui sus instrucciones\n    }\n    \n    \n    function mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\n    \n    \n    \n    function editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,nrofac,nroremision,observaciones,] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:13:1\'+\n        \'&id2=\' + idVent +\n        \'&nro_factura=\' + cant +\n        \'&nro_remision=\' + prec\n    ));\n\n}\n','B'),(683,'core_formulario[12].javascript','2024-11-21 08:48:00','admin',46,1588,'function FrmAutoRun()\n    {\n        //Aqui sus instrucciones\n    }\n    \n    \n    function mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\n    \n    \n    \n    function editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,nrofac,nroremision,observaciones,] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:13:1\'+\n        \'&id2=\' + idVent +\n        \'&nro_factura=\' + cant +\n        \'&nro_remision=\' + prec\n    ));\n\n}\n','B'),(684,'core_formulario[12].javascript','2024-11-21 08:48:00','admin',47,1641,'function FrmAutoRun()\n    {\n        //Aqui sus instrucciones\n    }\n    \n    \n    function mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\n    \n    \n    \n    function editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,nrofac,nroremision,observaciones,] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:13:1\'+\n        \'&id2=\' + idVent +\n        \'&nro_factura=\' + nrofac +\n        \'&nro_remision=\' + nroremision +\n        \'&observaciones=\' + observaciones\n    ));\n\n}\n','B'),(685,'core_formulario[12].javascript','2024-11-21 08:49:00','admin',47,1641,'function FrmAutoRun()\n    {\n        //Aqui sus instrucciones\n    }\n    \n    \n    function mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\n    \n    \n    \n    function editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,nrofac,nroremision,observaciones,] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:13:1\'+\n        \'&id2=\' + idVent +\n        \'&nro_factura=\' + nrofac +\n        \'&nro_remision=\' + nroremision +\n        \'&observaciones=\' + observaciones\n    ));\n\n}\n','B'),(686,'core_formulario[12].javascript','2024-11-21 08:49:00','admin',47,1641,'function FrmAutoRun()\n    {\n        //Aqui sus instrucciones\n    }\n    \n    \n    function mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\n    \n    \n    \n    function editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,nrofac,nroremision,observaciones,] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:13:1\'+\n        \'&id2=\' + idVent +\n        \'&nro_factura=\' + nrofac +\n        \'&nro_remision=\' + nroremision +\n        \'&observaciones=\' + observaciones\n    ));\n\n}\n','B'),(687,'core_formulario[12].javascript','2024-11-21 08:55:00','admin',47,1642,'function FrmAutoRun()\n    {\n        //Aqui sus instrucciones\n    }\n    \n    \n    function mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\n    \n    \n    \n    function editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,nrofac,nroremision,observaciones,] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Administrar Venta\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:13:1\'+\n        \'&id=\' + idVent +\n        \'&nro_factura=\' + nrofac +\n        \'&nro_remision=\' + nroremision +\n        \'&observaciones=\' + observaciones\n    ));\n\n}\n','B'),(688,'core_formulario[12].javascript','2024-11-21 09:22:00','admin',6,74,'function FrmAutoRun()\n    {\n        //Aqui sus instrucciones\n    }\n    \n  ','B'),(689,'core_formulario[12].post_script','2024-11-21 09:26:00','admin',9,363,'<?php\nglobal $PCO_PostAccionDirecta, $id, $accionForm;\n$PCO_PostAccionDirecta = 1;\n//$PCO_PostAccion = 1;\n$accionForm = \"Guardado\";\nif($id)\n    $accionForm = \"Actualizado\";\nPCO_Mensaje(\"Aviso del sistema\",\"La venta $accionForm correctamente!\", \'\', \'fa fa-thumbs-up fa-5x icon-green texto-blink\', \'alert alert-success alert-dismissible\');\nPCO_CargarFormulario(12);','B'),(690,'core_formulario[12].javascript','2024-11-21 09:27:00','admin',9,199,'function FrmAutoRun()\n    {\n        if($(\'#id\').val()) {\n            $(\'#PCOContenedor_btn_update\').show();\n        }\n        else {\n            $(\'#PCOContenedor_btn_update\').hide();\n        }\n    }','B'),(691,'core_formulario[12].javascript','2024-11-21 09:28:00','admin',9,199,'function FrmAutoRun()\n    {\n        if($(\'#id\').val()) {\n            $(\'#PCOContenedor_btn_update\').show();\n        }\n        else {\n            $(\'#PCOContenedor_btn_update\').hide();\n        }\n    }','B'),(692,'core_formulario[8].javascript','2024-11-21 09:31:00','rafael',355,12789,'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;\nconsole.log(\"moment\", moment.version)\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(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 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_hora_inicio\').hide();\n        $(\'#PCOContenedor_hora_fin\').hide();\n        $(\'#PCOContenedor_guaje\').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    }\n\n function onchangeCliente(){\n    $(\'#PCOContenedor_placa\').show();\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 mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\nfunction editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,cant,prec] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#modalMensaje\').modal(\'hide\');\n	$(\'#modalMensaje\').hide();\n    consultarTotalVenta();\n    actualizarInforme();\n}\n\nfunction actualizarProducto2()\n    {\n        if(!$(\'#id2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Venta\", \"No estas trabajando sobre una venta\");\n            return;\n        }\n        if(!$(\'#cantidad2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Cantidad\", \"La cantidad es obligatoria\");\n            return;\n        }\n        if(!$(\'#precio2\').val()) {\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\').val() + \n                \'&id_producto=\' + $(\'#id_producto2\').val()  +\n                \'&cantidad=\' + $(\'#cantidad2\').val() +\n                \'&precio=\' + $(\'#precio2\').val()\n            )\n        );\n        finalizarEdicionProducto();\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 eliminar_producto() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent] = product.split(\'|\');\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=\' + idVent\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        //Mostar hora inicio\n    $(\'#PCOContenedor_hora_inicio\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_hora_inicio\').show();\n        \n        //Mostrar Hora Fin\n    $(\'#PCOContenedor_hora_fin\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_hora_fin\').show();\n        \n        //Mostrar Guaje\n        $(\'#PCOContenedor_guaje\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_guaje\').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'),(693,'core_formulario[12].javascript','2024-11-21 09:43:00','admin',17,629,'function FrmAutoRun()\n    {\n        if($(\'#id\').val()) {\n            $(\'#PCOContenedor_btn_update\').show();\n            $(\'#PCOContenedor_nro_factura\').show();\n            $(\'#PCOContenedor_factura_cerrada\').show();\n            $(\'#PCOContenedor_nro_remision\').show();\n            $(\'#PCOContenedor_observaciones\').show();\n        }\n        else {\n            $(\'#PCOContenedor_btn_update\').hide();\n            $(\'#PCOContenedor_nro_factura\').hide();\n            $(\'#PCOContenedor_factura_cerrada\').hide();\n            $(\'#PCOContenedor_nro_remision\').hide();\n            $(\'#PCOContenedor_observaciones\').hide();\n        }\n    }','B'),(694,'core_formulario[8].javascript','2024-11-21 09:44:00','rafael',367,13091,'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 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 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 calcularTiempo(resp) {\n    const horaInicio = $(\'hora_inicio\').val();\n    const horaFin = $(\'hora_fin\').val();\n    if(!horaInicio || horaFin) {\n        return;\n    }\n    const hiMom = moment(horaInicio, \"hh:mm:ss\");\n    const hfMom = moment(horaFin, \"hh:mm:ss\");\n    var diff = hfMom.diff(hiMom);\n    console.log(\"diff\", diff);\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_hora_inicio\').hide();\n        $(\'#PCOContenedor_hora_fin\').hide();\n        $(\'#PCOContenedor_guaje\').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    }\n\n function onchangeCliente(){\n    $(\'#PCOContenedor_placa\').show();\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 mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\nfunction editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,cant,prec] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#modalMensaje\').modal(\'hide\');\n	$(\'#modalMensaje\').hide();\n    consultarTotalVenta();\n    actualizarInforme();\n}\n\nfunction actualizarProducto2()\n    {\n        if(!$(\'#id2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Venta\", \"No estas trabajando sobre una venta\");\n            return;\n        }\n        if(!$(\'#cantidad2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Cantidad\", \"La cantidad es obligatoria\");\n            return;\n        }\n        if(!$(\'#precio2\').val()) {\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\').val() + \n                \'&id_producto=\' + $(\'#id_producto2\').val()  +\n                \'&cantidad=\' + $(\'#cantidad2\').val() +\n                \'&precio=\' + $(\'#precio2\').val()\n            )\n        );\n        finalizarEdicionProducto();\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 eliminar_producto() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent] = product.split(\'|\');\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=\' + idVent\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        //Mostar hora inicio\n    $(\'#PCOContenedor_hora_inicio\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_hora_inicio\').show();\n        \n        //Mostrar Hora Fin\n    $(\'#PCOContenedor_hora_fin\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_hora_fin\').show();\n        \n        //Mostrar Guaje\n        $(\'#PCOContenedor_guaje\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_guaje\').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'),(695,'core_formulario[8].javascript','2024-11-21 09:45:00','rafael',367,13088,'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 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 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 calcularTiempo() {\n    const horaInicio = $(\'hora_inicio\').val();\n    const horaFin = $(\'hora_fin\').val();\n    if(!horaInicio || horaFin) {\n        return;\n    }\n    const hiMom = moment(horaInicio, \"hh:mm:ss\");\n    const hfMom = moment(horaFin, \"hh:mm:ss\");\n    var diff = hfMom.diff(hiMom);\n    console.log(\"diff\", diff);\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_hora_inicio\').hide();\n        $(\'#PCOContenedor_hora_fin\').hide();\n        $(\'#PCOContenedor_guaje\').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    }\n\n function onchangeCliente(){\n    $(\'#PCOContenedor_placa\').show();\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 mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\nfunction editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,cant,prec] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#modalMensaje\').modal(\'hide\');\n	$(\'#modalMensaje\').hide();\n    consultarTotalVenta();\n    actualizarInforme();\n}\n\nfunction actualizarProducto2()\n    {\n        if(!$(\'#id2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Venta\", \"No estas trabajando sobre una venta\");\n            return;\n        }\n        if(!$(\'#cantidad2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Cantidad\", \"La cantidad es obligatoria\");\n            return;\n        }\n        if(!$(\'#precio2\').val()) {\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\').val() + \n                \'&id_producto=\' + $(\'#id_producto2\').val()  +\n                \'&cantidad=\' + $(\'#cantidad2\').val() +\n                \'&precio=\' + $(\'#precio2\').val()\n            )\n        );\n        finalizarEdicionProducto();\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 eliminar_producto() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent] = product.split(\'|\');\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=\' + idVent\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        //Mostar hora inicio\n    $(\'#PCOContenedor_hora_inicio\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_hora_inicio\').show();\n        \n        //Mostrar Hora Fin\n    $(\'#PCOContenedor_hora_fin\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_hora_fin\').show();\n        \n        //Mostrar Guaje\n        $(\'#PCOContenedor_guaje\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_guaje\').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'),(696,'core_formulario[8].javascript','2024-11-21 09:45:00','rafael',367,13089,'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 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 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 calcularTiempo() {\n    const horaInicio = $(\'hora_inicio\').val();\n    const horaFin = $(\'hora_fin\').val();\n    if(!horaInicio || !horaFin) {\n        return;\n    }\n    const hiMom = moment(horaInicio, \"hh:mm:ss\");\n    const hfMom = moment(horaFin, \"hh:mm:ss\");\n    var diff = hfMom.diff(hiMom);\n    console.log(\"diff\", diff);\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_hora_inicio\').hide();\n        $(\'#PCOContenedor_hora_fin\').hide();\n        $(\'#PCOContenedor_guaje\').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    }\n\n function onchangeCliente(){\n    $(\'#PCOContenedor_placa\').show();\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 mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\nfunction editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,cant,prec] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#modalMensaje\').modal(\'hide\');\n	$(\'#modalMensaje\').hide();\n    consultarTotalVenta();\n    actualizarInforme();\n}\n\nfunction actualizarProducto2()\n    {\n        if(!$(\'#id2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Venta\", \"No estas trabajando sobre una venta\");\n            return;\n        }\n        if(!$(\'#cantidad2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Cantidad\", \"La cantidad es obligatoria\");\n            return;\n        }\n        if(!$(\'#precio2\').val()) {\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\').val() + \n                \'&id_producto=\' + $(\'#id_producto2\').val()  +\n                \'&cantidad=\' + $(\'#cantidad2\').val() +\n                \'&precio=\' + $(\'#precio2\').val()\n            )\n        );\n        finalizarEdicionProducto();\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 eliminar_producto() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent] = product.split(\'|\');\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=\' + idVent\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        //Mostar hora inicio\n    $(\'#PCOContenedor_hora_inicio\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_hora_inicio\').show();\n        \n        //Mostrar Hora Fin\n    $(\'#PCOContenedor_hora_fin\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_hora_fin\').show();\n        \n        //Mostrar Guaje\n        $(\'#PCOContenedor_guaje\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_guaje\').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'),(697,'core_evento_objeto[195].javascript','2024-11-21 09:45:00','rafael',1,17,'calcularTiempo();','B'),(698,'core_evento_objeto[196].javascript','2024-11-21 09:45:00','rafael',1,17,'calcularTiempo();','B'),(699,'core_formulario[8].javascript','2024-11-21 09:46:00','rafael',367,13089,'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 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 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 calcularTiempo() {\n    const horaInicio = $(\'hora_inicio\').val();\n    const horaFin = $(\'hora_fin\').val();\n    if(!horaInicio || !horaFin) {\n        return;\n    }\n    const hiMom = moment(horaInicio, \"hh:mm:ss\");\n    const hfMom = moment(horaFin, \"hh:mm:ss\");\n    var diff = hfMom.diff(hiMom);\n    console.log(\"diff\", diff);\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_hora_inicio\').hide();\n        $(\'#PCOContenedor_hora_fin\').hide();\n        $(\'#PCOContenedor_guaje\').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    }\n\n function onchangeCliente(){\n    $(\'#PCOContenedor_placa\').show();\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 mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\nfunction editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,cant,prec] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#modalMensaje\').modal(\'hide\');\n	$(\'#modalMensaje\').hide();\n    consultarTotalVenta();\n    actualizarInforme();\n}\n\nfunction actualizarProducto2()\n    {\n        if(!$(\'#id2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Venta\", \"No estas trabajando sobre una venta\");\n            return;\n        }\n        if(!$(\'#cantidad2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Cantidad\", \"La cantidad es obligatoria\");\n            return;\n        }\n        if(!$(\'#precio2\').val()) {\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\').val() + \n                \'&id_producto=\' + $(\'#id_producto2\').val()  +\n                \'&cantidad=\' + $(\'#cantidad2\').val() +\n                \'&precio=\' + $(\'#precio2\').val()\n            )\n        );\n        finalizarEdicionProducto();\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 eliminar_producto() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent] = product.split(\'|\');\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=\' + idVent\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        //Mostar hora inicio\n    $(\'#PCOContenedor_hora_inicio\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_hora_inicio\').show();\n        \n        //Mostrar Hora Fin\n    $(\'#PCOContenedor_hora_fin\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_hora_fin\').show();\n        \n        //Mostrar Guaje\n        $(\'#PCOContenedor_guaje\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_guaje\').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'),(700,'core_formulario[8].javascript','2024-11-21 09:46:00','rafael',367,13091,'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 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 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 calcularTiempo() {\n    const horaInicio = $(\'#hora_inicio\').val();\n    const horaFin = $(\'#hora_fin\').val();\n    if(!horaInicio || !horaFin) {\n        return;\n    }\n    const hiMom = moment(horaInicio, \"hh:mm:ss\");\n    const hfMom = moment(horaFin, \"hh:mm:ss\");\n    var diff = hfMom.diff(hiMom);\n    console.log(\"diff\", diff);\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_hora_inicio\').hide();\n        $(\'#PCOContenedor_hora_fin\').hide();\n        $(\'#PCOContenedor_guaje\').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    }\n\n function onchangeCliente(){\n    $(\'#PCOContenedor_placa\').show();\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 mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\nfunction editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,cant,prec] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#modalMensaje\').modal(\'hide\');\n	$(\'#modalMensaje\').hide();\n    consultarTotalVenta();\n    actualizarInforme();\n}\n\nfunction actualizarProducto2()\n    {\n        if(!$(\'#id2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Venta\", \"No estas trabajando sobre una venta\");\n            return;\n        }\n        if(!$(\'#cantidad2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Cantidad\", \"La cantidad es obligatoria\");\n            return;\n        }\n        if(!$(\'#precio2\').val()) {\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\').val() + \n                \'&id_producto=\' + $(\'#id_producto2\').val()  +\n                \'&cantidad=\' + $(\'#cantidad2\').val() +\n                \'&precio=\' + $(\'#precio2\').val()\n            )\n        );\n        finalizarEdicionProducto();\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 eliminar_producto() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent] = product.split(\'|\');\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=\' + idVent\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        //Mostar hora inicio\n    $(\'#PCOContenedor_hora_inicio\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_hora_inicio\').show();\n        \n        //Mostrar Hora Fin\n    $(\'#PCOContenedor_hora_fin\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_hora_fin\').show();\n        \n        //Mostrar Guaje\n        $(\'#PCOContenedor_guaje\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_guaje\').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'),(701,'core_formulario[8].javascript','2024-11-21 09:47:00','rafael',368,13114,'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 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 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 calcularTiempo() {\n    console.log(\"hola\")\n    const horaInicio = $(\'#hora_inicio\').val();\n    const horaFin = $(\'#hora_fin\').val();\n    if(!horaInicio || !horaFin) {\n        return;\n    }\n    const hiMom = moment(horaInicio, \"hh:mm:ss\");\n    const hfMom = moment(horaFin, \"hh:mm:ss\");\n    var diff = hfMom.diff(hiMom);\n    console.log(\"diff\", diff);\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_hora_inicio\').hide();\n        $(\'#PCOContenedor_hora_fin\').hide();\n        $(\'#PCOContenedor_guaje\').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    }\n\n function onchangeCliente(){\n    $(\'#PCOContenedor_placa\').show();\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 mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\nfunction editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,cant,prec] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#modalMensaje\').modal(\'hide\');\n	$(\'#modalMensaje\').hide();\n    consultarTotalVenta();\n    actualizarInforme();\n}\n\nfunction actualizarProducto2()\n    {\n        if(!$(\'#id2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Venta\", \"No estas trabajando sobre una venta\");\n            return;\n        }\n        if(!$(\'#cantidad2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Cantidad\", \"La cantidad es obligatoria\");\n            return;\n        }\n        if(!$(\'#precio2\').val()) {\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\').val() + \n                \'&id_producto=\' + $(\'#id_producto2\').val()  +\n                \'&cantidad=\' + $(\'#cantidad2\').val() +\n                \'&precio=\' + $(\'#precio2\').val()\n            )\n        );\n        finalizarEdicionProducto();\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 eliminar_producto() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent] = product.split(\'|\');\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=\' + idVent\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        //Mostar hora inicio\n    $(\'#PCOContenedor_hora_inicio\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_hora_inicio\').show();\n        \n        //Mostrar Hora Fin\n    $(\'#PCOContenedor_hora_fin\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_hora_fin\').show();\n        \n        //Mostrar Guaje\n        $(\'#PCOContenedor_guaje\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_guaje\').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'),(702,'core_formulario[8].javascript','2024-11-21 09:47:00','rafael',368,13116,'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 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 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 calcularTiempo() {\n    console.log(\"hola\");\n    const horaInicio = $(\'#hora_inicio\').val();\n    const horaFin = $(\'#hora_fin\').val();\n    if(!horaInicio || !horaFin) {\n        return;\n    }\n    const hiMom = moment(horaInicio, \"hh:mm:ss\");\n    const hfMom = moment(horaFin, \"hh:mm:ss\");\n    var diff = hfMom.diff(hiMom);\n    console.log(\"diff\", diff);\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_hora_inicio\').hide();\n        $(\'#PCOContenedor_hora_fin\').hide();\n        $(\'#PCOContenedor_guaje\').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    }\n\n function onchangeCliente(){\n    $(\'#PCOContenedor_placa\').show();\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 mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\nfunction editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,cant,prec] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#modalMensaje\').modal(\'hide\');\n	$(\'#modalMensaje\').hide();\n    consultarTotalVenta();\n    actualizarInforme();\n}\n\nfunction actualizarProducto2()\n    {\n        if(!$(\'#id2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Venta\", \"No estas trabajando sobre una venta\");\n            return;\n        }\n        if(!$(\'#cantidad2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Cantidad\", \"La cantidad es obligatoria\");\n            return;\n        }\n        if(!$(\'#precio2\').val()) {\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\').val() + \n                \'&id_producto=\' + $(\'#id_producto2\').val()  +\n                \'&cantidad=\' + $(\'#cantidad2\').val() +\n                \'&precio=\' + $(\'#precio2\').val()\n            )\n        );\n        finalizarEdicionProducto();\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 eliminar_producto() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent] = product.split(\'|\');\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=\' + idVent\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        //Mostar hora inicio\n    $(\'#PCOContenedor_hora_inicio\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_hora_inicio\').show();\n        \n        //Mostrar Hora Fin\n    $(\'#PCOContenedor_hora_fin\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_hora_fin\').show();\n        \n        //Mostrar Guaje\n        $(\'#PCOContenedor_guaje\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_guaje\').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'),(703,'core_formulario[8].javascript','2024-11-21 09:51:00','rafael',370,13188,'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 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 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 calcularTiempo() {\n    console.log(\"hola\");\n    const horaInicio = $(\'#hora_inicio\').val();\n    const horaFin = $(\'#hora_fin\').val();\n    if(!horaInicio || !horaFin) {\n        return;\n    }\n    const hiMom = moment(horaInicio, \"hh:mm:ss\");\n    const hfMom = moment(horaFin, \"hh:mm:ss\");\n    var diff = hfMom.diff(hiMom);\n    console.log(\"diff\", diff);\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_hora_inicio\').hide();\n        $(\'#PCOContenedor_hora_fin\').hide();\n        $(\'#PCOContenedor_guaje\').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    }\n\n function onchangeCliente(){\n    $(\'#PCOContenedor_placa\').show();\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 mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\nfunction editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,cant,prec] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#modalMensaje\').modal(\'hide\');\n	$(\'#modalMensaje\').hide();\n    consultarTotalVenta();\n    actualizarInforme();\n}\n\nfunction actualizarProducto2()\n    {\n        if(!$(\'#id2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Venta\", \"No estas trabajando sobre una venta\");\n            return;\n        }\n        if(!$(\'#cantidad2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Cantidad\", \"La cantidad es obligatoria\");\n            return;\n        }\n        if(!$(\'#precio2\').val()) {\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\').val() + \n                \'&id_producto=\' + $(\'#id_producto2\').val()  +\n                \'&cantidad=\' + $(\'#cantidad2\').val() +\n                \'&precio=\' + $(\'#precio2\').val()\n            )\n        );\n        finalizarEdicionProducto();\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 eliminar_producto() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent] = product.split(\'|\');\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=\' + idVent\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        //Mostar hora inicio\n    $(\'#PCOContenedor_hora_inicio\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_hora_inicio\').show();\n        \n        //Mostrar Hora Fin\n    $(\'#PCOContenedor_hora_fin\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_hora_fin\').show();\n        \n        //Mostrar Guaje\n        $(\'#PCOContenedor_guaje\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_guaje\').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$(\'#hora_inicio\').on(\'dp.change\', function(e){ console.log(e.date); })\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'),(704,'core_formulario[8].javascript','2024-11-21 09:52:00','rafael',370,13194,'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 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 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 calcularTiempo() {\n    console.log(\"hola\");\n    const horaInicio = $(\'#hora_inicio\').val();\n    const horaFin = $(\'#hora_fin\').val();\n    if(!horaInicio || !horaFin) {\n        return;\n    }\n    const hiMom = moment(horaInicio, \"hh:mm:ss\");\n    const hfMom = moment(horaFin, \"hh:mm:ss\");\n    var diff = hfMom.diff(hiMom);\n    console.log(\"diff\", diff);\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_hora_inicio\').hide();\n        $(\'#PCOContenedor_hora_fin\').hide();\n        $(\'#PCOContenedor_guaje\').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    }\n\n function onchangeCliente(){\n    $(\'#PCOContenedor_placa\').show();\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 mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\nfunction editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,cant,prec] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#modalMensaje\').modal(\'hide\');\n	$(\'#modalMensaje\').hide();\n    consultarTotalVenta();\n    actualizarInforme();\n}\n\nfunction actualizarProducto2()\n    {\n        if(!$(\'#id2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Venta\", \"No estas trabajando sobre una venta\");\n            return;\n        }\n        if(!$(\'#cantidad2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Cantidad\", \"La cantidad es obligatoria\");\n            return;\n        }\n        if(!$(\'#precio2\').val()) {\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\').val() + \n                \'&id_producto=\' + $(\'#id_producto2\').val()  +\n                \'&cantidad=\' + $(\'#cantidad2\').val() +\n                \'&precio=\' + $(\'#precio2\').val()\n            )\n        );\n        finalizarEdicionProducto();\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 eliminar_producto() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent] = product.split(\'|\');\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=\' + idVent\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        //Mostar hora inicio\n    $(\'#PCOContenedor_hora_inicio\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_hora_inicio\').show();\n        \n        //Mostrar Hora Fin\n    $(\'#PCOContenedor_hora_fin\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_hora_fin\').show();\n        \n        //Mostrar Guaje\n        $(\'#PCOContenedor_guaje\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_guaje\').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$(\'#hora_inicio\').on(\'dp.change\', function(e){ console.log(\"hola\", e.date); })\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'),(705,'core_formulario[8].javascript','2024-11-21 09:53:00','rafael',373,13273,'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 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 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 calcularTiempo() {\n    console.log(\"hola\");\n    const horaInicio = $(\'#hora_inicio\').val();\n    const horaFin = $(\'#hora_fin\').val();\n    if(!horaInicio || !horaFin) {\n        return;\n    }\n    const hiMom = moment(horaInicio, \"hh:mm:ss\");\n    const hfMom = moment(horaFin, \"hh:mm:ss\");\n    var diff = hfMom.diff(hiMom);\n    console.log(\"diff\", diff);\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_hora_inicio\').hide();\n        $(\'#PCOContenedor_hora_fin\').hide();\n        $(\'#PCOContenedor_guaje\').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    }\n\n function onchangeCliente(){\n    $(\'#PCOContenedor_placa\').show();\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 mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\nfunction editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,cant,prec] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#modalMensaje\').modal(\'hide\');\n	$(\'#modalMensaje\').hide();\n    consultarTotalVenta();\n    actualizarInforme();\n}\n\nfunction actualizarProducto2()\n    {\n        if(!$(\'#id2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Venta\", \"No estas trabajando sobre una venta\");\n            return;\n        }\n        if(!$(\'#cantidad2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Cantidad\", \"La cantidad es obligatoria\");\n            return;\n        }\n        if(!$(\'#precio2\').val()) {\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\').val() + \n                \'&id_producto=\' + $(\'#id_producto2\').val()  +\n                \'&cantidad=\' + $(\'#cantidad2\').val() +\n                \'&precio=\' + $(\'#precio2\').val()\n            )\n        );\n        finalizarEdicionProducto();\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 eliminar_producto() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent] = product.split(\'|\');\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=\' + idVent\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        //Mostar hora inicio\n    $(\'#PCOContenedor_hora_inicio\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_hora_inicio\').show();\n        \n        //Mostrar Hora Fin\n    $(\'#PCOContenedor_hora_fin\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_hora_fin\').show();\n        \n        //Mostrar Guaje\n        $(\'#PCOContenedor_guaje\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_guaje\').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$(\'#hora_inicio\').on(\'dp.change\', function(e){ \n    console.log(\"jh\");\n    var formatedValue = e.date.format(e.date._f);\n    console.log(formatedValue);\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'),(706,'core_formulario[8].javascript','2024-11-21 09:56:00','rafael',373,13273,'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 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 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 calcularTiempo() {\n    console.log(\"hola\");\n    const horaInicio = $(\'#hora_inicio\').val();\n    const horaFin = $(\'#hora_fin\').val();\n    if(!horaInicio || !horaFin) {\n        return;\n    }\n    const hiMom = moment(horaInicio, \"hh:mm:ss\");\n    const hfMom = moment(horaFin, \"hh:mm:ss\");\n    var diff = hfMom.diff(hiMom);\n    console.log(\"diff\", diff);\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_hora_inicio\').hide();\n        $(\'#PCOContenedor_hora_fin\').hide();\n        $(\'#PCOContenedor_guaje\').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    }\n\n function onchangeCliente(){\n    $(\'#PCOContenedor_placa\').show();\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 mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\nfunction editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,cant,prec] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#modalMensaje\').modal(\'hide\');\n	$(\'#modalMensaje\').hide();\n    consultarTotalVenta();\n    actualizarInforme();\n}\n\nfunction actualizarProducto2()\n    {\n        if(!$(\'#id2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Venta\", \"No estas trabajando sobre una venta\");\n            return;\n        }\n        if(!$(\'#cantidad2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Cantidad\", \"La cantidad es obligatoria\");\n            return;\n        }\n        if(!$(\'#precio2\').val()) {\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\').val() + \n                \'&id_producto=\' + $(\'#id_producto2\').val()  +\n                \'&cantidad=\' + $(\'#cantidad2\').val() +\n                \'&precio=\' + $(\'#precio2\').val()\n            )\n        );\n        finalizarEdicionProducto();\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 eliminar_producto() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent] = product.split(\'|\');\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=\' + idVent\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        //Mostar hora inicio\n    $(\'#PCOContenedor_hora_inicio\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_hora_inicio\').show();\n        \n        //Mostrar Hora Fin\n    $(\'#PCOContenedor_hora_fin\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_hora_fin\').show();\n        \n        //Mostrar Guaje\n        $(\'#PCOContenedor_guaje\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_guaje\').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$(\'#hora_inicio\').on(\'dp.change\', function(e){ \n    console.log(\"jh\");\n    var formatedValue = e.date.format(e.date._f);\n    console.log(formatedValue);\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'),(707,'core_formulario[8].javascript','2024-11-21 09:58:00','rafael',382,13480,'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 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 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 calcularTiempo() {\n    console.log(\"hola\");\n    const horaInicio = $(\'#hora_inicio\').val();\n    const horaFin = $(\'#hora_fin\').val();\n    if(!horaInicio || !horaFin) {\n        return;\n    }\n    const hiMom = moment(horaInicio, \"hh:mm:ss\");\n    const hfMom = moment(horaFin, \"hh:mm:ss\");\n    var diff = hfMom.diff(hiMom);\n    console.log(\"diff\", diff);\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_hora_inicio\').hide();\n        $(\'#PCOContenedor_hora_fin\').hide();\n        $(\'#PCOContenedor_guaje\').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    }\n\n function onchangeCliente(){\n    $(\'#PCOContenedor_placa\').show();\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 mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\nfunction editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,cant,prec] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#modalMensaje\').modal(\'hide\');\n	$(\'#modalMensaje\').hide();\n    consultarTotalVenta();\n    actualizarInforme();\n}\n\nfunction actualizarProducto2()\n    {\n        if(!$(\'#id2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Venta\", \"No estas trabajando sobre una venta\");\n            return;\n        }\n        if(!$(\'#cantidad2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Cantidad\", \"La cantidad es obligatoria\");\n            return;\n        }\n        if(!$(\'#precio2\').val()) {\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\').val() + \n                \'&id_producto=\' + $(\'#id_producto2\').val()  +\n                \'&cantidad=\' + $(\'#cantidad2\').val() +\n                \'&precio=\' + $(\'#precio2\').val()\n            )\n        );\n        finalizarEdicionProducto();\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 eliminar_producto() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent] = product.split(\'|\');\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=\' + idVent\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        //Mostar hora inicio\n    $(\'#PCOContenedor_hora_inicio\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_hora_inicio\').show();\n        \n        //Mostrar Hora Fin\n    $(\'#PCOContenedor_hora_fin\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_hora_fin\').show();\n        \n        //Mostrar Guaje\n        $(\'#PCOContenedor_guaje\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_guaje\').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$(\'#hora_inicio\').on(\'dp.change\', function(e){ \n    console.log(\"jh\");\n    var formatedValue = e.date.format(e.date._f);\n    console.log(formatedValue);\n});\n\n$(\"#hora_inicio\").on(\"change.datetimepicker\", function (e) {\n    console.log(\"hola\");\n    if (e.oldDate !== e.date) {\n        alert(\'You picked: \' + new Date(e.date).toLocaleDateString(\'en-US\'))\n    }\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'),(708,'core_formulario[8].javascript','2024-11-21 10:00:00','rafael',382,13502,'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 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 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 calcularTiempo() {\n    console.log(\"hola\");\n    const horaInicio = $(\'#hora_inicio\').val();\n    const horaFin = $(\'#hora_fin\').val();\n    if(!horaInicio || !horaFin) {\n        return;\n    }\n    const hiMom = moment(horaInicio, \"hh:mm:ss\");\n    const hfMom = moment(horaFin, \"hh:mm:ss\");\n    var diff = hfMom.diff(hiMom);\n    console.log(\"diff\", diff);\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_hora_inicio\').hide();\n        $(\'#PCOContenedor_hora_fin\').hide();\n        $(\'#PCOContenedor_guaje\').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    }\n\n function onchangeCliente(){\n    $(\'#PCOContenedor_placa\').show();\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 mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\nfunction editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,cant,prec] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#modalMensaje\').modal(\'hide\');\n	$(\'#modalMensaje\').hide();\n    consultarTotalVenta();\n    actualizarInforme();\n}\n\nfunction actualizarProducto2()\n    {\n        if(!$(\'#id2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Venta\", \"No estas trabajando sobre una venta\");\n            return;\n        }\n        if(!$(\'#cantidad2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Cantidad\", \"La cantidad es obligatoria\");\n            return;\n        }\n        if(!$(\'#precio2\').val()) {\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\').val() + \n                \'&id_producto=\' + $(\'#id_producto2\').val()  +\n                \'&cantidad=\' + $(\'#cantidad2\').val() +\n                \'&precio=\' + $(\'#precio2\').val()\n            )\n        );\n        finalizarEdicionProducto();\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 eliminar_producto() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent] = product.split(\'|\');\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=\' + idVent\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        //Mostar hora inicio\n    $(\'#PCOContenedor_hora_inicio\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_hora_inicio\').show();\n        \n        //Mostrar Hora Fin\n    $(\'#PCOContenedor_hora_fin\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_hora_fin\').show();\n        \n        //Mostrar Guaje\n        $(\'#PCOContenedor_guaje\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_guaje\').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$(\'#DatePicker_hora_inicio\').on(\'dp.change\', function(e){ \n    console.log(\"jh\");\n    var formatedValue = e.date.format(e.date._f);\n    console.log(formatedValue);\n});\n\n$(\"#DatePicker_hora_inicio\").on(\"change.datetimepicker\", function (e) {\n    console.log(\"hola\");\n    if (e.oldDate !== e.date) {\n        alert(\'You picked: \' + new Date(e.date).toLocaleDateString(\'en-US\'))\n    }\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'),(709,'core_formulario[8].javascript','2024-11-21 10:01:00','rafael',383,13548,'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 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 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 calcularTiempo() {\n    console.log(\"hola\");\n    const horaInicio = $(\'#hora_inicio\').val();\n    const horaFin = $(\'#hora_fin\').val();\n    if(!horaInicio || !horaFin) {\n        return;\n    }\n    const hiMom = moment(horaInicio, \"hh:mm:ss\");\n    const hfMom = moment(horaFin, \"hh:mm:ss\");\n    var diff = hfMom.diff(hiMom);\n    console.log(\"diff\", diff);\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_hora_inicio\').hide();\n        $(\'#PCOContenedor_hora_fin\').hide();\n        $(\'#PCOContenedor_guaje\').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    }\n\n function onchangeCliente(){\n    $(\'#PCOContenedor_placa\').show();\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 mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\nfunction editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,cant,prec] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#modalMensaje\').modal(\'hide\');\n	$(\'#modalMensaje\').hide();\n    consultarTotalVenta();\n    actualizarInforme();\n}\n\nfunction actualizarProducto2()\n    {\n        if(!$(\'#id2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Venta\", \"No estas trabajando sobre una venta\");\n            return;\n        }\n        if(!$(\'#cantidad2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Cantidad\", \"La cantidad es obligatoria\");\n            return;\n        }\n        if(!$(\'#precio2\').val()) {\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\').val() + \n                \'&id_producto=\' + $(\'#id_producto2\').val()  +\n                \'&cantidad=\' + $(\'#cantidad2\').val() +\n                \'&precio=\' + $(\'#precio2\').val()\n            )\n        );\n        finalizarEdicionProducto();\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 eliminar_producto() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent] = product.split(\'|\');\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=\' + idVent\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        //Mostar hora inicio\n    $(\'#PCOContenedor_hora_inicio\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_hora_inicio\').show();\n        \n        //Mostrar Hora Fin\n    $(\'#PCOContenedor_hora_fin\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_hora_fin\').show();\n        \n        //Mostrar Guaje\n        $(\'#PCOContenedor_guaje\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_guaje\').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$(\'#DatePicker_hora_inicio\').on(\'dp.change\', function(e){ \n    console.log(\"hola\", $(\'#hora_inicio\').val());\n    var formatedValue = e.date.format(e.date._f);\n    console.log(formatedValue);\n    calcularTiempo();\n});\n\n$(\'#DatePicker_hora_fin\').on(\'dp.change\', function(e){ \n    console.log(\"hola\", $(\'#hora_inicio\').val());\n    var formatedValue = e.date.format(e.date._f);\n    console.log(formatedValue);\n    calcularTiempo();\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'),(710,'core_formulario[8].javascript','2024-11-21 10:01:00','rafael',383,13564,'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 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 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 calcularTiempo() {\n    console.log(\"hola\");\n    const horaInicio = $(\'#hora_inicio\').val();\n    const horaFin = $(\'#hora_fin\').val();\n    if(!horaInicio || !horaFin) {\n        return;\n    }\n    const hiMom = moment(horaInicio, \"hh:mm:ss\");\n    const hfMom = moment(horaFin, \"hh:mm:ss\");\n    var diff = hfMom.diff(hiMom);\n    console.log(\"diff\", diff);\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_hora_inicio\').hide();\n        $(\'#PCOContenedor_hora_fin\').hide();\n        $(\'#PCOContenedor_guaje\').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    }\n\n function onchangeCliente(){\n    $(\'#PCOContenedor_placa\').show();\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 mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\nfunction editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,cant,prec] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#modalMensaje\').modal(\'hide\');\n	$(\'#modalMensaje\').hide();\n    consultarTotalVenta();\n    actualizarInforme();\n}\n\nfunction actualizarProducto2()\n    {\n        if(!$(\'#id2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Venta\", \"No estas trabajando sobre una venta\");\n            return;\n        }\n        if(!$(\'#cantidad2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Cantidad\", \"La cantidad es obligatoria\");\n            return;\n        }\n        if(!$(\'#precio2\').val()) {\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\').val() + \n                \'&id_producto=\' + $(\'#id_producto2\').val()  +\n                \'&cantidad=\' + $(\'#cantidad2\').val() +\n                \'&precio=\' + $(\'#precio2\').val()\n            )\n        );\n        finalizarEdicionProducto();\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 eliminar_producto() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent] = product.split(\'|\');\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=\' + idVent\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        //Mostar hora inicio\n    $(\'#PCOContenedor_hora_inicio\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_hora_inicio\').show();\n        \n        //Mostrar Hora Fin\n    $(\'#PCOContenedor_hora_fin\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_hora_fin\').show();\n        \n        //Mostrar Guaje\n        $(\'#PCOContenedor_guaje\').hide();\n    if(tipo_venta.value == lavado)\n        $(\'#PCOContenedor_guaje\').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$(\'#DatePicker_hora_inicio\').on(\'dp.change\', function(e){ \n    console.log(\"hola\", $(\'#hora_inicio\').val());\n    var formatedValue = e.date.format(e.date._f);\n    console.log(formatedValue);\n    calcularTiempo();\n});\n\n$(\'#DatePicker_hora_fin\').on(\'dp.change\', function(e){ \n    console.log(\"hola\", $(\'#hora_fin\').val());\n    var formatedValue = e.date.format(e.date._f);\n    console.log(\"formatedValue\", formatedValue);\n    calcularTiempo();\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'),