public EstadoClienteDeudor ObtenerEstadoClienteDeudor(string rut_cliente) { EstadoClienteDeudor estado = null; using (da = new DataAccess.DataAccess()) { da.GenerarComando("select rut_cliente, usuario_autorizador, fecha_autorizacion, usuario_bloqueador, fecha_bloqueo from cliente_fiado where rut_cliente = :rut"); da.AgregarParametro(":rut", rut_cliente); var reader = da.ExecuteReader(); while (reader.Read()) { string fecha_bloqueo = reader["fecha_bloqueo"].ToString(); string usuario_bloqueo = reader["usuario_bloqueador"].ToString(); estado = new EstadoClienteDeudor { ClienteDeudor = mantenedorClientes.Read(reader["rut_cliente"].ToString()), UsuarioAutorizador = mantenedorUsuarios.Read(reader["usuario_autorizador"].ToString()), FechaAutorizado = Convert.ToDateTime(reader["fecha_autorizacion"].ToString()), UsuarioBloqueo = String.IsNullOrEmpty(usuario_bloqueo) ? null : mantenedorUsuarios.Read(usuario_bloqueo), FechaBloqueo = String.IsNullOrEmpty(fecha_bloqueo) ? null : (DateTime?)Convert.ToDateTime(fecha_bloqueo) }; } } return(estado); }
private bool CambiarEstadoClienteDeudor(string rut_cliente, string id_usuario, bool nuevo_estado) { bool res = false; EstadoClienteDeudor estadoActual = ObtenerEstadoClienteDeudor(rut_cliente); #region Caso Autorizar if (nuevo_estado) { if (estadoActual == null) // Cliente no se encuentra registrado como deudor, se autoriza para deudas { using (da = new DataAccess.DataAccess()) { da.GenerarComando(@"insert into cliente_fiado(rut_cliente, usuario_autorizador, fecha_autorizacion) values (:rut, :usuario, :fecha)"); da.AgregarParametro(":rut", rut_cliente); da.AgregarParametro(":usuario", id_usuario); da.AgregarParametro(":fecha", DateTime.Now, DbType.Date); res = da.ExecuteNonQuery() > 0; } } else if (estadoActual.FechaBloqueo == null) // Cliente ya se encuentra registrado como deudor habilitado { res = true; } else // Cliente se encuentra registrado como deudor no habilitado, no es posible desbloquear { res = false; } } #endregion #region Caso Revocar else { if (estadoActual == null) // Cliente no se encuentra registrado como deudor, no se puede bloquear en forma preventiva { res = false; } else if (estadoActual.FechaBloqueo != null) // Cliente se encuentra registrado como deudor habilitado, se revoca autorizacion { using (da = new DataAccess.DataAccess()) { da.GenerarComando(@"update cliente_fiado set usuario_bloqueador = :usuario, fecha_bloqueo = :fecha where rut_cliente = :rut)"); da.AgregarParametro(":usuario", id_usuario); da.AgregarParametro(":fecha", DateTime.Now, DbType.Date); da.AgregarParametro(":rut", rut_cliente); res = da.ExecuteNonQuery() > 0; } } else // Cliente se encuentra registrado como deudor no habilitado, ya fue bloqueado { res = true; } } #endregion return(res); }