コード例 #1
0
ファイル: fCadItens.cs プロジェクト: ricardo-xavier/soft
        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;
        }