예제 #1
0
        private void janela_EditarDocumento(JanelaRastro janela, RastroItem rastro)
        {
            if (rastro == null)
            {
                MessageBox.Show(
                    ParentForm,
                    "Por favor, antes de escolher editar documento, selecione o documento a ser editado.",
                    "Editar documento",
                    MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                UseWaitCursor = true;
                AguardeDB.Mostrar();
                Application.DoEvents();

                try
                {
                    Entidades.Relacionamento.RelacionamentoAcerto relacionamento = rastro.ObterRelacionamento();

                    if (relacionamento == null)
                    {
                        MessageBox.Show(
                            ParentForm,
                            "Não foi possível carregar o relacionamento do item selecionado.",
                            "Editar documento",
                            MessageBoxButtons.OK, MessageBoxIcon.Error);

                        return;
                    }

                    switch (rastro.Tipo)
                    {
                        case RastroItem.TipoEnum.Venda:
                            BaseEditarVenda baseInferiorVenda = new BaseEditarVenda();
                            baseInferiorVenda.Abrir(relacionamento);
                            SubstituirBase(baseInferiorVenda);
                            break;

                        case RastroItem.TipoEnum.Saída:
                            SaídaBaseInferior baseInferiorSaída = new SaídaBaseInferior();
                            baseInferiorSaída.Abrir(relacionamento);
                            SubstituirBase(baseInferiorSaída);
                            break;
                        case RastroItem.TipoEnum.Retorno:
                            RetornoBaseInferior baseInferiorRetorno = new RetornoBaseInferior();
                            baseInferiorRetorno.Abrir(relacionamento);
                            SubstituirBase(baseInferiorRetorno);
                            break;
                        default:
                            throw new Exception("Tipo inexistente");
                    }
                }
                finally
                {
                    AguardeDB.Fechar();
                    UseWaitCursor = false;
                }
            }
        }
예제 #2
0
        public static void PreencherRastro(Entidades.Mercadoria.Mercadoria mercadoria, Pessoa.Pessoa pessoa, List<RastroItem> lista, List<long> códigosRetornos)
        {
            IDbConnection conexão;
            IDataReader leitor = null;

            if (códigosRetornos.Count == 0)
                return;

            conexão = Conexão;

            lock (conexão)
            {
                Usuários.UsuárioAtual.GerenciadorConexões.RemoverConexão(conexão);
                using (IDbCommand cmd = conexão.CreateCommand())
                {
   
                    cmd.CommandText = "select retorno.data, retorno.codigo, sum(retornoitem.quantidade) as qtd from retorno "
                    + ", retornoitem WHERE retornoitem.retorno=retorno.codigo "
                    + " AND referencia=" + DbTransformar(mercadoria.ReferênciaNumérica);

                    if (mercadoria.DePeso)
                        cmd.CommandText += " AND peso=" + DbTransformar(mercadoria.Peso);

                    cmd.CommandText += " AND retorno.codigo IN "
                        + DbTransformarConjunto(códigosRetornos);

                    cmd.CommandText += " GROUP BY retorno.codigo, referencia, peso HAVING qtd != 0 ORDER by data";

                    try
                    {
                        using (leitor = cmd.ExecuteReader())
                        {

                            while (leitor.Read())
                            {
                                DateTime data = leitor.GetDateTime((int)OrdemRastro.Data);
                                long documento = leitor.GetInt64((int)OrdemRastro.Documento);
                                double qtd = leitor.GetDouble((int)OrdemRastro.Quantidade);

                                RastroItem rastro = new RastroItem(RastroItem.TipoEnum.Retorno, data, documento, qtd);
                                rastro.Documento = "Retorno #" + documento.ToString();
                                lista.Add(rastro);
                            }

                        }
                    }
                    finally
                    {
                        if (leitor != null)
                            leitor.Close();

                        Usuários.UsuárioAtual.GerenciadorConexões.AdicionarConexão(conexão);
                    }
                }
            }
        }
예제 #3
0
        public static void PreencherRastro(Entidades.Mercadoria.Mercadoria mercadoria, Pessoa.Pessoa pessoa, List<RastroItem> lista, List<long> códigoVendas)
        {
            IDbConnection conexão;
            IDataReader leitor = null;

            if (códigoVendas.Count == 0)
                return;

            conexão = Conexão;

            using (IDbCommand cmd = conexão.CreateCommand())
            {
                lock (conexão)
                {
                    Usuários.UsuárioAtual.GerenciadorConexões.RemoverConexão(conexão);
                  
                    try
                    {
                        cmd.CommandText = "select controle, venda.data, venda.codigo, sum(vendaitem.quantidade) as qtd from venda "
                        + ", vendaitem WHERE vendaitem.venda=venda.codigo "
                        + "AND acerto in (select codigo from acertoconsignado where dataefetiva is null) AND referencia=" + DbTransformar(mercadoria.ReferênciaNumérica);

                        if (mercadoria.DePeso)
                            cmd.CommandText += " AND peso=" + DbTransformar(mercadoria.Peso);

                        cmd.CommandText += " AND venda.codigo IN " + DbTransformarConjunto(códigoVendas);
                        cmd.CommandText += " GROUP BY venda.codigo, referencia, peso HAVING qtd != 0 ORDER by venda.data";

                        using (leitor = cmd.ExecuteReader())
                        {
                            while (leitor.Read())
                            {
                                DateTime data = leitor.GetDateTime((int)OrdemRastro.Data);
                                long documento = leitor.GetInt64((int)OrdemRastro.Documento);
                                double qtd = leitor.GetDouble((int)OrdemRastro.Quantidade);

                                RastroItem rastroItem = new Entidades.Acerto.RastroItem(RastroItem.TipoEnum.Venda, data, documento, qtd);

                                if (!leitor.IsDBNull((int)OrdemRastro.Controle))
                                    rastroItem.Documento = "Venda #" + leitor.GetInt64((int)OrdemRastro.Controle);
                                else
                                    rastroItem.Documento = "Venda sem cód. controle";

                                lista.Add(rastroItem);
                            }
                        }
                    }
                    finally
                    {
                        if (leitor != null)
                            leitor.Close();

                        Usuários.UsuárioAtual.GerenciadorConexões.AdicionarConexão(conexão);
                    }
                }
            }
        }