示例#1
0
        void InicializaValores()
        {
            edtCodigo.Text   = fornecedor;
            ckbData.Checked  = filtrar_data;
            udMesI.Value     = mesi;
            udMesF.Value     = mesf;
            edtAnoI.Text     = anoi.ToString();
            edtAnoF.Text     = anof.ToString();
            cbxUsuarios.Text = vendedor;
            if (vendedorAcao != null)
            {
                cbxUsuarios.Text = vendedorAcao;
            }
            edtCliente.Text   = cliente;
            edtConsultor.Text = consultor;
            cCaracteristicas caracteristicas = new cCaracteristicas();

            this.Cursor = Cursors.WaitCursor;
            cbxCaracteristicas.Items.Clear();
            caracteristicas.Carrega(cbxCaracteristicas, fornecedor);
            this.Cursor             = Cursors.Default;
            cbxCaracteristicas.Text = caracteristica;
            dtpCadastroI.Value      = cadastroI;
            dtpCadastroI.Checked    = idt_cadastroI == "S";
            dtpCadastroF.Value      = cadastroF;
            dtpCadastroF.Checked    = idt_cadastroF == "S";
            edtResumo.Text          = resumo;
        }
示例#2
0
        void BtnItensClick(object sender, EventArgs e)
        {
            if (dgvCadastro.Rows.Count == 0)
            {
                return;
            }
            int              i               = dgvCadastro.CurrentRow.Index;
            short            codigo          = Globais.StrToShort(dgvCadastro.Rows[i].Cells["Cod"].Value.ToString());
            string           fornecedor      = dgvCadastro.Rows[i].Cells["Fornecedor"].Value.ToString();
            DateTime         data            = DateTime.Parse(dgvCadastro.Rows[i].Cells["Data"].Value.ToString());
            string           cliente         = dgvCadastro.Rows[i].Cells["Cliente"].Value.ToString();
            string           caracteristica  = dgvCadastro.Rows[i].Cells["Característica"].Value.ToString().Trim();
            cCaracteristicas caracteristicas = new cCaracteristicas();
            string           formula         = caracteristicas.Formula(fornecedor, caracteristica);
            frmCadItens      frm             = new frmCadItens();

            frm.fornecedor    = fornecedor;
            frm.data          = data;
            frm.cod_orcamento = codigo;
            frm.cliente       = cliente;
            frm.tabela        = dgvCadastro.Rows[i].Cells["Tabela"].Value.ToString();
            frm.formula       = formula;
            frm.pedido        = dgvCadastro.Rows[i].Cells["P"].Value.ToString().Trim().Equals("S");
            frm.ShowDialog();
            string chave = dgvCadastro.Rows[i].Cells["Chave"].Value.ToString().Trim();

            CarregaOrcamentos();
            Grid.Sort(dgvCadastro, col_sorted, ord_sorted);
            Grid.MarcaSelecionados(dgvCadastro);
            Grid.Posiciona(dgvCadastro, chave);
        }
        void FrmCadCaracteristicasLoad(object sender, EventArgs e)
        {
            caracteristicas = new cCaracteristicas();
            this.Cursor     = Cursors.WaitCursor;
            caracteristicas.Carrega(dgvCadastro, chkFiltroAtivos.Checked);

            cIntroducoes introducoes = new cIntroducoes();

            introducoes.Carrega(cbxIntroducoes);

            cInformacoesFornecimento informacoes = new cInformacoesFornecimento();

            informacoes.Carrega(cbxInformacoesFornecimento);

            cTermosAprovacao termos_aprovacao = new cTermosAprovacao();

            termos_aprovacao.Carrega(cbxTermosAprovacao);

            cCondicoesMontagem condicoes = new cCondicoesMontagem();

            condicoes.Carrega(cbxCondicoesMontagem);

            cTermosGarantia termos_garantia = new cTermosGarantia();

            termos_garantia.Carrega(cbxTermosGarantia);

            this.Cursor = Cursors.Default;
            SetaEdicaoLocal(false);
        }
示例#4
0
        void EdtCodigoTextChanged(object sender, EventArgs e)
        {
            cCaracteristicas caracteristicas = new cCaracteristicas();

            this.Cursor = Cursors.WaitCursor;
            cbxCaracteristicas.Items.Clear();
            caracteristicas.Carrega(cbxCaracteristicas, edtCodigo.Text);
            this.Cursor = Cursors.Default;
        }
示例#5
0
        void CarregaCaracteristicas()
        {
            cCaracteristicas caracteristicas = new cCaracteristicas();

            cbxCaracteristicas.Items.Clear();
            this.Cursor = Cursors.WaitCursor;
            caracteristicas.Carrega(cbxCaracteristicas, edtFornecedor.Text);
            this.Cursor = Cursors.Default;
        }
示例#6
0
        void CbxCaracteristicasSelectedIndexChanged(object sender, EventArgs e)
        {
            caracteristica = cbxCaracteristicas.SelectedItem.ToString().Trim();
            cCaracteristicas caracteristicas = new cCaracteristicas();

            formula = caracteristicas.Formula(fornecedor, caracteristica);
            float limiar = caracteristicas.Limiar(fornecedor, caracteristica);

            edtLimiar.Text = limiar.ToString("###0.00");
            CalculaPreco();
        }
示例#7
0
        void EdtFornecedorLeave(object sender, EventArgs e)
        {
            CarregaCaracteristicas();
            CarregaTabelas();
            cCaracteristicas caracteristicas = new cCaracteristicas();

            formula = caracteristicas.Formula(fornecedor, caracteristica);
            float limiar = caracteristicas.Limiar(fornecedor, caracteristica);

            edtLimiar.Text = limiar.ToString("###0.00");
        }
示例#8
0
        void EdtConsultorTextChanged(object sender, EventArgs e)
        {
            cCaracteristicas caracteristicas = new cCaracteristicas();
            float            per_comissao    = Globais.StrToFloat(edtPerConsultor.Text);

            if ((per_comissao == 0) && (acao == 'i') && (edtConsultor.Text.Trim().Length > 0))
            {
                per_comissao         = caracteristicas.ComissaoConsultor(edtFornecedor.Text, cbxCaracteristicas.Text);
                edtPerConsultor.Text = per_comissao.ToString("#0.00");
            }
            CalculaValores();
        }
示例#9
0
        void VerificaLimiar()
        {
            cCaracteristicas caracteristicas = new cCaracteristicas();
            float            limiar          = caracteristicas.Limiar(edtFornecedor.Text.Trim(), cbxCaracteristicas.Text.Trim());
            float            per             = Globais.StrToFloat(edtPercent.Text) + Globais.StrToFloat(edtPerConsultor.Text);

            if (per > limiar)
            {
                edtPercent.BackColor = Color.Red;
            }
            else
            if (per < limiar)
            {
                edtPercent.BackColor = Color.Green;
            }
            else
            {
                edtPercent.BackColor = Color.Yellow;
            }
        }
示例#10
0
        void SelecionaFornecedor()
        {
            if (edtFornecedor.Text.Trim().Length == 0)
            {
                return;
            }
            Parceiro parceiro = new Parceiro();

            if (!parceiro.Le(edtFornecedor.Text))
            {
                MessageBox.Show(edtFornecedor.Text, "Fornecedor não cadastrado", MessageBoxButtons.OK, MessageBoxIcon.Error);
                edtFornecedor.Focus();
                return;
            }
            cCaracteristicas caracteristicas = new cCaracteristicas();

            cbxCaracteristicas.Items.Clear();
            this.Cursor = Cursors.WaitCursor;
            caracteristicas.Carrega(cbxCaracteristicas, edtFornecedor.Text);
            this.Cursor = Cursors.Default;
            cTabelas tabelas = new cTabelas();

            this.Cursor = Cursors.WaitCursor;
            tabelas.Carrega(cbxTabelas, edtFornecedor.Text);
            this.Cursor = Cursors.Default;
            if (acao == 'a')
            {
                cbxTabelas.Text = tabela;
            }
            else
            {
                if (cbxTabelas.Items.Count > 0)
                {
                    cbxTabelas.Text = cbxTabelas.Items[cbxTabelas.Items.Count - 1].ToString();
                }
                else
                {
                    cbxTabelas.Text = "";
                }
            }
        }
示例#11
0
        void BtnCopiaClick(object sender, EventArgs e)
        {
            if (edtCodigo.Text.Trim().Length == 0)
            {
                MessageBox.Show("Código", "Campo obrigatório",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Warning);
                edtCodigo.Focus();
                return;
            }
            string           msg             = "";
            cCaracteristicas caracteristicas = new cCaracteristicas();

            novo_codigo = edtCodigo.Text.Trim();
            if (!caracteristicas.Copia(edtCodigo.Text.Trim(), parceiro, codigo_origem, formula, formula_pedido, consultor, vendedor, filial, limiar, observacao, racional, servico, ativo, dias, venpro, venser, conpro, conser, filpro, filser, frete, introducao, fornecimento, garantia, condicao, aceite, imprime_ipi, ref msg))
            {
                MessageBox.Show(edtCodigo.Text, "Erro na cópia da característica", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            Close();
        }
示例#12
0
        void BtnItensClick(object sender, EventArgs e)
        {
            if (!Confirma())
            {
                return;
            }
            acao = 'a';
            short       codigo     = Globais.StrToShort(edtCodigo.Text);
            string      fornecedor = edtFornecedor.Text;
            DateTime    data       = dtpData.Value;
            string      cliente    = edtCliente.Text;
            frmCadItens frm        = new frmCadItens();

            frm.pedido     = (pedido != null) && pedido.Equals("S");
            frm.fornecedor = fornecedor;
            cCaracteristicas caracteristicas = new cCaracteristicas();

            frm.formula       = caracteristicas.Formula(fornecedor, cbxCaracteristicas.Text);
            frm.data          = data;
            frm.cod_orcamento = codigo;
            frm.cliente       = cliente;
            frm.tabela        = cbxTabelas.Text;
            frm.ShowDialog();
            CalculaValores();
            string salva;

            salva                = edtPercent.Text;
            calculando           = true;
            edtPercent.Text      = "";
            calculando           = false;
            edtPercent.Text      = salva;
            salva                = edtPerConsultor.Text;
            calculando           = true;
            edtPerConsultor.Text = "";
            calculando           = false;
            edtPerConsultor.Text = salva;
        }
示例#13
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");
        }
示例#14
0
        public bool Gera(char tipo, string arquivo, string titulo, bool idt_inicial, DateTime data_inicial, bool idt_final, DateTime data_final, bool pagos, bool abertos)
        {
            FluxoCaixa fluxo = new FluxoCaixa();

            /*
             * PDF pdf = new PDF(arquivo);
             * pdf.Abre();
             * fluxo.Parte1(pdf, titulo, idt_inicial, data_inicial, idt_final, data_final);
             */

            FileStream fs     = new FileStream(arquivo, FileMode.Create);
            Document   doc    = new Document(PageSize.LETTER.Rotate());
            PdfWriter  writer = PdfWriter.GetInstance(doc, fs);

            doc.Open();
            PdfContentByte buf = writer.DirectContent;

            string periodo = "";

            if (idt_inicial || idt_final)
            {
                periodo = "Período: ";
                if (idt_inicial && idt_final)
                {
                    periodo += "de " + data_inicial.ToString("dd/MM/yyyy") + " até " + data_final.ToString("dd/MM/yyyy");
                }
                else
                {
                    if (idt_inicial)
                    {
                        periodo += "a partir de " + data_inicial.ToString("dd/MM/yyyy");
                    }
                    else
                    {
                        periodo += "até " + data_final.ToString("dd/MM/yyyy");
                    }
                }
            }

            if (pagos && !abertos)
            {
                Graficos.Cabecalho(doc, titulo + "- Pagos", periodo);
            }
            else
            if (!pagos && abertos)
            {
                Graficos.Cabecalho(doc, titulo + "- Abertos", periodo);
            }
            else
            {
                Graficos.Cabecalho(doc, titulo, periodo);
            }


            string where;
            string where2 = "";
            string col_cod;
            string col_per;

            if (tipo == 'v')
            {
                col_cod = "O.COD_VENDEDOR";
                col_per = "P.PER_VENDEDOR";
                if (pagos && abertos)
                {
                    where = "where P.DAT_PEDIDO is not null ";
                }
                else
                if (pagos)
                {
                    where = "where P.IDT_VENDEDOR = 'S' and P.DAT_PEDIDO is not null ";
                }
                else
                {
                    where = "where P.IDT_VENDEDOR <> 'S' and P.DAT_PEDIDO is not null ";
                }
            }
            else
            if (tipo == 'c')
            {
                col_cod = "O.COD_CONSULTOR";
                col_per = "P.PER_CONSULTOR";
                if (pagos && abertos)
                {
                    where = "where P.DAT_PEDIDO is not null ";
                }
                else
                if (pagos)
                {
                    where = "where P.IDT_CONSULTOR = 'S' and P.DAT_PEDIDO is not null ";
                }
                else
                {
                    where = "where P.IDT_CONSULTOR <> 'S' and P.DAT_PEDIDO is not null ";
                }
            }
            else
            {
                col_cod = "P.COD_FORNECEDOR";
                col_per = "0";
                where   = "where P.COD_PEDIDO = '1' and P.DAT_PEDIDO is not null ";
                where2  = "where P.COD_PEDIDO = '2' and P.DAT_PEDIDO is not null ";
            }
            if (idt_inicial || idt_final)
            {
                if (idt_inicial && idt_final)
                {
                    where  += "and (P.DAT_PEDIDO between '" + data_inicial.ToString("M/d/yyyy") + "' and '" + data_final.ToString("M/d/yyyy") + "') ";
                    where2 += "and (P.DAT_PEDIDO between '" + data_inicial.ToString("M/d/yyyy") + "' and '" + data_final.ToString("M/d/yyyy") + "') ";
                }
                else
                {
                    if (idt_inicial)
                    {
                        where  += "and (P.DAT_PEDIDO >= '" + data_inicial.ToString("M/d/yyyy") + "') ";
                        where2 += "and (P.DAT_PEDIDO >= '" + data_inicial.ToString("M/d/yyyy") + "') ";
                    }
                    else
                    {
                        where  += "and (P.DAT_PEDIDO <= '" + data_final.ToString("M/d/yyyy") + "') ";
                        where2 += "and (P.DAT_PEDIDO <= '" + data_final.ToString("M/d/yyyy") + "') ";
                    }
                }
            }
            string sql =
                "select " +
                col_cod + "," +
                "P.VLR_PEDIDO," +
                col_per + "," +
                "O.PER_CONSULTOR as PER_CONSULTOR_ORC," +
                "O.VLR_ORCAMENTO," +
                "O.VLR_DESCONTO," +
                "O.COD_CARACTERISTICA," +
                "C.PER_LIMIAR," +
                "C.PER_FILIAL," +
                "O.COD_FORNECEDOR," +
                "P.VLR_FRETE," +
                "C.PER_FRETE," +
                "P.DAT_ORCAMENTO," +
                "P.COD_ORCAMENTO," +
                "P.COD_PEDIDO " +
                "from PEDIDOS P " +
                "inner join ORCAMENTOS O " +
                "on O.COD_FORNECEDOR=P.COD_FORNECEDOR and O.DAT_ORCAMENTO=P.DAT_ORCAMENTO and O.COD_ORCAMENTO=P.COD_ORCAMENTO " +
                "inner join CARACTERISTICAS C " +
                "on C.COD_FORNECEDOR=O.COD_FORNECEDOR and C.COD_CARACTERISTICA=O.COD_CARACTERISTICA " +
                where;

            if (tipo == 'f')
            {
                sql = sql +
                      "union " +
                      "select " +
                      "'SERVICO-' || P.COD_FORNECEDOR," +
                      "P.VLR_PEDIDO," +
                      col_per + "," +
                      "O.PER_CONSULTOR as PER_CONSULTOR_ORC, " +
                      "O.VLR_ORCAMENTO," +
                      "O.VLR_DESCONTO," +
                      "O.COD_CARACTERISTICA," +
                      "C.PER_LIMIAR," +
                      "C.PER_FILIAL," +
                      "O.COD_FORNECEDOR," +
                      "P.VLR_FRETE," +
                      "C.PER_FRETE," +
                      "P.DAT_ORCAMENTO," +
                      "P.COD_ORCAMENTO," +
                      "P.COD_PEDIDO " +
                      "from PEDIDOS P " +
                      "inner join ORCAMENTOS O " +
                      "on O.COD_FORNECEDOR=P.COD_FORNECEDOR and O.DAT_ORCAMENTO=P.DAT_ORCAMENTO and O.COD_ORCAMENTO=P.COD_ORCAMENTO " +
                      "inner join CARACTERISTICAS C " +
                      "on C.COD_FORNECEDOR=O.COD_FORNECEDOR and C.COD_CARACTERISTICA=O.COD_CARACTERISTICA " +
                      where2;
            }
            sql = sql +
                  "order by 1";
            StreamWriter log = new StreamWriter("gerencial.log");

            log.WriteLine(sql);
            log.Flush();
            FbCommand    cmd    = new FbCommand(sql, Globais.bd);
            FbDataReader reader = cmd.ExecuteReader(CommandBehavior.Default);

            string    codigo;
            float     valor;
            float     percentual;
            string    ultimo     = "";
            float     total      = 0;
            ArrayList valores    = new ArrayList();
            ArrayList descricoes = new ArrayList();

            VendedorConsultor vendedor_consultor = null;
            ArrayList         lista     = new ArrayList();
            cOrcamentos       orcamento = new cOrcamentos();
            cComissaoLimiar   comissao  = new cComissaoLimiar();
            cCaracteristicas  carac     = new cCaracteristicas();

            while (reader.Read())
            {
                codigo     = reader.GetString(0);
                valor      = reader.GetFloat(1);
                percentual = reader.GetFloat(2);

                float  vlr_itens      = reader.GetFloat(4);
                float  vlr_desconto   = reader.GetFloat(5);
                string caracteristica = reader.GetString(6);
                float  limiar         = reader.GetFloat(7);
                string fornecedor     = reader.GetString(9);

                float    vlr_frete      = reader.IsDBNull(10) ? 0 : reader.GetFloat(10);
                float    per_frete      = reader.IsDBNull(11) ? 0 : reader.GetFloat(11);
                DateTime dat_orcamento  = reader.GetDateTime(12);
                short    cod_orcamento  = reader.GetInt16(13);
                short    cod_pedido     = reader.GetInt16(14);
                float    vlr_frete_item = 0;
                if (vlr_frete > 0)
                {
                    vlr_frete_item = cPedidos.RateiaFrete(fornecedor, dat_orcamento, cod_orcamento, cod_pedido, ref vlr_frete);
                }

                string venpro = "", venser = "", conpro = "", conser = "", filpro = "", filser = "";
                carac.FormulasComissao(fornecedor, caracteristica, ref venpro, ref venser, ref conpro, ref conser, ref filpro, ref filser);

                if (percentual == 0)
                {
                    if (tipo == 'v')
                    {
                        if (codigo.StartsWith("SERVICO-"))
                        {
                            //Globais.CalculaFormula(ref valor, venser, 0, per_frete, vlr_frete_item);
                        }
                        else
                        {
                            //Globais.CalculaFormula(ref valor, venpro, 0, per_frete, vlr_frete_item);
                        }
                        percentual = reader.GetFloat(3);                         // consultor
                        float vlr_orcamento = vlr_itens - vlr_desconto;
                        float sinal         = orcamento.CalculaSinal(fornecedor, caracteristica, vlr_itens, vlr_desconto, percentual, limiar);
                        percentual = comissao.Calcula(fornecedor, caracteristica, valor, sinal);
                    }
                    else
                    if (tipo == 'c')
                    {
                        if (codigo.StartsWith("SERVICO-"))
                        {
                            //Globais.CalculaFormula(ref valor, conser, 0, per_frete, vlr_frete_item);
                        }
                        else
                        {
                            //Globais.CalculaFormula(ref valor, conpro, 0, per_frete, vlr_frete_item);
                        }
                        percentual = reader.GetFloat(3);
                    }
                    else
                    {
                        if (codigo.StartsWith("SERVICO-"))
                        {
                            //Globais.CalculaFormula(ref valor, filser, 0, per_frete, vlr_frete_item);
                            percentual = 100;
                        }
                        else
                        {
                            //Globais.CalculaFormula(ref valor, filpro, 0, per_frete, vlr_frete_item);
                            percentual = reader.GetFloat(8);
                        }
                    }
                }
                if (!codigo.Equals(ultimo))
                {
                    if (!ultimo.Equals(""))
                    {
                        lista.Add(vendedor_consultor);
                    }
                    ultimo                        = codigo;
                    vendedor_consultor            = new VendedorConsultor();
                    vendedor_consultor.codigo     = codigo;
                    vendedor_consultor.vendas     = 0;
                    vendedor_consultor.percentual = 0;
                    vendedor_consultor.n          = 0;
                }
                vendedor_consultor.vendas     += valor;
                vendedor_consultor.percentual += percentual;
                if (percentual > 0.01)
                {
                    vendedor_consultor.n++;
                }
                total += valor;
                log.WriteLine(valor.ToString() + " " + total.ToString());
                log.Flush();
            }
            log.Close();
            if (!ultimo.Equals(""))
            {
                lista.Add(vendedor_consultor);
            }
            reader.Close();

            foreach (VendedorConsultor vc in lista)
            {
                valores.Add(vc.vendas);
                descricoes.Add(vc.codigo);
            }

            //if (valores.Count > 12)
            //{
            ArrayList valores12    = new ArrayList();
            ArrayList descricoes12 = new ArrayList();
            int       max          = valores.Count > 12 ? 11 : valores.Count;

            //for (int i=0; i<11; i++)
            for (int i = 0; i < max; i++)
            {
                float maior = -1;
                int   v = 0, imaior = -1;
                foreach (float vlr in valores)
                {
                    if (vlr > maior)
                    {
                        maior  = vlr;
                        imaior = v;
                    }
                    v++;
                }
                float  vmaior = float.Parse(valores[imaior].ToString());
                string dmaior = descricoes[imaior].ToString();
                valores12.Add(vmaior);
                descricoes12.Add(dmaior);
                valores.RemoveAt(imaior);
                descricoes.RemoveAt(imaior);
            }
            if (valores.Count > 12)
            {
                float voutros = 0;
                foreach (float vlr in valores)
                {
                    voutros += vlr;
                }
                valores12.Add(voutros);
                descricoes12.Add("OUTROS");
            }
            Graficos.Pizza(buf, valores12, descricoes12, 200, 250, 120);
            //}
            //else
            //Graficos.Pizza(buf, valores, descricoes, 200, 250, 120);
            doc.NewPage();

            Tabela table = new Tabela(tipo == 'f' ? 3 : 4);

            if (tipo == 'v')
            {
                fluxo.AdicionaCelula(table, "Vendedor", BaseFont.HELVETICA_BOLD, 8, iTextSharp.text.Color.LIGHT_GRAY, 1);
            }
            else
            if (tipo == 'c')
            {
                fluxo.AdicionaCelula(table, "Consultor", BaseFont.HELVETICA_BOLD, 8, iTextSharp.text.Color.LIGHT_GRAY, 1);
            }
            else
            {
                fluxo.AdicionaCelula(table, "Fornecedor", BaseFont.HELVETICA_BOLD, 8, iTextSharp.text.Color.LIGHT_GRAY, 1);
            }
            fluxo.AdicionaCelula(table, "Vendas", BaseFont.HELVETICA_BOLD, 8, iTextSharp.text.Color.LIGHT_GRAY, Element.ALIGN_RIGHT, 1);
            fluxo.AdicionaCelula(table, "% Total", BaseFont.HELVETICA_BOLD, 8, iTextSharp.text.Color.LIGHT_GRAY, Element.ALIGN_RIGHT, 1);
            if (tipo != 'f')
            {
                fluxo.AdicionaCelula(table, "Média Comissão", BaseFont.HELVETICA_BOLD, 8, iTextSharp.text.Color.LIGHT_GRAY, Element.ALIGN_RIGHT, 1);
            }
            foreach (VendedorConsultor vc in lista)
            {
                fluxo.AdicionaCelula(table, vc.codigo, BaseFont.HELVETICA, 8, Element.ALIGN_LEFT, 1);
                fluxo.AdicionaCelula(table, vc.vendas.ToString("#,###,##0.00"), BaseFont.HELVETICA, 8, Element.ALIGN_RIGHT, 1);
                fluxo.AdicionaCelula(table, (vc.vendas * 100 / total).ToString("#,###,##0.00"), BaseFont.HELVETICA, 8, Element.ALIGN_RIGHT, 1);
                if (tipo != 'f')
                {
                    fluxo.AdicionaCelula(table, (vc.percentual / vc.n).ToString("#,###,##0.00"), BaseFont.HELVETICA, 8, Element.ALIGN_RIGHT, 1);
                }
            }

            fluxo.AdicionaCelula(table, "Total", BaseFont.HELVETICA_BOLD, 8, Color.GRAY, 1);
            fluxo.AdicionaCelula(table, total.ToString("#,###,##0.00"), BaseFont.HELVETICA, 8, Color.GRAY, Element.ALIGN_RIGHT, 1);
            fluxo.AdicionaCelula(table, "", BaseFont.HELVETICA_BOLD, 8, Color.GRAY, tipo == 'f' ? 1 : 2);
            doc.Add(table);
            doc.Close();
            return(true);
        }
示例#15
0
        void BtnPedidoClick(object sender, EventArgs e)
        {
            if (dgvCadastro.Rows.Count == 0)
            {
                return;
            }
            int i = dgvCadastro.CurrentRow.Index;

            // pedidos com sinal negativo só podem ser gerados pelo administrador
            int sinal = int.Parse(dgvCadastro.Rows[i].Cells["Sinal"].Value.ToString());

            if ((sinal < 0) && !Globais.bAdministrador)
            {
                MessageBox.Show("Esse pedido precisa de autorização");
                return;
            }

            string   fornecedor     = dgvCadastro.Rows[i].Cells["Fornecedor"].Value.ToString().Trim();
            string   caracteristica = dgvCadastro.Rows[i].Cells["Característica"].Value.ToString().Trim();
            DateTime data           = DateTime.Parse(dgvCadastro.Rows[i].Cells["Data"].Value.ToString());
            short    codigo         = Globais.StrToShort(dgvCadastro.Rows[i].Cells["Cod"].Value.ToString());

            string especial = orcamento.Especial(fornecedor, data, codigo);

            if (especial.Equals("S") && !Globais.bAdministrador)
            {
                MessageBox.Show("Esse pedido precisa de autorização");
                return;
            }

            float  vlr_itens    = Globais.StrToFloat(dgvCadastro.Rows[i].Cells["Valor Itens"].Value.ToString());
            float  vlr_desconto = Globais.StrToFloat(dgvCadastro.Rows[i].Cells["Desconto"].Value.ToString());
            string cliente      = dgvCadastro.Rows[i].Cells["Cliente"].Value.ToString().Trim();

            cCaracteristicas caracteristicas = new cCaracteristicas();
            string           servico         = "";
            float            dif             = caracteristicas.DiferencaFormulas(fornecedor, caracteristica, data, codigo, ref servico);
            short            dias            = caracteristicas.DiasMontagem(fornecedor, caracteristica);

            cPedidos pedidos = new cPedidos();

            if (pedidos.Existe(fornecedor, data, codigo))
            {
                MessageBox.Show("Já existe pedido para esse orçamento", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            fGeraPedido frm = new fGeraPedido(dif, fornecedor, data, codigo, vlr_itens, vlr_desconto, servico, sinal, cliente, dias);

            frm.ShowDialog();
            if (frm.result)
            {
                string msg = "";
                if (!orcamento.AlteraStatus(fornecedor, data, codigo, 'F', ref msg))
                {
                    MessageBox.Show("Erro na alteração da situação\r\r" + msg);
                }
                if (!orcamento.AlteraPedido(fornecedor, data, codigo, 'S'))
                {
                    MessageBox.Show("Erro na alteração do IDT de pedido");
                }
                dgvCadastro.Rows[i].Cells["P"].Value        = 'S';
                dgvCadastro.Rows[i].Cells["Situação"].Value = "Fechado";
            }
        }
示例#16
0
        void FrmCadOrcamentoLoad(object sender, EventArgs e)
        {
            calculando = false;
            if (acao == 'i')
            {
                edtFornecedor.Text      = "";
                edtCodigo.Text          = "0";
                cbxUsuarios.Text        = "";
                edtCliente.Text         = "";
                edtContato.Text         = "";
                edtConsultor.Text       = "";
                cbxCaracteristicas.Text = "";
                cbxTabelas.Text         = "";
                edtResumo.Text          = "";
                edtObservacao.Text      = "";
                cbxSituacao.Text        = "";
                edtValor.Text           = "0,00";
                edtPercent.Text         = "0,00";
                edtDesconto.Text        = "0,00";
                edtTotal.Text           = "0,00";
                edtPerConsultor.Text    = "0,00";
                edtVlrConsultor.Text    = "0,00";
                //edtPercent.Enabled = false;
                //edtDesconto.Enabled = false;
            }

            cUsuarios usuarios = new cUsuarios();

            this.Cursor = Cursors.WaitCursor;
            usuarios.Carrega(cbxUsuarios);
            this.Cursor      = Cursors.Default;
            cbxUsuarios.Text = Globais.sUsuario;

            cSituacoes situacoes = new cSituacoes();

            situacoes.Carrega(cbxSituacao);
            //cbxSituacao.Items.Add("Em Andamento");
            //cbxSituacao.Items.Add("Cancelado");
            //cbxSituacao.Items.Add("Substituido");
            //cbxSituacao.Items.Add("Fechado");
            cbxSituacao.Text = "3 BAIXA Probabilidade";

            if (acao == 'a')
            {
                this.Text = "Alteração de Orçamento";
                if (pedido.CompareTo("S") == 0)
                {
                    cbxSituacao.Enabled     = false;
                    edtPercent.Enabled      = false;
                    edtDesconto.Enabled     = false;
                    edtPerConsultor.Enabled = false;
                    edtVlrConsultor.Enabled = false;
                }
                edtFornecedor.Enabled = false;
                cbxUsuarios.Text      = usuario;
                cCaracteristicas caracteristicas = new cCaracteristicas();
                cbxCaracteristicas.Items.Clear();
                this.Cursor = Cursors.WaitCursor;
                caracteristicas.Carrega(cbxCaracteristicas, edtFornecedor.Text);
                this.Cursor             = Cursors.Default;
                cbxCaracteristicas.Text = caracteristica;
                foreach (string item in cbxCaracteristicas.Items)
                {
                    if (item.Trim().CompareTo(caracteristica.Trim()) == 0)
                    {
                        cbxCaracteristicas.Text = item;
                        break;
                    }
                }
                VerificaLimiar();

                foreach (string s in cbxSituacao.Items)
                {
                    if (situacao == s.Substring(2))
                    {
                        cbxSituacao.Text = s;
                        break;
                    }
                }

                /*
                 * switch (situacao[0])
                 * {
                 *      case 'E': cbxSituacao.Text = "Em Andamento"; break;
                 *      case 'C': cbxSituacao.Text = "Cancelado"; break;
                 *      case 'S': cbxSituacao.Text = "Substituido"; break;
                 *      case 'F': cbxSituacao.Text = "Fechado"; break;
                 * }
                 */
                cTabelas tabelas = new cTabelas();
                this.Cursor = Cursors.WaitCursor;
                tabelas.Carrega(cbxTabelas, edtFornecedor.Text);
                this.Cursor     = Cursors.Default;
                cbxTabelas.Text = tabela;

                if (situacao[0] == 'F')
                {
                    cbxTabelas.Enabled         = false;
                    cbxCaracteristicas.Enabled = false;
                    if (!Globais.bAdministrador)
                    {
                        cbxSituacao.Enabled     = false;
                        edtPercent.Enabled      = false;
                        edtDesconto.Enabled     = false;
                        edtPerConsultor.Enabled = false;
                        edtVlrConsultor.Enabled = false;
                    }
                }
            }

            if (alteracaoRestrita)
            {
                edtFornecedor.Enabled      = false;
                dtpData.Enabled            = false;
                edtCodigo.Enabled          = false;
                cbxUsuarios.Enabled        = false;
                edtCliente.Enabled         = false;
                edtContato.Enabled         = false;
                edtConsultor.Enabled       = false;
                cbxCaracteristicas.Enabled = false;
                edtValor.Enabled           = false;
                edtPercent.Enabled         = false;
                edtDesconto.Enabled        = false;
                edtTotal.Enabled           = false;
                edtPerConsultor.Enabled    = false;
                edtVlrConsultor.Enabled    = false;
                btnFornecedor.Enabled      = false;
                btnCliente.Enabled         = false;
                btnConsultor.Enabled       = false;
                btnContato.Enabled         = false;
                btnLimpaConsultor.Enabled  = false;
                cbxTabelas.Enabled         = false;
                btnItens.Enabled           = false;

                edtResumo.Enabled     = true;
                edtObservacao.Enabled = true;
                cbxSituacao.Enabled   = true;
            }

            carregando = false;
        }