示例#1
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,Peso,Tipo_Mercadoria,Quantidade_Mercadoria,Nome_Mercadoria")] Mercadoria mercadoria)
        {
            if (id != mercadoria.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(mercadoria);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!MercadoriaExists(mercadoria.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(mercadoria));
        }
示例#2
0
        // GET: Mercadoria/Remover/5
        public ActionResult Remover(int id)
        {
            Mercadoria mercadoria = mercadoriaRepository.Recuperar(id);

            mercadoriaRepository.Remover(mercadoria);
            return(RedirectToAction("Index"));
        }
示例#3
0
		/// <summary>
		/// Obtém no banco de dados as várias imagems para referência informada
		/// e cria uma animação
		/// </summary>
		/// <param name="referênciaNumérica"></param>
		/// <returns></returns>
		public static Animação ObterAnimação(Mercadoria.Mercadoria mercadoria)
		{
            Console.WriteLine("Animação::ObterAnimação()");

			IDataReader   leitor = null;
			ArrayList     dados = new ArrayList();
			Animação      animação;
            IDbConnection 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 foto FROM foto WHERE mercadoria = " + DbTransformar(mercadoria.ReferênciaNumérica);

                    using (leitor = cmd.ExecuteReader())
                    {

                        try
                        {
                            while (leitor.Read())
                            {
                                /* Para minimizar o tempo com a conexão presa,
                                 * o processamento da imagem só será feito
                                 * após recuperar todos os dados do banco de dados,
                                 * liberando assim a conexão.
                                 * -- Júlio, 18/11/2005
                                 */
                                dados.Add(leitor.GetValue(0));
                            }
                        }
                        finally
                        {
                            if (leitor != null)
                                leitor.Close();

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

			if (dados.Count == 0)
				return null;

			animação = new Animação();

            foreach (byte[] objFoto in dados)
            {
                Image imagem = (Image)new DbFoto(objFoto);

                if (imagem != null)
                    animação.Imagens.Add(imagem);
            }

            Console.WriteLine("Fim Animação::ObterAnimação()");

			return animação;
		}
示例#4
0
        private async void BtnUpdate_Clicked(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(txtId.Text))
            {
                Mercadoria mercadoria = new Mercadoria()
                {
                    Id             = Convert.ToInt32(txtId.Text),
                    NomeMercadoria = txtNomeMercadoria.Text,
                    Peso           = txtPeso.Text,
                    NomeProdutor   = txtNomeProdutor.Text,
                    Email          = txtEmail.Text,
                    NCM            = txtNCM.Text
                };

                //Update Person
                await App.SQLiteDb.SaveItemAsync(mercadoria);

                Limpar();

                await DisplayAlert("Successo", "Mercadoria Atualizada", "OK");

                //Get All Persons
                var mercadoriaList = await App.SQLiteDb.GetItemsAsync();

                if (mercadoriaList != null)
                {
                    lstMercadorias.ItemsSource = mercadoriaList;
                }
            }
            else
            {
                await DisplayAlert("Erro", "É necessario o ID", "OK");
            }
        }
示例#5
0
        private async void BtnAdd_Clicked(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(txtNomeMercadoria.Text))
            {
                Mercadoria Mercadoria = new Mercadoria()
                {
                    NomeMercadoria = txtNomeMercadoria.Text,
                    Peso           = txtPeso.Text,
                    NomeProdutor   = txtNomeProdutor.Text,
                    Email          = txtEmail.Text,
                    NCM            = txtNCM.Text
                };

                //Add New Mercadoria
                await App.SQLiteDb.SaveItemAsync(Mercadoria);

                Limpar();

                await DisplayAlert("Successo", "Mercadoria Cadastrada", "OK");

                //Get All Mercadorias
                var mercadoriaList = await App.SQLiteDb.GetItemsAsync();

                if (mercadoriaList != null)
                {
                    lstMercadorias.ItemsSource = mercadoriaList;
                }
            }
            else
            {
                await DisplayAlert("Erro", "Insira os dados corretos", "OK");
            }
        }
示例#6
0
            static public UserControl VisualizarMercadoria(Mercadoria mercadoria)
            {
                var pg = new MercadoriaUC();

                pg.Mercadoria = (Mercadoria)mercadoria;
                return(pg);
            }
        public IActionResult Edit(int id, [Bind("Id,Nome,Descricao,Tipo,Fabricante")] Mercadoria mercadoria)
        {
            if (id != mercadoria.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _repo.Update(mercadoria);
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!_repo.MercadoriaExists(mercadoria.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            else
            {
                return(BadRequest());
            }
            //  return View(mercadoria);
        }
        public static List<VinculoMercadoriaComponenteCusto> ObterVinculos(Mercadoria mercadoria)
        {
            string consulta = "select * from vinculomercadoriacomponentecusto where "
            + "mercadoria=" + DbTransformar(mercadoria.ReferênciaNumérica);

            return Mapear<VinculoMercadoriaComponenteCusto>(consulta);
        }
        public static void GravarVinculos(List<VinculoMercadoriaComponenteCusto> lista, Mercadoria mercadoria)
        {
            string consulta = "delete from vinculomercadoriacomponentecusto where mercadoria=" + DbTransformar(mercadoria.ReferênciaNumérica) + ";";

            if (lista.Count != 0)
            {
                consulta += " INSERT INTO vinculomercadoriacomponentecusto (mercadoria, componentecusto, quantidade) VALUES (";
                bool primeiro = true;

                foreach (VinculoMercadoriaComponenteCusto v in lista)
                {
                    if (!primeiro)
                        consulta += "),(";
                    else
                        primeiro = false;

                    consulta += v.Mercadoria + "," + DbTransformar(v.Componente) + "," + DbTransformar(v.Quantidade);
                }

                consulta += ");";
            }

            IDbConnection conexão = Conexão;
            lock (conexão)
            {
                var cmd = conexão.CreateCommand();
                cmd.CommandText = consulta;
                cmd.ExecuteNonQuery();
            }
        }
示例#10
0
        public async Task <IActionResult> Editar(int id, [Bind("MercadoriaID,Nome,NumeroRegistro,Tipo,Fabricante,Quantidade,Descricao")] Mercadoria mercadoria)
        {
            if (id != mercadoria.MercadoriaID)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(mercadoria);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (mercadoria.MercadoriaID < 1)
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction("Index"));
            }
            return(View(mercadoria));
        }
示例#11
0
            static public UserControl VisualizarGrade(Mercadoria mercadoria)
            {
                var pg = new GradeViewUC();

                pg.GradesSelecionadas = mercadoria.Grade;
                return(pg);
            }
 public void CriarMercadoria(Mercadoria mercadoria, List <KeyValuePair <string, string> > tamanhos,
                             List <HttpPostedFileWrapper> arquivos)
 {
     mercadoria.Id = Guid.NewGuid();
     mercadoria.DataDeCadastramento = DateTime.Now;
     mercadoria.Produtos            = FabricaDeProduto.Instancia().CriarProdutos(tamanhos, mercadoria.Preco);
 }
示例#13
0
 public void Adicionar(Mercadoria mercadoria)
 {
     using (var context = new WebEstoqueContext())
     {
         context.Mercadorias.Add(mercadoria);
         context.SaveChanges();
     }
 }
示例#14
0
 public void Atualizar(Mercadoria mercadoria)
 {
     using (var contexto = new WebEstoqueContext())
     {
         contexto.Entry(mercadoria).State = System.Data.Entity.EntityState.Modified;
         contexto.SaveChanges();
     }
 }
示例#15
0
 private void usingButton_Click(object sender, EventArgs e)
 {
     using (var mercadoria = new Mercadoria())
     {
         mercadoria.Nome = "Borracha";
         resultadoListBox.Items.Add(mercadoria.Nome);
     }
 }
示例#16
0
        public void Editar(Mercadoria mercadoria)
        {
            db.Mercadoria.Attach(mercadoria);
            var entry = db.Entry(mercadoria);

            entry.State = System.Data.Entity.EntityState.Modified;
            db.SaveChanges();
        }
		public HistóricoRelacionamentoItem(Mercadoria.Mercadoria mercadoria, double quantidade, DateTime data, Entidades.Pessoa.Funcionário funcionário, double índice)
		{
			this.mercadoria = mercadoria;
			this.quantidade = quantidade;
            this.data = data;
            this.funcionário = funcionário;
            this.indice = índice;
		}
示例#18
0
        public void Excluir(Mercadoria mercadoria)
        {
            db.Mercadoria.Attach(mercadoria);
            var entry = db.Entry(mercadoria);

            entry.State = System.Data.Entity.EntityState.Deleted;
            db.SaveChanges();
        }
示例#19
0
		public Object Post([FromBody]Mercadoria value)
		{
			_repository.Insert(value);

			return new
				{
					Identity = value.ID
				};
		}
示例#20
0
        public ActionResult Cadastrar(Entrada entrada)
        {
            Mercadoria mercadoriaRecuperada = mercadoriaRepository.Recuperar(entrada.Mercadoria.Id);

            entrada.Mercadoria = mercadoriaRecuperada;
            entradaRepository.Salvar(entrada);

            return(RedirectToAction("Index", "Inicial"));
        }
示例#21
0
        private void disposeButton_Click(object sender, EventArgs e)
        {
            var mercadoria = new Mercadoria();

            mercadoria.Nome = "Régua";
            resultadoListBox.Items.Add(mercadoria.Nome);

            mercadoria.Dispose();
        }
 public IActionResult Create([Bind("Nome,Descricao,Tipo,Fabricante")] Mercadoria mercadoria)
 {
     if (ModelState.IsValid)
     {
         _repo.Add(mercadoria);
         return(RedirectToAction(nameof(Index)));
     }
     return(View(mercadoria));
 }
示例#23
0
        public void carregaMercadoriaFiltro()
        {
            dgv_Mercadorias.Rows.Clear();
            var mercadoria = new Mercadoria().retornaMercadoriaPorNome(tb_Filtro.Text);

            foreach (var m in mercadoria)
            {
                dgv_Mercadorias.Rows.Add(m.CD_Referencia, m.NM_Nome, m.TG_Categoria, m.VL_ValorVenda, m.VL_Estoque);
            }
        }
示例#24
0
        public void carregarMercadorias()
        {
            dgv_Mercadorias.Rows.Clear();
            var mercadoria = new Mercadoria().retornaTodaMercadoria();

            foreach (var m in mercadoria)
            {
                dgv_Mercadorias.Rows.Add(m.CD_Referencia, m.NM_Nome, m.TG_Categoria, m.VL_ValorVenda, m.VL_Estoque);
            }
        }
        public override HistóricoRelacionamentoItem Relacionar(Mercadoria.Mercadoria m, double quantidade, double índice)
        {
            Persistir();

            HistóricoRelacionamentoItem relacionado = base.Relacionar(m, quantidade, índice);

            venda.CalcularValor();

            return relacionado;
        }
        private void bunifuThinButton21_Click(object sender, EventArgs e)
        {
            if (new Caixa().caixaAberto() != null)
            {
                lb_Status.ForeColor = Color.FromArgb(0, 128, 128);
                lb_Status.Text      = "processando";
                MessageBox.Show(dgv_Mercadorias.RowCount.ToString());
                // ---------------------------------------------------------
                DateTime dataAgora = DateTime.Now;
                VENDA    venda     = new VENDA();
                venda.NM_Vendedor   = "Rafael";
                venda.DT_Data       = dataAgora.ToString("dd/MM/yyyy HH:mm:ss");
                venda.VL_ValorTotal = valorFinal;
                venda.CD_ID         = Convert.ToInt32(lb_ID.Text);
                venda.CD_Cartao     = cb_Cartao.Checked ? 1 : 0;
                new Venda().cadastraVenda(venda);

                lb_Status.Text = "venda criada";
                // ---------------------------------------------------------
                for (int i = 0; i < dgv_Mercadorias.RowCount - 1; i++)
                {
                    int qtd        = Convert.ToInt32(dgv_Mercadorias[2, i].Value);
                    int referencia = Convert.ToInt32(dgv_Mercadorias[0, i].Value);
                    MERCADORIA_VENDA mercadoria = new MERCADORIA_VENDA();
                    mercadoria.CD_Mercadoria = Convert.ToInt32(dgv_Mercadorias[0, i].Value);
                    mercadoria.CD_Venda      = Convert.ToInt32(lb_ID.Text);
                    mercadoria.QT_Quantidade = Convert.ToInt32(dgv_Mercadorias[2, i].Value);
                    new Venda().cadastraMercadoriaVendida(mercadoria);
                    MERCADORIA mercadoria_alterada = new Mercadoria().retornaMercadoria(referencia);
                    mercadoria_alterada.VL_Estoque -= qtd;
                    new Mercadoria().alteraMercadoria(mercadoria_alterada);

                    lb_Status.Text = "mercadoria " + i + " OK";
                }
                // ---------------------------------------------------------
                var caixa = new Caixa().caixaAberto();
                if (cb_Cartao.Checked)
                {
                    caixa.VL_ValorCartaoAdmin += valorFinal;
                }
                else
                {
                    caixa.VL_ValorDinheiroAdmin += valorFinal;
                }
                new Caixa().AlteraCaixa(caixa);
                lb_Status.Text = "inserida no caixa";
                // ---------------------------------------------------------
                lb_Status.Text      = "Finalizada";
                lb_Status.ForeColor = Color.YellowGreen;
            }
            else
            {
                MessageBox.Show("Erro: Caixa deve estar aberto para realizar a venda");
            }
        }
示例#27
0
        public async Task <IActionResult> Create([Bind("Id,Peso,Tipo_Mercadoria,Quantidade_Mercadoria,Nome_Mercadoria")] Mercadoria mercadoria)
        {
            if (ModelState.IsValid)
            {
                _context.Add(mercadoria);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(mercadoria));
        }
示例#28
0
        public static Mercadoria Seleciona(int pCodigoMercadoria)
        {
            //Conexão com o Banco de Dados
            AutoResendeDataContext oDB = new AutoResendeDataContext();

            //String de Seleção
            Mercadoria oMercadoria = (from Seleciona in oDB.Mercadorias where Seleciona.idMercadoria == pCodigoMercadoria select Seleciona).SingleOrDefault();

            //Retorno da Ordem de Serviço
            return(oMercadoria);
        }
示例#29
0
 //Insert and Update new record
 public Task <int> SaveItemAsync(Mercadoria mercadoria)
 {
     if (mercadoria.Id != 0)
     {
         return(db.UpdateAsync(mercadoria));
     }
     else
     {
         return(db.InsertAsync(mercadoria));
     }
 }
示例#30
0
        public double GetValorTotal()
        {
            double ValorTotal = 0;

            foreach (MercadoriaModel Mercadoria in this.mercadorias)
            {
                ValorTotal += Mercadoria.GetValorTotal();
            }

            return(ValorTotal);
        }
示例#31
0
        private void MercadoriasDataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            Mercadoria  m    = GradeViewModel.MercadoriaSelecionada;
            UserControl page = PessoaViewFactory.VisualizarGrade(m);

            while (MercadoriaContent.Children.Count > 0)
            {
                MercadoriaContent.Children.RemoveAt(0);
            }
            MercadoriaContent.Children.Add(page);
        }
示例#32
0
        public void DeveRetornarMercadoriaInvalidaSeQuantidadeForaRange(double peso)
        {
            //Arrange
            mercadoria = new Mercadoria(MercadoriaTipo.Container, peso, true);

            //Act
            bool valido = mercadoria.EhValido();

            //Assert
            Assert.False(valido);
            Assert.True(mercadoria.ValidationResult.Errors.All(t => t.PropertyName == nameof(mercadoria.Peso)));
        }
示例#33
0
        /// <summary>
        /// Constrói a estrutura de preço com um índice personalizado.
        /// </summary>
        /// <param name="cotação">Cotação a ser usada.</param>
        /// <param name="índice">Índice da mercadoria.</param>
        public Preço(Mercadoria.Mercadoria mercadoria, Cotação cotação, double índice)
        {
            this.mercadoria = mercadoria;
            this.cotação = cotação;
            this.índice = índice;
            this.fator = 1;
            this.preço = 0;
            this.dias = 0;
            this.juros = Configuração.DadosGlobais.Instância.Juros;

            CalcularPreço();
        }
示例#34
0
        private void consMercadoriaVenda_Load(object sender, EventArgs e)
        {
            dgv_MercadoriaVendida.Rows.Clear();
            var Mercvenda = new Venda().retornaMercadoriaVendida(idGlobal);

            foreach (var v in Mercvenda)
            {
                var mercadoria = new Mercadoria().retornaMercadoria(Convert.ToInt32(v.CD_Mercadoria));

                dgv_MercadoriaVendida.Rows.Add(mercadoria.CD_Referencia, mercadoria.NM_Nome, v.QT_Quantidade, mercadoria.VL_ValorVenda, v.QT_Quantidade * mercadoria.VL_ValorVenda);
            }
        }
示例#35
0
        public async Task <IActionResult> Adicionar(Mercadoria a)
        {
            if (!ModelState.IsValid)
            {
                return(View(a));
            }

            db.Add(a);
            await db.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
示例#36
0
        public async Task <IActionResult> Inserir(
            [Bind("MercadoriaID,Nome,NumeroRegistro,Tipo,Fabricante,Quantidade,Descricao")] Mercadoria mercadoria)
        {
            if (ModelState.IsValid)
            {
                _context.Add(mercadoria);
                await _context.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            return(View(mercadoria));
        }
        /// <summary>
        /// Adiciona um item de relacionamento, seja inserção, seja remoção.
        /// Já cadastra no banco de dados.
        /// </summary>
        public virtual HistóricoRelacionamentoItem Relacionar(Mercadoria.Mercadoria m, double quantidade, double índice)
        {
            HistóricoRelacionamentoItem novoItem;

            DateTime agora = Configuração.DadosGlobais.Instância.HoraDataAtual;

            novoItem = ConstruirItemHistórico(m, quantidade, agora, Entidades.Pessoa.Funcionário.FuncionárioAtual, índice);

            entidadePai.DispararAntesDeCadastrarItem(novoItem);

            if (!entidadePai.Cadastrado)
                entidadePai.Cadastrar();
            
            if (lista.Count != ContarItens())
                throw new InvalidAsynchronousStateException();

            novoItem.Cadastrar();

            Adicionar(novoItem);

            return novoItem;
        }
示例#38
0
        public void Remover(Mercadoria.Mercadoria mercadoria)
        {
            uint códigoMiniatura;

            string chave = GerarChave(mercadoria);

            if (hashMercadoriaMiniatura.TryGetValue(chave, out códigoMiniatura))
            {
                hashMercadoriaMiniatura.Remove(chave);
                Salvar();
            }
        }
 protected override SaquinhoRelacionamento ConstuirItemAgrupado(Mercadoria.Mercadoria mercadoria, double quantidade, double índice)
 {
     return new SaquinhoDevolução(venda, mercadoria, quantidade, índice);
 }
示例#40
0
 private static string ObterReferenciaComDigito(Mercadoria.Mercadoria m)
 {
     return m.ReferênciaNumérica + m.Dígito;
 }
		protected override ItemRelacionado ConstruirNovoItem(Mercadoria mercadoria, double quantidade)
		{
			return new ItemPedido(pedido, mercadoria, quantidade);
		}
 protected virtual SaquinhoRelacionamento ConstuirItemAgrupado(Mercadoria.Mercadoria mercadoria, double quantidade, double indice)
 {
     return new SaquinhoRelacionamento(mercadoria, quantidade, indice);
 }
示例#43
0
 public SaquinhoVenda(Venda v, Mercadoria.Mercadoria m, double qtd, double índice)
     : base(m, qtd, índice)
 {
     venda = v;
 }
示例#44
0
        public SaquinhoAcertoAA(Mercadoria.Mercadoria m, double qtd, double peso, double índice)
            : base(m, qtd, peso, índice)
        {

        }
 public SaquinhoRelacionamento(Mercadoria.Mercadoria m, double qtd, double índice)
     : base(m, qtd)
 {
     this.índice = índice;
 }
示例#46
0
 private void bandejaAcerto_SeleçãoMudou(Mercadoria.Bandeja.Bandeja bandeja, Entidades.ISaquinho saquinho)
 {
     quadroRastro.Visible = saquinho != null;
 }
示例#47
0
 /// <summary>
 /// Constrói a estrutura de preço de uma mercadoria,
 /// utilizando a cotação vigente carregada do banco de dados.
 /// </summary>
 public Preço(Mercadoria.Mercadoria mercadoria, Moeda moeda)
     : this(mercadoria, Cotação.ObterCotaçãoVigente(moeda))
 { }
示例#48
0
 private static string GerarChave(Mercadoria.Mercadoria mercadoria)
 {
     return GerarChave(mercadoria.ReferênciaNumérica);
 }
 protected override HistóricoRelacionamentoItem ConstruirItemHistórico(Mercadoria.Mercadoria mercadoria, double quantidade, DateTime data, Entidades.Pessoa.Funcionário funcionário, double índice)
 {
     return new HistóricoDevoluçãoItem(mercadoria, quantidade, venda, data, funcionário, índice);
 }
示例#50
0
 /// <summary>
 /// Constrói um ItemPedido a partir de dados já adquiridos.
 /// </summary>
 /// <remarks>
 public ItemPedido(Pedido pedido, Mercadoria mercadoria, double quantidade)
     : base(mercadoria, quantidade)
 {
     this.pedido = pedido;
 }
示例#51
0
        /// <summary>
        /// Obtem a foto da cache. 
        /// Pode retornar nulo caso foto não exista.
        /// </summary>
        /// <param name="mercadoria"></param>
        /// <returns></returns>
        public DbFoto Obter(Mercadoria.Mercadoria mercadoria)
        {
            if (mercadoria == null)
                return null;

            uint códigoMiniatura;

            if (hashMercadoriaMiniatura.TryGetValue(GerarChave(mercadoria), out códigoMiniatura))
                return Obter(new Foto(códigoMiniatura, mercadoria.ReferênciaNumérica));
            else
                return null;
        }
示例#52
0
 /// <summary>
 /// Constrói um ItemPedido a partir de dados já adquiridos,
 /// permitindo afirmar que os dados estão no banco de dados.
 /// </summary>
 /// <param name="cadastrado">Se os dados já estão cadastrados no BD.</param>
 public ItemPedido(Pedido pedido, Mercadoria mercadoria, double quantidade, bool cadastrado)
     : this(pedido, mercadoria, quantidade)
 {
     this.cadastrado = this.atualizado = cadastrado;
 }
 public SaquinhoDevolução(Venda v, Mercadoria.Mercadoria m, double qtd, double índice)
     : base(m, qtd, índice)
 {
     venda = v;
     this.índice = índice;
 }
示例#54
0
//		public System.Data.DataSet ObterDataSetImpressão()
//		{
//			/* O CriarAdaptador está gerando a excessão que não consegue achar assembly. 
//			 * Adicionei no references do Entidades o MysqlConnector enquanto o problema não é resolvido.
//			 */
//
//			#region ideal
//
////			IDbConnection conexão = Conexão;
////			System.Data.DataSet ds = new System.Data.DataSet();
////
////			IDbDataAdapter adaptador = CriarAdaptador(conexão);
////			
////			
////			string c = "select concat(substr(itempedido.referencia, 1, 3), '.',  substr(itempedido.referencia, 4, 3), '.', substr(itempedido.referencia, 7, 2), '.', substr(itempedido.referencia, 9, 3), '-', mercadoria.digito) as referencia, ";
////				c += "itempedido.peso, itempedido.indice, itempedido.quantidade ";
////				c += "from itempedido, mercadoria WHERE ";
////				c += "itempedido.referencia = mercadoria.referencia AND ";
////				c += "itempedido.pedido = " + DbTransformar(this.Código);
////
////
////			lock (conexão)
////			{
////				using (IDbCommand cmd = conexão.CreateCommand())
////				{
////					cmd.CommandText = c;
////					
////					adaptador.Fill(ds, "Pedido");
////				}
////			}
////
////			return ds;
////			
//			#endregion
//
//			#region temporário mas funciona
//			
//			System.Data.DataSet ds = new System.Data.DataSet();
//			MySql.Data.MySqlClient.MySqlConnection conexão = null;
//			MySql.Data.MySqlClient.MySqlDataAdapter adaptador;
//
//			string strConexão  = "Data Source=127.0.0.1";
//			strConexão += ";Database=imjoias";
//			strConexão += ";User Id=imjoias";
//			strConexão += ";Password=b9r8hukl3";
//		
//			conexão = new MySql.Data.MySqlClient.MySqlConnection(strConexão);
//
//			conexão.Open();
//
//			MySql.Data.MySqlClient.MySqlCommand cmd = conexão.CreateCommand();
//		
//			string c = "select concat(substr(itempedido.referencia, 1, 3), '.',  substr(itempedido.referencia, 4, 3), '.', substr(itempedido.referencia, 7, 2), '.', substr(itempedido.referencia, 9, 3), '-', mercadoria.digito) as referencia, ";
//			c += "itempedido.peso, itempedido.indice, itempedido.quantidade ";
//			c += "from itempedido, mercadoria WHERE ";
//			c += "itempedido.referencia = mercadoria.referencia AND ";
//			c += "itempedido.pedido = " + DbTransformar(this.Código);
//
//			cmd.CommandText = c;
//
//			adaptador = new MySql.Data.MySqlClient.MySqlDataAdapter(cmd);
//			adaptador.Fill(ds, "Pedido");
//		
//			return ds;
//			
//			#endregion
//		}

		// Recuperação de dados

		/// <summary>
		/// Esta lista preenche 3 entidades de uma só vez:
		///		- Pedido, ItemPedido, Mercadoria (do itemPedido)
		///	
		///	Basicamente recupera todos os pedidos abertos não acertados.
		///	Observe que existe uma coleção 'itens', atributo desta entidade.
		///	a lista de itens é obtida também por essa consulta.
		///	Cada pedidoitem possui uma mercadoria, que alias, é o que diferencia um item de outro.
		///	A mercadoria também é criada nesta consulta.
		/// </summary>
		/// <returns> lista de Entidade.Pedido </returns>
		public static Pedido [] ObterPedidosNãoAcertados()
		{
			// Obtém os pedidos sem os itens, e cria uma hash para auxiliar futuramente
			ArrayList pedidos = ObterPedidosNãoAcertadosSemItens();

			IDbConnection conexão = Conexão;
			IDataReader leitor = null;
			
			Hashtable pedidosCódigo = new Hashtable();
			foreach (Pedido p in pedidos)
				pedidosCódigo.Add(p.Código, p);

			lock (conexão)
			{
				using (IDbCommand cmd = conexão.CreateCommand())
				{
					cmd.CommandText = 
						"SELECT pedido.codigo, itempedido.referencia, itempedido.peso, itempedido.quantidade, mercadoria.* from pedido, itemPedido LEFT JOIN mercadoria ON itempedido.referencia = mercadoria.referencia where itempedido.pedido = pedido.codigo AND pedido.acertado = 0 order by pedido.codigo, itempedido.referencia";

					try
					{
						long        códigoÚltimoPedido = -1;
						long        códigoAtualPedido;
						bool        novoPedido;
						Pedido		pedido  = null;
						ItemPedido	item	= null;
						Mercadoria	merc	= null;

						leitor = cmd.ExecuteReader();
						
						while (leitor.Read())
						{
							códigoAtualPedido = leitor.GetInt32((int) Ordem.Código);
							novoPedido = (códigoAtualPedido != códigoÚltimoPedido);

							if (novoPedido)
							{
								pedido = (Pedido) pedidosCódigo[códigoAtualPedido];

								códigoÚltimoPedido = códigoAtualPedido;

								pedido.cadastrado = true;
								pedido.atualizado = true;
							}
							
							// A cada item lido, existe uma nova mercadoria e um novo itempedido

							#region Recupera a mercadoria deste itempedido

							/* não deve-se fazer hash da mercadoria obtida,
							 * uma vez que serão o mesmo objeto para vários pedidos, 
							 * daí uma alteração em um acarreta em alteração nos outros!
							 */
							string referência = leitor.GetString((int) Ordem.Referencia);
							double peso = leitor.GetDouble((int) Ordem.PesoPedido);
							//							string hash = referência + peso.ToString();
 								
							if (referência != null)
							{
								if (!leitor.IsDBNull((int) Ordem.Digito))
									merc = new Mercadoria(referência, Convert.ToInt32(leitor.GetValue((int) Ordem.Digito)), peso);
								else
									merc = new Mercadoria(referência, -1, peso);

								merc.Coeficiente = leitor.GetDouble((int) Ordem.Coeficiente);

								if (!leitor.IsDBNull((int) Ordem.DePeso))
									merc.DePeso = leitor.GetBoolean((int) Ordem.DePeso);
									
								merc.Descrição = leitor.GetString((int) Ordem.Nome);
									
								if (!leitor.IsDBNull((int) Ordem.Faixa))
									merc.Faixa = leitor.GetChar((int) Ordem.Faixa);

								if (!leitor.IsDBNull((int) Ordem.ForaDeLinha))
									merc.ForaDeLinha = leitor.GetBoolean((int) Ordem.ForaDeLinha);

								if (!leitor.IsDBNull((int) Ordem.Grupo))
									merc.Grupo = leitor.GetInt32((int) Ordem.Grupo);

								if (!leitor.IsDBNull((int) Ordem.Teor))
									merc.Teor = Convert.ToSingle(leitor.GetInt32((int) Ordem.Teor));

								merc.ForçarCadastrada();
							}
							else
							{
								merc = new Mercadoria(referência);
								merc.Peso = peso;
							}

							#endregion

							item = new ItemPedido(
								pedido,
								merc,
								leitor.GetDouble((int) Ordem.Quantidade),
								true);

							pedido.Itens.Adicionar(item);
						}
					}
					finally
					{
						if (leitor != null)
							leitor.Close();
					}
				}
			}
			
			return (Pedido []) pedidos.ToArray(typeof(Pedido));
		}
 protected abstract HistóricoRelacionamentoItem ConstruirItemHistórico(Mercadoria.Mercadoria mercadoria, double quantidade, DateTime data, Pessoa.Funcionário funcionário, double índice);
示例#56
0
 /// <summary>
 /// Constrói a estrutura de preço de uma mercadoria.
 /// </summary>
 /// <param name="cotação">Cotação a ser utilizada.</param>
 public Preço(Mercadoria.Mercadoria mercadoria, Cotação cotação)
     : this(mercadoria, cotação, mercadoria.ÍndiceArredondado)
 { }