private void detach_tb_Produtos(tb_Produto entity)
		{
			this.SendPropertyChanging();
			entity.tb_Fabricante = null;
		}
 partial void Deletetb_Produto(tb_Produto instance);
 partial void Updatetb_Produto(tb_Produto instance);
 partial void Inserttb_Produto(tb_Produto instance);
		private void attach_tb_Produtos(tb_Produto entity)
		{
			this.SendPropertyChanging();
			entity.tb_Tipo = this;
		}
Esempio n. 6
0
        public DtoProduto cadastrarProduto(DtoProduto produto)
        {
            produto.nome = produto.nome.Trim();
            if (produto.nome == "")
                throw new DtoExcecao(DTO.Enum.CampoInvalido, "Nome do Produto");

            try
            {
                produto.tipo = (new TipoProduto()).abrirTipo(produto.idTipo);
                produto.fabricante = (new Fabricante()).cadastrarFabricante(produto.fabricante);
                produto.idFabricante = produto.fabricante.id;
            }
            catch (DtoExcecao ex)
            {
                throw ex;
            }
            catch
            {
                throw new DtoExcecao(DTO.Enum.CampoInvalido, "Tipo do Produto");
            }

            DBCatalogDataContext dataContext = new DBCatalogDataContext();

            tb_Produto produtoBanco;
            if (produto.codigoDeBarras == "")
            {
                produtoBanco = dataContext.tb_Produtos.FirstOrDefault(p => p.nome == produto.nome &&
                                                                            p.idTipo == produto.idTipo &&
                                                                            p.idFabricante == produto.idFabricante);
            }
            else
            {
                produtoBanco = dataContext.tb_Produtos.FirstOrDefault(p => p.nome == produto.nome &&
                                                                            p.idTipo == produto.idTipo &&
                                                                            p.idFabricante == produto.idFabricante &&
                                                                            (p.codigoDeBarras == produto.codigoDeBarras || p.codigoDeBarras == ""));
            }

            if (produtoBanco != null)
            {
                produto.id = produtoBanco.id;
                if (produto.codigoDeBarras != "" && produtoBanco.codigoDeBarras == "")
                {//esse produto existe, mas sem codigo de barras
                    produtoBanco.codigoDeBarras = produto.codigoDeBarras;
                    //produtoBanco.tipoCodigo = produto.tipoCodigoDeBarras;
                    dataContext.SubmitChanges();
                }

            }
            else
            {//não existe esse produto
                produtoBanco = new tb_Produto();
                produtoBanco.nome = produto.nome;
                produtoBanco.idTipo = produto.idTipo;
                produtoBanco.idFabricante = produto.idFabricante;
                produtoBanco.codigoDeBarras = produto.codigoDeBarras;
                //produtoBanco.tipoCodigo = produto.tipoCodigoDeBarras;
                dataContext.tb_Produtos.InsertOnSubmit(produtoBanco);
                dataContext.SubmitChanges();
                produto.id = dataContext.tb_Produtos.FirstOrDefault(p => p.idFabricante == produto.idFabricante &&
                                                                         p.idTipo == produto.idTipo &&
                                                                         p.nome == produto.nome).id;
            }

            return produto;
        }