Foros del Web » Programando para Internet » Jquery »

Reemplazar NaN con 0

Estas en el tema de Reemplazar NaN con 0 en el foro de Jquery en Foros del Web. Buenos dias! Amigos tengo diaaas tratando de depurar un Sistema que e hecho, les explico hice un especie de "relacion de caja" que me permite ...
  #1 (permalink)  
Antiguo 04/04/2014, 09:36
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 8 meses
Puntos: 19
Reemplazar NaN con 0

Buenos dias! Amigos tengo diaaas tratando de depurar un Sistema que e hecho, les explico hice un especie de "relacion de caja" que me permite ver las ventas por rubro (efectivo credito debito, etc) de una tienda, esos valores los comparo con las ventas totales arrojados por la Maquina fiscal y el Sistema de venta (Valery), ahora nose si he hecho mal un paso o de verdad el sistema no funciona, porque casi siempre me arroja un NEGATIVO en las adiciones, y cuando yo lo hago manualmente me cuadra, entonces debo de suponer que el que llena el formulario se esta saltando unos campos y cuando el jquery lee el input recoge NaN y la formula de resta no funciona o queda negativa.

Les muestro el codigo:

Código HTML:
Ver original
  1.     <meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
  2.     <link rel="stylesheet" type="text/css" href="http://indicadores.kepen.com.ve/Estilos/estilos.css" />
  3.     <link rel="stylesheet" type="text/css" href="http://indicadores.kepen.com.ve/Estilos/dynDateTime/calendar-blue2.css" />
  4.     <script src="http://indicadores.kepen.com.ve/Scripts/jquery171.js" type="text/javascript"></script>
  5.     <script src="http://indicadores.kepen.com.ve/Scripts/dynDateTime/jquery.dynDateTime.js" type="text/javascript"></script>
  6.     <script src="http://indicadores.kepen.com.ve/Scripts/dynDateTime/calendar-es.js" type="text/javascript"></script>
  7.     <script type="text/javascript" src="http://indicadores.kepen.com.ve/Scripts/validCampoFranz.js"></script>
  8.     <script type="text/javascript">
  9.     $.fn.sumVal = function() {
  10.         var sum = 0;
  11.         this.each(function() {
  12.             if ( $(this).is(':input') ) {
  13.                 var val = $(this).val();
  14.             } else {
  15.                 var val = $(this).text();
  16.             }
  17.             if($.isNumeric(val)){
  18.                 val=val;
  19.             }else{
  20.                 val=0;
  21.                 }
  22.             sum += parseFloat( ('0' + val).replace(/[^0-9-\.]/g, ''), 10 );    
  23.         });
  24.         return sum;
  25.     };
  26.     $(document).ready(function() {
  27.         jQuery("#fecha1").dynDateTime();
  28.         //Detalles X
  29.         $('#mefectx').validCampoFranz('.0123456789');
  30.         $('#mtdcx').validCampoFranz('.0123456789');
  31.         $('#mtpx').validCampoFranz('.0123456789');     
  32.         $('#mtdbx').validCampoFranz('.0123456789');
  33.         $('#mtex').validCampoFranz('.0123456789');     
  34.         $('#tcajax').validCampoFranz('.0123456789');
  35.         //Detalles Z
  36.         $('#reporz').validCampoFranz('0123456789');
  37.         $('#montorvz').validCampoFranz('.0123456789');
  38.         $('#montoriz').validCampoFranz('.0123456789');
  39.         $('#mefectz').validCampoFranz('.0123456789');
  40.         $('#mtdcz').validCampoFranz('.0123456789');
  41.         $('#mtpz').validCampoFranz('.0123456789');     
  42.         $('#mtdbz').validCampoFranz('.0123456789');
  43.         $('#mtez').validCampoFranz('.0123456789');     
  44.         $('#tcajaz').validCampoFranz('.0123456789');
  45.         //Devoluciones
  46.         $('#mdevz').validCampoFranz('.0123456789');    
  47.         $('#mdeviz').validCampoFranz('.0123456789');
  48.         //totales
  49.         $('#tcaja').validCampoFranz('.0123456789');
  50.         $('#tvale').validCampoFranz('.0123456789');
  51.        
  52.         $( "#fecha1" ).bind( "blur", function() {
  53.             if ($(this).val()!=null){
  54.                     var fecha = $('#fecha1').val().split("/");
  55.                     $.ajax({
  56.                         url: 'ventas.php',
  57.                         data: "dia="+fecha[0]+"&mes="+fecha[1]+"&ano="+fecha[2],
  58.                         dataType: 'json',
  59.                         success: function(data)
  60.                         {
  61.                             var Facturas = data[0];
  62.                             var Devoluciones = data[1];
  63.                             var Facturado = data[2];
  64.                             $('#tvale').val(Facturado);
  65.                             }
  66.                         });
  67.                     }
  68.                 else{
  69.                     alert('El campo Fecha debe tener una Fecha V&aacute;lida');
  70.                     }
  71.         });        
  72.             $('#corte_caja').delegate('input[type=text]', 'blur', function () {
  73.                 var montosx = $('.sumar_montox').sumVal();
  74.                 $('#tcajax').val(montosx);
  75.                 var montosz = $('.sumar_montoz').sumVal();
  76.                 $('#tcajaz').val(montosz);
  77.                
  78.                 $('#tcaja').val(parseFloat(montosz)+parseFloat(montosx));
  79.                 $('#montoZ').val(parseFloat($('#montorvz').val())+parseFloat($('#montoriz').val()));               
  80.                
  81.                 var dmf = 0, dc = 0;
  82.                 dmf = ((parseFloat($('#montorvz').val() || 0)+parseFloat($('#montoriz').val() || 0)) - (parseFloat($('#mdevz').val() || 0)+parseFloat($('#mdeviz').val() || 0)) - parseFloat($('#tvale').val() || 0));
  83.                 dc =  (parseFloat($('#tcaja').val()) -  parseFloat($('#tvale').val()));
  84.                 $('#dmq').val(dmf.toFixed(2));
  85.                 $('#dc').val(dc.toFixed(2));
  86.                 if (Math.abs(dmf)>5){
  87.                     $('#alertdmq').val('1');}
  88.                     else{
  89.                         $('#alertdmq').val('0');
  90.                     }
  91.                 if (Math.abs(dc)>5){
  92.                     $('#alertdc').val('1');}
  93.                     else{
  94.                         $('#alertdc').val('0');
  95.                     }
  96.                 });        
  97.         });
  98.     </script>
  99. </head>
  100. <div id="main">
  101.     <header>
  102.         <div id="logo">
  103.         </div>
  104.     </header>
  105.     <div id="site_content">
  106.       <div class="content">
  107.       <h1>Cierre de Caja Diario.</h1>
  108.         <h2>Observaciones: </h2>
  109.         <ul>
  110.             <li>En los montos debe utilizar solo 2 d&eacute;cimales y separarlos con el punto "."</li>
  111.             <li>En el Monto del Reporte Z (VENTA) colocar el Monto sin IVA del Reporte Z</li>
  112.             <li>En el Monto del Reporte Z (IVA) colocar el IVA del Reporte Z</li>
  113.         </ul>
  114.         <form id="corte_caja" name="corte_caja" method="post" action="http://indicadores.kepen.com.ve/proc.php">   
  115.           <div class="form_settings">
  116.             <p><span>Fecha: </span><input type="text" name="fecha1" id="fecha1" readonly /></p>
  117.            
  118.             <h2>Detalles Corte (X): </h2>
  119.             <p><span>Efectivo X: </span><input type="text" class="sumar_montox" name="mefectx" id="mefectx" maxlength="10" placeholder="0"/></p>
  120.             <p><span>Tarjeta de Cr&eacute;dito X: </span><input type="text" class="sumar_montox" name="mtdcx" id="mtdcx" maxlength="10" placeholder="0"/></p>
  121.             <p><span>Tarjeta Privada X: </span><input type="text" class="sumar_montox" name="mtpx" id="mtpx" maxlength="10" placeholder="0"/></p>
  122.             <p><span>Tarjeta de D&eacute;dito X: </span><input type="text" class="sumar_montox" name="mtdbx" id="mtdbx" maxlength="10" placeholder="0"/></p>
  123.             <p><span>Tarjeta Electron X: </span><input type="text" class="sumar_montox" name="mtex" id="mtex" maxlength="10" placeholder="0"/></p>
  124.             <!--<p><span>Total Devoluciones X (NETO): </span><input type="text" name="mdevx" id="mdevx" maxlength="10" placeholder="0"/></p>
  125.            <p><span>Total Devoluciones X (IVA): </span><input type="text" name="mdevix" id="mdevix" maxlength="10" placeholder="0"/></p>-->
  126.             <p><span>Total Venta X: </span><input type="text" name="tcajax" id="tcajax" maxlength="10" readonly placeholder="0"/></p>
  127.            
  128.             <h2>Detalles Cierre (Z): </h2>
  129.             <p><span>N&uacute;mero de Reporte Z: </span><input type="text" name="reporz" id="reporz" maxlength="10"/></p>
  130.             <p><span>Monto del Reporte Z (VENTA): </span><input placeholder="0" type="text" name="montorvz" id="montorvz" maxlength="10"/></p>
  131.             <p><span>Monto del Reporte Z (IVA): </span><input placeholder="0" type="text" name="montoriz" id="montoriz" maxlength="10"/></p>
  132.             <p><span>Efectivo Z: </span><input type="text" class="sumar_montoz" name="mefectz" id="mefectz" maxlength="10" placeholder="0"/></p>
  133.             <p><span>Tarjeta de Cr&eacute;dito Z: </span><input type="text" class="sumar_montoz" name="mtdcz" id="mtdcz" maxlength="10" placeholder="0"/></p>
  134.             <p><span>Tarjeta Privada Z: </span><input type="text" class="sumar_montoz" name="mtpz" id="mtpz" maxlength="10" placeholder="0"/></p>
  135.             <p><span>Tarjeta de D&eacute;dito Z: </span><input type="text" class="sumar_montoz" name="mtdbz" id="mtdbz" maxlength="10" placeholder="0"/></p>
  136.             <p><span>Tarjeta Electron Z: </span><input type="text" class="sumar_montoz" name="mtez" id="mtez" maxlength="10" placeholder="0"/></p>
  137.             <p><span>Total Devoluciones Z (NETO): </span><input type="text" name="mdevz" id="mdevz" maxlength="10" placeholder="0"/></p>
  138.             <p><span>Total Devoluciones Z (IVA): </span><input type="text" name="mdeviz" id="mdeviz" maxlength="10" placeholder="0"/></p>
  139.             <p><span>Total Venta Z: </span><input type="text" name="tcajaz" id="tcajaz" maxlength="10" readonly placeholder="0"/></p>
  140.            
  141.             <h2>Totales: </h2>
  142.             <p><span>Total Venta dia: </span><input type="text" name="tcaja" id="tcaja" maxlength="10" readonly placeholder="0"/></p>          
  143.             <p><span>Total de Ventas (Valery): </span><input type="text" name="tvale" id="tvale" omaxlength="10"  value="7839.99" readonly placeholder="0"/></p>
  144.              <table class="tablas" border="1" cellpadding="0" cellspacing="0" align="center">
  145.                 <tr>
  146.                     <td colspan="2"><p align="center" class="tabtitulo">Diferencias</p></td>
  147.                 </tr>
  148.                 <tr>
  149.                     <td><p align="center" class="tabcamp">Maquina Fiscal</p></td>
  150.                     <td><p align="center" class="tabcamp">Caja</p></td>
  151.                 </tr>
  152.                 <tr>
  153.                     <td><input type="text" name="dmq" id="dmq"  maxlength="10" readonly/></td>
  154.                     <td><input type="text" name="dc" id="dc"  maxlength="10" readonly/></td>
  155.                 </tr>
  156.                 </table>
  157.                 <input type="hidden" name="franq" id="franq" value="<?php echo $tienda; ?>"/>
  158.                 <input type="hidden" name="montoZ" id="montoZ" value="0"/>
  159.                 <input type="hidden" name="alertdmq" id="alertdmq" value="0"/>
  160.                 <input type="hidden" name="alertdc" id="alertdc" value="0"/>
  161.             <p>
  162.                 <input class="submit" type="submit" name="Corte_Caja" value="Registrar"/>
  163.                 <input class="submit" name="borrar" type="reset" value="Limpiar Datos"/>
  164.             </p>
  165.           </div>
  166.         </form>
  167.         <p>&nbsp;</p>
  168.        </div>
  169.     </div>
  170.     <p>Copyright &copy; Kepen</p>
  171.     </footer>
  172.     </div>
  173.     <p>&nbsp;</p>  
  174. </body>
  175. </html>
  #2 (permalink)  
Antiguo 04/04/2014, 09:37
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 8 meses
Puntos: 19
Respuesta: Reemplazar NaN con 0

El ajax que consulta las ventas toma los datos del sistema administrativo, e colocado el monto del dia que estoy evaluando para aquellos que quieran probar el sistema

Obviamente cuando envian eso lo recibe un archivo que solo toma los datos los inserta en una BD y me envia un correo con un formato amigable.

Pueden decirme si esta algo mal?

Disculpen el Doble post pero el codigo no cabia, y cuando trate de subirlo a JSFiddle, no me dejaba agregar elementos externos...

Etiquetas: reemplazar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:24.