Ir para conteúdo
Fórum Script Brasil
  • 0

Subtrair Calculo


PRWEBMaster

Pergunta

Tudo bem pessoal?

Preciso de uma grande ajuda!!!

Tenho esse codigo em javascript que faz o calculo dos campos preenchidos:

function total1(campo1,campo2,campo3)
{
var sub_total = 0;

//Pré total
var ptot = parseFloat(campo1.value.replace(',', '.')) * parseFloat(campo2.value.replace(',','.'));
campo3.value = isTrunc(ptot, 2);

//Cálculo do sub_total
var qtdC = document.myForm.qtdeCampos.value - 1;
var tot = 0;
for (var i=1; i<=qtdC; i++){
if ( document.getElementById('v_total_' + String(i)).value ){
tot = parseFloat(document.getElementById('v_total_' + String(i)).value.replace(',', '.'));
sub_total = sub_total + tot;
}
}
document.myForm.sub_total.value = isTrunc(sub_total, 2);

//Cálculo do total geral
var sub = parseFloat(document.myForm.sub_total.value.replace(',', '.'));
var cust = parseFloat(document.myForm.custo_envio.value.replace(',', '.'));
var out = parseFloat(document.myForm.outros.value.replace(',', '.'));
var tot = sub + cust + out;
document.myForm.total_geral.value = isTrunc(tot, 2);
}

function total_geral1()
{

//Cálculo do total geral
var sub = parseFloat(document.myForm.sub_total.value.replace(',', '.'));
var cust = parseFloat(document.myForm.custo_envio.value.replace(',', '.'));
var out = parseFloat(document.myForm.outros.value.replace(',', '.'));
var tot = sub + cust + out;
document.myForm.total_geral.value = isTrunc(tot, 2);

}

Em cima deste código eu preciso subtrair quando um checkbox é selecionado.

Exemplo tenho vários registros e em cada registro tem um checkbox chamado PROD_PENDENTE, quando selecionado cada checkbox ele subtrai os campos sub_total e total_geral e quando desmarcar ele soma.

Alguém poderia me ajudar, fico muito agradecido!!

Muito Obrigado

:wacko:

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Bom dia,

Segue o código para análise:

<%@LANGUAGE="vb script:return">
<table width="100%" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="15"><a href="visualizar.asp?id_cliente=<%=cadastro("id_cliente")%>&offset=<%=request.QueryString("offset")%>&nome_empresa=<%=request.QueryString("nome_empresa")%>&id=<%=request.QueryString("id")%>&status_os=em_andamento" class="style4"><strong><img src="img/seta_voltar2.gif" width="25" height="15" border="0" align="absmiddle"> VOLTAR</strong></a></td>
</tr>
<tr>
<td height="15"><div align="center"><span class="style113 style116 style1 style129 style168"><%=Request.QueryString("msg")%></span></div></td>
</tr>
<tr>
<td><fieldset class="style126 style139">
<legend><span class="style157">INSERIR/ALTERAR ORDEM DE FORNECIMENTO</span></legend>

<table width="100%" border="0" cellpadding="0" cellspacing="0">

<tr>
<td colspan="2"><div align="center"><font color="#FFFFFF">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="77%"><div align="center"><font color="#FFFFFF">
<input name="button2" type="submit" class="form1" id="button2" value=" INCLUIR ">
</font></div></td>
<td width="23%"><div align="center"><a href="#" class="style4 style167" onClick="abrir_of('visualizar_os.asp?no_os=<%=gerar_os_itens("no_os")%>&id_cliente=<%=id_cliente%>&offset=<%=request.QueryString("offset")%>')"><strong>IMPRIMIR</strong></a><span class="style159"> </font>
</span></div></td>
</tr>
</table>
</div></td>
<td width="267" rowspan="5" valign="top"><iframe src="visual_rvs.asp?id_cliente=<%=request.QueryString("id_cliente")%>&no_os=<%=request.QueryString("no_os")%>" name="rvs" id="rvs" width="100%" height="140px" frameborder="0" class="iframe" scrolling="auto"></iframe></td>
</tr>
<tr>
<td colspan="2"><span class="style68"><span class="style35">EMPRESA: </span>&nbsp;<span class="style4 style163"><%=Session("nome_empresa")%></span></span></td>
</tr>
<tr>
<td width="547"><span class="style141"><span class="style14 "><strong><strong><strong><strong>N.&ordm; O.F.:&nbsp;<span class="style157 style160"><strong><strong><strong><strong><strong><strong><strong><strong><%=gerar_os_itens("no_os")%></strong></strong></strong></strong></strong></strong></strong></strong>/</span><span class="style162">
<%
x=now()
'RECUPERA A DATA

Data = year(x)
'RECUPERA SO O ANO NO CASO 2010

Ano = right(Data, 2)
'PEGA APENAS OS ÚLTIMOS DOIS DIGITOS DO ANO, NO CASO 10

response.Write Ano
'MOSTRA O NÚMERO "10" PARA DIZER QUE DEU CERTO, NO CASO TIRA O RESPONSE.WRITE MAS SÓ PARA VOCÊ VER SE É ISSO MESMO
%>
</span>&nbsp;&nbsp;&nbsp;
DATA: <span class="style152"><strong><strong><strong><%=replace(gerar_os_itens("data_abertura"),".","/")%>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></strong></strong></span></strong></strong></strong></strong></span></span><span class="style152">URGENTE:</span><span class="style92 style140">
<input name="opt" type="checkbox" id="opt" value="1" <%if urgente = "1" then response.Write("checked")%>>
</span></td>
<td width="348" colspan="-1" rowspan="3" valign="top"><strong> OBSERVA&Ccedil;&Atilde;O: <br>
<textarea name="observacoes" cols="45" rows="3" class="style126" id="observacoes"><%=gerar_os_itens("observacoes")%></textarea>
</strong></td>
</tr>

<tr>
<td><span class="style14"><strong>DESCRI&Ccedil;&Atilde;O:</strong>&nbsp;&nbsp;&nbsp;
<input name="descricao" type="text" class="campos" id="descricao" onKeyUp="Muda(this);" value="<%=gerar_os_itens("descricao")%>" size="50">
</span></td>
</tr>
<tr>
<td height="38"><span class="style35"><strong>SOLICITADOR POR:</strong> &nbsp;<strong>
<select name="solicitado_por" class="campos" id="solicitado_por">
<option value=""></option>
<%
While (NOT nome.EOF)
%>
<option value="<%=(nome.Fields.Item("NOME_CONTATO").Value)%>" <%if nome ("NOME_CONTATO") = gerar_os_itens ("solicitado_por") then response.Write("selected")%>><%=(nome.Fields.Item("NOME_CONTATO").Value)%></option>
<%
nome.MoveNext()
Wend
If (nome.CursorType > 0) Then
nome.MoveFirst
Else
nome.Requery
End If
%>
</select>
</strong>&nbsp;&nbsp;&nbsp;<strong>STATUS: <strong>
<select name="situacao_of_om" size="0" class="forma_pag1" id="situacao_of_om" >
<option value="0" <%if sel_situacao = "0" then response.Write("selected")%> onClick="java script:cancelar_of('logon_cancela.asp?id_cliente=<%=id_cliente%>&situacao_of_om=0&no_os=<%=gerar_os_itens("no_os")%>',this,no_os=<%=gerar_os_itens("no_os")%>);">CANCELADA</option>
<option value="1" <%if sel_situacao = "1" then response.Write("selected")%> onClick="java script:abrir('cadastra_rv.asp?id_cliente=<%=id_cliente%>&situacao_of_om=1&no_os=<%=gerar_os_itens("no_os")%>&descricao=<%=gerar_os_itens("descricao")%>&total_geral=<%=gerar_os_itens("total_geral")%>',this,no_os=<%=gerar_os_itens("no_os")%>);">CONCLUÍDO</option>
<option value="2" <%if sel_situacao = "2" then response.Write("selected")%>>EM ANDAMENTO</option>
</select>
</strong> &nbsp;
<label></label>
&nbsp;&nbsp;&nbsp;DEPARTAMENTO:
<select name="departamento" class="campos" id="departamento">
<option value="A DEFINIR">A DEFINIR</option>
<option value="ESTOQUE" <%if sel_departamento = "ESTOQUE" then response.Write("selected")%>>ESTOQUE</option>
<option value="EXPEDIÇÃO" <%if sel_departamento = "EXPEDIÇÃO" then response.Write("selected")%>>EXPEDIÇÃO</option>
</select>
</strong></span></td>
</tr>




<tr>
<td colspan="3"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="21"><div align="left"> <a href="java script:criar_campos('<%=gerar_os_itens("no_os")%>','<%=cadastro("nome_empresa")%>','<%=gerar_os_itens("id_cliente")%>','<%=gerar_os_itens("gerar_of_om")%>','<%=gerar_os_itens("descricao")%>','<%=gerar_os_itens("observacoes")%>','<%=gerar_os_itens("solicitado_por")%>')"><img src='control_estoque/img/46.gif' width='15' height='17' border='0' /></a><strong> ADICIONAR ITENS A LISTA</strong> ABAIXO</div></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="1" cellspacing="0" bgcolor="#E0E0E0">
<tr>
<td width="1%" bgcolor="#000033">&nbsp;</td>
<td width="4%" bgcolor="#000033"><div align="center"><span class="style147 style126">QUANT. SOLIC.</span></div></td>
<td width="4%" bgcolor="#000033"><div align="center" class="style166">
<div align="center"><span class="style126 style139">QUANT</span>. ENTREGA</div>
</div></td>
<td width="5%" bgcolor="#000033"><div align="center" class="style155"><strong>DATA ENTREGUE</strong></div></td>
<td width="5%" bgcolor="#000033"><div align="center"><span class="style166"><span class="style126 style139">QUANT</span>.<br>
PENDENTE</span></div></td>
<td width="39%" height="16" bgcolor="#000033"><div align="center" class="style2 style17 style126"><strong>PRODUTO </strong></div>
<span class="style103 style105 style126 style139"><span class="style126 style139 style103"><span class="style151">
<label></label>
</span></span></span></td>
<td width="4%" bgcolor="#000033"><div align="center" class="style155"><strong>N.&ordm; S&Eacute;RIE</strong></div></td>
<td width="6%" bgcolor="#000033"><div align="center" class="style155"><strong>PENDENTE</strong></div></td>
<td width="19%" bgcolor="#000033"><div align="center" class="style103 style105 style126 style139"><strong>OBSERVA&Ccedil;&Atilde;O</strong></div></td>
<td width="7%" bgcolor="#000033"><div align="center" class="style103 style105 style126 style139"><strong>VALOR UNIT.</strong></div></td>
<td width="6%" bgcolor="#000033"><div align="center" class="style103 style105 style126 style139"><strong>VALOR TOTAL</strong></div></td>
</tr>
<%
i = 1
while (not gerar_os_itens.EOF)
%>
<tr>
<td><a href="java script:deletar(<%=gerar_os_itens("id")%>)"><img src="img/exclui.gif" width="14" height="14" border="0"></a></td>
<td><div align="center">
<span class="style35">
<input name="id_<%=i%>" type="hidden" class="style146" id="id_<%=i%>" value="<%=gerar_os_itens("id")%>" size="5">
</span>
<input name="quant_<%=i%>" type="text" class="campos" id="quant_<%=i%>" onKeyUp="java script:total1(quant_<%=i%>,v_unitario_<%=i%>,v_total_<%=i%>)" value="<%=gerar_os_itens("quant")%>" size="4" alt="integer"/>
</div></td>
<td><div align="center">
<input name="quant_entregue_<%=i%>" type="text" class="campos" id="quant_entregue_<%=i%>" value="<%=gerar_os_itens("quant_entregue")%>" size="4" alt="integer" onKeyUp="document.myForm.quant_pendente_<%=i%>.value = subtracao(document.myForm.quant_<%=i%>.value, document.myForm.quant_entregue_<%=i%>.value);"/>
</div></td>
<td><div align="center">
<input name="data_entregue_<%=i%>" type="text" class="forma_pag1" id="data_entregue_<%=i%>" onBlur="java script:total1(quant_<%=i%>,v_unitario_<%=i%>,v_total_<%=i%>)" value="<%=gerar_os_itens("data_entregue")%>" size="7" alt="date"/>
</div></td>
<td><div align="center">
<input name="quant_pendente_<%=i%>" type="text" class="campos" id="quant_pendente_<%=i%>" onBlur="java script:total1(quant_<%=i%>,v_unitario_<%=i%>,v_total_<%=i%>)" value="<%=gerar_os_itens("quant_pendente")%>" size="4" alt="integer"/>
</div></td>
<td><div align="center"><span class="style14">
<label></label>
</span><strong>
<select name="sistema_<%=i%>" class="form2" id="sistema_<%=i%>">
<option value="">::SELECIONE::</option>
<%
While (NOT sist1.EOF)
%>
<option value="<%=sist1("PRODUTO")%>" <%if sist1 ("PRODUTO") = gerar_os_itens ("sistema") then response.Write("selected")%>><%=sist1("PRODUTO")%> | QUANT. ESTQ.: <%=sist1("quant")%></option>
<%
sist1.MoveNext()
Wend
If (sist1.CursorType > 0) Then
sist1.MoveFirst
Else
sist1.Requery
End If

prod_pendente = gerar_os_itens("prod_pendente")
%>
</select>
</strong>
<label></label>
</div>
</label></td>
<td><div align="center"><a href="#" onClick="abrir_pop('no_serie_prods.asp?no_os=<%=gerar_os_itens("no_os")%>&id=<%=gerar_os_itens("id")%>&amp;id_cliente=<%=id_cliente%>','600','200','scrollbars=yes')"><img src="img/anotacao.gif" width="18" height="19" border="0"></a></div></td>
<td><div align="center">
<input name="opt1_<%=i%>" type="checkbox" id="opt1_<%=i%>" value="1" <%if prod_pendente = "1" then response.Write("checked")%> onClick="calculo(this,v_total_<%=i%>,sub_total)">
</div></td>
<td><div align="center">
<label>
<textarea name="obs_prod_<%=i%>" cols="30" rows="1" class="campos" id="obs_prod_<%=i%>"><%=gerar_os_itens("obs_prod")%></textarea>
</label>
</div></td>
<td><div align="center">
<input name="v_unitario_<%=i%>" type="text" class="form2" id="v_unitario_<%=i%>" onKeyUp="java script:total1(quant_<%=i%>,v_unitario_<%=i%>,v_total_<%=i%>)" value="<%=ROUND(gerar_os_itens("v_unitario"),2)%>" size="8" alt="decimal" />
</div></td>
<td><div align="center">
<input name="v_total_<%=i%>" type="text" class="form2" id="v_total_<%=i%>" value="<%=ROUND(gerar_os_itens("v_total"),2)%>" size="8" alt="decimal"/>
</div></td>
</tr>
<%
gerar_os_itens.MoveNext()
i = i + 1
wend

Set oConn1 = Server.CreateObject("ADODB.Connection")
oConn1.Open("DRIVER={Firebird/Interbase® driver}; DBNAME=localhost:c:\Inetpub\wwwroot\sistema_interno_hcs_v.1.0\bd\BD_HCS.GDB; UID=SYSDBA;PWD=masterkey")

sub_total = Request.QueryString("sub_total")
custo_envio = Request.QueryString("custo_envio")
outros = Request.QueryString("outros")
total_geral = Request.QueryString("total_geral")
transporte = Request.QueryString("transporte")

set gerar_os_itens_2 = server.CreateObject("adodb.recordset")
set gerar_os_itens_2 = oConn1.execute ("select * from TB_GERAR_OF_OM_CAD_ITENS where no_os = '"&request.QueryString("no_os")&"' order by id ASC")

sel_transp = gerar_os_itens_2("transporte")
outras = Request.QueryString("outras")
tipo_coleta = gerar_os_itens_2("tipo_coleta")
%>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="1">
<tr>
<td width="8%" rowspan="4"><label><span class="style165"><strong><strong><strong><strong>
<input name="qtdeCampos" value="<%=i%>" id="qtdeCampos" type="hidden" size="5">
</strong></strong></strong>TIPO COLETA: </strong></span></label></td>
<td width="13%" rowspan="4"><span class="style35">(
<label>
<input type="radio" name="opt2" id="radio" value="1" <%if tipo_coleta = "1" then response.Write("checked")%>/>
</label>
<label></label>
) CLIENTE AGUARDA<br>

(
<label>
<input type="radio" name="opt2" id="radio2" value="2" <%if tipo_coleta = "2" then response.Write("checked")%>/>
</label>
<label></label>
) RETIRA<br>
(
<label>
<input type="radio" name="opt2" id="radio3" value="3" <%if tipo_coleta = "3" then response.Write("checked")%>/>
</label>
<label></label>
) SEDEX</span></td>
<td width="17%" rowspan="4"><span class="style35">(
<label>
<input type="radio" name="opt2" id="radio4" value="4" <%if tipo_coleta = "4" then response.Write("checked")%>/>
</label>
<label></label>
) MOTOBOY<br>
(
<label>
<input type="radio" name="opt2" id="radio5" value="5" <%if tipo_coleta = "5" then response.Write("checked")%>/>
</label>
<label></label>
) TRANSPORTADORA </span></td>
<td rowspan="4"><div align="right" class="style165">NOME TRANSPORTADORA:</div></td>
<td width="20%" rowspan="4"><input name="outras" type="text" class="botao" id="outras" onBlur="remFinal(this.value,this)" onKeyUp="Muda(this)" value="<%=gerar_os_itens_2("outras")%>"/></td>
<td width="13%"><div align="right" class="style35"><strong>SUBTOTAL:&nbsp;</strong></div></td>
<td width="5%"> <div align="center">

<input name="sub_total" type="text" class="campos" id="sub_total" value="<%=gerar_os_itens_2("sub_total")%>" size="10" alt="decimal">
</div></td>
</tr>
<tr>
<td><div align="right" class="style35"><strong>CUSTO ENVIO:&nbsp; </strong></div></td>
<td><input name="custo_envio" type="text" class="campos" id="custo_envio" value="<%=gerar_os_itens_2("custo_envio")%>" size="10" onKeyUp="java script:total_geral1();" alt="decimal"/></td>
</tr>
<tr>
<td><div align="right" class="style35"><strong>OUTROS:&nbsp;</strong></div></td>
<td><input name="outros" type="text" class="campos" id="outros" value="<%=gerar_os_itens_2("outros")%>" size="10" onKeyUp="java script:total_geral1();" alt="decimal"/></td>
</tr>
<tr>
<td><div align="right" class="style35"><strong>VALOR TOTAL:&nbsp;</strong></div></td>
<td><input name="total_geral" type="text" class="form2" id="total_geral" value="<%=gerar_os_itens_2("total_geral")%>" size="10" alt="decimal"/></td>
</tr>
<tr>
<td colspan="7">
<%
ato = campos_cheque("ato")
dd30 = campos_cheque("dd30")
dd60 = campos_cheque("dd60")
dd90 = campos_cheque("dd90")
dd120 = campos_cheque("dd120")
%>
<table width="100%" height="24" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#CCCCCC">
<tr>
<td width="14%" bgcolor="#003366"><span class="style155 style35">FORMA DE PAGAMENTO:</span></td>
<td width="7%" bgcolor="#003366"><span class="style155 style35">&nbsp;ATO:
<label>
<input name="opt3" type="checkbox" id="opt3" value="x" <%if ato = "x" then response.Write("checked")%>>
</label>
</span></td>
<td width="7%" bgcolor="#003366"><span class="style155 style35">&nbsp;30:
<label>
<input name="opt4" type="checkbox" id="opt4" value="x" <%if dd30 = "x" then response.Write("checked")%>>
</label>
</span></td>
<td width="7%" bgcolor="#003366"><span class="style155 style35"> &nbsp;60:
<label>
<input name="opt5" type="checkbox" id="opt5" value="x" <%if dd60 = "x" then response.Write("checked")%>>
</label>
</span></td>
<td width="7%" bgcolor="#003366"><span class="style155 style35">&nbsp;90:
<label>
<input name="opt6" type="checkbox" id="opt6" value="x" <%if dd90 = "x" then response.Write("checked")%>>
</label>
</span></td>
<td width="8%" bgcolor="#003366"><span class="style155 style35">&nbsp;120:
<label>
<input name="opt7" type="checkbox" id="opt7" value="x" <%if dd120 = "x" then response.Write("checked")%>>
</label>
DIAS</span></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="4"><a href="java script:criar_campos_cheque('<%=campos_cheque("no_os")%>','<%=cadastro("nome_empresa")%>','<%=campos_cheque("id_cliente")%>')"><img src='control_estoque/img/46.gif' width='15' height='17' border='0' /></a>&nbsp;ADICIONAR CAMPOS P/ OP&Ccedil;&Atilde;O CHEQUE</td>
</tr>
<tr>
<td width="253"><div align="center" class="style154">TIPO PAGAMENTO:</div></td>
<td width="182"><div align="center" class="style154">DATA:</div></td>
<td width="206"><div align="center" class="style154">VALOR:</div></td>
<td width="532"><div align="center" class="style154">ANOTA&Ccedil;&Atilde;O:</div></td>
<%
i = 1
while (not campos_cheque.EOF)
%>
</tr>
<tr>
<td><div align="center"><strong>
<%
sel_forma = campos_cheque("forma_pagto")
%>
<span class="style35">
<input name="id_ch_<%=i%>" type="hidden" class="style146" id="id_ch_<%=i%>" value="<%=campos_cheque("id_ch")%>" size="5">
</span>
<select name="forma_pagto_<%=i%>" class="form2" id="forma_pagto_<%=i%>" >
<option value="0" <%if sel_forma = "0" then response.Write("selected")%>>A DEFINIR</option>
<option value="1" <%if sel_forma = "1" then response.Write("selected")%>>BOLETO</option>
<option value="2" <%if sel_forma = "2" then response.Write("selected")%>>CARTÃO BNDES</option>
<option value="3" <%if sel_forma = "3" then response.Write("selected")%>>CHEQUE</option>
<option value="4" <%if sel_forma = "4" then response.Write("selected")%>>COBRANÇA MENSAL</option>
<option value="5" <%if sel_forma = "5" then response.Write("selected")%>>DEPÓSITO</option>
<option value="6" <%if sel_forma = "6" then response.Write("selected")%>>DINHEIRO</option>
<option value="7" <%if sel_forma = "7" then response.Write("selected")%>>OUTROS</option>
<option value="8" <%if sel_forma = "8" then response.Write("selected")%>>TRANSFERÊNCIA</option>
</select>
</strong></div></td>
<td><div align="center">
<span id="pop1" style="position:absolute; left: 382px; top: 444px;"></span>
<input name="data_venc_pagto_<%=i%>" type="text" class="forma_pag1" id="data_venc_pagto_<%=i%>" onKeyUp="barra(this)" value="<%=campos_cheque("data_venc_pagto")%>" size="7" maxlength="10"/>
</div>
</label></td>
<td><div align="center">
<input name="valor_pagto_<%=i%>" type="text" class="botao" id="valor_pagto_<%=i%>" value="<%=ROUND(campos_cheque("valor_pagto"),2)%>" size="10" alt="decimal">
</div>
</label></td>
<td><div align="center">
<textarea name="anotacao1_<%=i%>" cols="50" rows="1" class="botao" id="anotacao1_<%=i%>"><%=campos_cheque("anotacao1")%></textarea>
</div>
</label></td>
</tr>
<%
campos_cheque.MoveNext()
i = i + 1
wend
%>
</table></td>
</tr>
<tr>
<td colspan="7"><div align="center">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><div align="center"><font color="#FFFFFF">
<input name="button" type="submit" class="form1" id="button" value=" INCLUIR ">
</font></div></td>
</tr>
</table>
</div></td>
</tr>
</table></td>
</tr>
</table>
</fieldset></td>
</tr>
</table>
</form></td>
</tr>
<div id="calendarDiv"></div>
</table>
</div>
</body>
</html>
<%
nome.Close()
Set nome = Nothing
%>[/codebox]

Muito Obrigado

Link para o comentário
Compartilhar em outros sites

  • 0

E ai beleza.

Cara, não encontrei o checkbox que você falou, mas pelo que entendi, se você subtrair o valor apenas do subtotal o total geral será recalculado.

O que você pode fazer é:

//Cálculo do sub_total
var qtdC = document.myForm.qtdeCampos.value - 1;
var tot = 0;
for (var i=1; i<=qtdC; i++){
if ( document.getElementById('v_total_' + String(i)).value ){
tot = parseFloat(document.getElementById('v_total_' + String(i)).value.replace(',', '.'));

if (document.form[0].PROD_PENDENTE.checked == false){
sub_total = sub_total + tot;
}
else
{
sub_total = sub_total - tot;
}
}
}

Espero que ajude.

At.

Link para o comentário
Compartilhar em outros sites

  • 0

O codigo fiz assim:

function calculo(marca,campo,sub_total)
{
 var qtdC = document.myForm.qtdeCampos.value - 1;
  var tot = 0;
 for (var i=1; i<=qtdC; i++){
if ( document.getElementById('v_total_' + String(i)).value ){
tot = parseFloat(document.getElementById('v_total_' + String(i)).value.replace(',', '.'));

if (document.myForm[0].prod_pendente.checked == false){
sub_total = sub_total + tot;
}
else
{
sub_total = sub_total - tot;
}
}
O checkbox é esse:
<input name="opt1_<%=i%>" type="checkbox" id="opt1_<%=i%>" value="1" <%if prod_pendente = "1" then response.Write("checked")%> onClick="calculo(this,v_total_<%=i%>,sub_total)">

Só que da um erro:

calculo is not defined

Obrigado

:unsure:

Editado por fercosmig
add tag's :: fercosmig
Link para o comentário
Compartilhar em outros sites

  • 0

E ai beleza.

O nome do checkbox não é "prod_pendente". Para evitar esse erro vamos capturá-lo.

Muda o evento onclick do checbox

de:

onClick="calculo(this,v_total_<%=i%>,sub_total)"
Para:
onClick="calculo(this.name,v_total_<%=i%>,sub_total)">
E acerta o if como abaixo incuindo essa primeira linha.
var opcao = document.getElementById(marca).checked;

if (opcao == false){
sub_total = sub_total + tot;
}
else
{
sub_total = sub_total - tot;
}
}

At.

Link para o comentário
Compartilhar em outros sites

  • 0

Coloquei assim:

//Cálculo do sub_total
function calculo(marca,campo,sub_total,prod_pendente)
{
 var qtdC = document.myForm.qtdeCampos.value - 1;
  var tot = 0;
 for (var i=1; i<=qtdC; i++){
if ( document.getElementById('v_total_' + String(i)).value ){
tot = parseFloat(document.getElementById('v_total_' + String(i)).value.replace(',', '.'));

var opcao = document.getElementById(marca).checked;

if (opcao == false){
sub_total = sub_total + tot;
}
else
{
sub_total = sub_total - tot;
}
}
E no checkbox assim:
<input name="opt1_<%=i%>" type="checkbox" id="opt1_<%=i%>" value="1" <%if prod_pendente = "1" then response.Write("checked")%> onClick="calculo(this.name,v_total_<%=i%>,sub_total)">
Mas da o erro:
calculo is not defined

Obrigado

:wacko:

Link para o comentário
Compartilhar em outros sites

  • 0

Não sei o porque coloquei prod_pendente na chamada, rsrs.

Mas mesmo eu tirando da erro:

calculo is not defined
A função tá assim:
function calculo(marca,campo,sub_total)
{
 var qtdC = document.myForm.qtdeCampos.value - 1;
  var tot = 0;
 for (var i=1; i<=qtdC; i++){
if ( document.getElementById('v_total_' + String(i)).value ){
tot = parseFloat(document.getElementById('v_total_' + String(i)).value.replace(',', '.'));

var opcao = document.getElementById(marca).checked;

if (opcao == false){
sub_total = sub_total + tot;
}
else
{
sub_total = sub_total - tot;
}
}

if (document.myForm[0].prod_pendente.checked == false){
sub_total = sub_total + tot;
}
else
{
sub_total = sub_total - tot;
}
E o checkbox:
<input name="opt1_<%=i%>" type="checkbox" id="opt1_<%=i%>" value="1" <%if prod_pendente = "1" then response.Write("checked")%> onClick="calculo(this.name,v_total_<%=i%>,sub_total)">

Muito Obrigado

Link para o comentário
Compartilhar em outros sites

  • 0

Cara, agora só resta debugar.

Coloque alert() para verificarmos se as variaveis estão sendo preenchidos corretamente.

function calculo(marca,campo,sub_total)
{
var qtdC = document.myForm.qtdeCampos.value - 1;
var tot = 0;
for (var i=1; i<=qtdC; i++){
if ( document.getElementById('v_total_' + String(i)).value ){
tot = parseFloat(document.getElementById('v_total_' + String(i)).value.replace(',', '.'));

alert(tot); // para verificarmos se a quantidade a ser + ou - esta sendo informada
alert(sub_total); // Para verificarmos se o valor do subtotal está correto

var opcao = document.getElementById(marca).checked;

alert(opcao); // para verificarmos se o tot vai ser + ou -

if (opcao == false){
sub_total = sub_total + tot;
}
else
{
sub_total = sub_total - tot;
}

alert(sub_total); //para verificar o resultado do subtotal

}

Link para o comentário
Compartilhar em outros sites

  • 0

Estava olhando o codigo e verifiquei outra coisa.

O valor de tot está NAN porque voce tem que ler o documento com ".value". Outra coisa, o que a variavel "campo" faz na função ?

tot = parseFloat(document.getElementById('v_total_' + String(i)).value.replace(',', '.').value);
Fiz um script só para teste. Dá uma olhada
<html>
<script>
function calculo(marca,campo,sub_total)
{
tot = parseFloat(document.getElementById("idName").value);
alert(tot); // para verificarmos se a quantidade a ser + ou - esta sendo informada
alert(sub_total); // Para verificarmos se o valor do subtotal está correto

var opcao = document.getElementById(marca).checked;

alert(opcao); // para verificarmos se o tot vai ser + ou -

if (opcao == false){
sub_total = sub_total + tot;
}
else
{
sub_total = sub_total - tot;
}
alert(sub_total); //para verificar o resultado do subtotal
}
</script>

<body>
<form name="asd">
<input type="text" id="idName" value="100">
<input type="checkbox" name="check" onClick="calculo(this.name,0,560)">

</body>
</html>

Link para o comentário
Compartilhar em outros sites

  • 0

É não vai não.

<input name="opt1_<%=i%>" type="checkbox" id="opt1_<%=i%>" value="1" <%if prod_pendente = "1" then response.Write("checked")%> onClick="calculo(this.name,v_total_<%=i%>,sub_total)">

//Cálculo do sub_total
function calculo(marca,v_total,sub_total)
{
tot = parseFloat(document.getElementById("idName").value);
alert(tot); // para verificarmos se a quantidade a ser + ou - esta sendo informada
alert(sub_total); // Para verificarmos se o valor do subtotal está correto

var opcao = document.getElementById(marca).checked;

alert(opcao); // para verificarmos se o tot vai ser + ou -

if (opcao == false){
sub_total = sub_total + tot;
}
else
{
sub_total = sub_total - tot;
}
alert(sub_total); //para verificar o resultado do subtotal
}
Da o erro:
document.getElementById("idName") is null
tot = parseFloat(document.getElementById("idName").value);

Muito Obrigado

:unsure:

Link para o comentário
Compartilhar em outros sites

  • 0

Não. você não entendeu.

Era para apenas incluir o .value no final da atribuição da variavel tot

Abaixo segue o script já atualizado.

O script tem que dar 4 alertas.

1 - valor da variavel "tot"

2 - valor da variavel "sub_total"

3 - true ou false - se for true irá subtrair o valor de tot da sub_total

4 - resultado final

function calculo(marca,campo,sub_total)

{

var qtdC = document.myForm.qtdeCampos.value - 1;

var tot = 0;

for (var i=1; i<=qtdC; i++){

if ( document.getElementById('v_total_' + String(i)).value ){

tot = parseFloat(document.getElementById('v_total_' + String(i)).value.replace(',', '.').value);

alert(tot); // para verificarmos se a quantidade a ser + ou - esta sendo informada

alert(sub_total); // Para verificarmos se o valor do subtotal está correto

var opcao = document.getElementById(marca).checked;

alert(opcao); // para verificarmos se o tot vai ser + ou -

if (opcao == false){

sub_total = sub_total + tot;

}

else

{

sub_total = sub_total - tot;

}

alert(sub_total); //para verificar o resultado do subtotal

}

Link para o comentário
Compartilhar em outros sites

  • 0

Fiz uns testes aqui é funcionou, mas para isso tive que fazer algumas alterações.

Outra coisa importante é você ter um backup do código original para que o mesmo possa ser recuperado caso haja algum problema.

Inclui um input tipo hidden com o mesmo valor do campo total de cada item para manter armazenado o valor. quando o checkbox for desmarcado usamos o valor deste hidden para recuperar o valor do item.

O nome e o id receberam um "h" no final.

Original - <input name="v_total_1" type="text" class="form2" id="v_total_1" value="200000" size="8" alt="decimal"/>

Novo - <input name="v_total_1h" type="hidden" class="form2" id="v_total_1h" value="200000" size="8" alt="decimal"/>

E abaixo segue o script.

<script LANGUAGE="JavaScript">

function calculo(marca,sub_total)

{

var texto = marca.replace('opt1_', '')

var val1 = document.getElementById('quant_' + texto);

var val2 = document.getElementById('v_unitario_' + texto);

var val3 = document.getElementById('v_total_' + texto);

var opcao = document.getElementById(marca).checked;

if(opcao == true)

{

document.getElementById('v_total_'+ texto).value = 0.00;

document.myForm.sub_total.value = isTrunc(parseFloat(document.myForm.sub_total.value.replace(',', '.')) - parseFloat(document.getElementById('v_total_'+ texto + 'h').value.replace(',', '.')/100) , 2);

total_geral1();

}

else

{

document.getElementById('v_total_'+ texto).value = isTrunc(parseFloat(document.getElementById('v_total_'+ texto + 'h').value.replace(',', '.')/100), 2);

total1(val1,val2,val3);

total_geral1();

}

sub_total = 0.00;

var qtdC = document.myForm.qtdeCampos.value - 1;

var tot = 0;

for (var i=1; i<=qtdC; i++){

if ( document.getElementById('v_total_' + String(i)).value ){

tot = parseFloat(document.getElementById('v_total_' + String(i)).value.replace(',', '.'));

sub_total = sub_total + tot;

}

}

}

</SCRIPT>

Link para o comentário
Compartilhar em outros sites

  • 0

Boa tarde lobismano

Então eu coloquei aqui assim os campos e colei no meu codigo a função que você me passou:

<input name="v_total_1h" type="hidden" class="form2" id="v_total_1h" value="200000" size="8" alt="decimal"/>

<input name="opt1_<%=i%>" type="checkbox" id="opt1_<%=i%>" value="1" <%if prod_pendente = "1" then response.Write("checked")%> onClick="calculo(this.name,v_total_<%=i%>,sub_total)">

PAGINA

Só que estava testando ele 0 o campo v_total e não posso 0 o campo v_total preciso que quando marca o checkbox ele subtrai o valor do sub_total e total_geral e continua o valor no campo v_total ai ao desmarcar ele faz a soma do v_total + sub_total = total_geral

E uma outra coisa nesta pagina tem 5 itens ele so faz a subtração no primeiro item.

Olha lobismano fico muito agradecido pela sua ajuda.

:blush:

Editado por PRWEBMaster
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...