void CalculaPreco() { string produto = edtProduto.Text.Trim(); string subcod = edtSubCodigo.Text.Trim(); int qtde; int.TryParse(edtQtde.Text.Trim(), out qtde); if ((fornecedor.Length == 0) || (caracteristica.Length == 0) || (produto.Length == 0) || (tabela.Length == 0)) { return; } if (tabelas == null) { return; } preco_tabela = tabelas.Preco(fornecedor, tabela, produto, subcod); preco_unitario = preco_tabela; cOrcamentos orcamento = new cOrcamentos(); per_frete = cCaracteristicas.Frete(fornecedor, caracteristica); preco_formula = preco_unitario; Globais.CalculaFormula(ref preco_formula, formula, ipi, per_frete, 0); edtPrecoFormula.Text = preco_formula.ToString("#,###,##0.00"); if (qtde > 0) { edtPrecoTotal.Text = (Globais.Arredonda(preco_formula) * qtde).ToString("#,###,##0.00"); } }
void CalculaPreco() { string produto = edtProduto.Text.Trim(); string subcod = edtSubCodigo.Text.Trim(); int qtde; int.TryParse(edtQtde.Text.Trim(), out qtde); if ((produto.Length == 0) || (tabela.Length == 0)) { return; } if (tabelas == null) { return; } preco_tabela = tabelas.Preco(fornecedor, tabela, produto, subcod); if (ckbGenerico.Checked) { preco_tabela = Globais.StrToFloat(edtPrecoGenerico.Text); edtPrecoGenerico.Text = preco_tabela.ToString("#,###,##0.00"); } if (!item_especial) { preco_unitario = preco_tabela; preco_formula = preco_unitario; Globais.CalculaFormula(ref preco_formula, formula, ipi, per_frete, 0); edtPrecoFormula.Text = preco_formula.ToString("#,###,##0.00"); } else { if (!pedido) { preco_unitario = Globais.StrToFloat(edtPrecoFormula.Text); preco_formula = preco_unitario; } else { } } //preco_formula += (preco_formula * ipi / 100F); if (qtde > 0) { edtPrecoTotal.Text = (Globais.Arredonda(preco_formula) * qtde).ToString("#,###,##0.00"); } }
/* * private void calcula_itens(string fornecedor, DateTime data, short orcamento, string formula, float per_calculo, ref float per_recalculo) * { * FbCommand cmd = new FbCommand("select " + * " a.seq_item, " + * " a.qtd_item, " + * " a.idt_especial, " + * " a.vlr_preco, " + * " b.per_ipi " + * "from ITENS a, PRODUTOS b " + * "where a.cod_fornecedor='" + fornecedor + "' and " + * " a.dat_orcamento='" + data.ToString("M/d/yyyy") + "' and " + * " a.cod_orcamento=" + orcamento + " and " + * " a.cod_fornecedor=b.cod_parceiro and " + * " a.cod_produto=b.cod_produto and " + * " a.sub_codigo=b.sub_codigo " + * " order by a.seq_item", * Globais.bd); * float valor_recalculo = 0; * FbDataReader reader = cmd.ExecuteReader(CommandBehavior.Default); * while (reader.Read()) * { * short seq = (short)(!reader.IsDBNull(0) ? (int)reader.GetInt16(0) : 0); * short qtd = (short)(!reader.IsDBNull(1) ? (int)reader.GetInt16(1) : 0); * string especial = (reader.IsDBNull(2) ? reader.GetString(2) : ""); * float valor = (!reader.IsDBNull(3) ? (int)reader.GetFloat(3) : 0f); * float ipi = (!reader.IsDBNull(4) ? (int)reader.GetFloat(4) : 0f); * valor_recalculo = valor; * Globais.CalculaFormula(ref valor_recalculo, formula, 0); * per_recalculo = valor_recalculo * per_calculo / valor; * } * reader.Close(); * } */ void calcula() { cComissaoLimiar comissao_limiar = new cComissaoLimiar(); float tot_pedido = 0; float tot_valor = 0; float tot_calculo = 0; float tot_recalculo = 0; float tot_pago = 0; float tot_comissao = 0; float valor_pago = 0; float valor_pagar = 0; int n = 0; if (rbtVendedor.Checked || rbtFilial.Checked) { dgvCadastro.Columns["Vendedor"].HeaderText = "Vendedor"; } else { dgvCadastro.Columns["Vendedor"].HeaderText = "Consultor"; } dgvCadastro.Rows.Clear(); cCaracteristicas carac = new cCaracteristicas(); int isel = 0; foreach (DataGridViewRow sel in dgvSelecao.Rows) { if (!(bool)sel.Cells["S"].Value) { isel++; continue; } int i = dgvCadastro.Rows.Add(); DataGridViewRow row = dgvCadastro.Rows[i]; row.Cells["isel"].Value = isel; DateTime data = DateTime.Parse(sel.Cells["Data"].Value.ToString()); short orcamento = CodOrcamento(sel.Cells["Orçamento"].Value.ToString()); float valor = Globais.StrToFloat(sel.Cells["Valor"].Value.ToString()); string fornecedor = sel.Cells["Fornecedor Orçamento"].Value.ToString(); string caracteristica = sel.Cells["Característica"].Value.ToString(); string venpro = "", venser = "", conpro = "", conser = "", filpro = "", filser = ""; carac.FormulasComissao(fornecedor, caracteristica, ref venpro, ref venser, ref conpro, ref conser, ref filpro, ref filser); float sinal = Globais.StrToFloat(sel.Cells["Sinal"].Value.ToString()); int cod_pedido = Globais.StrToInt(sel.Cells["CodPedido"].Value.ToString()); float vlr_frete = Globais.StrToFloat(sel.Cells["Valor Frete"].Value.ToString()); float vlr_frete_item = 0; float per_frete = 0; if (vlr_frete > 0) { vlr_frete_item = cPedidos.RateiaFrete(fornecedor, data, orcamento, (short)cod_pedido, ref vlr_frete); } else { per_frete = cCaracteristicas.Frete(fornecedor, caracteristica); } float per_pago = 0; bool pago = false; string formula = ""; if (rbtVendedor.Checked) { pago = sel.Cells["IdtVendedor"].Value.ToString().Equals("S"); per_pago = Globais.StrToFloat(sel.Cells["PerVendedor"].Value.ToString()); row.Cells["Justificativa"].Value = sel.Cells["JusVendedor"].Value.ToString(); if (cod_pedido == 1) { formula = venpro; } else { formula = venser; } } if (rbtConsultor.Checked) { pago = sel.Cells["IdtConsultor"].Value.ToString().Equals("S"); per_pago = Globais.StrToFloat(sel.Cells["PerConsultor"].Value.ToString()); row.Cells["Justificativa"].Value = sel.Cells["JusConsultor"].Value.ToString(); if (cod_pedido == 1) { formula = conpro; } else { formula = conser; } } if (rbtFilial.Checked) { pago = sel.Cells["IdtFilial"].Value.ToString().Equals("S"); per_pago = Globais.StrToFloat(sel.Cells["PerFilial"].Value.ToString()); row.Cells["Justificativa"].Value = sel.Cells["JusFilial"].Value.ToString(); if (cod_pedido == 1) { formula = venpro; } else { formula = venser; } } float valor_pedido = valor; Globais.CalculaFormula(ref valor, formula, 0, per_frete, vlr_frete_item); isel++; float per_calculo = 0; if (rbtConsultor.Checked) { per_calculo = Globais.StrToFloat(sel.Cells["Comissão Consultor"].Value.ToString()); } else if (rbtFilial.Checked) { if (cod_pedido == 1) { per_calculo = Globais.StrToFloat(sel.Cells["Comissão Filial"].Value.ToString()); } else { per_calculo = 100; } } else { per_calculo = comissao_limiar.Calcula(fornecedor, caracteristica, valor, sinal); } row.Cells["PG"].Value = pago; float valor_recalculo = valor; float per_recalculo = per_calculo; if (formula.Length > 0) { //calcula_itens(fornecedor, data, orcamento, formula, per_calculo, ref per_recalculo); } //if ((per_pago == 0) && !pago_zerado) if ((per_pago == 0) && !pago) { per_pago = per_calculo; } float comissao = per_pago * valor / 100f; bool pg = row.Cells["PG"].Value != null?bool.Parse(row.Cells["PG"].Value.ToString()) : false; tot_pedido += valor_pedido; tot_valor += valor; tot_calculo += per_calculo; tot_recalculo += per_recalculo; tot_pago += per_pago; tot_comissao += comissao; if (!pg) { valor_pagar += comissao; } else { valor_pago += comissao; } n++; row.Cells["Fornecedor"].Value = sel.Cells["Fornecedor"].Value.ToString(); row.Cells["FornecedorOrcamento"].Value = sel.Cells["Fornecedor Orçamento"].Value.ToString(); row.Cells["Data"].Value = DateTime.Parse(sel.Cells["Data"].Value.ToString()).ToString("d/M/yyyy"); row.Cells["Orcamento"].Value = sel.Cells["Orçamento"].Value.ToString(); row.Cells["Pedido"].Value = sel.Cells["Ped"].Value.ToString(); row.Cells["CodPedido"].Value = sel.Cells["CodPedido"].Value.ToString(); row.Cells["Cliente"].Value = sel.Cells["Cliente"].Value.ToString(); if (rbtVendedor.Checked || rbtFilial.Checked) { row.Cells["Vendedor"].Value = sel.Cells["Vendedor"].Value.ToString(); } else { row.Cells["Vendedor"].Value = sel.Cells["Consultor"].Value.ToString(); } row.Cells["ValorPedido"].Value = valor_pedido.ToString("#,###,##0.00"); row.Cells["Valor"].Value = valor.ToString("#,###,##0.00"); row.Cells["Calculo"].Value = per_calculo.ToString("#0.00"); //row.Cells["Recalculo"].Value = per_recalculo.ToString("#0.00"); row.Cells["Pago"].Value = per_pago.ToString("#0.00"); row.Cells["Comissao"].Value = comissao.ToString("#,###,##0.00"); if (rbtVendedor.Checked) { edtJustificativa.Text = sel.Cells["JusVendedor"].Value.ToString(); } if (rbtConsultor.Checked) { edtJustificativa.Text = sel.Cells["JusConsultor"].Value.ToString(); } if (rbtFilial.Checked) { edtJustificativa.Text = sel.Cells["JusFilial"].Value.ToString(); } } edtTotPedido.Text = tot_pedido.ToString("#,###,##0.00"); edtTotValor.Text = tot_valor.ToString("#,###,##0.00"); if (n > 0) { edtTotCalculo.Text = (tot_calculo / n).ToString("#0.00"); //edtTotRecalculo.Text= (tot_recalculo / n).ToString("#0.00"); edtTotPago.Text = (tot_pago / n).ToString("#0.00"); } else { edtTotCalculo.Text = 0.ToString("#0.00"); //edtTotRecalculo.Text= (tot_recalculo / n).ToString("#0.00"); edtTotPago.Text = 0.ToString("#0.00"); } edtTotComissao.Text = tot_comissao.ToString("#,###,##0.00"); edtValorPago.Text = valor_pago.ToString("#,###,##0.00"); edtValorPagar.Text = valor_pagar.ToString("#,###,##0.00"); }
void FCadItensLoad(object sender, EventArgs e) { cControleAcesso acesso = new cControleAcesso(); acessoProdutos = Globais.bAdministrador || acesso.PermissaoPrograma(Globais.sUsuario, Globais.sFilial, 2, "fCadProdutos"); orcamento = new cOrcamentos(); per_frete = orcamento.Frete(fornecedor, data, cod_orcamento); orcamento.CarregaItens(dgvCadastro, fornecedor, data, cod_orcamento, formula, tabela); Colore(); if (pedido) { foreach (DataGridViewRow row in dgvCadastro.Rows) { DataGridViewCell cell; cell = row.Cells["Especial"]; if (cell.Value.ToString().Equals("S")) { cell = row.Cells["Preço Unitário"]; float preco = Globais.StrToFloat(cell.Value.ToString()); // desfaz formula Globais.DesfazFormula(ref preco, formula, ipi, per_frete, 0); /* * float fator=0; * for (int i=formula_orcamento.Trim().Length-4; i>=0; i-=4) * { * if (formula_orcamento[i] == 'x') * { * fator = (Globais.StrToFloat(formula_orcamento.Substring(i+1, 3)) - 1) * 100; * } * if (formula_orcamento.Substring(i, 4).CompareTo("+IPI") == 0) * { * fator = ipi; * } * else * { * fator = Globais.StrToFloat(formula_orcamento.Substring(i, 4)); * } * preco = (preco * 100) / (100 + fator); * } */ // refaz parte do pedido Globais.CalculaFormula(ref preco, formula, ipi, per_frete, 0); /* * for (int i=0; i<formula.Trim().Length; i+=4) * { * if (formula[i] == 'x') * { * fator = Globais.StrToFloat(formula.Substring(i+1, 3)); * preco *= fator; * continue; * } * if (formula.Substring(i, 4).CompareTo("+IPI") == 0) * { * fator = ipi; * preco += (preco * fator / (float)100); * } * else * { * fator = Globais.StrToFloat(formula.Substring(i, 4)); * preco += (preco * fator / (float)100); * } * } */ cell.Value = preco; cell = row.Cells["Preço"]; cell.Value = preco; } } } if (dgvCadastro.Rows.Count > 0) { AtualizaDadosLocal(0); } lblOrcamento.Text = "Orçamento: " + fornecedor.Trim() + " - " + data.ToString("d/M/yyyy") + " - " + cod_orcamento + " Cliente: " + cliente; tabelas = new cTabelas(); DesabilitaEdicao(); SetaEdicaoLocal(false); ultimo_produto = ""; ultimo_subcodigo = ""; col_sorted = ""; ord_sorted = SortOrder.Ascending; }