Exemplo n.º 1
0
        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");
            }
        }
Exemplo n.º 2
0
        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");
            }
        }
Exemplo n.º 3
0
        /*
         * 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");
        }
Exemplo n.º 4
0
        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;
        }