").addClass("input-group-text btn modificarRUT").attr("idCliente", idCliente)
.html(
$("").addClass("bi bi-floppy")
)
)
)
)
$("#nuevoRUT"+idCliente).inputmask({
mask: '9{1,2}.9{3}.9{3}-9|k|K',
clearIncomplete: true,
numericInput: true
});
$("#nuevoRUT"+idCliente).focus()
});
$(document).delegate(".inputRUT", "blur", function(){
validaRUT($(this))
})
$(document).delegate(".modificarRUT", "click", function(){
validaRUT($(this))
})
});
function validaRUT(el){
const idCliente = $(el).attr("idCliente")
const rutOriginal = $(el).attr("rutOriginal")
const idDireccion = $(el).attr("idDireccion")
const nuevoRUT = $(el).val()
SpinLoadingButton("editarRUT"+idCliente)
if(validarRUT(nuevoRUT)){
$.ajax({
url:'stx.clientes.controller.php',
type: 'GET',
data: 'opt=updateRUTDIreccion&idCliente='+idCliente+'&idDireccion='+idDireccion+'&nuevoRUT='+nuevoRUT,
success: function(data){
$("#editarRUT"+idCliente).html(nuevoRUT)
}
})
} else {
if(nuevoRUT == "" || nuevoRUT == " "){
rutHTML = rutOriginal
tooltipText = "RUT mal ingresado. Ingrese nuevamente el RUT"
} else {
rutHTML = nuevoRUT
tooltipText = "Hay un problema con el RUT. Favor corregir el RUT del cliente"
}
$("#editarRUT"+idCliente).html(
$(" ").html(
rutHTML
).append(
$("").addClass("bi bi-exclamation-triangle-fill mx-2 text-danger verificarRUT").attr("data-idcliente", idCliente).attr("data-rutOriginal", rutOriginal).attr("title", tooltipText)
)
)
$(".verificarRUT").tooltip()
}
}
function seleccionaComunaPorRegion(domSelector,zoneId)
{
$.ajax({
url:'stx.clientes.controller.php',
data:'opt=helper_Comunas&zone_id='+zoneId,
type: "GET",
dataType:'JSON',
success: function(comunas) {
$('#'+domSelector).html('');
$('#'+domSelector).append($('').html('Seleccione comuna'));
$.each(comunas,function(i,comuna){
$('#'+domSelector).append($(" ").html(comuna['nombre_ciudad']).val(comuna['idCiudad']));
});
}
});
}
function SpinLoadingButton(element)
{
deactivarBotones();
$("#"+element).show();
$("#"+element).prop("disabled",true);
$("#"+element).prepend($("").addClass('removableSpin').addClass("fa").addClass("fa-spinner").addClass("fa-spin"));
}
function unSpinLoadingButton(element)
{
$(".removableSpin").remove();
$("#"+element).prop("disabled",false);
}
function reactivarBotones()
{
$(".onclickDisablethis").show();
}
function deactivarBotones()
{
$(".onclickDisablethis").hide();
}
function IsEmail(email) {
var regex = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
if(!regex.test(email)) {
return false;
}else{
return true;
}
}
function validarCamposFormulario() {
vacios = []
fields = [
{
nombre: 'nuevoCliente',
tipo: 'textFields',
data: ['nuevoClienteEmail', 'nuevoClienteNombres', 'nuevoClienteApellidos']
},
{
nombre: 'nuevoCliente',
tipo: 'selectFields',
data: []
},
{
nombre: 'editCliente',
tipo: 'textFields',
data: ['nuevoClienteNombresE', 'nuevoClienteApellidosE']
},
{
nombre: 'editCliente',
tipo: 'selectFields',
data: []
},
{
nombre: 'nuevaDireccion',
tipo: 'textFields',
data: ['nuevoClienteEmail', 'nuevoClienteAlias', 'nuevoClienteDireccion', 'nuevoClienteRUT',
'nuevoClienteRazonSocial', 'nuevoClienteGiroComercial', 'nuevoClienteTelefono']
},
{
nombre: 'nuevaDireccion',
tipo: 'selectFields',
data: ['nuevoClienteRegion', 'nuevoClienteComuna', 'nuevoClienteTipoDocumento']
},
{
nombre: 'editarDireccion',
tipo: 'textFields',
data: ['nuevoClienteAliasE', 'nuevoClienteDireccionE', 'nuevoClienteRUTE',
'nuevoClienteRazonSocialE', 'nuevoClienteGiroComercialE', 'nuevoClienteTelefonoE']
},
{
nombre: 'editarDireccion',
tipo: 'selectFields',
data: ['nuevoClienteRegionE', 'nuevoClienteComunaE', 'nuevoClienteTipoDocumentoE']
},
]
fields.forEach(x=> {
switch(x['tipo']){
case 'textFields':
x['data'].forEach(campo => {
$("#"+campo).removeClass('inputVacio')
$("#"+campo+"Error").addClass('off')
if (($("#"+campo).length) && ($("#"+campo).val() == '')){
vacios.push(campo)
}
})
break;
case 'selectFields':
x['data'].forEach(campo => {
$("#"+campo).removeClass('inputVacio')
$("#"+campo+"Error").addClass('off')
if ((($("#"+campo).length)) && ($("#"+campo).val() == 0 || $("#"+campo).val() == null)){
vacios.push(campo)
}
})
break;
}
})
vacios.forEach(x => {
$("#"+x).addClass('inputVacio')
$("#"+x+"Error").removeClass('off')
})
return vacios.length == 0
}
function verifyAllChecked(idOrder){
var allChecked = true;
const cboxes = $('.cbox').filter(`[data-idorder=${idOrder}]`)
cboxes.each(function(){
if(!$(this).is(':checked')){
allChecked = false
}
})
return allChecked
}
function colorearOrden(idEstado = null, idOrder, recurso, allChecked){
const colores = {
"bodega" : "#04ff00",
"tesoreria" : "#ea9d02",
"blanco" : "#ffffff"
}
if(allChecked && idEstado == 24){
$("#trOrden"+idOrder).css("background-color", colores[recurso])
} else {
$("#trOrden"+idOrder).css("background-color", colores.blanco)
}
}
function updateButtons(idOrder, disabled){
$('button').filter(`[idorder=${idOrder}]`).attr("disabled", disabled)
}
function getBotonesEstados(idOrder, orderStatusId, disabled=false, precioFinal=null, idCotizacion=null){
console.log('idOrder '+idOrder);
console.log('disabled '+disabled);
console.log('precioFinal '+precioFinal);
console.log('idCotizacion '+idCotizacion);
/*
1 En espera de pago por cheque cheque
2 Pago aceptado payment
3 Preparación en curso preparation
4 Enviado shipped
5 Entregado
6 Cancelado order_canceled
7 Reembolsado refund
8 Error en pago payment_error
9 Pedido pendiente por falta de stock (pagado) outofstock
10 En espera de pago por transferencia bancaria bankwire
11 Pago remoto aceptado payment
12 Pedido pendiente por falta de stock (no pagado) outofstock
13 En espera de validación por contra reembolso. cashondelivery
24 Autorizado Preparacion Entrega Pendiente de Pago
25 Autorizado Preparacion Despacho Pendiente de Pago
26 Preparado Entrega Pendiente de Pago
27 Preparado Despacho Pendiente de Pago
28 Listo Para Entregar
29 Listo Para Despachar
30 Entregado Pendiente de Pago
31 Preparado para Entrega
32 Preparado para Despacho
33 Despachado
34 Despachado Pendiente de Pago
-------- LOS SIGUIENTES NO PUES ON PARTE DE UN MODULO EN PS ------
14 Transacción en Proceso in_process
15 Transacción Terminada payment
16 Transacción Cancelada order_canceled
17 Transacción Rechazada payment_error
18 Transacción Reembolsada refund
19 Transacción Chargedback charged_back
20 Transacción en la Mediación in_mediation
21 Transacción Pendiente pending
22 Transacción Autorizada authorized
23 Transacción en Posible Fraude payment_error
*/
return [
{
'nombre' : 'btn_Imprimir',
'posicion' : 'header',
'perteneceAEstado' : [1,2,3,4,5,6,7,8,9,10,13,24,25,26,27,28,29,30],
'htmlBtn' : $('').html('Imprimir').addClass('botonesModal').
addClass('btn').addClass('btn-sm').addClass('btn-light').
attr('id','ImprimirModal').attr('elementoImprimir','detailedOrder'+idOrder)
},
{
'nombre' : 'btn_Bitacora',
'posicion' : 'header',
'perteneceAEstado' : [1,2,3,4,5,6,7,8,9,10,13,24,25,26,27,28,29,30],
'htmlBtn' : $('').html('Bitácora').addClass('botonesModal').
addClass('btn').addClass('btn-sm').addClass('btn-info').addClass('VerBitacora').
attr('id','VerBitacoraModal').attr('data-idOrder',idOrder).attr('orderStatusId',orderStatusId)
},
{
'nombre' : 'pedidos_Preparar',
'posicion' : 'footer',
'perteneceAEstado' : [],
'htmlBtn' : $('').html('Autoriza Preparar').addClass('onclickDisablethis')
.addClass('btn').addClass('btn-sm').addClass('btn-warning').addClass('mx-3').addClass('my-2')
.attr('id','MarcarAutorizaDespacho').attr('idOrder',idOrder).attr('orderStatusId',orderStatusId)
},
// {
// 'nombre' : 'pedidos_Despachar',
// 'posicion' : 'footer',
// 'perteneceAEstado' : [29],
// 'htmlBtn' : $('').html('Despachar').addClass('onclickDisablethis')
// .addClass('btn').addClass('btn-sm').addClass('btn-success').addClass('mx-3').addClass('my-2')
// .attr('id','MarcarDespacho').attr('idOrder',idOrder).attr('orderStatusId',orderStatusId).attr("disabled", disabled)
// },
{
'nombre' : 'pedidos_marcarListoParaEntrega',
'posicion' : 'footer',
'perteneceAEstado' : [3],
'htmlBtn' : $('').html('Listo para Entrega').addClass('onclickDisablethis')
.addClass('btn').addClass('btn-sm').addClass('btn-warning').addClass('mx-3').addClass('my-2')
.attr('id','MarcarPreparado').attr('idOrder',idOrder).attr('orderStatusId',orderStatusId).attr("disabled", disabled)
},
{
'nombre' : 'pedidos_marcarListoParaDespacho',
'posicion' : 'footer',
'perteneceAEstado' : [3],
'htmlBtn' : $('').html('Listo para Despacho').addClass('onclickDisablethis')
.addClass('btn').addClass('btn-sm').addClass('btn-success').addClass('mx-3').addClass('my-2')
.attr('id','MarcarDespacho').attr('idOrder',idOrder).attr('orderStatusId',orderStatusId).attr("disabled", disabled)
},
{
'nombre' : 'pedidos_marcarPrepararPendientePago',
'posicion' : 'footer',
'perteneceAEstado' : [1,10],
'htmlBtn' : $('').html('Autoriza Preparar Sin Pago').addClass('onclickDisablethis')
.addClass('btn').addClass('btn-sm').addClass('btn-success').addClass('mx-3').addClass('my-2')
.attr('id','PrepararSinPago').attr('idOrder',idOrder).attr('orderStatusId',orderStatusId).attr("disabled", disabled)
},
{
'nombre' : 'pedidos_marcarDespacharPendientePago',
'posicion' : 'footer',
'perteneceAEstado' : [1,10],
'htmlBtn' : $('').html('Autoriza Preparar y Despachar Sin Pago').addClass('onclickDisablethis')
.addClass('btn').addClass('btn-sm').addClass('btn-success').addClass('mx-3').addClass('my-2')
.attr('id','PrepararDespacharSinPago').attr('idOrder',idOrder).attr('orderStatusId',orderStatusId).attr("disabled", disabled)
},
{
'nombre' : 'pedidos_marcarPreparadoPendientePago',
'posicion' : 'footer',
'perteneceAEstado' : [],
'htmlBtn' : $('').html('Preparado Pend. Pago').addClass('onclickDisablethis')
.addClass('btn').addClass('btn-sm').addClass('btn-success').addClass('mx-3').addClass('my-2')
.attr('id','PreparadoSinPago').attr('idOrder',idOrder).attr('orderStatusId',orderStatusId).attr("disabled", disabled)
},
{
'nombre' : 'pedidos_marcarPreparadoDespachoPendientePago',
'posicion' : 'footer',
'perteneceAEstado' : [24, 25],
'htmlBtn' : $('').html('Preparado Despacho Pend. Pago').addClass('onclickDisablethis')
.addClass('btn').addClass('btn-sm').addClass('btn-success').addClass('mx-3').addClass('my-2')
.attr('id','PreparadoDespachoSinPago').attr('idOrder',idOrder).attr('orderStatusId',orderStatusId).attr("disabled", disabled)
},
{
'nombre' : 'pedidos_marcarEnviadoPendientePago',
'posicion' : 'footer',
'perteneceAEstado' : [27],
'htmlBtn' : $('').html('Despachar Pend. Pago').addClass('onclickDisablethis')
.addClass('btn').addClass('btn-sm').addClass('btn-success').addClass('mx-3').addClass('my-2')
.attr('id','EnviarPendientePago').attr('idOrder',idOrder).attr('orderStatusId',orderStatusId).attr("disabled", disabled)
},
{
'nombre' : 'pedidos_marcarRetirado',
'posicion' : 'footer',
'perteneceAEstado' : [28],
'htmlBtn' : $('').html('Retirado por el cliente').addClass('onclickDisablethis')
.addClass('btn').addClass('btn-sm').addClass('btn-primary').addClass('btn-block').addClass('mx-3').addClass('my-2')
.attr('id','MarcarRetirado').attr('idOrder',idOrder).attr('orderStatusId',orderStatusId).attr("disabled", disabled)
},
{
'nombre' : 'pedidos_marcarEnviado',
'posicion' : 'footer',
'perteneceAEstado' : [29],
'htmlBtn' : $('').html('Procesar Envio').addClass('onclickDisablethis')
.addClass('btn').addClass('btn-sm').addClass('btn-success').addClass('btn-block').addClass('mx-3').addClass('my-2')
.attr('id','MarcarEnviado').attr('idOrder',idOrder).attr('orderStatusId',orderStatusId).attr("disabled", disabled)
},
{
'nombre' : 'pedidos_marcarEntregado',
'posicion' : 'footer',
'perteneceAEstado' : [4],
'htmlBtn' : $('').html('Confirmar Entregado').addClass('onclickDisablethis')
.addClass('btn').addClass('btn-sm').addClass('btn-success').addClass('mx-3').addClass('my-2')
.attr('id','MarcarEntregado').attr('idOrder',idOrder).attr('orderStatusId',orderStatusId).attr("disabled", disabled)
},
{
'nombre' : 'pedidos_marcarEntregadoPendientePago',
'posicion' : 'footer',
'perteneceAEstado' : [34],
'htmlBtn' : $('').html('Confirmar Entregado Pendiente Pago').addClass('onclickDisablethis')
.addClass('btn').addClass('btn-sm').addClass('btn-success').addClass('mx-3').addClass('my-2')
.attr('id','EntregadoPendientePago').attr('idOrder',idOrder).attr('orderStatusId',orderStatusId).attr("disabled", disabled)
},
{
'nombre' : 'pedidos_marcarCancelado',
'posicion' : 'footer',
'perteneceAEstado' : [1,2,3,4,6,7,8,9,10,13,24,25,26,27,28,29],
'htmlBtn' : $('').html('Anular').addClass('onclickDisablethis')
.attr('id','AnularOrden').addClass('btn').addClass('btn-sm').addClass('btn-danger').addClass('mx-3').addClass('my-2')
.attr('idOrder',idOrder).attr('orderStatusId',orderStatusId).attr("disabled", disabled)
},
{
'nombre' : 'pedidos_marcarPagado',
'posicion' : 'footer',
'perteneceAEstado' : [1,10, 24, 25],
'htmlBtn' : $('').html('Reg. Pago').addClass('onclickDisablethis')
.addClass('btn').addClass('btn-sm').addClass('btn-success').addClass('mx-3').addClass('my-2')
.attr('id','MarcarPagado').attr('idOrder',idOrder).attr('orderStatusId',orderStatusId).attr("disabled", disabled)
.attr("data-precioFinal", precioFinal).attr("data-idCotizacion", idCotizacion)
},
{
'nombre' : 'pedidos_marcarReincorporarPedido',
'posicion' : 'footer',
'perteneceAEstado' : [6],
'htmlBtn' : $('').html('Reincorporar Pedido').addClass('onclickDisablethis')
.attr('id','DesAnularOrden').addClass('btn').addClass('btn-sm').addClass('btn-warning').addClass('mx-3').addClass('my-2')
.attr('idOrder',idOrder).attr('orderStatusId',orderStatusId).attr("disabled", disabled)
}
]
}
function botonesPorEstado(btns, idEstado){
botonesHeader = [];
botonesEstados = [];
botonesHeader = btns.filter((boton) => boton.perteneceAEstado.includes(parseInt(idEstado)) && boton.posicion == 'header');
botonesEstados = btns.filter((boton) => boton.perteneceAEstado.includes(parseInt(idEstado)) && boton.posicion == 'footer');
botones = {
'header' : botonesHeader,
'footer' : botonesEstados
}
return botones
}
function generarBotones(botonesEstado, permisos, estado){
console.log(permisos)
botonesGenerados = [];
botones = [];
botonesGenerados.push(botonesEstado.filter((boton) => boton.nombre == 'btn_Imprimir' || boton.nombre == 'btn_Bitacora'))
// OBTIENE LOS BOTONES SEGUN LOS PERMISOS QUE TENGA EL USUARIO
for(var clave in permisos){
if(permisos[clave] == 1){
botonesGenerados.push(botonesEstado.filter((boton) => boton.nombre == clave))
}
}
botones = botonesGenerados.filter((el) => el.length > 0).flat()
return botonesPorEstado(botones, estado)
}
function cargando(){
const StxLogotipo=" ";
const LoadingImage=" ";
CrearModalOnline("cargando", "Cargando", 0.3, false, false, false)
$('#cargando').find('.modal-body').html($("").html(`
${StxLogotipo}
${LoadingImage}
Actualizando Informacion
`));
$("#cargando").modal({
backdrop: 'static',
keyboard: false
});
}
function validarRUT(rut) {
if(rut == ""){
return false;
} else {
console.log(rut)
var rutSinFormato = rut.replace(/[.-]/g, '');
var dv = rut.slice(-1);
var rutSinDV = rutSinFormato.slice(0, -1);
var rutInverso = rutSinDV.split('').reverse().join('');
var multiplicadores = [2, 3, 4, 5, 6, 7];
var contador = 0;
var suma = 0;
var final = 0;
for (var i = 0; i < rutInverso.length; i++) {
var char = rutInverso.charAt(i);
if (contador > 5) {
contador = 0;
}
var calculo = parseInt(char) * parseInt(multiplicadores[contador]);
suma += calculo;
contador++;
}
var resto = Math.floor(suma / 11);
var multiplicado = resto * 11;
var resta = suma - multiplicado;
var resultado = 11 - resta;
switch (resultado) {
case 11:
final = 0;
break;
case 10:
final = "K";
break;
default:
final = resultado;
}
return dv == final;
}
}
function enviarOrden(idEstado, idCarrier, idFormaPago, StxLogotipo, LoadingImage, dataForm = null){
alert("DESDE UTILS")
const totalPaid = parseFloat($("#ordenVenta_total").attr('data-preciototal'))
const totalTNeto = parseFloat($("#ordenVenta_subtotal").attr('data-totalneto'))
const totalIVA = parseFloat($("#ordenVenta_iva").attr('data-totaliva'))
const aux = new Array()
$(".precioRow").each(function(){
const id = $(this).attr("data-idproducto")
const idCarro = $(this).attr("data-idcarro")
// const precio = parseFloat(removeCommas($(this).text()))
const precio = parseFloat($(this).attr("data-preciocompleto"))
const descripcion = $("td").filter(`[id = ${id}-${idCarro}]`).attr("data-descripcion")
const reference = $("td").filter(`[id = ${id}-${idCarro}]`).attr("data-reference")
const cantidad = removeCommas($("td").filter(`[id = productQtyOrden-${id}-${idCarro}]`).text())
const producto = {
id: id,
idCarro: idCarro,
precio: precio,
cantidad: cantidad,
descripcion: descripcion,
reference: reference
}
aux.push(producto)
})
const productos = JSON.stringify(aux)
if(confirm("Esta orden será procesada e ingresada al sistema de ventas. Descontará el stock e informará al cliente. Desea continuar?"))
{
// SpinLoadingButton("doFinalizarOrdenEnviarCliente");
idDireccion = $("#ordenVenta_direccionCliente").val()
$.ajax({
type: 'GET',
url: "stx.ordenes.nueva.controller.php",
dataType: "json",
data: "opt=CarroCompra_GuardarCotizacion&idDireccion="+idDireccion,
// data: "opt=CarroCompra_NuevaCotizacion&idDireccion="+idDireccion,
success: function(codigoCotizacion) {
if(codigoCotizacion!="ERR")
{
alert("Se ha guardado la cotización "+codigoCotizacion);
CrearModalOnline('modalOrden','Creacion Orden de venta', 0.3, true, true);
$('#modalOrden').find('.modal-body').html($("").html(LoadingImage));
$('#modalOrden').modal({
backdrop: 'static',
keyboard: false
});
$.ajax({
type: 'GET',
url: "stx.ordenes.nueva.controller.php",
dataType: "json",
data: "opt=CarroCompra_EnviarCarroAPlataforma&total_paid="+totalPaid+"&total_neto="+totalTNeto+"&total_iva="+totalIVA+"&productos="+productos+"&idEstado="+idEstado+"&idCarrier="+idCarrier+"&idFormaPago="+idFormaPago,
success: function(res) {
if(res.id>0)
{
$('#modalOrden').find('.modal-body').html('
La Orden del cliente fue creada con el numero: '+res.id+'
');
// $('#Orden_ItemsAgregados').html('');
$('#Orden_ItemsAgregados').prop('disabled', true);
CalcularTotales();
// $('#ordenVenta_idCliente').val('');
// $('#idClienteOrdenVenta').val('');
// $('#ordenVenta_direccionCliente').val('');
// deshabilitarIngresodeDatos()
$.ajax({
type: 'GET',
url: "stx.ordenes.nueva.controller.php",
dataType: "json",
data: "opt=updateIDOrder&idOrden="+res.id+"",
success: function(data) {
recursos = ['orders', 'order_details']
$.ajax({
url:'./stx.cron.d/getAllData.php',
type: 'GET',
data: {recursos: recursos},
success: function(data){
if(dataForm != null){
$.ajax({
type: 'GET',
url: "stx.ordenes.nueva.controller.php",
dataType: "json",
data: "opt=guardarDetallesPago&idCotizacion="+dataForm.idCotizacion+"&idVenta="+res.id+"&idFormaPago="+dataForm.idFormaPago+"&monto="+dataForm.monto+"&diasCheque="+dataForm.dias_cheque+"&idBanco="+dataForm.id_banco+"&comentarios="+dataForm.comentarios,
success: function(data) {
console.log(data)
}
})
}
}
})
}
})
}
else
{
$('#modalOrden').find('.modal-body').html($("").html('Ocurrió un error y la orden no ha ingresado en sistema: '+data.errTXT+'
'));
// $('#modalOrden').find('.modal-body').html($("").html(StxLogotipo));
$('#modalOrden').find('.modal-body').append($("").addClass("alert").addClass("alert-danger").html("Ocurrió un error y la orden no ha ingresado en sistema"));
$('#modalOrden').find('.modal-body').append($("
").attr("id","listaErrores").addClass('text-danger'));
$.each(data.errTXT,function(idError,texto) {
$("#listaErrores").append($("").html(texto));
});
}
unSpinLoadingButton('doFinalizarOrdenEnviarCliente');
}
});
}
else
{
alert("La cotizacion no se ha guardado, pues no se han especificado artículos en el carro.");
}
unSpinLoadingButton('guardarCotizacion');
}
});
} else {
$(this).prop("disabled", false)
}
}