Foros del Web » Programando para Internet » Javascript »

Me ayudan con este JS, por favor

Estas en el tema de Me ayudan con este JS, por favor en el foro de Javascript en Foros del Web. Hola... Tengo un drama enorme... desarrollo un Sistema y debo almacenar una factura, como el cliente siempre compra lo mismo, los datos son mostrados mediante ...
  #1 (permalink)  
Antiguo 09/02/2011, 15:23
Avatar de spicke23  
Fecha de Ingreso: septiembre-2005
Mensajes: 17
Antigüedad: 18 años, 7 meses
Puntos: 0
Pregunta Me ayudan con este JS, por favor

Hola...
Tengo un drama enorme... desarrollo un Sistema y debo almacenar una factura, como el cliente siempre compra lo mismo, los datos son mostrados mediante un SELECT, pero no tengo ni la menor idea de como crear una función para calcular los valores totales, cada vez que agregue una nueva fila o guarde la factura.

les dejo los códigos:

Código de Factura.php:
Código PHP:
<form method="post" name="facturas" action="funciones/ingresa_factura.php" onSubmit="return valida_factura(this);">
<
center>
<
table>
<
tbody id="tabla2">
<
tr>
<
th>Cantidad</th>
<
th>Descripci&oacute;n del &iacute;tem</th>
<
th>PUnitario ($)</th>
<
th>Total ($)</th>
</
tr>
<
tr>
<
td><input type="text" size="3" maxlength="3" name="cantidad[]" id="cantidad_id" /></td>
<
td>
<
select name="mat_e_ins[]"><option value="0" selected="selected">---</option><option value="1">ROLLOS DE CINTA CHAPPIN</option><option value="2">SOBRES DE SEMILLA NAOMI</option><option value="3">PACAS DE TURBA</option><option value="4">ARADO CINSEL</option><option value="5">RETOVATOR</option><option value="6">SACO DE DIAMONICO</option><option value="7">SACO DE UREA GRANULADA</option><option value="8">SACO DE ULTRASOL MULTIPROPOSITO</option><option value="9">LITRO DE MTD</option><option value="10">FRASCO DE FENOS 480SC 250CC</option><option value="11">METOMIL HIDRO 90PS 100GRS</option><option value="12">BIDON DE VITAPHOS 10LT (ABONO FOLIAR)</option><option value="13">LITRO DE LI 700</option><option value="14">SACO DE ULTRASOL INICIAL</option><option value="15">SACO DE MAP-C</option><option value="16">KILO DE METALAXIL 25DP</option><option value="17">BIDON HUMIC SISAL 10LT</option><option value="18">LITRO DE MOCAP</option><option value="19">BROMURACION (FUSETEC)</option><option value="20">BIDON EXPROD COMPLEX RADICULAR 10LT</option><option value="21">LITRO DE HORTYL 50F (TISON)</option><option value="22">SACO DE FOSFATO MONOAMONICO 50KL</option><option value="23">SACO DE SULFATO POTASIO G 50KL</option><option value="24">GALON DE PITCA 10LT</option><option value="25">VERTIMEC 018EC 250CC</option><option value="26">BIDON DE APEX 20LT</option><option value="27">KILO DE POLYBEN 50WP</option><option value="28">ACOIDAL WG 1KL (AZUFRE MOJABLE)</option><option value="29">BIDON DE FRUTALIV 1LT</option><option value="30">RUKAM CUAJA 1LT</option><option value="31">HURRICANE 70WP 250CC</option><option value="32">SYSTHANE</option><option value="33">FUMIGACION</option><option value="34">SACO DE AZUFRE</option><option value="35">BIDON DE FRUTALIV 5LT</option><option value="36">SACO DE SULFATO POTASIO SOLUBLE 25KL</option><option value="37">SACO DE NITRATO DE CALCIO 25KL</option><option value="38">BIDON DE ACIDO FOSFORICO 50KL</option><option value="39">LITRO DE KENDAL</option><option value="40">SACO DE NITRATO POTASIO CRISTALIZADO 25KL</option><option value="41">SACO DE SULFATO DE MAGNESIO</option><option value="42">FOSFATO MONOPOTASICO 25KL</option><option value="43">SACO DE FOSFATO MONOMONICO</option><option value="44">SACO DE MEZCLA NPK (8-21-1450KL</option><option value="45">PASTILLA DE ACTIVOL</option><option value="46">SEMILLA DE POROTO</option><option value="47">DITERA</option></select>                                                        </td>
<
td><input type="text" size="10" maxlength="10" name="p_unidad[]" id="p_unidad_id" /></td>
<
td><input type="text" size="10" maxlength="10" readonly="true" value="0" name="subtot[]" id="subtot_id" /></td>
</
tr>
</
tbody>
<
tr>
<
td colspan="2"></td>
<
th align="right">Total Neto</th>
<
td><input type="text" size="10" maxlength="10" readonly="true" value="0" name="total_neto" id="total_neto_id" /></td>
</
tr>
<
tr>
<
td colspan="2"></td>
<
th align="right">Valor IVA (19%)</th>
<
td><input type="text" size="10" maxlength="10" readonly="true" value="0" name="v_iva" id="v_iva_id" /></td>
</
tr>
<
tr>
<
td colspan="2"></td>
<
th align="right">Valor Total</th>
<
td><input type="text" size="10" maxlength="10" readonly="true" value="0" name="v_total" id="v_total_id" /></td>
</
tr>
</
table>
<
input type="button" value="Nuevo &Iacute;tem" onClick="add_facturas();" onblur="ValorTotal(cantidad_id,p_unidad_id,subtot_id,total_neto_id,v_iva_id,v_total_id);" />
<
input type="submit" value="Guardar" />
</
center>
</
form
Como es muy largo el código... lo mostraré en los siguientes post...

gracias
  #2 (permalink)  
Antiguo 09/02/2011, 15:24
Avatar de spicke23  
Fecha de Ingreso: septiembre-2005
Mensajes: 17
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Me ayudan con este JS, por favor

Para el botón "Nuevo Ítem"
Código PHP:
/* funcion que agrega filas al ingreso de facturas */
function add_facturas() {
    
tabla document.getElementById('tabla2');
    
fila document.createElement('tr');
    
    
celda document.createElement('td');
    
fila.appendChild(celda);

    
cantidad=document.createElement('input');
    
cantidad.type='text';
    
cantidad.name='cantidad[]';
    
cantidad.id='cantidad_id';
    
cantidad.size='3';
    
cantidad.maxLength='3';
    
celda.appendChild(cantidad);
    
    
celda document.createElement('td');
    
fila.appendChild(celda);    

    
p_option=document.createElement('select');
    
p_option.name='mat_e_ins[]';
    
celda.appendChild(p_option);

    
insumos=document.createElement('option');
    
insumos.value='0';
    
insumos.text='---';
    
p_option.add(insumos);
    
    
insumos=document.createElement('option');
    
insumos.value='1';
    
insumos.text='ROLLOS DE CINTA CHAPPIN';
    
p_option.add(insumos);

    
insumos=document.createElement('option');
    
insumos.value='2';
    
insumos.text='SOBRES DE SEMILLA NAOMI';
    
p_option.add(insumos);
    
    
insumos=document.createElement('option');
    
insumos.value='3';
    
insumos.text='PACAS DE TURBA';
    
p_option.add(insumos);
    
    
insumos=document.createElement('option');
    
insumos.value='4';
    
insumos.text='ARADO CINSEL';
    
p_option.add(insumos);
    
    
insumos=document.createElement('option');
    
insumos.value='5';
    
insumos.text='RETOVATOR';
    
p_option.add(insumos);
    
    
insumos=document.createElement('option');
    
insumos.value='6';
    
insumos.text='SACO DE DIAMONICO';
    
p_option.add(insumos);
    
    
insumos=document.createElement('option');
    
insumos.value='7';
    
insumos.text='SACO DE UREA GRANULADA';
    
p_option.add(insumos);
    
    
insumos=document.createElement('option');
    
insumos.value='8';
    
insumos.text='SACO DE ULTRASOL MULTIPROPOSITO';
    
p_option.add(insumos);
    
    
insumos=document.createElement('option');
    
insumos.value='9';
    
insumos.text='LITRO DE MTD';
    
p_option.add(insumos);
    
    
insumos=document.createElement('option');
    
insumos.value='10';
    
insumos.text='FRASCO DE FENOS 480SC 250CC';
    
p_option.add(insumos);
    
    
insumos=document.createElement('option');
    
insumos.value='11';
    
insumos.text='METOMIL HIDRO 90PS 100GRS';
    
p_option.add(insumos);
    
    
insumos=document.createElement('option');
    
insumos.value='12';
    
insumos.text='BIDON DE VITAPHOS 10LT (ABONO FOLIAR)';
    
p_option.add(insumos);
    
    
insumos=document.createElement('option');
    
insumos.value='13';
    
insumos.text='LITRO DE LI 700';
    
p_option.add(insumos);

    
insumos=document.createElement('option');
    
insumos.value='14';
    
insumos.text='SACO DE ULTRASOL INICIAL';
    
p_option.add(insumos);

    
insumos=document.createElement('option');
    
insumos.value='15';
    
insumos.text='SACO DE MAP-C';
    
p_option.add(insumos);

    
insumos=document.createElement('option');
    
insumos.value='16';
    
insumos.text='KILO DE METALAXIL 25DP';
    
p_option.add(insumos);

    
insumos=document.createElement('option');
    
insumos.value='17';
    
insumos.text='BIDON DE HUMIC SISAL 10LT';
    
p_option.add(insumos);

    
insumos=document.createElement('option');
    
insumos.value='18';
    
insumos.text='LITRO DE MOCAP';
    
p_option.add(insumos);

    
insumos=document.createElement('option');
    
insumos.value='19';
    
insumos.text='BROMURACION (FUSETEC)';
    
p_option.add(insumos);

    
insumos=document.createElement('option');
    
insumos.value='20';
    
insumos.text='BIDON DE EXPROD COMPLEX RADICULAR 10LT';
    
p_option.add(insumos);

    
insumos=document.createElement('option');
    
insumos.value='21';
    
insumos.text='LITRO DE HORTYL 50F (TISON)';
    
p_option.add(insumos);

    
insumos=document.createElement('option');
    
insumos.value='22';
    
insumos.text='SACO DE FOSFATO MONOAMONICO 50KL';
    
p_option.add(insumos);

    
insumos=document.createElement('option');
    
insumos.value='23';
    
insumos.text='SACO DE SULFATO POTASIO G 50KL';
    
p_option.add(insumos);

    
insumos=document.createElement('option');
    
insumos.value='24';
    
insumos.text='GALON DE PITCA 10LT';
    
p_option.add(insumos);
    
    
insumos=document.createElement('option');
    
insumos.value='25';
    
insumos.text='VERTIMEC 018EC 250CC';
    
p_option.add(insumos);
    
    
insumos=document.createElement('option');
    
insumos.value='26';
    
insumos.text='BIDON DE APEX 20LT';
    
p_option.add(insumos);
    
    
insumos=document.createElement('option');
    
insumos.value='27';
    
insumos.text='KILO DE POLYBEN 50WP';
    
p_option.add(insumos);
    
    
insumos=document.createElement('option');
    
insumos.value='28';
    
insumos.text='ACOIDAL WG 1KL (AZUFRE MOJABLE)';
    
p_option.add(insumos);
    
    
insumos=document.createElement('option');
    
insumos.value='29';
    
insumos.text='BIDON DE FRUTALIV 1LT';
    
p_option.add(insumos);
    
    
insumos=document.createElement('option');
    
insumos.value='30';
    
insumos.text='RUKAM CUAJA 1LT';
    
p_option.add(insumos);
    
    
insumos=document.createElement('option');
    
insumos.value='31';
    
insumos.text='HURRICANE 70WP 250CC';
    
p_option.add(insumos);
    
    
insumos=document.createElement('option');
    
insumos.value='32';
    
insumos.text='SYSTHANE';
    
p_option.add(insumos);
    
    
insumos=document.createElement('option');
    
insumos.value='33';
    
insumos.text='FUMIGACION';
    
p_option.add(insumos);
    
    
insumos=document.createElement('option');
    
insumos.value='34';
    
insumos.text='SACO DE AZUFRE';
    
p_option.add(insumos);
    
    
insumos=document.createElement('option');
    
insumos.value='35';
    
insumos.text='BIDON DE FRUTALIV 5LT';
    
p_option.add(insumos);
    
    
insumos=document.createElement('option');
    
insumos.value='36';
    
insumos.text='SACO DE SULFATO POTASIO SOLUBLE 25KL';
    
p_option.add(insumos);
    
    
insumos=document.createElement('option');
    
insumos.value='37';
    
insumos.text='SACO DE NITRATO DE CALCIO 25KL';
    
p_option.add(insumos);
    
    
insumos=document.createElement('option');
    
insumos.value='38';
    
insumos.text='BIDON DE ACIDO FOSFORICO 50KL';
    
p_option.add(insumos);
    
    
insumos=document.createElement('option');
    
insumos.value='39';
    
insumos.text='LITRO DE KENDAL';
    
p_option.add(insumos);
    
    
insumos=document.createElement('option');
    
insumos.value='40';
    
insumos.text='SACO DE NITRATO POTASIO CRISTALIZADO 25KL';
    
p_option.add(insumos);
    
    
insumos=document.createElement('option');
    
insumos.value='41';
    
insumos.text='SACO DE SULFATO DE MAGNESIO';
    
p_option.add(insumos);
    
    
insumos=document.createElement('option');
    
insumos.value='42';
    
insumos.text='FOSFATO MONOPOTASICO 25KL';
    
p_option.add(insumos);
    
    
insumos=document.createElement('option');
    
insumos.value='43';
    
insumos.text='SACO DE FOSFATO MONOMONICO';
    
p_option.add(insumos);
    
    
insumos=document.createElement('option');
    
insumos.value='44';
    
insumos.text='SACO DE MEZCLA NPK (8-21-14) 50KL';
    
p_option.add(insumos);
    
    
insumos=document.createElement('option');
    
insumos.value='45';
    
insumos.text='PASTILLA DE ACTIVOL';
    
p_option.add(insumos);
    
    
insumos=document.createElement('option');
    
insumos.value='46';
    
insumos.text='SEMILLA DE POROTO';
    
p_option.add(insumos);
    
    
insumos=document.createElement('option');
    
insumos.value='47';
    
insumos.text='DITERA';
    
p_option.add(insumos);
    
    
celda document.createElement('td');
    
fila.appendChild(celda);

    
precio_u=document.createElement('input');
    
precio_u.type='text';
    
precio_u.name='p_unidad[]';
    
precio_u.id='p_unidad_id';
    
precio_u.size='10';
    
precio_u.maxLength='10';
    
celda.appendChild(precio_u);
    
    
celda document.createElement('td');
    
fila.appendChild(celda);

    
valor_t=document.createElement('input');
    
valor_t.type='text';
    
valor_t.name='subtot[]';
    
valor_t.id='subtot_id';
    
valor_t.size='10';
    
valor_t.value='0';
    
valor_t.readOnly='true';
    
valor_t.maxLength='10';
    
celda.appendChild(valor_t);
    
    
tabla.appendChild(fila);

  #3 (permalink)  
Antiguo 09/02/2011, 15:25
Avatar de spicke23  
Fecha de Ingreso: septiembre-2005
Mensajes: 17
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Me ayudan con este JS, por favor

Función que se supone que me debería calcular los valores totales
Código PHP:
function ValorTotal(cantidad_id,p_unidad_id,subtot_id,total_neto_id,v_iva_id,v_total_id) {
    
//obtencion de valores de las variables por su id
    
var cantidad document.getElementById(cantidad_id);
    var 
unidad document.getElementById(p_unidad_id);
    var 
SubTot document.getElementById(subtot_id);
    var 
TotNeto document.getElementById(total_neto_id);
    var 
ValIva document.getElementById(v_iva_id);
    var 
Total document.getElementById(v_total_id);

    
//verificamos si algun campo esta vacio
    
if(((objCantidad.value=='')||(objCantidad.value==' ')) && ((objUnidad.value=='')||(objUnidad.value==' '))) {
        
alert("El campo cantidad o precio unitario está vacío");
        
//return false;
    
}
    else{
        
objSubTot.value Multiplica(objCantidad,objUnidad);
    }
    
//verificamos si algun campo esta vacio
    
if(((objSubTot.value=='')||(objSubTot.value==' ')) && ((objTotNeto.value=='')||(objTotNeto.value==' '))) {
        
alert("El campo(sub) Total está vacío");
        
//return false;
    
}
    else{
        
objSubTot.value SumarNeto(objSubTot,objTotNeto);
    }
    if(((
objSubTot.value=='')||(objSubTot.value==' '))) {
        
alert("El campo(sub) Total está vacío");
        
//return false;
    
}
    else{
        
objValIva.value CalcularIVA(objSubTot);
    }
    
objTotal.value parseInt(objSubTotal.value) + parseInt(objValIva.value);
}

/*  funcion que multiplica CANTIDAD x PRECIO UNITARIO */
function Multiplica(cantidad,unidad) {
    return(
parseInt(cantidad) * parseInt(unidad));
}

/* funcion que calcula la suma parcial de la factura */
function SumarNeto(subTotal,totalNeto) {
    return(
parseInt(subTotal) + parseInt(totalNeto.value));
}

/* funcion que calcula el valor del IVA de la factura */
function CalcularIVA(subTotal) {
    var 
iva 0.19;
    
subTotal parseFloat(iva) * parseFloat(subTotal);
    return(
parseInt(subTotal.value));

a ver si me dan una manito o me dicen que esta mal...

Gracias

Etiquetas: favor, js
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 22:45.