/// <summary> /// Este metodo permite crear un contrato de aquiler. Asi mismo genera la cuotas por el pago del aquiler automaticamente. /// En caso que el servicio de generacion de cuotas no este activo, se envia a una cola para que cuando se restablesca genere la cuotas. /// </summary> /// <param name="contratoACrear"></param> /// <returns></returns> public Contrato CrearContrato(Contrato contratoACrear) { Contrato objCont; try { Respuesta obj = dao.ValidarContrato(contratoACrear.CodigoVivienda, contratoACrear.CodigoResidente, Convert.ToDateTime(contratoACrear.FechaIniResidencia)); if (obj != null) { if (obj.ExisteVivienda == 0) { throw new WebFaultException<string>( "La vivienda no se encuentra disponible para el periodo indicado", HttpStatusCode.InternalServerError); } else if (obj.ExisteMoroso == 1) { throw new WebFaultException<string>( "Residente con deuda pendiente", HttpStatusCode.InternalServerError); } } objCont = dao.ContratoGenerar(contratoACrear); // Generacion de Cuotas GenerarCuotas(objCont); } catch { throw; } return objCont; }
public Contrato ContratoGenerar(Contrato contratoACrear) { Contrato contratoCreado = null; int codigo = 0; string sql = "SP_CONTRATO_INSERTAR"; // nombres de tu stored using (SqlConnection con = new SqlConnection(ConexionUtil.ObtenerCadena)) { con.Open(); using (SqlCommand com = new SqlCommand(sql, con)) { com.CommandType = System.Data.CommandType.StoredProcedure; com.Parameters.Add(new SqlParameter("@CodigoVivienda", contratoACrear.CodigoVivienda)); com.Parameters.Add(new SqlParameter("@CodigoResidente", contratoACrear.CodigoResidente)); com.Parameters.Add(new SqlParameter("@FechaContrato", Convert.ToDateTime(contratoACrear.FechaContrato))); com.Parameters.Add(new SqlParameter("@FechaIniResidencia", Convert.ToDateTime(contratoACrear.FechaIniResidencia))); com.Parameters.Add(new SqlParameter("@CostoMensual", Convert.ToDecimal(contratoACrear.CostoMensual))); com.Parameters.Add(new SqlParameter("@Periodo", contratoACrear.Periodo)); com.Parameters.Add(new SqlParameter("@Estado", contratoACrear.Estado)); com.Parameters.Add(new SqlParameter("@UsuarioCreacion", contratoACrear.UsuarioCreacion)); com.Parameters.Add(new SqlParameter("@FechaCreacion", Convert.ToDateTime(contratoACrear.FechaCreacion))); com.Parameters.Add(new SqlParameter("@CodigoContrato", SqlDbType.Int, 20)).Direction = ParameterDirection.Output; com.ExecuteNonQuery(); codigo = Convert.ToInt32(com.Parameters["@CodigoContrato"].Value); } } contratoCreado = ObtenerContrato(codigo.ToString()); return contratoCreado; }
public Contrato ObtenerContrato(string codigocontrato) { Contrato contratoObtenido = null; string sql = "SELECT * FROM t_contrato WHERE codigocontrato=@CodigoContrato"; using (SqlConnection con = new SqlConnection(ConexionUtil.ObtenerCadena)) { con.Open(); using (SqlCommand com = new SqlCommand(sql, con)) { com.Parameters.Add(new SqlParameter("@CodigoContrato", codigocontrato)); using (SqlDataReader resultado = com.ExecuteReader()) { if (resultado.Read()) { contratoObtenido = new Contrato() { CodigoContrato = Convert.ToInt32(resultado["CodigoContrato"]), CodigoVivienda = Convert.ToInt32(resultado["CodigoVivienda"]), CodigoResidente = Convert.ToInt32(resultado["CodigoResidente"]), FechaContrato = Convert.ToString(resultado["FechaContrato"]), FechaIniResidencia = Convert.ToString(resultado["FechaIniResidencia"]), CostoMensual = Convert.ToString(resultado["CostoMensual"]), Periodo = Convert.ToInt32(resultado["Periodo"]), Estado = Convert.ToString(resultado["Estado"]), UsuarioCreacion = Convert.ToString(resultado["UsuarioCreacion"]), FechaCreacion = Convert.ToString(resultado["FechaCreacion"]), UsuarioModificacion = Convert.ToString(resultado["usuariomodificacion"]), FechaModificacion = Convert.ToString(resultado["fechamodificacion"]) }; } } } } return contratoObtenido; }
/// <summary> /// Este metodo permite actualizar los datos del contrato /// </summary> /// <param name="contratoAModificar"></param> /// <returns></returns> public Contrato ModificarContrato(Contrato contratoAModificar) { return dao.ModificarContrato(contratoAModificar); }
/// <summary> /// Este metodo genera la cuotas si el servicio esta activo. Caso contrario, lo envia el contrato a una cola para que las cuotas sean generadas despues. /// </summary> /// <param name="objCont"></param> private void GenerarCuotas(Contrato objCont) { try { string postdata = "{\"CodigoContrato\":\"" + objCont.CodigoContrato.ToString() + "\"}"; //JSON byte[] data = Encoding.UTF8.GetBytes(postdata); HttpWebRequest req = (HttpWebRequest)WebRequest .Create("http://localhost:7142/CuotaService.svc/CuotaService"); req.Method = "POST"; req.ContentLength = data.Length; req.ContentType = "application/json"; var reqStream = req.GetRequestStream(); reqStream.Write(data, 0, data.Length); req.GetResponse(); } catch { EnviarContratoACola(objCont.CodigoContrato); } }
public Contrato ModificarContrato(Contrato contratoAModificar) { Contrato contratoModificado = null; string sql = "UPDATE t_contrato SET CostoMensual = @cos WHERE codigocontrato = @codc and codigovivienda = @codv and codigoresidente = @codr"; using (SqlConnection con = new SqlConnection(ConexionUtil.ObtenerCadena)) { con.Open(); using (SqlCommand com = new SqlCommand(sql, con)) { com.Parameters.Add(new SqlParameter("@codc", contratoAModificar.CodigoContrato)); com.Parameters.Add(new SqlParameter("@codv", contratoAModificar.CodigoVivienda)); com.Parameters.Add(new SqlParameter("@codr", contratoAModificar.CodigoResidente)); com.Parameters.Add(new SqlParameter("@cos", contratoAModificar.CostoMensual)); com.ExecuteNonQuery(); } } contratoModificado = ObtenerContrato(contratoAModificar.CodigoContrato.ToString()); return contratoModificado; }