/// <summary> /// Insere no Banco de dados dados de uma pessoa juridica /// </summary> /// <param name="pj">obj pessoa juridica</param> /// <returns>verdadeiro em caso de sucesso</returns> public bool Inserir(Model.pessoas.PesJuridica pj) { _bd = new Persistencia(); _bd.IniciarTransacao(); try { _bd.Cmd.CommandText = @"INSERT INTO pessoas (nome, dtcad, tipo) VALUES (@nome, @dtCad,@tipo); SELECT LAST_INSERT_ID()"; _bd.Cmd.Parameters.AddWithValue("@nome", pj.Nome); _bd.Cmd.Parameters.AddWithValue("@dtCad", DateTime.Now); _bd.Cmd.Parameters.AddWithValue("@tipo", 'j');//tipo juridico forçado caso haja erro pj.Id = Convert.ToInt32(_bd.ExecuteScalar()); _bd.Cmd.Parameters.Clear(); _bd.Cmd.CommandText = @"INSERT INTO pessoaJuridica (pes_id, nomeFantasia, ie, cnpj) VALUES (@pesId, @nomeFantasia, @ie, @cnpj)"; _bd.Cmd.Parameters.AddWithValue("@pesId", pj.Id); _bd.Cmd.Parameters.AddWithValue("@nomeFantasia", pj.NomeFantasia == "" ? (object)DBNull.Value : pj.NomeFantasia); _bd.Cmd.Parameters.AddWithValue("@ie", pj.Ie == "" ? (object)DBNull.Value : pj.Ie); _bd.Cmd.Parameters.AddWithValue("@cnpj", pj.Cnpj == "" ? (object)DBNull.Value : pj.Cnpj); _bd.ExecuteNonQuery(); _bd.ConfirmarTransacao(); } catch (Exception) { _bd.CancelarTransacao(); return false; } return true; }
/// <summary> /// Atualiza no Banco de dados dados de uma pessoa juridica /// </summary> /// <param name="pj">Pessoa Juridica</param> /// <returns>verdadeiro em caso de sucesso</returns> public bool Atualizar(Model.pessoas.PesJuridica pj) { _bd = new Persistencia(); _bd.IniciarTransacao(); try { _bd.Cmd.CommandText = @"UPDATE pessoas SET nome= @nome WHERE id=@pesId"; _bd.Cmd.Parameters.AddWithValue("@pesId", pj.Id); _bd.Cmd.Parameters.AddWithValue("@nome", pj.Nome); _bd.ExecuteNonQuery(); _bd.Cmd.Parameters.Clear(); _bd.Cmd.CommandText = @"UPDATE pessoaJuridica SET nomeFantasia = @nomeFantasia, ie = @ie, cnpj = @cnpj WHERE pes_id=@pesId"; _bd.Cmd.Parameters.AddWithValue("@pesId", pj.Id); _bd.Cmd.Parameters.AddWithValue("@ie", pj.Ie == "" ? (object)DBNull.Value : pj.Ie); _bd.Cmd.Parameters.AddWithValue("@cnpj", pj.Cnpj == "" ? (object)DBNull.Value : pj.Cnpj); _bd.ExecuteNonQuery(); _bd.ConfirmarTransacao(); } catch (Exception) { _bd.CancelarTransacao(); return false; } return true; }
//ultima modificacao/checagem em 28/01/2014 funcionando! by GM /// <summary> /// Troca o Endereço Princpipal para o novo informado /// </summary> /// <param name="endId"></param> /// <param name="pesCod"></param> /// <returns></returns> public bool AtualizaPrincipal(Endereco end) { _bd = new Persistencia(); try { _bd.IniciarTransacao(); //limpa todos principais _bd.Cmd.CommandText = @"update enderecos set principal = 0 where pes_id = @pesId"; _bd.Cmd.Parameters.AddWithValue("@pesId", end.Pessoa.Id); _bd.ExecuteNonQuery(); _bd.Cmd.Parameters.Clear(); //seta novo principal _bd.Cmd.CommandText = @"update enderecos set principal = 1 where pes_id = @pesId and id = @id";//id do endereco _bd.Cmd.Parameters.AddWithValue("@pesId", end.Pessoa.Id); _bd.Cmd.Parameters.AddWithValue("@id", end.Id);//look aki _bd.ExecuteNonQuery(); } catch (Exception) { _bd.CancelarTransacao(); return false; } _bd.ConfirmarTransacao(); return true; }
//ultima modificacao/checagem em 15/01/2014 funcionando! by GM public bool Excluir(Linha linha) { _bd = new Persistencia(); _bd.IniciarTransacao(); try { _bd.Cmd.Parameters.AddWithValue("@id", linha.Id); _bd.Cmd.CommandText = @"DELETE FROM enderecos_linha WHERE linha_id = @id"; _bd.ExecuteNonQuery(); _bd.Cmd.CommandText = @"DELETE FROM linhasColeta WHERE id=@id"; _bd.ExecuteNonQuery(); } catch (Exception) { _bd.CancelarTransacao(); return false; } _bd.ConfirmarTransacao(); return true; }
//ultima modificacao/checagem 17/01/2014 by GM public bool Inserir(PesFisica pf) { _bd = new Persistencia(); _bd.IniciarTransacao(); try { _bd.Cmd.CommandText = @"INSERT INTO pessoas (nome, dtcad, status, tipo) VALUES (@nome, @dtCad, @status,@tipo); SELECT LAST_INSERT_ID()"; _bd.Cmd.Parameters.AddWithValue("@nome", pf.Nome); _bd.Cmd.Parameters.AddWithValue("@dtCad", DateTime.Now); _bd.Cmd.Parameters.AddWithValue("@status", 1);//status ativo ja que cadastro novo _bd.Cmd.Parameters.AddWithValue("@tipo", 'f');//tipo f pf.Id = Convert.ToInt32(_bd.ExecuteScalar());//recupera id nova! _bd.Cmd.Parameters.Clear(); _bd.Cmd.CommandText = @"INSERT INTO pessoaFisica (pes_id, apelido, dtNascimento, rg, cpf, cnh_categoria, cnh_registro, cnh_validade, cnh_emissao) VALUES (@pesId, @apelido, @dtNasc, @rg, @cpf, @cnh_cat, @cnh_num, @cnh_validade, @cnh_emissao)"; _bd.Cmd.Parameters.AddWithValue("@pesId", pf.Id); _bd.Cmd.Parameters.AddWithValue("@apelido", pf.Apelido == "" ? (object)DBNull.Value : pf.Apelido); _bd.Cmd.Parameters.AddWithValue("@dtNasc", pf.DtNascimento.ToShortDateString() == "01/01/0001" ? (object)DBNull.Value : pf.DtNascimento); _bd.Cmd.Parameters.AddWithValue("@rg", pf.Rg == "" ? (object)DBNull.Value : pf.Rg); _bd.Cmd.Parameters.AddWithValue("@cpf", pf.Cpf == "" ? (object)DBNull.Value : pf.Cpf); _bd.Cmd.Parameters.AddWithValue("@cnh_cat", pf.CnhLetra == "" ? (object)DBNull.Value : pf.CnhLetra); _bd.Cmd.Parameters.AddWithValue("@cnh_num", pf.Cnh == "" ? (object)DBNull.Value : pf.Cnh); _bd.Cmd.Parameters.AddWithValue("@cnh_validade", pf.CnhValidade.ToShortDateString() == "01/01/0001" ? (object)DBNull.Value : pf.CnhValidade); _bd.Cmd.Parameters.AddWithValue("@cnh_emissao", pf.CnhEmissao.ToShortDateString() == "01/01/0001" ? (object)DBNull.Value : pf.CnhEmissao); _bd.ExecuteNonQuery(); _bd.ConfirmarTransacao(); } catch (Exception) { _bd.CancelarTransacao(); return false; } return true; }
/// <summary> /// Grava dados de estorno no BD /// </summary> /// <param name="movimento">movimento a ser estornado</param> /// <returns></returns> public bool Estornar(MovimentoCaixa movimento) { _bd = new Persistencia(); try { _bd.IniciarTransacao(); #region Etapa 1 Setar justifica do estorno no movimento selecionado _bd.Cmd.CommandText = @"update movimentosCaixa set estorno = @estorno where id = @id and caixa_id = @caixa_id"; _bd.Cmd.Parameters.AddWithValue("@id", movimento.Id); _bd.Cmd.Parameters.AddWithValue("@caixa_id", movimento.ContaCaixa.Id); _bd.Cmd.Parameters.AddWithValue("@estorno", movimento.Estorno); if (_bd.ExecuteNonQuery() <= 0)//se nao afetar linhas { _bd.CancelarTransacao(); return false; } #endregion _bd.Cmd.Parameters.Clear(); #region Etapa 2 lançar um movimento com estorno _bd.Cmd.CommandText = @"INSERT INTO `movimentosCaixa` (`caixa_id`, `credito`, `data`,`valor`, `quitacao_id`, `estorno`) VALUES (@caixaid, @credito, @data,@valor, @quitacao_id, @estorno)"; _bd.Cmd.Parameters.AddWithValue("@caixaid", movimento.ContaCaixa.Id); _bd.Cmd.Parameters.AddWithValue("@credito", movimento.Credito);//ja deve vir da controladora com a justificativa correta _bd.Cmd.Parameters.AddWithValue("@data", DateTime.Now);//pega data do sistema! _bd.Cmd.Parameters.AddWithValue("@valor", movimento.Valor);//valor do lançamento _bd.Cmd.Parameters.AddWithValue("@quitacao_id", movimento.Quitacao);//caso a movimentacao seja provinda de uma quitacao _bd.Cmd.Parameters.AddWithValue("@estorno", "Estorno do movimento Nº" + movimento.Id);//informa estorno de qual operação if (_bd.ExecuteNonQuery() <= 0)//se nao afetar nenhuma linha cancela transação { _bd.CancelarTransacao(); return false; } #endregion _bd.Cmd.Parameters.Clear(); #region Etapa 3 Atualizar saldo Caixa _bd.Cmd.CommandText = @"update contasCaixa set saldo = @saldo where id = @caixaid"; _bd.Cmd.Parameters.AddWithValue("@caixaid", movimento.ContaCaixa.Id); _bd.Cmd.Parameters.AddWithValue("@saldo", movimento.ContaCaixa.Saldo); if (_bd.ExecuteNonQuery() <= 0)//se nao afetar nenhuma linha { _bd.CancelarTransacao(); return false; } #endregion } catch (Exception) { _bd.CancelarTransacao(); return false; } _bd.ConfirmarTransacao(); return true; }
/// <summary> /// Exclui uma pessoa, seus endereços e seus contatos 09/04/2014 /// </summary> /// <param name="pes">objeto Pessoa</param> /// <returns>booleano</returns> public bool Excluir(Pessoa pes) { _bd = new Persistencia(); _bd.Cmd.Parameters.AddWithValue("@pesId", pes.Id); try { _bd.IniciarTransacao(); //exclui associacao de endereços e linhas de coleta _bd.Cmd.CommandText = "DELETE FROM enderecosRota WHERE fornecedor_id = @pesId"; _bd.ExecuteNonQuery(); //exclui endereco caso nao tenha vinculo em nenhum lançamento! _bd.Cmd.CommandText = "DELETE FROM enderecos WHERE pes_id = @pesId"; _bd.ExecuteNonQuery(); //deleta os contatos da pessoa! _bd.Cmd.CommandText = "DELETE FROM contatos WHERE pes_id = @pesId"; _bd.ExecuteNonQuery(); //deleta a especializacao da pessoa fisica ou juridica _bd.Cmd.CommandText = pes.Tipo == 'f' ? @"DELETE FROM pessoaFisica WHERE pes_id= @pesId" : @"DELETE FROM pessoaJuridica WHERE pes_id= @pesId"; _bd.ExecuteNonQuery(); //deleta de pessoa _bd.Cmd.CommandText = @"DELETE FROM pessoas WHERE id = @pesId"; _bd.ExecuteNonQuery(); /*se todas as etapas forem concluidas sem erros pode se definitivamente excluir, do contrario existem * lançamentos que dependentes e o mesmo sera somente desativado na controladora!*/ _bd.ConfirmarTransacao(); } catch (Exception) { _bd.CancelarTransacao(); return false; } return true; }
/// <summary> /// Grava uma movimentação de caixa com Transação /// </summary> /// <param name="movimento">dados da movimentacao</param> /// <returns>verdadeiro se não houver erros</returns> public bool LancarMovimento(MovimentoCaixa movimento) { _bd = new Persistencia(); try { _bd.IniciarTransacao(); //Etapa 1 Lançar movimento _bd.Cmd.CommandText = @"INSERT INTO `movimentosCaixa` (`caixa_id`, `credito`, `data`,`valor`) VALUES (@caixaid, @credito, @data,@valor)"; _bd.Cmd.Parameters.AddWithValue("@caixaid", movimento.ContaCaixa.Id); _bd.Cmd.Parameters.AddWithValue("@credito", movimento.Credito);//se falso == débito _bd.Cmd.Parameters.AddWithValue("@data", DateTime.Now);//pega data do sistema! _bd.Cmd.Parameters.AddWithValue("@valor", movimento.Valor);//valor do lançamento if (_bd.ExecuteNonQuery() <= 0)//se nao afetar nenhuma linha { _bd.CancelarTransacao(); return false; } _bd.Cmd.Parameters.Clear(); //Etapa 2 Atualizar saldo Caixa _bd.Cmd.CommandText = @"update contasCaixa set saldo = @saldo where id = @caixaid"; _bd.Cmd.Parameters.AddWithValue("@caixaid", movimento.ContaCaixa.Id); _bd.Cmd.Parameters.AddWithValue("@saldo", movimento.ContaCaixa.Saldo); if (_bd.ExecuteNonQuery() <= 0)//se nao afetar nenhuma linha { _bd.CancelarTransacao(); return false; } } catch (Exception) { _bd.CancelarTransacao(); return false; } _bd.ConfirmarTransacao(); return true; }