// Add Command public async Task <ValidationResult> Handle(AddOrdemServicoCommand request, CancellationToken cancellationToken) { if (!request.IsValid()) { return(request.ValidationResult); } var OrdemServico = new Models.OrdemServico( id: Guid.NewGuid(), numero: request.Numero, data: request.DataOrdem, pacienteId: request.PacienteId, convenioId: request.ConvenioId, postoId: request.PostoColetaId, medicoId: request.MedicoId); if (await _ordemServicoRepository.GetByNumber(request.Numero) != null) { AddError("Já existe ordem de serviço com esse número"); return(ValidationResult); } OrdemServico.AddDomainEvent(new OrdemServicoAddedEvent( id: OrdemServico.Id, numero: OrdemServico.Numero, data: OrdemServico.DataOrdem, pacienteId: OrdemServico.PacienteId, convenioId: OrdemServico.ConvenioId, postoId: OrdemServico.PostoColetaId, medicoId: OrdemServico.MedicoId)); _ordemServicoRepository.Add(OrdemServico); return(await Commit(_ordemServicoRepository.UnitOfWork)); }
public ActionResult Edit(int id, Models.OrdemServico model) { if (model.dtValidade == null) { ModelState.AddModelError("dtValidade", "Informe a data de validade"); } //if (model.dtValidade != null && model.dtValidade < DateTime.Now.AddDays(-1)) //{ // ModelState.AddModelError("dtValidade", "A data de validade não pode ser menor que o dia de hoje"); //} if (model.dtExecucao == null) { ModelState.AddModelError("dtExecucao", "Informe a data de execução"); } if (model.dtValidade != null && model.dtExecucao != null) { if (model.dtExecucao < model.dtValidade) { ModelState.AddModelError("dtExecucao", "A data de execução não pode ser menor a data de validade "); } } if (model.Cliente.id == null) { ModelState.AddModelError("Cliente.id", "Informe o cliente"); } if (model.Funcionario.id == null) { ModelState.AddModelError("Funcionario.id", "Informe o funcionário"); } if (ModelState.IsValid) { try { var daoOS = new DAOOrdemServico(); if (model.situacao != "F") { daoOS.Update(model); } else { return(RedirectToAction("VendaOS", "Vendas", new { id = id })); } this.AddFlashMessage(Util.AlertMessage.EDIT_SUCESS); return(RedirectToAction("Index")); } catch (Exception ex) { this.AddFlashMessage(ex.Message, FlashMessage.ERROR); return(View(model)); } } else { return(View(model)); } }
public bool Insert(Models.OrdemServico OS) { try { var sql = string.Format("INSERT INTO tbordemservicos ( situacao, dtabertura, dtvalidade, codcliente, codcondpagamento, observacao, codfuncionario, dtultalteracao, dtexecucao ) VALUES ('{0}', {1}, {2}, {3}, {4}, '{5}', {6}, {7}, {8} ); SELECT SCOPE_IDENTITY()", OS.situacao, this.FormatDateTime(DateTime.Now), this.FormatDate(OS.dtValidade), OS.Cliente.id, OS.CondicaoPagamento.id, this.FormatString(OS.observacao), OS.Funcionario.id, this.FormatDate(DateTime.Now), this.FormatDate(OS.dtExecucao) ); string sqlServico = "INSERT INTO tbservicosos ( codordemservico, codservico, unidade, qtservico, vlservico, codexecutante) VALUES ({0}, {1}, '{2}', {3}, {4}, {5})"; string sqlProduto = "INSERT INTO tbprodutosos ( codordemservico, codproduto, unidade, qtproduto, vlproduto) VALUES ({0}, {1}, '{2}', {3}, {4})"; string sqlParcela = "INSERT INTO tbcontasreceber (codfornecedor, codforma, nrparcela, vlparcela, dtvencimento, situacao, codcompra) VALUES ({0}, {1}, {2}, {3}, {4}, '{5}', {6} )"; using (con) { OpenConnection(); SqlTransaction sqlTrans = con.BeginTransaction(); SqlCommand command = con.CreateCommand(); command.Transaction = sqlTrans; try { command.CommandText = sql; var codOS = Convert.ToInt32(command.ExecuteScalar()); foreach (var item in OS.ServicosOS) { var Servico = string.Format(sqlServico, codOS, item.codServico, this.FormatString(item.unidade), this.FormatDecimal(item.qtServico), this.FormatDecimal(item.vlServico), item.codExecutante); command.CommandText = Servico; command.ExecuteNonQuery(); } foreach (var item in OS.ProdutosOS) { var produto = string.Format(sqlProduto, codOS, item.codProduto, this.FormatString(item.unidade), this.FormatDecimal(item.qtProduto), this.FormatDecimal(item.vlProduto)); command.CommandText = produto; command.ExecuteNonQuery(); } //if (OS.situacao == "T") //se a situação for autorizada, aí gera as vendas e insere... //if (OS.situacao == "T") //foreach (var item in OS.ParcelasOS) //{ // var parcela = string.Format(sqlParcela, compra.Fornecedor.id, item.idFormaPagamento, item.nrParcela, this.FormatDecimal(item.vlParcela), this.FormatDate(item.dtVencimento), "P", codCompra); // command.CommandText = parcela; // command.ExecuteNonQuery(); //} sqlTrans.Commit(); } catch (Exception ex) { sqlTrans.Rollback(); throw new Exception(ex.Message); } finally { con.Close(); } } return(true); } catch (Exception error) { throw new Exception(error.Message); } finally { CloseConnection(); } }
public OrdemServico GetOrdemServico(int codOrdemServico) { try { var model = new Models.OrdemServico(); OpenConnection(); var sql = this.Search(codOrdemServico, null); var sqlServicos = this.SearchServicos(codOrdemServico); var sqlProdutos = this.SearchProdutos(codOrdemServico); var sqlParcelas = this.SearchParcelas(codOrdemServico); //var sqlParcelas = this.SearchParcelas(codOrdemServico); var listServicos = new List <OrdemServico.ServicosVM>(); var listProdutos = new List <OrdemServico.ProdutosVM>(); var listParcelas = new List <Shared.ParcelasVM>(); //SqlQuery = new SqlCommand(sql + sqlProdutos + sqlParcelas, con); SqlQuery = new SqlCommand(sql + sqlServicos + sqlProdutos, con); reader = SqlQuery.ExecuteReader(); while (reader.Read()) { model.codigo = Convert.ToInt32(reader["OrdemServico_ID"]); model.situacao = Convert.ToString(reader["OrdemServico_Situacao"]); model.dtAbertura = Convert.ToDateTime(reader["OrdemServico_DataAbertura"]); model.dtValidade = Convert.ToDateTime(reader["OrdemServico_DataValidade"]); model.observacao = Convert.ToString(reader["OrdemServco_Observacao"]); model.dtUltAlteracao = Convert.ToDateTime(reader["OrdemServico_DataUltAlteracao"]); model.dtExecucao = Convert.ToDateTime(reader["OrdemServico_DataExecucao"]); model.Cliente = new Select.Clientes.Select { id = Convert.ToInt32(reader["Cliente_ID"]), text = Convert.ToString(reader["Cliente_Nome"]) }; model.Funcionario = new Select.Funcionarios.Select { id = Convert.ToInt32(reader["Funcionario_ID"]), text = Convert.ToString(reader["Funcionario_Nome"]) }; model.CondicaoPagamento = new Select.CondicaoPagamento.Select { id = Convert.ToInt32(reader["CondicaoPagamento_ID"]), text = Convert.ToString(reader["CondicaoPagamento_Nome"]), desconto = Convert.ToDecimal(reader["CondicaoPagamento_Desconto"]), multa = Convert.ToDecimal(reader["CondicaoPagamento_Multa"]), txJuros = Convert.ToDecimal(reader["CondicaoPagamento_Juros"]) }; } ; if (reader.NextResult()) { while (reader.Read()) { var servico = new OrdemServico.ServicosVM { codServico = Convert.ToInt32(reader["Servico_ID"]), nomeServico = Convert.ToString(reader["Servico_Nome"]), unidade = Convert.ToString(reader["Servico_Unidade"]), qtServico = Convert.ToDecimal(reader["Servico_Quantidade"]), vlServico = Convert.ToDecimal(reader["Servico_Valor"]), codExecutante = Convert.ToInt32(reader["Servico_Executante_ID"]), nomeExecutante = Convert.ToString(reader["Servico_Executante_Nome"]) }; listServicos.Add(servico); } } if (reader.NextResult()) { while (reader.Read()) { var produto = new OrdemServico.ProdutosVM { codProduto = Convert.ToInt32(reader["Produto_ID"]), nomeProduto = Convert.ToString(reader["Produto_Nome"]), unidade = Convert.ToString(reader["Produto_Unidade"]), qtProduto = Convert.ToDecimal(reader["Produto_Quantidade"]), vlProduto = Convert.ToDecimal(reader["Produto_Valor"]) }; listProdutos.Add(produto); } } //if (reader.NextResult()) //{ // while (reader.Read()) // { // var parcela = new Shared.ParcelasVM // { // idFormaPagamento = Convert.ToInt32(reader["FormaPagamento_ID"]), // nmFormaPagamento = Convert.ToString(reader["FormaPagamento_Nome"]), // nrParcela = Convert.ToDouble(reader["ContaPagar_NrParcela"]), // vlParcela = Convert.ToDecimal(reader["ContaPagar_VlParcela"]), // dtVencimento = Convert.ToDateTime(reader["ContaPagar_DataVencimento"]), // situacao = Util.FormatFlag.Situacao(Convert.ToString(reader["ContaPagar_Situacao"])) // }; // listParcelas.Add(parcela); // } //} model.ServicosOS = listServicos; model.ProdutosOS = listProdutos; //model.ParcelasOS = listParcelas; return(model); } catch (Exception error) { throw new Exception(error.Message); } finally { CloseConnection(); } }
public bool Update(Models.OrdemServico OS) { try { var sql = "UPDATE tbordemservicos set situacao = '" + this.FormatString(OS.situacao) + "', " + "observacao = '" + this.FormatString(OS.observacao) + "', " + "dtultalteracao = " + this.FormatDate(DateTime.Now) + ", " + "codcondpagamento = " + OS.CondicaoPagamento.id + " WHERE codordemservico = " + OS.codigo; ; string sqlServico = "INSERT INTO tbservicosos ( codordemservico, codservico, unidade, qtservico, vlservico, codexecutante) VALUES ({0}, {1}, '{2}', {3}, {4}, {5})"; string sqlProduto = "INSERT INTO tbprodutosos ( codordemservico, codproduto, unidade, qtproduto, vlproduto) VALUES ({0}, {1}, '{2}', {3}, {4})"; //aqui não vai existir venda string sqlParcela = "INSERT INTO tbcontasreceber (codfornecedor, codforma, nrparcela, vlparcela, dtvencimento, situacao, codcompra) VALUES ({0}, {1}, {2}, {3}, {4}, '{5}', {6} )"; using (con) { OpenConnection(); SqlTransaction sqlTrans = con.BeginTransaction(); SqlCommand command = con.CreateCommand(); command.Transaction = sqlTrans; try { command.CommandText = sql; command.ExecuteNonQuery(); var removeServicos = "DELETE FROM tbservicosos WHERE codordemservico = " + OS.codigo; command.CommandText = removeServicos; command.ExecuteNonQuery(); foreach (var item in OS.ServicosOS) { var Servico = string.Format(sqlServico, OS.codigo, item.codServico, this.FormatString(item.unidade), this.FormatDecimal(item.qtServico), this.FormatDecimal(item.vlServico), item.codExecutante); command.CommandText = Servico; command.ExecuteNonQuery(); } var removeProdutos = "DELETE FROM tbprodutosos WHERE codordemservico = " + OS.codigo; command.CommandText = removeProdutos; command.ExecuteNonQuery(); foreach (var item in OS.ProdutosOS) { var produto = string.Format(sqlProduto, OS.codigo, item.codProduto, this.FormatString(item.unidade), this.FormatDecimal(item.qtProduto), this.FormatDecimal(item.vlProduto)); command.CommandText = produto; command.ExecuteNonQuery(); } //if (OS.situacao == "T") //se a situação for autorizada, aí gera as vendas e insere... //if (OS.situacao == "T") //foreach (var item in OS.ParcelasOS) //{ // var parcela = string.Format(sqlParcela, compra.Fornecedor.id, item.idFormaPagamento, item.nrParcela, this.FormatDecimal(item.vlParcela), this.FormatDate(item.dtVencimento), "P", codCompra); // command.CommandText = parcela; // command.ExecuteNonQuery(); //} sqlTrans.Commit(); } catch (Exception ex) { sqlTrans.Rollback(); throw new Exception(ex.Message); } finally { con.Close(); } } return(true); } catch (Exception error) { throw new Exception(error.Message); } finally { CloseConnection(); } }