Ejemplo n.º 1
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";
            }
        }