/// <summary> /// Método para salvar o usuário /// </summary> /// <param name="Sessao">Objeto com os dados do usuário a Logar</param> /// <returns>Contrato.RetornoFornecedor</returns> internal static Contrato.RetornoSessao ExcluirSessao(Contrato.Sessao Sessao) { // Objeto que recebe o retorno do método Contrato.RetornoSessao retSessao = new Contrato.RetornoSessao(); // Verifica se as informações do usuário foram informadas string strValidacao = ValidarSessaoPreenchido(Sessao); // Se existe algum erro if (strValidacao.Length > 0) { retSessao.Codigo = Contrato.Constantes.COD_FILTRO_VAZIO; retSessao.Mensagem = strValidacao; } else { // Loga no banco de dados Dados.BRASIL_DIDATICOS context = new Dados.BRASIL_DIDATICOS(); // Busca o usuário no banco List<Dados.SESSAO> lstSessoes = (from s in context.T_SESSAO where s.LOGIN_USUARIO == Sessao.Login && s.DES_CHAVE == Sessao.Chave select s).ToList(); // Verifica se foi encontrado algum registro if (lstSessoes.Count > 0) { // Exclui a sessão do usuário context.T_SESSAO.DeleteObject(lstSessoes.First()); // Salva as alterações context.SaveChanges(); // Preenche o objeto de retorno retSessao.Codigo = Contrato.Constantes.COD_RETORNO_SUCESSO; } else { // Preenche o objeto de retorno retSessao.Codigo = Contrato.Constantes.COD_RETORNO_VAZIO; } } // retorna dos dados return retSessao; }
/// <summary> /// Método para salvar o fornecedor /// </summary> /// <param name="entradaFornecedor">Objeto com os dados do fornecedor</param> /// <returns>Contrato.RetornoFornecedor</returns> internal static Contrato.RetornoFornecedor SalvarFornecedor(Contrato.EntradaFornecedor entradaFornecedor) { // Objeto que recebe o retorno do método Contrato.RetornoFornecedor retFornecedor = new Contrato.RetornoFornecedor(); // Objeto que recebe o retorno da sessão Contrato.RetornoSessao retSessao = Negocio.Sessao.ValidarSessao(new Contrato.Sessao() { Login = entradaFornecedor.UsuarioLogado, Chave = entradaFornecedor.Chave }); // Verifica se o usuário está autenticado if (retSessao.Codigo == Contrato.Constantes.COD_RETORNO_SUCESSO) { // Verifica se as informações do fornecedor foram informadas string strValidacao = ValidarFornecedorPreenchido(entradaFornecedor.Fornecedor); // Se existe algum erro if (strValidacao.Length > 0) { retFornecedor.Codigo = Contrato.Constantes.COD_FILTRO_VAZIO; retFornecedor.Mensagem = strValidacao; } else { // Loga no banco de dados Dados.BRASIL_DIDATICOS context = new Dados.BRASIL_DIDATICOS(); context.ContextOptions.LazyLoadingEnabled = true; // Busca o fornecedor no banco List<Dados.FORNECEDOR> lstFornecedores = (from f in context.T_FORNECEDOR where (f.COD_FORNECEDOR == entradaFornecedor.Fornecedor.Codigo && (entradaFornecedor.Fornecedor.Cpf_Cnpj != null || f.CPF_CNJP_FORNECEDOR == entradaFornecedor.Fornecedor.Cpf_Cnpj) && (entradaFornecedor.EmpresaLogada.Id == Guid.Empty || f.ID_EMPRESA == entradaFornecedor.EmpresaLogada.Id)) || (entradaFornecedor.Novo == null && entradaFornecedor.Fornecedor.Id == f.ID_FORNECEDOR) select f).ToList(); // Verifica se foi encontrado algum registro if (lstFornecedores.Count > 0 && entradaFornecedor.Novo != null && (bool)entradaFornecedor.Novo) { // Preenche o objeto de retorno retFornecedor.Codigo = Contrato.Constantes.COD_REGISTRO_DUPLICADO; retFornecedor.Mensagem = string.Format("O fornecedor de código '{0}' já existe!", lstFornecedores.First().COD_FORNECEDOR); } else { // Se existe o fornecedor if (lstFornecedores.Count > 0) { bool atualizarProdutos = false; // Atualiza o fornecedor lstFornecedores.First().NOME_FORNECEDOR = entradaFornecedor.Fornecedor.Nome; lstFornecedores.First().BOL_PESSOA_FISICA = entradaFornecedor.Fornecedor.Tipo == Contrato.Enumeradores.Pessoa.Fisica ? true : false; lstFornecedores.First().CPF_CNJP_FORNECEDOR = entradaFornecedor.Fornecedor.Cpf_Cnpj; lstFornecedores.First().NUM_VALOR_ATACADO = entradaFornecedor.Fornecedor.ValorPercentagemAtacado; lstFornecedores.First().NUM_VALOR_VAREJO = entradaFornecedor.Fornecedor.ValorPercentagemVarejo; lstFornecedores.First().BOL_ATIVO = (bool)entradaFornecedor.Fornecedor.Ativo; lstFornecedores.First().DATA_ATUALIZACAO = DateTime.Now; lstFornecedores.First().LOGIN_USUARIO = entradaFornecedor.UsuarioLogado; // verifica se o fornecedor foi desativado atualizarProdutos = (bool)entradaFornecedor.Fornecedor.Ativo == false; // Verifica se é para atualizar os produtos if (!atualizarProdutos) // verifica se a quantidade de taxas foi alterada atualizarProdutos = (entradaFornecedor.Fornecedor.Taxas == null && lstFornecedores.First().T_FORNECEDOR_TAXA.Count > 0) || (entradaFornecedor.Fornecedor.Taxas != null && lstFornecedores.First().T_FORNECEDOR_TAXA.Count != entradaFornecedor.Fornecedor.Taxas.Count); // Verifica se é para atualizar os produtos if (entradaFornecedor.Fornecedor.Taxas != null && !atualizarProdutos) // Para cada taxa existente foreach (Contrato.Taxa t in entradaFornecedor.Fornecedor.Taxas) { // Verifica se é para atualizar os produtos if (!atualizarProdutos) // Verifica se alguma informação da taxa foi atualizada atualizarProdutos = (from ft in lstFornecedores.First().T_FORNECEDOR_TAXA where ft.ID_TAXA == t.Id && (ft.NUM_VALOR != t.Valor || ft.ORD_PRIORIDADE != t.Prioridade) select ft).Count() > 0; else break; } // Apaga todas as taxas que estão relacionadas ao fornecedor while (lstFornecedores.First().T_FORNECEDOR_TAXA.Count > 0) { context.T_FORNECEDOR_TAXA.DeleteObject(lstFornecedores.First().T_FORNECEDOR_TAXA.First()); } // Preenche as taxas do fornecedor PreencherTaxaFornecedor(entradaFornecedor, lstFornecedores.First()); // Verifica se é para atualizar os produtos if (atualizarProdutos) // Atualiza o valor das taxas nos produtos SalvarProdutosFornecedor(entradaFornecedor); } else { // Recupera o código do cliente string codigoFornecedor = string.Empty; if (entradaFornecedor.Fornecedor.Codigo != string.Empty) codigoFornecedor = entradaFornecedor.Fornecedor.Codigo; else { System.Data.Objects.ObjectParameter objCodigoFornecedor = new System.Data.Objects.ObjectParameter("P_CODIGO", typeof(global::System.Int32)); context.RETORNAR_CODIGO(Contrato.Constantes.TIPO_COD_FORNECEDOR, entradaFornecedor.EmpresaLogada.Id, objCodigoFornecedor); codigoFornecedor = Util.RecuperaCodigo((int)objCodigoFornecedor.Value, Contrato.Constantes.TIPO_COD_FORNECEDOR); } // Cria o fornecedor Dados.FORNECEDOR tFornecedor = new Dados.FORNECEDOR(); tFornecedor.ID_FORNECEDOR = Guid.NewGuid(); tFornecedor.COD_FORNECEDOR = codigoFornecedor; tFornecedor.NOME_FORNECEDOR = entradaFornecedor.Fornecedor.Nome; tFornecedor.ID_EMPRESA = entradaFornecedor.EmpresaLogada.Id; tFornecedor.BOL_PESSOA_FISICA = entradaFornecedor.Fornecedor.Tipo == Contrato.Enumeradores.Pessoa.Fisica ? true : false; tFornecedor.CPF_CNJP_FORNECEDOR = entradaFornecedor.Fornecedor.Cpf_Cnpj; tFornecedor.NUM_VALOR_ATACADO = entradaFornecedor.Fornecedor.ValorPercentagemAtacado; tFornecedor.NUM_VALOR_VAREJO = entradaFornecedor.Fornecedor.ValorPercentagemVarejo; tFornecedor.BOL_ATIVO = (bool)entradaFornecedor.Fornecedor.Ativo; tFornecedor.DATA_ATUALIZACAO = DateTime.Now; tFornecedor.LOGIN_USUARIO = entradaFornecedor.UsuarioLogado; // Preenche as taxas do fornecedor PreencherTaxaFornecedor(entradaFornecedor, tFornecedor); // Adiciona o fornecedor na tabela context.AddToT_FORNECEDOR(tFornecedor); } // Salva as alterações context.SaveChanges(); // Preenche o objeto de retorno retFornecedor.Codigo = Contrato.Constantes.COD_RETORNO_SUCESSO; } } } else { // retorna quando o usuário não está autenticado retFornecedor.Codigo = retSessao.Codigo; retFornecedor.Mensagem = retSessao.Mensagem; } // retorna dos dados return retFornecedor; }
/// <summary> /// Método para salvar o orcamento /// </summary> /// <param name="entradaOrcamento">Objeto com os dados do orcamento</param> /// <returns>Contrato.RetornoOrcamento</returns> internal static Contrato.RetornoOrcamento SalvarOrcamento(Contrato.EntradaOrcamento entradaOrcamento) { // Objeto que recebe o retorno do método Contrato.RetornoOrcamento retOrcamento = new Contrato.RetornoOrcamento(); // Objeto que recebe o retorno da sessão Contrato.RetornoSessao retSessao = Negocio.Sessao.ValidarSessao(new Contrato.Sessao() { Login = entradaOrcamento.UsuarioLogado, Chave = entradaOrcamento.Chave }); // Verifica se o usuário está autenticado if (retSessao.Codigo == Contrato.Constantes.COD_RETORNO_SUCESSO) { // Verifica se as informações do orcamento foram informadas string strValidacao = ValidarOrcamentoPreenchido(entradaOrcamento.Orcamento); // Se existe algum erro if (strValidacao.Length > 0) { retOrcamento.Codigo = Contrato.Constantes.COD_FILTRO_VAZIO; retOrcamento.Mensagem = strValidacao; } else { // Loga no banco de dados Dados.BRASIL_DIDATICOS context = new Dados.BRASIL_DIDATICOS(); context.ContextOptions.LazyLoadingEnabled = true; // Busca o orcamento no banco List<Dados.ORCAMENTO> lstOrcamentos = (from p in context.T_ORCAMENTO where (p.COD_ORCAMENTO == entradaOrcamento.Orcamento.Codigo && (entradaOrcamento.EmpresaLogada.Id == Guid.Empty || p.ID_EMPRESA == entradaOrcamento.EmpresaLogada.Id)) || (entradaOrcamento.Novo == null && entradaOrcamento.Orcamento.Id == p.ID_ORCAMENTO) select p).ToList(); // Verifica se foi encontrado algum registro if (lstOrcamentos.Count > 0 && entradaOrcamento.Novo != null && (bool)entradaOrcamento.Novo) { // Preenche o objeto de retorno retOrcamento.Codigo = Contrato.Constantes.COD_REGISTRO_DUPLICADO; retOrcamento.Mensagem = string.Format("O orcamento de código '{0}' já existe!", lstOrcamentos.First().COD_ORCAMENTO); } else { // Se existe o orcamento if (lstOrcamentos.Count > 0) { // Atualiza o orcamento lstOrcamentos.First().COD_ORCAMENTO = entradaOrcamento.Orcamento.Codigo; lstOrcamentos.First().DATA_ORCAMENTO = entradaOrcamento.Orcamento.Data; lstOrcamentos.First().ID_CLIENTE = entradaOrcamento.Orcamento.Cliente.Id; lstOrcamentos.First().ID_ESTADO_ORCAMENTO = entradaOrcamento.Orcamento.Estado.Id; lstOrcamentos.First().ID_USUARIO_VENDEDOR = entradaOrcamento.Orcamento.Vendedor.Id; lstOrcamentos.First().ID_USUARIO_RESPONSAVEL = entradaOrcamento.Orcamento.Responsavel.Id; lstOrcamentos.First().NUM_DESCONTO = entradaOrcamento.Orcamento.ValorDesconto; lstOrcamentos.First().NUM_PRAZO_ENTREGA = entradaOrcamento.Orcamento.PrazoEntrega; lstOrcamentos.First().NUM_VALIDADE_ORCAMENTO = entradaOrcamento.Orcamento.ValidadeOrcamento; lstOrcamentos.First().DATA_ATUALIZACAO = DateTime.Now; lstOrcamentos.First().LOGIN_USUARIO = entradaOrcamento.UsuarioLogado; // Apaga todos os itens que estão relacionados while (lstOrcamentos.First().T_ITEM.Count > 0) { context.T_ITEM.DeleteObject(lstOrcamentos.First().T_ITEM.First()); } // Verifica se existe algum item associado ao orçamento if (entradaOrcamento.Orcamento.Itens != null) { // Para cada item associado foreach (Contrato.Item item in entradaOrcamento.Orcamento.Itens) { Negocio.Item.SalvarItemOrcamento(lstOrcamentos.First(), entradaOrcamento.UsuarioLogado, item); } } } else { // Recupera o código do orçamento string codigoOrcamento = string.Empty; if (entradaOrcamento.Orcamento.Codigo != string.Empty) codigoOrcamento = entradaOrcamento.Orcamento.Codigo; else { System.Data.Objects.ObjectParameter objCodigoOrcamento = new System.Data.Objects.ObjectParameter("P_CODIGO", typeof(global::System.Int32)); context.RETORNAR_CODIGO(Contrato.Constantes.TIPO_COD_ORCAMENTO, entradaOrcamento.EmpresaLogada.Id, objCodigoOrcamento); codigoOrcamento = Util.RecuperaCodigo((int)objCodigoOrcamento.Value, Contrato.Constantes.TIPO_COD_ORCAMENTO); } // Cria o orcamento Dados.ORCAMENTO tOrcamento = new Dados.ORCAMENTO(); tOrcamento.ID_ORCAMENTO = Guid.NewGuid(); tOrcamento.COD_ORCAMENTO = codigoOrcamento; tOrcamento.DATA_ORCAMENTO = entradaOrcamento.Orcamento.Data; tOrcamento.ID_EMPRESA = entradaOrcamento.EmpresaLogada.Id; tOrcamento.ID_CLIENTE = entradaOrcamento.Orcamento.Cliente.Id; tOrcamento.ID_ESTADO_ORCAMENTO = entradaOrcamento.Orcamento.Estado.Id; tOrcamento.ID_USUARIO_VENDEDOR = entradaOrcamento.Orcamento.Vendedor.Id; tOrcamento.ID_USUARIO_RESPONSAVEL = entradaOrcamento.Orcamento.Responsavel.Id; tOrcamento.NUM_DESCONTO = entradaOrcamento.Orcamento.ValorDesconto; tOrcamento.NUM_PRAZO_ENTREGA = entradaOrcamento.Orcamento.PrazoEntrega; tOrcamento.NUM_VALIDADE_ORCAMENTO = entradaOrcamento.Orcamento.ValidadeOrcamento; tOrcamento.DATA_ATUALIZACAO = DateTime.Now; tOrcamento.LOGIN_USUARIO = entradaOrcamento.UsuarioLogado; // Verifica se existe algum item associado ao orçamento if (entradaOrcamento.Orcamento.Itens != null) { // Para cada item associado foreach (Contrato.Item item in entradaOrcamento.Orcamento.Itens) { Negocio.Item.SalvarItemOrcamento(tOrcamento, entradaOrcamento.UsuarioLogado, item); } } context.AddToT_ORCAMENTO(tOrcamento); } // Salva as alterações context.SaveChanges(); // Preenche o objeto de retorno retOrcamento.Codigo = Contrato.Constantes.COD_RETORNO_SUCESSO; } } } else { // retorna quando o usuário não está autenticado retOrcamento.Codigo = retSessao.Codigo; retOrcamento.Mensagem = retSessao.Mensagem; } // retorna dos dados return retOrcamento; }
/// <summary> /// Método para salvar o taxa /// </summary> /// <param name="Taxas">Objeto com os dados do taxa</param> /// <returns>Contrato.RetornoTaxa</returns> internal static Contrato.RetornoTaxa SalvarTaxa(Contrato.EntradaTaxa entradaTaxa) { // Objeto que recebe o retorno do método Contrato.RetornoTaxa retTaxa = new Contrato.RetornoTaxa(); // Verifica se as informações do taxa foram informadas string strValidacao = ValidarTaxaPreenchida(entradaTaxa.Taxa); // Objeto que recebe o retorno da sessão Contrato.RetornoSessao retSessao = Negocio.Sessao.ValidarSessao(new Contrato.Sessao() { Login = entradaTaxa.UsuarioLogado, Chave = entradaTaxa.Chave }); // Verifica se o usuário está autenticado if (retSessao.Codigo == Contrato.Constantes.COD_RETORNO_SUCESSO) { // Se existe algum erro if (strValidacao.Length > 0) { retTaxa.Codigo = Contrato.Constantes.COD_FILTRO_VAZIO; retTaxa.Mensagem = strValidacao; } else { // Loga no banco de dados Dados.BRASIL_DIDATICOS context = new Dados.BRASIL_DIDATICOS(); // Busca o taxa no banco List<Dados.TAXA> lstTaxas = (from t in context.T_TAXA where (t.NOME_TAXA == entradaTaxa.Taxa.Nome && (entradaTaxa.EmpresaLogada.Id == Guid.Empty || t.ID_EMPRESA == entradaTaxa.EmpresaLogada.Id)) || (entradaTaxa.Novo == null && entradaTaxa.Taxa.Id == t.ID_TAXA) select t).ToList(); // Verifica se foi encontrado algum registro if (lstTaxas.Count > 0 && entradaTaxa.Novo != null && (bool)entradaTaxa.Novo) { // Preenche o objeto de retorno retTaxa.Codigo = Contrato.Constantes.COD_REGISTRO_DUPLICADO; retTaxa.Mensagem = string.Format("A taxa de nome '{0}' já existe!", lstTaxas.First().NOME_TAXA); } else { // Se existe a taxa if (lstTaxas.Count > 0) { // Atualiza a taxa lstTaxas.First().NOME_TAXA = entradaTaxa.Taxa.Nome; lstTaxas.First().BOL_DESCONTO = entradaTaxa.Taxa.Desconto; lstTaxas.First().BOL_FORNECEDOR = entradaTaxa.Taxa.Fornecedor; lstTaxas.First().BOL_PRODUTO = entradaTaxa.Taxa.Produto; lstTaxas.First().BOL_ATIVO = entradaTaxa.Taxa.Ativo; lstTaxas.First().DATA_ATUALIZACAO = DateTime.Now; lstTaxas.First().LOGIN_USUARIO = entradaTaxa.UsuarioLogado; } else { // Cria a taxa Dados.TAXA tTaxa = new Dados.TAXA(); tTaxa.ID_TAXA = Guid.NewGuid(); tTaxa.NOME_TAXA = entradaTaxa.Taxa.Nome; tTaxa.ID_EMPRESA = entradaTaxa.EmpresaLogada.Id; tTaxa.BOL_DESCONTO = entradaTaxa.Taxa.Desconto; tTaxa.BOL_FORNECEDOR = entradaTaxa.Taxa.Fornecedor; tTaxa.BOL_PRODUTO = entradaTaxa.Taxa.Produto; tTaxa.BOL_ATIVO = entradaTaxa.Taxa.Ativo; tTaxa.DATA_ATUALIZACAO = DateTime.Now; tTaxa.LOGIN_USUARIO = entradaTaxa.UsuarioLogado; context.AddToT_TAXA(tTaxa); } // Salva as alterações context.SaveChanges(); // Preenche o objeto de retorno retTaxa.Codigo = Contrato.Constantes.COD_RETORNO_SUCESSO; } } } else { // retorna quando o usuário não está autenticado retTaxa.Codigo = retSessao.Codigo; retTaxa.Mensagem = retSessao.Mensagem; } // retorna dos dados return retTaxa; }
/// <summary> /// Método para salvar o usuário /// </summary> /// <param name="entradaUsuario">Objeto com os dados do usuário a Logar</param> /// <returns>Contrato.RetornoUsuario</returns> internal static Contrato.RetornoUsuario SalvarUsuario(Contrato.EntradaUsuario entradaUsuario) { // Objeto que recebe o retorno do método Contrato.RetornoUsuario retUsuario = new Contrato.RetornoUsuario(); // Objeto que recebe o retorno da sessão Contrato.RetornoSessao retSessao = Negocio.Sessao.ValidarSessao(new Contrato.Sessao() { Login = entradaUsuario.UsuarioLogado, Chave = entradaUsuario.Chave }); // Verifica se o usuário está autenticado if (retSessao.Codigo == Contrato.Constantes.COD_RETORNO_SUCESSO) { // Verifica se as informações do usuário foram informadas string strValidacao = ValidarUsuarioPreenchido(entradaUsuario.Usuario); // Se existe algum erro if (strValidacao.Length > 0) { retUsuario.Codigo = Contrato.Constantes.COD_FILTRO_VAZIO; retUsuario.Mensagem = strValidacao; } else { // Loga no banco de dados Dados.BRASIL_DIDATICOS context = new Dados.BRASIL_DIDATICOS(); // Busca o usuário no banco List<Dados.USUARIO> lstUsuarios = (from u in context.T_USUARIO where (u.LOGIN_USUARIO == entradaUsuario.Usuario.Login && (entradaUsuario.EmpresaLogada.Id == Guid.Empty || u.ID_EMPRESA == entradaUsuario.EmpresaLogada.Id) || (entradaUsuario.Novo == null && entradaUsuario.Usuario.Id == u.ID_USUARIO)) select u).ToList(); // Verifica se foi encontrado algum registro if (lstUsuarios.Count > 0 && entradaUsuario.Novo != null && (bool)entradaUsuario.Novo) { // Preenche o objeto de retorno retUsuario.Codigo = Contrato.Constantes.COD_REGISTRO_DUPLICADO; retUsuario.Mensagem = string.Format("O usuário de Login '{0}' já existe!", lstUsuarios.First().LOGIN_USUARIO); } else { // Se existe o usuário if (lstUsuarios.Count > 0 ) { // Atualiza o fornecedor lstUsuarios.First().NOME_USUARIO = entradaUsuario.Usuario.Nome; lstUsuarios.First().LOGIN_USUARIO = entradaUsuario.Usuario.Login; lstUsuarios.First().SENHA_USUARIO = entradaUsuario.Usuario.Senha; lstUsuarios.First().BOL_ATIVO = (bool)entradaUsuario.Usuario.Ativo; lstUsuarios.First().DATA_ATUALIZACAO = DateTime.Now; lstUsuarios.First().USUARIO_LOGADO = entradaUsuario.UsuarioLogado; // Apaga todos os perfis que estão relacionados while (lstUsuarios.First().T_USUARIO_PERFIL.Count > 0) { context.T_USUARIO_PERFIL.DeleteObject(lstUsuarios.First().T_USUARIO_PERFIL.First()); } // Verifica se existe algum perfil associado ao usuário if (entradaUsuario.Usuario.Perfis != null) { // Para cada perfil associado foreach (Contrato.Perfil perfil in entradaUsuario.Usuario.Perfis) { // Associa o perfil ao usuário lstUsuarios.First().T_USUARIO_PERFIL.Add(new Dados.USUARIO_PERFIL() { ID_USUARIO_PERFIL = Guid.NewGuid(), ID_USUARIO = lstUsuarios.First().ID_USUARIO, ID_PERFIL = perfil.Id, LOGIN_USUARIO = entradaUsuario.UsuarioLogado, DATA_ATUALIZACAO = DateTime.Now }); } } } else { // Cria o usuário Dados.USUARIO tUsuario = new Dados.USUARIO(); tUsuario.ID_USUARIO = Guid.NewGuid(); tUsuario.NOME_USUARIO = entradaUsuario.Usuario.Nome; tUsuario.LOGIN_USUARIO = entradaUsuario.Usuario.Login; tUsuario.SENHA_USUARIO = entradaUsuario.Usuario.Senha; tUsuario.ID_EMPRESA = entradaUsuario.EmpresaLogada.Id; tUsuario.BOL_ATIVO = (bool)entradaUsuario.Usuario.Ativo; tUsuario.DATA_ATUALIZACAO = DateTime.Now; tUsuario.USUARIO_LOGADO = entradaUsuario.UsuarioLogado; if (entradaUsuario.Usuario.Perfis != null) { foreach (Contrato.Perfil perfil in entradaUsuario.Usuario.Perfis) { tUsuario.T_USUARIO_PERFIL.Add(new Dados.USUARIO_PERFIL() { ID_USUARIO_PERFIL = Guid.NewGuid(), ID_USUARIO = entradaUsuario.Usuario.Id, ID_PERFIL = perfil.Id, LOGIN_USUARIO = entradaUsuario.UsuarioLogado, DATA_ATUALIZACAO = DateTime.Now }); } } context.AddToT_USUARIO(tUsuario); } // Salva as alterações context.SaveChanges(); // Preenche o objeto de retorno retUsuario.Codigo = Contrato.Constantes.COD_RETORNO_SUCESSO; } } } else { // retorna quando o usuário não está autenticado retUsuario.Codigo = retSessao.Codigo; retUsuario.Mensagem = retSessao.Mensagem; } // retorna dos dados return retUsuario; }
/// <summary> /// Método para salvar o parametro /// </summary> /// <param name="Parametro">Objeto com os dados do parametro</param> /// <param name="usuarioLogado">Nome do usuário Logado</param> /// <returns>Contrato.RetornoParametro</returns> internal static Contrato.RetornoParametro SalvarParametro(Contrato.Parametro Parametro, string usuarioLogado, Guid idEmpresa) { // Objeto que recebe o retorno do método Contrato.RetornoParametro retParametro = new Contrato.RetornoParametro(); // Verifica se as informações do parametro foram informadas string strValidacao = ValidarParametroPreenchido(Parametro); // Se existe algum erro if (strValidacao.Length > 0) { retParametro.Codigo = Contrato.Constantes.COD_FILTRO_VAZIO; retParametro.Mensagem = strValidacao; } else { // Loga no banco de dados Dados.BRASIL_DIDATICOS context = new Dados.BRASIL_DIDATICOS(); // Busca o parametro no banco List<Dados.PARAMETRO> lstParametros = (from p in context.T_PARAMETRO where (p.COD_PARAMETRO == Parametro.Codigo) && (idEmpresa == Guid.Empty || p.ID_EMPRESA == idEmpresa) select p).ToList(); // Se existe o parametro if (lstParametros.Count > 0) { // Atualiza o parametro lstParametros.First().VALOR_PARAMETRO = Parametro.Valor; lstParametros.First().DATA_ATUALIZACAO = DateTime.Now; lstParametros.First().LOGIN_USUARIO = usuarioLogado; } // Salva as alterações context.SaveChanges(); // Preenche o objeto de retorno retParametro.Codigo = Contrato.Constantes.COD_RETORNO_SUCESSO; } return retParametro; }
/// <summary> /// Método para salvar a sessão /// </summary> /// <param name="Sessao">Objeto com os dados da sessão</param> /// <returns>Contrato.RetornoSessao</returns> internal static Contrato.RetornoSessao SalvarSessao(Contrato.Sessao Sessao) { // Objeto que recebe o retorno do método Contrato.RetornoSessao retSessao = new Contrato.RetornoSessao(); // Verifica se as informações do usuário foram informadas string strValidacao = ValidarSessaoPreenchido(Sessao); // Se existe algum erro if (strValidacao.Length > 0) { retSessao.Codigo = Contrato.Constantes.COD_FILTRO_VAZIO; retSessao.Mensagem = strValidacao; } else { // Loga no banco de dados Dados.BRASIL_DIDATICOS context = new Dados.BRASIL_DIDATICOS(); // Busca o usuário no banco List<Dados.SESSAO> lstSessoes = (from s in context.T_SESSAO where s.LOGIN_USUARIO == Sessao.Login select s).ToList(); // Verifica se foi encontrado algum registro if (lstSessoes.Count > 0 ) { if (lstSessoes.First().DES_CHAVE != Sessao.Chave) { // Preenche o objeto de retorno retSessao.Codigo = Contrato.Constantes.COD_REGISTRO_DUPLICADO; retSessao.Mensagem = string.Format("O usuário de Login '{0}' já está logado!", Sessao.Login); } } else { // Cria o usuário Dados.SESSAO tSessao = new Dados.SESSAO(); tSessao.ID_SESSAO = Guid.NewGuid(); tSessao.LOGIN_USUARIO = Sessao.Login; tSessao.DATA_LOGIN = DateTime.Now; tSessao.DES_CHAVE = Sessao.Chave; context.AddToT_SESSAO(tSessao); // Salva as alterações context.SaveChanges(); // Preenche o objeto de retorno retSessao.Codigo = Contrato.Constantes.COD_RETORNO_SUCESSO; } } // retorna dos dados return retSessao; }
/// <summary> /// Método para salvar os item do orçamento /// </summary> /// <param name="Item">Objeto com os dados do item</param> /// <returns>Contrato.RetornoTaxa</returns> internal static Contrato.RetornoItem SalvarItemOrcamento(Dados.ORCAMENTO Orcamento, string UsuarioLogado, Contrato.Item Item) { // Objeto que recebe o retorno do método Contrato.RetornoItem retItem = new Contrato.RetornoItem(); // Loga no banco de dados Dados.BRASIL_DIDATICOS context = new Dados.BRASIL_DIDATICOS(); // Cria o item Dados.ITEM tItem = new Dados.ITEM() { ID_ITEM = Guid.NewGuid(), DES_ITEM = Item.Descricao, ID_ORCAMENTO = Orcamento.ID_ORCAMENTO, NUM_QUANTIDADE = Item.Quantidade, NUM_VALOR_CUSTO = Item.ValorCusto, NUM_VALOR_UNITARIO = Item.ValorUnitario, NUM_DESCONTO = Item.ValorDesconto, LOGIN_USUARIO = UsuarioLogado, DATA_ATUALIZACAO = DateTime.Now }; if (Item.Produto != null) { tItem.ID_PRODUTO = Item.Produto.Id; if (Item.UnidadeMedida != null) tItem.ID_UNIDADE_MEDIDA = Item.UnidadeMedida.Id; // Verifica se o orçamento foi aprovado if (Orcamento.T_ESTADO_ORCAMENTO != null && Orcamento.T_ESTADO_ORCAMENTO.COD_ESTADO_ORCAMENTO == string.Format("0{0}", (int)Contrato.Enumeradores.EstadoOrcamento.Aprovado)) { // Atualiza a quantidade de produtos if (Item.UnidadeMedida != null && Item.UnidadeMedida.Id != Guid.Empty) { Contrato.UnidadeMedida uMedida = Item.Produto.UnidadeMedidas.Where(um => um.Id == Item.UnidadeMedida.Id).FirstOrDefault(); if (uMedida != null) { uMedida.Quantidade = uMedida.Quantidade - Item.Quantidade; context.T_PRODUTO_UNIDADE_MEDIDA.Where(pum => pum.ID_UNIDADE_MEDIDA == uMedida.Id && pum.ID_PRODUTO == Item.Produto.Id).FirstOrDefault().NUM_QUANTIDADE = uMedida.Quantidade; } } else { Item.Produto.Quantidade = Item.Produto.Quantidade - Item.Quantidade; context.T_PRODUTO.Where(p => p.ID_PRODUTO == Item.Produto.Id).FirstOrDefault().NUM_QUANTIDADE = Item.Produto.Quantidade; } } } Orcamento.T_ITEM.Add(tItem); // Salva as alterações context.SaveChanges(); // Preenche o objeto de retorno retItem.Codigo = Contrato.Constantes.COD_RETORNO_SUCESSO; // retorna dos dados return retItem; }
/// <summary> /// Método para salvar o cliente /// </summary> /// <param name="entradaCliente">Objeto com os dados do cliente</param> /// <returns>Contrato.RetornoCliente</returns> internal static Contrato.RetornoCliente SalvarCliente(Contrato.EntradaCliente entradaCliente) { // Objeto que recebe o retorno do método Contrato.RetornoCliente retCliente = new Contrato.RetornoCliente(); // Objeto que recebe o retorno da sessão Contrato.RetornoSessao retSessao = Negocio.Sessao.ValidarSessao(new Contrato.Sessao() { Login = entradaCliente.UsuarioLogado, Chave = entradaCliente.Chave }); // Verifica se o usuário está autenticado if (retSessao.Codigo == Contrato.Constantes.COD_RETORNO_SUCESSO) { // Verifica se as informações do cliente foram informadas string strValidacao = ValidarClientePreenchido(entradaCliente.Cliente); // Se existe algum erro if (strValidacao.Length > 0) { retCliente.Codigo = Contrato.Constantes.COD_FILTRO_VAZIO; retCliente.Mensagem = strValidacao; } else { // Loga no banco de dados Dados.BRASIL_DIDATICOS context = new Dados.BRASIL_DIDATICOS(); context.ContextOptions.LazyLoadingEnabled = true; // Busca o cliente no banco List<Dados.CLIENTE> lstClientes = (from c in context.T_CLIENTE where (c.COD_CLIENTE == entradaCliente.Cliente.Codigo && (entradaCliente.Cliente.Cpf_Cnpj != null || c.CPF_CNJP_CLIENTE == entradaCliente.Cliente.Cpf_Cnpj) && (entradaCliente.EmpresaLogada.Id == Guid.Empty || c.ID_EMPRESA == entradaCliente.EmpresaLogada.Id)) || (entradaCliente.Novo == null && entradaCliente.Cliente.Id == c.ID_CLIENTE) select c).ToList(); // Verifica se foi encontrado algum registro if (lstClientes.Count > 0 && entradaCliente.Novo != null && (bool)entradaCliente.Novo) { // Preenche o objeto de retorno retCliente.Codigo = Contrato.Constantes.COD_REGISTRO_DUPLICADO; retCliente.Mensagem = string.Format("O cliente de código '{0}' já existe!", lstClientes.First().COD_CLIENTE); } else { // Se existe o cliente if (lstClientes.Count > 0) { // Atualiza o cliente lstClientes.First().NOME_CLIENTE = entradaCliente.Cliente.Nome; lstClientes.First().CAIXA_ESCOLAR = entradaCliente.Cliente.CaixaEscolar; lstClientes.First().BOL_ATIVO = entradaCliente.Cliente.Ativo; lstClientes.First().BOL_PESSOA_FISICA = entradaCliente.Cliente.Tipo == Contrato.Enumeradores.Pessoa.Fisica ? true : false; lstClientes.First().CPF_CNJP_CLIENTE = entradaCliente.Cliente.Cpf_Cnpj; lstClientes.First().DES_EMAIL = entradaCliente.Cliente.Email; lstClientes.First().DES_INSCRICAO_ESTADUAL = entradaCliente.Cliente.InscricaoEstadual; lstClientes.First().NUM_TELEFONE = entradaCliente.Cliente.Telefone; lstClientes.First().NUM_CELULAR = entradaCliente.Cliente.Celular; lstClientes.First().DES_ENDERECO = entradaCliente.Cliente.Endereco; lstClientes.First().NUM_ENDERECO = entradaCliente.Cliente.Numero; lstClientes.First().CMP_ENDERECO = entradaCliente.Cliente.Complemento; lstClientes.First().NUM_CEP = entradaCliente.Cliente.Cep; lstClientes.First().DES_BAIRRO = entradaCliente.Cliente.Bairro; lstClientes.First().DES_CIDADE = entradaCliente.Cliente.Cidade; lstClientes.First().COD_ESTADO = entradaCliente.Cliente.Uf == null ? null : entradaCliente.Cliente.Uf.Codigo; lstClientes.First().DES_ESTADO = entradaCliente.Cliente.Uf == null ? null : entradaCliente.Cliente.Uf.Nome; lstClientes.First().DATA_ATUALIZACAO = DateTime.Now; lstClientes.First().LOGIN_USUARIO = entradaCliente.UsuarioLogado; lstClientes.First().ID_CLIENTE_MATRIZ = entradaCliente.Cliente.ClienteMatriz != null ? entradaCliente.Cliente.ClienteMatriz.Id: Guid.Empty; } else { // Recupera o código do cliente string codigoCliente = string.Empty; if (entradaCliente.Cliente.Codigo != string.Empty) codigoCliente = entradaCliente.Cliente.Codigo; else { System.Data.Objects.ObjectParameter objCodigoOrcamento = new System.Data.Objects.ObjectParameter("P_CODIGO", typeof(global::System.Int32)); context.RETORNAR_CODIGO(Contrato.Constantes.TIPO_COD_CLIENTE, entradaCliente.EmpresaLogada.Id, objCodigoOrcamento); codigoCliente = Util.RecuperaCodigo((int)objCodigoOrcamento.Value, Contrato.Constantes.TIPO_COD_CLIENTE); } // Cria o cliente Dados.CLIENTE tCliente = new Dados.CLIENTE(); tCliente.ID_CLIENTE = Guid.NewGuid(); tCliente.COD_CLIENTE = codigoCliente; tCliente.NOME_CLIENTE = entradaCliente.Cliente.Nome; tCliente.ID_EMPRESA = entradaCliente.EmpresaLogada.Id; tCliente.BOL_ATIVO = entradaCliente.Cliente.Ativo; tCliente.CAIXA_ESCOLAR = entradaCliente.Cliente.CaixaEscolar; tCliente.BOL_PESSOA_FISICA = entradaCliente.Cliente.Tipo == Contrato.Enumeradores.Pessoa.Fisica ? true : false; tCliente.CPF_CNJP_CLIENTE = entradaCliente.Cliente.Cpf_Cnpj; tCliente.DES_EMAIL = entradaCliente.Cliente.Email; tCliente.NUM_TELEFONE = entradaCliente.Cliente.Telefone; tCliente.NUM_CELULAR = entradaCliente.Cliente.Celular; tCliente.DES_INSCRICAO_ESTADUAL = entradaCliente.Cliente.InscricaoEstadual; tCliente.DES_ENDERECO = entradaCliente.Cliente.Endereco; tCliente.NUM_ENDERECO = entradaCliente.Cliente.Numero; tCliente.CMP_ENDERECO = entradaCliente.Cliente.Complemento; tCliente.NUM_CEP = entradaCliente.Cliente.Cep; tCliente.DES_BAIRRO = entradaCliente.Cliente.Bairro; tCliente.DES_CIDADE = entradaCliente.Cliente.Cidade; tCliente.COD_ESTADO = entradaCliente.Cliente.Uf == null ? null : entradaCliente.Cliente.Uf.Codigo; tCliente.DES_ESTADO = entradaCliente.Cliente.Uf == null ? null : entradaCliente.Cliente.Uf.Nome; tCliente.DATA_ATUALIZACAO = DateTime.Now; tCliente.LOGIN_USUARIO = entradaCliente.UsuarioLogado; tCliente.ID_CLIENTE_MATRIZ = entradaCliente.Cliente.ClienteMatriz != null ? entradaCliente.Cliente.ClienteMatriz.Id : Guid.Empty; // Adiciona o cliente na tabela context.AddToT_CLIENTE(tCliente); } // Salva as alterações context.SaveChanges(); // Preenche o objeto de retorno retCliente.Codigo = Contrato.Constantes.COD_RETORNO_SUCESSO; } } } else { // retorna quando o usuário não está autenticado retCliente.Codigo = retSessao.Codigo; retCliente.Mensagem = retSessao.Mensagem; } // retorna dos dados return retCliente; }
/// <summary> /// Método para salvar a unidade de medida /// </summary> /// <param name="UnidadeMedidas">Objeto com os dados da unidade de medida</param> /// <returns>Contrato.RetornoUnidadeMedida</returns> internal static Contrato.RetornoUnidadeMedida SalvarUnidadeMedida(Contrato.EntradaUnidadeMedida entradaUnidadeMedida) { // Objeto que recebe o retorno do método Contrato.RetornoUnidadeMedida retUnidadeMedida = new Contrato.RetornoUnidadeMedida(); // Verifica se as informações do unidademedida foram informadas string strValidacao = ValidarUnidadeMedidaPreenchido(entradaUnidadeMedida.UnidadeMedida); // Objeto que recebe o retorno da sessão Contrato.RetornoSessao retSessao = Negocio.Sessao.ValidarSessao(new Contrato.Sessao() { Login = entradaUnidadeMedida.UsuarioLogado, Chave = entradaUnidadeMedida.Chave }); // Verifica se o usuário está autenticado if (retSessao.Codigo == Contrato.Constantes.COD_RETORNO_SUCESSO) { // Se existe algum erro if (strValidacao.Length > 0) { retUnidadeMedida.Codigo = Contrato.Constantes.COD_FILTRO_VAZIO; retUnidadeMedida.Mensagem = strValidacao; } else { // Loga no banco de dados Dados.BRASIL_DIDATICOS context = new Dados.BRASIL_DIDATICOS(); // Busca o unidademedida no banco List<Dados.UNIDADE_MEDIDA> lstUnidadeMedidas = (from um in context.T_UNIDADE_MEDIDA where (um.COD_UNIDADE_MEDIDA == entradaUnidadeMedida.UnidadeMedida.Codigo && (entradaUnidadeMedida.EmpresaLogada.Id == Guid.Empty || um.ID_EMPRESA == entradaUnidadeMedida.EmpresaLogada.Id)) || (entradaUnidadeMedida.Novo == null && entradaUnidadeMedida.UnidadeMedida.Id == um.ID_UNIDADE_MEDIDA) select um).ToList(); // Verifica se foi encontrado algum registro if (lstUnidadeMedidas.Count > 0 && entradaUnidadeMedida.Novo != null && (bool)entradaUnidadeMedida.Novo) { // Preenche o objeto de retorno retUnidadeMedida.Codigo = Contrato.Constantes.COD_REGISTRO_DUPLICADO; retUnidadeMedida.Mensagem = string.Format("A unidade de medida de código '{0}' já existe!", lstUnidadeMedidas.First().COD_UNIDADE_MEDIDA); } else { // Se existe o unidademedida if (lstUnidadeMedidas.Count > 0) { // Atualiza o unidademedida lstUnidadeMedidas.First().NOME_UNIDADE_MEDIDA = entradaUnidadeMedida.UnidadeMedida.Nome; lstUnidadeMedidas.First().DES_UNIDADE_MEDIDA = entradaUnidadeMedida.UnidadeMedida.Descricao; lstUnidadeMedidas.First().BOL_ATIVO = entradaUnidadeMedida.UnidadeMedida.Ativo; lstUnidadeMedidas.First().DATA_ATUALIZACAO = DateTime.Now; lstUnidadeMedidas.First().LOGIN_USUARIO = entradaUnidadeMedida.UsuarioLogado; } else { // Cria o unidademedida Dados.UNIDADE_MEDIDA tUnidadeMedida = new Dados.UNIDADE_MEDIDA(); tUnidadeMedida.ID_UNIDADE_MEDIDA = Guid.NewGuid(); tUnidadeMedida.COD_UNIDADE_MEDIDA = entradaUnidadeMedida.UnidadeMedida.Codigo; tUnidadeMedida.NOME_UNIDADE_MEDIDA = entradaUnidadeMedida.UnidadeMedida.Nome; tUnidadeMedida.DES_UNIDADE_MEDIDA = entradaUnidadeMedida.UnidadeMedida.Descricao; tUnidadeMedida.ID_EMPRESA = entradaUnidadeMedida.EmpresaLogada.Id; tUnidadeMedida.BOL_ATIVO = entradaUnidadeMedida.UnidadeMedida.Ativo; tUnidadeMedida.DATA_ATUALIZACAO = DateTime.Now; tUnidadeMedida.LOGIN_USUARIO = entradaUnidadeMedida.UsuarioLogado; context.AddToT_UNIDADE_MEDIDA(tUnidadeMedida); } // Salva as alterações context.SaveChanges(); // Preenche o objeto de retorno retUnidadeMedida.Codigo = Contrato.Constantes.COD_RETORNO_SUCESSO; } } } else { // retorna quando o usuário não está autenticado retUnidadeMedida.Codigo = retSessao.Codigo; retUnidadeMedida.Mensagem = retSessao.Mensagem; } // retorna dos dados return retUnidadeMedida; }
/// <summary> /// Método para salvar o perfil /// </summary> /// <param name="Perfis">Objeto com os dados do perfil</param> /// <returns>Contrato.RetornoPerfil</returns> internal static Contrato.RetornoPerfil SalvarPerfil(Contrato.EntradaPerfil entradaPerfil) { // Objeto que recebe o retorno do método Contrato.RetornoPerfil retPerfil = new Contrato.RetornoPerfil(); // Verifica se as informações do perfil foram informadas string strValidacao = ValidarPerfilPreenchido(entradaPerfil.Perfil); // Objeto que recebe o retorno da sessão Contrato.RetornoSessao retSessao = Negocio.Sessao.ValidarSessao(new Contrato.Sessao() { Login = entradaPerfil.UsuarioLogado, Chave = entradaPerfil.Chave }); // Verifica se o usuário está autenticado if (retSessao.Codigo == Contrato.Constantes.COD_RETORNO_SUCESSO) { // Se existe algum erro if (strValidacao.Length > 0) { retPerfil.Codigo = Contrato.Constantes.COD_FILTRO_VAZIO; retPerfil.Mensagem = strValidacao; } else { // Loga no banco de dados Dados.BRASIL_DIDATICOS context = new Dados.BRASIL_DIDATICOS(); context.ContextOptions.LazyLoadingEnabled = true; // Busca o perfil no banco List<Dados.PERFIL> lstPerfis = (from p in context.T_PERFIL where (p.COD_PERFIL == entradaPerfil.Perfil.Codigo && (entradaPerfil.EmpresaLogada.Id == Guid.Empty || p.ID_EMPRESA == entradaPerfil.EmpresaLogada.Id)) || (entradaPerfil.Novo == null && entradaPerfil.Perfil.Id == p.ID_PERFIL) select p).ToList(); // Verifica se foi encontrado algum registro if (lstPerfis.Count > 0 && entradaPerfil.Novo != null && (bool)entradaPerfil.Novo) { // Preenche o objeto de retorno retPerfil.Codigo = Contrato.Constantes.COD_REGISTRO_DUPLICADO; retPerfil.Mensagem = string.Format("O perfil de código '{0}' já existe!", lstPerfis.First().COD_PERFIL); } else { // Se existe o perfil if (lstPerfis.Count > 0) { // Atualiza o perfil lstPerfis.First().NOME_PERFIL = entradaPerfil.Perfil.Nome; lstPerfis.First().DES_PERFIL = entradaPerfil.Perfil.Descricao; lstPerfis.First().BOL_ATIVO = entradaPerfil.Perfil.Ativo; lstPerfis.First().DATA_ATUALIZACAO = DateTime.Now; lstPerfis.First().LOGIN_USUARIO = entradaPerfil.UsuarioLogado; // Apaga todos os perfis que estão relacionados while (lstPerfis.First().T_PERFIL_PERMISSAO.Count > 0) { context.T_PERFIL_PERMISSAO.DeleteObject(lstPerfis.First().T_PERFIL_PERMISSAO.First()); } // Verifica se existe algum perfil associado ao usuário if (entradaPerfil.Perfil.Permissoes != null) { // Para cada perfil associado foreach (Contrato.Permissao permissao in entradaPerfil.Perfil.Permissoes) { // Associa o perfil ao usuário lstPerfis.First().T_PERFIL_PERMISSAO.Add(new Dados.PERFIL_PERMISSAO() { ID_PERFIL_PERMISSAO = Guid.NewGuid(), ID_PERFIL = lstPerfis.First().ID_PERFIL, ID_PERMISSAO = permissao.Id, LOGIN_USUARIO = entradaPerfil.UsuarioLogado, DATA_ATUALIZACAO = DateTime.Now }); } } } else { // Cria o perfil Dados.PERFIL tPerfil = new Dados.PERFIL(); tPerfil.ID_PERFIL = Guid.NewGuid(); tPerfil.ID_EMPRESA = entradaPerfil.EmpresaLogada.Id; tPerfil.COD_PERFIL = entradaPerfil.Perfil.Codigo; tPerfil.NOME_PERFIL = entradaPerfil.Perfil.Nome; tPerfil.DES_PERFIL = entradaPerfil.Perfil.Descricao; tPerfil.BOL_ATIVO = entradaPerfil.Perfil.Ativo; tPerfil.DATA_ATUALIZACAO = DateTime.Now; tPerfil.LOGIN_USUARIO = entradaPerfil.UsuarioLogado; // Verifica se existe algum perfil associado ao usuário if (entradaPerfil.Perfil.Permissoes != null) { // Para cada perfil associado foreach (Contrato.Permissao permissao in entradaPerfil.Perfil.Permissoes) { // Associa o perfil ao usuário tPerfil.T_PERFIL_PERMISSAO.Add(new Dados.PERFIL_PERMISSAO() { ID_PERFIL_PERMISSAO = Guid.NewGuid(), ID_PERFIL = entradaPerfil.Perfil.Id, ID_PERMISSAO = permissao.Id, LOGIN_USUARIO = entradaPerfil.UsuarioLogado, DATA_ATUALIZACAO = DateTime.Now }); } } context.AddToT_PERFIL(tPerfil); } // Salva as alterações context.SaveChanges(); // Preenche o objeto de retorno retPerfil.Codigo = Contrato.Constantes.COD_RETORNO_SUCESSO; } } } else { // retorna quando o usuário não está autenticado retPerfil.Codigo = retSessao.Codigo; retPerfil.Mensagem = retSessao.Mensagem; } // retorna dos dados return retPerfil; }
/// <summary> /// Método para salvar o produto /// </summary> /// <param name="entradaProduto">Objeto com os dados do produto</param> /// <returns>Contrato.RetornoProduto</returns> internal static Contrato.RetornoProduto SalvarProdutos(Contrato.EntradaProdutos entradaProdutos) { // Objeto que recebe o retorno do método Contrato.RetornoProduto retProduto = new Contrato.RetornoProduto(); // Objeto que recebe o retorno da sessão Contrato.RetornoSessao retSessao = Negocio.Sessao.ValidarSessao(new Contrato.Sessao() { Login = entradaProdutos.UsuarioLogado, Chave = entradaProdutos.Chave }); // Verifica se o usuário está autenticado if (retSessao.Codigo == Contrato.Constantes.COD_RETORNO_SUCESSO) { if (entradaProdutos.Produtos != null) { // Loga no banco de dados Dados.BRASIL_DIDATICOS context = new Dados.BRASIL_DIDATICOS(); // Se o identificador do fornecedor está vazio if (entradaProdutos.Fornecedor != null && entradaProdutos.Fornecedor.Id == Guid.Empty) // Busca os dados do fornecedor entradaProdutos.Fornecedor = Fornecedor.BuscarFornecedor((from f in context.T_FORNECEDOR where f.COD_FORNECEDOR == entradaProdutos.Fornecedor.Codigo select f).FirstOrDefault()); // Para cada produto existente na lista foreach (Contrato.Produto produto in entradaProdutos.Produtos) { // Se encontrou o fornecedor if (entradaProdutos.Fornecedor != null) // Define o fornecedor do produto produto.Fornecedor = entradaProdutos.Fornecedor; // Verifica se as informações do produto foram informadas string strValidacao = ValidarProdutoPreenchido(produto); // Se existe algum erro if (strValidacao.Length > 0) { retProduto.Codigo = Contrato.Constantes.COD_FILTRO_VAZIO; retProduto.Mensagem = strValidacao; } else { context.ContextOptions.LazyLoadingEnabled = true; // Busca o produto no banco List<Dados.PRODUTO> lstProdutos = (from p in context.T_PRODUTO where p.ID_PRODUTO == produto.Id && produto.Id != Guid.Empty && p.ID_FORNECEDOR == produto.Fornecedor.Id select p).ToList(); // Se existe o produto if (lstProdutos.Count > 0) { // Atualiza o produto lstProdutos.First().COD_BARRAS = produto.CodigoBarras; lstProdutos.First().NUM_QUANTIDADE = produto.Quantidade; lstProdutos.First().NUM_VALOR = produto.ValorBase; lstProdutos.First().NUM_VALOR_ATACADO = produto.ValorPercentagemAtacado; lstProdutos.First().NUM_VALOR_VAREJO = produto.ValorPercentagemVarejo; lstProdutos.First().ID_FORNECEDOR = produto.Fornecedor.Id; lstProdutos.First().NCM_PRODUTO = produto.Ncm; lstProdutos.First().BOL_ATIVO = (bool)produto.Fornecedor.Ativo; lstProdutos.First().DATA_ATUALIZACAO = DateTime.Now; lstProdutos.First().LOGIN_USUARIO = entradaProdutos.UsuarioLogado; // Apaga todas as taxas que estão relacionados while (lstProdutos.First().T_PRODUTO_TAXA.Count > 0) { context.T_PRODUTO_TAXA.DeleteObject(lstProdutos.First().T_PRODUTO_TAXA.First()); } // Se existe o forneedor if (entradaProdutos.Fornecedor != null) { // Verifica se existe alguma taxa associada ao fornecedor if (produto.Fornecedor.Taxas != null) { // Para cada taxa associada foreach (Contrato.Taxa taxa in produto.Fornecedor.Taxas) { Negocio.Taxa.SalvarTaxaProduto(lstProdutos.First(), entradaProdutos.UsuarioLogado, taxa); } } } // Verifica se existe alguma taxa associada ao produto if (produto.Taxas != null) { // Para cada taxa associada foreach (Contrato.Taxa taxa in produto.Taxas) { Negocio.Taxa.SalvarTaxaProduto(lstProdutos.First(), entradaProdutos.UsuarioLogado, taxa); } } } else { // Cria o produto Dados.PRODUTO tProduto = new Dados.PRODUTO(); tProduto.ID_PRODUTO = Guid.NewGuid(); tProduto.COD_PRODUTO = BuscarCodigoProduto(entradaProdutos.EmpresaLogada.Id); tProduto.COD_BARRAS = produto.CodigoBarras; tProduto.NOME_PRODUTO = produto.Nome; tProduto.COD_PRODUTO_FORNECEDOR = produto.CodigoFornecedor; tProduto.ID_FORNECEDOR = produto.Fornecedor.Id; tProduto.NUM_QUANTIDADE = produto.Quantidade; tProduto.NUM_VALOR = produto.ValorBase; tProduto.NUM_VALOR_ATACADO = produto.ValorPercentagemAtacado; tProduto.NUM_VALOR_VAREJO = produto.ValorPercentagemVarejo; tProduto.NCM_PRODUTO = produto.Ncm; tProduto.BOL_ATIVO = produto.Ativo; tProduto.DATA_ATUALIZACAO = DateTime.Now; tProduto.LOGIN_USUARIO = entradaProdutos.UsuarioLogado; // Verifica se existe alguma taxa associada ao produto if (produto.Fornecedor.Taxas != null) { // Para cada taxa associada foreach (Contrato.Taxa taxa in produto.Fornecedor.Taxas) { Negocio.Taxa.SalvarTaxaProduto(tProduto, entradaProdutos.UsuarioLogado, taxa); } } context.AddToT_PRODUTO(tProduto); } } } // Salva as alterações context.SaveChanges(); // Preenche o objeto de retorno retProduto.Codigo = Contrato.Constantes.COD_RETORNO_SUCESSO; } } else { // retorna quando o usuário não está autenticado retProduto.Codigo = retSessao.Codigo; retProduto.Mensagem = retSessao.Mensagem; } // retorna dos dados return retProduto; }
/// <summary> /// Método para salvar o produto /// </summary> /// <param name="entradaProduto">Objeto com os dados do produto</param> /// <returns>Contrato.RetornoProduto</returns> internal static Contrato.RetornoProduto SalvarProduto(Contrato.EntradaProduto entradaProduto) { // Objeto que recebe o retorno do método Contrato.RetornoProduto retProduto = new Contrato.RetornoProduto(); // Objeto que recebe o retorno da sessão Contrato.RetornoSessao retSessao = Negocio.Sessao.ValidarSessao(new Contrato.Sessao() { Login = entradaProduto.UsuarioLogado, Chave = entradaProduto.Chave }); // Verifica se o usuário está autenticado if (retSessao.Codigo == Contrato.Constantes.COD_RETORNO_SUCESSO) { // Verifica se as informações do produto foram informadas string strValidacao = ValidarProdutoPreenchido(entradaProduto.Produto); // Se existe algum erro if (strValidacao.Length > 0) { retProduto.Codigo = Contrato.Constantes.COD_FILTRO_VAZIO; retProduto.Mensagem = strValidacao; } else { // Loga no banco de dados Dados.BRASIL_DIDATICOS context = new Dados.BRASIL_DIDATICOS(); context.ContextOptions.LazyLoadingEnabled = true; // Busca o produto no banco List<Dados.PRODUTO> lstProdutos = (from p in context.T_PRODUTO where (p.COD_PRODUTO == entradaProduto.Produto.Codigo || (entradaProduto.Novo == null && entradaProduto.Produto.Id == p.ID_PRODUTO) || (entradaProduto.Novo.Value == true && p.COD_PRODUTO_FORNECEDOR == entradaProduto.Produto.CodigoFornecedor && p.COD_PRODUTO_FORNECEDOR != string.Empty && p.ID_FORNECEDOR == entradaProduto.Produto.Fornecedor.Id)) select p).ToList(); // Verifica se foi encontrado algum registro if (lstProdutos.Count > 0 && entradaProduto.Novo != null && (bool)entradaProduto.Novo) { // Preenche o objeto de retorno retProduto.Codigo = Contrato.Constantes.COD_REGISTRO_DUPLICADO; retProduto.Mensagem = string.Format("O produto de código '{0}' já existe!", lstProdutos.First().COD_PRODUTO); } else { // Se existe o produto if (lstProdutos.Count > 0) { // Atualiza o produto lstProdutos.First().NOME_PRODUTO = entradaProduto.Produto.Nome; lstProdutos.First().COD_BARRAS = entradaProduto.Produto.CodigoBarras; lstProdutos.First().NUM_QUANTIDADE = entradaProduto.Produto.Quantidade; lstProdutos.First().NUM_VALOR = entradaProduto.Produto.ValorBase; lstProdutos.First().NUM_VALOR_ATACADO = entradaProduto.Produto.ValorPercentagemAtacado; lstProdutos.First().NUM_VALOR_VAREJO = entradaProduto.Produto.ValorPercentagemVarejo; lstProdutos.First().COD_PRODUTO_FORNECEDOR = entradaProduto.Produto.CodigoFornecedor; lstProdutos.First().ID_FORNECEDOR = entradaProduto.Produto.Fornecedor.Id; lstProdutos.First().NCM_PRODUTO = entradaProduto.Produto.Ncm; lstProdutos.First().BOL_ATIVO = entradaProduto.Produto.Ativo; lstProdutos.First().DATA_ATUALIZACAO = DateTime.Now; lstProdutos.First().LOGIN_USUARIO = entradaProduto.UsuarioLogado; // Apaga todas as taxas que estão relacionados while (lstProdutos.First().T_PRODUTO_TAXA.Count > 0) { context.T_PRODUTO_TAXA.DeleteObject(lstProdutos.First().T_PRODUTO_TAXA.First()); } // Verifica se existe alguma taxa associada ao produto if (entradaProduto.Produto.Taxas != null) { // Para cada taxa associada foreach (Contrato.Taxa taxa in entradaProduto.Produto.Taxas) { Negocio.Taxa.SalvarTaxaProduto(lstProdutos.First(), entradaProduto.UsuarioLogado, taxa); } } // Apaga todas as unidades de medidas que estão relacionados while (lstProdutos.First().T_PRODUTO_UNIDADE_MEDIDA.Count > 0) { context.T_PRODUTO_UNIDADE_MEDIDA.DeleteObject(lstProdutos.First().T_PRODUTO_UNIDADE_MEDIDA.First()); } // Verifica se existe alguma unidade de medida associado ao produto if (entradaProduto.Produto.UnidadeMedidas != null) { // Para cada taxa associada foreach (Contrato.UnidadeMedida unidadeMedida in entradaProduto.Produto.UnidadeMedidas) { Negocio.UnidadeMedida.SalvarUnidadeMedidaProduto(lstProdutos.First(), entradaProduto.UsuarioLogado, unidadeMedida); } } } else { // Recupera o código do produto string codigoProduto = string.Empty; if (entradaProduto.Produto.Codigo != string.Empty) codigoProduto = entradaProduto.Produto.Codigo; else { System.Data.Objects.ObjectParameter objCodigoProduto = new System.Data.Objects.ObjectParameter("P_CODIGO", typeof(global::System.Int32)); context.RETORNAR_CODIGO(Contrato.Constantes.TIPO_COD_PRODUTO, entradaProduto.EmpresaLogada.Id, objCodigoProduto); codigoProduto = Util.RecuperaCodigo((int)objCodigoProduto.Value, Contrato.Constantes.TIPO_COD_PRODUTO); } // Cria o produto Dados.PRODUTO tProduto = new Dados.PRODUTO(); tProduto.ID_PRODUTO = Guid.NewGuid(); tProduto.COD_PRODUTO = codigoProduto; tProduto.COD_BARRAS = entradaProduto.Produto.CodigoBarras; tProduto.NOME_PRODUTO = entradaProduto.Produto.Nome; tProduto.COD_PRODUTO_FORNECEDOR = entradaProduto.Produto.CodigoFornecedor; tProduto.ID_FORNECEDOR = entradaProduto.Produto.Fornecedor.Id; tProduto.NCM_PRODUTO = entradaProduto.Produto.Ncm; tProduto.NUM_VALOR = entradaProduto.Produto.ValorBase; tProduto.NUM_VALOR_ATACADO = entradaProduto.Produto.ValorPercentagemAtacado; tProduto.NUM_VALOR_VAREJO = entradaProduto.Produto.ValorPercentagemVarejo; tProduto.NUM_QUANTIDADE = entradaProduto.Produto.Quantidade; tProduto.BOL_ATIVO = entradaProduto.Produto.Ativo; tProduto.DATA_ATUALIZACAO = DateTime.Now; tProduto.LOGIN_USUARIO = entradaProduto.UsuarioLogado; // Verifica se existe alguma taxa associada ao produto if (entradaProduto.Produto.Taxas != null) { // Para cada taxa associada foreach (Contrato.Taxa taxa in entradaProduto.Produto.Taxas) { Negocio.Taxa.SalvarTaxaProduto(tProduto, entradaProduto.UsuarioLogado, taxa); } } // Verifica se existe alguma unidade de medida associado ao produto if (entradaProduto.Produto.UnidadeMedidas != null) { // Para cada taxa associada foreach (Contrato.UnidadeMedida unidadeMedida in entradaProduto.Produto.UnidadeMedidas) { Negocio.UnidadeMedida.SalvarUnidadeMedidaProduto(lstProdutos.First(), entradaProduto.UsuarioLogado, unidadeMedida); } } context.AddToT_PRODUTO(tProduto); } // Salva as alterações context.SaveChanges(); // Preenche o objeto de retorno retProduto.Codigo = Contrato.Constantes.COD_RETORNO_SUCESSO; } } } else { // retorna quando o usuário não está autenticado retProduto.Codigo = retSessao.Codigo; retProduto.Mensagem = retSessao.Mensagem; } // retorna dos dados return retProduto; }
/// <summary> /// Método para salvar os item do pedido /// </summary> /// <param name="ItemPedido">Objeto com os dados do item</param> /// <returns>Contrato.RetornoItem</returns> internal static Contrato.RetornoItemPedido SalvarItemPedidoPedido(Dados.PEDIDO Pedido, string UsuarioLogado, Contrato.ItemPedido ItemPedido) { // Objeto que recebe o retorno do método Contrato.RetornoItemPedido retItemPedido = new Contrato.RetornoItemPedido(); // Loga no banco de dados Dados.BRASIL_DIDATICOS context = new Dados.BRASIL_DIDATICOS(); // Cria o item Dados.ITEM_PEDIDO tItemPedido = new Dados.ITEM_PEDIDO() { ID_ITEM_PEDIDO = Guid.NewGuid(), ID_PEDIDO = Pedido.ID_PEDIDO, NUM_QUANTIDADE = ItemPedido.Quantidade, NUM_VALOR = ItemPedido.Valor, NUM_DESCONTO = ItemPedido.ValorDesconto, LOGIN_USUARIO = UsuarioLogado, DATA_ATUALIZACAO = DateTime.Now }; if (ItemPedido.Produto != null) { tItemPedido.ID_PRODUTO = ItemPedido.Produto.Id; if (ItemPedido.UnidadeMedida != null) tItemPedido.ID_UNIDADE_MEDIDA = ItemPedido.UnidadeMedida.Id; // Verifica se o pedido foi aprovado if (Pedido.T_ESTADO_PEDIDO != null && Pedido.T_ESTADO_PEDIDO.COD_ESTADO_PEDIDO == string.Format("0{0}", (int)Contrato.Enumeradores.EstadoPedido.Aprovado)) { // Atualiza a quantidade de produtos if (ItemPedido.UnidadeMedida != null && ItemPedido.UnidadeMedida.Id != Guid.Empty) { Contrato.UnidadeMedida uMedida = ItemPedido.Produto.UnidadeMedidas.Where(um => um.Id == ItemPedido.UnidadeMedida.Id).FirstOrDefault(); if (uMedida != null) { uMedida.Quantidade = uMedida.Quantidade + ItemPedido.Quantidade; context.T_PRODUTO.Where(p => p.ID_PRODUTO == ItemPedido.Produto.Id).FirstOrDefault().NUM_VALOR = ItemPedido.Valor / uMedida.QuantidadeItens; context.T_PRODUTO_UNIDADE_MEDIDA.Where(pum => pum.ID_UNIDADE_MEDIDA == uMedida.Id && pum.ID_PRODUTO == ItemPedido.Produto.Id).FirstOrDefault().NUM_QUANTIDADE = uMedida.Quantidade; } } else { ItemPedido.Produto.Quantidade = ItemPedido.Produto.Quantidade + ItemPedido.Quantidade; Dados.PRODUTO objProduto = context.T_PRODUTO.Where(p => p.ID_PRODUTO == ItemPedido.Produto.Id).FirstOrDefault(); objProduto.NUM_QUANTIDADE = ItemPedido.Quantidade; objProduto.NUM_VALOR = ItemPedido.Valor; } } } Pedido.T_ITEM_PEDIDO.Add(tItemPedido); // Salva as alterações context.SaveChanges(); // Preenche o objeto de retorno retItemPedido.Codigo = Contrato.Constantes.COD_RETORNO_SUCESSO; // retorna dos dados return retItemPedido; }